来源:机器之心

在无法获取到原始训练数据的情况下,你可以尝试一下这种新型蒸馏算法 FastDFKD,数据合成与现有的生成方法相比,可以实现 10 倍的加速,与非生成方法相比,甚至可以达到 100 倍以上的加速。

知识蒸馏(KD)最近成为一种流行的范式,它是一种很典型的模型压缩方法,可以复用如今在线流行的预训练模型。随着自然语言处理模型等进入了预训练模型的时代,模型的规模也在极速增长,例如 GPT-3 参数量达到 1750 亿。如何在资源有限的情况下部署使用这些庞大的模型是一个很大的挑战。

知识蒸馏在解决这一问题中占据了重要的地位。我们可以用它来有效地从大型教师模型学习小型学生模型,并且学生模型的性能也很不错。

KD 的传统设置需要拥有原始训练数据作为输入以训练学生模型。不幸的是,由于隐私或版权原因,在很多情况下,原始数据无法发布,用户只能使用预先训练好的模型,反过来,这对 KD 应用于更广泛的领域构成了主要障碍。

为了解决这个问题,有研究者(Lopes, Fenu,Starner 2017)提出了无数据知识蒸馏 (DFKD,Data-free knowledge distillation) 方法,这种方法假设根本无法获得训练数据。由于 DFKD 对训练数据的约束非常宽松,其在自然语言处理、计算机视觉等领域受到越来越多的关注。

DFKD 虽然取得了一些比较好的结果,但 SOTA 性能的 DFKD 方法仍然存在数据合成效率较低的问题,这使得无数据训练过程非常耗时,因此不适用于大规模训练任务。

在这项研究中,来自浙江大学、新加坡国立大学等机构的研究者引入了一种有效的解决方案 FastDFKD,其能够将 DFKD 加速一个数量级。FastDFKD 的核心是:复用训练数据中共享的公共特征,从而合成不同的数据实例。不同于之前单独优化一组数据,该研究建议学习一个元合成器(meta-synthesizer),可以寻求共同特征作为快速数据合成的初始化。因此,FastDFKD 只需几步即可实现数据合成,显着提高了无数据训练的效率。在 CIFAR、NYUv2 和 ImageNet 上的实验表明,所提出的 FastDFKD 实现了 10 倍甚至 100 倍的加速,同时保持了与当前 SOTA 相当的性能。

论文地址:https://arxiv.org/pdf/2112.06253.pdf

方法

在 DFKD 中,求解如下等式 (2) 的一种流行方法是直接按批次优化多种样本。

如下图 2 (a) 所示,基于批的方法独立合成不同的实例,仅考虑样本之间的关系。尽管这种方法取得了不错的结果,但 DFKD 方法通常存在数据合成效率低下的问题,因为制作大规模数据集需要大量优化问题,每个问题都需要数千步才能收敛。然而,来自同一域的数据通常具有一些共同特征,这些特征可以重复用于合成不同的样本。因此,FastDFKD 旨在提供一种学习共同特征来加速等式 (2) 优化的新型有效方法。

FastDFKD 方法的核心是复用共同特征,这是基于来自同一领域的数据通常共享一些模式,而这些模式可以被复用以合成不同的实例。该研究从生成的角度对共同特征进行了新的定义,并提出 FastDFKD 来捕获共同特征,以便通过元学习过程进行快速合成。

共同特征

作为快速无数据训练的关键步骤,需要给共同特征一个明确的定义,以构建用于网络训练的可优化目标。如图 2 (b) 所示,一种简单的复用策略是顺序特征复用,其中在先前合成中学得的特征直接用作初始化以制作新样本。然而,这种简单的方案存在一些问题,因为学得的特征仅来自单个数据点,可能并不总是可用于其他样本。

