본문 바로가기
머신러닝&딥러닝/기초정리

Multi-task learning & Meta-learning

by Like_Me 2021. 9. 23.

이번 글은 Multi-task learning과 Meta-learning 알고리즘 비교와 특징을 비교하여 설명한다.

 

Multi-task learning은 처음 딥러닝을 공부할 때부터 많이 들어온 알고리즘이다. 알고리즘의 목적은 여러 task를 함께 풀어내어 좋은 성능을 내는 것이다. 여러 task를 함께 학습하여 general 한 feature를 뽑게 하여 학습에 도움을 주며 한 번에 여러 개를 풀 수 있으므로 efficient 한 장점이 있다.

 

Meta-learning은 익숙하지 않은 경우가 많을 것 같다. 논문은 많이 나왔지만 실제 사용하여 문제를 푸는 경우는 거의 못봤기 때문인 것 같다. 알고리즘의 목적은 unseen task에 대해 few 개의 데이터를 주었을 때 그것을 빠르게 학습하도록 만드는 것이다. 사람은 이미 meta-learning이 잘 되어서 처음 보는 꽃을 하나 보여주고 여러 사진 속에서 해당 꽃을 찾아보라고 했을 때 굉장히 잘 찾는다. 하지만 neural network는 그렇지 않았다. 이런 문제를 해결하기 위해 제시된 알고리즘이다. 이 방법은 learning to learn 이라고도 불린다. 말 그대로 학습하는 것을 배워서 보지 못한 데이터를 잘 배워보자 라는 것이다.

 

 

한마디로 multi-task learning은 학습하는 task를 잘 푸는 것이 목적이라면 meta-learning은 학습하지 않은 task를 잘 푸는 것이 목적이다. 목적이 다르니 알고리즘도 많이 다르다. multi-task learning은 보통 hard parameter sharing 방법을 많이 사용한다. 그래서 fig1과 같은 구조를 가진다.

fig1

데이터로부터 shared layers에서 공통 feature를 뽑게 된다. 그리고 task specific layer를 통과하여 각 task에 대한 예측값을 inference 한다. 이때 shared-layers에서 general한 좋은 feature를 뽑아서 각 task의 데이터가 부족해도 좋은 성능을 낼 수 있길 원하는 것이다.

 

meta learning은 학습시 데이터를 크게 meta-train, meta-test로 나눈다. 그리고 그 안에서 다시 train set (support set), test set (query set)으로 나누어 사용한다. 이렇게 하는 이유는 training 시 few개의 train set을 보여주고 test set을 잘 맞추도록 하는 알고리즘을 사용하기 위해서다. few개의 데이터를 보여주는 것은 few-shot이라고 부른다.

대표적으로 model agnostic meta learning(MAML) 논문에서 가져온 fig2 그림을 많이 인용하여 설명한다.

fig2

MAML은 gradient-based meta learning의 대표 알고리즘이다. optimization 시 2개의 과정으로 나누어 업데이트하는 것이 특징이다. 첫 번째 과정에서 train set을 이용하여 각 task 별 업데이트를 진행하여 $\theta^{*}$ 을 얻는다. 이를 adaptation이라고 부른다. 다음으로 test set과 첫 번째 과정에서 얻은 $\theta^{*}$을 이용하여 $\theta$를 얻는다. 이를 meta-learning이라고 부른다. 이렇게 해주는 이유는 meta-test시 적은 양의 데이터를 넣어줬을 때 데이터를 잘 설명해주는 optima로 빠르게 adaptation 할 수 있는 좋은 initial point ($\theta$)를 찾기 위함이다.

 

 

최근에는 multi-task learning과 meta-learning이 사실 차이가 거의 없고 multi-task learning으로도 few-shot setting에서 좋은 성능을 보인다고 주장하는 Bridging multi-task learning and meta-learning 이라는 논문도 있다. 

반응형

댓글0