点击我爱计算机视觉标星,更快获取CVML新技术


本文简要介绍ICCV 2019论文“Data-Free Learning of Student Networks”的主要工作。该论文主要解决的问题是,在无法获取原始数据集的情况下,如何进行网络压缩。

一、研究背景

大部分深度神经网络(CNN)往往需要消耗巨大的计算资源以及存储,为了将模型部署到移动端等性能受限设备上,通常需要对网络进行加速压缩。现有的一些加速压缩算法,例如知识蒸馏[1]等, 能够在具有训练数据的情况下取得有效的结果。然而,在现实应用中,训练数据集由于隐私、传输等原因往往无法得到。因此,作者提出了一种无需原始训练数据的模型压缩方法。

二、原理简述

Fig.1. Overall architecture

Fig. 1是论文提出的整体结构。通过给定的待压缩网络(教师网络),作者训练了一个生成器来生成与原始训练集具有相似分布的数据。然后利用生成数据,基于知识蒸馏算法对学生网络进行训练,从而实现了无数据情况下的模型压缩。

那么如何在没有数据的情况下,通过给定的教师网络,训练一个可靠的生成器呢?作者提出了以下三个loss来指导生成器的学习。

(1)在图像分类任务中,对于真实的数据,网络的输出往往接近一个One-hot向量。其中,在分类类别上的输出接近1,其它类别的输出接近0。因此,如果生成器生成的图片接近真实数据,那么它在教师网络上的输出应该同样接近于一个One-hot向量。于是,作者提出了One-hotloss:

其中yT是生成图片通过教师网络的输出,t是伪标签,由于生成的图片不具备标签,作者将yT中的最大值设置为伪标签。Hcross表示交叉熵函数。

(2)另外,在神经网络中,输入真实数据往往比输入随机噪声在Feature Map上有更大的响应值。因此,作者提出了Activation Loss对生成数据进行约束:

其中fT表示生成数据通过教师网络提取得到的特征,||·||1表示l1范数。

(3)此外,为了让网络更好地训练,训练数据往往需要类别平衡。因此,为了让生成的数据同样类别平衡,作者引入了信息熵Loss来衡量类别平衡程度:

其中,Hinfo表示信息熵,yT表示每张图片的输出。如果信息熵越大,说明输入的一组图片中,每个类别的数目越平均,从而保证了生成的图片类别平均。

最后,通过结合上述三个Loss函数,可以得到生成器训练所使用的Loss:

通过优化以上Loss,可以训练得到一个生成器,然后通过生成器生成的样本进行知识蒸馏。在知识蒸馏中,待压缩网络(教师网络)通常准确率较高但参数冗余,学生网络是一个轻量化设计、随机初始化的网络。通过用教师网络的输出来指导学生网络的输出,能够提高学生网络的准确率,达到模型压缩的目的。这个过程可以用以下公式进行表示:

其中,ys、yt分别表示学生网络、教师网络的输出,Hcross表示交叉熵函数。

算法1表示文章方法的流程。首先,通过优化上文所述的Loss,得到一个与原始数据集具有相似分布的生成器。第二,通过生成器生成的图片,利用知识蒸馏的方法将教师网络的输出迁移到学生网络上。学生网络具有更少的参数,从而实现了无需数据的压缩方法。

三、主要实验结果及可视化效果

TABLE 1. Classification result on the MNIST dataset.

TABLE 2.  Effectiveness of different components of the proposed data-free learning method.

TABLE 3. Classification result on the CIFAR dataset.

TABLE 4.  Classification result on the CelebA dataset.

TABLE 5.  Classification results on various datasets.

Fig.2. Visualization of averaged image in each category(from 0 to 9) on the MNIST dataset.

Fig.3. Visualizationof filters in the first convolutional layer learned on the MNIST dataset. The topline shows filters trained using the original training dataset, and the bottom line shows filters obtained using samples generated by the proposed method.

