阅读笔记:一种用于深度神经网络压缩的滤波器级别的剪枝算法ThiNet
来源:互联网 发布:u盘 知乎 编辑:程序博客网 时间:2024/06/07 04:10
原文:《ThiNet: 一种用于深度神经网络压缩的滤波器级别剪枝算法》
作者:吴建鑫
目的:利用上一层的统计信息指导当前层的剪枝,能够在不改变原网络结构的前提下,让卷积神经网络模型在训练与预测阶段同时实现加速与压缩
特点:ThiNet 框架具普适性,可无缝适配于现有的深度学习框架,有助于减少网络的参数与 FLOPs,同时保留原网络的精度级别
压缩网络模型通常有两种思路:
- 利用稀疏性对模型进行剪裁,从而达到减少模型参数数目的效果;
- 由卷积神经网络的通道(channel)入手进行选择性取舍,去掉通道中的噪声或是可以被其他通道代替的部分,进而降低计算代价。
ThiNet框架设计思路:从通道选择的角度展开,提出一种滤波器级别的简直剪枝算法
基础:2014 年对基于熵的特征选择算法进行研究,发现相较模型压缩方法,在同压缩比的情况下具有更高的准确率,发表于 CVPR2015。在这个熵算法的基础上,最终设计出了效果更优的 ThiNet 框架
在下图的 ThiNet 剪枝框架图中,先根据图中的虚线框部分判断哪些通道及其相对应的滤波器性能较弱(第一行中用黄色高亮的部分)或可以被其他通道代替。然后丢弃对网络的性能影响较小的通道及其对应的滤波器从而得到一个剪枝模型。之后再对剪枝后的模型进行微调以恢复其精度。
ThiNet 框架的核心是通过上一层的统计信息来指导当前层的剪枝
以模型的第五层为例,在针对网络模型的第五层进行压缩时,为了尽可能不影响网络模型的效果,要尽量保持第五层的输出通道不变或改变较小。由于卷积层是一种线性算子,所以可以看成是用第五层的输入(即第四层的输出)模拟其输出的线性过程。在这里,第五层的输入是可以缩减的,如果可以通过优化方法找到第五层的输入中线性组合等于零的部分并将相应的第四层输出的卷积核舍弃掉,就可以利用较少的输入得到相似的输出,换言之,在不牺牲模型效果的前提下实现压缩模型。探索线性组合的值接近于零的具体过程涉及采样训练样本、贪心算法、最小化重构误差等优化方法。
在 CUB-200 数据集上,微调前后的精度变化情况
不同选择算法的性能比较:VGG-16-GAP 模型以不同的压缩率在 CUB-200 数据集上的剪枝效果
使用 ThiNet 对 VGG-16 在 ImageNet 进行剪枝,从实验数据可以发现,ThiNet 不仅能够降低 FLOPs 以及网络参数,对于 top-1 和 top-5 准确率的影响也非常小
M/B 表示百万/十亿 (10^6/10^9);f./b. 是前向/反向的缩写,速度由 batch size=32 在一张 M40 GPU 上测试所得
与其他方法在 VGG-16 上的比较
在 ResNet-50 上的类似实验证明,即便是对于紧凑的网络,ThiNet 也能减少超过一半的的参数与 FLOPs,而 top-5 准确度仅降低 1%。
M/B 表示百万/十亿 (10^6/10^9);f./b. 是前向/反向的缩写,速度由 batch size=32 在一张 M40 GPU 上测试所得
ThiNet 能将 VGG16 网络模型剪枝到 5.05MB 的大小,保留 AlexNet 级别的精度,却拥有更强的泛化性能。
- 阅读笔记:一种用于深度神经网络压缩的滤波器级别的剪枝算法ThiNet
- 论文笔记:ThiNet——一种filter级的模型裁剪算法
- 阅读笔记:深度神经网络模型压缩与加速
- Stroke filter: 一种用于OCR预处理的文字滤波器
- 深度神经网络的压缩和正则化
- 用于高光谱图像分类的深度卷积神经网络
- 一种用于抑制椒盐噪声的多窗口中值滤波器(邢藏菊等)
- Deep Forest:一种深度神经网络的替代模型架构
- 神经进化:一种不一样的深度学习——通过进化算法来探求神经网络的进化
- 神经进化:一种不一样的深度学习——通过进化算法来探求神经网络的进化
- 【算法】一种用于云计算的SPSO算法
- 3用于MNIST的卷积神经网络-3.4卷积滤波器核的数量与网络性能之间的关系
- 神经网络与深度学习学习笔记:实现单隐层的神经网络
- 神经网络与深度学习学习笔记:神经网络的优化
- 神经网络与深度学习学习笔记:神经网络的优化(二)
- ThiNet算法详解
- 双指数边缘平滑滤波器用于磨皮算法的尝试。
- 双指数边缘平滑滤波器用于磨皮算法的尝试
- Java的输入输出
- 数据院科技大数据研究中心发布半世纪全球顶级学者迁移图(附视频、亿级学术信息)
- 报名 | IBM苏中:从深蓝到AlphaGo,从大数据到认知商业
- 新智能安防:人脸识别技术与应用系统 | 清华大学王生进
- python
- 阅读笔记:一种用于深度神经网络压缩的滤波器级别的剪枝算法ThiNet
- C++中的this指针
- 将PC端的文件复制到Wince 7的设备中报设备中断的问题
- Linux网络基础-七层模型详解
- 第一条博客
- selenium(java)之RemoteWebDriver的基本使用
- Android逆向之破解某僵尸游戏
- iPhoneX 适配
- 沪深股票历史财报数据查询系统网络共享版