[Computer Vision]딥러닝 성능최적화(3) :SimCLR논문 리뷰(디코더 없이 스스로 학습하기)
앞서 Generative Learning과 proxy task에 대해서 알아보았습니다
그러나 decoder등에서 오는 문제나 proxy task 자체에 대한 몇가지 단점이 존재했습니다.
이를 해결하기 위해 Constrative learning이 나왔습니다
Constrative learning
No decoder
No proxy task
With contrative loss
Pemise : Augmentation은 semantic한 정보를 바꾸지 않는다
예를 들어 변환한 후에도 고양이는 여전히 고양이여야합니다.
그러나 두번째 예시처럼 this is good을 섞는 경우 전혀 다른 의미의 문장이 나오게됩니다.
Positive sample과 Nagative sample을 비교하며 학습
positive sample은 A라는 class를 기준으로 원본 이미지와 이를 augmentation한 이미지입니다
반대로 negatives는 다른 class에서 온 이미지들을 말합니다
simCLR:a simple framework for contrastive learning of visual representations
위에서 설명한 Positive와 Negative의 거리는 멀게 만들면서(유사하지 않게 판단) Postive끼리는
가깝게 만들어주는 방법을 사용합니다.
InfoNCE라는 loss를 도입합니다.
각 변환된 이미지에 대해 simirarity(sim)을 통해 postivie의 유사도는 높이고 negative를 낮게 만들어줘야합니다
이 infoNCE는 전체 비교군(Negative+Positive)에서 positive sample을 positive라고 할 확률입니다
이를 통해 학습시킴으로서 각 유사도를 원하는 방향으로 학습시킬 수 있습니다
Random Augmentations
Crop과 color distortion을 같이 활용하는 것이 가장 높은 성능을 보여주었습니다.
위의 도표는 개의 이미지를 통해 crop만 진행하는 경우 color의 histogram만으로 이미지를 분류할 수 있습니다.
그렇기때문에 더 복잡한(고수준의)학습을 위해 color distortion을 같이 줘서 더 복잡한 정보를 학습하게 만들어줍니다