无数据知识蒸馏

2020 年 9 月 30 日 AINLP

本文是参考文献[1]的阅读笔记。

目前,很多模型上的工作都在使用知识蒸馏来压缩模型,但是,很多情况下,我们得到了大模型后,却很难拿到相应的数据。比如,如果数据有保密要求,或者数据量比较大,无法传到服务器等。那么这种情况下,还可以使用知识蒸馏来压缩模型吗?

当然可以,论文提出了一种基于对抗生成网络的方法来重构数据,然后再去做知识蒸馏。

对抗生成网络

关于对抗生成网络,传送门在此

或者大家可以直接去参考文献[2]上去读原始论文。这里简要的解释一下,那就是网络分成生成器和判别器两个部分,生成器用来生成假数据,判别器用来判断数据是真的还是假的。生成器和判别器轮流学习,从而使得我们在最后得到一个较好的生成器。

对抗生成网络的损失函数如下,这个损失函数的目标是判别器把真数据和假数据区分出来的能力。

而训练GAN的目的则是找到一个生成器G,使得判别器无法区分真假。

知识蒸馏

传统的知识蒸馏就是让student模型的输出尽可能的和teacher模型的输出一致。公式如下图,就是计算student和teacher输出的概率分布之间的交叉熵。


我们在Bert系列中也有三篇与知识蒸馏相关,感兴趣可以去围观

对抗生成网络 + 知识蒸馏 = 无数据知识蒸馏

基本的框架如下:

框架虽然明晰,但里面的细节问题却不少:

  • a. 如何能生成真实的图像?
  • b. 如何保证生成的数据集分布与原始数据集一样?

对于问题a,论文中提出了两个损失项,

Loh代表的是,生成的图像经过判别器之后得到的概率分布要尽量贴合one-hot编码。在这里的隐含假设是判别器很强大,可以对每张图像都有一个很强的分类结果。

La则代表的是对于生成的图像,经过某个卷积提取特征后,要有比较强的激活值。这里的隐含假设是判别器中的每个特征提取器都是很有效的,真实图像在经过特征提取器后应该能得到很高的激活值。

而对于问题b,则是将输出的概率聚合之后去算熵值,来使得从类别上的样本分布符合原始数据集。这里拟合的是均匀分布,即每个类上的样本数目一样。

而总的损失函数是:

训练流程

有了损失函数后,整个训练就分成了两部分,第一,基于teacher去训练生成器,第二,基于teacher和生成器去做知识整理。如下图所示:

实验结果

实验结果如下图,可以看到,在没有数据的情况下,论文提出的方法可以和有数据的情况下相当接近。

参考文献

  • [1]. Chen, Hanting, et al. "Data-Free Learning of Student Networks." arXiv preprint arXiv:1904.01186 (2019).
  • [2]. Ian J. Goodfellow. Generative Adversarial Nets.



由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方"AINLP",进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心


欢迎加入AINLP技术交流群
进群请添加AINLP小助手微信 AINLPer(id: ainlper),备注NLP技术交流

推荐阅读

这个NLP工具,玩得根本停不下来

征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)

完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)

从数据到模型,你可能需要1篇详实的pytorch踩坑指南

如何让Bert在finetune小数据集时更“稳”一点

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化

Node2Vec 论文+代码笔记

模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


阅读至此了,分享、点赞、在看三选一吧🙏

登录查看更多
2

相关内容

【EMNLP2020】序列知识蒸馏进展,44页ppt
专知会员服务
39+阅读 · 2020年11月21日
专知会员服务
75+阅读 · 2020年9月1日
【CVPR2020】跨模态哈希的无监督知识蒸馏
专知会员服务
61+阅读 · 2020年6月25日
最新《知识蒸馏》2020综述论文,20页pdf,悉尼大学
专知会员服务
158+阅读 · 2020年6月14日
图卷积神经网络蒸馏知识,Distillating Knowledge from GCN
专知会员服务
95+阅读 · 2020年3月25日
【浙江大学】对抗样本生成技术综述
专知会员服务
92+阅读 · 2020年1月6日
模型压缩 | 知识蒸馏经典解读
AINLP
10+阅读 · 2020年5月31日
【模型蒸馏】从入门到放弃:深度学习中的模型蒸馏技术
深度学习自然语言处理
13+阅读 · 2020年4月11日
基于知识蒸馏的BERT模型压缩
大数据文摘
18+阅读 · 2019年10月14日
FAIR&MIT提出知识蒸馏新方法:数据集蒸馏
机器之心
7+阅读 · 2019年2月7日
博客 | 「特征工程」与「表示学习」
AI研习社
7+阅读 · 2018年9月9日
Interpretable CNNs for Object Classification
Arxiv
20+阅读 · 2020年3月12日
Arxiv
102+阅读 · 2020年3月4日
Arxiv
3+阅读 · 2019年11月28日
Arxiv
6+阅读 · 2019年3月19日
VIP会员
相关VIP内容
【EMNLP2020】序列知识蒸馏进展,44页ppt
专知会员服务
39+阅读 · 2020年11月21日
专知会员服务
75+阅读 · 2020年9月1日
【CVPR2020】跨模态哈希的无监督知识蒸馏
专知会员服务
61+阅读 · 2020年6月25日
最新《知识蒸馏》2020综述论文,20页pdf,悉尼大学
专知会员服务
158+阅读 · 2020年6月14日
图卷积神经网络蒸馏知识,Distillating Knowledge from GCN
专知会员服务
95+阅读 · 2020年3月25日
【浙江大学】对抗样本生成技术综述
专知会员服务
92+阅读 · 2020年1月6日
相关资讯
模型压缩 | 知识蒸馏经典解读
AINLP
10+阅读 · 2020年5月31日
【模型蒸馏】从入门到放弃:深度学习中的模型蒸馏技术
深度学习自然语言处理
13+阅读 · 2020年4月11日
基于知识蒸馏的BERT模型压缩
大数据文摘
18+阅读 · 2019年10月14日
FAIR&MIT提出知识蒸馏新方法:数据集蒸馏
机器之心
7+阅读 · 2019年2月7日
博客 | 「特征工程」与「表示学习」
AI研习社
7+阅读 · 2018年9月9日
相关论文
Top
微信扫码咨询专知VIP会员