当前位置:   article > 正文

剪枝算法:有效神经网络的权值和连接学习_权重剪枝算法csdn

权重剪枝算法csdn

本文出自论文 Learning both Weights and Connections for Efficient Neural Networks ,主要介绍了剪枝算法的使用以及其压缩效果的性能影响。


神经网络是计算密集型和内存密集型的,使得它们在嵌入式系统上部署很困难。另外,卷积网络在训练开始前其体系架构被固定,导致其训练过程不能改进它的体系架构。为了解决这些限制,本文采用了一种方法来减少神经网络所要求的内存和计算资源,这种方法是只学习重要连接而不影响精度。该方法使用三个步骤来减去冗余连接,一是训练网络来学习重要的连接,二是减去不重要的连接,三是重新训练该网络来微调剩余连接的权值。在ImageNet数据集上,我们的方法可以减少AlexNet网络的参数为1/9,从61,000,000到6,700,000.
剪枝三步骤



一、简介

  1. 当这些大的神经网络变得很强大后,它们的规模大小消耗了相当大的存储、内存带宽和计算资源。剪枝网络的目的是减少运行大型网络所要求的能量,从而使它们能够在移动设备上实时运行。利用剪枝使模型大小减少,也有利于包含DNNs的移动应用程序存储和传输。
  2. 为了实现该目标,本文提出了一种方法以某种方式来修剪网络连接,同时保证原来的精度不变。在一个初始训练阶段结束后,我们移除了所有的权值低于设定阈值的连接。这种剪枝将一个稠密的全连接层转换成一个稀疏层。第一个阶段为:学习网络的拓扑结构,学习重要的连接并移除不重要的连接。第二个阶段为:重新训练稀疏网络,从而使剩余的连接仍可以补偿已经被移除的连接。剪枝和重训练阶段可以被迭代式重复进行,来进一步减少网络的复杂性。
  3. 这种训练阶段除了权值之外还学习到了网络的连接性,本文将这种行为类比为哺乳动物的大脑。在一个婴儿发展期的前几个月内,突触被建立起来,然后逐渐剪去很少使用的连接,使之成为典型的成人形式。
    剪枝前后的神经元以及突触

二、相关工作

  1. 通过使用全局平均池化来代替全连接层可以减少神经网络的参数。GoogleNet使用这种方法获得最先进的结果,而迁移学习重用ImageNet数据集上学习到的特征,并仅通过对全连接层微调来将它们应用于新任务上,使用这种方法更困难,因此在网络上添加了一个线性层来支持迁移学习。
  2. 网络剪枝已经被用来减少网络复杂性和过拟合。一个较早的剪枝方法是基于权重衰减的。基于损失函数的Hessian矩阵修剪网络来减少连接数量,这种剪枝方法要比例如权重衰减的剪枝算法更加精确,但是二阶求导需要额外的计算量。
  3. HashedNets通过使用一个hash函数随机将连接权值分散到hash桶中来减少模型大小,从而使相同hash桶中的所有连接可以共享一个简单的参数值。这种技术可从剪枝中获益,稀疏性将最小化hash冲突,使得特征哈希更有效。HashNets和剪枝算法一起使用可能给出更好的参数节省。

三、剪枝算法

  1. Regularization(正则化):选择正确的正则化会影响剪枝和重训练的性能。L1正则化对非零参数进行惩罚,使更多非零参数接近于零。这在剪枝之后和重训练前给出了更好的准确率。然而,剩余的连接并没有使用L2正则化那么好,导致了重训练之后的较低准确率。总体而言,L2正则化给出了最好的剪枝结果。
  2. Dropout Ratio Adjustment(Dropout比例调整):Dropout被广泛用于防止过拟合,也应用于重训练。在重训练时,dropout比例必须被调整以适应模型容量的变化。在dropout阶段,每个参数都有可能在训练阶段被丢弃,但在推理阶段会回来。在剪枝阶段,参数在剪枝后会被永远丢弃,在训练和推理阶段都不会再回来。当参数变稀疏时,分类器将选择最有信息价值的预测器,有着更少的预测变化,从而会减少过拟合。当剪枝减少模型容量时,重训练的dropout比例应当要更小。我们将 C i o C_{io}
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/744424
推荐阅读
相关标签
  

闽ICP备14008679号