[딥러닝] Knowledge Distillation (지식전이) 설명

Knowledge DIstillation (지식전이)에 대해서 알아보겠습니다. 지식전이(Knowledge Distillation) 모델은 말그대로 지식을 전이 하는 방법입니다. 이미 학습된 모델의 지식을 다른 모델로 전이 시키는 방법이라고 보면 되겠습니다. 이번 글에서는 Knowledge Distillation와 이것을 할 수 있는 teacher student learning framework에 대해 알아보도록 하겠습니다.

Knowledge Distillation (지식전이)에 대해 알아보자

지식전이 (Knowledge Distillation)에 대하여 알아보겠습니다. 지식전이란 앞에서 말씀 드렸듯이 이미 학습 된 모델이 갖고 있는 지식을 다른 모델에게 전파하는 방법입니다. 지식전이 (Knowledge Distillation)에 대해서는 이 영상([딥러닝] knowledge distillation(지식전이), teacher student learning)에 아주 잘 나와있으니 참고바랍니다.

Knowledge Distillation(지식전이)의 구성 요소, teacher, student

Knowledge Distillation에 대해 설명해보겠습니다. 분류문제를 예로 들게요. 이 분류문제에 대해 이미 학습된 모델 f_t(x)을 teacher model 이라고 합니다. teacher model 이 갖고 있는 지식을 student model 인 f_s(x)에게 전수할 것입니다.



Knowledge Distillation(지식전이) 방법

teacher model의 지식을 student model에게 전수하기 위해서 아래와 같은 순서를 따릅니다.

  1. teacher model f_t(x) 을 학습시킵니다.
  2. 이제부터 teacher model의 parameter는 freezing 합니다.
  3. 지식 전이를 위해서 Cross entropy loss와 KL divergence를 결합 한 loss를 사용합니다.
Loss = \rho CE ( y, f_s(x)) + (1-\rho) KL(f_t(x) | f_s(x)) , 0< \rho < 1

관찰을 해보면 Cross entropy loss와 KL divergence의 결합임을 알 수 있습니다. 첫번째 term인 Cross entropy 는 student model이 classification 을 잘하기 위한 loss이고 두번째 term인 KL divergence는 teache model의 지식을 student model 에게 전이하는 term 입니다. Cross entropy 와 KL divergence의 의미를 알면 왜 이렇게 loss를 잡는지 이해가 되실겁니다. Cross entropy 와 KL divergence에 대해서는 아래 글을 참고해주세요.

[정보이론] KL-divergence, Kullback-Leibler divergence, KL 발산 설명

[정보이론] Cross entropy (교차엔트로피) 설명

Leave a Comment