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에게 전수하기 위해서 아래와 같은 순서를 따릅니다.
- teacher model f_t(x) 을 학습시킵니다.
- 이제부터 teacher model의 parameter는 freezing 합니다.
- 지식 전이를 위해서 Cross entropy loss와 KL divergence를 결합 한 loss를 사용합니다.
관찰을 해보면 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에 대해서는 아래 글을 참고해주세요.