论文笔记_Optimal Brain Surgeon and General Network Prunng

本文详细介绍了Hassibi和Stork提出的OBS方法,这是一种改进的神经网络权重剪枝技术,旨在通过计算海森矩阵的逆来精确确定应删除的权重,从而在保持性能的同时减少网络复杂性。相比于基于数值大小的剪枝和OBD方法,OBS在实验中表现出更好的效果,能够删除更多权重而不牺牲泛化能力。通过对海森矩阵的递归计算,OBS避免了剪枝错误并优化了其他权重。实验表明,OBS在多种网络结构上都优于其他剪枝方法。
摘要由CSDN通过智能技术生成

本文是Hassibi 和Stork 等人1993年在LeCun的OBD方法基础上提出的,名为OBS。

摘要

  为了进一步改善泛化能力、简化神经网络、减少硬件和存储需求、加快训练速度、或者是规则提取,我们研究了所有使用误差函数的二阶导数去进行剪枝的相关信息。我们提出了OBS方法,相比较基于数值大小剪枝和OBD方法剪枝(这两种方法会剪掉错误的参数),我们的方法表现更佳。在同样的训练集和损失的情况下,OBS方法能比其他方法剪掉更多的权重参数,因此可以在相同的测试集上有更好的泛化能力。OBS方法的关键之处在于递归的计算海森矩阵的逆矩阵 H − 1 H^{-1} H1。实验表明,OBS可以分别将三个在MONK问题上的基准神经网络(使用权重衰减)减少76%,62%,90%的参数。在一个XNOR网络上,使用OBS,OBD, 基于数值大小剪枝这三种方法,只有OBS在所有情况下都剪掉了正确的权重参数。最后,Sejnowski和Rosenberg提出的NETtalk网络有1800个权重,我们使用OBS方法在性能保持不变的情况下,将权重减少到1560个。

1.介绍

  在机器学习和模式识别中,一个重要的问题就是最小化系统复杂度(description length, VC维等),在神经网络中,正则化问题经常扮演着最小化连接数量的角色,如果不使用正则化的话,将会导致网络过拟合,即泛化能力很差。相反的,如果网络中的权重太少,网络就可能学习不到数据的特征。
  如果我们训练的网络有太多的权重,那么问题来了:我们应该删除哪些权重?应该怎样调整剩下的权重使得网络达到最佳的性能?应该怎么样快速高效的完成这样的网络剪枝过程?
  一个方法是基于权重数量级的剪枝方法(mag),该方法会将较小的权重删除。这个方法的思想很简单,但是并不完全合理,有时候会将错误的权重删除–因为有时候数值较小的权重也是必要的。OBD方法使用了最小化训练误差增加的标准方法,为了计算的简便,OBD假设海森矩阵是对角线矩阵,但事实上,在我们研究的所有问题中,海森矩阵都不是对角线矩阵,所以OBD方法会删除掉错误的权重。我们的OBS方法是基于LeCun的OBD方法,但是并不对海森矩阵做任何限制,因此OBS总是消除正确的权重参数,而且,和其他方法不同,OBS在剪枝掉一个权重之后不需要重训练。

2.Optimal Brain Surgeon

  和LeCun的方法一样,在进行剪枝之前,我们需要一个训练至误差达到局部极小的神经网络。误差函数关于权重w的导数可以用泰勒级数表示为:
∂ E = ( ∂ E ∂ w ) T ∗ δ w + 1 2 δ w T ∗ H ∗ δ w + O ( ∣ ∣ δ w ∣ ∣ 3 ) ( 1 ) \partial E =(\frac {\partial E}{\partial w})^T * \delta w + \frac{1}{2} \delta w^T*H*\delta w + O(||\delta w||^3) \qquad\quad(1) E=(wE)Tδw+21δwTHδw+O(δw3)1
其中 H = ∂ 2 E ∂ w 2 H = \frac{\partial ^2E}{\partial w^2} H=w22E是海森矩阵(包含所有的二阶导数),上标T表示向量的转置。对于一个误差达到局部极小的神经网络,(1)式的第一项为0,另外,我们也将第三项及更高次幂项忽略。然后,我们的目标是将其中的一个权重 w q w_q wq置零,从而使得(1)式的变化最小。消除 w q w_q wq可以表示为 δ w q + w q = 0 \delta w_q + w_q = 0 δwq+wq=0,或者更加通俗的表示为:
e q T ∗ δ w q + w q = 0 ( 2 ) e_q^T*\delta w_q + w_q = 0\qquad\quad(2) eqTδwq+wq=0(2)
其中 e q e_q eq是在权重空间中对应于 w q w_q wq的一个单位向量。于是我们的目标就变为了: min ⁡ q ( min ⁡ δ w ( 1 2 δ w T ∗ H ∗ δ w ) ∣ e q T ∗ δ w q + w q = 0 ) ( 3 ) \min\limits_{q} (\min\limits_{\delta w}(\frac{1}{2} \delta w^T*H*\delta w) \quad|\quad e_q^T*\delta w_q + w_q = 0)\qquad\quad(3) qminδwmin(21δwTHδw)eqTδwq+wq=0(3)
  为了解决公式(3),我们将公式(1)(2)转换为拉格朗日等式:
L = 1 2 δ w T ∗ H ∗ δ w + λ ( e q T ∗ δ w + w q ) ( 4 ) L = \frac{1}{2} \delta w^T*H*\delta w + \lambda(e_q^T*\delta w + w_q)\qquad\quad(4) L=21δwTHδw+λ(eqTδw+wq)(4)
其中 λ \lambda λ是拉格朗日乘子,对(3)式求导,并使用逆矩阵来找到最优的权重改变并且将最优改变对误差函数的影响是:
δ w = − w q [ H − 1 ] q q ∗ H − 1 ∗ e q ( 5 ) \delta w = -\frac{w_q}{[H^{-1}]_{qq}}*H^{-1}*e_q\qquad\quad(5) δw=[H1]qqwqH1eq(5)
L q = 1 2 w q 2 [ h − 1 ] q q ( 6 ) L_q = \frac{1}{2}\frac{w_q^2}{[h^{-1}]_{qq}} \qquad\quad(6) Lq=21[h1]qqwq2(6)
注意,这里的海森矩阵 H H H和逆矩阵 H − 1 H^{-1} H1都不要求是对角矩阵。进一步,我们的方法通过公式(5)重新计算了网络中所有权重的大小。我们将 L q L_q Lq叫做权重q的“贡献度“(当某个参数删除后,所引起的误差的增加)。该方法定义的贡献度比OBD方法更加通用,当然该方法也包含了OBD方法。
  于是我们就算法流程如下:

  1. 训练一个相当大的神经网络至收敛
  2. 计算海森矩阵的逆矩阵 H −
  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值