본문 바로가기

AI/논문리뷰

[논문리뷰] A Simple Framework for Contrastive Learning of Visual Representations

논문 링크 : https://arxiv.org/abs/2002.05709

 

A Simple Framework for Contrastive Learning of Visual Representations

This paper presents SimCLR: a simple framework for contrastive learning of visual representations. We simplify recently proposed contrastive self-supervised learning algorithms without requiring specialized architectures or a memory bank. In order to under

arxiv.org

해당 논문은 MoCo와 같이 self-supervised learning의 method로 많이 언급되는 SimCLR 논문이다. 해당 논문은 MoCo와 memory bank와 같이 복잡한 아키텍쳐를 사용하지 않고 간단한 simple framework를 제안한다.

 

-Introduction

 

최근 vision task에서 레이블 데이터를 사용하지 않고 모델을 학습시키는 방법은 많은 관심을 받고 있다. 그중 대표적인 방법이 Semi-supervised learning과 Self-supervised learning이다. 해당 방법들은 풍부한 unlabeled data를 사용하여 모델을 학습하기 때문에, 최근 ImageNet에서 좋은 성능을 보이고 있는 추세이다. 해당 논문은 self-supervised learning에서 simple한 framework를 도입하여 모델을 학습을 수행하며, 해당 방법은 위의 그림에서 보는것처럼 기존의 방법들에 대한 성능을 개선하였음을 보인다.

 

논문에서는 다양한 setting에 따른 실험결과를 보여주며, 궁극적으로는 다음과 같은 contribution을 제공한다.

1. data augmentation은 효과적인 representation을 생성하는 contrastive prediction task를 정의하는데 중요한 요소이며, strong data augmentation을 사용하는 것이 더 성능이 좋다는 것을 실험적으로 보여준다.

2. representation의 quality를 높일 수 있는 학습가능한 nonlinear transformation을 도입한다.

3. contrastive loss에서 normalized embedding과 temperature parameter를 도입하며, 이들로부터 얻는 장점을 실험적으로 증명하고 분석한다.

4. 해당 contrastive learning은 batch size가 클수록, epoch가 길수록 더 좋은 성능을 실험적으로 보인다.

 

 

-Method

 

method는 위와 같이 example x에 대해서 랜덤 sample된 augmentation 기법을 2번 적용하여 두개의 postive pair를 만들고 feature extractor f와 FC layer g를 통과시킨 embedding vector z에 대해서 contrastive loss를 구한다. feature extractor는 다양한 network architecture를 적용할 수 있으며, 논문에서는 ResNet을 사용했다. FC layer는 2-layer로 구성되며, ReLU fuctnion을 사용한다. 이러한 네트워크를 논문에서는 projection head라고 부른다.

 

 

마지막 output z에 대해서는 위와 같은 contrasitve loss를 사용한다. mini batch 크기가 N이라면, 각 data point에 대한 pair를 만들기 위해서 data augmentation을 2번씩 적용하며, N size mini batch 당 총 2N data point에 대해 연산을 수행한다. negative sample은 2N-2개, postive sample은 2개이다. 해당 loss term의 sim은 cosine similiarty를 나타내며, 해당 loss term은 이전 연구의 memory bank에서 사용한 contrastive loss를 사용했다. 해당 loss에서 temperature(타우) 하이퍼파라미터를 추가하여 실험적으로 성능을 개선한다. 자세한 알고리즘은 아래의 그림과 같이 진행된다.

 

 

 

-Data Augmentation for Contrastive Representation Learning

해당 method는 data augmetation을 적용하고, 네트워크를 통과하여 나온 latent vector를 이용하여 contrastive learning을 수행한다. 이 때, 이러한 prediction task는 data augmentation을 통해 정의될 수 있으며, 본 논문에서는 random cropping과 color distoration, Gaussian blur 세가지를 순차적으로 적용한 방법을 사용한다.

 

 

random crop은 위의 그림과 같이 local view를 통해 global view를 맞추는 task(a)와 특정 view를 통해 인전한 view를 맞추는 task(b)를 수행하는 prediction task로 사용되어질 수 있다. 이는 기존의 서로 다른 CNN network를 구성하여 위와같은 prediction task를 수행하게 하는 방법을 훨씬 더 simple한 random crop 방법을 통해 같은 효과를 주었다고 생각할 수 있다.

 

 

위의 그림은 다양한 data augmentation operators를 나타낸다. contrastive learning을 수행하는 prediction task는 위의 그림과 같이 다양한 augmentation을 사용하여 종류를 늘리고 random하게 구성하여 더 넓게 적용시킬 수 있다.

 

 

좋은 representation을 학습하기 위해서 우리는 어떤 data augmentation을 이용해야 할까? 본 논문에서는 앞서 말했던 다양한 data augmentation을 적용한다. 공간적/기하학적 구조를 변형하는 data augmentation으로 cropping, resizing, rotating, cutout이 사용되었고, 이미지의 색상을 왜곡하는 data augmentation으로는 color dropiing, jittering, Gaussian blurring, Sobel filtering과 같은 방법이 사용되었다. 

 

기존의 ImageNet 데이터는 이미지의 크기들이 서로 다르기 때문에 crop&resize가 기본적으로 적용되며, SimCLR 역시 crop&resize를 기본적으로 적용한다. 논문에서는 하나의 branch에는 테스트하길 원하는 다른 augmentation 방법을 추가하고 다른 한쪽 branch는 그대로 두어서 학습을 진행하여 성능을 비교한다. 이러한 비대칭적인 구성은 둘 다 augmentation을 적용했을 때 보다 성능이 낮지만, 공정한 비교실험을 위해 이와같은 방법을 사용한다.

 

 

