본문 바로가기
Machine-Learning/Basic

[ML] 메타 러닝과 퓨샷 러닝

by AteN 2022. 12. 17.

메타러닝 이란?

딥러닝이  성공을 거둘 수 있었던 것은 많은 연구자들이 좋은 알고리즘과 기술을 연구하여 지속적으로 공유한 덕분이지만, 그 이면에는 더 중요한 계기가 있다. 딥러닝이 기존에 풀지 못한 어려운 문제들을 풀 수 있었던 근본적인 이유 중 하나는 크고 다양한 데이터 셋과 좋은 하드웨어가 뒷받침되었기 때문이다 

 

그렇다면 이렇게 우수한 딥러닝의 단점은 없었을까? 딥러닝 또한 많은 단점이 있다. 대표적인 단점 중 하나는 크고 다양한 데이터 셋이 준비되어야 하고, 값비싼 좋은 하드웨어, 수 많은 컴퓨터 자원이 확보되어야 한다는 점이다. 조금 다른 관점에서 해석하면 딥러닝의 핵심인 인공신경망은 사람의 뇌와 달리, 적은 데이터로 빠르게 학습하기가 어렵다

 

사람은 새로운 데이터를 몇번만 보고도 어떤 개념을 상대적으로 빠르게 학습할 수 있지만, 딥러닝 기반 기계는 수 많은 빅데이터와 학습 시행착오를 겪어야 비로소 어떤 개념을 학습할 수 있다 

 

최근 인공지능 분야에서 이러한 문제를 잘 해결하고자 하는 분야가 메타 러닝이다. 

메타러닝이라는 용어는 컴퓨터 공학, 인공 지능 분야뿐만 아니라 심리학, 행동 경제학 등 다양한 분야에서 쓰인다.

 

인공지능 분야에서의 메타러닝은 새로운 개념 또는 태스크를 빠르게 학습하기 위해 '학습을 학습 (learning to learn)' 하는 방법으로서, 여러 논문에서 해당 개념을 제안하였다 . 즉, 새로운 태스크를 더 빨리 학습하기 위해 이전의 학습 경험을 적극적으로 활용하는 방법이라 생각할 수 있다 

 

메타러닝의 핵십 아이디어는 학습 에이전트가 단순히 데이터를 학습하는 것뿐만 아니라 자신의 학습 능력을 스스로 향상시킨다는 것이다. 그래서 메타러닝은 '배우는 방법을 배우는 것'이라고 표현할 수 있으며, 'learning (how) to learn'이란 키워드로 설명할 수 있다. 특히, 머신러닝, 딥러닝 분야에서 메타러닝은 어떤 좋은 학습 방법을 학습하거나, 하이퍼파라미터 최적화 (hyperparameter optimizaion), 자동 머신러닝 (AutoML : Automatic Machine Learning) 등을 포함하는 용어로 사용되기도 한다. 

 

여기서 말하는 학습 방법은 일종의 inductive bias라고 볼 수 있다. 머신러닝 분야에서 inductive bias란 학습 시 보지 못했던 주어진 입력에 대해 모델이 출력을 예측할 때 사용하는 일련의 가정을 의미한다(Mitchell, 1980)

 

메타 러닝에서 목표하는 학습 방법을 학습하다는 것은 무슨 의미일까?

위에서 잠깐 언급은 했지만 조금 더 쉽게 이해하기 위해 우리가 신경망 모델을 학습할 때의 파라미터 초기화(parameter initalization)를 예로 들어보겠다. 보통은 딥러닝 모델 학습을 시작할 때, 학습하는 방법 중 하나는 무작위로 파라미터를 초기화하여 학습을 하는 것이다. 하지만 초기화된 파라미터는 많은 데이터와 수많은 학습 프로세스를 거쳐야 한며, 이는 새로운 데이터셋이 주어질 때 좋은 학습 방법이라고 할 수 없다. 하지만 딥러닝 모델에 주어질 새로운 태스크를 빠르게 학습할 수 있는 '좋은 초기화'를 학습할 수도 있지 않을까? 

