이하 BAN이라고 줄여서 쓰겠음. 아마 다들 한번쯤 들어봤을법한 논문인데 직접 논문을 열어본건 처음임.
일단 이 논문을 리뷰하는 이유는, BAN과 같은 목적으로 당장 KD 코드를 짜야하는 상황인데 코드를 뜯어보기 전에 어떻게 돌아가는건지 빠르게 확인하기 위함.
What is the paper about?
- Task : Knowledge Distillation
- Main idea : We study KD from a new perspective: rather than compressing models, we train students parameterized identically to their teachers. 따라서, "identical capacity"가 아이디어의 출발점이다.
# Keywords
Knowledge Distillation, Image Classification
Method
teacher는 GT label로 학습.
student는 teacher의 logit을 가지고 학습.
k번째 student는 k-1번째 student의 logit을 가지고 학습.
이렇게 계속 전수한다. 마지막 student를 사용하는 것 같다.
또는 앙상블을 사용할 수도 있다.
이걸 보고 걱정했던게, 전부 메모리에 올리려면 메모리가 크지 않나? 이것. 그러면 다른 task에는 쓰기 어렵다.
뭐 실험결과 보면 앙상블 안 써도 괜찮아서 그러려니 했다.
Loss
Default : teacher와 student간의 CE loss를 쓴다고 한다.
정말 dark knowledge가 효력이 있는건지, 어떤 부분에서 그런건지 알아보기 위해 CWTM, DKPP 방식으로도 해봤다.
CWTM: argmax인것만 남기고 나머지 정보 날림
DKPP: argmax인 것은 그대로, 나머지는 permutation 하는 듯
Experiment
일부러 CIFAR-100을 가져왔다. CIFAR-10, PTB 등등 데이터셋에서 있다.
여기서 BAN-1,2,3이 하나만 쓴거고, Ens 쓴건 앙상블이다.
1. CIFAR10에서는 그렇게 엄청 차이는 없는데, CIFAR100으로 넘어오니까 크다.
=> 더 어려워서 그런가? 확실히 class도 많아지니까 어려웠다보다.
=> 그러면 내가 원래 하려는 action recognition에서는 많은 도움이 될 것 같은데?
그 어떤 경우에서도 teacher보다 error가 큰건 없으니까 항상 도움은 된다는거다. 신기하다. 같은 capacity인데?
2. single network만으로도 괜찮다.
3. 하지만 앙상블을 하면 더 좋아진다.
Summary
- 처음에 생각했던것처럼 효과를 보는게 가능은 하겠다는 희망을 얻음.
- 코드 보러가자. distillation 한번 다 했으면 메모리에서 내리면 되니까 크게 걱정 안해도 되겠다.
댓글