Successfully reported this slideshow.

モデルアーキテクチャ観点からのDeep Neural Network高速化

46

Share

Loading in …3
×
1 of 62
1 of 62

モデルアーキテクチャ観点からのDeep Neural Network高速化

46

Share

Download to read offline

モデルアーキテクチャ観点からのDeep Neural Network高速化
-Factorization
-Efficient microarchitecture (module)
-Pruning
-Quantization
-Distillation
-Early termination

モデルアーキテクチャ観点からのDeep Neural Network高速化
-Factorization
-Efficient microarchitecture (module)
-Pruning
-Quantization
-Distillation
-Early termination

More Related Content

More from Yusuke Uchida

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

モデルアーキテクチャ観点からのDeep Neural Network高速化

  1. 1. Copyright © DeNA Co.,Ltd. All Rights Reserved. モデルアーキテクチャ観点からの Deep Neural Network⾼速化 Yusuke Uchida (@yu4u) 1
  2. 2. Copyright © DeNA Co.,Ltd. All Rights Reserved. 今⽇のおはなし(本発表⼀番のマサカリ場) 2 CUDA cuDNN NVIDIA GPU GPU WebGL WebGPU TPU Video Core IV ?????? TensorFlow, Chainer, … deeplearn .js WebDNN?????? @9_Jes さん アプリケーションレイヤ @Kiikurage さん@notogawa さん @kazunori_279 さん @Venginner さん @iwiwi さん @yu4u
  3. 3. Copyright © DeNA Co.,Ltd. All Rights Reserved. Disclaimer !  画像を想定した畳み込みニューラルネットワークの話がメインです !  初歩的な話もしますが許してください 3
  4. 4. Copyright © DeNA Co.,Ltd. All Rights Reserved. トレードオフ !  タスクの精度 !  推論速度 !  訓練速度 !  モデルサイズ(圧縮されたファイルとして) !  Forwardで必要なメモリサイズ(モデルサイズ含む) !  推論(訓練速度)はCPUかGPUか、 バッチサイズが1なのか⼤きく取れるのかに⼤きく影響される 4
  5. 5. Copyright © DeNA Co.,Ltd. All Rights Reserved. モデルアーキテクチャ観点からの⾼速化 !  Factorization !  Efficient microarchitecture (module) !  Pruning !  Quantization !  Distillation !  Early termination 5
  6. 6. Copyright © DeNA Co.,Ltd. All Rights Reserved. Convolutionの計算量 6 W H W H N M K K •  ⼊⼒レイヤサイズ:H x W x N •  畳み込みカーネル:K x K x N x M          [conv K x K, M]と表記 (e.g. [conv 3x3, 64]) •  出⼒レイヤサイズ:H x W x M •  畳み込みの計算量:H・W・N・K2・M ※バイアス項無視、padding = “same”
  7. 7. Copyright © DeNA Co.,Ltd. All Rights Reserved. Convolutionの計算量 7 W H W H N M K K •  ⼊⼒レイヤサイズ:H x W x N •  畳み込みカーネル:K x K x N x M          [conv K x K, M]と表記 (e.g. [conv 3x3, 64]) •  出⼒レイヤサイズ:H x W x M •  畳み込みの計算量:H・W・N・K2・M ※バイアス項無視、padding = “same” 画像スケール、 チャネル数、 カーネルサイズの2乗に⽐例
  8. 8. Copyright © DeNA Co.,Ltd. All Rights Reserved. モデルアーキテクチャ観点からの⾼速化 !  Factorization !  Efficient microarchitecture (module) !  Pruning !  Quantization !  Distillation !  Early termination 8
  9. 9. Copyright © DeNA Co.,Ltd. All Rights Reserved. Factorization !  Low Rank Matrix Factorization ⾏列(=畳み込みカーネル)を低ランク近似することで計算量を削減 !  学習によって得られた⾏列を分解するというよりは 最初から分解した形で重みを学習する (のでfactorizationと⾔って良いのか?) 9 ≈
  10. 10. Copyright © DeNA Co.,Ltd. All Rights Reserved. 畳み込みカーネルの空間的Factorization !  ⼤きな畳込みカーネルを複数の⼩さな畳込みカーネルに置き換える ⁃  conv 5x5 と conv 3x3 - conv 3x3 は同じreceptive fieldを持つ ⁃  計算量は 25:18 ⁃  ⼩さな畳み込みを重ねるパターンはactivation層の数も多いため 表現能⼒の向上が期待できる !  例 ⁃  AlexNet:conv 11x11 - conv 5x5 - conv 3x3 - …   ↓ ⁃  VGGNet:conv 3x3 - conv 3x3 - conv 3x3 - … 10 conv 5x5 conv 3x3 - conv 3x3
  11. 11. Copyright © DeNA Co.,Ltd. All Rights Reserved. 畳み込みカーネルの空間的Factorization !  conv 3x3 vs conv 1x3 - conv 3x1 ⁃  計算量は 9:6 !  例: Inception v6→v7 11 conv 3x3 conv 1x3 - conv 3x1 hap://lsun.cs.princeton.edu/slides/ChrisJan.pdf
  12. 12. Copyright © DeNA Co.,Ltd. All Rights Reserved. 畳込みカーネルの空間⽅向とチャネル⽅向のFactorization !  通常の畳込みカーネルをdepthwise / pointwise convolutionに分離 !  Depthwise (separable) convolution ⁃  Input tensorに対しチャネル毎に畳み込み ⁃  計算量:H・W・N・K2・M (M=N)     H・W・K2・N !  Pointwise convolution ⁃  ただのconv 1x1, M ⁃  計算量:H・W・N・K2・M (K=1)     H・W・N・M !  Depthwise + pointwise ⁃  計算量:H・W・N・(K2 + M)     ≒ H・W・N・M (M >> K2) 12 W H W H N 1 1 M W H W H N K K N
  13. 13. Copyright © DeNA Co.,Ltd. All Rights Reserved. Dilated convolution !  カーネルの重みに規則的に0を⼊れてカーネルサイズを拡張 !  ⼩さいカーネルと同じ計算量+パラメータで広いreceptive fieldを持つ ⁃  Feature mapの解像度を⾼く保ちたいsegmentationや超解像で 良く使われる !  例 ⁃  Dilated Residual Networks, CVPRʼ17. ⁃  WaveNet - A Generative Model for Raw Audio 13 conv 5x5 conv 3x3, dilaJon = 2
  14. 14. Copyright © DeNA Co.,Ltd. All Rights Reserved. 実際の処理速度は?? !  PyTorchとKeras (TensorFlow backend) で簡単な実験 ⁃  特定の種類のconvolutionのみを含む16層CNNを構築 •  Batch normalizationやactivation層はなし ⁃  ⼊⼒tensorを 32x32x32x64(バッチサイズ32、チャネル数64) ⁃  ランダムな⼊⼒を100回forwardした時間を計測 ⁃  環境:Ubuntu 16.04, CPU: i7-7700 3.60GHz、    GPU: GeForce GTX1080 (TensorFlowはAVX2等を使うようにコンパイルしていない) !  Summary 14
  15. 15. Copyright © DeNA Co.,Ltd. All Rights Reserved. 実際の処理速度は?? !  PyTorchとKeras (TensorFlow backend) で簡単な実験 ⁃  特定の種類のconvolutionのみを含む16層CNNを構築 •  Batch normalizationやactivation層はなし ⁃  ⼊⼒tensorを 32x32x32x64(バッチサイズ32、チャネル数64) ⁃  ランダムな⼊⼒を100回forwardした時間を計測 ⁃  環境:Ubuntu 16.04, CPU: i7-7700 3.60GHz、    GPU: GeForce GTX1080 (TensorFlowはAVX2等を使うようにコンパイルしていない) !  Summary 15 Depthwise convoluJon Conv 3x3 dilaJon = 2 haps://github.com/yu4u/conv-benchmark
  16. 16. Copyright © DeNA Co.,Ltd. All Rights Reserved. PyTorch CPU 16 Conv 3x3⽐の 理論計算量 Depthwise convoluJon Conv 3x3 dilaJon = 2 Conv 3x3⽐の 実処理時間
  17. 17. Copyright © DeNA Co.,Ltd. All Rights Reserved. PyTorch CPU !  Depthwise convolutionとdilated convolution以外は 実処理時間と理論計算量が⼀致 !  どちらもメモリの局所性がないため? ⁃  教えて中村さん! !  PyTorchのdepthwise convolutionはめっちゃ遅い ⁃  Grouped convolutionでグループ数=チャネル数でやってるため 17
  18. 18. Copyright © DeNA Co.,Ltd. All Rights Reserved. PyTorch GPU !  GPUだとfactorizeしないほうが良さそう ⁃  でも5x5が遅いのは? 18
  19. 19. Copyright © DeNA Co.,Ltd. All Rights Reserved. Keras CPU !  PyTorchと傾向は同じ ⁃  Depthwise convolutionは専⽤の効率的な実装が存在 ⁃  Dilated convolutionも早い 19
  20. 20. Copyright © DeNA Co.,Ltd. All Rights Reserved. Keras GPU !  PyTorchとだいたい同じ? !  Dilated convolutionは早い 20
  21. 21. Copyright © DeNA Co.,Ltd. All Rights Reserved. 中間的なFactorization !  Efficient and Accurate Approximations of Nonlinear Convolutional Networks, CVPRʼ15. !  Conv k x k, d を Conv k x k, dʼ - Conv 1 x 1, d に分解 ⁃  学習済みのカーネルを、出⼒feature mapの誤差を 最⼩に保つように最適化問題を解くことで分解 ⁃  計算量:dk2c → dʼk2c + ddʼ = dʼ(k2c + d) ≒ dʼk2c 21
  22. 22. Copyright © DeNA Co.,Ltd. All Rights Reserved. Domain-adaptive deep network compression, ICCVʼ17. !  FC層を低ランク近似することで圧縮する !  通常は重みWと、Wを低ランク⾏列の積で近似したWʼとの誤差を最⼩に するが、ここではWX(=Y)の誤差を最⼩にする部分がNovelty (だが1つ前の⼿法とアプローチは同じでは…) 22
  23. 23. Copyright © DeNA Co.,Ltd. All Rights Reserved. モデルアーキテクチャ観点からの⾼速化 !  Factorization !  Efficient microarchitecture (module) !  Pruning !  Quantization !  Distillation !  Early termination 23
  24. 24. Copyright © DeNA Co.,Ltd. All Rights Reserved. Efficient microarchitecture (module) !  Convをスタックするマクロアーキテクチャ (~VGGNet) から マイクロアーキテクチャをスタックする時代へ (GoogLeNet, ResNet~) !  様々なマイクロアーキテクチャ (module or building block) ⁃  mlpconv (Network in Network) ⁃  Inception module (GoogLeNet) ⁃  Residual block, bottleneck block (ResNet) ⁃  ResNeXT ⁃  DenseBlock (DenseNet) ⁃  Fire module (SqueezeNet) ⁃  Separable conv (Xception, MobileNets) ⁃  Neural architecture search (meta learning) !  ダイレクトに計算量を減らすというよりは 精度と計算量のトレードオフを改善する ⁃  実⽤上は精度を担保して、どれだけ計算量を減らせるか 24
  25. 25. Copyright © DeNA Co.,Ltd. All Rights Reserved. Residual Networks, ResNet(参考) 25 基本形 conv 3x3, 64 conv 3x3, 128 conv 3x3, 256 conv 3x3, 512 global average pooling FC x N1 x N2 x N3 x N4 56x56 28x28 14x14 7x7 出⼒ 画像サイズ Building block / Residual unit •  パラメータの違うResidual unitを重ねていく •  Batch normalizaJon •  画像サイズを半分+フィルタ数を倍に •  最後はglobal average pooling
  26. 26. Copyright © DeNA Co.,Ltd. All Rights Reserved. Residual block, bottleneck block !  Bottleneckバージョンは、conv 3x3, 256を Factorizeしたものと⾒ることもできる ⁃  Receptive fieldは⼩さい 26 通常のresidual block “boaleneck” バージョン
  27. 27. Copyright © DeNA Co.,Ltd. All Rights Reserved. Fire module (SqueezeNet) !  戦略 ⁃  3x3の代わりに1x1のフィルタを利⽤する ⁃  3x3への⼊⼒となるチャネル数を少なくする !  ちなみに⾮常に⼈気のあるモデルだと思われるが… ⁃  ResNetやInception後の論⽂なので、そこからの差異が⼩さい とのことで、ICLRʼ17でrejectとなっている 27 conv 1x1, s1x1 conv 1x1, e1x1 conv 3x3, e3x3 concat Fire module 32 128128 256 256 Squeeze layer Expand layer conv 3x3, 256の Factorizeと⾒ることもできる
  28. 28. Copyright © DeNA Co.,Ltd. All Rights Reserved. Fire module (SqueezeNet) 28 Squeeze layerでの圧縮率 0.75程度だと精度低下なし 0.5でー0.7% Expand layerの3x3割合 0.75程度だと精度低下なし 0.5でー0.7%
  29. 29. Copyright © DeNA Co.,Ltd. All Rights Reserved. Depthwise separable convolution !  Xception !  MobileNets !  Xceptionはdepthwise/pointwise convの間にReLUがない ⁃  実験でないほうが良いことを⽰している !  Xceptionはidentity mappingがある 29 Depthwise conv 3x3 Pointwise conv 3x3 Batch normalization ReLU Separable conv 3x3 ReLU (Maxpool 3x3, stride=2) Conv 1x1, stride=2 Separable conv 3x3 Depthwise conv 3x3 Batch normalization ReLU Batch normalization Pointwise conv 3x3 ReLU
  30. 30. Copyright © DeNA Co.,Ltd. All Rights Reserved. Learning Transferable Architectures for Scalable Image Recognition, arXiv:1707.07012. !  moduleアーキテクチャをRNNで最適化 30 !  ⼤枠のアーキテクチャは決まっている •  (ReducJon cell + Normal cell × N) × K !  ReducJon cell:feature mapをダウンサンプル !  利⽤可能な要素は下記
  31. 31. Copyright © DeNA Co.,Ltd. All Rights Reserved. Learning Transferable Architectures for Scalable Image Recognition, arXiv:1707.07012. !  できたmodule !  Sep多い 31
  32. 32. Copyright © DeNA Co.,Ltd. All Rights Reserved. Learning Transferable Architectures for Scalable Image Recognition, arXiv:1707.07012. !  結果 !  Mult-addとのトレードオフは良いが実速は? 32
  33. 33. Copyright © DeNA Co.,Ltd. All Rights Reserved. モデルアーキテクチャ観点からの⾼速化 !  Factorization !  Efficient microarchitecture (module) !  Pruning !  Quantization !  Distillation !  Early termination 33
  34. 34. Copyright © DeNA Co.,Ltd. All Rights Reserved. Pruning !  異なるレベルのpruning ⁃  重みレベル ⁃  カーネルレベル ⁃  チャネル(フィルタ)レベル ⁃  レイヤレベル 34 Structured (⾼速化しやすい  最適化しづらい)
  35. 35. Copyright © DeNA Co.,Ltd. All Rights Reserved. Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding, ICLRʼ16 !  重みレベルのpruning 35 •  通常通り重みを訓練 •  しきい値以下の重みをprune(0にする) •  0の重みはそのままにfine-tuneする
  36. 36. Copyright © DeNA Co.,Ltd. All Rights Reserved. Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding, ICLRʼ16 36 •  ⾮ゼロ要素を7.5%にまで削減 •  但し、ほとんどFC層 ↑モダンなモデル (ResNet~) はglobal average poolingを使うので  ここまでパラメータの多いFC層がない
  37. 37. Copyright © DeNA Co.,Ltd. All Rights Reserved. (余談)Global average pooling !  Network In Network, ICLRʻ14. で提案された !  Feature mapサイズの average pooling !  オリジナルの論⽂では N をクラス数にすることで、 global average poolingの出⼒がそのままprediction結果となる ⁃  その後の使われ⽅としては、後段に出⼒がクラス数のFC層を使う !  何れにせよ、パラメータ数の多いFC層が不要 37 W H N N 1 1
  38. 38. Copyright © DeNA Co.,Ltd. All Rights Reserved. Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding, ICLRʼ16 !  んで早くなるの? ⁃  早くなる、FCはね! (←cuSPARSE等のsparse⾏列演算ライブラリを利⽤) !  Sparseな重みのconvolutionは? 38
  39. 39. Copyright © DeNA Co.,Ltd. All Rights Reserved. Pruning Filters for Efficient ConvNets, ICLRʼ17. !  チャネルレベルのpruning !  チャネル毎に、畳込みパラメータのL1ノルムが⼩さいものからprune !  精度を保ったままpruningすると、計算量で10%台の削減 39
  40. 40. Copyright © DeNA Co.,Ltd. All Rights Reserved. チャネル毎に⼊⼒を平均0分散1に正規化、γとβでscale & shit Learning Efficient Convolutional Networks through Network Slimming, ICCV'17. !  チャネルレベルのpruning !  各チャネルの出⼒をscalingする変数 γ を導⼊、Σi|γi| をロスとして学習 ⁃  γ はbatch normalizationに導⼊する(というか最初からある) ⁃  Batch normalizationの正規化が必須 !  学習後、γi が⼩さいチャネルiを削除し、fine-tune 40  チャネルi Batch normalizaJon
  41. 41. Copyright © DeNA Co.,Ltd. All Rights Reserved. Learning Efficient Convolutional Networks through Network Slimming, ICCV'17. !  正則化の効果により、pruning後に精度も上がる! !  感想 ⁃  学習した後にpruningするより筋が良い ⁃  シンプル&Batch normalizationで実現するの、素敵 ⁃  SOTA精度のモデルをベースにして検証して欲しい ⁃  ResNetのようなskip connectionがあるとややこしい 41
  42. 42. Copyright © DeNA Co.,Ltd. All Rights Reserved. L0ではなくLasso に緩和して解く Channel Pruning for Accelerating Very Deep Neural Networks, ICCVʼ17. !  チャネルレベルのpruning !  あるfeature mapのチャネルについて、次のレイヤのfeature mapを なるべく復元できるようなチャネルを選択し、残りを削除 !  VGG:5倍速, 精度0.3%↓、ResNet:2倍速, 精度1.4%↓ 42
  43. 43. Copyright © DeNA Co.,Ltd. All Rights Reserved. ThiNet: A Filter Level Pruning Method for Deep Neural Network Compression, ICCVʼ17. !  チャネルレベルのPruning !  前のやつとアプローチは同じ、次のレイヤのfeature mapに誤差を発⽣ させないfilterを削除する !  実際のforwardした結果から特定のフィルタを削除した際の誤差を計算 !  フィルタの削除はGreedyに⾏う、削除した後に、残ったフィルタを個々 にスケーリングして、誤差を軽減(linear regressionとして解ける) !  最後にfine-tune 43
  44. 44. Copyright © DeNA Co.,Ltd. All Rights Reserved. モデルアーキテクチャ観点からの⾼速化 !  Factorization !  Efficient microarchitecture (module) !  Pruning !  Quantization !  Distillation !  Early termination 44
  45. 45. Copyright © DeNA Co.,Ltd. All Rights Reserved. Quantization !  重みを量⼦化することでモデルのメモリを削減 ⁃  半精度を利⽤するとかでなければソフト的には⾼速化ではない (デモサイト等でのモデルのダウンロード速度は早くなるが) !  量⼦化の種類 ⁃  Scalar quantization(各次元毎に量⼦化 •  Binary •  Uniform(centroidが⼀定間隔 •  Adaptive(centroidの間隔をkmeans等で学習 ⁃  Product quantization(ベクトルを分割して個別に量⼦化 ⁃  Residual quantization(量⼦化→残差を量⼦化 ⁃  Hierarchical quantization(量⼦化→残差を量⼦化 ⁃  Vector quantization !  量⼦化効率(centroid数 vs 量⼦化誤差) ⁃  binary < scalar < product < residual, hierarchical < vector 45 違いは後段の量⼦化コードブ ックが単⼀かどうか
  46. 46. Copyright © DeNA Co.,Ltd. All Rights Reserved. Quantization !  重みを量⼦化することでモデルのメモリを削減 ⁃  半精度を利⽤するとかでなければソフト的には⾼速化ではない (デモサイト等でのモデルのダウンロード速度は早くなるが) !  量⼦化の種類 ⁃  Scalar quantization(各次元毎に量⼦化 •  Binary •  Uniform(centroidが⼀定間隔 •  Adaptive(centroidの間隔をkmeans等で学習 ⁃  Product quantization(ベクトルを分割して個別に量⼦化 ⁃  Residual quantization(量⼦化→残差を量⼦化 ⁃  Hierarchical quantization(量⼦化→残差を量⼦化 ⁃  Vector quantization !  量⼦化効率(centroid数 vs 量⼦化誤差) ⁃  binary < scalar < product < residual, hierarchical < vector 46 Deep learningの コンテキストでは あまりない
  47. 47. Copyright © DeNA Co.,Ltd. All Rights Reserved. Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding, ICLRʼ16 !  (再掲) 47 今度はココ
  48. 48. Copyright © DeNA Co.,Ltd. All Rights Reserved. Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding, ICLRʼ16 !  0でない重みをadaptive scalar quantization !  重みを量⼦化した状態のままfine-tuneできる!! 48
  49. 49. Copyright © DeNA Co.,Ltd. All Rights Reserved. Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding, ICLRʼ16 49 重みのIDを ハフマン符号化 ⾮ゼロ要素間のgapを ハフマン符号化 !  VGG16が552MB → 11.3MB ⁃  伸張に時間は必要そう
  50. 50. Copyright © DeNA Co.,Ltd. All Rights Reserved. Binary neural networks !  神資料があるのでまとめだけ… ⁃  https://www.slideshare.net/kentotajiri/ss-77136469 50 •  ⼊⼒も重みもバイナリ化すること で⾼速化が可能 •  ソフト的にも実装が可能 •  サポートしているメジャーな フレームワークがない •  精度がまだ低い
  51. 51. Copyright © DeNA Co.,Ltd. All Rights Reserved. モデルアーキテクチャ観点からの⾼速化 !  Factorization !  Efficient microarchitecture (module) !  Pruning !  Quantization !  Distillation !  Early termination 51
  52. 52. Copyright © DeNA Co.,Ltd. All Rights Reserved. Distilling the Knowledge in a Neural Network, NIPSʼ14 Deep Learning Workshop. !  アンサンブルモデルや⼤きなモデルから、⼩さなモデルへの knowledge transfer ⁃  精度を保ちながら⼩さなモデルを学習 52 1. アンサンブルモデル や⼤きなモデルを学習 2. 学習済みモデルを利⽤して ⼩さなモデルを学習
  53. 53. Copyright © DeNA Co.,Ltd. All Rights Reserved. Distilling the Knowledge in a Neural Network, NIPSʼ14 Deep Learning Workshop. 53 …… 学習画像 学習済みモデル 学習するモデル … 正解ラベル (ハード ターゲット) 通常T = 1のsotmaxのTを⼤きくした ソフトターゲットを利⽤ … ソフトターゲット ソフト ターゲット ハード ターゲット 正解ラベルと 学習モデル出⼒の 両⽅を利⽤ 推論時はT=1とする(argmaxは同じだが…
  54. 54. Copyright © DeNA Co.,Ltd. All Rights Reserved. Distilling the Knowledge in a Neural Network, NIPSʼ14 Deep Learning Workshop. !  同⼀モデルでも、アンサンブルから学習したほうが良かったり !  ソフトターゲットだと⼩数のデータで効率的に学習できたりする 54
  55. 55. Copyright © DeNA Co.,Ltd. All Rights Reserved. モデルアーキテクチャ観点からの⾼速化 !  Factorization !  Efficient microarchitecture (module) !  Pruning !  Quantization !  Distillation !  Early termination 55
  56. 56. Copyright © DeNA Co.,Ltd. All Rights Reserved. BranchyNet: Fast Inference via Early Exiting from Deep Neural Networks, ICPRʼ16. !  ネットワークの途中からラベル推定する分岐を作成 !  そのsoft-maxのエントロピーを信頼値として 閾値以上の場合にExitする !  学習時のロスは、全てのExitのロスの重み付き和 (重みが最後が1で途中が0.3というHeuristic…) 56
  57. 57. Copyright © DeNA Co.,Ltd. All Rights Reserved. BranchyNet: Fast Inference via Early Exiting from Deep Neural Networks, ICPRʼ16. !  Exitする閾値を幾つか変えて実験(←MNIST、→CIFAR-10) !  層の途中にもロスが⼊っている影響か、 ベースよりも精度が上がっている 57
  58. 58. Copyright © DeNA Co.,Ltd. All Rights Reserved. Spatially Adaptive Computation Time for Residual Networks, CVPRʼ17. !  各層のhalting scoreの合計が1を超えるとその層までの結果を出⼒ 58 計算量に関するロス を追加
  59. 59. Copyright © DeNA Co.,Ltd. All Rights Reserved. Spatially Adaptive Computation Time for Residual Networks, CVPRʼ17. !  空間(feature map)レベルに拡張 59 SACT=空間レベル ACT=res blockレベル
  60. 60. Copyright © DeNA Co.,Ltd. All Rights Reserved. Adaptive Neural Networks for Efficient Inference, ICMLʼ17. 60
  61. 61. Copyright © DeNA Co.,Ltd. All Rights Reserved. Adaptive Feeding: Achieving Fast and Accurate Detections by Adaptively Combining Object Detectors, ICCVʼ17. !  SSD300, SSD500, R-FCNといった異なる精度・計算量のDetectorのう ち、どれに画像を⼊⼒するかを判定する識別器(SVM)を学習 !  適切なDetectorにFeed→平均的な精度・計算量トレードオフを改善 !  識別器の学習は各画像について実際に各Detectorに検出させ、その average precisionの⾼い⽅を正解ラベルとする 61
  62. 62. Copyright © DeNA Co.,Ltd. All Rights Reserved. まとめ !  フレームワークより上のレイヤで意味があるのは ⁃  Factorization ⁃  Efficient microarchitecture (module) ⁃  Pruning •  チャネルレベル(、レイヤレベル) ⁃  Quantization •  半精度(、バイナリ) ⁃  Distillation ⁃  Early termination !  精度重視のモデルで学習し、効率的なmoduleにdistillationし、 pruningし、バイナリ化し、early terminationする → Efficient module + distillation + channel-level pruning 62

×