Self-Supervised Learning의 관한 하나의 방법론을 제시한, Google Brain에서 낸 논문인 'A Simple Framework for Contrastive Learning of Visual Representations', 줄여서 SimCLR 논문을 요약/정리해보려 한다.
기존의 Supervised Learning은 양질의 label 정보를 충분히 가지고 있는 데이터를 사용해야만 최적의 model을 만들 수 있다. 하지만 양질의 데이터 및 label 정보를 얻는 것은 시간과 돈이 많이 필요하다. 이러한 문제를 극복하기 위해 데이터에서 얻을 수 있는 정보를 사용해서 자체적인 label을 얻기 위해 고안된 방법이 Self-Supervised Learning이다.
Self-Supervised Learning 은 딥러닝 분야에서 최근 가장 핫한 토픽 중 하나이다. 사실 Self-Supervised Learning은 그 자체로 분류 및 예측 task의 정확도를 높이는 것이 목적이 아니다. Backbone 모델에서 더 좋은 representation(feature)을 학습하고 추출할 수 있도록 하여 차후 task에서 성능을 올리는 것이 목적이다. 이를 위한 초기 연구들은 보통 Jigsaw Puzzle나 Rotation 등의 간단한 Pretext Task를 직접 선정하여 backbone 모델을 학습시키는 것이었다. 하지만 최근 Self-Supervised Learning 연구 동향은 Pretext Task 없이 Contrastive Learning을 통해 학습하는 것이다.
Human supervision 없이 Representation을 학습하는 것은 오랜 연구 분야였다. Representation을 학습한다는 것은 쉽게 말해, 인간의 간섭 없이 모델이 스스로 task에 적합한 feature들을 알아낸다는 것이다.
Contrastive Self-Supervised Learning을 활용하는 SimCLR 논문은 학습과정에서 data augmentation과의 차이를 학습하고 embedding layer를 깊게 쌓음으로써 유사도를 비교하는 공간인 feature space를 더 개선하여 image representation 학습 성능을 크게 향상 시키는 데에 기여하였다.
논문에서는 다음의 중요한 3가지 사항을 명확히 밝히고 있다.
: Data augmentation 종류 (RandomResizeCrop, Random Color distortion, Gaussian Blur)
: Random sampling된 Data augmentation 기법
: Augmentation된 이미지
: Base Encoder (ResNet-50)
: ResNet-50 output에서 Global Average Pooling 된 vector
: non-linear representation을 적용하는 Projection head (Two-layer MLP)
: Projection head 통과 후 생성된 vector
Contrastive loss function : 간의 NT-Xent Loss
어떠한 관측치에 data augmentation()을 적용하여 2개의 pair image를 만들고 이는 positive pair에 해당한다. 나머지 minibatch에서 생성된 image들은 negative sample로 취급된다.
Data augmentation 이후 생성된 각각 는 는 를 통과하여 encoding 되어 Representation 를 생성한다.
이후 각각 은 1개의 hidden layer를 지니는 MLP를 통과하여 를 생성하고 이는 Contrastive loss를 구하기 더 좋은 latent space로 이동된다.
: Cosine similarity
𝜏 : temperature scaling parameter
: 같은 이미지에 대해 다른 augmentation을 적용한 두 이미지
: batch size
위의 SimCLR 전체 framework와 위의 그림을 보면 학습 알고리즘과 contrastive learning 컨셉을 전부 이해할 수 있다.
아래의 직관적인 그림을 보면 더욱 더 쉽게 이해할 수 있다.
Training
- Batch size: 256 ~ 8192
- LARS optimizer 사용 : 많은 Batch size 학습을 감당하기 위해
- Aggregating BN mean and variance over all devices
Dataset
- ImageNet 2012
Evaluation
- Linear Evaluation Protocol : representation까지의 parameter를 freeze하고 linear layer 하나만 추가하여 supervised learning, evaluation 진행
Self-supervised Learning Simple framework로 Self-supervised learning, Semi-supervised learning, Transfer learning의 성능을 크게 개선하였다.
Supervised learning과는 다른 augmentation과 non-linear projection head를 제안하였다.
Representation을 학습하는 것으로 Supervised learning 수준의 성능을 달성하였다.
기존의 Pretext task를 활용하지 않고 Memory Bank 또한 필요로 하지 않는다.
original SimCLR paper : https://arxiv.org/abs/2002.05709
The Illustrated SimCLR Framework : https://amitness.com/2020/03/illustrated-simclr/