-
앙상블(Ensemble) 기법을 통해 학습된 다수의 큰 네트워크들로부터 작은 하나의 네트워크에 지식을 전달할 수 있는 방법론 중 하나다.
-
큰 네트워크들인 전문가(Teacher) 모델에서 출력은 하나의 확률값만 나타내지만, 이를 분포 형태로 변형해 숙련가(Student) 모 델의 학습 시 모델의 Loss와 전문가 모델의 Loss를 동시에 반영하는 형태로 학습된다.
-
모델 압축 기술과 같이 신경망을 간소화하는 방식으로 이루어지고 있지만, 훈련된 네트워크보다 더 큰 네트워크로의 지식 전의 (Knowledge Transfer) 연구도 진행 중이다.
-
지식 전이 기법 중에서 더 넓은 네트워크를 만들 때 정보를 동일하게 전달하는 연산(Operation) 방법도 가능하다.
-
Knowledge Distillation은 왜 등장했을까?
- 연구 및 개발을 통해 만들어진 딥러닝 모델은 다량의 데이터와 복잡한 모델을 구성하여 좋은 정확도를 내도록 설계된다.
- 모델을 배포한다고 생각했을 때, 모바일 장치는 강력한 하드웨어가 아니기 때문에 복잡한 모델이 적합하지 않을 수도 있다.
- 복잡한 모델 T : 예측 정확도 99% + 예측 소요 시간 3시간
- 단순한 모델 S : 예측 정확도 90% + 예측 소요 시간 3분
- 배포 관점에서는 모델 S가 더 적합하다.
- 모델 T와 모델 S를 활용하는 방법이 지식 증류이다.
-
Knowledge Distillation은 어떻게 하는 걸까?
-
Soft Label
- 이미지 클래스 분류와 같은 task는 신경망의 마지막 softmax 레이어를 통해 각 클래스의 확률값을 출력한다.
- 다음과 같은 수식을 통해 i번째 클래스에 대한 확률값(qi)
qi=∑jexp(zi)exp(zi)
-
-
기존의 개 사진의 레이블을 Original(Hard) Target이라고 생각한다.
-
cow | dog | cat | car |
---|
10−6 | .9 | .1 | 10−9 |
-
학습한 딥러닝 모델에 사진을 넣는다면 클래스마다 확률값(q)를 출력한다.
-
그에 따라 가장 높은 출력값인 0.9의 클래스 개를 예측한다.
-
이러한 출력값들이 모델의 지식이 될 수 있다고 본다.
-
softmax에 의해 작아 모델에 반영하기 쉽지 않다.
-
-
출력값의 분포를 좀 더 soft하게 만들면, 이 값들이 모델이 가진 지식이라고 볼 수 있다.
-
이러한 soft output을 dark knowledge라고 표현한다.
qi=∑jexp(zi/T)exp(zi/T)
- soft하게 만들어 주는 과정을 수식으로 표현하면 위와 같다.
- 기존 softmax와 다른 점은 T라는 값이 분모로 들어간다.
- 온도(temperature)라고 표현하고, 이 값이 높아지면 soft하게 낮아지면 hard하게 만든다.
-
Distillation Loss
- 큰 모델을 학습 시킨 후 작은 모델을 손실 함수를 통해 학습한다.
L=(x,y)∈D∑LKD(S(x,θS,τ),T(x,θT,τ))+λLCE(y^s,y)
L은 손실함수, S는 Student model, T는 Teacher model을 의미한다.
(x, y)는 하나의 이미지와 그 레이블, θ는 모델의 학습 파라미터, τ는 temperature를 의미한다.
- 손실함수는 크게 기존 이미지 분류에서 사용하는 Cross Entropy Loss(LCE)와 Distillation Loss(LKD)로 구성된다.
- LKD는 학습된 Teacher model의 soft labels와 Student model의 soft predictions를 비교하여 손실하수를 구성한다.