큰 모델의 지식을 작은 모델에 전달해
지식 증류는 작은 학생 모델이 큰 교사 모델의 최종 답뿐 아니라 전체 클래스 확률 분포까지 모방하게 해. 단단한 레이블은 '이건 7'이라고만 말하지만 교사의 softmax는 '7이 95%, 1이 4%, 나머지가 1%'라고 알려 줘. 1에 4%를 준 사실에는 클래스 사이의 닮음이 담겨 있어. Hinton이 어두운 지식이라 부른 이 신호 덕분에 증류된 학생은 같은 크기를 단단한 레이블만으로 처음부터 학습한 모델보다 자주 더 좋아.
두 손실을 합쳐 학습해
keras.Model을 상속하고 train_step()을 재정의해. 각 단계에서 같은 입력을 고정된 교사와 학생에 넣고, 실제 레이블에 대한 단단한 손실과 두 확률 분포 사이의 KL 발산인 부드러운 손실을 합쳐. alpha 가중치가 둘의 균형을 정해.
temperature로 분포의 부드러움을 조절해
temperature는 확률 분포를 얼마나 평평하게 할지 정해. softmax 전에 로짓을 1보다 큰 temperature로 나누면 가장 높은 값이 낮아지고 학생이 배울 작은 클래스 간 확률이 드러나. temperature=1이면 교사의 출력이 거의 원-핫이라 추가 정보가 적어. 조정할 하이퍼파라미터이며 보통 3~5에서 시작해.