Post

[Paper]Meta Learning

GPT3에서 사용된 few-shot learning의 이해를 돕고자 그 원리를 조금 더 이해해보고자 합니다.

Ⅰ. Meta Learning

메타러닝은 다양한 학습 에피소드(즉, Task)가 주어졌을때 학습 방법 그 자체를 향상시키는데 초점을 둡니다. 해당 논문을 통해 메타러닝을 정의하고 분류체계를 알아보도록 하겠습니다.

메타러닝은 다양한 학습 태스크에서 얻은 경험을 관련 태스크의 분포로 변환하는 증류\(_{distilling}\)하는 과정입니다. 이러한 과정은 “Learn to Learn”이라는 말로 결합 특성, 모델, 알고리즘 학습을 통합하여 다음 단계로 나아가는데 중점을 두어 Multitask와 Task-agnostic를 기반으로 새로운 태스크 학습의 향상을 목표로 합니다.

이전의 ML은 다양한 데이터 인스턴스로 모델의 예측을 향상시키는 방향으로 이해되어 왔습니다. 여기서 내부의(Inner) 학습 알고리즘은 특정 태스크를 위한 데이터셋과 목적에 따라 정의되곤 했습니다. 그러나 메타러닝의 외부(Outer) 학습 알고리즘은 Outer objective를 향상시키기 위해 Inner 학습 알고리즘을 업데이트합니다.

위와 같은 정의롤 바탕으로 많은 전통적인 방법들(ex. RandomSearch )이 메타러닝의 범주에 포함될 수 있습니다.

ⅰ. Fomulation

이전의 머신러닝은 아래와 같이 \(\bar{y}=f_{\theta}(x)\)의 예측모델로써 학습할 수 있었습니다.

\[\theta* = \underset{\theta}{argmin} \mathbf{L}(\mathbf{D};\theta, w)\]

위와 같은 가정의 최적화는 일반적으로 모든 문제 D에 대해 scratch(zero-base)에서 수행됩니다. 그러나 어떻게 학습하는 지에 대한 가정을 지정헤 \(\theta, f(\cdot)\) 등을 결정하는 가중치 w는 사전에 지정이 되어 성능에 영향을 미치게 됩니다.

따라서, Task-distribution의 관점에서 메타리닝은 여러 작업에 걸쳐 일반적으로 적용되는 학습 알고리즘을 학습하는 것으로 각 새로운 작업이 이전보다 효과적으로 학습되도록 최적화합니다. 즉, 어떻게 학습하닌 지를 학습하는 것은 좀 더 고차원의 학습 알고리즘을 배우는 것입니다.

\[\underset{w}{argmin}\mathbb{E}_{T \sim p(T)}\mathbf{L}(D;w)\]

위 과정의 메타 학습은 bilevel(즉, 두 수준)의 최적화 문제로 다루어 아래와 같은 형식으로 시각화하여 더 일반적인 매커니즘의 이해를 돕습니다. 여기서 \(D\)는 M개의 meta train dataset \(D_{source}\)와 Q개의 meta test dataset \(D_{target}\)으로 구성됩니다.

5 Figure 5 : Meta-Learning dataset setup메타러닝에 대한 데이터 setup, M-way-K-shot.

  • Meta-Training

    “learn how to learn” 단계로 아래와 같이 메타 지식 \(w^*\)를 최적화합니다.

    \[w^* = \underset{w}{argmin}\sum_i\mathbf{L}^{meta}(D^{val(i)}_{source};\theta*^{(i)}(w),w)\]
  • Meta-Testing

    Meta-Training에서 학습된 메타 지식 \(w^*\)를 활용하여 학습에 사용되지 않은 작업으로 base model을 학습시킵니다.

    \[\theta*^{(i)} = \underset{\theta}{argmin}\sum_i\mathbf{L}(D^{train(i)}_{target};\theta,w^*)\]

