Self-distillation

Self-distillation er en træningsteknik, hvor en model lærer af sine egne forudsigelser, ofte ved at bruge en tidligere version af sig selv som lærer.

Kort fortalt

En model træner sig selv ved at bruge sine egne output som læringssignal.

Kategori
teknik
Niveau
øvet

Betydninger

1
  1. 1

    En træningsteknik inden for maskinlæring, hvor en model bruger sine egne forudsigelser (fra en tidligere version eller fra et senere lag i netværket) som læringssignal i stedet for eller som supplement til de faktiske etiketter.

    • Self-distillation kan forbedre performance uden ekstra data.
    • I self-distillation fungerer modellen som sin egen lærer.

Hvornår bruges det

Self-distillation bruges til at forbedre generalisering og modellens robusthed, især når et eksternt lærermodel ikke er tilgængeligt. Det kan anvendes i flere iterationer for gradvist at forfine modellen.

Kodeeksempel

# Self-distillation loop
teacher = model  # start with same model
for epoch in range(epochs):
    for images, labels in dataloader:
        student_output = model(images)
        teacher_output = teacher(images).detach()
        loss = distillation_loss(student_output, teacher_output, labels)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
    teacher = copy.deepcopy(model)  # update teacher periodically

Eksempel på self-distillation træningsloop: modellen lærer fra en tidligere kopi af sig selv.

Oprindelse

Termen er en sammensætning af 'self' og 'distillation', inspireret af knowledge distillation (Hinton et al., 2015), hvor viden overføres fra en stor model til en mindre.

Afledte ord

2

Kilder

2
  • Distilling the knowledge in a neural network
  • Born Again Neural Networks