蒸馏
知识蒸馏 (Knowledge Distillation)
简介
知识蒸馏(Knowledge Distillation, KD)是一种模型压缩技术,旨在将一个庞大、复杂且性能优越的“教师”模型(Teacher Model)的知识迁移到一个轻量级、高效的“学生”模型(Student Model)中。通过这种方式,学生模型可以在保持较低计算成本的同时,获得接近教师模型的性能。
视觉模型中的应用
1. 人体关键点检测 (Human Pose Estimation, HPE)
在人体关键点检测任务中,模型通常需要消耗大量的计算资源(高 FLOPs 和参数量)来维持高精度,这限制了其在移动端或实时场景下的应用。知识蒸馏在此领域的应用主要集中在平衡效率与精度。
核心动机
- 轻量化部署:将重型检测器(如基于 ResNet-101/152 的模型)压缩为轻量级模型(如 MobileNet 或 ShuffleNet 骨干),以适应边缘设备。
- 保持结构信息:人体关键点具有很强的几何约束和结构相关性,普通的分类蒸馏无法充分利用这些信息。
蒸馏机制
- Logit Distillation (输出层蒸馏):
- 利用教师模型输出的热图(Heatmaps)作为“软标签”(Soft Targets)指导学生模型。
- 不仅学习正确位置的峰值,还学习教师模型对周围位置的预测分布(暗知识)。
- Feature Distillation (特征层蒸馏):
- 对齐教师和学生模型中间层的特征图。
- 让学生模型学习到更鲁棒的高层语义特征。
- Structure Distillation (结构蒸馏):
- 关键点:人体骨骼结构具有固定的几何关系(如手肘连接手腕和肩膀)。
- 方法:通过建模关键点之间的相互关系(如肢体方向、距离),强制学生模型学习这种结构化知识,而不仅仅是独立的像素点预测。
代表性方案
- OKDHP (Online Knowledge Distillation for Human Pose):
- 提出一种单阶段的在线蒸馏框架,无需预训练教师模型。
- 通过多分支网络协同训练,各分支互为教师,聚合预测结果作为监督信号。
- Integral Knowledge Distillation:
- 综合利用 Logit、特征和结构三种蒸馏策略,全方位提升学生模型能力。