실험결과, 단일 augmentation을 사용했을때는 성능이 저하 되었으며, 그 이유는 augmentation을 조합했을 경우 predictive task에 난이도가 높아지고, 이러한 과정은 quality가 높은 representation을 학습할 수 있게 도와주기 때문이라고 설명한다. 위의 그림과 같이 그림에서 역시 단일 augmentation은 성능이 좋지 않았으며, color와 crop을 동시에 적용했을때가 성능이 가장 좋은 것을 확인할 수 있었다.

 

 

color와 crop의 조합이 가장 좋은 성능을 보인 이유를 논문에서는 다음과 같이 추측한다. cropping 된 image의 patch는 Global과 local 또는 인접한 view를 파악할때 이미지에 대해 color distribution을 사용하여, 문제를 해결할 수 있을 수 있다. 실제로 위와 같이 color distribution만을 이용하여 image를 구별하는 것 또한 가능하며, color와 crop을 동시에 적용하면 이러한 shortcut으로 문제를 해결하는 것을 막아주고, prediction task의 난이도를 더 hard하게 만들기 때문에 더 일반화된 representation을 학습하는데 도움이 될것이라고 논문에서는 추측한다.

 

 

논문에서 추가적인 실험으로 color distortion의 강도를 높이면서 성능을 측정한 결과, 강도가 높을 수록 SimCLR에서는 성능이 더 좋아지는 것을 확인할 수 있었으며, Supervised learning에서는 도움이 되지 않는 augmentation이 SimCLR에서는 도움이 될 수 있다는 것을 실험적으로 보였다. 또한 AutoAug와 같이 Supervised learning에서 성능을 올리는데 도움을 주는 augmentation이 SimCLR에서는 오히려 성능을 낮춘것 또한 관찰 할 수 있다.

 

 

-Architectures for Encoder and Head

위의 그림은 모델의 파라미터 수가 많아질수록 모델의 성능이 높아지는 것을 나타낸다. 논문에서는 모델의 파라미터 수가 많아질수록 Supervised와 Unsupservised의 성능의 차이가 줄어드는 것을 확인할 수 있었다. 따라서 모델의 크기가 증가할수록 supervised보다 unsupervised learning에서 더 많은 이점이 존재하는 것을 확인할 수 있다.

 

 

위의 그래프는 non linear projection head를 사용했을 때가 linear를 사용하거나 사용하지 않았을 때보다 성능이 더 좋다는 것을 보여준다. 이 때 projection output dimensionality는 크기에 상관없이 성능이 비슷한 것을 확인할 수 있었다.

 

 

projection head는 contrastive learning의 성능을 높여주는데 기여한다. 하지만 이러한 projection head로 출력된 output vector는 feature extractor로 추출된 output보다 시각적인 특징을 잘 표현하지 못하였다. 위의 그림은 10개의 class에 대해서 feature extractor와 projection head의 output vector를 t-SNE 방법으로 군집화한 것이다. (a)가 (b)보다 클래스별로 더 잘 구분되는 것을 확인할 수 있으며, 논문에서는 이에 대해 contrastive learning을 통한 학습 정보들이 projection head를 지나면서 손실 되기 때문이라고 설명한다.

 

 

위의 실험은 앞에서 언급한 projection head를 거친 output과 그전의 output에 대한 실험이며, feature extractor를 통과한 h가 모든 prediction task에서 더 좋은 representation을 표현하고 있는것을 알 수 있다. 즉, projection head에서는 객체의 색상이나 방향과 같은 downstream에서 유용할 수 있는 정보들을 제거하며, 앞에서의 feature extractor만 downstream task에 사용하는 방법이 옳은 방법이라는 것을 보여준다.

 

 

-Loss Function and Batch Size

본 논문에서는 앞에서 언급한 NT-Xent Loss function을 사용한다. NT-Logistic, Margin Triplet은 이전의 Contrastive learning에서 사용한 loss function이다. 논문에서는 NT-Xent를 사용하는것이 가장 좋은 성능을 나타낸다는 것을 실험적으로 증명한다. 아래는 이에 대한 실험이다.

 

 

NT-Xent는 L2 normalization과 temperature를 사용한 cosine simliarity metric 학습방법으로 L2 normalization과 temperature에 대한 영향력을 확인하기 위해 아래와 같은 실험을 진행한다.

 

 

해당 실험에서 L2 normalization을 사용하지 않으면 contrastive accuracy는 더 높지만, linear evaluation에서 더 안좋은 성능을 나타낸다. 즉 더 안좋은 representation을 학습한 것이다. 따라서 L2 normalization은 representation을 학습하는데 있어서 중요하며, L2 normlization을 수행하고 temperature를 적절히 조절하여 사용하는 NT-Xent가 가장 타당한 Loss function이라 주장한다.

 

 

위의 그림은 training epochs와 Batch size에 따른 성능을 나타내며, 학습을 길게할수록, batch size를 크게 할수록 더 좋은 성능을 보인다는 것을 확인할 수 있다. Batch size가 클수록 contrastive learning에서 사용하는 negative sample의 수가 많아지기 때문에 모델의 성능이 올라가며, 학습을 오래 할 수록 random augmentation으로 인한 다양한 negative sample을 이용할 수 있기 때문에 이러한 요소들은 성능개선에 중요한 요소가 될 수 있다.

 

 

SOTA 비교 실험결과는 본 리뷰에서는 생략한다.

 

 

이상 논문 리뷰였습니다 :)