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:

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$가 표현 품질을 개선하는데 기여한다.