self-distillation pipeline
En træningspipeline hvor en model fungerer som sin egen lærer ved at bruge egne forudsigelser som soft labels til at forbedre sin egen præstation.
Kort fortalt
En metode hvor en model træner sig selv ved at lære af sine egne forudsigelser, ofte i flere iterationer, for at blive bedre uden ekstern supervision.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
En træningsprocedure hvor en model genererer soft labels fra sine egne forudsigelser og bruger dem som træningsmål i samme eller efterfølgende iterationer, ofte kombineret med en konsistensregularisering.
- I self-distillation pipelinen blev modellens forudsigelser fra epoke 10 brugt som soft labels for epoke 11.
- Self-distillation pipeline kan implementeres ved at gemme logits i en replay buffer og sample dem under træning.
Hvornår bruges det
Self-distillation pipeline bruges typisk til at forbedre generalisering og robusthed, især når mærkede data er begrænset. Processen involverer ofte at gemme soft labels fra en tidligere epoke og bruge dem som træningsmål i næste epoke, hvilket kan reducere overfit.
Kodeeksempel
for epoch in range(num_epochs):
for x, _ in dataloader:
logits = model(x)
if epoch == 0:
soft_labels = logits.detach()
else:
loss = criterion(logits, soft_labels) + alpha * criterion(logits, targets)
loss.backward()
optimizer.step()
soft_labels = 0.9 * soft_labels + 0.1 * logits.detach()Simpel self-distillation loop: Gem logits som soft labels og opdater dem eksponentielt, mens modellen trænes med en kombineret loss.
Oprindelse
Sammensat af 'self-distillation' (selv-destillation, en teknik hvor en model destillerer viden fra sig selv) og 'pipeline' (rørledning, en sekvens af databehandlingstrin).
Afledte ord
2Kilder
1- Be Your Own Teacher: Improving the Performance of Convolutional Neural Networks via Self Distillation (2019)