[논문리뷰] SupCon: Supervised Contrastive Learning

Supervised Contrastive Learning

 

저자 : Prannay Khosla(Google Research), Piotr Teterwak(Boston University), Chen Wang (Snap Inc.), Aaron Sarna(Google Research), Yonglong Tian(MIT), Phillip Isola(MIT), Aaron Maschinot(Google Research), Ce Liu(Google Research), Dilip Krishnan(Google Research)

 

요약 : 기존 Self-supervised 학습의 문제를 해결하고, Supervised 학습 과정에서 라벨 정보를 활용하는 Supervised Contrastive loss 제안. 실험을 통해 제안하는 방식이 cross-entropy 방법보다 우수한 성능을 보임을 입증.

 

Paper(arxiv): https://arxiv.org/pdf/2004.11362.pdf

Github:


 

1. Introduction

Cross-entropy loss 이미지 분류문제 넓게 사용되고 있는 loss 함수다. 많은 연구자들이 noise label 대한 robustness 부족함 등의 단점을 연구하려 했지만, 실제로 대안으로 제안된 방법은 imagenet 같은 데이터셋에서 좋은 모습을 보여주지 못했고, 최신성능을 보이기 위해 여전히 cross-entropy loss 사용한다.

self-supervised Contrastive learning 주목을 받고 있다. 공통적인 아이디어는 embedding space에서 positive 샘플들과 anchor 함께 pull 하고, 앵커를 negative 샘플들과 멀어지도록 push 하는 것이다. 하지만 라벨이 없어도 학습이 가능한 때문에, positive pair 종종 augmentation 데이터로 구성되고, negative pairs들이 anchor 미니 배치에서 랜덤하게 선택된 샘플들로 구성된다. 

이러한 문제를 해결하기 위해 논문에서는 라벨 정보를 활용하는, self-supervised contrastive  학습 기반 supervised contrastive learning loss 제안한다. 서로 다른 클래스의 임베딩 벡터 보다 동일 클래스의 임베딩 벡터들이 서로를 가깝도록 끌어당긴다.

 

2. Proposed Method

데이터 배치가 입력으로 주어지면, 복사된 batch를 얻기 위해 가장먼저 데이터 augmentation을 두 배로 적용한다. 그 후 두 데이터들은 encoder network를 통해 2048 차원의 임베딩 벡터로 출력된다. 학습 중 이 표현은 추론 과정에서 폐기되는 projection network를 통해 전파된다. Supervised contrastive loss는 projection network의 출력을 이용하여 계산된다. 분류모델로 학습한 모델을 사용하기 위해, 학습이 완료된 모델을 freeze 하고, 그 위에서 linear classifier를 cross-entropy loss를 이용하여 학습했다.

 

2-1. Representation Learning Framework

주요 구성 모듈은 아래와 같이 3가지가 있다.

  • Data Augmentation module: 각각의 입력 데이터에 random augmentation을 적용하고, 입력데이터는 서로 다른 view를 표현한다.
  • Encoder Network: Random augmentation이 적용된 두 입력을 representation vector와 매핑시켜주는 모델.
  • Projection Network: representation vector z vector 매핑시켜주는 모델. 해당 모델은 multi-layer perceptron(MLP) 또는 linear layer 설계 가능하다. 또한 네트워크의 출력을 hypersphere 올려두기 위해 정규화를 진행한다. 이를 통해 inner product(내적) 사용하여 projection space에서의 거리를 측정할 있다. 그리고 contrastive learning 과정이 끝나고 projection network 사용하지 않는다.

 

2-2. Contrsative Loss Functions

주어진 프레임워크에서, 친숙한 contrastive losses 중 하나인, self-supervised 도메인에 대해 supervised 도메인에 적용하기 위한 옵션을 분석한다. 입력 데이터에 대해 두 쌍을 만들고 랜덤 augmentation을 취해주기 때문에, N개의 오리지널 데이터는 2N개의 학습용 데이터로 구성된다.

 

2-2-1. Self supervised contrastive loss

self-supervised contrastive learning에서 사용하는 loss 함수다.

 

 

 

2-2-1. Supervised contrastive loss (proposed loss)

공통적으로 이전의 자기 자신의 augmentation 데이터에서 동일 클래스의 집합 중 하나의 데이터를 이용하여 내적한다. 총 두 가지 loss를 만들었고, 각각은 아래의 속성을 가지고 있다. 

 

Generalization to an arbitrary number of positives.

수식 1과 2,3의 가장 큰 차이점은 동일한 샘플에 대한 augmentation 뿐만 아니라, 동일한 라벨을 가진 모든 샘플을 positive로 사용한다는 점이다. Supervised losses 들은 encoder가 동일한 클래스의 representation을 매우 밀접하게 정렬하도록 하며, 이는 더 견고한 representation space의 clustering을 생성한다. 이는 실험으로 증명하였다.

 

Contrastive power increases with more negatives

수식 2,3은 1과 같이 negative의 합산 방식을 유지한다. 이 방식은 신호와 노이즈(negative)를 구분하도록 하며, negative 샘플을 더 추가하여 성능을 더 향상 시켰다. 이 속성은 많은 연구들과 같이 negative 샘플의 수가 증가하면서 성능이 향상되는 것을 보여준다. 

 

Intrinsic ability to perform hard positive/negative mining

Normalized  representation 사용하면서, 수식 1 hard positive/negative mining 증가하는 구조의 기울기를 포함한다. Hard positive/negative 데이터들은 기울기 공헌도가 크고, easy positive/negative 데이터 들은 작다. 더욱이, hard positive 경우 negative 수가 증가함에 따라 효과가 점진적으로 증가한다. 수식 2 3 둘다  유용한 속성을 유지하고, 모든 positive 대해 일반화 한다. 이러한 암시적 속성을 통해, 많은 losses들이 요구하는 hard mining 문제를 회피할  있다. 

 

 

Experiment Results