KD는 model compression을 위한 가장 있는 방법 중 하나이다.
key idea는 teacher model(T)의 knowledge를 student model(S)로 전달하는 것이다.
그러나 기존 방법들은 S와 T의 학습 능력 간의 큰 차이로 인해 degradation(성능 저하)을 겪는다.
이러한 문제를 해결하기 위해, 이 논문에서는 residual error based KD를 제안한다.
이 방법은 assistant model(A)를 도입하여 지식을 추가로 distillation한다.
구체적으로, S는 T의 feature map을 모방하도록 훈련되며,
A는 S와 T 간의 residual error를 학습하여 이 과정을 돕는다.
이를 통해 S와 A는 서로 보완하며 T로부터 더 나은 knowledge를 얻는다.
또한 우리는 총 computational cost를 증가시키지 않고 주어진 model에서 S와 A를 도출하는 효과적인 방법을 고안했다.
광범위한 실험을 통해 우리의 접근 방식이 CIFAR-100과 ImageNet에서 SOTA를 능가하는 결과를 달성하고, adversarial samples에 대해 strong robustness를 유지한다는 것을 보여준다.
T에서 S로 효과적인 knowledge transfer를 달성하기 위해, 많은 시도들이 있있다.
하지만, 아직 해결되긴 멀었다.
Figure 1.에서 볼 수 있듯이, KD(orange line)는 student(blue line)의 성능을 향상시키는 것을 돕는다.
하지만 여전히 teacher(dashed grey line)와는 상당한 성능 차이가 있다.
이는 두 가지 이유가 있다.
knowledge transfer 과정을 완화하기 위해, 우리는 Residual error based Knowledge Distillation(RKD)라는 새로운 방법을 제안한다.
이 방법은 KD 과정에서 assistant model (A)를 도입하여 S가 T로부터 더 나은 knowledge를 얻을 수 있도록 돕는다.
RKD의 concept diagram은 Fig. 2(b)에 나와있다.
구체적으로, 이 연구에서는 feature map을 knowledge로 취급하며, S는 T와 동일한 feature map을 생성하는 것을 목표로 훈련된다.
student가 idea mimicking(이상적인 모방)을 달성하는 대신,
우리는 additional model A를 도입하여 S와 T의 feature map 사이의 residual error를 학습하도록 한다.
그런 다음 S의 output feature map에 A가 학습한 residual error를 더하여 실제로 사용된다.
이러한 transfer 방식을 통해 final feature map은 T와 더 구별할 수 없게 되어, S와 T 간의 성능 격차가 좁혀진다. (Fig.1 참조)
본 연구의 contribution은 다음과 같이 요약된다 :
KD는 일반적으로 student model S가 well-trained teacher model T로부터 학습하여 T의 predictive capability를 재현하는 것을 목표로 한다.
즉, image-label pair (x, y)가 주어지면, T는 prediction 을 만들어 내고,
S는 와 유사한 결과를 만들어내는 것을 목표로 학습되어진다.
여기서, S가 만들어낸 prediction을 라고 denote한다.
이 목표를 이루기 위해, KD는 CNN model에 포함된 정보를 추출하는 방법을 탐구하고, S의 정보를 T의 정보와 최대한 가깝게 밀착시키는 것을 목표로 한다.
따라서 KD는 다음과 같이 formulated될 수 있다 :여기서 와 는 각각 T와 S의 trainable parameters이다.
는 특정 model의 knowledge를 정의하는 데 도움을 주는 함수이며,
는 두 model의 knowledge 간 거리를 측정하는 metric이다.
Eq. (1)에서 update되는 것은 오직 뿐이며, T는 이미 ground-truth data로 optimized되었다고 가정한다.
classification task의 경우, Cross-entropy loss가 objective function으로 사용된다 :은 #categories,
는 ground-truth label을 나타내는 N-dimensional one-hot vector이며,
는 T가 예측한 soft probability이다.
본 연구에서, 우리는 CNN model의 feature map을 근복적인 knowledge로 다룰 것이다.
일반적으로, model을 a set of blocks로 나눌 수 있고,
각 block의 output은 hidden feature map으로 간주된다.
예를 들어, T는 개의 blocks으로 이루어져 있다.
그리고 개 block의 output에 대응하는, 개의 hidden feature maps을 갖는다.
T는 또한 final feature map 를 soft label prediction 로 변환하는 softmax function에 의해 activated되는 FC layer = classifier를 갖는다.
하지만, [21]에서 영감을 받아, T와 S의 classifier는 동일한 구조와 동일한 learning capacity를 공유하므로 KD 과정에서 제외된다.
(마지막 fc layer는 T와 S가 똑같으니까 제외한다는 말인듯)
T와 마찬가지로 S도 개의 block으로 나뉜다.
따라서 T에서 S로 knowledge를 transfer하기 위해 Eq. (1)은 다음과 같이 simplified된다 :
는 두 tensor 간의 distance를 denotes한다.
다른 말로, 는 와 동일한 feature map을 생성하려고 시도하여, 유사한 성능을 달성하고자 한다.
하지만 S와 T의 representation capacities의 상당한 차이를 고려할 때, S만으로는 T의 feature map의 내재된 knowledge를 충분히 잘 맞추는 것이 쉽지 않을 것이다.
이 문제를 해결하기 위해, 우리는 assistant model(A)를 도입하여 S가 이 mimicking process를 더 잘 수행할 수 있도록 돕는다.
이는 Fig. 3(M.1)에 있다.
구체적으로, 또한 개의 blocks으로 구성된 로, image 를 input으로 사용하며,
loss function과 함께 와 사이의 residual error를 학습하도록 optimized된다 :와 가 각각 optimized된 후, residual error가 더해진 feature map 가 최종적으로 inference에 참여된다.
(극소량이라고 하지만.. A라는 model parameter가 추가되어 같이 학습하는 구조인듯)
A를 도입함으로써 knowledge를 두 단게에 걸쳐 distillation된다.
첫 번째로, S는 Eq. (3)을 통해 T의 hidden feature map을 모방하도록 optimized되고,
그 후 A의 parameter는 residual learning stage에서 Eq. (4)을 사용하여 S가 학습한 feature map을 정제하도록 update된다.
(각 단계에서 또는 중 하나의 model만 훈련된다는 점을 유의하자.)
비록 별도로 훈련되지만, 는 와 동일한 목표를 공유하며, 이는 를 통해 를 근사하는 것이다.
결과적으로, A는 첫 번째 단계에서 놓친 정보를 보완하여 S의 성능을 향상시킨다.