模型蒸馏相关记录

参考这篇文章:

https://zhuanlan.zhihu.com/p/24337627

 

有研究表明深度模型具有较大的信息参数冗余。因此我们可以通过一定的技术方法对复杂的模型进行去冗余压缩。现有的压缩方法主要可以下四类:

 

复制代码
浅层网络:通过设计一个更浅(层数较少)结构更紧凑的网络来实现对复杂模型效果的逼近。但是浅层网络的表达能力很难与深层网络相匹敌【1】。因此,这种设计方法的局限性在于只能应用解决在较为简单问题上。如分类问题中类别数较少的task。




直接压缩训练好的复杂模型:直接对训练得到的复杂模型采用矩阵量化【2】、Kronecker内积、霍夫曼编码、模型剪枝【3】等优化方式,对模型中的参数进行量化。以实现对模型的压缩,部署阶段采用量化过后的模型可以同时达到参数压缩和提速的效果。



多值网络:最为典型就是二值网络【4】、XNOR【5】网络等。其主要原理就是采用1bit对网络的输入、权重、响应进行编码。减少模型大小的同时,原始网络的卷积操作可以被bit-wise运算代替,极大提升了模型的速度。但是,如果原始网络结果不够复杂(模型描述能力),由于二值网络会较大程度降低模型的表达能力。因此现阶段有相关的论文开始研究n-bit编码【6】方式成为n值网络或者多值网络来克服二值网络表达能力不足的缺点。




蒸馏模型:蒸馏模型采用的是迁移学习,通过采用预先训练好的复杂模型(Teacher model)的输出作为监督信号去训练另外一个简单的网络。这个简单的网络称之为student model。
复制代码

 

 

下面我们将着重介绍蒸馏模型压缩方法,文章来自Geoffrey Hinton《Distilling the Knowledge in a Neural Network》【7】

 

但是上面的文章没有图,所以看了下面的文章:

https://mp.weixin.qq.com/s/tKfHq49heakvjM0EVQPgHw

《BERT蒸馏完全指南|原理/技巧/代码》

是从下面的文章链接过去的:

https://zhuanlan.zhihu.com/p/71986772

《深度神经网络模型蒸馏Distillation》

 

 

 

posted @   blcblc  阅读(94)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2018-03-04 今天下了本电子书《Neural Network Methods in Natural Language Processing》
2018-03-04 深入理解拉格朗日乘子法与KKT
2018-03-04 常用数学符号读法大全
2018-03-04 【笔记】PLSA及EM算法-笔记
2018-03-04 【非常非常好】终于搞懂了,MLE,MAP,贝叶斯估计等
2018-03-04 LDA学习笔记
2017-03-04 今天看到这篇文章,关于薪资、人才、团队公司成长等等
点击右上角即可分享
微信分享提示