Advertisement

网络模型剪枝-论文阅读《Learning both Weights and Connections for Efficient Neural Networks》

阅读量:

该文是2015年NIPS上一篇经典的剪枝论文...由韩松等专家撰写。因发布年代较早,在此大致梳理其关键点以期为模型剪枝提供基本思路。

Introduction

文章首先阐述了LeNet、AlexNet和VGG等当时具有代表性的神经网络架构在参数规模上的显著增长以及随之而来的存储需求上升;接着从能耗角度探讨了这些模型的实际运行能耗情况。由此提出了本文的核心目标:通过剪枝较大规模的网络模型来降低能耗并实现移动端的实时运行能力。

该文所提出的剪枝策略为:首先,在模型经过完整训练后执行第一步操作;其次,在稠密连接型网络进行修剪以获得稀疏连接型网络的过程;最后通过再训练所得网络来尽量减少精度损失。其中,在第二步与第三步之间可交替进行多次操作从而获得最佳模型效果。具体操作如图所示:

在这里插入图片描述

该策略能在剪枝后还能保持原有的精度几乎不损失。

Learning Connections in Addition to Weights

这里文章分析了一些(重)训练中使用的方法对重训练的影响。

正则化(Regularization)

已有研究表明,在不进行模型重训练的情况下,相比于未重训的L2正则化方法,在不进行模型重训练的情况下,L1正则化的应用确实能显著降低网络的参数密度,并且导致了与未重训的L2正则化相比,网络精度损失较小(如图所示,在剪枝比例逐渐增大的情况下,蓝色线所对应的精度损失低于紫色线)。然而,经过模型重训练后,L2正则化的性能优于L1正则化方法(如图中绿色曲线对黄色曲线的比较)。通过反复模型优化过程,最终优化后的模型采用L2正则化的配置能够实现更低的分类误差率。

作者开始采用L1进行初始训练;随后采用L2进行进一步优化;但结果不如完全依赖于L2正则化。

值得注意的是,在采用L2剪枝比例介于60%至80%时(如图中的绿色线条),网络精度得到了一定程度的提升。这可能是由于剪枝操作减少了网络结构中的冗余连接,并可能降低了模型过度拟合的风险。

在这里插入图片描述

Dropout比例调整

在重训练过程中,在模型需要适应新容量的情况下, dropout比例需要进行相应调整。这是因为网络连接数C与神经元数量N之间呈二次函数关系(如图1所示),所以新的dropout比率Dr对应于原始设置下的D0(如图2所示)。

在这里插入图片描述

剪枝与参数的协作

在重 training 过程中,在这种情况下最好是从旧 model 的已 trained 参数开始而不是重新初始化这些参数;同样地,在执行剪除 convolutional layer 时,请固定 full connection layer 进行相关的 training ,而当执行剪除 full connection layer 时,请固定 convolutional layer 进行相应的 training 。

神经元剪枝

在完成连接剪裁之后,在某些情况下,如果有神经元不具备任何输入链接或输出链接,则这些神经元是可以被裁剪掉的。

实验

接下来是实验部分,这里就放几张表格。

在这里插入图片描述

可以看出, 该种方法仅微小精度下降的情况下, 能对多数通用简单模型实现9至13倍的压缩, 其中VGG类模型可被压缩至13倍以上. 与现有对比也能看出其优势所在

在这里插入图片描述

以上就是本文的主要内容。

全部评论 (0)

还没有任何评论哟~