模型蒸馏相关记录
参考这篇文章:
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》
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有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 今天看到这篇文章,关于薪资、人才、团队公司成长等等