SimCLR 논문 리뷰


Cite

A Simple Framework for Contrastive Learning of Visual Representations

http://arxiv.org/pdf/2002.05709v3

  • 저자: Ting Chen 1 Simon Kornblith 1 Mohammad Norouzi 1 Geoffrey Hinton
  • 출간일: 2020년 2월 13일
  • 인용횟수:  20426(2024.11.20 기준)

Abstract

본 논문에서는 특수한 아키텍처 또는 메모리 뱅크를 사용하지 않고도 단순하고 효과적으로 Contrastive Learning을 수행하는 모델을 보여준다.

또한 모델의 성능을 향상시키기 위해 Data Augmentation, Non-linear transformation, Large batchsize, More deep and wide model을 적용한다.

이러한 기법을 적용하여 self-supervised learning에서의 ImageNet 데이터셋에 대하여 76.5%(Top-1 accuracy)을 달성하였으며 이전 SOTA 모델에 비해 7%정도 상승하였다.

이는 suerpvised learning의 Reset50과 동등한 수준이다.

또한, ImageNet 라벨데이터의 1%만을 사용하여(semi-supervised learning) fine-tunning 한 경우 SimCLR은 85.8%(top-5 accuracy) 를 달성했다.

Introduction

라벨링 없이 효과적으로 Visual Representation을 학습하기 위해, 기존에는 주로 Generative 또는 Discriminative접근 방식을 사용해왔다.

  • Generative 접근법은 데이터를 pixel-level에서 생성(generation)하는 방식으로, 높은 계산 비용이 요구된다는 단점이 있다.
  • Discriminative접근법은 supervised learning과 유사한 방식으로 학습하지만, 라벨이 없는 데이터에서 라벨을 스스로 생성하여 학습한다. (자기 스스로 이미지를 가리고 맞추게 하는 등)

이를 pretext task라고 하며, 예를 들어 이미지의 특정 부분을 가려놓고 이를 모델이 예측하도록 하는 방식처럼, 학습할 문제를 스스로 만들어내는 것을 의미한다.

그러나 pretext task는 특정 규칙(heuristics)에 의존하기 때문에, 학습된 모델의 일반성(generality)을 떨어뜨린다는 문제가 있다.

최근에는 이러한 Discriminative 접근법도 pretext task를 사용하는 방식에서 벗어나, Contrastive Learning을 활용하는 방식으로 변화하고 있으며 Contrastive Learning은 잠재 공간(latent space)에서 데이터를 비교하여, 기존 방식보다 더 일반적이고 강력한 성능을 보여준다.

우리는 이러한 학습 방식을 기반으로 SimCLR(simple contrastive learning framework)이라는 프레임워크를 설계했다.

Preliminary

Contrastive Learning

두 개의 Input을 네트워크에 주입했을 때 이들이 similar인지 different인지 구별해주기 위한 학습 방법이다.

Supervsied방식으로 학습시키면 직접 라벨링을 다 해줘야 하는 번거로움이 있기 때문에 self-supervised learning방식을 사용한다.

이 방식을 적용하기 위해서는 feature들이 잘 representation되어 있어야 하고, 두 이미지의 embeding된 특징간의 similarity를 계산하는 매커니즘이 필요하다.

  • feature들이 잘 representation 되었다는 뜻은 classification할 때 동일한 class의 이미지들이 feature map에 잘 모여있는 것도 중요하지만, 다른 class와의 구별만 잘 되면 분류 성능도 높아지게 된다.
  • Contrastive learning에서는 같은 class의 이미지가 deformation되어 있어도 feature space상에서 매우 가깝게 위치하도록 하는 것이 목적이다.(ex 앉아 있는 고양이나 누워있는 고양이나 동일한 고양이 이므로 feature space에서 거리가 가까워야 similar하다고 말할 수 있다)

Linear Evaluation

fine-tunning: 사전 학습된 인코더와 FC Layer를 모두 학습하는 것이다.

Linear Evaluation는 Encoder는 고정(Frozen)하고 FC Layer만 학습시키는 것을 의미한다.

이렇게 하는 이유는 self-supervised learning은 task가 classification이 아니기 때문이다.

따라서 classification을 하기 위해서는 Encoder 이후 부분을 제거하고 또는 이후에 FC Layer를 달아야한다.

이때 FC Layer만을 따로 학습시켜 마치 classification 처럼 사용하는 것이다.

Method

  1. 하나의 이미지에 대해 Augmentation을 적용해 2개의 이미지로 만든다.(Crop, Color, Blur 등)
  2. Encoder를 통과
  3. MLP 통과
  4. Contrastive loss 계산(비슷한 이미지에 대해서는 가깝게 서로 다른 이미지에 대해서는 멀어지도록)

Data Augmentation

diagonal부분은 1개의 증강만을 사용한 점수이고 diagonal 부분을 제외한 영역은 2가지 증강이 적용되어 진 점수이다. 그리고 맨 마지막 부분은 각 행들의 평균 점수이다.

여기서 알 수 있는 점은

  • 단일 augmentation만을 적용하면 성능이 안 좋다는 것
  • Crop과 Color Distortion을 같이 구성할 때 성능이 좋다는 것

Augmentation정도에 따른 SimCLR과 Supervised Learning 방식의 성능을 비교한 그림이다.

SimCLR은 Color Distortion이 강해질 수록 성능이 좋아지는 걸 볼 수 있다.

반면에 Supervised learning은 오히려 성능이 감소한다는 것을 볼 수 있다.

한 행에 포함된 히스토그램 들은 같은 이미지의 Raondom Crop된 이미지의 픽셀 분포인데 Color distortion을 적용하지 않은 (a)는 크롭된 결과들의 픽셀 분포가 유사하다는 것을 보여준다.

반면 Coolor distortion을 적용하면 모델이 단순히 색상 조합에 의존하는 것을 방지하고 본질적인 Representation을 학습할 수 있게 해준다.

Unsupervised Contrastive learning Benefits from bigger networks

파란 점과 빨간 점은 각각 100epoch, 1000epoch로 unsupervised contrastive learning을 진행한 결과이다.

초록색 점은 90 epochs의 supervised learning을 진행하였다.

모델의 크기가 점점 증가함에 따라 비지도 학습이 지도 학습(ResNet)보다 큰 모델에서 더 많은 향상을 얻을 수 있다는 것을 알 수 있다.

Non-linear projection

Large batch-size

Evaluation

Semi-Supervsied Learning에 대한 실험 결과

  • Supervised baseline은 라벨 데이터만을 사용하여 학습
  • label-propagation: 소수의 라벨 데이터를 가지고 라벨이 없는 데이터의 라벨을 추정하여 학습하는 방법
    • FixMatch: 라벨이 있는 데이터로 먼저 학습 후 신뢰도 점수가 높은 경우에 대해서만 가짜 라벨을 생성하여 학습하는 방법
  • 일부 라벨 데이터를 사용할 경우 supervised learning 보다 성능이 더 향상 됨

Transfer Learning에 대한 실험 결과

MLP 헤드 쪽만 학습시킨 Linear evaluation에서는 Supervsied가 우세하지만 Encoder와 MLP헤드 둘다 학습시킨 것에서는 self-supervsied Contrastive learning이 우세했다.

[reference]

https://davidlds.tistory.com/39#google_vignette

https://dongwoo-im.github.io/papers/review/2022-11-12-SimCLR/