큰 model 이 아는 걸 작은 model 에 가르치기
knowledge distillation 은 작은 student 가 큰 teacher 를 모방하게 학습해 — 최종 답만이 아니라 클래스 전체에 대한 확률 분포까지. hard label 은 '이건 7' 이라고만 해. teacher 의 softmax 는 '95% 7, 4% 1, 1% 나머지' 라고 하는데, 그 *4% 가 1 쪽* 인 게 정보야 — 어떤 클래스끼리 닮았는지 알려주거든. Hinton 이 dark knowledge 라 부른 이 추가 신호가, distilled student 가 같은 크기를 hard label 만으로 from-scratch 학습한 모델을 자주 이기는 이유야.
loss 가 구성되는 방식
keras.Model 을 subclass 하고 train_step 을 override 해. 매 step 같은 input 으로 (얼린) teacher 랑 student 를 돌리고, loss 두 개를 합쳐 — true label 에 대한 hard loss, 그리고 두 확률 분포 사이의 soft loss (KL divergence). alpha weight 가 둘의 균형을 잡아.
temperature 다이얼
temperature 가 그 분포를 얼마나 부드럽게 할지 정해. softmax 전에 logit 을 temperature > 1 로 나누면 peak 가 평평해지고, student 가 배워야 할 작은 클래스 간 확률이 드러나. temperature=1 이면 teacher 의 거의 one-hot 출력이 student 에 추가로 알려줄 게 거의 없어. hyperparameter 야 — 보통 3-5 부터 시작해.