为了解决这个问题,该研究从生成的角度为共同特征创建了一个更自然的定义。首先考虑一个生成网络 G(z;θ),其中 z 为潜码(latent code),θ是可训练参数。对于每个样本 x_i ∈ D’ ,都可以找到一个潜码 z_i 来生成 x_i = G(z_i ; θ)。生成器描述了不同样本 x_i 的生成过程。在某种程度上,一组样本之间是否存在共同特征 D’ = {x_1, x_2, ..., x_N } 通常与不同数据实例的相似度高度相关,这意味着如果能找到最优参数 θ 使得不同样本的潜码 z = {z_1, z_2, ..., z_N } 在潜在空间中接近,那么生成器就可以隐式地捕获共同特征。基于此,该研究发现可以通过解决以下问题来学习共同特征:

上式 (3) 中 d_z 和 d_x 分别代表潜在空间和输入空间中的距离指标。上述优化旨在为数据集 D’找到一种生成过程,其潜在空间中的 z 距离尽可能的小,借助学得的共同特征和潜码 z 就可以有效获得多种样本。

然而在无数据环境中,合成数据集 D’在合成完成之前还不可用。因此,该研究用 DFKD 的逆向损失(inversion loss)L 替换式子 (3) 中第二项的 d_x,这就形成了用于共同特征学习的无数据目标:

元生成器

上述式子 (4) 的优化具有挑战性,因为它需要使用单个生成网络生成完整的数据集 D’,其中包括许多不可复用的特征。为此,该研究提出训练一个只包含共同特征的生成器,并在数据合成过程中动态合成其他缺失的特征,如图 2 (c) 所示。

具体来说,该研究用共同特征学习的目标来训练一个轻量级生成器,该生成器可以适应为在 k 步内合成不同的实例,表述为元学习问题的形式:

其中是元学习的内循环(inner loop),它指的是从用于 x_i 合成的和潜码初始化的一种 k 步优化。内循环可以以如下形式展开:

值得注意的是,式子 (5) 与式子 (4) 中的共同特征损失起着相似的作用。内循环(即 k 步自适应)旨在通过显式优化式子 (4) 的第二项来学习用于合成的生成器。

另一方面,外循环(outer loop)试图通过隐式优化式子 (4) 的第一项来使不同样本均能在 k 步优化中可达。优化方程 (6) 会自然地形成一个元学习问题,其中要用到初始化来实现快速适应。经过 k 步梯度下降后,该研究在损失函数 L_i 的指导下得到一组新的参数,梯度是:

其中代表使用等式(6)k 步自适应得到的优化结果,代表损失 L_i 指导下的合成结果。

但是,请注意,公式 6 中的 k-step 自适应涉及 k 个梯度更新:

其中 g_k 是指在方程 6 的第 k 步计算的梯度,这将高阶梯度引入到生成器训练中,使的反向传播非常低效。受元学习先前工作的启发,该研究应用一阶近似来进一步加速梯度计算,将 3 中的高阶梯度视为常数并替换,在这种情况下,方程 7 中的梯度计算只涉及一阶梯度,可以简化为:

一阶近似直接使用在内循环中的自适应生成器上计算的梯度来更新元生成器。此外,通过使用自适应生成器和元生成器之间的参数差异来逼近方程 9 中的梯度,可以实现更有效的梯度近似,这进一步将方程 9 简化为:

综上所述,可以对元生成器进行如下优化:

算法 1 分为三个阶段:用于数据合成的 k-step 适应;用于通用特征学习的元学习 step;通过优化 KL 散度来更新学生模型的的步骤如下:

实验

基线:实验比较了两种 DFKD 方法:(1)和生成方法训练合成的生成模型进行比较,包括 DAFL、ZSKT、DFQ 和 Generative DFD(2)与分批(batch-by-batch)方式制作迁移集的非生成方法比较,包括 DeepInv 和 CMI。

CIFAR-10 和 CIFAR-100 分类结果。在 CIFAR-10 和 CIFAR-100 数据集上获得的学生模型准确率如表 1 所示。在表中,基线「Teacher」、「Student」和「KD」使用原始训练数据训练网络,不需要数据合成。

如表 1 所示,生成方法通常比 DeepInv 和 CMI 等非生成方法快 10 倍,因为生成方法只需要训练一个生成器进行合成就可以了。然而,由于生成网络的容量有限,我们发现数据集从 CIFAR-10 增加到 CIFAR-100,生成方法的性能趋于下降。相比之下,非生成式通常比生成式更灵活,因此更适用于不同的任务。