각 \(D\)는 train과 validate로 나눌 수 있어(\(\mathbf{L}(D;w) = \mathbf{L}(D^{val};\theta^*(D^{train},w),w)\))와 같이 되고, \(\theta^*\)는 어떻게 학습하는지의 메타 지식 w을 가지는 base 모델입니다.

ⅱ. Taxonomy

1 Figure 1 : Overview of the meta-learning landscape

위와 같이 제안된 분류 체계는 (1) Meta Optimizaer(How?), (2) Meta Representation(“What?”), (3) Objective(“Why?”)로 구성됩니다. (1)은 메타 학습동안 Outer 수준에서의 Optimizaer를 선택하고, (2)은 메타 학습에 사용되는 메타 지식 w를 표현하는 방법이며 (3)은 메타 학습의 목표를 설정하는 방법입니다.

해당 논문에서 메타 러닝에 대한 다른 분야(Transfer Learning, Domain Adaptation, Continual LEarning, Multi-Task Learning 등)와 비교하여 해당 이론에 대한 개념과 범위를 명시하였으니 자세한 내용을 원하시면 논문에서 확인하실 수 있습니다.

Ⅱ. Few-shot learning

Few-shot learning에 대한 이해를 돕고자 Meta-learning에 대한 내용을 앞에서 간략히 살펴보았고, 메타 러닝의 응용 중 하나인 Few-shot learning에 대해 자세히 알아보고자 합니다.

Few-shot Learning은 특정 작업 T에 대해 제한된 수의 감독 정보를 가진 데이터로 머신러닝 방법 중 하나입니다.

FSL의 주요 문제는 대부분 지도 학습 문제로, FSL은 제한된 데이터로도 학습이 가능하며, 이는 인간의 학습 방식과 유사하여 인간지능에 한 발 더 다가갑니다. 그러나 사용 가능한 예제 수가 적어 과적합이 발생하기 쉽고, 따라서 좋은 근사치를 얻을 수 없는 것이 FSL의 핵심 문제입니다.

어떤 머신러닝 문제든지 예측 오차가 존재하고 완벽한 예측은 불가능합니다. FSL의 주된 error 분해에 기반한 지도 학습에서 다루는 가설은 주어진 가설 h에 대해 기대 위험을 최소화해야 합니다.

\[\mathbb{E}[R(h_I) - R(\hat{h})] = \underbrace{\epsilon_{app}(\mathbf{H})}{\mathbb{E}[R(h^*) - R(\hat{h})]} + \underbrace{\epsilon_{est}(\mathbf{H}, I)}{\mathbb{E}[R(h_I) - R(h^*)]}\]

전체적으로 에러를 낮추는 방법은 \(D_{train}, \mathbf{H}, algorithm\)의 관점에서 시도됩니다. 일반적으로 뒤의 항인 추정 오차는 많은 수의 예제를 가짐으로 써 줄일 수 있지만 FSL의 경우 사용 가능한 예제 수가 저기 떄문에 추정 오차가 커지고, 이로 인해 과적합이 발생합니다. 7 Figure 7: 큰 학습 셋에서 적은 예제와 작은 학습 셋에서 적은 학습 샘플을 사용한 학습 의 비교/

이러한 문제를 해결하고자 세가지 측면으로 오차를 줄이는 방법을 소개합니다.

2 Figure 2 : FSL의 분류체계

ⅰ. data

3 Figure 3 : Solving the FSL problem by data augmentation

11 Figure 11 : data perspective

사전 지식을 사용하여 데이터(\(D_{train}\))를 증강하여 오차를 줄일 수 있습니다. 이렇게 수작업으로 제작된 규칙을 사용한 데이터 증강은 일반적으로 FSL 방법의 전처리로 사용됩니다. 그러나 이러한 규칙을 설계하는데 도메인 지식에 의존하고, 데이터 세트에 특화되어 있어 다른 데이터 세트에 적용하기 어렵습니다. 따라서 수작업 데이터 증강은 FSL 문제를 완전히 해결할 수 없습니다.

