모델 경량화 3 - 지식 증류(Knowledge Distillation)
BoostCamp AI Tech
Knowledge Distillation
Teacher-student Network
Hinton Loss
Zero-mean Assumption
03/18/2021
본 정리 내용은 Naver BoostCamp AI Tech의 edwith에서 학습한 내용을 정리한 것입니다.
사실과 다른 부분이 있거나, 수정이 필요한 사항은 댓글로 남겨주세요.
Knowledge Distillation
Knowledge

- Data → Information → Knowledge → Wisdom순으로 Data가 정제된다.
- Knowledge distillation은 이 중 knowledge를 뽑아내는 기술이다.
추가 레퍼런스
Knowledge distillation
소금물에서 증류하여 소금을 얻어내듯이, 지식 증류(knowledge distillation)는 커다란 Teacher 모델에서 엑기스(지식)만 뽑아내어 작은 Student 모델로 전달하는 방식이다.
Transfer Learning과 Knowledge Distillation의 차이는 이렇게 비유할 수 있다. 지식을 전달한다는 점에서는 둘 모두 동일하지만, 지식 증류는 사이즈를 줄이는데에 목적이 있다.
- Transfer learning - ex) 영어에서 배운 지식을 프랑스어에 적용시키는 것(도메인이 다름)
- Knowledge distillation - ex) 선생님이 학생에게 역사 지식을 가르쳐주는 것(도메인은 같음)
Teacher-Student networks & Hinton loss
전체적인 과정은 다음과 같다.
- = 1일 경우 익히 알고있는 softmax function이므로, 가장 큰 값(즉 가장 확신하는 값)을 제외하고는 다 버린다.
- 가 1보다 큰 어떤 상수가 될 경우 가 soften 되어 '덜 확신하는' 값이 된다.(soft prediction).
- 정답이라고 생각하는 값만 중요한 게 아니라, 확신의 과정에서 어느 클래스와 어느 클래스가 더 비슷하다고 생각했는지같은 것도 모두 정보의 일종이다. 이러한 개념을 제프리 힌튼 교수가 처음으로 제시했다.("The relative probablities of the incorrect outputs tell us a lot about how the model tned to generalize.")
- 자세한 설명은 [이전의 글]을 참조해보자.
이 상수 가 어떻게 바뀌느냐에 따라 이렇게 바뀌게된다.
Zero-mean assumption
Zero-mean assumption- logit값들이 zero-mean이 아닌 distillation은 Model compression이라고 부르기 어렵다는 것을 의미한다.
- 유도 과정은 [여기]에 있다.
즉, distillation ≠ compression임을 이야기한다.