Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Importance Estimation for Neural Network Pruning #16

Open
nocotan opened this issue Feb 16, 2021 · 0 comments
Open

Importance Estimation for Neural Network Pruning #16

nocotan opened this issue Feb 16, 2021 · 0 comments
Assignees

Comments

@nocotan
Copy link
Member

nocotan commented Feb 16, 2021

一言でいうと

Pruningの達成のために,各ニューロン/フィルターの最終的な出力への貢献度合いを推定する手法を提案.

論文リンク

https://openaccess.thecvf.com/content_CVPR_2019/papers/Molchanov_Importance_Estimation_for_Neural_Network_Pruning_CVPR_2019_paper.pdf

著者/所属機関

Pavlo Molchanov, Arun Mallya, Stephen Tyree, Iuri Frosio, Jan Kautz
NVIDIA

投稿日付(yyyy/MM/dd)

2019/06/25

概要

Pruningの達成のために,各ニューロン/フィルターの最終的な出力への貢献度合いを推定する手法を提案.
提案手法は一次および二次のテイラー展開によるフィルターの重要度の近似に基づく.

Screen Shot 2021-02-16 at 13 03 55

新規性・差分

  • 学習時に計算時間的オーバーヘッドの少ない方法によるニューロン/フィルターの貢献度合いの推定
  • 一次および二次のテイラー展開によるフィルターの重要度の近似によって高品質なPruningを達成.さらに貢献度合いの計量として二乗誤差を採用することが有益であることも発見
  • CIFAR-10およびImageNetの実験から提案手法の有用性を示す.実験ではスキップコネクションを含む構造のネットワークにも適用可能なことを示す

手法

Pruningを考慮した学習の手続きは以下のようにL0正則化付き損失関数最小化として定式化される:

Screen Shot 2021-02-16 at 13 08 58

パラメータの重要度は,そのパラメータを削除したときにエラーがどの程度増加するかで定量化できる.

Screen Shot 2021-02-16 at 13 12 04

これをその都度計算するのは,パラメータを削除するパターン数Mだけネットワークを学習および評価する必要があり,計算コストが高い.
この問題は,二次のテイラー展開によってWの近傍で式(3)を近似することで回避できる.

Screen Shot 2021-02-16 at 13 14 42

または一次のテイラー展開によるより簡便な近似も考えられる:

Screen Shot 2021-02-16 at 13 16 21

勾配gは一般の学習における誤差逆伝播で得られるため,式(5)の計算は非常に容易.

結果

Screen Shot 2021-02-16 at 13 18 28

Screen Shot 2021-02-16 at 13 18 42

Screen Shot 2021-02-16 at 13 19 03

Screen Shot 2021-02-16 at 13 19 19

コメント

@nocotan nocotan self-assigned this Feb 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant