Paper Review/Meta-Learning

Knowledge Distillation

frances._.sb 2023. 5. 3. 13:16
728x90

 "BERT learns to teach" 라는 논문을 읽기 시작하는데, 처음 보는 내용이 많아 공부할 겸 정리하도록 하겠다.

 

 

  • Knowledge Distillation

 - 직역하면 지식 증류이며, 복잡한 모델을 간단하게 사용할 수 있게 증류하는 것

 - 복잡한 딥러닝 모델을 경량화된 디바이스에서 사용할 때 보다 낮은 메모리를 사용하면서, 정확도는 어느 수준 이상인 모델이 필요

 - 많은 수의 파라미터를 가지고 있는 복잡한 딥러닝 모델 (teacher model)에서 지식을 경량화 모델 (student model)에 전달하는 방식

 - 높은 정확도를 가지는 딥러닝 모델을 이용하여, teacher 모델의 loss function과 student model의 loss function을 결합한 distillation loss + student model loss를 최소화하도록 student model을 학습시키는 것

 

 

  • knowledge of Model

 이미지를 분류하는 모델에서, 모델은 softmax를 이용하여 각 label별 확률 값을 추출한다. 여기서 output이 x라면, x 이외의 나머지 label에 대해 예측한 정보 중 어떤 부분에 더 가깝게 예측했는지 확인할 수 있다. 여기서의 출력값이 모델의 knowlege이다.

 즉, 결과 값에 대해 모델이 label별 예측한 정보를 토대로 정보를 알 수 있고, 1순위 예측 값 이외의 2,3순위에 대한 예측값에 어느 정도의 크기를 부여했는지 확인하는 것이다.

 

 

  • Temperature

 model이 예측한 정보를 토대로 지식을 얻으려하지만, softmax를 이용하면 1순위 외의 2,3순위의 값들은 매우 작은 값을 가진다. 이를 보정하기 위해 노드의 최종 출력 값에 T(temperature) 를 나눈 값에 대한 softmax를 이용한다.

 

 

 

  • Distillation Loss

 teacher model의 knowledge를 student에 전달하는 방법은 다음과 같다.

 teacher model을 학습 시킨 후, 그 결과를 이용한 loss function을 만들어 student model이 해당 loss function을 이용하여 학습할 수 있도록 한다. 여기서 사용하는 distillation loss function이 teacher model의 knowledge를 student model에 전달하는 역할을 한다. student model은 loss function으로 distillation loss + Cross Entropy loss를 이용하여 학습할 수 있도록 만들고, student model은 경량화된 모델로, 학습 모델을 device에 적용할 수 있다.

 

 

728x90
반응형