본문 바로가기

논문리뷰

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

A Simple Framework for Contrastive Learning of Visual Representations(SimCLR)

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


SimCLR은 특수한 아키텍처나 메모리 뱅크 없이도 비주얼 표현(Visual Representation)을 학습할 수 있는 간단한 대조 자기지도 학습(Contrastive Self-Supervised Learning) 알고리즘이다.

주요 구성 요소를 체계적으로 연구하여 다음과 같은 결과를 도출했다:

(1) 데이터 증강의 조합: 효과적인 예측 작업을 정의하는 데 중요한 역할을 한다.
(2) 비선형 변환: 표현과 대조 손실(Contrastive Loss) 사이에 학습 가능한 비선형 변환을 도입하여 학습된 표현의 품질을 크게 향상시킨다.
(3) 대조 학습(Contrastive Learning)의 장점: 지도 학습(Supervised Learning)에 비해 더 큰 배치 크기와 더 많은 학습 단계에서 이점을 얻는다.


이러한 요소들을 결합하여 SimCLR은 이전의 자기지도(Self-Supervised) 및 반지도 학습(Semi-Supervised Learning) 방법들보다 월등히 뛰어난 성능을 보여주었다.


Method:

t ~ T는 증강방법을 모아둔 집합 T(무작위 크롭, 색상 변형, 블러, ...)에서 샘플링한 증강 기법 t를 의미한다.

 

1. 대조 학습 프레임워크(Contrastive Learning Framework)

SimCLR은 잠재 공간(latent space)에서 대조 손실을 통해 동일한 데이터의 다르게 증강된 뷰들 간의 일치를 최대화함으로써 표현을 학습한다.

프레임워크는 다음 4가지로 구성된다.

확률적 데이터 증강 모듈: 주어진 데이터 예제를 무작위로 변환하여 동일한 예제의 두 개의 상관된 뷰를 생성하며, 이를 각각 $\tilde{x}_i$, $\tilde{x}_j$ 로 표기하고, 이들을 양성 쌍(positive pair)이라고 부른다.

무작위 크롭핑 후 원래 크기로 리사이즈, 무작위 색상 왜곡, 무작위 가우시안 블러의 세 가지 간단한 증강을 순차적으로 적용하여 실험했다.

신경망 기반 인코더 $f( \cdot)$: 증강된 데이터 예제로부터 표현 벡터를 추출한다. 네트워크는 제한없이 아무거나 선택해도 되며 여기서는 ResNet을 사용했다.
$\tilde{h}_i = f( \tilde{x}_i ) = ResNet( \tilde{x}_i ) $이고 $\tilde{h}_i \in \mathbb{R}^d $는 average pooling layer 이후의 출력값이다.


작은 신경망 프로젝션 헤드 $g( \cdot)$: 표현을 대조 손실이 적용되는 공간으로 MLP를 사용하여 매핑한다. 

$\tilde{z}_i = g ( \tilde{h}_i ) = W^{(2)} \sigma ( W^{(1)} \tilde{h}_i ) $이고 $\sigma$는 ReLU 활성화 함수이다.

대조 손실을 $\tilde{h}_i$보다 $\tilde{z}_i$에서 계산하는게 훨씬 유리하다는 것을 이후 실험에서 설명한다.

대조 손실 함수: $\{ \tilde{x}_k \}$ 집합이 양성 쌍 $\tilde{x}_i$, $\tilde{x}_j$를 포함한다고 할 때, 주어진 $\tilde{x}_i$에 대해 $\{ \tilde{x}_k \}_{k \ne i}$에서 $\tilde{x}_j$를 찾는 것을 목표로한다.

이제 학습을 위한 배치를 구성하는데 미니배치에서 샘플링된 $N$개의 예제에 대해, 각 예제에서 두 개의 증강된 뷰를 생성하여 $2N$개의 데이터 포인트를 얻는다.

특정 양성 쌍을 제외한 나머지 $2(N-1)$개의 예제들은 해당 양성 쌍의 음성 예제로 간주되어 대조 손실 계산에 사용한다. 즉, 배치 내에서 양성 쌍 1쌍을 제외하고 나머지는 음성 예제로 사용한다.

 

sim은 u와 v 사이의 $l_2$ 정규화된 내적(코사인 유사도)을 의미하고,

식 (1)의 $\mathbb{1}_{[k \ne i ]}$는 $k \ne i $ 일 때 1로 평가되는 지표 함수이고,

$\tau$는 온도 파라미터를 나타낸다.

 

최종 손실은 미니배치의 모든 양성 쌍, 즉 (i, j)와 (j, i)에 대해 계산된다. 이 손실 함수를 NT-Xent(the normalized temperature-scaled cross entropy loss)라고 부른다.

 

위에서 말한 모든 방법에 대해 아래 알고리즘 1에 요약되어있다.

 

1. Input :

배치 크기 $N$, 온도 파라미터 $\tau$, 네트워크 구조 $f$(인코더)와 $g$(프로젝션 헤드), 증강 기법의 집합 $T$

 

2. For sampled minibatch $\{ x_k \}^N _{k=1}$ do :