由TABLE 1、TABLE 3、TABLE 4来看,文章所提方案在MNIST、CIFAR、CelebA上取得的结果均比其它无数据压缩方案好,而且接近于采用数据的知识蒸馏方法。TABLE 2验证了所提出的三个loss对结果的影响,可以看到,只用单个Loss的话提升并不明显,需要组合多个loss才能得到好的结果。Fig.2中第二行是生成数据的可视化结果,可以看到生成图片与真实图片相比仍有不小的差距。Fig.3是卷积核的可视化结果,可以看出学生网络的卷积核跟教师网络的卷积核具有相似性。

四、总结及讨论

  1. 文章利用待压缩网络,根据真实图片在网络中的输出规律设计了三个Loss来训练生成器,使得生成图片与真实数据具有相似分布,从而达到了Data-free进行模型压缩的目的。在MNIST、CIFAR、CelebA等数据集上都验证了其方法的有效性。

  2. 通过可视化结果可以看出生成的图片与真实图片仍有不小的差距。此外,需要在更大的数据集上进一步验证其性能。

五、相关资源

  • 论文地址:https://arxiv.org/pdf/1904.01186.pdf

  • 代码地址:https://github.com/huawei-noah/DAFL

参考文献

[1] Geoffrey Hinton, Oriol Vinyals, and Jeff Dean.Distilling the knowledge in a neural network. arXiv:1503.02531, 2015.


原文作者:Hanting Chen, Yunhe Wang, Chang Xu , Zhaohui Yang, Chuanjian Liu, Boxin Shi,Chunjing Xu, Chao Xu, Qi Tian

撰稿:梁凯焕

编排:高  学

审校:殷  飞

发布:金连文


免责声明:(1)本文仅代表撰稿者观点,个人理解及总结不一定准确及全面,论文完整思想及论点应以原论文为准。(2)本文观点不代表本公众号立场。


模型压缩与部署交流群

关注最新最前沿的神经网络模型压缩、知识蒸馏、轻量级网络设计、端侧部署技术,扫码添加CV君拉你入群,(如已为CV君其他账号好友请直接私信)

(请务必注明:部署)

喜欢在QQ交流的童鞋,可以加52CV官方QQ群:805388940。

(不会时时在线,如果没能及时通过验证还请见谅)


长按关注我爱计算机视觉

