Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Neural Rejuvenation: Improving Deep Network Training by Enhancing Computational Resource Utilization

961 views

Published on

第53回 コンピュータビジョン勉強会@関東 CVPR2019読み会(前編) 発表資料

Published in: Technology
  • Be the first to comment

Neural Rejuvenation: Improving Deep Network Training by Enhancing Computational Resource Utilization

  1. 1. Neural Rejuvenation: Improving Deep Network Training by Enhancing Computational Resource Utilization 第53回 コンピュータビジョン勉強会@関東 2019/6/30 紹介者:進矢陽介 ※本発表は個人として行うものであり 所属組織を代表するものではありません
  2. 2. はじめに • DNNはリソースを十分活用できていない • Neural Rejuvenationは、DNNのリソース利用率を向上させる、 パラメータ・アーキテクチャの最適化手法 • 宝くじ券仮説のアナロジーで言うと、 当選券は残して、ハズレ券だけ払い戻してもらい、 そのお金で宝くじ券を買い足すことで、 リソース利用率を向上させる • 現実の操作が分かるよう、 pruningの関連研究を先に紹介します
  3. 3. pruningの関連研究 ―Neural Rejuvenationに至る道―
  4. 4. LWC (Learning both Weights and Connections) [Song Han+, NIPS2015] • DNNは無駄にでかいので小さくしたい • 絶対値が小さい重み(シナプス)をpruning • あるニューロンの 入力シナプス全て or 出力シナプス全て が 0 なら そのニューロンもpruning可能 ・pruning後の構造が不規則 - 専用のハードウェア・ライブラリが無いと効果が薄い - conv層の削減に向かない
  5. 5. Pruning Filters for Efficient ConvNets [Hao Li+, ICLR2017] ・pruningに対する各層のsensitivityを分析し、 pruning比率を決める必要がある [Huizi Mao+, CVPRW2017] • フィルタのL1ノルム(フィルタ内の重みの絶対値の総和)σ ℱ𝑖,𝑗 が小さいフィルタをpruning 𝑛𝑖 : 入力特徴マップチャンネル数 𝑛𝑖+1 : 出力特徴マップチャンネル数(=フィルタ数) フィルタ(kernel matrixの青いカーネル4枚)を 削れれば出力特徴マップも削れる pruningの粒度(の一部)
  6. 6. Network Slimming [Zhuang Liu+, ICCV2017] ・特定のリソースを狙って小さくできない ・小さくする方向だけ - リソースが不足している部分を大きくできない - 精度向上が主目的ではない • Batch Normalization の scaling factor 𝛾 が小さいチャンネルをpruning • L1正則化で 𝛾 がスパースになるよう仕向ける 𝛾 罰則項
  7. 7. MorphNet FLOP/Size regularizer 誤ったら許さない というお気持ち [Ariel Gordon+, CVPR2018] FLOPs(演算回数)増やすんじゃねぇぞ というお気持ちを追加すると・・・ パラメータ数増やすんじゃねぇぞ というお気持ちを追加すると・・・ • 何を小さくしたいかに応じて罰則項を変更
  8. 8. MorphNet shrink-and-expand(収縮拡張法) 収縮 Network Slimming 拡張 width multiplier 図は [Ariel Gordon+, CVPR2018] を元に作成 ・チャンネル数を決定したネットワークをスクラッチで学習し直す必要あり - 学習の効率が悪い - 拡張時にパラメータをどう引き継ぐべきか不明 • 収縮・拡張によりチャンネル数を自動決定
  9. 9. DSD: Dense-Sparse-Dense Training [Song Han+, ICLR2017] ・ガチャっぽくない ・ランダム性を活用したキャパシティ増加を行っていない • 一度pruningした重みを 0 初期化で復活させる
  10. 10. RandomOut [Joseph Paul Cohen+, ICLRW2016] • 重要でないフィルタをランダム初期化し直し、訓練継続 探索するフィルタを増やし、ネットワークサイズを大きくすることなく精度を向上させる
  11. 11. MorphNet + RandomOut 収縮 Network Slimming 拡張 width multiplier 図は [Ariel Gordon+, CVPR2018] を元に作成 これが Neural Rejuvenation の肝 • MorphNetの拡張部分の重みにランダム初期化を使用し、訓練を継続
  12. 12. Neural Rejuvenation
  13. 13. 書誌情報 Neural Rejuvenation: Improving Deep Network Training by Enhancing Computational Resource Utilization • 著者: Siyuan Qiao, Zhe Lin, Jianming Zhang, Alan L. Yuille • 論文: http://openaccess.thecvf.com/content_CVPR_2019/papers/Qiao_Neural_Rejuvenation_Improving_Deep_Network_ Training_by_Enhancing_Computational_Resource_CVPR_2019_paper.pdf (arXiv v1から微修正あり) https://arxiv.org/abs/1812.00481 • コード: https://github.com/joe-siyuan-qiao/NeuralRejuvenation-CVPR19 • オーラル発表動画: https://www.youtube.com/watch?v=KHEknuuCz0E&t=1862s
  14. 14. 概要 • 多くのDNNは over-parameterize されており、リソースを十分活用できていない • 訓練時間・評価時間が無駄 • モデルのポテンシャルが制限されている • 新最適化手法 Neural Rejuvenation でリソース利用率を向上させる (1) リソース利用率監視 死亡ニューロン(無駄なニューロン)を検出し、リソース利用率を計算 (2) 死亡ニューロン若返り 再配置・再初期化で死亡ニューロンを若返らせる (3) 生存ニューロン・若返りニューロン混在時の訓練スキーム • 標準的なoptimizerから置き換えるだけで、 リソース使用量(パラメータ数や演算回数)を維持しながら、 NNの性能を大幅に向上可能
  15. 15. 対象とする最適化問題 • アーキテクチャ , パラメータ の両方を最適化 • リソース利用率 𝑟 = 𝑐( ) ( ): 出力への影響が小さい死亡ニューロンを除去した場合の計算コスト アーキテクチャ を使用するコスト (例:パラメータ数、FLOPs) ℒ : 損失関数 : アーキテクチャ , パラメータ のNN 許容するリソース使用量の最大値
  16. 16. 先行研究と比較した利点 MorphNetはネットワーク全体をスクラッチで訓練し直す Neural Rejuvenationは、 • 死亡ニューロンのみ再初期化し、訓練を継続 (途中まで訓練されたフィルタを再利用) • 1つのモデルを1回だけ訓練すれば良い • より高精度
  17. 17. 手法
  18. 18. アルゴリズム 備考:Step 5のneural rejuvenation flagは所定の周期(例:1 epoch)でonになる。 つまり、ほとんどのiterationでは通常のSGDと変わらない。 ← SGD リソース利用率を監視 リソース利用率が閾値より小さいと 死亡ニューロンを若返らせる (再初期化・再配置)
  19. 19. (1) リソース利用率監視 リソース消費量計算 ↑ 入力特徴マップの 生存チャンネル数 ↑ カーネルサイズ ↑ 出力特徴マップの 解像度 https://www.slideshare.net/ren4yu/ss-145689425 パラメータ数: 演算回数: ↑ 出力特徴マップの 生存チャンネル数
  20. 20. (1) リソース利用率監視 生死判定、スパース化 • 基本的にNetwork Slimming同様 • 全conv層後にBN層(or 学習可のアフィン変換層)を仮定 • BNの 𝛾 で生死(利用されているか余分か)を判定 • 𝛾 < 0.01 × 𝛾max なら死亡ニューロン(死亡チャンネル) 𝛾max: 同じ層の 𝛾 の最大値 実験的に除去しても影響小 • 学習時にL1正則化を加えスパース化しておく 𝜆: 罰則係数(正則化係数) 𝒯: アーキテクチャ内の 𝛾 の集合 Batch Normalization
  21. 21. (1) リソース利用率監視 適応的罰則係数 適切な 𝜆 の選択が重要 • 𝜆 = 0 : 非スパース。通常の訓練 • 𝜆大 : スパース。大きすぎると元のロスからかけ離れる → 利用率に合わせて動的に決定 利用率の減少が遅ければ、罰則係数を上げる 利点 (1) タスク・アーキテクチャに合わせて自動で最適化 人手で試行錯誤して選ぶ必要が無い (Network SlimmingやMorphNetの欠点の1つを解消) (2) Step 8突入にかかるiterationに上限 λが十分大きくなれば、利用率を最低 𝛥𝑟 ずつ削れる if (𝛥𝑡 iteration前の利用率) − (現在の利用率) < 𝛥𝑟 : 𝜆 += Δ𝜆 𝛥𝑡, 𝛥𝑟, Δ𝜆 はハイパラ
  22. 22. • 節約したリソースの再配置 MorphNet同様、各層の出力チャンネル数を 𝛼 倍( 𝑤𝑖 ′′ = 𝛼 ⋅ 𝑤𝑖 ′ ) あまり削れなかった層(生存ニューロンが多い層)はもっとパラメータが必要、という仮定 • パラメータ再初期化 • Neural rescaling L1正則化で 𝒮 の 𝛾 も小さくなり、勾配法での訓練に害 𝛾 の絶対値を初期値レベルに戻し、その分パラメータを小さくする (2) 死亡ニューロン若返り ・𝒮 (生存ニューロン)と ℛ (若返りニューロン)が混在 ・再初期化で 𝒮 の出力が変わらないようにする 𝑊𝒮→𝒮: そのまま 𝑊ℛ→ℛ: ランダム初期化 𝑊𝒮→ℛ: 0 𝑊ℛ→𝒮: 0 𝒮 𝒮 ℛ ℛ “Twemoji” by Twitter, Inc and other contributors /CC-BY 4.0
  23. 23. (3) 𝒮, ℛ 混在時の訓練 キャパ十分の場合(例:CIFAR) • 𝒮 だけでデータによくフィッティングできるなら、 ℛ が即死したり冗長な特徴を出力したりするおそれ • 𝒮, ℛ 間の結合を除去し、ℛ が別の特徴を学習するよう仕向ける 𝒮 𝒮 ℛ ℛ
  24. 24. (3) 𝒮, ℛ 混在時の訓練 キャパ不足の場合(例:ImageNet) • SORTをベースとしたcross attentionでキャパシティ増加 パラメータ数は増えず、演算回数もあまり増えない • attentionの先行研究との差異 ・チャンネルの1グループで他のチャンネル用のアテンションを生成 ・キャパシティ増加のために使用 SORT: Second-Order Response Transform [Yan Wang+, ICCV2017] 二次の項を追加し非線形性・表現力を向上 ⊙ : 要素積 𝜎 : シグモイド関数
  25. 25. 実験
  26. 26. パラメータ利用率の推移 条件 • ImageNet • 実験単純化のためrejuvenationは1回のみ • 10~20エポックで利用率0.5になるため、訓練時間増加は20%以下 小さなモデルより大きなモデルの方が 死亡ニューロンを見つけるのが簡単 大きなモデルほどリソース浪費リスク大 ResNet-101のパラメータを半分節約するには 10エポックで十分
  27. 27. Ablation Study ベースライン 条件 • パラメータ数維持 • ImageNet Error • simplified VGG-19 (ImageNetのフィッティングにキャパ不十分) • 画像解像度: 128x128 • 𝑇𝑟 = 0.25 ベースライン+cross attention cross-connection無し cross-connection neural rescaling cross attention 再配置無し NR-CA-BR + DSD 提案手法はいいぞ • cross-connectionあった方が良い • cross attentionだと更に良い • neural rescalingした方が良い • 重みを引き継いだ方が良い • 再配置した方が良い • DSDを併用*1すると更に良い NRで見つかったアーキテクチャのスクラッチ学習 提案手法全部のせ (cross attention + neural rescaling) *1: 査読者に言われて追加したのだろうが、実験よりRelated Workの方を修正して欲しい
  28. 28. ImageNetでの精度向上 リソースを無駄にしやすい大きなモデルほどNeural Rejuvenationの効果大 パラメータ数制約 FLOPs制約 NR Params, NR FLOPsのうち高精度な方の Top-1 errorのベースラインからの相対変化率 備考:DenseNet-121のNR Paramsの結果はあまり当てにならない Top1 error: 24.50/25.32 – 1 = -3.24% Params: 8.22/7.92-1 = 3.79% FLOPs: 3.13/2.83-1 = 10.60%
  29. 29. MorphNetとの比較 MorphNet ベースライン MorphNet NR ベースライン NR MorphNetに圧勝 条件 • FLOPs維持 • ImageNet Top-1 error • 画像解像度: 128x128 備考: ベースラインが異なるため分かりにくいが、ベースラインの時点で勝っているところからMorphNet以上のエラー低減を実現している。 MorphNetの訓練方法が闇( http://openaccess.thecvf.com/content_cvpr_2018/Supplemental/2508-supp.pdf )なので、 ベースラインを揃えろとも言いづらい。
  30. 30. モデル圧縮 若返りを繰り返すことで、 パラメータ数を維持しながら精度向上 条件 • パラメータ数半減 0.25倍にして0.5倍まで戻す • CIFAR • cross-connection無し Network Slimmingに圧勝
  31. 31. まとめ Neural Rejuvenation: 訓練中に死亡ニューロンを再配置・再初期化し、 DNNのリソース利用率を向上させる、 アーキテクチャ・パラメータの最適化手法 所感 • pruning、NAS、再初期化の利点をうまく組み合わせている • 実用性が更に上がると良い • 適応的罰則係数用にハイパラが実質2つ増加 公開コード中のCIFARの設定では罰則係数決め打ち • conv層直後のBatch Normalization層を仮定 ネットワーク設計に制約

×