剪枝+再训练:稀疏化DeepID2
来源:互联网 发布:java final void 编辑:程序博客网 时间:2024/05/17 01:17
- 压缩的核心剪枝再训练
- 算法流程
- 剪枝准则
- 实验分析
本次介绍的依然是压缩网络的方法,不过有了具体的应用场景:压缩的模型是DeepID2+。方法来源于《2015 arxiv: Sparsifying Neural Network Connections for Face Recognition》,文章是王晓刚、汤晓鸥团队的,所以结果依旧很漂亮,但谁又能保证没点trick呢。T_T
压缩的核心:剪枝+再训练
算法流程
整个算法的流程很简单:从网络的最后一层开始,根据一定规则对该层进行剪枝,然后retrain网络,循环上述过程。
剪枝的实现方法,就是为权重施加一个相同大小的Mask, Mask中只有激活的地方才是1,其余全0.
算法流程图如下:
剪枝准则
剪枝的目标就是只保留重要的权重。
全连接层剪枝
首先,对于如全连接和局部连接这些没有权值共享的层,我们可以很简单的计算神经元之间的相关性:
假设
其中
正相关和负相关同样重要,而且实验发现保留一些相关性较小的权重也会提高实验效果。
于是,作者首先将所有正相关的
卷积层剪枝
卷积层剪枝稍微复杂一点,因为存在权值共享。
设
最后,相关系数通过平均的方式计算:
实验分析
实验部分,主要是为了对比说明几处设置。
下面是在LFW人脸验证的实验,1/256表示稀疏度,整个实验都没有去碰卷积层,因为对于作者所用的VGG来说,全连接占据了90%的参数量。此外,压缩之后性能居然有提升,简直奇迹。
还记得之前选择权重的时候,是排序之后选择了一大部分相关性较高的加上一小部分相关性较小的。下图将其同另外两种策略进行了对比,一种是
结论就是:权重的幅值并不能很好地指示权重的重要性。
转自:http://blog.csdn.net/shuzfan/article/details/51700584
- 剪枝+再训练:稀疏化DeepID2
- 剪枝+再训练:稀疏化DeepID2
- deepID2
- poj_1190_剪枝训练
- poj 3725 稀疏矩阵剪枝快速幂
- DeepID1 DeepID2 DeepID2+ DeepID3
- Understanding DeepID2
- UFLDL矢量化编程练习:用MNIST数据集的稀疏自编码器训练实现
- DeepID2文章加深理解
- DeepID2 face recognition
- DeepID2+ face recognition
- DeepID2文章加深理解
- UFLDL稀疏自编码器练习第一步:生成训练集
- 再调侃稀疏重建
- 小波稀疏化
- 稀疏
- 剪枝
- 稀疏自编码器 栈式自编码器 深度学习预训练
- window系统查看端口被哪个进程占用了
- 搬家通知博文
- 面向对象
- [心得]CentOS优雅后台运行的几种姿势
- 17、责任链模式(Chain of Responsibility)
- 剪枝+再训练:稀疏化DeepID2
- imm.isActive()一直返回true
- Unity高频面试题总结
- Hive 基础之:分区、桶、Sort Merge Bucket Join
- 腾讯云点播步骤
- sql server游标使用示例
- MySQL Workbench “Error Code: 1175” 的解决方法
- 导入项目jdk不匹配的问题
- 面向对象设计原则 面向对象设计原则概述