在网络剪枝的论文中有时会提及泰勒展开这个操作,那为什么要展开呢?
在网络剪枝方法中,有一个环节是重要度评估。
当前大致分为:①基于幅值;②基于范数;③基于敏感度;④基于损失变化。
泰勒展开是基于敏感度评估的一个环节。
最早的基于敏感度的方法是图灵奖得主Yann Le Cun于1989年提出的《Optimal Brain Damage》方法(简称OBD)
该文章提出了一个假设:有可能从一个合理的网络中删除一半(或更多)的权重,最终得到的网络性能相同或更好。
文章还讨论了网络复杂度与泛化性能之间的关系,指出过多的权重可能导致泛化性能不佳,而过少的权重则可能无法准确表示数据。
OBD中的一个核心步骤就是利用“删除一个参数之后,目标函数的变化”来定义一个参数的贡献度。
我们要如何观察目标函数的变化呢?
最简单最直接的方式就是:对某一个参数添加一个小扰动,计算目标函数扰动前后发生的变化,对网络中的所有参数都要这么计算一遍,才能得到所有参数的贡献度。
如此看来,直接计算每一个参数删除引发的目标函数的变化是很困难的。
OBD提出:通过建立一个误差函数的局部模型,来分析预测扰动参数向量引起的影响。
首先:使用泰勒级数来近似目标函数 E E E,用一个扰动向量 δ U \delta U δU来改变目标函数,变为 δ E \delta E δE,此时的 δ E \delta E δE也称为显著性或敏感度 S i S_i Si。
δ E = ∑ i g i δ u i + 1 2 ∑ i h i i δ u i 2 + 1 2 ∑ i ≠ j h i j δ u i δ u j + O ( ∥ δ U ∥ 3 ) \delta E=\sum_{i} g_{i} \delta u_{i}+\frac{1}{2} \sum_{i} h_{i i} \delta u_{i}^{2}+\frac{1}{2} \sum_{i\neq j} h_{i j} \delta u_{i} \delta u_{j}+O\left(\|\delta U\|^{3}\right) δE=∑igiδui+21∑ihiiδui2+21∑i=jhijδuiδuj+O(∥δU∥3)
其中, δ u i \delta u_{i} δui为 δ U \delta U δU的分量, g i g_{i} gi为 E E E关于 U U U的梯度 G G G的分量, g i = δ E δ u i g_i = \frac{\delta E}{\delta u_i} gi=δuiδE。 h i j h_{ij} hij为Hessian的元素, h i j = ∂ 2 E ∂ u i ∂ u j h_{i j}=\frac{\partial^{2} E}{\partial u_{i} \partial u_{j}} hij=∂ui∂uj∂2E
现在的目标是,是找到一个参数集合,使得删除掉这个参数集合之后 E E E的变化最小。
上面那个公式有个问题,Hessian矩阵的计算量太大了,对于那个年代来说确实很大。
因此,OBD提出了三种近似方法来简化计算 δ E \delta E δE。
① 对角近似:文章假设非对角元素(即参数之间的相互作用)对总体显著性的影响较小,因此忽略了Hessian矩阵的非对角元素,只考虑对角线元素。这意味着每个权重的影响被假设为相互独立的。
② 极值近似:文章假设权重删除操作发生在训练收敛后,此时权重向量处于损失函数的局部最小点。在局部最小点,损失函数的一阶导数(梯度)为零,因此可以忽略泰勒展开中的一阶项。
③ 二次近似:文章进一步假设损失函数在权重的当前值附近近似为二次的,从而可以忽略泰勒展开中的高阶项。
此时 δ E \delta E δE的计算则简化为:
S i = δ E = 1 2 ∑ i h i i δ u i 2 S_i = \delta E=\frac{1}{2} \sum_{i} h_{i i} \delta u_{i}^{2} Si=δE=21∑ihiiδui2
此时就剩 h i i h_{ii} hii的计算了。
根据文章提出的Levenberg-Marquardt(列文伯格-马夸尔特)算法近似计算Hessian矩阵的对角线元素 h i i h_{ii} hii。
回到最初的问题,为什么要泰勒展开?
泰勒展开的目的是:利用一系列多项式来近似某个函数。
那为什么要近似某个函数呢?
因为这个函数在原始状态下过于复杂,难以完整地、精确地表示出来。既然表示出来都困难了,更别说计算出来了。
此时,泰勒级数是个很好的数学工具,泰勒级数展开允许我们使用局部信息(即当前参数值附近的导数信息)来近似整个函数。
例如:许多机器学习模型的目标函数是非线性的。泰勒级数的一阶展开(即线性近似)可以将非线性问题在局部线性化,就可以实现我们耳熟能详的基于梯度的反向传播算法。