渐次全局网络裁剪 (总结7)

网络裁剪通常包括筛选、裁剪和微调三步,通过评估神经元的贡献来决定裁剪对象。本文详细探讨了神经元贡献评价、数据相关和无关的评价准则,提出渐次全局网络裁剪框架,解决层间神经元贡献偏差问题,以实现更高效的网络结构优化。该方法在Keras中实现并应用于多个神经网络。
摘要由CSDN通过智能技术生成

1.1 网络裁剪的一般过程

        网络裁剪通常遵循“筛选-裁剪-微调”三步。 “筛选”指的是根据一定的准则,选择出待裁剪的目标,通常被筛选出的裁减目标是对网络性能影响较小的对象,或者是冗余的对象。筛选出待裁剪对象后,进行第二步裁剪。我们通过把与神经元相连的所有参数置为0,或者将滤波器的所有参数置为0来进行裁剪。此时,在物理上神经元仍然存在于网络之中,但在信号处理的流程里,参数被置0的神经元已经不能对网络的运算做出任何贡献,在信号处理流程中被裁剪出了网络。一般而言,进行网络裁减后,网络的性能会退化。性能退化的主要原因是网络裁剪导致网络参数脱出了之前的局部最优点,因此需要进行微调

        如果网络的裁剪是通过参数置0的方法完成的,那么在微调的时候需要注意阻止这些参数更新如果网络的裁剪是物理上将目标脱出网络,则可以直接进行微调。将网络提升到原有性能所需要的微调次数是衡量网络裁剪效果的重要指标之一。

1.2 神经元贡献评价

        在这里我们将卷积层中的一个滤波器或全连接层中的一个计算节点统称为神经元。在神经元级的网络裁剪中,神经元的重要性评价,或称为神经元贡献评价是网络裁剪的核心问题。经元贡献评价就是为网络中的每一个神经元打一个分数,该贡献分反应了当前神经元对网络性能的影响情况。通常,对网络性能贡献度较小的神经元会被最先剪除。一种简单的评价神经元贡献的方法是,观察剪除该神经元后网络在验证集上的性能变化,并以此作为神经元的得分。这种评价方式相对而言最为有效,但深度神经网络通常含有成千上万个神经元,而神经元的贡献分在每一轮裁剪和微调后又需要重新评估,因此这种打分方式是极为低效的。

1.3 数据相关的评价准则

        我们将文献[75]对神经连接的贡献评价推广到神经元上。由于该类评价准则的神经元分数贡献需要借助训练集,因此我们称之为为数据相关的评价准则。首先,我们规定网络层对数据的响应。我们记Y l 为卷积层对单个输入样本的输出,则Y l ∈ R m×n×c ,该层卷积层对输入样本的响应定义为样本在该层的输出特征沿通道维的平均。这种定义方式实际上取的是滤波器对该样本响应的强度,等价于在卷积层后的全局平均值池化。对全连接网络而言,网络的计算节点对样本的响应是单个实数值,因此全连阶层的输出可以直接作为网络对样本的响应。不含有参数的网络层不是网络裁剪的对象,因此不必规定。设第l层网络对第i个训练样本的响应为R i l ,训练集样本数为N ,则我们可以利用神经元对训练集响应的平均值作为神经元贡献准则,定义如下:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值