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
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_lossEksempel 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)