본문으로 건너뛰기

© 2026 Molayo

Lilian헤드라인2026. 05. 07. 04:17

메타 학습: 빠르게 배우는 법을 배우기

요약

메타 학습(Meta-Learning)은 인간이 새로운 개념이나 기술을 빠르고 효율적으로 습득하는 능력에서 영감을 받은 머신러닝 패러다임입니다. 이는 소수의 훈련 샘플만으로도 접해보지 못한 새로운 작업에 잘 적응하고 일반화할 수 있는 모델을 설계하는 것을 목표로 합니다. 메타 학습은 다양한 '작업(task)'들로 구성된 데이터 분포에서 최적화되어, 마치 '학습하는 법' 자체를 배우는 것과 같습니다.

핵심 포인트

  • 메타 학습의 핵심 목표는 소수의 샘플만으로 새로운 작업에 빠르게 적응하고 일반화할 수 있는 모델을 만드는 것입니다.
  • 전통적인 머신러닝이 단일 작업을 최적화한다면, 메타 학습은 다양한 '작업(task)'들의 분포에서 최적화됩니다.
  • Few-shot classification은 감시 학습 분야에서 메타 학습의 구체적인 예시로, 소수의 지원 집합(Support Set)을 활용하여 모델을 훈련합니다.
  • 메타 학습 과정에서는 각 작업 쌍 $(S^L, B^L)$를 하나의 데이터 포인트처럼 간주하고 일반화 능력을 극대화하도록 모델을 최적화합니다.

[2019-10-01 업데이트: Tianhao 덕분에 중국어 번역본이 있습니다!]

좋은 머신러닝 모델은 일반적으로 많은 샘플로 훈련해야 합니다. 반면 인간은 새로운 개념과 기술을 훨씬 더 빠르고 효율적으로 습득합니다. 몇 번만 본 고양이와 새를 구별할 수 있는 아이들, 자전거를 타는 법을 아는 사람들은 모터사이클을 타는 방법을 거의 또는 전혀 설명 없이 빠르게 발견할 가능성이 높습니다. 비슷한 속성 — 소수의 훈련 샘플로 새로운 개념과 기술을 빠르게 배우기 — 을 가진 머신러닝 모델을 설계할 수 있을까요? 그것이 메타 학습 (Meta-Learning) 이 해결하려는 본질적인 문제입니다.

우리는 훈련 시간 동안 접한 적이 없는 새로운 작업과 새로운 환경에 잘 적응하거나 일반화할 수 있는 좋은 메타 학습 모델을 기대합니다. 적응 과정은 본질적으로 미니 학습 세션이며, 테스트 기간 중 발생합니다. 그러나 새로운 작업 구성에 대한 노출은 제한적입니다. 결국, 적응된 모델은 새로운 작업을 완료할 수 있습니다. 이것이 메타 학습이 배우는 법을 배우는 것으로도 불리는 이유입니다.

작업은 임의의 잘 정의된 머신러닝 문제 집합일 수 있습니다: 감시 학습, 강화 학습 등. 예를 들어, 여기 몇 가지 구체적인 메타 학습 작업이 있습니다:

  • 고양이 이미지로 훈련된 분류기는 소수의 고양이 사진 후 주어진 이미지가 고양이를 포함하는지 여부를 알 수 있습니다.
  • 게임 봇은 새로운 게임을 빠르게 숙달할 수 있습니다.
  • 미니 로봇은 평면 표면 환경에서 훈련되었음에도 불구하고 테스트 중 경사 표면에서 원하는 작업을 완료합니다.

메타 학습 문제 정의

이 글에서는 각 원하는 작업이 이미지 분류와 같은 감시 학습 문제로 가정하는 경우를 집중합니다. 강화 학습 문제 (즉, "메타 강화 학습") 와 관련된 메타 학습에 대한 흥미로운 문헌은 많지만, 여기서는 다루지 않습니다.

간단한 관점

