没有合适的资源?快使用搜索试试~ 我知道了~
Mary Phuong, Christoph H. LaIST AustriaAm Campus 1, Klosterurustria{bphuong, chl}@ac.atOutputInputConv BlockEarly exitOutputConv BlockEarly exitOutput. . . . .Conv BlockFinal exitInferenceCross-entropyTargetTrainingDistillation. . . . .. . . . .. . . . .. . . . .13550基于蒸馏的多出口架构训练0摘要0多出口架构中,处理层的堆叠与早期输出层交替进行,允许对测试样例的处理提前停止,从而节省计算时间和/或能量。在这项工作中,我们提出了一种基于知识蒸馏原理的多出口架构训练方法。该方法通过匹配早期出口和后期更准确出口的输出概率来鼓励早期出口模仿后者。在CIFAR100和ImageNet上的实验证明,基于蒸馏的训练显著提高了早期出口的准确性,同时保持了后期出口的最先进准确性。该方法在训练数据有限时特别有益,并且允许直接扩展到半监督学习,即在训练时利用未标记的数据。此外,该方法在训练时只需几行代码,几乎不会增加计算开销,在测试时根本没有开销。01. 引言0在过去的几年中,用于图像分类的卷积网络变得越来越好,但也变得越来越大和越来越慢。如今,在基准测试中实现最先进性能的模型(如ImageNet)有许多十甚至上百层,并且需要数十亿次浮点运算才能对单个图像进行分类。分类单个图像可能需要几秒钟,除非有快速硬件可用。然而,对于许多实际问题来说,执行速度与分类准确性同样重要。例如,在移动设备上,执行速度直接影响电池寿命和热量释放。对于自动驾驶汽车等机器人应用,低延迟对于在实时约束下运行至关重要。因此,最近还出现了优化快速评估和能源效率的卷积网络的努力,即使以牺牲分类准确性为代价。0本工作部分资助来自欧洲研究理事会在欧洲联盟第七框架计划(FP7/2007-2013)/ERC授予协议号308036下的资助。0输出0输入 卷积块0早期出口0卷积块0早期出口0. . . . . 卷积块0最终出口0预测0目标标签0训练0输出 输出0蒸馏损失0分类损失0蒸馏损失0分类损失0分类损失0输出0输入 卷积块0早期出口0卷积块0早期出口0. . . . . 卷积块0最终出口0预测0目标标签0训练0输出 输出0蒸馏损失0交叉熵0蒸馏损失0交叉熵0交叉熵0图1:所提出方法的示意图:基于蒸馏的多出口架构训练(底部)和多出口架构(顶部)。0改进的努力旨在创建针对快速评估和能源效率进行优化的卷积网络,即使以牺牲分类准确性为代价。0这两种趋势的共同之处在于,一旦模型被设计和训练好,它们的准确性和推理所需的计算量是固定的。因此,这些方法只适用于测试时推理预算是恒定且已知的情况下,因为只有在这种情况下才能选择适当的架构。当时间预算未知或随时间变化时,例如由于同时运行的作业或处理器速度的动态变化,任何固定的模型架构都是次优的:在可用计算预算实际上高于最坏情况时,足够快速运行的模型会产生次优的准确性。当可用预算低于网络完成计算所需的预算时,更准确但更慢的模型可能无法在预测时提供决策。0在这项工作中,我们采用了一种克服上述限制的范式:任意预测,即13560能够在测试时以单个模型和每个示例为基础权衡准确性和计算。典型的任意预测系统会快速生成一个粗略的初始预测,然后逐渐改进。在任何时候,都可以使用给定输入的有效预测,以防分类过程的时间预算用完。因此,任意系统在不确定或变化的条件下更具鲁棒性和灵活性,从而在整体上更具资源效率。对于使用卷积网络进行图像分类的任务,可以通过多出口架构实现任意预测,其中一系列特征层(例如卷积层)在不同深度处增加了早期出口。这些是对网络在此阶段计算的特征表示进行操作的标准分类层。出口形成一系列逐渐复杂的分类器(参见图1的“预测”框),其中后面的层重用了前面层的表示和计算。要进行预测,将输入图像传播到层堆栈中(图1中从左到右)。当过程中断时,模型输出已经评估的出口之一,或者所有出口的集合。多出口架构通常使用多任务目标进行训练:为每个出口附加一个损失函数,例如交叉熵,并最小化出口损失的总和,就好像每个出口形成一个单独的分类任务一样。一方面,这是一个经典的选择:由于不知道在预测时将使用哪些出口,我们希望所有出口都表现良好,因此应该为所有出口训练以获得最佳的分类质量。然而,另一方面,这个选择忽略了我们对任意学习问题和多出口架构结构的许多先验知识。例如,在多任务学习中,不同的分类器可以具有不同的标签集并在不同的数据上进行训练,而在多出口情况下,所有分类器共享相同的标签集和训练数据。此外,已知多任务学习在所有分类器具有相当复杂性和质量时效果最好,以使得没有一个损失项占主导地位。相反,在多出口情况下,我们事先知道后面出口的分类器具有更多的容量并且应该比早期出口的分类器更准确,这实际上是任意架构的主要动机。本文的主要贡献是基于知识蒸馏的训练多出口架构的新目标。由此产生的训练方法01) 显著提高了分类准确性,特别是对于早期出口。02) 对底层架构不需要任何更改。03) 概念上简单且易于实现。04)打开了在训练多出口架构时利用未标记数据的自然方式。0基于蒸馏的训练多出口架构的主要工作原理是在出口之间共享信息。具体而言,它以不对称的方式进行信息流动:信息从具有较高分类准确性的出口流向具有较低准确性的出口。分类任务的几个方面可能有助于转移。例如,训练示例哪些容易、困难或者甚至是异常值的信息。分类器可以从这些信息中受益,因为如果它过于努力地正确分类困难的示例,结果将是对其模型容量的低效分配和潜在的过拟合。另一个方面是哪些类别在语义上相似。了解这一点将使分类器能够使用相似的特征表示对它们进行建模,从而产生更平滑的决策函数和更低的过拟合风险。无论是哪些示例是容易还是困难示例,还是哪些类别彼此相似,都无法简单地从基本事实标签中提取出来。因此,在使用多任务目标进行训练时,这些信息对于出口来说并不立即可用。然而,可以从经过良好训练的分类器的概率输出中提取这些信息:困难示例通常对所选标签具有较低的置信度分数,而相似类别在输出中更容易同时激活而不是不相似类别。我们可以通过鼓励早期出口模仿后期出口的概率输出来将这些信息从后期传递到早期出口。在实践中,这是通过最小化输出之间的交叉熵实现的,其中还包括一个我们在第3.5节中详细介绍的额外的温度缩放步骤。温度缩放的交叉熵已经在知识蒸馏中用于将信息从一个网络传递到另一个网络。因此,我们将这个损失项称为蒸馏损失。整个系统在图1的“训练”框中进行了说明。已经观察到[15],蒸馏与正则化类似,即在使用相对较少的标记训练数据训练大型网络时特别有用。对我们来说也是如此:我们期望基于蒸馏的训练在标记训练数据有限的情况下最有用,这在实践中经常发生。正基于蒸馏的训练还有另一个优点:即使对于没有基本事实标签的数据,也可以计算蒸馏损失。因此,我们以半监督的方式获得了训练多出口架构的简单方法。请注意,传统的基于多任务的训练没有这种能力,因为它的所有损失项都需要具有基本事实标签的数据。135702. 相关工作0随时预测。随时计算的根源可以追溯到[6,16]的工作。在[6]中,首次定义了随时算法,并在规划和控制[8, 29,49]中广泛流行起来。在统计学习的背景下,随时分类器之前是由级联[37, 42,43]引入的。这些是具有可变的、实例相关的运行时间的模型;然而,它们不能被外部停止。真正的随时分类器的早期例子基于流式最近邻[41]或基于分类器集合的方法,如决策树[9]、随机森林[10]或提升[13]。另一条平行的工作线旨在以学习器不可知的方式开发将任意集合适应于随时设置的技术[3, 11,40]。这些方法通常以动态确定的、输入相关的顺序执行单个分类器。最近,在卷积网络的背景下,随时预测有两种主要方法得到了广泛应用:a)在测试时有选择地执行或跳过网络的部分[23, 30, 44,45],或b) 具有额外出口的网络[19, 20,39],在测试时选择适当的出口。我们只详细讨论多出口架构,因为这是我们提出的训练技术适用的模型类别。0多出口架构。第一篇提出在深度网络中附加早期出口的工作是[39],其中标准的图像分类架构,如LeNet、AlexNet和ResNet,被早期出口增强。Huang等人[19]首次提出了一种自定义的多出口架构,即多尺度DenseNet,这是因为早期出口干扰了早期层作为后续使用的特征提取器的作用。MSDNet是最先进的多出口架构,直到最近才被超越(参见[48]),这也是我们在实验中使用的架构。Kim等人[20]提出了一种适用于内存受限环境的双重嵌套架构。最后,最近有关通过神经架构搜索(NAS)发现多出口架构的工作[48]。尽管这些工作的主要贡献是架构方面,但我们的重点是训练。在除了[48](采用NAS特定的训练)之外的所有这些工作中,多出口网络是通过最小化每个出口的损失之和来训练的。我们提出了一种适用于任何这些多出口架构的新颖训练过程。与本文的主题正交的是,早期出口网络也被提出用于其他目的,例如为训练提供更强的梯度信号[24]或多分辨率图像处理[46]。0蒸馏。蒸馏是一种在两个模型之间进行知识转移的流行技术。尽管类似的技术在[2, 4, 5,25]中已经被广泛考虑过,但是...0在其最著名的形式中,蒸馏技术直到相对较近的时候才被引入[15]。从那时起,这种技术被发现对各种应用有益,包括从一种架构转移到另一种架构[12],压缩[17,32],与一阶逻辑[18]或其他先前知识[47]进行整合,从噪声标签中学习[26],抵御对抗性攻击[31],训练稳定性[35,38],少样本学习[21]或策略蒸馏[36]。在绝大多数应用中,包括上述引用的工作中,教师网络是固定的。值得注意的例外是[1],在这里蒸馏被用于分布式优化设置,以确保模型的不同副本之间的一致性,[33],其中模型通过蒸馏从其先前版本的预测中进行自我训练,以及[27,34],其中蒸馏在增量训练期间用作存储的先前预测和当前预测之间的正则化器。相比之下,我们提出了从模型的一部分到另一部分的蒸馏。据我们所知,以前没有任何工作解决过这个设置。03. 多出口网络的蒸馏训练0在本节中,我们介绍了数学符号和讨论基于蒸馏的多出口架构训练所需的背景。在整篇论文中,我们考虑多类别分类的情况,输入集合为X,例如图像,输出集合为Y ={1,...,K},其中K是类别数。03.1. 多出口架构0多出口架构是具有不同深度出口的分层分类架构,见图1。对于一个具有M个出口的系统,这导致了一个概率分类器序列(p1,...,pM):X→∆K,每个分类器将其输入映射到概率复杂体∆K,即K个类别上的概率分布集合。我们认为p1,...,pM按照表达能力(和计算成本)从小到大排序。原则上,分类器可以共享权重和计算,也可以不共享,但在最有趣和实用的情况下,它们确实共享两者。03.2. 预测0在预测时,多出口系统可以根据是否已知对一个示例进行分类的计算预算,以两种不同的模式运行。0预算模式。如果已知计算预算,系统可以直接识别一个合适的出口pM'(x)进行评估。这样,它只需要评估架构的共享部分,并且可以节省计算量,而不必评估之前的出口。具体选择哪个出口取决于模型。在本文中,我们首先确定M ′Distillation loss. The second term, Ldist, is where our maincontribution lies, as it introduces the possibility for differentexits to learn from each other.To introduce it, we first remind the reader of the clas-sical distillation framework as introduced in [15]: assumewe want a probabilistic classifier s (called the student) tolearn from another classifier t (called the teacher). This canbe achieved by minimizing the (temperature-scaled) cross-entropy between their output distibutions,7tm ← detach(softmax(exitm(x′)/τ))8end10loss.gradie1|T(m)|(4)13580在验证集上运行任何单个出口的运行时间和质量。然后,对于任何目标运行时间,我们输出在可用预算内运行且具有最高验证准确性的出口的决策。0任意模式。如果计算预算未知,即任意时间预测,系统在接收到测试输入x后,开始依次评估分类器p1,p2,...,在可能的情况下重复使用计算。它继续这样做,直到接收到停止信号-假设这发生在第M'个出口之后-此时它返回从评估出口创建的集合的预测,10m从1到M的pm(x)的和。03.3. 蒸馏训练目标0我们的主要贡献是多出口架构的新训练目标。给定一个训练集,{ ( x n , y n ) } N n =1 ,我们建议通过组合分类损失Lcls和蒸馏损失L dist来训练多出口架构。01/N0N个0L cls(xn, yn)和L dist(xn)的和。(1)0ℓ τ ( t , s ) = −2 K 和0k从1到K的[ t 1 /τ ( x )] k log[ s 1/τ ( x )] k 的和,(2)0对于某个温度τ ∈ R+,关于参数s的函数sl(x)的和0[ s 1 /τ ( x )] k = s k ( x ) 1 /τ0对于某个温度τ ∈R+,关于参数s的函数sl(x)的和0是通过温度缩放从分布s(x)获得的分布,[ t 1 /τ ( x )] k类似地定义。请注意,对于典型的网络架构,输出是通过对数几率进行softmax操作的结果,可以通过将所有对数几率除以τ来高效地进行温度缩放。温度参数允许控制教师预测的软性:温度越高,概率向量的最大值和最小值之间的差异越小。这可以弥补网络输出通常过于自信的事实,即它们将太多的概率质量0算法 1:基于蒸馏的训练0给定:T,µ,τ �01 T (:) ← T (1) ∪ ∙ ∙ ∙ ∪ T ( M )02 τ ← 103 for ( x , y ) in data do04 x ′ ← shared part of model( x )05 for m in 1, . . . , M do06 p m ← softmax(exit m ( x ′ ))09 loss ← 1 M ∑ M m =1 ℓ ( y, p m ) + 10M ∑ M m =1 10| T ( m ) |0t ∈ T ( m ) ℓ τ ( t t , p m )011 if max(10| T (:) |0m ∈ T (:) t m > µ then τ ← ττ �012 end0在顶部预测的类上,而在其他类上的影响较小。方程 ( 2 )中的因子 τ 2 确保温度缩放不会对梯度幅度产生负面影响。0回到多出口架构,我们遵循与经典蒸馏相同的策略,但是将多出口分类器的不同出口同时用作学生和教师。对于任何出口 m ,让 T ( m ) � { 1 , . . . , M }(可以为空)表示它要从中学习的教师出口集合。然后我们定义整体的蒸馏损失为。0L dist ( x n )= 10M0t ∈ T ( m ) ℓ τ ( p t ( x n ), p m ( x n )) ,0实际上,有不同的方法来选择教师集合。最简单的选择是,所有的出口只从最后一个出口学习,即 T ( m ) = { M } 对于m < M ,并且 T ( M ) = �,这对我们来说效果很好,所以我们将其作为默认选项。然而,我们也研究了其他设置,例如每个出口都从后面的所有出口蒸馏;参见第 4 节。0分类损失。 ( 1 )中的第一项是一个标准的多类分类损失,它分别作用于每个出口。0L cls ( x n , y n ) = 10m =1 ℓ ( y n , p m ( x n )) (5)0其中 ℓ ( y, p ) = -log p y ( x ) 是交叉熵损失。03.4. 优化0我们使用标准的基于梯度的方法和小批量来最小化训练目标 ( 1)。特别地,所有的出口同时训练,并且使用相同的数据。我们在算法 1中提供了伪代码(针对单个样本批次)。它主要由标准的基于梯度的操作组成。A characteristic property of the distilliaton loss (4) is thatit does not depend on the labels of the training data. Thismeans it can also be computed from unlabeled training data,providing us with a straightforward way of training multi-exit architectures in a semi-supervised way.Assume that, in addition to the labeled training set{(xn, yn)}N, we have an additional set of unlabeled train-1NN�n=1Lcls(xn, yn) + 1N ′N ′�n=1Ldist(xn).(6)1NMN�n=1M�m=1ℓ(yn, pm(xn)).(7)13590优化。然而,蒸馏训练有两个特定的方面:部分分离(detach;第 7 行)和温度退火(line 11)。0部分分离。在最小化损失时,我们必须确保只有学生从教师那里学习,而不是相反。我们通过将教师的预测 p t ( x n )视为梯度计算中蒸馏项 ( 4 ) 的常数来实现这一点。0温度退火。在训练过程中,网络往往变得更加自信。在多出口设置中,这也适用于作为教师的出口(参见图 6)。因此,需要越来越高的温度来“软化”它们的输出,我们通过在训练过程中增加温度来实现这一点。为此,我们引入了一种自适应退火方案,旨在保持教师的输出大致恒定:我们定义分类器的置信度为类概率输出向量的最大值,平均在一组示例上。让 µ是所需教师置信度的上界。我们将温度初始化为 τ 0 = 1,并在教师的平均温度调整置信度超过 µ的训练批次中,将其乘以一个常数 τ � > 1 。03.5. 半监督训练0n = N +1 ,可能有 N ′ � N。然后我们将半监督训练目标定义为0我们可以使用与完全监督情况下相同的技术来最小化这个目标,实际上,只需对源代码进行轻微修改即可。04. 实验0在本节中,我们报告了我们的实验结果,特别是显示基于蒸馏的训练在图像分类基准上始终优于多出口架构的标准训练过程:ImageNet(子集)和CIFAR100(子集以及完整数据集)。我们还展示了在存在未标记的训练数据时半监督蒸馏的潜在好处的实验。我们还报告了深入实验,以揭示所提出的蒸馏的工作机制。0基于蒸馏的训练,特别是温度退火方案,并讨论教师的选择。04.1. 实验设置0数据集。我们报告了对两个标准数据集的实验。对于CIFAR100[22],我们遵循默认的划分,使用50,000张图像(每个类别500张)进行训练和模型选择,并报告剩余10,000个测试样本的准确性。对于ImageNet(ILSVRC2012)[7],我们使用1000个类别的1.2百万张训练图像进行训练和模型选择。我们报告ILSVRCval集合的50,000张图像的准确性。在训练过程中,我们采用与[14,19]相同的数据增强方法。对于测试,我们将图像调整为256×256像素,并将其中心裁剪为224×224。对于这两个数据集,我们通过减去通道均值并除以通道标准差来预处理所有图像。由于我们特别关注低数据情况,我们只使用可用数据的子集进行实验:ImageNet(X)表示每个ImageNet类别中随机选择的X个示例的数据集(然后将其按90%/10%划分为训练和模型选择部分)。CIFAR(X)表示CI-FAR100的子集,其构造方式与上述类似,但始终使用50个图像进行模型选择(对于这个数据集来说,使用10%太少),剩余的X−50个图像用于训练。作为半监督学习实验的额外无标签数据,我们使用每个类别的500−X(对于CIFAR100)或700−X(对于ImageNet)个图像,这些图像是从所有剩余图像中随机采样的,即未被选为训练或验证数据(当然也不是测试数据)。0模型架构。我们使用多尺度DenseNet[19],这是一种先进的多出口架构,具有按照多个尺度(行)和多个层(列)排列的卷积块。我们自己训练MSDNets,遵循原始的架构和超参数。CIFARMSDNet有3×24个块和11个出口,每个出口连接到每第二层,从第4层开始。ImageNetMSDNet有4×38个块和5个出口,每个出口连接到每第七层,从第10层开始。0基准。我们将蒸馏训练与传统的多出口架构训练方式进行比较,即通过最小化出口损失(例如在[19,20,39]中使用)0请注意,这与仅使用我们训练目标的分类损失(5)相一致。因为所有标签都是01我们的实现在CIFAR100上实现了与原始MSDNet非常相似的性能,例如准确率约为75%。0.640.660.680.700.800.820.84 0.840.860.88 0.880.900.92 13600退出点1 退出点2 退出点3 退出点4 退出点50Top-5准确率0ImageNet(100)0退出点损失 蒸馏半监督蒸馏0退出点1 退出点2 退出点3 退出点4 退出点50ImageNet(300)0退出点1 退出点2 退出点3 退出点4 退出点50ImageNet(500)0退出点1 退出点2 退出点3 退出点4 退出点50ImageNet(full)0图2:Top-5准确率作为计算预算(以可用退出点表示)的函数。在ImageNetILSVRC2012上,MSDNet通过退出点损失(蓝色)训练,通过蒸馏(绿色)训练,通过半监督蒸馏(红色)训练,每个类别有100、300、500和所有可用(≥700)图像。粗体值表示统计上显著的改进。0ImageNet(100) ImageNet(300) ImageNet(500) ImageNet(full)0退出点损失 蒸馏 半监督蒸馏 退出点损失 蒸馏 半监督蒸馏 退出点损失 蒸馏 半监督蒸馏 退出点损失 蒸馏0退出点1 64.4 ± 0.4 68.1 ± 0.5 68.1 ± 0.4 79.5 ± 0.2 82.3 ± 0.2 82.3 ± 0.3 83.4 ± 0.2 85.6 ± 0.1 85.4 ± 0.1 87.8 ± 0.2 88.8 ± 0.10退出点2 67.1 ± 0.3 69.2 ± 0.6 69.5 ± 0.1 82.1 ± 0.2 83.9 ± 0.3 84.0 ± 0.5 86.3 ± 0.2 87.3 ± 0.2 87.1 ± 0.3 90.4 ± 0.1 90.7 ± 0.10退出点3 68.1 ± 0.5 69.3 ± 0.6 69.7 ± 0.4 83.0 ± 0.3 84.2 ± 0.3 84.3 ± 0.6 87.3 ± 0.3 87.7 ± 0.3 87.8 ± 0.4 91.5 ± 0.1 91.3 ± 0.20退出点4 68.2 ± 0.6 69.3 ± 0.6 69.7 ± 0.4 83.1 ± 0.3 84.2 ± 0.3 84.3 ± 0.6 87.5 ± 0.3 87.7 ± 0.3 87.8 ± 0.4 91.8 ± 0.1 91.5 ± 0.10退出点5 68.1 ± 0.6 69.3 ± 0.6 69.7 ± 0.4 83.3 ± 0.3 84.2 ± 0.3 84.3 ± 0.6 87.8 ± 0.3 87.7 ± 0.3 87.8 ± 0.4 92.3 ± 0.1 91.7 ± 0.20表1:不同计算预算(以可用退出点表示)的Top-5准确率(%)(平均值±1.96标准误差)。MSDNet通过退出点损失训练与通过蒸馏训练与通过半监督蒸馏训练在ImageNet上,每个类别有100、300、500和所有可用(≥700)的训练图像。粗体值表示统计上显著的改进。0需要训练样本来计算损失,(7)对于半监督训练没有明显的扩展。0优化和超参数。我们使用Nesterov动量的SGD从随机初始化训练所有模型,初始学习率为0.5,动量权重为0.9,权重衰减为10^-4。对于CIFAR100,我们将批量大小设置为64,并训练300个epoch。学习率在第150和225个epoch后除以10。对于ImageNet,我们将批量大小设置为256,并训练90个epoch。学习率在第30和60个epoch后除以10。对于温度退火,我们使用CIFAR100的置信限制µ=0.5,ImageNet的置信限制µ=0.1,温度乘数τ*=1.05。0重复运行。我们重复每个实验5或10次,每次使用不同的训练数据随机子集和不同的权重初始化。我们报告重复运行的平均性能以及其95%的置信区间(即标准误差的1.96倍)。04.2.主要结果:预算模式准确率0我们首先报告了在测试时以已知时间预算的预算模式下模型的实验结果。如第3.2节所述,对于任何预算的值,我们确定在预算内可以计算出的最佳退出点(根据验证集),并评估其决策。通常情况下,这是可用退出点中最新的退出点,但并非总是如此:例如,在低数据情况下,晚期退出点的额外容量可能使其更容易过拟合,并且中间退出点可能表现更好。0图 2 和 3 分别显示了 ImageNet 和 CIFAR100的结果。数值结果可以在表 1 和 2中找到。对于每种训练过程,我们报告了不同预算值下得到的模型准确性:当只有 Exit1 可用时,当 Exit1 和 Exit2可用时,以此类推。0ImageNet 结果。 图 2 和 表 1比较了蒸馏训练和出口-wise训练。蒸馏训练在许多情况下始终优于出口-wise训练。对于大多数计算预算,蒸馏训练的模型具有更高或相当的准确性,准确性提升最高可达 3 .8%。相反,为了达到任何给定的准确性,蒸馏训练的模型通常需要更少的计算,特别是在数据受限制的情况下。例如,在ImageNet(100) 的情况下,只需 Exit1就足以与出口-wise训练模型的准确性相匹配。同样,在ImageNet(300) 的情况下,当 Exit2可用时,蒸馏训练的模型在任何预算下都优于出口-wise训练的模型。总体而言,两个主要因素似乎影响了性能差距:a) 训练数据的数量:将 ImageNet(100) 的结果与ImageNet(300)、ImageNet(500) 和 ImageNet(full)的结果进行比较,我们可以看到训练集越小,蒸馏的好处就越大。在非常大的数据(完整的ImageNet)的情况下,蒸馏似乎在提供统一改进的同时权衡了早期和晚期出口的准确性。这与之前的研究(例如[15])一致,发现蒸馏具有正则化的效果。0.750.80CIFAR(150)0.8000.8250.8500.875 CIFAR(250)0.8500.8750.900 CIFAR(350)0.880.900.92 CIFAR(500/full)CIFAR(150)CIFAR(250)CIFAR(350)CIFAR(500)136101 2 3 4 5 6 7 8 9 10 11 出口0Top-5准确率0出口-wise 损失蒸馏 蒸馏半监督01 2 3 4 5 6 7 8 9 10 11 出口01 2 3 4 5 6 7 8 9 10 11 出口01 2 3 4 5 6 7 8 9 10 11 出口0图 3:Top-5 准确率作为计算预算(以可用出口计算)的函数。在 CIFAR100 上,通过出口-wise损失(蓝色)、蒸馏(绿色)和半监督蒸馏(红色)训练的 MSDNet,每类有 150、250、350 和 500 张图像。0出口-wise 损失 蒸馏 蒸馏半监督 出口-wise 损失 蒸馏 蒸馏半监督 出口-wise 损失 蒸馏 蒸馏半监督 出口-wise 损失 蒸馏0出口 1 72 . 4 ± 1 . 3 78 . 7 ± 0 . 4 79 . 9 ± 0 . 4 80 . 6 ± 0 . 4 85 . 6 ± 0 . 2 86 . 5 ± 0 . 3 84 . 5 ± 0 . 3 88 . 1 ± 0 . 3 88 . 5 ± 0 . 3 87 . 5 ± 0 . 3 90 . 0 ± 0 . 20出口 2 75 . 5 ± 0 . 7 80 . 5 ± 0 . 3 81 . 1 ± 0 . 4 83 . 4 ± 0 . 3 87 . 5 ± 0 . 2 88 . 2 ± 0 . 3 87 . 2 ± 0 . 3 90 . 1 ± 0 . 2 90 . 4 ± 0 . 2 89 . 8 ± 0 . 1 92 . 0 ± 0 . 20出口 3 77 . 4 ± 0 . 6 80 . 9 ± 0 . 4 81 . 0 ± 0 . 5 84 . 9 ± 0 . 3 88 . 4 ± 0 . 2 88 . 5 ± 0 . 2 88 . 8 ± 0 . 2 91 . 1 ± 0 . 3 91 . 2 ± 0 . 2 91 . 2 ± 0 . 1 92 . 9 ± 0 . 20出口 4 78 . 4 ± 0 . 4 81 . 2 ± 0 . 4 81 . 0 ± 0 . 5 86 . 0 ± 0 . 3 88 . 6 ± 0 . 2 88 . 7 ± 0 . 2 89 . 6 ± 0 . 2 91 . 3 ± 0 . 3 91 . 5 ± 0 . 2 91 . 8 ± 0 . 2 93 . 1 ± 0 . 10出口 5 79 . 2 ± 0 . 3 81 . 2 ± 0 . 4 81 . 0 ± 0 . 5 86 . 8 ± 0 . 2 88 . 8 ± 0 . 3 88 . 7 ± 0 . 2 90 . 1 ± 0 . 2 91 . 4 ± 0 . 3 91 . 5 ± 0 . 1 92 . 3 ± 0 . 1 93 . 1 ± 0 . 20出口 6 79 . 8 ± 0 . 2 81 . 2 ± 0 . 4 81 . 0 ± 0 . 5 87 . 4 ± 0 . 2 88 . 8 ± 0 . 3 88 . 7 ± 0 . 2 90 . 5 ± 0 . 3 91 . 5 ± 0 . 4 91 . 5 ± 0 . 2 92 . 6 ± 0 . 1 93 . 1 ± 0 . 20出口 7 80 . 1 ± 0 . 4 81 . 1 ± 0 . 3 81 . 0 ± 0 . 5 87 . 6 ± 0 . 3 88 . 8 ± 0 . 3 88 . 7 ± 0 . 2 90 . 7 ± 0 . 2 91 . 5 ± 0 . 4 91 . 5 ± 0 . 2 92 . 9 ± 0 . 1 93 . 1 ± 0 . 20Exit 8 80.3 ± 0.4 81.1 ± 0.3 81.0 ± 0.5 87.9 ± 0.3 88.8 ± 0.3 88.7 ± 0.2 90.8 ± 0.2 91.5 ± 0.4 91.5 ± 0.2 93.0 ± 0.1 93.1 ± 0.20Exit 9 80.3 ± 0.5 81.1 ± 0.3 81.0 ± 0.5 88.0 ± 0.3 88.8 ± 0.3 88.7 ± 0.2 90.8 ± 0.2 91.5 ± 0.4 91.5 ± 0.2 93.1 ± 0.1 93.1 ± 0.20Exit 10 80.4 ± 0.5 81.1 ± 0.3 81.0 ± 0.5 88.0 ± 0.3 88.8 ± 0.3 88.7 ± 0.2 90.8 ± 0.3 91.5 ± 0.4 91.5 ± 0.2 93.1 ± 0.2 93.1 ± 0.20Exit 11 80.3 ± 0.5 81.1 ± 0.3 81.0 ± 0.5 87.9 ± 0.3 88.8 ± 0.3 88.7 ± 0.2 90.8 ± 0.2 91.5 ± 0.4 91.5 ± 0.2 93.1 ± 0.2 93.1 ± 0.20表2:不同计算预算(以可用出口为单位)下的前5准确率(平均值±1.96标准误差):通过出口损失训练的MSDNet vs.通过蒸馏训练的MSDNet vs.通过半监督蒸馏训练的MSDNet,使用每类150、250、350和500张图像的CIFAR100数据集。粗体数值表示统计上显著的改进。0正则化效果,即它有助于防止低数据范围内的过拟合。b)推理预算:在每个子图中,最大的收益出现在最小的推理预算中。直观上讲,这是有道理的,因为最早的出口在学习过程中最能从教师中受益。综合起来,结果表明,蒸馏训练可以提供很大的准确率提升,特别是当训练数据量和/或测试时的计算资源有限时。图2和表1还展示了基于蒸馏的半监督训练的结果,如第3.5节所述。我们观察到与完全监督变体相比,特别是在标记数据有限且无标签数据丰富的情况下,有额外的小幅改进。0CIFAR100结果。我们在图3和表2中呈现了CI-FAR100的类似结果。我们观察到与ImageNet的情况类似的趋势,尽管在这种情况下,蒸馏训练普遍优于出口训练,并且在固定预算下准确率提高了高达6.3%。相反,当以完整模式执行时,蒸馏训练使得结果模型在Exit2或Exit3后就可以停止,并且具有可比较的准确率。与之前在ImageNet上的情况一样,我们观察到,当训练数据有限且推理预算较低时,蒸馏的收益最大。半监督变体提供了额外的小幅改进。0但是改进是一致的。例如,对于Exit1,额外的无标签数据使得CIFAR(150)、CIFAR(250)和CIFAR(350)的准确率分别提高了1.2%、0.9%和0.4%。04.3. 主要结果:任意模式准确率0在第二组实验中,我们以任意模式操作多出口模型,即模型依次评估所有出口,直到(未知的)计算预算用尽,此时返回所有已完成出口的集成预测。与之前一样,我们报告了不同计算预算下的多类准确率,这次以已完成出口的数量或集成的大小为单位。ImageNet和CIFAR100的结果分别显示在图4和图5中。由于篇幅限制,具有数值结果的相应表格推迟到补充材料中。结果与预算模式评估的结果类似。在数据集、数据集大小(除了非常大规模的情况)和计算预算方面,使用蒸馏训练的模型明显优于未使用蒸馏训练的模型。半监督学习的结果不太明确:对于早期出口,无标签数据通常有所帮助,但我们观察到CIFAR(150)的后期出口准确率略有下降。尽管如此,所提出的方法仍优于出口训练模型。0.640.660.680.700.800.820.84 0.840.860.88 0.880.900.92 0.000.250.500.751.001230.840.860.880.840.860.880.90 13620集合1 集合2 集合3 集合4 集合50前5准确率0ImageNet(100)0逐出损失 蒸馏半监督蒸馏0集合1 集合2 集合3 集合4 集合50ImageNet(300)0集合1 集合
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功