반응형
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을 배우기 위한 용어
- 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의 한 종류인 것.
알기 쉽게 예시를 들어보자.
- training set을 학습하고 (여기엔 천갑산, 개 class는 없음)
- query로 otter image를 줬을 때
- 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 = 다람쥐 클래스 라는 결론을 도출 가능
반응형
'AI > Computer Vision' 카테고리의 다른 글
[CV] Xvfb 설정 nvidia-smi랑 연결, error, OpenGL 사용법 /pyglet.canvas.xlib.NoSuchDisplayException: Cannot connect to "None" (0) | 2025.01.30 |
---|---|
[CV] NVS evaluation metrics, 이미지 합성 평가지표 (0) | 2025.01.24 |
[CV] DeepLabCut 설치 / 사용법 (2) | 2024.06.26 |
[CV] 컴퓨터 화면 원점, 좌표 설정 (1) | 2024.06.07 |
CNN(Convolutional Neural Network)과 Diffusion model 차이점 (1) | 2024.06.03 |