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. 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

2

Kilder

1
  • Be Your Own Teacher: Improving the Performance of Convolutional Neural Networks via Self Distillation (2019)