【知识蒸馏】 DistPro: Searching A Fast Knowledge Distillation Process via Meta Optimization

文章提出DistPro,一个通过可微元学习搜索最佳知识蒸馏(KD)过程的框架。DistPro针对不同的手动设计KD方案,自动搜索最佳路径和转换,以提高学生模型的准确性,尤其在快速训练时。它在CIFAR100和ImageNet数据集上实现了最先进的结果,并且学习到的过程具有泛化能力,可以跨任务和网络使用。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、摘要

最近的知识蒸馏 (KD) 研究表明,不同的手动设计方案显着影响学习的结果。然而,在 KD 中,自动搜索最佳蒸馏方案尚未得到很好的探索。在本文中,我们提出了 DistPro,这是一个新颖的框架,它通过可微元学习搜索最佳 KD 过程。具体来说,给定一对学生和教师网络,DistPro 首先将一组丰富的KD连接从教师的传输层设置为学生的接收层,同时还提出了各种变换来比较特征图及其蒸馏途径。然后,连接和转换选择(路径)的每个组合都与随机加权过程相关联,该过程表明其在蒸馏过程中的每一步的重要性。在搜索阶段,可以通过我们提出的两级元优化策略有效地学习该过程。在蒸馏阶段,DistPro 采用学习到的知识蒸馏过程,显着提高了学生的准确性,尤其是在需要更快的训练时。最后,我们发现学习到的过程可以在类似的任务和网络之间进行泛化。在我们的实验中,DistPro 在流行数据集的不同数量的学习时期(即 CIFAR100 和 ImageNet)下产生了最先进的 (SoTA) 准确度,这证明了我们框架的有效性。

二、相关工作

1.KD领域

知识评论和 L2T-ww与我们的工作最相关。前者研究了一些路径的重要性,并提出了一种具有新颖连接模式的知识评论机制,即它在几个常见的比较基准测试中提供了 SoTA 结果。后者为少镜头知识转移的几个中间路径学习一个固定的权重。
如图1所示,DistPro找到一个蒸馏过程。因此,我们扩展了搜索空间。此外,对于密集预测任务,一项相关工作是IFVD,它提出了一种类内特征变异比较(IFVD)。DistPro 可以自由地扩展到密集预测任务,并且在与 IFVD 结合后也获得了额外的好处。

在这里插入图片描述

图 1:教师和学生模型之间学习过程的蒸馏方法的比较。(a) 知识评论通过枚举不同的配置提出了固定的采样路径。(b) L2T-ww采用元学习框架来学习每个选定路径的浮点权重。(c)我们的框架为每个路径学习蒸馏过程。

2.KD/超参数的元学习

为了自动学习 KD 方案,我们研究了我们可能采用的其他领域的广泛有效的元学习方法。例如,L2L 建议通过基于 RNN 的元网络来学习超参数调度方案。法国schi et al.al 提出了一种没有外部元网络的基于梯度的方法。后来,这些元学习思想也被用于小样本学习的任务(例如学习重新加权)、学习跨任务知识转移(例如学习迁移 )和神经架构搜索(NAS)(例如 DARTS)。通过这些方法具有相似的框架,虽然必须具有基本的嵌入领域知识和任务感知调整以使其工作至关重要。在我们的案例中,受这些方法的启发,我们主要利用基于梯度的策略,因为它对 KD 方案学习的效率,而且还首先提出在学习的重要性因素之外使用学习过程。

3.NAS 的知识蒸馏

例如,Liu et al.al试图找到最适合提取给定教师的学生模型,而 Yao et al. 建议根据一定的蒸馏损失搜索学生和教师模型的架构。尽管与我们的场景不同,即固定的学生-教师架构,但它引发了另一个重要问题,即如何在某些资源约束下找到架构和 KD 方案的联合空间内的帕累托最优,我们希望这可以激发未来的研究。

三、创新点方法

在本节中,我们通过首先设置具有构建搜索空间的中间特征的 KD 路径来详细解释 DistPro,同时建立我们的 KD 算法的符号和定义。通过推导出梯度,用于生成我们对 KD 算法的过程。最后,提出了整体DistPro算法。

3.1 The Distillation Process

现在我们将能够构建路径,将教师的任何特征层与具有适当转换的学生的任何层连接起来。然而,如第 2 节所述,并非所有这些路径都是有益的因此,通过为其分配重要性因子来找出每个可能路径的重要性。与现有工作不同,这里的重要性因素是一个过程。随机权重过程 A i A_i Ai= { α t i \alpha^i_t αti} t = 1 T ^T_{t=1} t=1T 与路径 i i i相关联,其中 T T T是总学习步骤。在这里, α t i \alpha^i_t αti 描述了不同学习步骤 t t t 的重要性因子。

D T r a i n D_{Train} DTrain := {( X i , y i X_i, y_i Xi,yi)} i = 1 ∣ D t r a i n ∣ ^{|D_{train}|}_{i=1} i=1Dtrain D v a l D_{val} Dval : = ( X i , y i ) := {(X_i, y_i)} :=(Xi,yi) i = 1 ∣ D v a l ∣ ^{|D_{val}|}_{i=1} i=1Dval分别是训练集和验证集,其中 y i y_i yi 是样本 X i X_i X

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值