HeYStRanGeR
article thumbnail

(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를 최소화하도록 한다.

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으로 활용했다는 점

 

 

728x90
profile

HeYStRanGeR

@HeYStRanGeR

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!