Bilgi Damıtma

term_id: knowledge_distillation

Category: training_techniques

Definition

Bilgi damıtma, büyük ve karmaşık bir sinir ağını (öğretmen) daha küçük ve verimli bir ağya (öğrenci) sıkıştırmak için kullanılan makine öğrenimi yöntemidir. Öğrenci modeli, öğretmenin davranışlarını öğrenmek üzere eğitilir.

Summary

Bilgi damıtma, daha küçük bir öğrenci modelinin daha büyük bir öğretmen modelinin davranışını taklit etmesini sağlayan bir model sıkıştırma tekniğidir.

Key Concepts

  • Öğretmen-Öğrenci Modeli
  • Model Sıkıştırma
  • Yumuşak Hedefler (Soft Targets)
  • Verimlilik

Use Cases

  • Kenar cihazlarında modelleri dağıtma
  • Çıkarım gecikmesini azaltma
  • Bulut bilişim maliyetlerini düşürme

Code Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import torch
import torch.nn as nn

def distillation_loss(student_logits, teacher_logits, temperature=2.0):
    T = temperature
    student_probs = nn.functional.softmax(student_logits / T, dim=1)
    teacher_probs = nn.functional.softmax(teacher_logits / T, dim=1)
    return nn.functional.kl_div(
        nn.functional.log_softmax(student_logits / T, dim=1),
        teacher_probs,
        reduction='batchmean'
    ) * (T * T)