[Knowledge Distillation] Learning from a Teacher using Unlabeled Data

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

실무에서 활용하기

  1. 공개된 모델의 학습 데이터를 구할 수 없거나 일부만 구할 수 있을 때
    1. 개인정보보호 등으로 학습 데이터를 구할 수 없거나, 학습 데이터를 전처리하기 힘들거나, 학습 데이터가 있어도 학습 코드를 제공하지 않아 Reproduce가 어려운 모델들이 있다. 이런 모델을 유사하게 만들고 싶을 때 활용할 수 있다.
  1. unlabelled된 데이터가 굉장히 많아서, 이걸 활용하고 싶을 때
    1. 서비스를 운영하다보면 많은 이미지 로그 등 생긴다. 하지만 이들을 모두 라벨링하는 비용은 비싸다. 만약 좀 다른 도메인이라도 이미 잘 학습된 모델이 있다면 다른 모델을 만들 때 활용할 수 있다.
 
 

가정

  1. Teacher 모델은 unseen data에 대해서도 지식을 전수해줄 수 있을 것이다.
  1. Blind Distillation 후, 적은 데이터로 Student모델을 Fine-Tuning해도 정확도가 Teacher보다 높다.
 
 

실험

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

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

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

kjyong