예를 들어 MAML(Model-Agnostic Meta-Learning) 알고리즘은 좋은 초기화라는 학습 방법을 학습하여 새로운 태스크에 대한 빠른 학습을 가능하게 한다. 다시 말해 MAML로 학습한 메타러닝 모델은 새로운 태스크가 주어졌을 때 이를 빠르게 학습할 수 있는 '좋은 초기화'에서 시작하여 소량의 데이터와 적은 경사하강법(gradient descent)만으로도 빠른 학습을 가능하게 한다 

 

https://meta-world.github.io/

메타러닝과 자주 언급되는 개념으로는 멀티 태스크 러닝(multi-task learning)이 있다. 위의 그림은 직관적으로 멀티 태스크 러닝과 메타 러닝의 차이점을 아주 잘 보여주고 있다. 왼쪽은 멀티 태스크 러닝으로 하나의 모델이 다양한 여러 태스크를 잘 학습하고 테스트 시 학습한 태스크 들과 같은 여러 태스크를 잘 수행하는 것을 목표로 하고 있다. 

반면 오른쪽 그림은 메타러닝으로 학습 시 멀티 태스크 러닝고 ㅏ같이 다양한 여러 태스크를 학습하긴 하지만, 학습 시 그 태스크를 외우기만 하는 것이 아니라 학습하는 방법을 학습하여, 테스트 시 학습 때 보지 못했던 새로운 태스크가 주어졌을 때 이를 빠르게 학습하는 것을 목표로 하고 있다. 

그림의 오른쪽의 예시에서는 메타러닝은 학습 시 여러 태스크들을 통해 학습하는 방법을 학습하고, 이를 통해 학습된 좋은 학습 방법을 통해 새로운 태스크인 스케이팅을 빠르게 학습하는 것을 목표로 하고 있다. 

 

좋은 학습 방법을 학습하는 메타러닝과 밀접한 관련이 있는 개념으로 퓨샷 학습 (few-shot learning)이 있다. 조금 더 구체적으로 메타 러닝과 퓨샷 학습을 이해하기 위해서 구체적인 태스크 중 하나인 이미지 분류 문제를 살펴보자.

icml 2019 meta-learning tutorial 자료

 

왼쪽에는 훈련 데이터들이 주어져 있고, 오른쪽에는 테스트 데이터 셋이 주어졌다. 훈련 데이터에는 Braque와 Cezanne의 그림이 3장만 주어져있다. 그럼 테스트 데이터 셋은 누가 그린 그림인지 맞는 것이다. 

이처럼 몇개의 훈련 데이터 만 보여주는 위와 같은 학습 문제를 퓨샷 학습이라고 부르며, 한장 씩 보여주는 것을 원샷 학습 (one-shot learning)이라고 부른다. 

위가 같은 문제를 조금 구체적으로 정의 하면 N-wat K-shot 문제라고 부른다. 여기서 N은 클래스의 개수를 의미하며, K는 각 클래스별 데이터 개수를 의미한다. 즉, 위 예시에서는 클래스가 2개이고, 각 클래스별로 3개의 데이터를 보여주었기 때문에 2-way 3-shot 문제라고 할 수 있다. 학술 논문에서는 5-way 1-shot, 20-way 5-shot 등이 성능 평가 방법으로 많이 사용되곤 한다 

 

그렇다면 인공지능이 퓨삿 학습 문제를 풀 수 있을까? 사람이 퓨샷 학습 문제를 쉽게 풀수 있었던 반면, 인공지능 입장에서는 이 문제가 대단히 어려운 문제이다. 고차원 픽셀로 구성되어 있는 이미지 데이터를 일반화하여 잘 분류할 수 있으려면 인공지능에 충분히 많은 양의 데이터를 보여주어야 하고, 이를 오랜 시간 학습해야 한다. 즉, 인공지능에 각 클래스별 3장씩만 주어진다면 그 이미지를 외울 수 있겠지만, 새로운 테스트 데이터를 잘 분류하는 것은 매우 어려운 문제이다.

 

