[Knowledge Distillation] Learning from a Teacher using Unlabeled Data
Unlabelling 데이터를 활용하여 Teacher보다 똑똑한 Student 만들기
Jun 02, 2024
Student가 Teacher로부터 Unlabelled Dataset의 soft label만 학습한 후에 (Blind Distillation),
적은 Labelled Dataset으로 Fine-Tuning해도 Teacher보다 정확도가 더 높을 수 있다

실무에서 활용하기
- 공개된 모델의 학습 데이터를 구할 수 없거나 일부만 구할 수 있을 때
- 개인정보보호 등으로 학습 데이터를 구할 수 없거나, 학습 데이터를 전처리하기 힘들거나, 학습 데이터가 있어도 학습 코드를 제공하지 않아 Reproduce가 어려운 모델들이 있다. 이런 모델을 유사하게 만들고 싶을 때 활용할 수 있다.
- unlabelled된 데이터가 굉장히 많아서, 이걸 활용하고 싶을 때
- 서비스를 운영하다보면 많은 이미지 로그 등 생긴다. 하지만 이들을 모두 라벨링하는 비용은 비싸다. 만약 좀 다른 도메인이라도 이미 잘 학습된 모델이 있다면 다른 모델을 만들 때 활용할 수 있다.
가정
- Teacher 모델은 unseen data에 대해서도 지식을 전수해줄 수 있을 것이다.
- Blind Distillation 후, 적은 데이터로 Student모델을 Fine-Tuning해도 정확도가 Teacher보다 높다.
실험

- Blind Distillation
- Labelled Dataset으로 Teacher를 학습시킨다.
- 예를 들어, MNIST로 Teacher를 학습
- teacher를 frozen시키고 Unlabelled dataset으로 Teacher의 soft label output을 student에게 학습시킨다
- 예를 들어, MNIST와 전혀 다른 도메인인 Fashion MNIST를 Teacher가 inference하게 하고, 그 Output에 softmax와 temperature를 도입한 soft label output을 student가 학습하도록 한다.
- Fine Tune
- Labelled Dataset으로 Stundent를 Fine tuning한다
- 예를 들어, MNIST로 fine tuning시킴. Teache보다 정확도가 높음
- 10-20장의 Labelled Dataset으로도 teacher보다 높은 정확도가 나옴
- blind distillation 했을 때보다 낮은 learning rate로, weight decay를 적용했을 때 학습이 잘 되었다고 함


어떻게 이런 결과가 나오는가?

- 위의 플랏은 Teacher의 soft output을 TSNE로 저차원 임베딩하여 시각화한 것이다.
- Teacher의 soft output을 보면, 학습하지 않은 Fashion MNIST에 대해서도 임베딩을 어느정도 클래스별로 구분되게 표현할 수 있는 것으로 보인다.
- 즉, 학습하지 않은 데이터에 대해서도 Teacher는 어느정도 변별력을 가지고 있고 이를 student가 학습하면, 이러한 지식을 바탕으로 더욱 예측을 잘 할 수 있다.
Share article