(23.02.08)
SSL(self-supervised learning) 논문 리뷰 5탄
self-supervised learning + semi supervised learning의 내용을 담고 있는 논문이다. SimCLR의 성능을 높여줄 뿐만 아니라 semi-supervised learning에서도 sota를 달성했다.
- 논문 제목: Big Self-Supervised Models are Strong Semi-Supervised Learners (NeurIPS 2020)
- https://arxiv.org/pdf/2006.10029.pdf
Abstract & Introduction
적은 labeled data를 통해 많은 양의 unlabeled data를 잘 사용하기 위한 paradigm은 바로
" unsupervised pretraining -> supervised fine-tuning " 이다.
본 논문에서 제안하는 semi-supervised learning 알고리즘은 3단계이다.
1) ResNet모델+simCLR v2를 사용하여 unsupervised pretraining
2) few labeled examples에 supervised fine-tuning
3) unlabeled examples에 distillation
+ network size is important : 클수록 성능향상
Method
간단하게 정리: SimCLR v2를 기반으로 unsupervised learning을 통해서 visual representation을 학습한다.(좌측 부분) 그리고 적은 labeled data를 통해서 fine-tuning한다.(가운데 부분) 마지막으로 fine-tuning된 모델을 가지고 unlabeled data를 통해서 distilation한다. fine-tuning한 모델이 teacher network가 되어 pseudo-label을 통해서 student network를 학습한다.
SimCLR v2라는 unsupervised learning을 통해 뽑아낸 visual representation을 통해서 semi-supervised learning을 한다고 이해했다.
unlabeled data 활용방식 2가지
1) task-agnostic use in unsupervised pretraining
2) task-specific use in self-training/distillation
1. task-agnostic use in unsupervised pretraining
unsupervised pretraining을 통해서 general representations를 학습한다.
general representations는 추후의 supervised fine-tuning을 통해서 specific task에 적용할 수 있다.
task-agnostic이라고 부르는 이유는 최종 목표 task와는 다른 contrastive prediction task를 겨냥하여 학습하기 때문이다.
2. task-specific use in self-training/distillation
예측 성능을 높이기 위해 distillation 할 때 unlabeled data를 함께 활용한다.
Self-supervised pretraining with SimCLR v2 (그림의 왼쪽 부분)
기존 SimCLR에서 아래 3가지를 개선하였고, 나머지(network구조, loss function 등)은 다 동일하다.
1. larger ResNet models: deeper but less wide
- 기존은 ResNet-50이었는데, 저자는 ResNet-152 + 3x wider channels + elective kernels(SK) + channel-wise attention mechanism
2. deeper non-linear network
- 기존은 2-layer projection head였는데, 저자는 3-layer projection head.
- 기존에는 non-linear network(g)를 pre-training하고 나서 그냥 버렸는데, 저자는 pre-training 하고 나서 버리지 않고 projection head의 1st layer로부터 fine-tuning.
3. MoCo의 memory mechanisim
- negative example을 늘리고자 memory network를 추가.
(1% 성능 향상인데 이는 원래 SimCLR이 batch size가 커서 이미 충분히 negative example이 제공되었기 때문이라고 말한다.)
Fine-tuning (그림의 가운데 부분)
기존의 SimCLR에서는 MLP projection head(g)를 pre-training하고 나서 버렸는데, 저자는 MLP head의 첫번째 layer로부터 fine-tuning한다.
이렇게 하면 base network에 fc layer를 더하고 head로부터 fc layer를 제거하는 것과 마찬가지이며, 이렇게 한게 더 좋은 결과가 나왔다고 실험 결과에서 보여준다고 말한다.
Self-training / knowledge distillation via unlabeled examples
최종 target task을 위한 network 성능 향상을 위해서 unlabed data를 합친다.
student network를 학습시키기 위하여 label을 impute하고자 fine-tuned nework는 teacher 로 사용한다.
이렇게 만들어낸 label에 대해서 distillation loss를 최소화하도록 한다.
teacher network는 distillation 동안 고정되어있고, 오직 student network만 trained 된다.
labeled examples이 상당하면 아래의 distillation loss를 사용할 수 있다.
관련 실험 내용
Experiments
Main Contributions
- SimCLR을 개선하였다는 점
- SimCLR v2 기반으로 unsupervised learning을 통해 visual representation을 학습하고 이를 fine-tuning한 network를 teacher network로 가져와 semi-supervised learning으로 활용했다는 점