论文理解--DEEP COMPRESSION

news2024/11/18 5:41:58

原文链接:
https://github.com/mit-han-lab/amc/security
https://zhuanlan.zhihu.com/p/108096347
https://zhuanlan.zhihu.com/p/510905067

摘要
结论:
1、deep compression:由三阶段pipeline组成:pruning(剪枝)、 trained quantilization()、Huffman coding(哈夫曼编码)
2、通过deep compression,在不损失模型精度的前提下可以减少35-49倍的神经网络存储
3、首先通过学习神经网络的重要连接对网络进行剪枝,然后通过trained quantization 对剩下的connections进行量化。基于ImageNet数据集在网络AlexNet和VGG-16上进行试验,效果显著,提升了on-chip SRAM cache(静态随机存储)的使用,降低了off-chip DRAM memory(动态随机存储的使用)
4、同时使用 deep compression 技术使得复杂网络可以应用在移动端。同时能够加速和提高功耗利用率

一、引言
three-stage deep compression pipeline
二、网络剪枝
网络剪枝被广泛研究应用在压缩CNN。最早是用来降低网络复杂度和防止过拟合。本文研究它用于无损精度压缩网络。
weight sharing(权值共享):权值共享是指学习到的局部信息可以应用到图像中的其他地方上去。例如用一个卷积核卷积整幅图像,每个卷积核在图像上是不断重复的,这些重复的卷积核共享着相同的参数设定(weights和bias)。
本文中权值共享的方案如下:
在这里插入图片描述
1、采用Compressed sparse row(CSR)或者 Compressed sparse column(CRC)存储剪枝后的稀疏矩阵
2、稀疏矩阵的存储至少需要2a + n + 1个存储单元,其中a表示非零元素的数量,n是行或者列的数量。
3、为了进一步压缩我们保存元素的相对索引,而不是坐标。对于conv层,采用8bit存储。对于fc层采用5bit存储
4、当相对索引的位置超出存储范围,如下图所示,我们采用0 padding的方法解决。
在这里插入图片描述
三、训练量化和权值共享
压缩率的计算公式:
为了衡量压缩率,对于k个cluster ,仅仅需要 log2(k)个bit存储索引。因此对于一个网络连接数是n,每个连接用b个bit表示,共享权值数量是k时,压缩率为:
在这里插入图片描述

3.1权值共享
对训练网络的每一层采用K-means聚类算法进行权值共享,因此同一个簇中的权值是相同的,并且权值不在网络层之间共享,因此最小化簇内平方和的公式为:

在这里插入图片描述
3.2 初始化权值共享
本文比较了三种初始化权值共享的方法:Forgy(random)、density-based、linear。
Forgy:随机选择k个观察对象以及中心。如图所示,中心点分布较密集
density-based:基于CDF累积分布函数 (cumulative distribution function),在CDF曲线轨迹的线性空间选择中心点。如图,中心点分布较稀疏
linear:在原始权值的最大值和最小值中间选取中心点。如图中心点分布最稀疏。

结论:大权值比小权值影响力更大,但是同时它们的数量更少,因此在Forgy和density-based方法中,非常少的中心位于大权值处,因此不能很好的代表大权值。而linear初始化方法就没有这个问题。基于这三种方法进行聚类和fine-tune并测试准确性,实验表明linear初始化方法表现最好。
在这里插入图片描述
3.3 feed-forward(前馈)和反向传播

一维K-means聚类的中心即共享权值。feed-forward和反向传播的中间过程需要查找共享权值表。对于每个连接都保存了共享权值表的索引。在反向传播阶段计算每个连接的共享权值的梯度,并更新共享权值。该过程在上图中有展示。共享权值的梯度计算如下图所示。
在这里插入图片描述
4、霍夫曼编码(Huffman code)
霍夫曼编码是一种用于数据无损压缩的最优的前缀码。它使用可变长的编码压缩源字符。根据字符出现的概率性成熟表,出现概率越高的字符,需要越短的编码来表示。
下图展示了AlexNet网络最后一层全连接层的量化权值和稀疏矩阵索引的概率分布图。两种分布均有偏差。量化权值分布集中在双峰,稀疏矩阵索引的分布插值几乎不超过20.实验表明使用霍夫曼编码存储这些非均匀分布数据,能够减少20%-30%的网络存储。

