-
[ICLR2015] Fitnets : Hints for thin deep nets논문&부가지식 2021. 2. 26. 12:29
ICCV_KD(hanbeen) 준비하면서 가장 유사한 접근법이 아닌가 싶다.
Abstract & Introduction
이전 연구의 단점 : 현재의 네트워크들은 모두 Deep함(15년도 논문이라 최근 모델들은 없음. 이 논문 이후에 Resnet, VGG나옴). 따라서 이 추세에 맞는 학습을 해야 되는데 이전 연구들은 depth는 모두 비슷한 구조를 쓰고 성능 향상을 시켰다. 따라서 저자들은 Depth를 강조하면서 다양한 깊은 네트워크들의 학습에 도움이 되는 방법론을 제시한다. 또한 이 논문은 나온지 좀 되서 실험 데이터셋이 old하다.
Method
3가지 loss를 소개한다. 1. Cross entropy 2. KL loss 3. hint loss.
1과 2는 그냥 기본적으로 알고 있는 loss이고 hint loss 는 아래와 같이 정의되어있다.
$$L_{HT}(W_{Guided}, W_r) = \frac{1}{2} \Vert u_h(x; W_{Hint}) - r(v_g(x:W_{Guided});W_r) \Vert^2$$
여기서 $u_h$, $v_g$는 teacher/student의 function이라고 되어있는데 그냥 각각의 모델의 feature map이라고 생각하면 된다. 또한 student에 $W_r$이 있는 것은 teacher의 feature와 크기를 맞추가 위한 conv layer라고 생각하면 된다. 즉, feature map의 shape를 맞추고 그것을 $L^2$ norm을 씌운 것이다. 또한 저자들이 제시한 훈련 알고리즘은 2단계로 나누었는데 논문에 있는 알고리즘을 보면
1. $W_r$ 즉 새롭게 shape를 맞추는 laayer를 정의
2. $W_{Guided}$는 hint loss 를 최소화, 즉, teacher의 feature map을 따라하기 위해 $W_{Guided}, W_r$을 학습.
3. KD loss 학습.
으로 볼 수 있다.
또한 저자들은 Curriculumn Learning이라는 과거의 비슷한 개념을 꺼내왔다. Curriculum learning은 학습이 더 잘 아루어 질 수 있도록 지금까지의 학습 과정을 토대로 새롭게 학습을 정의하는 것이다. 하지만 이 FitNet에서는 어느 feature를 뽑아야 할 지 경우의 수가 아주 많은 부분에서 curriculum learning과 비슷하지만, curriculum은 일일히 손수 정해줘야 한다는 점에서 단점이 있다는 것을 제시했다. 하지만 이와 달리 FItnet은 teacher model을 사용함으로써 이러한 문제를 해결한다.Firnet을 curriculum learning에 비유하자면 hint, guided로 학습한 뒤, student를 $\lambda$값을 조정하여 CE로 다시 학습시키는 2단계로 볼 수 있다.
Result on benchmarks datasets
아까 언급하였듯, Fitnet은 teacher의 feature를 이용하기 때문에 경우의 수가 많아진다. 따라서 저자들은 이러한 단점을 방어하는 4가지 방법을 제시하고, 가장 좋은 방법을 주장한다.
1. staage-wise training. 먼저 네트워크의 절반에 해당하는 부분을 feature로 훈련시키고, 전체를 훈련시킨다.
2. stage-wise training with KD. 먼저 네트워크의 절반에 해당하는 부분을 feature로 훈련시키고, KD를 결합한 loss로 전체를 훈련시킨다.
3. 한번에 훈련시킨다. 즉, 모든 loss를 합쳐서 훈련. 대신 classification target을 사용해서 CE로 훈련. 즉, hint + CE
4. 마지막 classification target을 쓰는것이 아니라, KD loss로 훈련. 즉, hint + KD
위 4가지 중 저자들은 2번이 가장 좋은 성능을 낸다는 것을 확인하였다.
중요한 점은, Hint Loss는 regularizer 역할을 한다는 것이다.
'논문&부가지식' 카테고리의 다른 글
[CVPR2018]StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation (0) 2021.04.23 수학 Lemma, Theorem, ... 여러 종류 정리 (0) 2021.04.15 ICCV_KD(hanbeen) 기록들 (0) 2021.02.26 Convolution Layer (0) 2021.02.18 Be Your Own Teacher: Imporve the Performance of Convolutional Neural Networks via Distillation (0) 2021.02.16