좋은 메타 학습 모델은 다양한 학습 작업으로 훈련되고, 잠재적으로 접하지 않은 작업을 포함한 작업 분포에서 최적의 성능을 위해 최적화되어야 합니다. 각 작업은 데이터셋 $\mathcal{D}$ 와 연결되며, 이는 특징 벡터와 참 레이블을 모두 포함합니다. 최적 모델 파라미터는:

그것은 일반적인 학습 작업과 매우 비슷해 보이지만, 하나의 데이터셋하나의 데이터 샘플 으로 간주합니다.

Few-shot classification (소수 분류) 은 감시 학습 분야에서 메타 학습의 구체화입니다. 데이터셋 $\mathcal{D}$ 는 종종 학습을 위한 지원 집합 $S$ 와 훈련 또는 테스트를 위한 예측 집합 $B$ 로 두 부분으로 나뉩니다, $\mathcal{D}=\langle S, B\rangle$. 우리는 종종 K-shot N-class classification (K-샷 N 클래스 분류) 작업을 고려합니다: 지원 집합은 각 N 클래스에 대해 K 개의 라벨링된 예제를 포함합니다.

테스트와 동일한 방식으로 훈련

데이터셋 $\mathcal{D}$ 는 특징 벡터와 레이블의 쌍을 포함하며, $\mathcal{D} = {(\mathbf{x}i, y_i)}$이며 각 레이블은 알려진 레이블 집합 $\mathcal{L}^\text{label}$ 에 속합니다. 예를 들어, 파라미터 $\theta$ 를 가진 분류기 $f\theta$ 는 특징 벡터 $\mathbf{x}$ 와 함께 데이터 포인트가 클래스 $y$ 에 속할 확률을 출력합니다, $P_\theta(y|\mathbf{x})$.

최적 파라미터는 여러 훈련 배치 $B \subset \mathcal{D}$ 에서 참 레이블의 확률을 최대화해야 합니다:

Few-shot classification 의 목표는 작은 support set 을 주어 미지 라벨 (unknown label) 을 가진 데이터 샘플에서의 예측 오차를 줄이는 것입니다. 이를 위해 '빠른 학습' (fast learning) 을 고려합니다 (예를 들어, 'fine-tuning' 이 어떻게 작동하는지 생각해보세요). 훈련 과정을 추론 (inference) 시 발생하는 것과 유사하게 만들기 위해, 우리는 모델에 모든 라벨을 노출하지 않도록 일부 라벨로 구성된 'fake' 데이터셋을 생성하고, 이에 따라 최적화 절차를 수정하여 빠른 학습을 유도해야 합니다:

  • 라벨의 부분 집합 $L\subset\mathcal{L}^\text{label}$ 을 샘플링합니다.
  • 라벨이 샘플링된 라벨 집합 $L$ 에 속하는 데이터 포인트만 포함된 support set $S^L \subset \mathcal{D}$ 과 training batch $B^L \subset \mathcal{D}$ 를 샘플링합니다. 두 집합 모두 $y \in L, \forall (x, y) \in S^L, B^L$ 조건을 만족하는 데이터 포인트만 포함합니다.
  • Support set 은 모델 입력의 일부입니다.
  • 최종 최적화 단계에서는 supervised learning 과 동일하게 mini-batch $B^L$ 를 사용하여 손실 (loss) 을 계산하고 backpropagation 을 통해 모델 파라미터를 업데이트합니다.

각 샘플링된 데이터셋 쌍 $(S^L, B^L)$ 을 하나의 데이터 포인트로 간주할 수 있습니다. 모델은 다른 데이터셋으로 일반화 (generalize) 할 수 있도록 훈련됩니다. 빨간색 기호는 supervised learning objective 에 추가하여 meta-learning 을 위한 것입니다.

이 아이디어는 이미지 분류 (ImageNet) 나 언어 모델링 (big text corpora) 에서 제한된 task-specific 데이터 샘플만 사용할 때 사전 학습 모델 (pre-trained model) 을 사용하는 것과 어느 정도 유사합니다. Meta-learning 이 가져온 것은 한 단계 더 나아가서, 하나의 downstream task 에 따라 fine-tuning 하는 것이 아니라, 여러 가지 또는 모든 task 에 대해 모델을 최적화하는 것입니다.

