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
'딥러닝 논문 리뷰 > Computer Vision' 카테고리의 다른 글
[논문리뷰] Deep Learning for Face Anti-Spoofing: A Survey (0) | 2024.02.16 |
---|