이처럼 퓨샷 학습 문제를 잘 풀기 위한 방법 중 하나가 바로 메타러닝이다. '학습하는 방법을 학습'함으로써 충분한 학습 방법을 축적하여, 새로운 태스크, 즉 새로운 적은 데이터가 주어졌을 때 이를 빠르게 학습할 수 있는 여러 메타러닝 방법들을 살펴 보아야 할 것이다.   

 

메타 러닝 및 퓨샷 러닝의 대표적인 접근 방법

메타 러닝 및 퓨샷 러닝의 대표적 접근 방법은 거리 학습 기반(Metric Based Learning)과 모델 기반 학습 방식(Model-Based Approach)과 최적화 학습 방식(Optimizer Learning)이 있습니다.

거리 학습 기반은 '효율적 거리 측정' 학습이 핵심입니다.

모델 기반 학습은 '메모리를 이용한 순환 신경망'이 핵심입니다.

최적화 학습 방식은 '모델 파라미터 최적화'이 핵심입니다.

 

거리 학습 기반 (Metric Based Learning)

서포트 셋과 쿼리 셋 간의 거리 (유사도)를 측정하는 방식으로 대신한다 

거리 학습 기반을 활용한 대표적인 알고리즘에는 샴 네트워크(Siamese Neural Network)가 있다. 모델은 주어진 서포트 데이터를 특성 공간 (Feature Space)에 나타내어 특징을 뽑아 내야 한다 .같은 클래스면 거리를 가깝게 다른 클래스면 멀게 하는 방식으로 데이터를 분류합니다. 쿼리 데이터를 유클리디안 거리가 가까운 서포트 데이터의 클래스로 예측하는 방식입니다.

 

모델 기반 학습 방식 (Model based learning)

모델 기반 학습 방식은 적은 수의 학습 단계로도 모델의 파라미터를 효율적으로 학습할 수 있는 방식입니다. 모델에 별도의 메모리를 두어 학습 속도를 조절합니다. 모델 기반 학습 방식의 대표적인 알고리즘은 MANN(Memory-Augmented Neural Networks)은 외부 메모리를 보유하고 있습니다. 과거 데이터를 외부 메모리에 저장함으로써 효율적으로 문제를 해결하는 방법을 습득합니다. 새로운 정보를 빠르게 인코딩하고 몇 개의 샘플만 가지고도 새로운 태스크에 적용할 수 있도록 설계되었기 때문에 메타 러닝의 대표적인 접근론 중 하나 입니다.

 

최적화 학습 방식(Optimizer learning)

 퓨삿 태스크를 파라미터 최적화 문제로 생각 합니다. 일반적으로 딥러닝 모델은 기울기의 역전파를 통해 학습을 진행합니다. 하지만 기울기 기반 최적화 기법은 퓨샷 태스크가 아닌 큰 스케일의 데이터를 위해 설계가 되었죠? 최적화 기반 메타 러닝은 적은 수의 샘플에 대한 최적화 기법에 대해 다룹니다. 대표적으로 MAML(Model-Agnostic Meta-Learning) 알고리즘이 있습니다. 아래의 그림을 보면 실선은 각 태스크에서 계산했던 그래디언트를 합산하여 모델을 업데이트하는 것을 의미합니다. 즉 1, 2, 3의 데이터에서 학습된 그래디언트 정보로 전반적인 파라미터를 업데이트 합니다. 공통 파라미터로부터 다시 모델이 각 데이터를 학습하면서 세부 파라미터를 업데이트(점선)합니다. 이런 과정을 최적의 파라미터를 찾을 때까지 반복하면 모델의 파라미터를 최적화할 수 있습니다.

 

댓글