728x90
반응형
survey 논문인 "Contrastive Rerpesentation Learning: A Framework and Review"를 참고하여 Contrastive Learning에 대한 글을 작성합니다.
Contrastive Learning

- 레이블링 없이 특정 Embeding Network를 통해 학습하는 self-supervised Learning 방법론 중 하나
- 입력 sample 간의 대조를 통해 학습된 representation space 상에서 비슷한 데이터는 가깝게( θ(I+) ), 다른 데이터는 멀게 ( θ(I-) ) 존재하도록 representation space를 학습하여 Loss 계산
장점
- 다른 Task로 Fine-tuning을 수행할 때 모델 구조 변경 없이 학습이 가능
- 학습이 간단하면서 효과적임
Architecture

1. Data Augmentation
- 데이터 증강을 통해 하나의 이미지에서 여러 이미지 패치를 생성하고 같은 이미지에서 나온 이미지 패치는 positive pair, 다른 이미지에서 나온 이미지 패치는 negative pair로 Input Image pair을구성한다.
- 증강 기법 : Random crop, resizing, blur, color distortion, perspective distortion 등
2. Generationg Representation v (= Feature Extraction)
- Input image pair을 구성한 뒤 학습(Feauture Extraction)을 진행한다.
- Contrastive Learning network에서는 이 부분을 feature encoder
-

- feature vector v를 더 작은 차원으로 축소하는 작업 수행
- 2048 차원의 feaqture vector v를 128차원의 metric embedding z로 projection (차원 축소 역할)
- 아래와 같이 Projection h는 metric embedding z를 출력하는 함수로 표현

- Projection Head는 간단한 MLP 구조를 취한 뒤 unit vector로 정규화함
- cf.) metric embbeding
- Contrasitive Loss에 들어가는 z를 metric embeddibng라고 표현
- 즉, Projection Head를 통해 feature representation space에서 metric representatioin space로 projection
- 보통 InfoNCE loss or NT-Xent loss(normalized temperature-scaled cross entropy loss)을 loss function으로 사용
- InfoNCE loss : 양의 쌍(positive pairs) 간의 유사도를 최대화하고, 음의 쌍(negative pairs) 간의 유사도를 최소화하는 방향으로 학습
- NT-Xent loss: cross entropy loss를 기반으로 하기 때문에 negative sample들이 기준 sample과 얼마나 다른지에 대한 크기를 반영 / negative sample의 절대적인 양이 중요하기 때문에 batch size가 커질수록(negative smape의 개수가 많아질수록) 성능이 향상
Train 이후에는 Projection Head를 제외하고 Encoder만 feature extractor로 사용한다.
transfer learning 이후 새로운 task 적용을 위하여 predictor를 결합하는 fine-tuning 과정을 거치는 전형적인 pre-text downstream task 형태이다.
cf.) pre-text downstream task : 자기 지도 학습에서 사용하는 과제 설정으로, "pre-text task로 먼저 학습한 모델을 downstream task에 적용하여 그 성능을 평가하는 과정
오늘은 CLIP 논문에 대한 글을 작성하기 이전의 상위 개념인 Contrastive Learning에 대한 학습을 해보았습니다.
728x90
반응형
'DL' 카테고리의 다른 글
| [논문리뷰]CLIP (Learning Transferable Visual Models From Natural Language Supervision) (0) | 2024.11.13 |
|---|---|
| GAN(Generative Adversarial Networks) 리뷰 (1) | 2024.03.16 |
| VGG-16 리뷰 (0) | 2024.03.14 |
| ResNet(Residual Neural Network) 리뷰 (0) | 2024.03.12 |
| YOLO 리뷰 (2) | 2024.03.12 |