オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】MobileNet V1

この記事の読者

深層学習・ディープラーニングの手法の1つである「MobileNet V1」について知りたい.



キーワード・知ってると理解がしやすい

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 ConvolutionPointwise Convolution と呼ぶ.



通常の畳み込みが空間方向とチャネル方向の畳み込みを同時に行うのに対して、 Depthwise Separable Convolution は Depthwise (空間方向)の畳み込みを行った後に、 Pointwise (チャネル方向)の畳み込みを行う.

通常の Convolution

比較のために、通常のConvolution を示す.



パラメータ数.

 M \times K \times K \times N

Depthwise Convolution

チャネル方向のカーネルフィルターをなくし、空間方向のフィルターのみで畳み込みを行う.



パラメータ数

 K \times K \times N

Pointwise Convolution

空間方向のカーネルフィルターをなくし、チャネル方向のフィルターのみで畳み込みを行う.



パラメータ数

 M \times N

Depthwise Separable Convolution 全体

2 つの畳み込みを連結して、Depthwise Separable Convolution 全体となる.



パラメータ数

 K \times K \times N + M \times N

パラメータ数

通常のConvolution では、 M \times K \times K \times N だが、 MobileNet V1 の場合では、 K \times K \times N + M \times N まで下がる.

 \dfrac{(M+K^2 )N}{MK^2 N} = \dfrac{1}{K^2} + \dfrac{1}{M}



だけ減っていることがわかる.

まとめ

  • 通常の畳み込みを 2 つの方向(空間方向とチャネル方向)に分割したことでパラメータ数が減り、精度を低下させずに計算を高速化させることが可能.

参考

  • MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

  • MobileNet(v1,v2,v3)を簡単に解説してみた