콘텐츠로 이동
Data Prep
상세

메타러닝 (Meta-Learning)

1. 개요

메타러닝은 "학습하는 방법을 학습"하는 기계학습 패러다임. 다양한 태스크를 경험하며 새로운 태스크에 빠르게 적응하는 능력을 학습함. Few-shot learning, 빠른 적응, AutoML 등에 핵심적으로 활용됨.

정의

메타러닝: 태스크 분포 P(T)에서 학습

일반 ML: 단일 태스크 T에서 최적 파라미터 θ* 학습
메타러닝: 태스크 분포에서 새 태스크에 빨리 적응하는 메타 지식 학습

목표: min_θ E_{T~P(T)} [L(T; θ)]

Learning to Learn

전통적 ML:
  D_train → 알고리즘 → 모델 → 예측

메타러닝:
  {T₁, T₂, ..., Tₙ} → 메타 알고리즘 → 메타 지식
  새로운 T_{n+1} + 메타 지식 → 빠른 적응

2. 핵심 개념

2.1 에피소딕 학습 (Episodic Training)

N-way K-shot 태스크:
- N: 클래스 수
- K: 클래스당 샘플 수

에피소드 구성:
- Support Set S: N×K 샘플 (학습용)
- Query Set Q: 평가용 샘플

메타 학습:
for episode in episodes:
    S, Q = sample_task()
    θ' = adapt(θ, S)  # 내부 루프
    loss += L(Q; θ')
update(θ, loss)  # 외부 루프

2.2 메타러닝 구성요소

구성요소 역할
메타 훈련 세트 학습용 태스크 집합
메타 테스트 세트 평가용 새 태스크
내부 루프 태스크 내 적응
외부 루프 태스크 간 메타 지식 업데이트

2.3 메타러닝 유형

유형 학습 대상 예시
Metric-based 유사도 공간 Siamese, Prototypical
Optimization-based 초기화/업데이트 MAML, Reptile
Model-based 적응 메커니즘 MANN, MetaNet

3. 주요 알고리즘/기법

3.1 Metric-based Methods

Siamese Network

동일 네트워크로 두 샘플 임베딩 후 거리 비교

Loss: L = (1-y)½d² + y½max(0, m-d)²

y: 동일 클래스 여부
d: 임베딩 거리
m: 마진

Prototypical Networks

클래스 프로토타입 = 클래스 샘플 평균

cₖ = (1/|Sₖ|) Σ_{x∈Sₖ} fθ(x)

예측: p(y=k|x) = softmax(-d(fθ(x), cₖ))

d: 유클리드 거리

Matching Networks

Attention 기반 예측:

p(y|x, S) = Σᵢ a(x, xᵢ) yᵢ

a(x, xᵢ) = softmax(cos(fθ(x), gθ(xᵢ)))

f, g: 임베딩 네트워크 (컨텍스트 의존)

3.2 Optimization-based Methods

MAML (Model-Agnostic Meta-Learning)

좋은 초기화 θ 학습: 몇 번 업데이트로 새 태스크 적응

내부 루프 (태스크 적응):
θᵢ' = θ - α∇θ L_Tᵢ(θ)

외부 루프 (메타 업데이트):
θ ← θ - β∇θ Σᵢ L_Tᵢ(θᵢ')

특징:
- 모델에 무관 (Model-Agnostic)
- 2차 그래디언트 필요

MAML 변형: | 변형 | 특징 | |------|------| | First-order MAML | 2차 미분 무시 | | Reptile | 더 단순한 업데이트 | | ANIL | 헤드만 적응 | | Meta-SGD | 학습률도 학습 |

Reptile

간단한 MAML 대안:

for each task:
    θ' = SGD(θ, Tᵢ, k steps)
θ ← θ + ε(θ' - θ)

1차 미분만 필요
MAML과 유사한 성능

3.3 Model-based Methods

Memory-Augmented Neural Networks

외부 메모리 M 활용:
- 새 정보 저장
- 유사 정보 검색

Neural Turing Machine, MANN

MetaNet

빠른 가중치 학습:
- Slow weights: 메타 지식
- Fast weights: 태스크 적응

Fast weights = MetaLearner(Support Set)

3.4 메타러닝 + 전이학습

사전학습 + 메타 fine-tuning:
1. 대규모 데이터로 사전학습
2. 메타러닝으로 few-shot 적응력 강화

예: BERT → ProtoNet fine-tuning

4. 실무 적용 사례

4.1 Few-shot 이미지 분류

문제: 새 클래스를 적은 샘플로 학습

시나리오:
- 5-way 1-shot: 5 클래스, 각 1개 샘플
- 5-way 5-shot: 5 클래스, 각 5개 샘플

적용:
- 드문 객체 인식
- 개인화 추천
- 의료 영상 (희귀 질환)

4.2 로봇 학습

새로운 태스크 빠른 적응:
- 다양한 물체 잡기
- 새 환경 내비게이션

MAML + RL:
meta-train으로 기본 정책 학습
새 태스크에 few gradient steps로 적응

4.3 약물 발견

새 분자 특성 예측:
- 기존 분자 데이터로 메타 학습
- 새 타겟에 few-shot 적응

분자 유사성 기반 Prototypical

4.4 개인화

사용자별 빠른 적응:
- 추천 시스템
- 키보드 예측
- 음성 인식

각 사용자 = 하나의 태스크

5. 참고 논문/저널

핵심 논문

논문 저자 출처 기여
"Siamese Neural Networks for One-shot Image Recognition" Koch et al. ICML Workshop 2015 Siamese
"Matching Networks for One Shot Learning" Vinyals et al. NeurIPS 2016 Matching Networks
"Prototypical Networks for Few-shot Learning" Snell et al. NeurIPS 2017 Prototypical
"Model-Agnostic Meta-Learning for Fast Adaptation" Finn et al. ICML 2017 MAML
"On First-Order Meta-Learning Algorithms" Nichol et al. 2018 Reptile
"Meta-Learning: A Survey" Hospedales et al. TPAMI 2021 종합 서베이

주요 컨퍼런스

컨퍼런스 설명
NeurIPS, ICML, ICLR 메타러닝 알고리즘
CVPR, ICCV Few-shot 비전
CoRL 로봇 메타러닝

벤치마크

벤치마크 도메인
Omniglot 필기 문자 (1,623 클래스)
miniImageNet 이미지 (100 클래스)
tieredImageNet 계층적 이미지
Meta-Dataset 다중 도메인
FewRel NLP 관계 분류

6. 구현 도구

도구 특징
learn2learn PyTorch 메타러닝
higher 미분 가능 최적화
torchmeta 데이터셋 + 알고리즘
meta-learning-gym 강화학습 메타

learn2learn 예시

import learn2learn as l2l

# MAML
maml = l2l.algorithms.MAML(model, lr=0.01)

for batch in taskloader:
    meta_train_loss = 0.0

    for task in batch:
        learner = maml.clone()
        support, query = task

        # 내부 루프
        for step in range(adaptation_steps):
            loss = compute_loss(learner, support)
            learner.adapt(loss)

        # 메타 손실
        meta_train_loss += compute_loss(learner, query)

    # 외부 루프
    meta_train_loss /= len(batch)
    optimizer.zero_grad()
    meta_train_loss.backward()
    optimizer.step()

7. 메타러닝 vs 관련 개념

개념 차이점
전이학습 소스→타겟, 메타러닝은 태스크 분포
멀티태스크 동시 학습, 메타러닝은 순차적 적응
AutoML 파이프라인 자동화, 메타러닝은 빠른 적응
Continual Learning 망각 방지, 메타러닝은 빠른 학습