5、实验
5.1LeNet-300-100和LeNet-5 在Mnist数据集上的表现:
在这里插入图片描述
在这里插入图片描述

5.2 AleNet在 ImageNet ILSVRC2012数据集上的表现:
在这里插入图片描述
5.3 VGG-16 在ImageNet ILSVRC2012数据集上的表现:
在这里插入图片描述

6、论述
6.1 剪枝和量化协同作用
剪枝、量化作用在模型上,产生的压缩率及相应的精度损失绘制成曲线图,如下所示。实验结果表明剪枝和量化同时作用在模型上时,能获得最低的模型压缩率并且几乎没有精度损失。
SVD算法:奇异值分解算法可以实现降维,把数据集映射到低维空间中。数据集的特征值在SVD中用奇异值来表征,按照重要性排列,降维过程就是舍弃不重要的特征向量的过程,而剩下的特征向量组成的空间即为降维后的空间。
在这里插入图片描述

hica-stream 前期调研。分析竞品。
TS文档:输出调研文档
6.2 中心初始化
实验思路:用不同的bit位表示中心,并使用3.2小节提到的三种初始化中心的方法linear、density,forgy。得到在不同的bit数初始化中心下的top-1和top-5准确率如下图所示。图表明,除了在3bit初始化中心,linear方法的准确率均高于其他两种方法。
linear方法初始化中心优于其他两种方法的原理在3.2小节中说明了,此处不再赘述。
在这里插入图片描述
6.3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/111345.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

452页24万字智慧城市顶层设计及智慧应用解决方案

智慧城市总体设计 2.1 智慧城市核心技术 2.1.1 物联网 智慧城市是一个有机结合的大系统,涵盖了更透切的感知、更全面的互连,更深入的智能。物联网是智慧城市中非常重要的元素,它侧重于底层感知信息的采集与传输,城市范围内泛在网方…

无需调用Tecplot,PFC后处理技巧为你plot精美科研图

导读:PFC提供了非常美观的可视化处理的窗口—plot,用户可以在这里对模型的运行状态进行检查,也可以将Plot中的视图输出进行处理。一般来说plot中的图片质量足够用于常规的论文配图,当然用户也可以导出数据到tecplot中进行后处理&a…

【UE4 第一人称射击游戏】08-使用“AK47”发射子弹

上一篇: 【UE4 第一人称射击游戏】07-添加“AK47”武器 本节效果: 步骤: 1.在“Blueprints”文件夹内添加一个Actor蓝图,命名为“Projectile_Base”,该蓝图用于表示子弹 双击打开“Projectile_Base”,添加…

期货开户的身份识别验证

无论你是开通商品期货、原油期货还是股指期货以及期权,现在都支持网上办理!原油期货和股指期货以及期权品种都是在商品期货账户的基础上满足条件后再另外开通交易权限。叁格期权小编在这里为各位投资者详细介绍商品期货网上开户流程。 一、开户前准备 …

文件透明加密,保护重要数据的安全性

各种泄露事件使人们对信息安全问题的高度关注,随着加密技术的不断完善,主流透明加密技术被广泛应用于企业加密软件中。那么,这个技术如何保护电脑?有什么优点? 文件透明加密是最近几年发展出来的一种文件加解密技术。所…

RK3568平台开发系列讲解(工具命令篇)vim 编辑器的使用

🚀返回专栏总目录 文章目录 一、vim 编辑器有三种模式二、vim 编辑器移动光标三、vim 编辑器支持快速定位四、vim 编辑器的文本的复制和粘贴五、vim 编辑器使用快捷键来复制六、vim 编辑器的删除七、vim 编辑器的撤销八、vim 编辑器的查找九、vim 编辑器的替换十、vim 编辑器…

四、GradCAM可解释性分析——可解释性机器学习(DataWhale组队学习)

目录CAM算法回顾CAM算法流程CAM算法的精妙之处CAM算法的缺点GradCAMGrad-CAM算法的优点:Grad-CAM算法的缺点:Grad-CAM算法的改进Grad-CAM算法Score-CAM算法LayerCAM算法总结CAM算法回顾 CAM算法流程 输入原始图像,经过多层无池化的全卷积神经…

23种设计模式:单例设计模式(饿汉式 VS 懒汉式)

