[論文レビュー] Channel Pruning for Accelerating Very Deep Neural Networks
この論文は、LASSOベースのチャネル選択と最小二乗再構成を用いた推論時のチャネルプルーニング手法を提案し、very deep CNNの計算を高速化する。VGG-16、ResNet、Xceptionアーキテクチャ全体で、精度の低下を最小限に抑えつつ大幅なスピードアップを達成する。
In this paper, we introduce a new channel pruning method to accelerate very deep convolutional neural networks.Given a trained CNN model, we propose an iterative two-step algorithm to effectively prune each layer, by a LASSO regression based channel selection and least square reconstruction. We further generalize this algorithm to multi-layer and multi-branch cases. Our method reduces the accumulated error and enhance the compatibility with various architectures. Our pruned VGG-16 achieves the state-of-the-art results by 5x speed-up along with only 0.3% increase of error. More importantly, our method is able to accelerate modern networks like ResNet, Xception and suffers only 1.4%, 1.0% accuracy loss under 2x speed-up respectively, which is significant. Code has been made publicly available.
研究の動機と目的
- 推論時に実用的なチャネルプルーニング手法を動機づけ、開発する。
- 入力特徴マップのチャネルを層ごとに削減しつつ再構成誤差を制御する。
- ResNetやXceptionなどのマルチブランチアーキテクチャとの互換性を確保する。
- ImageNetや他のデータセットを横断して、現代のネットワーク(VGG-16、ResNet-50、Xception-50)で有効性を示す。
- 補助的な効率化手法と組み合わせることで、より大きなスピードアップが得られることを示す。
提案手法
- チャネルプルーニングを、プルーニング後の入力チャネルの出力特徴マップの再構成誤差を最小化する問題として定式化する(Eq. 1)。
- NP困難なl0スパース性をl1ペナルティへ緩和し、LASSOによるチャネル選択の解決(Eq. 3)と最小二乗法による残りの出力の再構成(Eq. 4)を交互に行う。
- 累積誤差を考慮して層ごとに順次プルーニングを適用する(Eq. 5)。
- 共有パスの入力チャネルをサンプリング/プルーニングし、残差ブロックの最後の層に対処してY1+Y2を回復することで、マルチブランチネットワークへ拡張する(Sec. 3.3)。
- 残差接続をより適切に扱うためのマルチブランチ強化のようなバリアントを導入する(Sec. 3 最後の層および Sec. 3 最初の層)。
- プルーニング済みモデルを短時間ファインチューニングして精度を回復させる(報告によれば10-20エポック)ことと、スクラッチからのトレーニングベースラインと比較する。
実験結果
リサーチクエスチョン
- RQ1推論時に再学習なしでチャネルをプルーニングして精度を維持できるか。
- RQ2チャネル間の冗長性をどう活用して代表的なチャネルを選択し、出力を正確に再構成するか。
- RQ3単一ブランチネットワーク(VGG-16)とマルチブランチアーキテクチャ(ResNet、Xception)でどう性能が異なるか。
主な発見
- VGG-16で最大5xの加速を達成し、トップ5誤差は0.3%の増加にとどまる(テンソル分解と組み合わせた場合;4x超の速度アップは小さな精度損失とともに実現)。
- ResNet-50および Xception-50では、それぞれ約2xのスピードアップを達成し、精度損失はそれぞれ1.4%と1.0%(ファインチューニングなし/あり)。(.)
- 提案手法で2層ずつプルーニングする場合、単純なチャネル選択ベースの基準(最初のkチャネル、最大応答)に対して再構成誤差の面で一貫して上回る(単層プルーニングの結果)。
- 累積誤差を考慮した逐次的な層ごとのプルーニングは、特別なライブラリを使わなくても競争力のある絶対的なGPUスピードアップを示す(Table 3)。
- マルチブランチ強化はショートカット接続の取り扱いを改善することで残差ブロックにおけるプルーニング効果を高める(ResNet-50の4.0%トップ5精度向上)。
- チャネルプルーニングと空間・チャネル因数分解(3C)を組み合わせると、VGG-16で4xまたは5xのような最大の削減を達成でき、精度損失は比較的小さい。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。