Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Neural Rejuvenation

Neural Rejuvenation

第53回 コンピュータビジョン勉強会@関東 CVPR2019読み会(前編) 発表資料。
https://www.slideshare.net/YosukeShinya/neural-rejuvenation-improving-deep-network-training-by-enhancing-computational-resource-utilization より移行。

Yosuke Shinya

June 30, 2019
Tweet

More Decks by Yosuke Shinya

Other Decks in Technology

Transcript

  1. Neural Rejuvenation: Improving Deep Network Training by Enhancing Computational Resource

    Utilization 第53回 コンピュータビジョン勉強会@関東 2019/6/30 紹介者:進矢陽介 ※本発表は個人として行うものであり 所属組織を代表するものではありません
  2. LWC (Learning both Weights and Connections) [Song Han+, NIPS2015] •

    DNNは無駄にでかいので小さくしたい • 絶対値が小さい重み(シナプス)をpruning • あるニューロンの 入力シナプス全て or 出力シナプス全て が 0 なら そのニューロンもpruning可能 ・pruning後の構造が不規則 - 専用のハードウェア・ライブラリが無いと効果が薄い - conv層の削減に向かない
  3. Pruning Filters for Efficient ConvNets [Hao Li+, ICLR2017] ・pruningに対する各層のsensitivityを分析し、 pruning比率を決める必要がある

    [Huizi Mao+, CVPRW2017] • フィルタのL1ノルム(フィルタ内の重みの絶対値の総和)σ ℱ𝑖,𝑗 が小さいフィルタをpruning 𝑛𝑖 : 入力特徴マップチャンネル数 𝑛𝑖+1 : 出力特徴マップチャンネル数(=フィルタ数) フィルタ(kernel matrixの青いカーネル4枚)を 削れれば出力特徴マップも削れる pruningの粒度(の一部)
  4. Network Slimming [Zhuang Liu+, ICCV2017] ・特定のリソースを狙って小さくできない ・小さくする方向だけ - リソースが不足している部分を大きくできない -

    精度向上が主目的ではない • Batch Normalization の scaling factor 𝛾 が小さいチャンネルをpruning • L1正則化で 𝛾 がスパースになるよう仕向ける 𝛾 罰則項
  5. MorphNet FLOP/Size regularizer 誤ったら許さない というお気持ち [Ariel Gordon+, CVPR2018] FLOPs(演算回数)増やすんじゃねぇぞ というお気持ちを追加すると・・・

    パラメータ数増やすんじゃねぇぞ というお気持ちを追加すると・・・ • 何を小さくしたいかに応じて罰則項を変更
  6. MorphNet shrink-and-expand(収縮拡張法) 収縮 Network Slimming 拡張 width multiplier 図は [Ariel

    Gordon+, CVPR2018] を元に作成 ・チャンネル数を決定したネットワークをスクラッチで学習し直す必要あり - 学習の効率が悪い - 拡張時にパラメータをどう引き継ぐべきか不明 • 収縮・拡張によりチャンネル数を自動決定
  7. MorphNet + RandomOut 収縮 Network Slimming 拡張 width multiplier 図は

    [Ariel Gordon+, CVPR2018] を元に作成 これが Neural Rejuvenation の肝 • MorphNetの拡張部分の重みにランダム初期化を使用し、訓練を継続
  8. 書誌情報 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
  9. 概要 • 多くのDNNは over-parameterize されており、リソースを十分活用できていない • 訓練時間・評価時間が無駄 • モデルのポテンシャルが制限されている •

    新最適化手法 Neural Rejuvenation でリソース利用率を向上させる (1) リソース利用率監視 死亡ニューロン(無駄なニューロン)を検出し、リソース利用率を計算 (2) 死亡ニューロン若返り 再配置・再初期化で死亡ニューロンを若返らせる (3) 生存ニューロン・若返りニューロン混在時の訓練スキーム • 標準的なoptimizerから置き換えるだけで、 リソース使用量(パラメータ数や演算回数)を維持しながら、 NNの性能を大幅に向上可能
  10. 対象とする最適化問題 • アーキテクチャ , パラメータ の両方を最適化 • リソース利用率 𝑟 =

    𝑐( ) ( ): 出力への影響が小さい死亡ニューロンを除去した場合の計算コスト アーキテクチャ を使用するコスト (例:パラメータ数、FLOPs) ℒ : 損失関数 : アーキテクチャ , パラメータ のNN 許容するリソース使用量の最大値
  11. (1) リソース利用率監視 リソース消費量計算 ↑ 入力特徴マップの 生存チャンネル数 ↑ カーネルサイズ ↑ 出力特徴マップの

    解像度 https://www.slideshare.net/ren4yu/ss-145689425 パラメータ数: 演算回数: ↑ 出力特徴マップの 生存チャンネル数
  12. (1) リソース利用率監視 生死判定、スパース化 • 基本的にNetwork Slimming同様 • 全conv層後にBN層(or 学習可のアフィン変換層) を仮定

    • BNの 𝛾 で生死(利用されているか余分か)を判定 • 𝛾 < 0.01 × 𝛾max なら死亡ニューロン(死亡チャンネル) 𝛾max : 同じ層の 𝛾 の最大値 実験的に除去しても影響小 • 学習時にL1正則化を加えスパース化しておく 𝜆: 罰則係数(正則化係数) 𝒯: アーキテクチャ内の 𝛾 の集合 Batch Normalization
  13. (1) リソース利用率監視 適応的罰則係数 適切な 𝜆 の選択が重要 • 𝜆 = 0

    : 非スパース。通常の訓練 • 𝜆大 : スパース。大きすぎると元のロスからかけ離れる → 利用率に合わせて動的に決定 利用率の減少が遅ければ、罰則係数を上げる 利点 (1) タスク・アーキテクチャに合わせて自動で最適化 人手で試行錯誤して選ぶ必要が無い (Network SlimmingやMorphNetの欠点の1つを解消) (2) Step 8突入にかかるiterationに上限 λが十分大きくなれば、利用率を最低 𝛥𝑟 ずつ削れる if (𝛥𝑡 iteration前の利用率) − (現在の利用率) < 𝛥𝑟 : 𝜆 += Δ𝜆 𝛥𝑡, 𝛥𝑟, Δ𝜆 はハイパラ
  14. • 節約したリソースの再配置 MorphNet同様、各層の出力チャンネル数を 𝛼 倍( 𝑤𝑖 ′′ = 𝛼 ⋅

    𝑤𝑖 ′ ) あまり削れなかった層(生存ニューロンが多い層)はもっとパラメータが必要、という仮定 • パラメータ再初期化 • Neural rescaling L1正則化で 𝒮 の 𝛾 も小さくなり、勾配法での訓練に害 𝛾 の絶対値を初期値レベルに戻し、その分パラメータを小さくする (2) 死亡ニューロン若返り ・𝒮 (生存ニューロン)と ℛ (若返りニューロン)が混在 ・再初期化で 𝒮 の出力が変わらないようにする 𝑊𝒮→𝒮 : そのまま 𝑊ℛ→ℛ : ランダム初期化 𝑊𝒮→ℛ : 0 𝑊ℛ→𝒮 : 0 𝒮 𝒮 ℛ ℛ “Twemoji” by Twitter, Inc and other contributors /CC-BY 4.0
  15. (3) 𝒮, ℛ 混在時の訓練 キャパ不足の場合(例:ImageNet) • SORTをベースとしたcross attentionでキャパシティ増加 パラメータ数は増えず、演算回数もあまり増えない •

    attentionの先行研究との差異 ・チャンネルの1グループで他のチャンネル用のアテンションを生成 ・キャパシティ増加のために使用 SORT: Second-Order Response Transform [Yan Wang+, ICCV2017] 二次の項を追加し非線形性・表現力を向上 ⊙ : 要素積 𝜎 : シグモイド関数
  16. 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の方を修正して欲しい
  17. 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%
  18. 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 )なので、 ベースラインを揃えろとも言いづらい。
  19. まとめ Neural Rejuvenation: 訓練中に死亡ニューロンを再配置・再初期化し、 DNNのリソース利用率を向上させる、 アーキテクチャ・パラメータの最適化手法 所感 • pruning、NAS、再初期化の利点をうまく組み合わせている •

    実用性が更に上がると良い • 適応的罰則係数用にハイパラが実質2つ増加 公開コード中のCIFARの設定では罰則係数決め打ち • conv層直後のBatch Normalization層を仮定 ネットワーク設計に制約