23种设计模式:单例设计模式(饿汉式 VS 懒汉式) 每博一文案 世事浮沉,有太多的责任需要我们担当,生活中总有些挫折和磨难,让我们觉得快要杠不住了。 但当我们咬牙坚持过那段难熬的时光后,发现并…

居家防护类设备的智能化解决方案

疫情防控政策优化后,你期待的消费暴涨如期而至了吗?近期,继自带“玄学”光环的黄桃罐头被疯抢之后,橘子水、葱姜水、古法掐喉咙消肿等缓解疼痛的“东方神秘法宝”再现各大视频平台。 面对此次居家隔离,哪些产品将再次…

(Java)欢乐的跳

欢乐的跳一、题目描述二、输入格式三、输出格式四、样例(1)样例输入1(2)样例输出1(3)样例输入2(4)样例输出2五、提示六、正确代码七、注意点以及思路(1)注意点…

【万字长文】从Linux零拷贝深入了解Linux I/O

前言 存储器是计算机的核心部件之一,在完全理想的状态下,存储器应该要同时具备以下三种特性: 速度足够快:存储器的存取速度应当快于 CPU 执行一条指令,这样 CPU 的效率才不会受限于存储器容量足够大:容量…

新闻发布系统的设计与实现/新闻管理系统

摘要 21世纪是信息的时代,是网络的时代,进入信息社会高速发展的时代,数字化革命给所有领域带来新的改变。传统的报纸杂志已经远远满足不了人们的需求,人们更加希望于能够在网上了解更多的新闻和信息,网页逐渐融入人们的…

实验二:数据查询实验

【实验目的】 熟练运用SQL语言实现数据查询,包括单表查询、分组查询、连接查询、嵌套查询、集合查询、oralce数据库常用函数等 【实验内容】 根据“数据导入”文档中的语句,将“费用明细表”和“科室字典”2张excel表内容导入数据库。然后拟定以下内容…

力扣刷题笔记day8(二维数组中的查找+旋转数组的最小数字+第一个只出现一次的字符)

文章目录二维数组中的查找题目思路代码旋转数组的最小数字题目思路代码第一个只出现一次的字符题目思路代码二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序排序,每一列都按照从上到下 非递减 的顺序排序。请完成一个高…

中级集成和高级信息系统项目管理怎么选?考哪个?

二者只有一个不同,高级需要考论文,如果有时间,有需求,就直接冲高级,一步到位; 下面一起看看两个科目的不同之处: 系统集成项目管理工程师 通过本考试的合格人员能够掌握系统集成项目管理的知识…

linux armhf ubuntu18.04搭建docker

1、开发环境 文件系统版本:ubuntu18.04 armhf 内核版本:linux4.1.15 docker版本:20.10.22 2、ubuntu上安装docker 1、卸载过往的版本 sudo apt-get remove docker docker-ce docker.io containerd runc2、重新更新、安装 sudo apt-get …

vue3+vite +element-plus+tailwindcss兼容低版本浏览器(uc)

部分问题 uc浏览器 rgb支持不全 如rgb(0 0 0 /30%) 这种写法不支持 tailwindcss v3 部分样式在低版本下也不支持 uc浏览器 对于 tailwindcss boxShadow 不支持 主要还是rgb原因 兼容 直接贴出代码 使用 tailwindcss 2.2.16 版本 v3低版本不支持 tailwindcss v2的 jit模式 和…

插值算法基本原理

插值:数据处理的手段 将缺失数据补全处理 线性内插 拉格朗日插值法 牛顿插值 拟合:预测,寻找规律的手段 是插值的外延 插值算法:使用在现有的数据极少,不足以支撑分析的进行,这时就需要使用一些数学方法…

植物激素基因高级分析来啦~

很多植物转录组学文章中,都有整合激素相关基因和表达数据的pathway图,直观地展示通路及其中重要基因的位置和功能。 植物激素(Phytohormone)亦称植物天然激素或植物内源激素,是指植物体内产生的一些微量而能调节&…

排序算法——快速排序

快排 ​ 确定一组数据 ,即q数组 ​ 左端点为了,右端点为r ​ (1)确定分界点 ​ q[l] 或 q[ (l r) / 2] 或 q[r] 或任意一个数 作为分界点,分界点数为x ​ (2)调整区间 (重点&a…