借鸡生蛋,无需数据的知识蒸馏相关推荐

  1. CVPR 2020 细粒度分类挑战赛冠军方案:数据增强+知识蒸馏,效果大幅提升

    本文转载自机器之心. 近日,支付宝天筭安全实验室在 CVPR FGVC(细粒度视觉分类)workshop 举办的植物病理学挑战赛(Plant Pathology Challenge)中夺冠.本文介绍了 ...

  2. 目标检测中的知识蒸馏方法

    目标检测中的知识蒸馏方法 知识蒸馏 (Knowledge Distillation KD) 是模型压缩(轻量化)的一种有效的解决方案,这种方法可以使轻量级的学生模型获得繁琐的教师模型中的知识.知识蒸馏 ...

  3. 知识蒸馏相关技术【模型蒸馏、数据蒸馏】以ERNIE-Tiny为例

    1.任务简介 基于ERNIE预训练模型效果上达到业界领先,但是由于模型比较大,预测性能可能无法满足上线需求. 直接使用ERNIE-Tiny系列轻量模型fine-tune,效果可能不够理想.如果采用数据 ...

  4. NLP-D9-第一场大数据比赛D1知识蒸馏翻译论文CATTI备考-第一套综合

    -0533早上先clone一本kaggle书 –0626吃了早饭,又看了一遍上次的分享视频,感觉云淡风轻,没有想象那么难.先去根据代码看下transformer的库怎么用. ----0806回来了,继 ...

  5. 旷视孙剑博士提出LGD,训练速度提升51%,适用于目标检测的知识蒸馏

    来源:新智元 [导读]知识蒸馏已经成了目前常用的模型压缩方法,但相关研究还局限在图像分类任务上.最近旷视孙剑博士联手西安交大发表了一篇论文,提出新模型LGD,无需一个强力的teacher模型也能在目标 ...

  6. 【论文翻译_无数据知识蒸馏_元学习_2022】Up to 100× Faster Data-free Knowledge Distillation

    可以参考2021的另一篇解决相似问题的文章(Learning_Student_Networks_in_the_Wild) 摘要 data-free知识蒸馏(DFKD)由于其仅使用人造合成数据压缩模型的 ...

  7. 一文看懂“知识蒸馏”技术

    知识蒸馏算法原理 前言 知识 基于响应的知识 算法思想 基于特征的知识 算法思想 基于关系的知识 蒸馏方式 离线蒸馏 在线蒸馏 自蒸馏 教师学生架构 前言 过去几年中,深度学习已成为人工智能许多成功的 ...

  8. radioml2018数据集_7 Papers Radios | CVPR 2020获奖论文;知识蒸馏综述

    机器之心 & ArXiv Weekly Radiostation 参与:杜伟.楚航.罗若天 本周的重要论文是CVPR 2020 公布的各奖项获奖论文,包括最佳论文和最佳学生论文等. 目录: K ...

  9. 模型压缩一-知识蒸馏

    一.知识蒸馏简介 知识蒸馏是模型压缩方法中的一个大类,是一种基于"教师-学生网络(teacher-student-network)思想"的训练方法, 其主要思想是拟合教师模型(te ...

最新文章

  1. spring MVC项目启动报错
  2. 【数字信号处理】傅里叶变换性质 ( 序列傅里叶变换共轭对称性质 | x(n) 分解为实部序列与虚部序列 | 实部傅里叶变换 | 虚部傅里叶变换 | 共轭对称傅里叶变换 | 共轭反对称傅里叶变换 )
  3. stm32 stm8 产品型号
  4. Docker 方式安装、运行 Nexus3 、重置默认密码、推送 jar 包到私服
  5. [华为机试练习题]60.水仙花数
  6. Python-又到了抢票的季节(带验证码识别验证)
  7. 为你的 Swift Packages 命名
  8. Tsinsen A1517. 动态树 树链剖分,线段树,子树操作
  9. 【ZYNQ】从入门到秃头02 ZYNQ硬件介绍和Vivado开发流程
  10. java.lang.ArithmeticException: Division undefined
  11. matlab画基尼系数,Matlab 对离散数列计算基尼系数(Gini_coef)公式
  12. stm32f4实现s6d1121+xtp2046触摸屏功能
  13. 路由汇总带来的三层环路-解决实验
  14. LiveData vs EventBus?是否可以实现共赢
  15. 读叔本华之《人生的智慧》
  16. 零基础玩转C语言系列第一章——初始C语言(上)
  17. 解决vue中无法取得methods方法中的return值,获得是undefined
  18. 一、node.js的理解?优缺点?应用场景?
  19. 分布式事件调度框架tiger
  20. 扫脸付、VR付实现了, “KongFu”空付还远吗?

热门文章

  1. 基于深度学习的文本分类3
  2. form必填默认校验_Salesforce LWC学习(十六) Validity 在form中的使用浅谈
  3. mt4 python神经网络_迈达克软件公司承认Python运算对量化交易的重要性----将Python与Metatrader 5集成一体...
  4. mysql 多表查询 join on_MySQL多表查询Left Join,Right Join学习笔记
  5. WP博客ajax,WordPress文章点击统计ajax版,兼容wp super cache缓存代码及插件
  6. CentOS 7 常用命令大全
  7. python plot map_python的colormap总结(matplotlib+ncl+气象家园调色盘)
  8. 各纬度气候分布图_印度和中国都是季风气候显著的国家,但冬夏季风的强弱却完全不同...
  9. androidfiletransfer_mac手机助手(Android File Transfer)下载_mac手机助手(Android File Transfer)官方下载...
  10. springboot+flowable第四节(设置监听事件)