그럼에도 불구하고 데이터 증강은 소수의 데이터로 학습하는 상황에서 유용하게 활용될 수 있습니다.

ⅱ. Model

12 Figure 12 : model perspective

FSL에서는 한정된 샘플을 가진 데이터셋이 주어진 경우 모델은 사전 지식을 활용하여 가설 공간(\(H\))의 복잡성을 제한합니다. FSL 방법론은 사전 지식을 활용하여 \(H\) 를 더 작은 가설 공간 \(\tilde{H}\)으로 제한함으로써 학습 과정에서의 신뢰성을 높이고 과적합 위험을 줄이는 방식으로 진행됩니다.

어떤 사전 지식이 사용되는지에 따라, 이 범주에 속하는 방법은 위와 같이 세분화된 네 가지 유형으로 분류될 수 있습니다.

  • Multitask learning

    8 Figure 8 : Parameter sharing example

  • Embedding learning

    9 Figure 9 : Embedding learning example

  • Learning with External Memory

    10 Figure 10 : External memory example

  • Generative Modeling

    14 Figure 14 : generative modeling example

Parameter sharing
가중치를 공유한다는 것은 같은 잠재 공간으로 투영한다는 의미로 해석하면 됩니다.

ⅲ. Algorithm

13 Figure 13 : algorithm perspective

가설 공간 H 내에서 최적의 가설 \(h^*\)를 매개변수화 하는 θ를 탐색하기 위해 사전 지식을 사용합니다. 이는 (1) 좋은 초기 매개변수 θ를 제공하거나, (2) 직접 옵티마이저를 학습하여 검색 단계를 출력함으로써 이루어질 수 있는데, 해당 내용을 통해 위와 같이 세 가지 그룹으로 분류됩니다.

Ⅲ. Few-shot in Image Classification

6 Figure 6 : 4 way 1 shot classification task examples

일반적으로 이미지 분류 문제에서 각 class 별 이미지에 대해 임베딩 공간으로 투영하면서 본적없는 데이터가 들어왔을때 유사도를 통해 분류합니다. 이 과정에서 임베딩 공간으로 투영하는 것이 “사전 지식”을 학습하는 것이 될 수 있습니다.

Ⅳ. Few-shot in NLP

3 Figure 3 : GPT-3 Few-shot learning examples

Ⅴ. Conclusion

Few-Shot Learning(FSL)은 인간과 기계 간의 간극을 좁히는 것을 목표로 사전 지식을 통합하여 지도 정보가 포함되는 적은 수의 예제만으로도 새로운 작업을 학습할 수 있습니다. 이러한 방법을 통해 사전 지식을 활용하여 제한된 데이터로 부터 효과적으로 학습할 수 있고, 희귀한 사례의 학습이 가능하고 대규모 지도 데이터 수집의 부담을 줄여줍니다.

FSL에서 핵심적인 문제는 지도 학습과 마찬가지인 일반화 오차를 줄이는 문제로 이러한 문제를 해결하기위해 사전 지식을 활용하여 문제를 해결하고 데이터, 모델, 알고리즘의 관점에서 분류할 수 있습니다.

일반적인 지도 학습과 비교해서 본적 있는 class를 분류하기는 쉽지만 학습에 사용하지 못한 class를 예측하는 능력이 있다는 점이 주된 차이점으로 사전 지식을 학습할때 사용하지 않은 데이터(Query)와 데이터셋(Support Set)을 사용함으로써 이러한 능력이 가능하게 되는 것입니다.

Ⅵ. REFERENCES

  1. Meta-Learning in Neural Networks: A Survey
  2. Learning from Few Examples: A Summary of Approaches to Few-Shot Learning
  3. Generalizing from a Few Examples: A Survey on Few-Shot Learning
  4. Few-Shot Learning (1/3): Basic Concepts



This post is licensed under CC BY 4.0 by the author.