few-shot klassifikation
En maskinlæringsopgave, hvor en model skal klassificere nye klasser baseret på meget få labeled eksempler (typisk 1-5 per klasse).
Kort fortalt
En teknik, der lader en AI lære at genkende nye kategorier ud fra kun nogle få eksempler, ligesom et menneske kan lære af få billeder.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
En underkategori af few-shot learning, hvor målet er at tildele korrekte klasser til forespørgselsinstanser ved hjælp af en lille støttemængde af labeled data.
- Few-shot klassifikation med kun ét eksempel per klasse (one-shot) er en særlig udfordring for neurale netværk. — egen
- Prototypiske netværk løser few-shot klassifikation ved at beregne centroiden for hver klasse i et indlejringsrum. — Snell et al., 2017
Hvornår bruges det
Few-shot klassifikation anvendes i scenarier med begrænsede mærkede data, fx i medicinsk billeddiagnostik, artsgenkendelse og personlig assistent-teknologi. Det er typisk implementeret med meta-læring eller metriske læringsmetoder, hvor modellen generaliserer fra en række opgaver.
Kodeeksempel
import torch.nn as nn
import torch
class PrototypicalNetwork(nn.Module):
def __init__(self, backbone):
super().__init__()
self.backbone = backbone # f.eks. CNN
def forward(self, support, query, n_way, k_shot):
# support: (n_way*k_shot, C, H, W)
# query: (n_query, C, H, W)
support_emb = self.backbone(support)
query_emb = self.backbone(query)
# Beregn prototyper som gennemsnit af support embeddings per klasse
prototypes = support_emb.view(n_way, k_shot, -1).mean(dim=1)
# Beregn afstande (euklidisk) mellem query og prototyper
dists = torch.cdist(query_emb, prototypes)
# Returnér log-softmax over afstande (negativ distance)
return torch.log_softmax(-dists, dim=-1)En simpel implementation af et prototypisk netværk til few-shot klassifikation. Backbonen udtrækker features, prototyper beregnes som centroiden af support-eksemplerne, og klassifikation sker via nærmeste naboe i indlejringsrummet.
Oprindelse
Termen 'few-shot' kommer fra maskinlæringslitteraturen (ca. 2000'erne), hvor 'shot' refererer til antallet af træningseksempler pr. klasse. 'Klassifikation' er standardtermen for kategoriseringsopgaver.