【DL】浅谈深度学习中的知识蒸馏 | 2019 CVPR | 中间层知识蒸馏
论文题目:Learning Metrics from Teachers: Compact Networks for Image Embedding
论文地址:https://arxiv.org/pdf/1904.03624
代码地址:https://github.com/yulu0724/EmbeddingDistillation
【摘要】度量学习网络用于计算图像嵌入,在图像检索、人脸识别等许多应用中被广泛使用。在本文中,我们提出使用网络蒸馏来高效地计算小网络下的图像嵌入。网络蒸馏已成功应用于改进图像分类,但在度量学习方面的探索较少。为此,我们提出了两个新的损失函数来模拟深度教师网络到小规模学生网络的通信。我们在包括CUB-200-2011,Cars-196,Stanford Online Products在内的几个数据集上评估了我们的系统,并表明使用小型学生网络计算的嵌入性能明显优于使用相同大小的标准网络计算的嵌入性能。在可在移动设备上使用的非常紧凑的网络( MobileNet-0.25 )上的结果表明,本文提出的方法可以将Recall @ 1结果从27.5%大幅提升到44.6%。此外,我们研究了用于嵌入的蒸馏的各个方面,包括提示层和注意力层,半监督学习和交叉质量蒸馏。
目录
一 Preliminaries
1 度量学习
2 Network Distillation
二 Distillation for Metric Learning
1 Knowledge distillation for embedding networks
2 Learning from hints and attention
一 Preliminaries
在本文中,把网络蒸馏应用到度量学习网络中。本部分将对二者进行简要介绍。
1 度量学习
在大多数计算机视觉应用中,一个基本的步骤是将图像的初始表示(即像素)转换为另一个具有更理想特性的表示。这一过程常被表示为特征提取,将图像投影到高层表示,以捕获与任务相关的语义特征。如何在这种高层表示中组织图像对许多应用的成功至关重要。例如,图像检索、k - NN或最近类均值分类器等基于这些高层图像表示之间的距离。度量学习解决了这个问题,并打算将输入的特征表示映射到一个嵌入空间,其中L2距离与所需的相似性概念相关。在这项工作中,我们将专注于深度的或端到端的度量学习,其中整个特征提取网络是联合训练的,以生成尽可能好的表示。
三重损失如下述公式(1)。
其中d +和d -分别是锚点与正例和负例之间的距离。Triplet网络仅对输出嵌入施加局部约束,可以简化收敛,但训练难度较大。
2 Network Distillation
网络蒸馏旨在将一个大的教师网络T中的知识转移到一个小的学生网络S中,公式(2)如下。
其中,λ用于平衡两个交叉熵损失H的重要性:第一个损失对应于学生网络的预测和真实标签之间的传统损失,第二个损失对应于学生网络和教师网络的annealed概率输出之间的损失。这种损失促使学生做出与教师网络类似的预测。
公式(3)如下。
其中aS和aT分别是学生网络和教师网络的( pre-softmax )激活,温度τ用于软化网络输出的信号。研究发现,对于复杂的分类任务,τ = 1时取得了较好的结果。
二 Distillation for Metric Learning
众所周知,具有大量参数的宽而深的网络可以获得出色的结果,然而它们非常耗时且需要大量的内存。网络蒸馏被证明是在分类领域处理这个问题的解决方案之一。在这一部分中,将知识蒸馏理论扩展到旨在将图像投影到嵌入空间的网络中。此外,还将讨论hint和注意转移在学生和教师之间的结合。
1 Knowledge distillation for embedding networks
将知识蒸馏技术扩展到用于将输入数据投影到嵌入(从现在起称为嵌入网络)的网络中。然后,这些嵌入通常用于执行距离计算。我们将考虑两种观点,并设计两种不同的教师:一种教师,称为绝对教师,向学生教授精确的坐标;另一种教师,称为相对教师,只向学生教授数据对之间的距离。
在第一种方法中,作为绝对教师,直接最小化学生( FS )和教师( FT )嵌入之间的距离。这是通过最小化来完成的,见公式(4):
在第二种方法中,考虑相对的教师,它强制学生网络学习任何嵌入,只要它导致数据点之间的相似距离。这是通过最小化以下损失来完成的,见公式(5)和(6):
图1提供了一个图形说明,它显示了绝对教师和相对教师所使用的相关距离。在学生网络的训练过程中,教师网络被冻结。绝对教师最小化每个训练样本的学生和教师嵌入之间的距离。在相对教师的情况下,应该考虑成对的数据点,因为在训练期间,学生网络被优化以获得数据点实例之间的相似距离。见图1。为度量学习提出的两个知识蒸馏损失的图形说明。
蒸馏损失函数如公式(7)。
见图2。绝对教师与相对教师的差异例证。(左)教师嵌入空间中四个数据点的实例。我们考虑了来自两个类(用正方形和星号表示)的两个样本. (中间和右)表示两个学生嵌入S1和S2的(点的教师位置以虚线给出)的绝对和相对损失。(右)嵌入更可取,因为它正好等于教师。这只得到相对教师的赞赏,而绝对教师对两者的损失是相等的。
2 Learning from hints and attention
Romero等人[ 24 ]提出通过在教师学习的中间表示上引入额外的损失(称为提示)来改进知识蒸馏。包含暗示层的损失如公式(8)。
结合绝对教师或相对教师的知识蒸馏损失作为最终的目标函数,见公式(9):
注意力图传达了图像中的哪些空间位置被认为与教师网络相关,以便对其进行解释。因此,交流这些信息可以指导学生在网络学习中完成手头的任务。提出根据公式(10)计算基于激活的空间注意力:
用类似的公式从学生激活图进行计算,则注意力损失定义如公式(11):
这迫使学生将注意力分配到老师认为重要的相同位置。
基于注意力的度量学习网络的全目标函数如公式(12)所示。
在图3中,展示了如何在ResNet-101教师网络和ResNet18学生网络之间引入提示层和注意力层。hints和注意力损失都是在多个层面上施加的。见图3。师生hint/注意力转移示意图。
【结论】我们研究了网络蒸馏,目的是计算有效的图像嵌入网络。我们提出了两个损失,目的是将教师网络知识传播到学生网络。我们在几个数据集上评估了我们的方法,并报告了显著的改进:我们在CUB200-2011上获得了6.3%的增益,在Cars-196上获得了29.9%的增益,在Stanford Online Products for Recall @1上获得了6.3%的增益。此外,我们将蒸馏损失应用到MobileNet-0.25中。将Recall @1提高了17.1%。我们还验证了添加未标记数据对嵌入学习的好处。此外,我们证明了在高质量图像上学习到的嵌入可以用来改进仅能访问低质量图像的学生网络。
至此,本文的内容就结束啦。