Knowledge Distillation

定义

把复杂模型或者多个模型Ensemble(Teacher)学到的知识 迁移到另一个轻量级模型( Student )上叫知识蒸馏。使模型变轻量的同时(方便部署),尽量不损失性能。

——Hinton, NIPS 2014workshop

Method

Response-Based Knowledge

Distilling the Knowledge in a Neural Network

  • 目的:压缩模型
  • soft target
    • softmax-T (T为温度)
    • T = 1,公式同softmax输出后的结果
    • T越接近0,公式越同One-hot编码
    • 提升T,则保留更多类别关系信息,平滑分布
  • teacher frozen
    • 保证训练稳定程度

Feature-Based Knowledge

FitNets: Hints for Thin Deep Nets

  • 直接让小模型在输出端模仿大模型难度过大
  • hint training
    • 网络中间的输出也拿出来,让大模型和小模型中间层的输出也要尽量接近,让小模型去学习大模型做预测时的中间步骤
  • 两阶段训练
    • feature(1-5):
      • teacher网络隐藏层参数
      • Wr作用为:
        • T/S权重中随机采样
        • Ws 投影到 Wt 空间
    • response(6):
      • 输出拟合

Relation-Based Knowledge

A Gift from Knowledge Distillation: Fast Optimization, Network Minimization and Transfer Learning

  • 拟合大型模型层与层之间的关系,高屋建瓴

  • FSP 矩阵:

  • FPS loss:

  • model:

  • 两阶段训练:

    • FPS训练
    • 原始任务训练

参考资料

https://arxiv.org/pdf/2006.05525.pdf

https://zhuanlan.zhihu.com/p/92166184

https://zhuanlan.zhihu.com/p/92269636


   Reprint policy


《Knowledge Distillation》 by Liangyu Cui is licensed under a Creative Commons Attribution 4.0 International License
  TOC