안녕하세요, 박천성 연구원입니다. 이번 포스트에서는 간단한 아이디어로 큰 성능 향상을 도출했으며 실제로 다양하게 적용해 볼 수 있는 논문을 소개해보고자 합니다. “Label Refinery: Improving ImageNet Classification through Label Progression, Bagherinezhad et al” 입니다.
먼저 이 논문의 main contribution을 말씀드리고 싶습니다.
- 정말 단순한 아이디어인데, 성능향상이 크고 활용도가 매우 넓습니다. 비단 classification 뿐만 아니라, segmentation 등에도 적용해 볼 수 있고(잘 될지는 아직 모르지만), 단순히 성능향상을 위함이 아니라 uncertainty prediction이 가능한 모델을 만들 수도 있을 것 같습니다.
- 실험적 측면 : 이 논문에서 제시한 방법에 대해 다양한 모델, 다양한 loss, 다양한 방법을 적용해 각각의 성능향상의 정도를 전부 보여주었고, 자세하게 기술해놓았습니다. 실험에 정말 많은 시간을 쏟은 것 같습니다.
Intro

그림(1)의 (a)는 cat일까요? 아니면 ball일까요? 대부분의 사람들은 cat이라고 대답할 것 입니다. 물론 label도 cat이라고 되어있겠죠. 하지만 cat이라고해서, ball이 없지는 않습니다. 더욱이 평소 model을 트레이닝할때는 그림(1)의 (b)처럼 crop되어 model에 넣어질 수 있기 때문에 문제가 될 수 있습니다. 이런 문제를 보다 나은 방법으로 해결하기 위해 이 논문이 나왔습니다.
- Incompleteness : A natural image of a particular category will contain other object categories as well.
- Taxonomy Dependency : Categories that are far from each other in the taxonomy structure can be very similar visually.
- Inconsistency : To prevent overfitting, various loss functions and regularization techniques have been introduced into the training process. (ex. random crop)
논문에서는 위 세가지를 지적하고 있습니다. 첫번째로, 자연의 이미지에는 그림(1)과 같이 여러가지 class가 동시에 등장할 수 있다는 것입니다. 가장 중요한 지적인 것 같습니다. 자연으로 부터 얻어지는 대부분의 이미지에는 크기가 다를 수는 있어도 여러 class가 동시에 존재할 수 있습니다. 또한 어느 한 class로 지정하기엔 덜 명확한 class도 존재할 수 있습니다. 두번째로는 class들간의연관성이 없는 경우에도, 비슷하게 생긴 경우가 많이 존재한다는 것 입니다. 뒤에 나올 그림(10) 처럼 축구공처럼 생긴 열기구가 있다면 관련성이 떨어지는 class이지만 그림상으로는 어떤 class라고 prediction하는 것이 애매한 경우가 있습니다. 마지막으로 random crop과 같은 data augmentation들이 그림(1)과 같이 label class가 아닌 다른 class로 보이게 끔 만들 수 있습니다.
Related work
기존 방법론의 한계점들을 살펴보았는데요, 이것들을 현재까지 어떻게 다뤄 왔는지 살펴보도록 하겠습니다.
- Label smoothing : Softening labels (uniformly redistributes 10% of the weight from the ground-truth label to other classes to help regularize during training).
- Incorporating Taxonomy : Design hierarchical loss to reduce the penalty for predictions that are close in taxonomy to the ground-truth.
먼저, label 이 하나로 정확히 prediction되어야 하는 조건을 완화하기위해 random하게 다른 class에 weight를 나누어 주는 방법을 생각해볼 수 있겠습니다. 어느정도 smoothing되는 효과는 있겠지만, noise질 수 있고, 오히려 training 에 방해가 될 수 도 있습니다. 그 다음은 Taxonomy를 직접적으로 활용하는 방법으로 predefined taxonomy에서 가까이에 붙어있는 class로 잘못 prediction한 경우, penalty를 낮춰주는 식으로 taxonomy를 고려하는 방법입니다. 하지만 이 역시 주어진 input에서도 실제로 비슷하게 생긴 class인지 알 수 없기 때문에 한계가 있다고 할 수 있습니다.
Teacher-student framework
본 논문에서 사용된 teacher-student framework은 teacher network 를 먼저 학습시키고, student network를 GT가 아닌, teacher network로 부터 학습시키는 framework입니다. 보통 student network를 teacher network로 부터 training 시키는 이유는, 시간 단축 그리고 모델축소의 목적이었습니다. 하지만 오히려 성능까지도 끌어올리는 방법론들이 등장하면서 [2] 주목을 받고 있습니다. 본 논문에서도, teacher-student framework를 시간단축이나, 모델축소의 목적으로 사용하지 않고, 성능향상의 목적으로 사용했습니다.

본 논문은 그림(4)에서처럼 Teacher-student framework을 구축하였습니다. 첫번째 model만 기존의 학습방법대로, GT를 통해 학습시키고, 그 model을 teacher모델로 사용합니다. 그리고 동일한 training image에 대해, teacher model의 prediction값을 GT하여 student model을 학습시킵니다. 만들어진 student model이 학습이 완료되면, 이번엔 그 student모델을 teacher모델로 삼고, 다음 student model을 같은 방법으로 학습합니다.
Training

Teacher model로 부터, student model을 학습시키는데에는 KL divergence를 활용합니다. 결국에는 teacher model의 prediction으로부터 student model을 학습시키는 것이기 때문에, prediction의 distribution에 관련된 loss term이 필요할 것이고, 본 논문에서는 그것을 KL-divergence로 두고 문제를 풀었습니다. 수식(1) KL-divergence를 보면 알 수 있듯이, P 와 Q 가 비슷해질 경우에 KL-divergence는 작아지게 됩니다.
는 teacher model의 prediction 을 의미하고
는 학습시킬 student model의 prediction을 의미합니다. 그런데 수식을 자세히 살펴보면
Results
Examples
결론
본 논문의 핵심 아이디어는 정말 간단합니다. 기존의 학습방법으로 학습시킨 model의 결과를 가지고, 새로운 model을 학습시키게 된다면, GT label이 100% 정확한 label이 아니기 때문에 genralization에 더 도움을 줄 수 있을것이다. 물론 그 GT label을 사람이 전부 tagging하여 100%정확한 label을 만들 수 있다면 당연히 더 좋겠지만, 그럴수 없기 때문에 어느정도 이미 학습된 model을 활용하여 그것을 가능케 했고, 충분히 유의미한 성능향상을 이끌어 냈다는 것입니다.
이 방법론은 annotation이 값 비싼 dataset, dataset의 품질이 조금은 의심될 때 혹은 GT label이 정확할 수 없는 경우에 유용하게 활용될 수 있을 것 같습니다.
[1] Label Refinery: Improving ImageNet Classification through Label Progression, Bagherinezhad et al.
[2] A Gift from Knowledge Distillation: Fast Optimization, Network Minimization and Transfer Learning, Yim et al, CVPR 2017