この記事の読者
キーワード・知ってると理解がしやすい
Index
MobileNet V1 とは
2017 に Google から提案された手法.
深層学習・DeepLearning で使用されるネットワークアーキテクチャの一つ.
ネットワークを複雑化・多層化することをせず、「精度」と「速度」の 2つを最大化するために単純なネットワークアーキテクチャにしている.
ネットワークアーキテクチャ
下図の左は通常のCNNのレイヤ. (Convolution + BatchNorm + ReLU)
下図の右がMobileNetのレイヤで、2 つの CNN で本来の CNN の役割をしている.
この 2つの CNN を合わせて Depthwise Separable Convolution と呼ぶ.
Depthwise Separable Convolution
この 2 つの CNN をそれぞれ Depthwise Convolution と Pointwise Convolution と呼ぶ.
通常の畳み込みが空間方向とチャネル方向の畳み込みを同時に行うのに対して、 Depthwise Separable Convolution は Depthwise (空間方向)の畳み込みを行った後に、 Pointwise (チャネル方向)の畳み込みを行う.
通常の Convolution
比較のために、通常のConvolution を示す.
パラメータ数.
Depthwise Convolution
チャネル方向のカーネルフィルターをなくし、空間方向のフィルターのみで畳み込みを行う.
パラメータ数
Pointwise Convolution
空間方向のカーネルフィルターをなくし、チャネル方向のフィルターのみで畳み込みを行う.
パラメータ数
Depthwise Separable Convolution 全体
2 つの畳み込みを連結して、Depthwise Separable Convolution 全体となる.
パラメータ数
パラメータ数
通常のConvolution では、 だが、
MobileNet V1 の場合では、
まで下がる.
だけ減っていることがわかる.
まとめ
- 通常の畳み込みを 2 つの方向(空間方向とチャネル方向)に分割したことでパラメータ数が減り、精度を低下させずに計算を高速化させることが可能.