[TIL] Few Shot Learning

박상우·2023년 1월 16일
0

TIL

목록 보기
5/12
post-thumbnail

말 그대로 "Few" 한 데이터도 잘 분류할 수 있는 학습 방법론

Few Shot Learning

Few 한 데이터도 잘 분류할 수 있는 것이지, Few 한 데이터로 학습을 하는 것은 아님

인간에게 좌측 이미지로 학습을 한 후, 오른 쪽 이미지를 예측하라고 하면 대부분 천산갑이라고 답변을 할 것

전통적인 딥 러닝 모델은 이 네 장만으로 학습할 수 없음
반면 인간은 구분 하는 방법 즉 "Meta Learning"을 하였기에 이를 분간할 수 있음

다만 우리가 구분하는 방법을 배우는 과정에서는, 수많은 학습이 존재

Few Shot Learning은 이러한 점에서 착안한 Meta Learning의 한 종류로서, 배우는 방법을 배울때 방대한 데이터(동물 이미지)를 사용한 후, 구분하려는 Task(아르마딜로, 천산갑)에 필요한 데이터가 없을 때에도 잘 구분하게 하는 방법

여기서 방대하지만 query data가 포함되어 있지 않은 데이터를 Training Set, 모든 class와 적은 데이터가 있는 데이터를 Support set, 예측해야 하는 set을 query set이라고 칭함

기존 방법론과 차이점

Supervised Learning은 아래의 그림처럼 Query Image가 Training Set에 포함 되어 있음

Few Shot Learning은 Training set에 없는 class를 맞는 문제 흔히 K-way N-shot 이라는 표현을 쓰는데, K-way는 support set이 K개의 class이고 n-shot은 각 클래스가 가진 sample이 n개 임을 칭함
즉 K가 작고 n이 클수록 모델의 정확도가 높아짐

Transfer Learning과의 차이점은 사실 조금 애매함
굳이 뽑자면, 기존 layer를 freeze할 필요 없다는 점과 fine-tuning이 꼭 필요하지는 않다는 점

학습 방법

  • 유사성을 학습

두개의 사진이 주어졌을 때 사진이 유사한지, 다른지를 판단할 수 있다면, query image가 주어졌을 때 support set과 비교하여 어떤 class에 속하는지 파악할 수 있음

기초 Few Shot Learning은 샴(쌍둥이) 느테워크를 사용


Positive와 Negative pair를 번갈아가며 학습한 후, 유사성을 학습시키고 최종적으로


support set과의 비교를 통해 query image를 구분할 수 있음

내 생각

구력이 부족해 실무에 사용하기는 힘들 것 같음
다만 유용한 방법론을 하나 배워가는 기분
특히 구분하는 방법을 학습한다는 것이 Crucial point인 것 같음

profile
세상아 덤벼라

0개의 댓글