끄적/모델 최적화 및 경량화

KD 3 : Feature - based KD

uvumbu 2024. 12. 26. 15:47

 

Feature - based KD 는 내부에 대한 접근이 모두 가능한, 화이트 박스 모델에 대해서만 사용 가능하다.

 

교사 모델의 레이어 Feature를 사용한다.

중간 결과 혹은 과정이라고도 해석할 수 있다.(Representation)

 

즉, Feature - based는 중간에 있는 Feature들을 우리가 전달해서 학습하는 것이다.

 

 

교사 모델의 중간 레이어 Feature f_t (d_t 차원)

학생 모델의 중간 레이어 Feature f_s (d_s 차원)

두 Feature는 차원이 다를 수 있기 때문에 학생 모델에 regressor layer R을 주게 된다.

 

이 R을 통해서 f_s가 f_t 와 비슷한 형태가 되도록 맞춰주는 역할을 한다.

R : d_s -> d_t (작은 차원을 큰 차원으로 바꿔주는 모듈이다.)

 

이 모듈을 거친 다음 둘을 비슷하게 만들기 위해 MSE Loss를 활용한다.

이를 통해 둘을 비슷하게 만드는 것이다.

 

 

그럼 우리는 어떤 Feature들을 전달해야 할까?

10개의 레이어가 있다고 가정할 때, 약 3~4번 레이어를 추출한 뒤, 활용한다.

중간보다 조금 앞에 있는 요소들이 우리가 쓰는 지식이 된다.

이런 지식을 쓰는 이유가 뭘까?

  • 초기 레이어는 저수준 Feature들이다. (보통 선이나 텍스처 수준)
  • 후반 레이어는 고수준 Feature들이다. (클래스 수준, 얼굴이 어느정도 나와있는 수준)
  • 중간 레이어는 이 둘의 중간이며, 이는 증류의 효과가 극대화된다.

 

다른 Feature들을 쓰면 안될까?

  • 초기 레이어는 특정한 데이터에 덜 특화되어 있어 효율이 낮다.
  • 최종 레이어는 손실 함수와 맞닿아있기에 직접 연결은 할 수 있겠지만, 지나치게 고수준 정보만 갖고 있다.
    • 예를 들면 우리 앞서 배웠던 Logit - based KD의 경우 확률분포는 가장 마지막에 있는 것만 갖고 왔다.
    • 이런 최종 레이어와 비슷한, Feature - based KD를 활용하게 되면 Logit - based KD와 큰 차이가 없다.
    • 둘은 거의 유사한 정보가 담기게 되기 때문이다.

 

 

 

'끄적 > 모델 최적화 및 경량화' 카테고리의 다른 글

Quantization 1 : 개요  (0) 2024.12.26
KD 4 : Imitation Learning  (3) 2024.12.26
KD 2 : Logit based KD  (0) 2024.12.26
KD 1 : 지식 증류의 개념  (2) 2024.12.26
Pruning 3 : 적용사례 (CNN, BERT)  (1) 2024.12.26