Contrastive learning (대조 학습)
Contrastive Learning
self-superviesed representation learning 중에서 가장 유망한 방식
유사한 이미지가 저차원 공간에서 서로 가깝게, 동시에 다른 이미지는 서로 멀리 떨어져 있도록 저차원 공간에서 이미지를 인코딩하는 방법을 모델이 학습하는 것
장점은 레이블 없는 데이터를 사용하여 모델을 학습할 수 있고,
레이블링 비용이 많이 드는 경우와 데이터셋 규모가 클 경우에 굉장히 유용하고 새로운 클래스가 들어와도 언제든 대응이 가능하고 일반적인 feature 표현이 가능
단점은 데이터 증강(Data Augmentation)에 중점을 두고 있기 때문에 데이터 증강이 어려운 경우 성능저하 발생
(출처: https://www.blossominkyung.com/deeplearning/contrastive-learning)
Contrastive Learning 학습 방법
- Data Augmentation
: 머신러닝의 핵심인 데이터 확보를 위해 원본 데이터를 유사하게 가공하여 데이터를 증가시키는 것
이미지인 경우, crop, rotate, contrast, invert, flip으로 새로운 이미지 생성
( 출처: https://wikidocs.net/137910)
Supervised Contrastive Learning 훈련 절차
1. Supervised contrastive loss를 최적화하여 이미지를 표현으로 인코딩하는 인코더를 학습
2. 인코더를 고정하고 학습된 표현을 받아 클래스 레이블을 출력하는 선형 레이어를 추가