AI/Computer Vision

[CV] Few-shot learning 이란?

도도걸만단 2024. 6. 18. 15:03
반응형

 

The Multi-Agent Behavior Dataset: Mouse Dyadic Social Interactions 논문을 읽다가

few shot learning에 대해 나왔는데 잘 모르는 개념이라 적어본다.

https://arxiv.org/abs/2104.02710


Few shot learning이란,

(O) “Few”한 데이터도 잘 분류할 수 있다

(X) “Few”한 데이터로 학습을 한다 

 

Few-shot Learning을 배우기 위한 용어

  1. Training Set 2) Support Set 3) Query image
  • Training Set : 구분하는 방법을 배움, 모든 클래스의 샘플 수가 많은 set
  • Support Set : 레이블링된 적은 수의 image set
  • Query image 가 주어질 때, Query image 가 Support Set (추가적 정보)과 비교해서 그 중 어떤 것과 유사한지, 같은 종류인지 맞춤

정리하자면

Few-shot Learning 의 기본 학습 방법 : 유사성을 학습

  • 새로운 domain / unseen dataset 이 few하게 있는 경우 사용
  • “어떤 클래스에 속한다”고 답을 뱉는 것이 아닌, 유사성을 판단해서 같은 클래스”인지 아닌지”를 “맞추는” 것
  • Training Set 에서 각 사진별로 중요한 feature들을 추출해서 “구분하는 법”을 배우는 것
  • Supervised learning과 차이 : “Training set에 없는 class를 맞추는 문제"
  • Feature extraction 을 잘 수행하도록 모델의 아키텍처를 구성 → 일반적인 Conv-ReLU-Pooling layer 가능
  • 기초 Few-shot Learning 은 Siamese Network 샴 네트워크를 사용, 같은 CNN 모델을 이용하여 hidden representation 을 각각 구한 뒤, 이 차이를 이용하는 방식. (하단에 샴 네트워크 설명 있음)

Meta learning ?

“구분하는 법을 배우는 법” = Meta learning = Learn to Learn

Few shot learning은 Meta learning의 한 종류인 것.


알기 쉽게 예시를 들어보자.

  1. training set을 학습하고 (여기엔 천갑산, 개 class는 없음)
  2. query로 otter image를 줬을 때
  3. support set (few dataset, 이걸 학습한다는게 아님 학습은 training set으로!) 을 통해 추가 정보 힌트를 얻어 같은 종류처럼 보이는, 유사성이 제일 높은 클래스 otter 를 고르는 것

 

training set엔 천갑산과 개가 없다.

이때 query를 수달을 주고

support set 추가 정보를 줬을 때

 

 

otter를 잘 고르게 된다.


k-way n-shot Support Set 표현

  • k-way : Support set이 k개의 클래스로 이루어짐,
  • n-shot : 각 클래스가 가진 sample 개수
  • n=1, one-shot learning이라고 함.

k가 클수록 모델의 정확도는 낮아짐. (Query image가 k개의 클래스 중 어떤 것과 같은 것인지 묻는 것이니까 선지가 많아질수록 헷갈리고 어려워지겠죠?)

n이 클수록 모델의 정확도는 높아짐.(비교할 사진이 많아져서 어떤 클래스에 속하는지 잘 알 수 있음)


Siamese Network (샴 네트워크) 원리

 

  • f : cnn for feature extraction. (똑같은 구조, 똑같은 파라미터 사용)
  • h1, h2 : feature vectors about x1 and x2
  • z : |h1 - h2| 두 feature vector 사이의 차이, vector z를 0~1의 scalar로 mapping

 


유사성 도출

결과 중 Support Set의 Squirrel(다람쥐) 클래스 이미지와 Query 이미지가 sim function 유사성이 가장 높음

→ Query = 다람쥐 클래스 라는 결론을 도출 가능

 

 

 

 

 

반응형