Learner 와 Meta-Learner

Meta-learning 의 또 다른 일반적인 관점은 모델 업데이트를 두 단계로 분해합니다:

  • 분류기 $f_\theta$ 는 'learner' 모델로, 특정 task 를 실행하기 위해 훈련됩니다;
  • 동시에, optimizer $g_\phi$ 는 support set $S$ 를 통해 learner 모델의 파라미터를 업데이트하는 방법을 학습합니다, $\theta' = g_\phi(\theta, S)$.

그리고 최종 최적화 단계에서는 $\theta$ 와 $\phi$ 를 모두 업데이트하여 다음을 최대화해야 합니다:

Common Approaches

Meta-learning 에는 세 가지 일반적인 접근 방식이 있습니다: metric-based, model-based, 그리고 optimization-based. Oriol Vinyals 은 NIPS 2018 @ meta-learning symposium 에서 그의 발표에서 훌륭한 요약 (summary) 을 제공했습니다:

| ————- | ————- | ————- | ————- |
| Model-based | Metric-based | Optimization-based | |
|---|---|---|
Key idea | RNN; memory | Metric learning | Gradient descent |
How $P_\theta(y \vert \mathbf{x})$ is modeled? | $f_\theta(\mathbf{x}, S)$ | $\sum_{(\mathbf{x}i, y_i) \in S} k\theta(\mathbf{x}, \mathbf{x}i)y_i$ (*) | $P{g_\phi(\theta, S^L)}(y \vert \mathbf{x})$ |

(*) $k_\theta$ 는 $\mathbf{x}_i$ 와 $\mathbf{x}$ 사이의 유사도를 측정하는 kernel function 입니다.

다음은 각 접근 방식의 고전적인 모델을 검토할 예정입니다.

Metric-Based

Metric-based meta-learning 의 핵심 아이디어는 nearest neighbors 알고리즘 (즉, k-NN classifier 와 k-means clustering) 과 kernel density estimation 과 유사합니다. 알려진 라벨 집합 $y$ 에 대한 예측 확률은 support set 샘플의 라벨에 대한 가중 합입니다. 가중치는 두 데이터 샘플 사이의 유사도를 측정하는 kernel function $k_\theta$ 로 생성됩니다.

좋은 커널을 학습하는 것은 거리 기반 메타 학습 모델의 성공에 필수적입니다. 거리 학습 (Metric learning) 은 이를 위해 객체 위에 거리 함수를 학습하려는 것을 목표로 하므로 잘 맞습니다. 좋은 거리 함수는 문제 의존적입니다. 입력과 작업 공간 사이의 관계를 표현하고 문제 해결을 용이하게 해야 합니다.

아래에 소개된 모든 모델은 입력 데이터의 임베딩 벡터를 명시적으로 학습하고, 이를 사용하여 적절한 커널 함수를 설계합니다.

컨볼루션 시아네스 신경망 (Convolutional Siamese Neural Network)

시아네스 신경망은 두 개의 쌍둥이 네트워크로 구성되며, 그 출력은 입력 데이터 샘플 쌍 사이의 관계를 학습하는 함수와 함께 공동으로 훈련됩니다. 쌍둥이 네트워크는 동일하며, 동일한 가중치와 네트워크 파라미터를 공유합니다. 즉, 두 개 모두 데이터를 쌍 사이의 관계를 드러내는 효율적인 임베딩을 학습하는 동일한 임베딩 네트워크를 참조합니다.

