teacher-student training

En træningsteknik, hvor en stor, prætrænet model (læreren) overfører sin viden til en mindre model (eleven) ved at guide elevens læring via lærerens outputfordelinger eller logits.

Kort fortalt

Kort fortalt: Lær eleven ved at lade den efterligne en lærermodel.

Kategori
træning
Niveau
øvet
Udtale
/ˈtiːtʃər ˈstuːdənt ˈtreɪnɪŋ/

Betydninger

1
  1. 1

    En træningsparadigme, hvor en forudtrænet model (læreren) bruges til at guide træningen af en anden model (eleven), typisk ved at minimere forskellen mellem deres forudsigelser, fx via soft targets.

    • I teacher-student training minimeres KL-divergensen mellem lærerens og elevens softmax-outputs.Hinton et al., 2015
    • Teacher-student training muliggør komprimering af store neurale netværk uden væsentligt tab af nøjagtighed.Buciluă et al., 2006

Hvornår bruges det

Teacher-student training anvendes typisk til modelkompression og knowledge distillation, hvor en stor model (fx en ensemble-model eller en deep neural network) erstattes af en mindre model med lignende ydeevne. Teknikken bruges også i semi-supervised learning og self-training.

Kodeeksempel

import torch
import torch.nn.functional as F

def distillation_loss(student_logits, teacher_logits, labels, T=4, alpha=0.7):
    soft_student = F.softmax(student_logits / T, dim=1)
    soft_teacher = F.softmax(teacher_logits / T, dim=1)
    kl_loss = F.kl_div(soft_student.log(), soft_teacher, reduction='batchmean') * (T ** 2)
    ce_loss = F.cross_entropy(student_logits, labels)
    return alpha * kl_loss + (1 - alpha) * ce_loss

Eksempel på et distillationstab i PyTorch, der kombinerer KL-divergens mellem lærer og elev samt krydsentropi med sande labels.

Oprindelse

Udtrykket er lånt fra pædagogik og overført til maskinlæring, hvor en lærermodel guider en elevmodel.

Kilder

2
  • Distilling the Knowledge in a Neural Network (Hinton et al., 2015)
  • Model Compression (Buciluă et al., 2006)