与非生成方法一样,FastDFKD 还可以优化用于数据合成的小批量。如表 1 所示,5-step FastDFKD,即 Fast_5,与现有的生成方法相比,可以实现 10 倍的加速,与非生成方法相比,甚至可以达到 100 倍以上的加速。

ImageNet:为了验证 FastDFKD 的有效性,该研究在更具挑战性的数据集(即 ImageNet)上进行了评估。ImageNet 显然比 CIFAR 复杂得多,因此无数据训练要耗时得多。结果如表 2 所示:相比之下,FastDFKD(Fast_50)只需要 6.28 小时就能进行图像合成,并保持了与现有方法相当的性能。

在分割任务中,该研究仅使用特征正则化损失和对抗性损失进行数据合成。学生模型的 mIoU,以及数据量和合成时间,如表 3 所示:相比之下,FastDFKD 仅在 0.82 小时内成功合成了一个训练集,这比 DAFL(3.99 小时)和 DFAD(6.0 小时)高效得多。

Few-step 合成:如前所述,FastDFKD 只需几步即可实现高效的数据合成。下表比较了 FastDFKD 与现有非生成方法的「fewstep」版本的比较。如表 4 所示,当优化 step 减少时,DeepInv 和 CMI 的学生精度严重下降,这意味着现有方法无法仅在 few step 内完成数据合成。相比之下,FastDFKD 即使只部署了 2-step 优化,也能很好地工作,这为 FastDFKD 的有效性提供了强有力的证据。

消融研究:表 5 考虑了图 2 中的三种复用策略:1)没有特征复用;2)序列特征复用;3)提议共同特征复用,结果如下:

可视化:在 ImageNet 上的合成结果如图 3 所示,其中所有样本都是通过在现有的 ResNet50 分类器上部署 50-step FastDFKD 获得的。与现有方法相比,FastDFKD 可以在几个步骤内合成出合理的样本。

推荐阅读

  • 【重磅】斯坦福李飞飞《注意力与Transformer》总结,84页ppt开放下载!

  • 苏黎世联邦理工学院SML课题组招收统计机器学习全奖博士生

  • 读博五年,我总结出了7条帮你「少走弯路」的真理

  • 仅需12层网络,在ImageNet上准确率达到80.7%!普林斯顿大学最新提出ParNet!

  • MobileViT: 一种更小,更快,高精度的轻量级Transformer端侧网络架构(附代码实现)

  • 【移动端最强架构】LCNet吊打现有主流轻量型网络(附代码实现)

  • 基于Attention机制的轻量级网络架构以及代码实现

  • 深度学习中的轻量级网络架构总结与代码实现

  • 一文详解Inception家族的前世今生(从InceptionV1-V4、Xception)附全部代码实现

  • 华为2012实验室诺亚方舟实验室招聘视觉感知算法实习生

欢迎大家加入DLer-计算机视觉&Transformer群!

大家好,这是计算机视觉&Transformer论文分享群里,群里会第一时间发布最新的Transformer前沿论文解读及交流分享会,主要设计方向有:图像分类、Transformer、目标检测、目标跟踪、点云与语义分割、GAN、超分辨率、视频超分、人脸检测与识别、动作行为与时空运动、模型压缩和量化剪枝、迁移学习、人体姿态估计等内容。

进群请备注:研究方向+学校/公司+昵称(如Transformer+上交+小明)

