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
좋은 초기화 θ 학습: 몇 번 업데이트로 새 태스크 적응
내부 루프 (태스크 적응):
θᵢ' = θ - α∇θ 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
빠른 가중치 학습:
- 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 |
망각 방지, 메타러닝은 빠른 학습 |