Koch, Zemel & Salakhutdinov (2015) 는 시아네스 신경망을 사용하여 한 번의 이미지 분류를 수행하는 방법을 제안했습니다. 먼저, 시아네스 네트워크는 두 입력 이미지가 같은 클래스인지 판별하는 검증 작업을 위해 훈련됩니다. 그것은 두 이미지가 같은 클래스에 속할 확률을 출력합니다. 그런 다음, 테스트 시간 동안, 시아네스 네트워크는 테스트 이미지와 지원 집합 (support set) 내의 모든 이미지 쌍을 처리합니다. 최종 예측은 가장 높은 확률을 가진 지원 이미지의 클래스입니다.

  • 먼저, 컨볼루션 시아네스 신경망은 임베딩 함수 $f_ heta$ 를 통해 두 이미지를 특징 벡터로 인코딩하는 것을 학습합니다. $f_ heta$ 는 몇 개의 컨볼루션 레이어를 포함합니다.
  • 두 임베딩 사이의 L1 거리는 $\ ext{L}1(f heta(\mathbf{x}i) - f heta(\mathbf{x}j)) = \vert f heta(\mathbf{x}i) - f heta(\mathbf{x}_j) \vert$ 입니다.
  • 거리는 선형 전단층과 시그모이드를 통해 확률 $p$ 로 변환됩니다. 그것은 두 이미지가 같은 클래스에서 추출되었는지의 확률입니다.
  • 직관적으로 손실은 라벨이 이진이기 때문에 크로스 엔트로피입니다.

훈련 배치 $B$ 의 이미지에는 왜곡으로 증강 (augmentation) 될 수 있습니다. 물론, L1 거리를 다른 거리 함수인 L2, 코사인 등으로 교체할 수 있습니다. 단지 미분 가능 (differential) 하도록 확인하고 나머지는 동일하게 작동합니다.

지원 집합 $S$ 와 테스트 이미지 $\mathbf{x}$ 가 주어졌을 때, 최종 예측 클래스는:

$$
\hat{c}(\mathbf{x}) = \underset{c}{\text{argmax}} \sum_{i=1}^k p(c_i | \mathbf{x}_i)
$$

여기서 $c(\mathbf{x})$ 는 이미지 $\mathbf{x}$ 의 클래스 라벨이고, $\hat{c}(.)$ 는 예측 라벨입니다.

가정은 학습된 임베딩이 알려지지 않은 카테고리의 이미지 사이의 거리를 측정하는 데 유용하게 일반화될 수 있다는 것입니다. 이는 ImageNet 으로 사전 훈련된 모델로 훈련된 모델의 컨볼루션 특징이 다른 이미지 작업에 도움이 될 것으로 기대되는 것과 같은 전이 학습 (Transfer learning) 을 통한 사전 훈련 모델 채택의 가정이 동일합니다. 그러나 새로운 작업이 모델이 훈련된 원래 작업에서 벗어나면 사전 훈련 모델의 이점은 감소합니다.

매칭 네트워크 (Matching Networks)

매칭 네트워크 (Vinyals et al., 2016) 의 임무는 임의의 (작은) 지원 집합 $S={x_i, y_i}_{i=1}^k$ (k-shot 분류) 에 대한 분류기 $c_S$ 를 학습하는 것입니다. 이 분류기는 테스트 예제 $\mathbf{x}$ 를 주어진 경우 출력 라벨 $y$ 에 대한 확률 분포를 정의합니다. 다른 거리 기반 모델과 마찬가지로, 분류기 출력은 주의 커널 $a(\mathbf{x}, \mathbf{x}_i)$ 로 가중치된 지원 샘플의 라벨 합으로 정의됩니다 - 이는 $\mathbf{x}$ 와 $\mathbf{x}_i$ 사이의 유사성에 비례해야 합니다.

Attention kernel 는 테스트 샘플과 서포트셋 샘플을 각각 인코딩하기 위해 $f$ 와 $g$ 라는 두 개의 임베딩 함수 (embedding functions) 를 사용합니다. 두 데이터 포인트 간의 attention weight 는 soft max 에 의해 정규화된 그들의 임베딩 벡터 간의 cosine similarity, $ ext{cosine}(.)$ 입니다.

Simple Embedding

Simple version 에서 embedding function 은 하나의 데이터 샘플을 입력으로 받는 신경망입니다. 잠재적으로 우리는 $f=g$ 를 설정할 수 있습니다.

Full Context Embeddings

