13. Mobility Technologies Co., Ltd.
3次元テンソルに対して、畳み込みカーネルを
適用し、認識に重要な特徴を抽出する
個々の出力は入力の一部のみ影響を受け、カーネルは空間座標によ
らず共通
畳み込み演算
13
W
H
N M
K
K
W
H
入力テンソル
畳み込み
カーネル
N
出力テンソル
*
和
要素積
× M
Conv K×K, M
23. Mobility Technologies Co., Ltd.
“1 smart, trained and highly education human being
performed at that error rate”
https://amundtveit.com/tag/imagenet/
Andrej Karpathyさん (Stanford→OpenAI→Tesla)
人間のエラー率5.1%?
23
https://github.com/karpathy
26. Mobility Technologies Co., Ltd.
Neocognitron
• 脳の視覚野に関する知見を元に考案
• 単純型細胞:特徴抽出を行う畳み込み層
• 複雑型細胞:位置ずれを吸収するプーリング層
• 自己組織化による特徴抽出
Before AlexNet
26
K. Fukushima and S. Miyake, "Neocognitron: A new algorithm for pattern recognition tolerant of
deformations and shifts in position," in Pattern Recognition, 1982.
27. Mobility Technologies Co., Ltd.
Neocognitronの活性化関数は実はReLU
Before AlexNet
27
K. Fukushima and S. Miyake, "Neocognitron: A new algorithm for pattern recognition tolerant of
deformations and shifts in position," in Pattern Recognition, 1982.
28. Mobility Technologies Co., Ltd.
LeNet
• 逆誤差伝搬法による学習
• 文字認識で成功をおさめる
• 全体的なアーキテクチャは既に完成
Before AlexNet
28
Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner, "Gradient-based learning applied to document recognition,"
in Proceedings of the IEEE, 1998.
29. Mobility Technologies Co., Ltd.
巷のLeNetはLeNetではない
Before AlexNet
29
出力チャネル
入力チャネル
Sparseな
畳み込み!
Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner, "Gradient-based learning applied to document recognition,"
in Proceedings of the IEEE, 1998.
30. Mobility Technologies Co., Ltd.
2012年のILSVRC優勝モデル
• Rectified Linear Units (ReLU)
• Local Response Normalization (LRN) (最近は使われない)
• Overlapping pooling (3x3 max pool, stride =2)
• Dropout(全結合層)
• SGD + momentum, weight decay, learning rate decay
AlexNet
30
A. Krizhevsky, I. Sutskever, and G. E. Hinton, "Imagenet classification with deep convolutional neural
networks," in Proc. of NIPS, 2012.
31. Mobility Technologies Co., Ltd.
2012年のILSVRC優勝モデル
• Rectified Linear Units (ReLU)
• Local Response Normalization (LRN) (最近は使われない)
• Overlapping pooling (3x3 max pool, stride =2)
• Dropout(全結合層)
• SGD + momentum, weight decay, learning rate decay
AlexNet
31
既にほぼ現在のアーキテクチャの姿
A. Krizhevsky, I. Sutskever, and G. E. Hinton, "Imagenet classification with deep convolutional neural
networks," in Proc. of NIPS, 2012.
32. Mobility Technologies Co., Ltd.
巷のAlexNetは(ry
• いくつかの畳み込み層は、チャネル方向に分割され
2つのGPUでそれぞれ独立に畳み込みが行われる
「grouped convolution」となっている
AlexNet
32
A. Krizhevsky, I. Sutskever, and G. E. Hinton, "Imagenet classification with deep convolutional neural
networks," in Proc. of NIPS, 2012.
33. Mobility Technologies Co., Ltd.
2013年のILSVRC優勝モデル
• CNNの可視化を行い、AlexNetの2つの問題を明らかにし、改良
• 1つ目の畳み込みフィルタのカーネルサイズが大きく
高周波と低周波の情報を取得するフィルタばかりになっている
• Stride = 4により2層目の特徴マップにエイリアシングが発生
ZFNet
33
M. Zeiler and R. Fergus, “Visualizing and understanding convolutional networks,” in Proc. of ECCV, 2014.
34. Mobility Technologies Co., Ltd.
2014年のILSVRC優勝モデル
• Inceptionモジュール
• Global Average Pooling (GAP)
• Auxiliary loss
• ネットワークを途中で分岐させ、そこで分類を行うロスを追加
→学習の効率化+正則化
GoogLeNet
34
C. Szegedy, et al., "Going deeper with convolutions", in Proc. of CVPR, 2015.
39. Mobility Technologies Co., Ltd.
特徴マップのサイズと同じaverage pooling
• NIN*で提案された。チャネル数をクラス数に調整してからGAP
• GoogLeNet以降では、GAPの後に全結合層を付ける
• 全結合層を減らすことでパラメータ数を削減
Global Average Pooling (GAP)
39
W
H
C=クラス数
1
1HxWxCの
特徴マップ
クラス数
GAP
softmax
* M. Lin, Q. Chen, and S. Yan, "Network in network," in Proc. of ICLR, 2014.
40. Mobility Technologies Co., Ltd.
Inception-v2,3
• Batch normalization
• 5x5 -> 3x3 (x2)
• nxn -> nx1 + 1xn
Inception-v4
• 3種類のInceptionを使い分け
Inception-ResNet-v1,2
• 後述のショートカット機構の導入
Inception-v?
40
= Inception-v3
C. Szegedy, V. Vanhoucke, S. Ioffe, and J. Shlens, "Rethinking the inception architecture for computer
vision," in Proc. of CVPR, 2016.
C. Szegedy, S. Ioffe, V. Vanhoucke, and A. A. Alemi, "Inception-v4, inception-resnet and the impact of
residual connections on learning," in Proc. of AAAI, 2017.
41. Mobility Technologies Co., Ltd.
2014年のILSVRCで2位となったモデル、シンプルなモデルの設計方針
• 3x3畳み込み層(+全結合層)のみを利用
• 5x5畳み込みと3x3畳み込み×2は同じreceptive fieldを持つ
• 計算量は 25:18
• 同一出力チャネルの畳み込み層を重ねた後に
プーリングにより特徴マップを半分にしつつチャネル数を倍増
まずは浅いネットワークを学習し、畳み込み層を追加してfine-tuningすること
で深いネットワークを学習(Xavierの初期化で不要に)
VGGNet
41
conv 5x5 conv 3x3 - conv 3x3
K. Simonyan and A. Zisserman, "Very deep convolutional networks for large-scale image recognition," in
Proc. of ICLR, 2015.
42. Mobility Technologies Co., Ltd.
2015年のILSVRC優勝モデル
Residualモジュール(ショートカット機構)の導入→後述
Batch normalizationの導入
• ネットワーク内の共変量シフトを軽減(諸説あり)
Global Average Pooling (GAP) の利用
Heの初期化の利用
• ReLUを考慮したパラメータの初期化
ショートカットを展開していくと複数の深さの違う
ネットワークのアンサンブルとなっている**
Residual Networks (ResNet)*
42
* K. He, X. Zhang, S. Ren, and J. Sun, "Deep residual learning for image recognition," in Proc. of CVPR, 2016.
** A. Veit, M. Wilber, and S. Belongie, "Residual networks behave like ensembles of relatively shallow
networks," in Proc. of NIPS, 2016.
50. Mobility Technologies Co., Ltd.
Residualモジュールをゴニョゴニョする
WideResNet*
• 深くするより、幅(チャネル数)を大きくして(相対的に)
浅いネットワークのほうが精度・学習速度が優秀
PyramidNet**
• サウンサンプルするタイミングでチャネル数を
2倍にするのではなく、全てのresidualモジュールで
徐々にチャネル数を増加させる
• チャネル数を2倍にするresidualモジュールに
ネットワークが過度に依存してしまうのを防ぐ
Residualモジュールの改良
50
* S. Zagoruyko and N. Komodakis, "Wide residual networks," in Proc. of BMVC, 2016.
** D. Han, J. Kim, and J. Kim, "Deep pyramidal residual networks," in Proc. of CVPR, 2017.
51. Mobility Technologies Co., Ltd.
初代ResNet*
• conv - bn - relu - conv - bn - add - relu
pre-act ResNet**(addの後にReLUをしない)
• bn - relu - conv - bn - relu - conv - add
PyramidNet***(ReLUを減らす、BN追加)
• bn - conv - bn - relu - conv - bn - add
WideResNet****(dropoutがタスクによって効果がある)
• bn - relu - conv - bn - relu - dropout - conv – add
Residualモジュールのベストプラクティス
51
* K. He, X. Zhang, S. Ren, and J. Sun, "Deep residual learning for image recognition," in Proc. of CVPR, 2016.
** K. He, X. Zhang, S. Ren, and J. Sun, "Identity mappings in deep residual networks," in Proc. of ECCV, 2016.
*** D. Han, J. Kim, and J. Kim, "Deep pyramidal residual networks," in Proc. of CVPR, 2017.
**** S. Zagoruyko and N. Komodakis, "Wide residual networks," in Proc. of BMVC, 2016.
52. Mobility Technologies Co., Ltd.
conv 1x1, 4
conv 3x3, 4
conv 1x1, 256
conv 1x1, 4
conv 3x3, 4
conv 1x1, 256
conv 1x1, 4
conv 3x3, 4
conv 1x1, 256
...
+
256-dim
256-dim
conv 1x1, 128
conv 3x3, 128, g=32
conv 1x1, 256
256-dim
256-dim
+
(a) (b)
Ti(x)
grouped
convolution
ILSVRC’16で2位のモデル
ResNetの処理ブロックを”Network-in-Neuron”
に置き換えたもの
(a)と(b)は等価表現
ResNeXt
52
S. Xie, R. Girshick, P. Dollar, Z. Tu, and K. He, "Aggregated residual transformations for deep neural
networks," in Proc. of CVPR, 2017.
54. Mobility Technologies Co., Ltd.
Separable convを多用したモデル
Xception(高速化パートで解説)
54
F. Chollet, "Xception: Deep learning with depthwise separable convolutions," in Proc. of CVPR, 2017.
55. Mobility Technologies Co., Ltd.
特徴マップを高解像度と低解像度に別々に保持
それぞれの解像度の特徴マップを行き来させることで
効率的な特徴周出を実現
通常の畳み込みを置き換えるだけで精度向上
Octave Convolution
55
Y. Chen, H. Fan, B. Xu, Z.Yan,Y. Kalantidis, M. Rohrbach, S.Yan, and J. Feng, "Drop an Octave: Reducing Spatial Redundancy in
Convolutional Neural Networks with Octave Convolution," in arXiv:1904.05049, 2019.
56. Mobility Technologies Co., Ltd.
複数のResidualモジュールを1つのモジュールとみなし
その間にショートカットを作成する
Residual Networks of Residual Networks (RoR)
56
K. Zhang, M. Sun, T. X. Han, X. Yuan, L. Guo, and T. Liu, "Residual networks of residual networks:
Multilevel residual networks," in TCSVT, 2017.
57. Mobility Technologies Co., Ltd.
再帰的に定義されるネットワーク
• パスをdropするdropout的な学習
浅い列のパスがResNetのショートカットのような効果
FractalNet
57
G. Larsson, M. Maire, and G. Shakhnarovich, "Fractalnet: Ultra-deep neural networks without residuals," in
Proc. of ICLR, 2017.
58. Mobility Technologies Co., Ltd.
Dense blockをtransition layerでつないだ構造
DenseNet (CVPR’17 best paper)
58
conv
Dense
block
Dense
block
Dense
block
fc
Input
image
Result
G. Huang, Z. Liu, K. Q. Weinberger, and L. Maaten, “Densely connected convolutional networks", in Proc.
of CVPR, 2017.
Dense block
Transitionレイヤ
59. Mobility Technologies Co., Ltd.
同一ブロック内の自分より前の層全ての出力を
各層への入力とする処理ブロック
• 入力k0、総数l、各層の出力k とすると出力はk0+l×k
Dense Block
59
入力: k0, 出力: k
入力: k0+k, 出力: k
入力: k0+2k, 出力: k
入力: k0+3k, 出力: k
bn - relu – conv 3x3入力: k0
出力: k0+4k
G. Huang, Z. Liu, K. Q. Weinberger, and L. Maaten, “Densely connected convolutional networks", in Proc.
of CVPR, 2017.
60. Mobility Technologies Co., Ltd.
k0 >> k なので通常の畳み込みよりも計算量が少ないが
conv 1x1で次元削減を行うことで更に計算量を削減
Dense Block(Bottleneckバージョン)
60
入力: k0, 中間出力: 4k, 出力: k
入力: k0+k, 中間出力: 4k, 出力: k
入力: k0+2k, 中間出力: 4k, 出力: k
入力: k0+3k, 中間出力: 4k,
出力: k
bn - relu - conv 1x1
bn - relu - conv 3x3
入力: k0
出力: k0+4k
G. Huang, Z. Liu, K. Q. Weinberger, and L. Maaten, “Densely connected convolutional networks", in Proc.
of CVPR, 2017.
63. Mobility Technologies Co., Ltd.
これまでのモデルはhand crafted(←特徴を自動抽出とは…)
これに対し、NASはNNのモデル(アーキテクチャ)を自動設計する手法
構成要素が、探索空間・探索手法・精度評価手法で大まかに分類される
探索空間
• Global(制約なく全体を設計する), cell-based(大まかな構成は決まって
おりそれを構成する小さなパーツのみを設計)
探索手法
• 強化学習、進化的アルゴリズム、gradientベース、random
精度測定手法
• 全学習、部分学習、weight-share、枝刈り探索
(出来上がったものの評価をどれだけサボれるか)
Neural Architecture Search (NAS)
63
T. Elsken, J. Metzen, and F. Hutter, "Neural Architecture Search: A Survey," in JMLR, 2019.
M. Wistuba, A. Rawat, and T. Pedapati, "A Survey on Neural Architecture Search," in arXiv:1905.01392,
2019.
https://github.com/D-X-Y/awesome-NAS
64. Mobility Technologies Co., Ltd.
探索空間:global、探索手法:REINFORCE
RNNのcontrollerがネットワーク構造を生成
• 畳み込み層のパラメータと、skip connectionの有無を出力
生成されたネットワークを学習し、その精度を報酬にする
NAS with Reinforcement Learning
64
Zoph and Q. V. Le, "Neural architecture search with reinforcement learning," in Proc. of ICLR, 2017.
65. Mobility Technologies Co., Ltd.
800GPUs for 28 daysの成果
配線芸!
NAS with Reinforcement Learning
65
Zoph and Q. V. Le, "Neural architecture search with reinforcement learning," in Proc. of ICLR, 2017.
66. Mobility Technologies Co., Ltd.
探索空間:cell、
探索手法:強化学習 (Proximal Policy Optimization)
Globalな設計にドメイン知識を活用、
構成するcellのみを自動設計
→探索空間を大幅に削減
• Normal cell x Nとreduction cellのスタック
• Reduction cellは最初にstride付きのOPで
特徴マップをダウンサンプル
• Reduction cell以降でチャネルを倍に
• Inception的思想
NASNet
66
B. Zoph, V. Vasudevan, J. Shlens, and Q. V. Le, "Learning transferable architectures for scalable image
recognition," in Proc. of CVPR, 2018.
67. Mobility Technologies Co., Ltd.
1. Hidden state※1 1, 2(配線元)を選択
2. それらへのOPsを選択※2
3. それらを結合するOP (add or concat)
を選択し新たなhidden stateとする
※1 Hidden state: 緑のブロックとhi, hi-I
※2 Hidden stateへのOP候補
NASNetのコントローラの動作
67
B. Zoph, V. Vasudevan, J. Shlens, and Q. V. Le, "Learning transferable architectures for scalable image
recognition," in Proc. of CVPR, 2018.
68. Mobility Technologies Co., Ltd.
1. Hidden state※1 1, 2 (配線元)を選択
2. それらへのOPsを選択※2
3. それらを結合するOP (add or concat)
を選択し新たなhidden stateとする
※1 Hidden state: 緑のブロックとhi, hi-I
※2 Hidden stateへのOP候補
NASNetのコントローラの動作
68
B. Zoph, V. Vasudevan, J. Shlens, and Q. V. Le, "Learning transferable architectures for scalable image
recognition," in Proc. of CVPR, 2018.
69. Mobility Technologies Co., Ltd.
1. Hidden state※1 1, 2 (配線元)を選択
2. それらへのOPsを選択※2
3. それらを結合するOP (add or concat)
を選択し新たなhidden stateとする
※1 Hidden state: 緑のブロックとhi, hi-I
※2 Hidden stateへのOP候補
NASNetのコントローラの動作
69
B. Zoph, V. Vasudevan, J. Shlens, and Q. V. Le, "Learning transferable architectures for scalable image
recognition," in Proc. of CVPR, 2018.
sep
3x3
avg
3x3
70. Mobility Technologies Co., Ltd.
1. Hidden state※1 1, 2 (配線元)を選択
2. それらへのOPsを選択※2
3. それらを結合するOP (add or concat)
を選択し新たなhidden stateとする
※1 Hidden state: 緑のブロックとhi, hi-I
※2 Hidden stateへのOP候補
NASNetのコントローラの動作
70
B. Zoph, V. Vasudevan, J. Shlens, and Q. V. Le, "Learning transferable architectures for scalable image
recognition," in Proc. of CVPR, 2018.
concat
sep
3x3
avg
3x3
71. Mobility Technologies Co., Ltd.
500 GPUs for 4 daysの成果
NASNet-A
71
B. Zoph, V. Vasudevan, J. Shlens, and Q. V. Le, "Learning transferable architectures for scalable image
recognition," in Proc. of CVPR, 2018.
72. Mobility Technologies Co., Ltd.
探索空間:cell、探索手法:強化学習 (REINFORCE)
Cellの構造を出力するRNNコントローラと、
コントローラーが出力する全てのネットワークをサブグラフとして保持できる
巨大な計算グラフ(ネットワーク)を同時に学習
→生成したネットワークの学習が不要に(1GPU for 0.45 days!)
• 全結合グラフからサブグラフをサンプリングしてくるイメージ
Single shot, weight share
詳細は資料**を参照
ENAS*
72
* H. Pham, M. Y. Guan, B. Zoph, Q. V. Le, and Jeff Dean, "Efficient Neural Architecture Search
via Parameter Sharing," in Proc. of ICML, 2018.
** https://www.slideshare.net/tkatojp/efficient-neural-architecture-search-via-parameters-
sharing-icml2018
74. Mobility Technologies Co., Ltd.
探索空間:cell、探索手法:gradient
グラフの接続やOPの選択をsoftmaxで実現することで、
構造探索もforward-backwardで実現
ENASと同じくshared param、wと構造を交互に最適化
DARTS
74
H. Liu, K. Simonyan, and Y. Yang, "DARTS: Differentiable Architecture Search," in Proc. of ICLR, 2019.
75. Mobility Technologies Co., Ltd.
DARTSと同じくgradient-based
各OPの実デバイス上での処理時間をlookup tableに保持
処理時間を考慮したロスをかける
ブロック毎に違う構造
後半の高速化のための1手段
FBNet
75
B. Wu, et al., "FBNet: Hardware-Aware Efficient ConvNet Design via Differentiable Neural Architecture
Search", in Proc. of CVPR, 2019.
クロスエントロピー 処理時間
76. Mobility Technologies Co., Ltd.
H. Cai, L. Zhu, and S. Han, "ProxylessNAS: Direct Neural Architecture Search on Target
Task and Hardware," in Proc. of ICLR, 2019.
M. Tan, B. Chen, R. Pang, V. Vasudevan, M. Sandler, A. Howard, and Q. V. Le, "MnasNet:
Platform-Aware Neural Architecture Search for Mobile," in Proc. of CVPR, 2019.
X. Dai, et al., "ChamNet: Towards Efficient Network Design through Platform-Aware
Model Adaptation," in Proc. of CVPR, 2019.
D. Stamoulis, et al., "Single-Path NAS: Device-Aware Efficient ConvNet Design," in Proc.
of ICMLW, 2019.
他にも
76
77. Mobility Technologies Co., Ltd.
Weight share + random search (ASHA) が良い*
Asynchronous Successive Halving (ASHA):複数のモデルを平行に学習を進
めながら有望なものだけを残して枝刈り
• Optunaで使えるよ!**
探索空間を、ランダムなDAG生成アルゴリズムが生成するグラフ
にすると想像以上に良い***
Random Search系
77
* L. Li and A. Talwalkar, "Random search and reproducibility for neural architecture search," in
arXiv:1902.07638, 2019.
** https://www.slideshare.net/shotarosano5/automl-in-neurips-2018
*** S. Xie, A. Kirillov, R. Girshick, and K. He, "Exploring Randomly Wired Neural Networks for Image
Recognition," in arXiv:1904.01569, 2019.
82. Mobility Technologies Co., Ltd.
Convの部分がFLOPsで見える部分
FLOPs ≠ 処理速度
82
N. Ma, X. Zhang, H. Zheng, and J. Sun, "ShuffleNet V2: Practical Guidelines for Efficient CNN
Architecture Design," in Proc. of ECCV, 2018.
86. Mobility Technologies Co., Ltd.
入力レイヤサイズ:H x W x N
畳み込みカーネル:K x K x N x M
convKxK, M と表記 (e.g. conv 3x3, 64)
出力レイヤサイズ:H x W x M
畳み込みの計算量:H・W・N・K2・M(バイアス項を無視)
畳み込み層の計算量
86
W
H
N M
K
K
W
H
入力特徴マップ
畳み込み
カーネル
N
出力特徴マップ
*
和要素積
× M
convK×K, M
畳み込み層の計算量は
• 画像/特徴マップのサイズ(HW)
• 入出力チャネル数(NM)
• カーネルサイズ(K2)
に比例
88. Mobility Technologies Co., Ltd.
大きな畳み込みカーネルを小さな畳み込みカーネルに分解
例えば5x5の畳み込みを3x3の畳み込み2つに分解
これらは同じサイズの受容野を持つが分解すると計算量は25:18
Inception-v2*では最初の7x7畳み込みを3x3畳み込み3つに分解
• 以降のSENetやShuffleNetV2等の実装でも利用されている**
空間方向の分解
88
特徴マップ
conv5x5 conv3x3 - conv3x3
* C. Szegedy, et al., "Rethinking the Inception Architecture for Computer Vision," in Proc. of CVPR, 2016.
** T. He, et al., "Bag of Tricks for Image Classification with Convolutional Neural Networks," in Proc. of
CVPR, 2019.
89. Mobility Technologies Co., Ltd.
nxnを1xnとnx1に分解することも
空間方向の分解
89
C. Szegedy, et al., "Rethinking the Inception Architecture for Computer Vision," in Proc. of CVPR, 2016.
90. Mobility Technologies Co., Ltd.
戦略
• 3x3の一部をサボって1x1のフィルタを利用する
• 3x3への入力となるチャネル数を少なくする(1x1で次元圧縮)
MobileNetが流行る前は大人気だった
SqueezeNet
90
conv 1x1, s1x1
conv 1x1, e1x1 conv 3x3, e3x3
concat
Fire
module
32
128128
256
256
Squeeze layer
Expand layer
F. N. Iandola, S. Han, M. W. Moskewicz, K. Ashraf, W. J. Dally, and K. Keutzer, "SqueezeNet: AlexNet-level
accuracy with 50x fewer parameters and <0.5MB model size," in arXiv:1602.07360, 2016.
91. Mobility Technologies Co., Ltd.
空間方向とチャネル方向の畳み込みを独立に行う
Depthwise畳み込み(空間方向)
• 特徴マップに対しチャネル毎に畳み込み
• 計算量:H・W・N・K2・M (M=N)
H・W・K2・N
Pointwise畳み込み(チャネル方向)
• 1x1の畳み込み
• 計算量:H・W・N・K2・M (K=1)
H・W・N・M
Depthwise + pointwise (separable)
• 計算量:H・W・N・(K2 + M)
≒ H・W・N・M (※M >> K2)
H・W・N・K2・M から大幅に計算量を削減
空間方向とチャネル方向の分解 (separable conv)
91
W
H
W
H
N
1
1
M
W
H
W
H
N
K
K
N
W
H
W
H
N M
K
K通常
depthwise
pointwise
92. Mobility Technologies Co., Ltd.
イメージ
空間方向とチャネル方向の分離
92
conv 3x3
conv 1x1
depthwise conv
spatial channel
in
out
94. Mobility Technologies Co., Ltd.
Separable convを多用したモデル
Xception
94
F. Chollet, "Xception: Deep learning with depthwise separable convolutions," in Proc. of CVPR, 2017.
論文の小ネタが面白い
https://qiita.com/yu4u/items/34cd33b944d8bdca142d#%E4%BD%99%E8%AB%87
95. Mobility Technologies Co., Ltd.
depthwise/pointwise convを多用
改良版のMobileNetV2**/V3***も存在
MobileNetV*
95
通常の畳み込み MobileNetの1要素
*A. Howard, et al., "MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications," in
arXiv:1704.04861, 2017.
** M. Sandler, et al., "MobileNetV2: Inverted Residuals and Linear Bottlenecks," in Proc. of CVPR, 2018.
*** A. Howard, et al., "Searching for MobileNetV3," in arXiv:1905.02244, 2019.
98. Mobility Technologies Co., Ltd.
NASの一種
前述のMobile inverted bottleneck
にSEモジュールを追加
(MBConv)
MBCnovのパラメータを探索
MBConv3 (k5x5)
→ボトルネックでチャネル数を3倍
depthwiseのカーネルが5x5
MNasNet
98
M. Tan, B. Chen, R. Pang, V. Vasudevan, M. Sandler, A. Howard, and Q. V. Le, "MnasNet:
Platform-Aware Neural Architecture Search for Mobile," in Proc. of CVPR, 2019.
100. Mobility Technologies Co., Ltd.
精度vs.計算量で目的にあったモデルを作りたいがそれぞれ最適化するのは大変
一般的にレイヤ数 (depth)、チャネル数 (width)、画像解像度 (resolution) が
大きくなると精度が良くなるが、分配によって精度が変わる
あるネットワークが与えられ、それをベースにより大きなネットワークを構成
しようとした際のdepth, width, resolutionの増加の最適割り当てを求める
EfficientNet-B0 (ほぼMnasNet)
で割り当てを求め、
以降は同じように
指数的に増加させる
(高速モデルではないが
流れで紹介)
EfficientNet
100
M. Tan and Q. V. Le, "EfficientNet: Rethinking Model Scaling for Convolutional Neural
Networks," in Proc. of ICML, 2019.
畳み込み層の計算量は
• 画像/特徴マップのサイズ(HW)
• 入出力チャネル数(NM)
• カーネルサイズ(K2)
に比例
101. Mobility Technologies Co., Ltd.
MobileNetのボトルネックとなっているconv1x1を
group conv1x1 + channel shuffleに置換
group conv: 入力の特徴マップをG個にグループ化し
各グループ内で個別に畳み込みを行う
(計算量 H・W・N・K2・M → H・W・N・K2・M / G)
channel shuffle: チャネルの順序を入れ替える
reshape + transposeの操作で実現
ShuffleNet
101
c shuffle
depthwise conv
gconv 1x1
spatial channel
gconv 1x1
X. Zhang, et al., "ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices," in
arXiv:1707.01083, 2017.
102. Mobility Technologies Co., Ltd.
FLOPsではなく対象プラットフォームでの実速度を見るべき
効率的なネットワーク設計のための4つのガイドラインを提言
1. メモリアクセス最小化のためconv1x1は入力と出力を同じにすべし
2. 行き過ぎたgroup convはメモリアクセスコストを増加させる
3. モジュールを細分化しすぎると並列度を低下させる
4. 要素毎の演算(ReLUとかaddとか)コストは無視できない
これらの妥当性がtoyネットワークを通して実験的に示されている
ShuffleNet V2
102
N. Ma, X. Zhang, H. Zheng, and J. Sun, "ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture
Design," in Proc. of ECCV, 2018.
103. Mobility Technologies Co., Ltd.
その上で新たなアーキテクチャを提案
ShuffleNet V2
103
N. Ma, X. Zhang, H. Zheng, and J. Sun, "ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture
Design," in Proc. of ECCV, 2018.
104. Mobility Technologies Co., Ltd.
チャネル方向に1次元の畳み込みを行う
ChannelNet
104
H. Gao, Z. Wang, and S. Ji, "ChannelNets: Compact and Efficient Convolutional Neural Networks via
Channel-Wise Convolutions", in Proc. of NIPS, 2018.
105. Mobility Technologies Co., Ltd.
チャネルをグループ化し、各グループごとに空間的にシフトするshift演算
(0 FLOPs) とconv1x1でモジュールを構成
ShiftNet
105
B. Wu, et al., "Shift: A Zero FLOP, Zero Parameter," in arXiv:1711.08141, 2017.
106. Mobility Technologies Co., Ltd.
他にも…
106
G. Huang, S. Liu, L. Maaten, and K. Weinberger, "CondenseNet: An Efficient DenseNet using Learned
Group Convolutions," in Proc. of CVPR, 2018.
T. Zhang, G. Qi, B. Xiao, and J. Wang. Interleaved group convolutions for deep neural networks," in Proc.
of ICCV, 2017.
G. Xie, J. Wang, T. Zhang, J. Lai, R. Hong, and G. Qi, "IGCV2: Interleaved Structured Sparse
Convolutional Neural Networks, in Proc. of CVPR, 2018.
K. Sun, M. Li, D. Liu, and J. Wang, "IGCV3: Interleaved Low-Rank Group Convolutions for Efficient Deep
Neural Networks," in BMVC, 2018.
J. Zhang, "Seesaw-Net: Convolution Neural Network With Uneven Group Convolution," in
arXiv:1905.03672, 2019.
114. Mobility Technologies Co., Ltd.
損失関数のヘッシアン(対角近似)から重みの重要度を算出
重要度の低い重みをpruning
LeNetの60%のパラメータを削除しても精度を維持
Optimal Brain Damage (OBD)
114
Y. LeCun, J. Denker, and S. Solla, "Optimal Brain
Damage," in Proc. of NIPS, 1990.
115. Mobility Technologies Co., Ltd.
損失関数のヘッシアン(対角近似)から重みの重要度を算出
重要度の低い重みをpruning
LeNetの60%のパラメータを削除しても精度を維持
Optimal Brain Damage (OBD)
115
Y. LeCun, J. Denker, and S. Solla, "Optimal Brain
Damage," in Proc. of NIPS, 1990.
Retrainして精度を回復させている
116. Mobility Technologies Co., Ltd.
Unstructuredなpruning
L2正則化を加えて学習し、絶対値が小さいweightを0に
実際に高速に動かすには専用ハードが必要
Deep Compression
116
S. Han, et al., "Learning both Weights and Connections for Efficient Neural Networks," in Proc. of NIPS, 2015.
S. Han, et al., "Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization
and Huffman Coding," in Proc. of ICLR, 2016.
S. Han, et al., "EIE: Efficient Inference Engine on Compressed Deep Neural Network," in Proc. of ISCA, 2016.
117. Mobility Technologies Co., Ltd.
Structured pruning(チャネルレベルのpruning)
各レイヤについて、フィルタの重みの絶対値の総和が
小さいものからpruning
各レイヤのpruning率はpruningへのsensitivityから
人手で調整
Pruning後にfinetune
Pruning Filters for Efficient ConvNets
117
H. Li, et al., "Pruning Filters for Efficient ConvNets," in Proc. of ICLR, 2017.
118. Mobility Technologies Co., Ltd.
Batch normのパラメータγにL1ロスをかけて学習
学習後、γが小さいチャネルを削除し、fine-tune
Network Slimming
118
チャネル毎に入力を平均0分散1に正規化、γとβでscale & shift
チャネルi
Batch
normalization
Z. Liu, et al., "Learning Efficient Convolutional Networks through Network Slimming," in Proc. of ICCV, 2017.
119. Mobility Technologies Co., Ltd.
L0ではなくLasso
に緩和して解く
あるfeature mapのチャネル削除した場合に
次のfeature mapの誤差が最小となるようチャネルを選択
Channel Pruning
119
Y. He, et al., "Channel Pruning for Accelerating Very Deep Neural Networks," in Proc. of ICCV, 2017.
120. Mobility Technologies Co., Ltd.
前述の手法と同じように、次のfeature mapの誤差が
最小となるレイヤをgreedy削除
削除後に、畳み込みの重みを誤差が最小になるように
調整→finetune
ThiNet
120
J. Luo, et al., "ThiNet: A Filter Level Pruning Method for Deep Neural Network Compression," in Proc. of
ICCV, 2017.
121. Mobility Technologies Co., Ltd.
これまでの手法は「X%削る」としたときどこを削るかという手法
どのレイヤを「X%」削るかを最適化したい
→ 強化学習(off-policy actor-critic)により
各レイヤ毎の最適なpruning率を学習
入力は対象レイヤの情報とそれまでのpruning結果、
報酬は –エラー率×log(FLOPs) or log(#Params)
AutoML for Model Compression and Acceleration (AMC)
121
Y. He, et al., "AMC - AutoML for Model Compression and Acceleration on Mobile Devices," in Proc. of
ECCV, 2018.
122. Mobility Technologies Co., Ltd.
ステップ毎にリソース制約(e.g. 計算量削減目標)を満たす
前提で、最適なlayerをgreedyにpruning
LUTを利用して効率的にリソースを推定
ステップ毎に少しだけfinetune
最終的目的のリソースまで
削減できたら長めに
finetuneして終了
NetAdapt
122
T. Yang, A. Howard, B. Chen, X. Zhang, A. Go, M. Sandler, V. Sze, and H. Adam, "NetAdapt:
Platform-Aware Neural Network Adaptation for Mobile Applications," in Proc. of ECCV, 2018.
123. Mobility Technologies Co., Ltd.
NNには、「部分ネットワーク構造」と「初期値」の
組み合わせに「当たり」が存在し、それを引き当てると
効率的に学習が可能という仮説
Unstructuredなpruningでその構造と初期値を見つけることができた
凄いrepo https://github.com/facebookresearch/open_lth
Lottery Ticket Hypothesis (ICLR’19 Best Paper)
123
https://www.slideshare.net/YosukeShinya/the-lottery-ticket-hypothesis-finding-small-trainable-neural-networks
Jonathan Frankle, Michael Carbin, "The Lottery Ticket Hypothesis: Finding Sparse,
Trainable Neural Networks," in Proc. of ICLR, 2019.
124. Mobility Technologies Co., Ltd.
Structuredなpruning後のネットワークをscratchから学習させても
finetuneと同等かそれより良い結果が得られるという主張
つまりpruningは、重要な重みを探索しているのではなく
各レイヤにどの程度のチャネル数を割り当てるかという
Neural Architecture Search (NAS) をしているとみなせる
Lottery Ticket Hypothesisではunstructuredで、低LRのみ、
実験も小規模ネットワークのみ
Network Pruning as Architecture Search
124
Z. Liu, et al., "Rethinking the Value of Network Pruning," in Proc. of ICLR, 2019.
125. Mobility Technologies Co., Ltd.
1モデルだが複数の計算量(精度)で動かせるモデルを学習
• Incremental trainingだと精度が出ない
• 同時学習だとBNの統計量が違うため学習できない
→ 切替可能なモデルごとにBN層だけを個別に持つ!
もっと連続的に変化できるモデル**や、そこからgreedyにpruningする(精度
低下が最も小さいレイヤを削っていく)拡張***も
Slimmable Neural Networks*
125
* J. Yu, L. Yang, N. Xu, J. Yang, and T. Huang, "Slimmable Neural Networks," in Proc. of ICLR, 2019.
** J. Yu and T. Huang, "Universally Slimmable Networks and Improved Training Techniques," in
arXiv:1903.05134, 2019.
*** J. Yu and T. Huang, "Network Slimming by Slimmable Networks: Towards One-Shot Architecture
Search for Channel Numbers," in arXiv:1903.11728, 2019.
126. Mobility Technologies Co., Ltd.
Pruning後のネットワークの重みを
出力するPruningNetを学習
Blockへの入力はNetwork encoding vector
前および対象レイヤのランダムなpruning率
• 全部入れたほうが良さそうな気がするが
著者に聞いたところ効果なし
End-to-endで学習できる!
学習が終わると精度vs.速度のトレードオフの
優れたモデルを探索(手法は何でも良い)ここではGA
MetaPruning
126
Z. Liu, H. Mu, X. Zhang, Z. Guo, X. Yang, T. Cheng, and J. Sun, "MetaPruning: Meta Learning for
Automatic Neural Network Channel Pruning," in Proc. of ICCV’19.
129. Mobility Technologies Co., Ltd.
ネットワークの途中に結果の出力層を追加
学習時にはすべての出力層に適当なweightをかけて学習
そのsoftmaxのエントロピーが閾値以下の場合にExit
BranchyNet
129
S. Teerapittayanon, et al., "BranchyNet: Fast Inference via Early Exiting from Deep Neural Networks," in
Proc. of ICPR, 2016.
130. Mobility Technologies Co., Ltd.
ACT: 各ResBlockがhalting scoreを出力、合計が1を超えると
以降の処理をスキップ(空間領域でも行うとSACT)
Spatially Adaptive Computation Time (SACT)
130
計算量に関する勾配を追加
M. Figurnov, et al., "Spatially Adaptive Computation Time for Residual Networks," in Proc. of CVPR, 2017.
131. Mobility Technologies Co., Ltd.
各レイヤ毎に、直前までの特徴マップを入力とするRNNが
利用する畳み込みフィルタ集合を決定
Keepした畳み込みフィルタ数と元タスクの損失関数(最終層の場合)を負の報
酬としてQ学習でRNNを学習
Runtime Neural Pruning
131
J. Lin, et al., "Runtime Neural Pruning," in Proc. of NIPS, 2017.
132. Mobility Technologies Co., Ltd.
Policy networkに画像を入力、どのBlockをスキップするかを出力
KeepとなったResBlockのみをforward
認識が失敗した場合は負の報酬を、成功した場合にはスキップ率に応じた正の
報酬を与えることでpolicy networkを学習
BlockDrop
132
Z. Wu, et al., "BlockDrop: Dynamic Inference Paths in Residual Networks," in Proc. of CVPR, 2018.
135. Mobility Technologies Co., Ltd.
Distilling the Knowledge in a Neural Network
135
……
学習画像
学習済みモデル
学習するモデル
…
正解ラベル
(ハード
ターゲッ
ト)
通常T = 1のsoftmaxのTを大きくした
ソフトターゲットを利用
…
ソフトターゲット
ソフト
ターゲット
ハード
ターゲット
正解ラベルと
学習モデル出力の
両方を利用
G. Hinton, et al., "Distilling the Knowledge in a Neural
Network," in Proc. of NIPS Workshop, 2014.
136. Mobility Technologies Co., Ltd.
教師よりもdeepかつthinな生徒を学習する
生徒のguided layerが、教師のhit layerの出力を
正確に模擬する (regression) ロスを追加
FitNet
136
A. Romero, et al., "FitNets: Hints for Thin Deep Nets," in Proc. of ICLR, 2015.
137. Mobility Technologies Co., Ltd.
さいきんの(雑)
137
B. Heo, et al., "A Comprehensive Overhaul of Feature Distillation," in Proc. of ICCV, 2019.
140. Mobility Technologies Co., Ltd.
weights (W), activations (A), gradients (G), errors (E)
の全てを量子化
WAGE
140
S. Wu, et al., "Training and Inference with Integers in Deep Neural Networks," in Proc. of ICLR, 2018.
141. Mobility Technologies Co., Ltd.
weights (W), activations (A), gradients (G), errors (E)
WAGE
141
S. Wu, et al., "Training and Inference with Integers in Deep Neural Networks," in Proc. of ICLR, 2018.
バイナリ
142. Mobility Technologies Co., Ltd.
推論時にuint8の演算がメインとなるように
学習時に量子化をシミュレーションしながら学習
TensorFlow公式に実装が存在**
Quantization and Training of Neural Networks for Efficient
Integer-Arithmetic-Only Inference*
142
* B. Jacob, et al., "Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only
Inference," in Proc. of CVPR, 2018.
** https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/quantize/README.md
150. Mobility Technologies Co., Ltd.
例えば、
信頼度:1次元
物体の領域:4次元
(x, y, w, h)
を出力するように学習すると
1クラスの物体検出が可能
物体検出への応用
150
特徴マップ
4
4
入力画像
w
h
(x, y)
5
151. Mobility Technologies Co., Ltd.
例えば、
信頼度:1次元
物体の領域:4次元
(x, y, w, h)
+クラスらしさ:C次元
を出力するように学習すると
Cクラスの物体検出が可能
物体検出への応用
151
特徴マップ
4
4
入力画像
w
h
(x, y)
車
5+C
152. Mobility Technologies Co., Ltd.
Backbone, Neck, Headから構成、複数スケールの特徴マップを出力
物体検出モデルの汎用的な表現
152
A. Bochkovskiy, C. Wang, and H. Liao, "YOLOv4: Optimal Speed and Accuracy of Object Detection," in
arXiv:2004.10934, 2020.
クラス分類モデル
(のFCの手前)
物体検出特有の
モジュール
複数スケールの
検出結果(headとも)
154. Mobility Technologies Co., Ltd.
出力層付近の特徴を入力層付近の特徴へと徐々に統合することで
特徴の強さと特徴マップの解像度を両立
Feature Pyramid Network (FPN)
154
T. Lin, P. Dollar, R. Girshick, K. He, B. Hariharan, and S. Belongie, "Feature Pyramid
Networks for Object Detection," in Proc. of CVPR, 2017.
特徴の強さ:強
解像度:低
e.g. Faster R-
CNN, YOLO
特徴の強さ:弱
解像度:高
e.g. SSD
特徴の強さ:強
解像度:高
FPN
Nearest neighbor
で解像度調整
1x1でチャネル数調整
155. Mobility Technologies Co., Ltd.
エッジ等のlow-levelの情報をネットワーク全体に伝播させる
Path Aggregation Network (PANet)
155
S. Liu, L. Qi, H. Qin, J. Shi, and J. Jia, "Path Aggregation Network for Instance Segmentation," in Proc. of CVPR,
2018.
Backbone FPN Bottom-up path
low-levelの特徴の伝播に
100 layerくらい必要
‘short cut’ path
を作ってあげる
156. Mobility Technologies Co., Ltd.
エッジ等のlow-levelの情報をネットワーク全体に伝播させる
Path Aggregation Network (PANet)
156
S. Liu, L. Qi, H. Qin, J. Shi, and J. Jia, "Path Aggregation Network for Instance Segmentation," in Proc. of CVPR,
2018.
Backbone FPN Bottom-up path
low-levelの特徴の伝播に
100 layerくらい必要
‘short cut’ path
を作ってあげる
3x3 conv
stride=2
3x3 conv
157. Mobility Technologies Co., Ltd.
PANetを簡略化、同一解像度のskip connection、
top-down+bottom-upを1モジュールとして繰り返す
(単一モジュールとして考えることで簡略化が可能に)
Bi-directional Feature Pyramid Network (BiFPN)
157
M. Tan, R. Pang, and Quoc V. Le, "EfficientDet: Scalable and Efficient Object Detection," in Proc. of CVPR, 2020.
158. Mobility Technologies Co., Ltd.
PANetを簡略化、同一解像度のskip connection、
top-down+bottom-upを1モジュールとして繰り返す
(単一モジュールとして考えることで簡略化が可能に)
Bi-directional Feature Pyramid Network (BiFPN)
158
M. Tan, R. Pang, and Quoc V. Le, "EfficientDet: Scalable and Efficient Object Detection," in Proc. of CVPR, 2020.
159. Mobility Technologies Co., Ltd.
L. Liu, W. Ouyang, X. Wang, P. Fieguth, J. Chen, X. Liu, and M.
Pietikainen, "Deep Learning for Generic Object Detection: A
Survey," in arXiv:1809.02165, 2018.
Z. Zou, Z. Shi, Y. Guo, and J. Ye, "Object Detection in 20
Years: A Survey" in arXiv:1905.05055, 2019.
X. Wu, D. Sahoo, and S. Hoi, "Recent Advances in Deep
Learning for Object Detection," in arXiv:1908.03673, 2019.
サーベイとか
159
161. Mobility Technologies Co., Ltd.
skip connectionを持ったencoder-decoderモデル
FPNと同様コンテキストと解像度の両立が目的
• Encoderは何でも良い
(U-Netは概念)
• skipはaddではなくconcat
• FPNはチャネル数固定
U-Net
161
O. Ronneberger, P. Fischer, and T. Brox, "U-Net: Convolutional Networks for Biomedical Image Segmentation,"
in Proc. of MICCAI, 2015.
concat
encoder decoder
165. Mobility Technologies Co., Ltd.
姿勢推定・ランドマーク検出への応用
165
A. Newell, K. Yang, and J. Deng, "Stacked Hourglass Networks for Human Pose Estimation," in Proc. of ECCV,
2016.
C個の関節点・ランドマーク毎の
ヒートマップ
を出力するように学習すると
姿勢推定・ランドマーク検出
が可能
特徴マップ
C
C
166. Mobility Technologies Co., Ltd.
UNetのようなencoder/decoderモジュールを積み重ねる
Stacked Hourglass
166
A. Newell, K. Yang, and J. Deng, "Stacked Hourglass Networks for Human Pose Estimation," in Proc. of ECCV, 2016.
max pool nearest neighbor
upsampling
residual module (bottleneck)
167. Mobility Technologies Co., Ltd.
解像度の違う複数の並列パスを持つ
たまに全ての解像度の情報を統合するexchange unitが存在する
HRNet
167
A. Newell, K. Yang, and J. Deng, "Stacked Hourglass
Networks for Human Pose Estimation," in Proc. of ECCV, 2016.