知识蒸馏
term_id: knowledge_distillation
Category: training_techniques
Definition
知识蒸馏是一种机器学习方法,用于将庞大复杂的神经网络(教师模型)压缩为更小、更高效的网络(学生模型)。学生模型经过训练以模仿教师模型的行为。
Summary
知识蒸馏是一种模型压缩技术,其中较小的学生模型通过学习模仿较大的教师模型的行为来工作。
Key Concepts
- 师生模型
- 模型压缩
- 软标签
- 效率
Use Cases
- 在边缘设备上部署模型
- 降低推理延迟
- 降低云计算成本
Code Example
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)