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 |