미니배치에서 샘플링된 데이터 $\{ x_k \}^N _{k=1}$에 대해 아래 단계를 수행

 

3. For all $ k \in \{ 1, \cdots, N \}$ do :

각 데이터 샘플 $x_k$에 대해 2가지 증강 함수 $t,t' \sim T$를 샘플링

 

4. Draw two augmentation functions $t \sim T$, $t' \sim T$ :

증강 함수 $t$와 $t'$를 증강 기법의 집합 $T$에서 샘플링

 

5. The first augmentation:

1번째 증강 $t$를 데이터 $x_k$에 적용하여 $\tilde{x}_{2k-1} = t (x_k )$를 얻은 후

인코더 $f$를 사용하여 표현 벡터 $h_{2k-1} = f ( \tilde{x}_{2k-1} )$를 계산하고,

프로젝션 헤드 $g$를 사용하여 $z_{2k-1} = g ( h_{2k-1} )$를 계산

 

6. The second augmentation:

2번째 증강 $t'$를 데이터 $x_k$에 적용하여 $\tilde{x}_{2k} = t' (x_k )$를 얻은 후

인코더 $f$를 사용하여 표현 벡터 $h_{2k} = f ( \tilde{x}_{2k} )$를 계산하고,

프로젝션 헤드 $g$를 사용하여 $z_{2k} = g ( h_{2k} )$를 계산

 

7. For all $i \in \{ 1, \cdots, 2N \}$ and $j \in \{ 1, \cdots, 2N \} $ do :

각 쌍에 대해, $s_{i,j} = z_i^{\top} z_j / ( || z_i || || z_j || )$로 유사도를 계산

 

8. Define $l(i, j)$ :

손실 함수 $l(i, j)$를 정의

 

9. update networks $f$ and $g$ to minimize $\mathcal{L}$

네트워크 $f$와 $g$를 업데이트하여 손실 $\mathcal{L}$을 최소화

 

10. return encoder network $f( \cdot )$, and throw away $g( \cdot ) $

최종적으로 인코더 네트워크 $f( \cdot )$를 반환하고, 프로젝션 헤드 $g( \cdot ) $은 버림

 

만일, 배치 크기 $N$을 8192로 한다면, 각 양성 쌍에 대해 두 증강 뷰에서 총 16382개의 음성 예제를 갖는다.

 

2. 대조 표현 학습을 위한 데이터 증강(Data Augmentation for Contrastive Representation Learning)

 

논문에서는 여러가지 데이터 증강 기법을 사용했다.

 

위 그림은 2개의 증강 조합에 대한 ImageNet top-1 정확도이다.

대각선은 단일 변환으로 1가지 증강기법만 사용한 경우다.

예를들어, 1행 1열은 Crop & Crop으로 단일 변환만 적용한 경우로 브랜치 2개다 랜덤으로 Crop을 한다.

만일, 3행 1열처럼 Color & Crop이면 한쪽 브랜치는 색상 왜곡을 다른쪽 브랜치는 Crop을 한다.

참고로 ImageNet 이미지의 크기가 다르기 때문에 모든 이미지는 맨처음에 Crop & Resize를 수행한다.

 

특히, 색상 왜곡과 크롭&리사이즈 2개의 조합이 가장 성능이 좋았는데 이는 무작위 크롭만 사용했을 때 패치가 유사한 색 분포를 공유하기 때문에 색 히스토그램만으로 이미지를 구별한다. 따라서, 색상 왜곡을 통해 더 좋은 표현을 학습할 수 있게 된다.

 

색상 증강은 학습된 비지도 모델의 성능을 상당히 향상시킨다. 특히 지도학습과 비교했을 때 지도학습에서는 색상 변환 강도에 따라 성능차이가 없지만 대조학습에서는 상당히 있는 것을 확인할 수 있다. 이를 통해 지도 학습에서 정확도를 높이지 않는 데이터 증강이 대조 학습에서는 상당히 도움이 될 수 있음을 보여준다.

 

3. 인코더와 헤드의 아키텍처(Architectures for Encoder and Head)

 

대조 학습은 특히 더 큰 모델에서 더 많은 이점을 얻는다고 한다.

 

 

그리고 비선형의 프로젝션 헤드가 이전의 표현 품질을 향상시킨다고 한다.

 

위 테이블을 보면 프로젝션 헤드를 거친 후의 표현보다 이전의 표현이 더 많은 정보를 가지고 있다는 것을 확인할 수 있다. 이는 비선형 프로젝션 헤드가 일부 정보를 손실시킨다는 의미이고 이 정보 손실은 대조 손실이 데이터 변환에 불변하도록 학습되는 과정에서 발생할 수 있다. 즉, 프로젝션 헤드가 대신해서 정보 손실이 된다고 생각하면된다. 때문에 나중에 프로젝션 헤드를 버리고 정보가 더 많은 이전의 표현을 사용한다.

 

4. 손실 함수와 배치 크기(Loss Functions and Batch Size)

대조 학습은 더 큰 배치 크기와 더 긴 학습에서 더 많은 이점을 얻는다고 한다.

 

또한, $l_2$ 정규화와 낮은 $\tau$가 표현 품질을 개선하는데 기여한다.