加速100倍,性能媲美SOTA,浙大知识蒸馏新方法FastDFKD相关推荐

  1. 加速100倍,性能媲美SOTA!浙大提出无数据知识蒸馏新方法FastDFKD

    来源:机器之心 本文共2400字,建议阅读5分钟 本文为你介绍知识蒸馏的新方法. 在无法获取到原始训练数据的情况下,你可以尝试一下这种新型蒸馏算法 FastDFKD,数据合成与现有的生成方法相比,可以 ...

  2. 加速100倍,性能媲美SOTA,浙大提出无数据知识蒸馏新方法FastDFKD

    点击上方"迈微AI研习社",选择"星标★"公众号 重磅干货,第一时间送达 选自|机器之心 在无法获取到原始训练数据的情况下,你可以尝试一下这种新型蒸馏算法 Fa ...

  3. 计算成本缩减100倍!港中文提出语义分割新方法:张量低秩重建|ECCV2020

    原文链接:https://bbs.cvmart.net/articles/3099 专注计算机视觉前沿资讯和技术干货 微信公众号:极市平台 官网:https://www.cvmart.net/ --- ...

  4. 【知识蒸馏】什么是知识蒸馏、方法解读

    [知识蒸馏]什么是知识蒸馏.方法解读 文章目录 [知识蒸馏]什么是知识蒸馏.方法解读 1. 前言 1.1 由来 1.2 定义 1.3 可蒸馏(迁移)的知识 2. 蒸馏方法介绍 2.1 知识的种类.蒸馏 ...

  5. 【CVPR 2021】Knowledge Review:知识蒸馏新解法

    [CVPR 2021]Knowledge Review:知识蒸馏新解法 论文地址: 主要问题: 主要思路: 符号假设: 具体实现: 实验结果: 关注我的公众号: 联系作者: 论文地址: https:/ ...

  6. Facebook开源高效图像Transformer,速度、准确率与泛化性能媲美SOTA CNN

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自 | 机器之心 将自然语言处理领域主流模型 Transform ...

  7. 速度、准确率与泛化性能媲美SOTA CNN,Facebook开源高效图像Transformer

    机器之心报道 参与:魔王.小舟.杜伟 将自然语言处理领域主流模型 Transformer 应用在视觉领域似乎正在成为趋势.最近,Facebook 研究人员提出一项新技术--数据高效图像 Transfo ...

  8. 让电脑加速100倍!这家英国创业团队的芯片新思路

    图1:英国人工智能芯片硬件设计初创公司Graphcore推出的IPU加速卡 编译:网易智能 参与:小小 选自:Bloomberg 作者:DylanJackson  与其他数字处理软件不同的是,英国人工 ...

  9. 【论文解读】Knowledge Review:知识蒸馏新解法

    今天介绍一篇我司的文章Distilling Knowledge via Knowledge Review(缩写为KR),提出知识蒸馏的新解法. 之前在知乎回答过一个知识蒸馏的问题,为何感觉" ...

最新文章

  1. 知乎宣布完成4.34亿美元F轮融资,快手领投,融资额刷新此前记录
  2. 如何理解Generator
  3. 如何解压tar.xz文件
  4. 永远要跟比你更成功的人在一起
  5. Hadoop 跨集群复制文件
  6. 深度学习后时代,图灵奖得主Bengio研究核心是什么?
  7. EventBus,轻松实现跨组件跨线程通信
  8. CSS属性简写规则详解
  9. FastAPI集成SQLAlchemy实现数据库操作
  10. 记一次‘勒索病毒’经历
  11. 单线、双线、三线以及BGP线路有什么区别?
  12. leetcode 5724. 绝对差值和
  13. java加密算法之MD5篇
  14. 斯坦福stanford coreNLP 宾州树库汉语短语类别表23个
  15. PDF文件中的文字怎么修改?来试试这种修改方法
  16. Audacity的替代品
  17. 2020年小博公众号文章集锦
  18. ios-自定义Storyboard与UIViewController
  19. Netty(3)之WebSocket协议开发时间服务器
  20. Debian安装英伟达(NVIDIA)驱动一站式避坑教学(Ubuntu通用)

热门文章

  1. robotframework接口测试(二)—post request
  2. canvas刮奖效果
  3. C++11之右值引用(三):使用C++11编写string类以及“异常安全”的=运算符
  4. Piwik学习 -- 插件开发
  5. securecrt 自动登录的设置
  6. 如何在html页面循环回显数据,从while循环显示数据到html代码
  7. Java引用实际上就是指针,下面关于Java的引用的说法正确的是______。
  8. ‘%.2f‘ 与 ‘{:.2f}‘.format(w) 区别
  9. Python判断一个字符串是否包含子串的几种方法
  10. Python map() 函数