본문 바로가기
AI/논문

[ 논문 리뷰 ] Discriminative unsupervised feature learning with exemplar convolutional neural networks

by jennyf 2022. 7. 31.

이번 논문은 Discriminative unsupervised feature learning with exemplar convolutional neural networks 입니다.

 

원래 CNN으로 image classification task를 위한 모델을 학습시킬 때, labeled iamges가 필요합니다 (supervised learning)

또한 모델의 성능을 보장하기 위해 수많은 양의 labeled images가 필요합니다. 

 

해당 논문에서는 모델 학습을 하기에 큰 걸림돌 중 하나인 data acquistion을 줄이고자, CNN을 unlabeled dataset만 구해도 학습시킬 수 있는 방법을 설명합니다. 

 

논문에서는 self-supervised learning인 Exemplar 방법을 제안합니다.

 

 

간단히 설명하자면 unlabeled image로부터 patch를 추출하고, 이 patch에 다양한 transformation을 적용한 뒤에 해당 집합은 동일한 클래스 i를 부여합니다.

동일한 patch에 대해 여러 transformation을 적용한 patch를 동일한 class로 예측하도록 모델을 훈련한다면, 모델은 generic features를 학습할 수 있습니다.

 

이 말은 즉 transformation에 invariant 한 속성을 갖게 되며, 동일한 class 내에 존재하는 patch가 갖고 있는 공통된 특징을 최대화하고, 서로 다른 class 내에 존재하는 patch들의 different feature을 구별하는 능력을 키웁니다.

 

이 방법으로 unsupervised learning methods 중에서 SOTA를 달성합니다. l

 

Pretext Task

 

 

 

Exemplar-CNN

아래 그림처럼 unlabeled dataset으로부터 patches를 추출합니다.

이 patches를 seed patches or exemplars라고 부릅니다.

각 patch에 대하여 a개의 transformation으로 구성된 K개의 transformation set을 적용합니다.

 

 

논문에서는 아래의 transformation을 사용합니다.

총 6가지를 사용합니다. (translation, scaling, rotation, contrast 1, contrast 2, color)

 

 

 

그림 하나의 patches에 대하여 K개의 transformation set을 random 하게 적용한 그림입니다.

가장 왼쪽 상단의 빨간색 칸 안의 사슴이 실제 original patch이고, 그 외의 것들은 random transformation을 거친 것들입니다. 

 

 

이것들을 어떻게 학습시킬까요

 

먼저 각 original patch에 class 번호를 달아줍니다.

그리고 transformation을 통해 생성된 수많은 patches들을 input으로 넣었을 때 해당하는 class number가 나오게끔 학습시킵니다. ( = 동일한 exemplar에서 transform이 적용된 patches들은 하나의 class i를 부여합니다. )

 

즉, unlabeled dataset으로부터 8000개의 exemplar를 추출했다면, 8000개의 class가 존재하고 신경망의 끝에서 8000차원의 softmax 연산을 수행합니다. 

 

이렇게 CNN을 학습함으로써 동일한 class내에 존재하는 상호 정보량을 최대화할 수 있습니다.

 

 

Expriments

exemplar의 수는 8000개가 적당함을 알 수 있습니다.

 

class당 sample 수에 따른 실험 결과입니다.

 

reference