欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

【论文笔记_自蒸馏_知识蒸馏_2022】Self-Distillation from the Last Mini-Batch for Consistency Regularization-3.方法

最编程 2024-06-28 10:18:28
...

3.1准备工作
在这项工作中,我们把重点放在有监督的分类任务上作为案例研究。为了清楚起见,我们把K类标记的数据集写成D = {(xi, yi)}N i=1,其中N是训练实例的总数。在每个小批次中,一批由n个样本组成的请添加图片描述被数据失真请添加图片描述增强,得出失真图像请添加图片描述。之后,它们被送入目标神经网络hθ以优化交叉熵损失函数,定义如下:
请添加图片描述
从形式上看,在一个softmax分类器中,对k∈[K]类的预测分布pi=(pi(1),…,pi(K))被表述为:
请添加图片描述
其中fk是来自backbone编码器的第k个分量,参数为θ。 温度τ在公式(2)中通常被设置为1。为了提高泛化能力,传统知识蒸馏法[10]通过优化每个mini-batch中教师和学生的软输出之间的额外KL散度损失来转移预训练的教师知识,即:
请添加图片描述
其中请添加图片描述分别是学生和教师的软预测,以温度τ为参数。较高的温度会导致更均匀的分布,从而导致类似于标签平滑的正则化效果[27, 37]。与以前的工作相比,即预先训练一个复杂的网络来生成~pτ i,我们的工作使用上一批次的历史信息来有效地生成~pτ i,作为一个更即时的平滑标签,用于正则化。

3.2上一个批次的自蒸馏
图1直观地显示了所提出的自我蒸馏的整体训练过程。我们提出的框架没有采用复杂的预训练教师模型来提供样本平滑的标签,而是利用上一个小批次的备份信息来生成软目标。它导致了对训练一致性的规范化。为了清楚地表示,我们将第t次迭代中采样的原始数据批表示为请添加图片描述,而网络参数表示为θt。形式上,我们用在相同的网络中的第t-1次迭代中产生的软标签pτ,t-1 i,即用θ t-1参数化的f,来代替公式(3)中的~pτ i。因此,我们为DLB引入一个额外的上一次的一致性正则化损失,如下所示:
请添加图片描述

我们在第t-1次迭代中完成所有pτ,t-1 i的计算,而不是像以前的工作[12]中设计的那样,将整个θ t-1存储在第t次迭代中,这样会消耗运行时间的内存。我们采用数据采样器,在第t - 1次迭代时同时获得Bt和Bt-1,以便实施。在第t-1次迭代中,Bt-1和Bt的预测都会更新LCE。而来自Bt的预测通过温度τ进行平滑处理,然后在第t次迭代中存储用于正则化。存储一批经过平滑处理的标签需要很少的额外内存成本,因此效率更高。总而言之,总体损失函数的表述为:
请添加图片描述
其中α是平衡两个条款的系数。简而言之,我们对每个小批量的一半进行约束,使其与上一次迭代相吻合,其余的一半与即将到来的迭代相吻合。之后,前一半的小批次对上一次迭代中产生的软目标进行即时提炼。整个训练过程在算法1中得到了总结。

请添加图片描述