[NIPS 1989] Optimal brain damage (OBD)

Contents

  • Introduction
  • Method
    • Optimal Brain Damage
    • Computing the second derivatives
    • The Recipe
  • References

Introduction

  • 作者设计了一种模型剪枝策略,能够在尽量不影响模型精度的情况下丢弃模型中不重要的权重

Method

Optimal Brain Damage

  • 衡量权重重要性直观的方法就是删除该权重,然后观察损失的变化,变化越大则该权重越重要,但每次删除一个权重然后再重新计算损失代价太大了。一个替代方案是构建误差函数的 local model,用于预测改变权重向量时损失的变化量
  • 具体来说,就是将损失函数 E E E 用泰勒公式展开
    在这里插入图片描述在这里插入图片描述其中, δ U \delta U δU 为权重向量的 perturbation, δ u i ∈ δ U \delta u_i\in\delta U δuiδU g i ∈ G g_i\in G giG G G G 为 gradient of E E E with respect to U U U h i j ∈ H h_{ij}\in H hijH H H H 为 Hessian matrix of E E E with respect to U U U. 我们的目标就是找到删除后使得 E E E 增加最少的一组权重
  • 但上式其实是很难解的,因为 H H H 通常特别大,很难求解,为此作者引入了一些假设来简化问题:(1) “diagonal” approximation. 删除一组权重给 δ E \delta E δE 带来的影响等于单独删除每个权重给 δ E \delta E δE 带来的影响之和,因此等式右侧第三项的交叉项可以忽略;(2) “extremal” approximation. 假设模型剪枝之前训练已经收敛,因此模型参数向量处在 E E E 的一个局部极小点上,这样等式右侧第一项也可以忽略,此外,位于极小点也意味着 h i i h_{ii} hii 非负,参数向量的任何扰动都会使得 E E E 增加或保持不变;(3) “quadratic” approximation. 假设损失函数是近似二次函数 (nearly quadratic),因此等式右侧最后一项也可以忽略。至此上式可以简化为
    在这里插入图片描述也就是说,对于每个权重,我们只需要计算 h k k u k 2 / 2 h_{kk}u_k^2/2 hkkuk2/2 作为参数的 saliency,排序后选择 low-saliency parameters 进行剪枝即可,剪枝就是将权重值设为 0

Computing the second derivatives

  • 现在还剩下一个问题,就是如何高效计算出各个权重的二阶导 h k k h_{kk} hkk. 其实这个过程和反向传播计算梯度是类似的,只不过推导上要更加麻烦,这里就省略了

The Recipe

[NIPS 1989] Optimal brain damage (OBD)_第1张图片

References

  • LeCun, Yann, John Denker, and Sara Solla. “Optimal brain damage.” Advances in neural information processing systems 2 (1989).

你可能感兴趣的:(模型部署,NIPS,1989)