본문 바로가기
대학원 공부

Ai : Few shot Learning

by 월곡동로봇팔 2020. 8. 28.

Few Shot Learning은 적은 데이터를 학습하더라도 좋은 성능을 내도록 하는 학습방법이다.

 

이제 이 획기적인 방법에 대해서 포스팅을 할 예정이다.


왜 Few Shot Learning을 해야하는가?

우리 인간은 적은 데이터를 학습하더라도, 실제로 적은 데이터 기반으로 문제를 풀 수 있다.

하지만, 기계는 인간처럼 소량의 데이터만으로도 놀라운 학습 능력을 갖출 수는 없을까?

 

이에 대한 답을 내는 것이 바로 Few Shot Learning 이다.

 

Few Shot Learning은 meta learning을 기반으로 하는 학습방법이다.

2020/08/28 - [AI] - Ai : Meta Learning

 

Ai : Meta Learning

흔히 우리는 metadata, 메타데이터 라는 말을 쓰곤 한다. 여기서 말하는 metadata는 데이터에 대한 데이터를 의미한다. 이게 무슨말인지 밑에서 설명하겠다. 인류 최초의 메타데이터는 도서관의 서적

mambo-coding-note.tistory.com

Meta Learning에 대한 설명은 여기에 정리해두었다.


Few Shot Learning

출처 : https://www.kakaobrain.com/blog/106

Few Shot Learning은 크게 Support Set, Query Set 두 가지로 나뉜다.

 

Support set은 dataset을 training에 사용하는 data를 말한다. Query set은 dataset을 test에 사용하는 data를 말한다.

 

이런 Few Shot Learning을 "N-way K-Shot" 문제라고 부른다.

 

여기서 N은 범주의 갯수를 말한다. 즉, 고양이인지 자동차인지, 다른 물건인지 맞추는 경우의 수, 해답의 갯수를 말한다.

따라서 N이 커질수록 model의 정확도는 떨어질 수 밖에 없다.

 

또 K는 한 범주당 학습하는 dataset의 갯수를 말한다. 따라서 K가 커질수록 model은 더 다양한 dataset을 학습하게되고, task의 다양성을 학습해야하는 meta learning을 기반으로하는 Few Shot Learning의 model은 정확도가 좋아질 것이다.


Few Shot Learning에 Meta Learning 도입

위에서도 말했듯이 Meta Learning은 사람이 통제하던 기계학습을 기계에게 스스로 학습할 수 있는 규칙을 익힐 수 있도록 하는 방법이다. 여기서 사람이 통제하던 기계학습은 labeling을 하는 Supervised Learning을 말한다.

 

따라서 적은 수의 데이터를 학습하는 Few Shot Learning에 기계가 스스로 학습규칙을 도출하도록 하는 meta learning을 적욯해서 성능을 높이자는 것이 아이디어이다. 이를 Episodic Learning 이라고 부른다.

즉, 적은 데이터를 보고 학습한 후 좋은 성능을 내는 사람을 모방해서, 모델 스스로가 학습규칙을 도출할 수 있도록 도와줌으로써 일반화 성능을 높일 수 있도록 하게 한다.

출처 : https://www.kakaobrain.com/blog/106

유의할 점

위에 그림에서 보듯이, Few Shot Learning의 architecture을 고대로 따른다. 하지만 기존 데이터들과는 약간 다르다.

데이터셋을 보면 train, validation, test data로 나뉘기는 하지만, 서로의 범주 (고양이, 사과, 귤 ... 등  label에 해당)를 공유한다. 그리고 data의 다양성을 익혀야하기 때문에 data가 중복되서는 안된다.

 


Application

1. 거리 학습 기반 방식 (metric based)

 

2. Graph Neural Network

최근에는 적은 양의 데이터만으로도 분류 성능을 극대화하고자 데이터 간 복잡한 관계 정보를 학습에 활용하는 추세다. 가장 많이 연구되는 게 바로 그래프 신경망이다.

우리가 흔히 아는 일반적인 인공 신경망은 입력값으로 벡터나 행렬 형태를 활용한다면, GNN은 밀집 그래프(dense graph) 구조를 활용한다. 그래프에서 노드는 데이터를, 노드와 노드를 잇는 간선(edge)은 데이터 간 관계 정보를 나타내며 밀집 그래프는 모든 노드가 서로 완전히 연결된 것을 가리킨다. GNN은 바로 이 그래프 구조와 각 노드에 해당하는 데이터의 특징 벡터를 입력받는다.

 

 

https://www.kakaobrain.com/blog/106

 

1.퓨샷 러닝(few-shot learning) 연구 동향을 소개합니다. - 카카오브레인

카카오브레인 AutoLearn 연구팀은 데이터 수가 매우 적은 상황에서도 모델을 훈련시킬 수 있는 퓨샷 러닝(few-shot learning) 연구를 진행하고 있습니다. 퓨샷 러닝에 대한 간략한 개념을 설명하고, 자��

www.kakaobrain.com

 

'대학원 공부' 카테고리의 다른 글

Ai : Search (Manual, Grid, Random)  (0) 2020.09.16
Ai : Transfer Learning  (0) 2020.08.30
Ai : Meta Learning  (0) 2020.08.28
AI : Continual Learning  (0) 2020.08.27
AI : Self Supervised Learning  (0) 2020.08.27

댓글