李宏毅《机器学习》模型压缩-知识蒸馏
概述
需要做模型压缩的原因在于我们有将模型部署在资源受限的设备上的需求,比如很多移动设备,在这些设备上有受限的存储空间和受限的计算能力。本文主要介绍五种模型压缩的方法:
①网络剪枝(Network Pruning)
②知识蒸馏(Knowledge Distillation)
③参数量化(Parameter Quantization)
④结构设计(Architecture Design)
⑤动态计算(Dynamic Computation)
知识蒸馏
1.知识蒸馏是什么?
知识蒸馏指的是模型压缩的思想,通过一步一步地使用一个较大的已经训练好的网络去教导一个较小的网络确切地去做什么。“软标签”指的是大网络在每一层卷积后输出的feature map。然后,通过尝试复制大网络在每一层的输出(不仅仅是最终的损失),小网络被训练以学习大网络的准确行为。
2.这样和从头训练一个模型有什么不一样?
显然,模型越复杂,理论搜索空间越大。但是,如果我们假设较小的网络也能实现相同(甚至相似)的收敛,那么教师网络的收敛空间应该与学生网络的解空间重叠。
不幸的是,仅凭这一点并不能保证学生网络收敛在同一点。学生网络的收敛点可能与教师网络有很大的不同。但是,如果引导学生网络复制教师网络的行为(教师网络已经在更大的解空间中进行了搜索),则其预期收敛空间会与原有的教师网络收敛空间重叠。
3.教师学生网络 — 到底如何工作?
(1).训练教师网络:首先使用完整数据集分别对高度复杂的教师网络进行训练。这个步骤需要高计算性能,因此只能在离线(在高性能gpu上)完成。
一个高度复杂和深度的网络可以用作教师网络的例子:GoogleNet
(2).构建对应关系:在设计学生网络时,需要建立学生网络的中间输出与教师网络的对应关系。这种对应关系可以直接将教师网络中某一层的输出信息传递给学生网络,或者在传递给学生网络之前进行一些数据增强。
构建对应关系的例子
(3). 通过教师网络前向传播:教师网络前向传播数据以获得所有中间输出,然后对其应用数据增强(如果有的话)。
(4). 通过学生网络反向传播:现在利用教师网络的输出和学生网络中反向传播误差的对应关系,使学生网络能够学会复制教师网络的行为。
4.知识蒸馏的好处:
好处是Teacher Network的输出提供了比独热编码标签更多的信息,比如对于输入的数字1,Teacher Network的输出表明这个数字是1,同时也表明了这个数字也有一点像7,也有一点像9。另外训练Student Network时通常使用交叉熵作为损失函数,这是因为训练过程相当于要拟合两个概率分布。
知识蒸馏训练出的Student Network有一点神奇的地方就是这个Network有可能辨识从来没有见过的输入,不如把Student Network的训练资料中的数字7移除后可能训练完成后也会认识数字7,这是因为Teacher Network输出的soft label提供了额外的信息。
知识蒸馏的一个用处是用来拟合集成模型,有时候我们会集成(Ensemble)很多个模型来获取其输出的均值从而提高总体的效果,我们可以使用知识蒸馏的方式来使得
Student Network学习集成模型的输出,从而达到将集成模型的效果复制到一个模型上的目的:
李宏毅《机器学习》模型压缩-知识蒸馏相关推荐
- 模型压缩与蒸馏!BERT家族的瘦身之路
点击上方,选择星标,每天给你送干货! 作者 | 许明 整理 | NewBeeNLP公众号 之前我们讨论了『模型压缩与蒸馏!BERT的忒修斯船』,算是一个开篇.本文继续讨论关于模型蒸馏(Distilli ...
- 微信看一看强化学习推荐模型的知识蒸馏探索之路丨CIKM 2021
猜你喜欢 0.[免费下载]2021年11月热门报告盘点&下载1.如何搭建一套个性化推荐系统?2.从零开始搭建创业公司后台技术栈3.全民K歌推荐系统算法.架构及后台实现4.微博推荐算法实践与机器 ...
- 【视频课】深度掌握模型剪枝+模型量化+知识蒸馏3大核心模型压缩技术理论!...
前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...
- 【视频课】模型剪枝+模型量化+知识蒸馏典型实践!
前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...
- 移动端机器学习模型压缩也自动化了:腾讯新框架为自家模型加速50%
夏乙 发自 凹非寺 量子位 出品 | 公众号 QbitAI 把深度学习模型压缩部署到手机上直接本地运行的趋势,愈演愈烈.从Google的TensorFlow Lite.苹果的Core ML,到小米今年 ...
- 【模型压缩】蒸馏神经网络(Distill the Knowledge in a Neural Network)
1,简介 昆虫作为幼虫时擅于从环境中汲取能量,但是成长为成虫后确是擅于其他方面,比如迁徙和繁殖等. 同理神经网络训练阶段从大量数据中获取网络模型,训练阶段可以利用大量的计算资源且不需要实时响应.然而到 ...
- 娓娓道来!那些BERT模型压缩方法(一)
作者 | Chilia 哥伦比亚大学 nlp搜索推荐 整理 | NewBeeNLP 基于Transformer的预训练模型的趋势就是越来越大,虽然这些模型在效果上有很大的提升,但是巨大的参数量也对上线 ...
- 论文阅读:Knowledge Distillation: A Survey 知识蒸馏综述(2021)
论文阅读:Knowledge Distillation: A Survey 知识蒸馏综述2021 目录 摘要 Introduction Background 知识 基于响应的知识 基于特征的知识 基于 ...
- 娓娓道来!那些BERT模型压缩方法
本文约3000字,建议阅读10+分钟 本文主要介绍知识蒸馏.参数共享和参数矩阵近似方法. 作者 | Chilia 哥伦比亚大学 nlp搜索推荐 整理 | NewBeeNLP 基于Transformer ...
最新文章
- NOIP2012-摆花
- 值得推荐的C/C++框架和库(转载)
- java arraystoreexception_208道高频 Java面试题答案6
- boost::contract模块实现virtual private protected的测试程序
- [leetcode]27.移除元素
- shell脚本详解(四)——循环语句之while循环和until循环(附加例题及解析)
- 字符串不替代_TI-Nspire 系列的字符串操作
- navicat for mysql 用户_Navicat for MySQL 怎么/怎么添加管理用户?Navicat for MySQL 添加管理用户教程_37游游网...
- oracle控制文件加载数据,关于SQLLOAD控制文件参数的问题
- Android 资讯类App项目实战 第一章 滑动顶部导航栏
- 在QtCreator中手动添加signal和slot
- linux PDF转换为SWF
- 与阿里合伙人合影,两年净赚一百万,这个草根姑娘有什么魔力?
- Full CAN与Basic CAN主要区别
- 多兰大陆怎么在电脑上玩 多兰大陆模拟器玩法教程
- 窗口函数 (转) rows between unbounded preceding and current row
- Excel中如何显示复杂公式中局部的计算结果,例如嵌套函数,使用多个函数
- 北斗导航 | ION GNSS+ 2014到 ION GNSS+ 2017会议论文下载:ION 美国导航学会
- NETPLIER: Probabilistic Network Protocol Reverse Engineering from Message Traces代码复现记录
- 显示12306服务器处理中正在排队,12306称能够解决技术问题 不与企业合作