发布平台:IEEE Transactions on Neural Networks and Learning Systems
论文链接:https://ieeexplore.ieee.org/document/9729452
代码链接:https://github.com/SJLeo/FFSD
创新点
提出一种新的在线知识蒸馏方法(FFSD),由特征融合和自蒸馏两部分组成,分别解决了在线蒸馏中的两个问题:1.在线蒸馏采用表现最好的学生,忽略了其他学生的信息。2.在线蒸馏构建一个集成模型,增加了部署过程中的计算复杂度。
FFSD将在线蒸馏网络分为领导学生和共同的学生集,通过特征融合模块帮助领导学生学习。采用自蒸馏模块将深层特征图转换为浅层特征图,鼓励浅层特征图模拟深层转换的特征图,以帮助共同学生集更好的学习。
问题
(b)表示的是相互学习的在线蒸馏。©表示的是集成学习的在线蒸馏。
相互学习的在线蒸馏对齐所有学生的软输出,允许消息在他们之间传递,采用性能最优的学生模型作为最终模型。然而,消息传递并不能保证一个学生携带了集合的所有信息,因此限制了蒸馏装置的性能。
集成学习通过整合所有学生的输出构建一个虚拟教师,然后重新培养每一个学生。然而,训练过程中必须保留所有的学生模型,以便获得他们的输出,为此增加了内存消耗和计算复杂度。
方法
论文设计了具有多样性增强策略的特征融合模块和自蒸馏模块,以在一个统一的框架内解决上述问题。具体描述,论文构建了一个共同的学生集和一个领导学生。
学生1和学生2通过相互学习进行训练。通过将学生1的注意力转移到学生2上,增强学生之间的多样性。特征融合模块将所有学生的信息融合成一个融合的特征图以帮助领导学生学习。
学生
共同学生集与领导学生是训练前事先划分好的。例:3个ResNet18同时开始训练,前两个ResNet18作为共同学生集,最后一个ResNet18作为领导学生。后续只有领导学生被保留并且进行部署。
准备工作
表示总的学生集合,它们具有相同的网络结构,对于每个模型,第层特征图的输出表示为,给定一个带有个类的标记数据集,将学生产生的逻辑输出记为。
表示普通的输出结果(T=1),表示软化的输出结果。
作为领导学生,并将剩余的作为一个共同的学生集。
共同学生之间相互学习的训练目标定义为:
表示与之间的交叉熵,表示两个共同学生之间的逻辑蒸馏。
特征融合
为了充分利用共同学生集中的丰富信息,鼓励领导学生学习两方面特征内容:1.共同学生集输出特征映射编码后的紧凑特征映射(该紧凑特征映射与领导学生的特征映射尺寸相同)。2.共同学生集的串联特征图(对领导学生输出的特征映射进行解码使其匹配)。
表示共同学生集的特征集合,
是共同学生1 的第层的特征输出,
是共同学生2的第层的特征输出,
表示共同学生集串联的特征映射,
是共同学生集的融合特征(经过特征映射编码后的紧凑特征映射)。
表示领导学生的第层的特征输出,
是领导学生解码后的特征输出。
表示自动编码模块(对串联的共同学生集合特征编码,对领导学生特征解码)。
融合模块(Feature Fusion Module)受到标签和学生集合逻辑输出的监督(以保证监督融合特征的质量)。
融合分类器的训练目标为:
领导学生输出特征映射的优化目标为:
表示范数,将与的通道维数对齐。
增强策略(不理解)
一个直观的解决方案可以通过最小化中间输出上的负重构误差:
为了减少多样性计算,建议使用等式训练第一个学生:
其中学生只对学生进行多样性增强计算。因此多样性增强学习以单向链的方式将每个学生的知识转移给下一个同学。
将学生的特征图表示为。注意。多样性本质上增强,使学生的注意力集中在不同的图像位置。首先提取每个特征映射 的注意力为:
其中,为第层的通道数。然后,多样性增强注意力图为:
其中和被设置作为第个最小的数字在。等式的目标(8)是将注意力转移到稍微较弱的区域,同时保持任务独立区域的注意价值。特别地,被用来确定该区域是否依赖于任务。当区域独立于任务时时,的值等于,,否则。通过将任务依赖区域的激活值改变为,将注意力转移到稍微较弱的区域。增强了来取代等式(6)是
自蒸馏
共同学生网络最后一层输出的特征映射作为输入。
学生网络的输出特征图作为自蒸馏的训练输入/目标(网络的输出作为自蒸馏模块的输入,网络的输出作为自蒸馏模块的训练目标)。
每个块的特征图表示为(它由块组成),其注意图计算方式为:
对于学生,其自蒸馏模块的培训目标是:
α平衡了这两个损失项。
为了增强多样性,将多样性注意目标转换为多样性特征目标作为自蒸馏模块的输入,自蒸馏模块输出较浅层的目标为。从而成为学生的多样性增强目标:
领导学生的自蒸馏模块以融合特征图作为输入,输出较浅层的目标特征图。相应的自蒸馏损失为:
损失函数
共同学生的训练目标如下:
领导学生的训练目标如下: