Yolov3目标检测模型蒸馏实验
PaddleDetection知识蒸馏
知识蒸馏主要是让让新模型(通常是一个参数量更少的模型)近似原模型(模型即函数)。注意到,在机器学习中,我们常常假定输入到输出有一个潜在的函数关系,这个函数是未知的:从头学习一个新模型就是从有限的数据中近似一个未知的函数。如果让新模型近似原模型,因为原模型的函数是已知的,我们可以使用很多非训练集内的伪数据来训练新模型。
分类模型蒸馏:
原来我们需要让新模型的softmax分布与真实标签匹配,现在只需要让新模型与原模型在给定输入下的softmax分布匹配了。但是由于softmax函数是一个约等于arg max的近似,它所能描述的知识(对输出的概率描述)非常有限,一种常用的解决方法是直接让新旧模型匹配logits输出,即使用teacher model的logits输出作为student model的回归目标,并使用L2损失作为loss。
one-stage检测模型蒸馏:
基本思路
One-stage目标检测任务的训练目标难度更大,因为teacher网络会预测出更多的背景bbox,如果直接用teacher的预测输出作为student学习的soft label会有严