임베딩 벡터는 좋은 분류기를 구축하는 데 중요한 입력입니다. 단일 데이터 포인트를 입력으로 하는 것은 전체 feature space 를 효율적으로 평가하기에는 충분하지 않을 수 있습니다. 따라서 Matching Network 모델은 원래 입력뿐만 아니라 전체 서포트셋 $S$ 를 입력으로 하여 임베딩 함수를 향상시키도록 제안했습니다. 이를 통해 학습된 임베딩은 다른 서포트 샘플과의 관계에 따라 조정될 수 있습니다.

  • $g_ heta(oldsymbol{x}_i, S)$ 는 전체 서포트셋 $S$ 의 컨텍스트에서 $oldsymbol{x}_i$ 를 인코딩하기 위해 bidirectional LSTM 을 사용합니다.
  • $f_ heta(oldsymbol{x}, S)$ 는 서포트셋 $S$ 에 대한 read attention 과 함께 LSTM 을 사용하여 테스트 샘플 $oldsymbol{x}$ 를 인코딩합니다.

먼저 테스트 샘플은 CNN 과 같은 간단한 신경망을 통해 기본 특징을 추출합니다, $f'(oldsymbol{x})$.
그런 다음 LSTM 은 서포트셋에 대한 read attention 벡터가 hidden state 의 일부로 훈련됩니다:

$$ egin{aligned} oldsymbol{ ilde{h}}t, oldsymbol{c}t &= \text{LSTM}(f'(oldsymbol{x}), [\mathbf{h}{t-1}, \mathbf{r}{t-1}], \mathbf{c}{t-1}) \ \mathbf{h}t &= \boldsymbol{ ilde{h}}t + f'(oldsymbol{x}) \ \mathbf{r}{t-1} &= \sum{i=1}^k a(\mathbf{h}{t-1}, g(\boldsymbol{x}i)) g(\boldsymbol{x}i) \ a(\mathbf{h}{t-1}, g(\boldsymbol{x}i)) &= \text{softmax}(\mathbf{h}{t-1}^\top g(\boldsymbol{x}i)) = \frac{\exp(\mathbf{h}{t-1}^\top g(\boldsymbol{x}i))}{\sum{j=1}^k \exp(\mathbf{h}{t-1}^\top g(\boldsymbol{x}_j))} \end{aligned} $$

마지막으로 $f(\boldsymbol{x}, S)=\mathbf{h}_K$ 입니다. 우리가 K 단계의 "read" 를 수행하는 경우.

이 임베딩 방법은 "Full Contextual Embeddings (FCE)"이라고 불립니다. 흥미롭게도 이는 hard task 에서 성능을 향상시키는 데 도움이 되지만 (mini ImageNet 의 few-shot classification), simple task 에는 영향을 주지 않습니다 (Omniglot).

Matching Networks 의 훈련 과정은 테스트 시간에서의 추론과 일치하도록 설계되었습니다. 자세한 내용은 이전 섹션에서 확인하세요. Matching Networks 논문은 훈련 조건과 테스트 조건이 일치해야 한다는 아이디어를 정교화했습니다.

Relation Network

Relation Network (RN) (Sung et al., 2018) 은 siamese network 와 유사하지만 몇 가지 차이점이 있습니다:

  • 관계는 feature space 에서의 단순한 L1 distance 로 포착되지 않으며, CNN 분류기 $g_\phi$ 에 의해 예측됩니다. 입력 쌍 $oldsymbol{x}i$ 와 $oldsymbol{x}j$ 간의 relation score 는 $r{ij} = g\phi([\boldsymbol{x}_i, \boldsymbol{x}_j])$ 입니다. 여기서 $[.,.]$ 은 concatenation 입니다.
  • 목적 함수는 cross-entropy 대신 MSE loss 입니다. 개념적으로 RN 은 binary classification 보다 regression 에 더 가까운 relation scores 를 예측하는 데 더 중점을 두기 때문입니다, $\ ext{L}(B) = \sum_{(\boldsymbol{x}i, \boldsymbol{x}j, y_i, y_j)\in B} (r{ij} - \mathbf{1}{y_i=y_j})^2$.

(참고: DeepMind 가 제안한 관계적 추론을 위한 다른 Relation Network 가 있습니다. 혼동하지 마세요.)

Prototypical Networks

AI 자동 생성 콘텐츠

본 콘텐츠는 Lilian Weng Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
1

댓글

0