본문 바로가기

딥러닝/메타러닝(Meta)

[Meta-Learning] 1. 메타, 메타러닝이란 뭘까?

 

 메타, 메타러닝이란 뭘까?

 

What is Meta?

메타 라는 용어는 한 단계 더 위에 있는 것을 가리킬 때 사용됩니다. 대표적인 예시로, 데이터에 대한 정보를 나타날 때, 데이터에 대한 데이터인 meta-data가 있고, 생각을 잘하고 있는지 생각한다면, 메타인지라고 부르게 됩니다.

 

 

Meta-Learning?

머신러닝 분야를 공부하다보면 메타러닝이라는 말이 자주 등장합니다. 아마도 대부분의 사람들은 학습하는 방법을 학습한다는 표현은 많이 들어봤을 거에요. 메타의 뜻에 의하면, 메타러닝이랑 러닝에 대해서 한 단계 더 위에 있는 것을 가리킵니다.  여기서 나타나는 학습을 두 단계로 나눠서, 두 단계의 학습에 대해서 알아보겠습니다.

 

첫 번째 학습

모델이 학습이라는 것은 주어진 데이터로부터 패턴이나 특징을 찾고 새로운 데이터가 주어졌을 때, 그 특징을 찾는 것 입니다. 이는 모델의 파라미터 $\theta$를 찾는 것과 동일합니다. Supervised Learning에서는 데이터에 대한 Label이 주어지기 때문에, 새로운 데이터에 대해서 Label을 찾는 것을 목적으로 파라미터를 학습(러닝) 합니다. Unsupervised Learning에서는 데이터에 대한 레이블이 없으므로, 데이터 자체에 대한 특징을 알아서 찾아야 합니다. 두 가지 Learning 모두 데이터에 대한 특징을 찾는 것을 목표로 모델 파라미터를 학습 합니다.

위에서 말한 Meta-data보다 Meta-Learning이 어렵게 느껴지는 것은 Learning이라는 말 자체를 동명사로 생각하니 때문인 것 같습니다. Learning은 학습하는 것이 아니라 '학습' 명사를 나타냅니다. 


두 번째 학습

사실 머신러닝에서 메타러닝이라는 말은 다양하게 쓰이고 그 의미 자체도 광범위하게 쓰이고 있습니다. 딥러닝을 하다보면, Learning rate를 조절하면서 Loss가 떨어지는 것을 비교해본 적이 있으실텐데, 이 경우도 Meta Learning에 해당합니다. 모델을 훈련하는 learning보다 한 단계 위인, Hyperparameter에 대해서 적합한 값을 찾는 Learning을 진행하기 때문입니다. 또 다른 예시는 Model을 Ensemble하는 것 입니다. 이미 learning이 된 모델들을 가지고, 모델들의 예측을 기반으로 결정하는 새로운 모델을 Stacking으로 학습시킨다면, 1차적인 학습을 넘어서 학습을 진행하기 때문에 Meta-Learning입니다.

 

Meta-Learning이라는 말의 정확한 정의를 Formal하게 정의한 논문도 있지만, 그 전까지 Meta-Learning이라는 것 자체는 조금 다양하게 쓰였습니다. 조금 쉽게 생각해보자면, 모델을 튜닝하기 위해서, 다양한 hyper-parameter를 grid search를 통해서 찾습니다. 만일 이를 자동으로 찾을 수 있다면 얼마나 좋을까요? 

Related Article 

  • 메타러닝의 Formal한 정의 [Post]
  • 메타러닝을 위한 데이터 셋 [Post]

 

References 

[1] https://machinelearningmastery.com/meta-learning-in-machine-learning/