meta-learning model
En meta-learning model er en model, der er trænet til at lære nye opgaver hurtigt ved at udnytte erfaring fra tidligere opgaver.
Kort fortalt
En model, der lærer at lære – så den kan tilpasse sig nye opgaver med kun få eksempler.
- Kategori
- model
- Niveau
- øvet
Betydninger
1- 1
En maskinlæringsmodel, der er designet til at lære fra en distribution af opgaver og dermed opnå evnen til at generalisere til nye opgaver med minimal træning.
- Meta-learning-modeller som MAML (Model-Agnostic Meta-Learning) kan finjusteres til nye opgaver med kun en enkelt gradientopdatering.
- I few-shot klassificering anvendes meta-learning-modeller til at genkende nye klasser baseret på få eksempler.
Hvornår bruges det
Meta-learning-modeller bruges i few-shot learning scenarier, hvor der kun er få træningseksempler pr. opgave. De trænes på en række opgaver for at finde en initialisering eller en optimeringsstrategi, der gør dem i stand til hurtigt at tilpasse sig nye opgaver.
Kodeeksempel
import torch
def meta_train_step(model, tasks, inner_lr=0.01, meta_lr=0.001):
meta_loss = 0.0
for task in tasks:
# Inner loop: adapt to task
adapted_model = clone(model)
for _ in range(5):
loss = compute_loss(adapted_model, task['support'])
grad = torch.autograd.grad(loss, adapted_model.parameters())
adapted_model.parameters() -= inner_lr * grad
# Compute meta-loss on query set
meta_loss += compute_loss(adapted_model, task['query'])
# Meta-update
meta_grad = torch.autograd.grad(meta_loss, model.parameters())
model.parameters() -= meta_lr * meta_gradEn forenklet iteration af en meta-træningsloop: for hver opgave tilpasses modellen med en indre gradientopdatering, og tabet på queries bruges til metagradienten.
Oprindelse
Udtrykket 'meta-learning' kommer fra græsk 'meta' (betyder 'ud over' eller 'om') og 'learning', altså 'læring om læring'.
Kilder
2- Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks (Finn et al., 2017)
- Meta-Learning with Latent Embedding Optimization (Rusu et al., 2019)