蒸馏

知识蒸馏 (Knowledge Distillation)

简介

知识蒸馏(Knowledge Distillation, KD)是一种模型压缩技术,旨在将一个庞大、复杂且性能优越的“教师”模型(Teacher Model)的知识迁移到一个轻量级、高效的“学生”模型(Student Model)中。通过这种方式,学生模型可以在保持较低计算成本的同时,获得接近教师模型的性能。

视觉模型中的应用

1. 人体关键点检测 (Human Pose Estimation, HPE)

在人体关键点检测任务中,模型通常需要消耗大量的计算资源(高 FLOPs 和参数量)来维持高精度,这限制了其在移动端或实时场景下的应用。知识蒸馏在此领域的应用主要集中在平衡效率精度

核心动机

  • 轻量化部署:将重型检测器(如基于 ResNet-101/152 的模型)压缩为轻量级模型(如 MobileNet 或 ShuffleNet 骨干),以适应边缘设备。
  • 保持结构信息:人体关键点具有很强的几何约束和结构相关性,普通的分类蒸馏无法充分利用这些信息。

蒸馏机制

  1. Logit Distillation (输出层蒸馏)
    • 利用教师模型输出的热图(Heatmaps)作为“软标签”(Soft Targets)指导学生模型。
    • 不仅学习正确位置的峰值,还学习教师模型对周围位置的预测分布(暗知识)。
  2. Feature Distillation (特征层蒸馏)
    • 对齐教师和学生模型中间层的特征图。
    • 让学生模型学习到更鲁棒的高层语义特征。
  3. Structure Distillation (结构蒸馏)
    • 关键点:人体骨骼结构具有固定的几何关系(如手肘连接手腕和肩膀)。
    • 方法:通过建模关键点之间的相互关系(如肢体方向、距离),强制学生模型学习这种结构化知识,而不仅仅是独立的像素点预测。

代表性方案

  • OKDHP (Online Knowledge Distillation for Human Pose)
    • 提出一种单阶段的在线蒸馏框架,无需预训练教师模型。
    • 通过多分支网络协同训练,各分支互为教师,聚合预测结果作为监督信号。
  • Integral Knowledge Distillation:
    • 综合利用 Logit、特征和结构三种蒸馏策略,全方位提升学生模型能力。