社会人博士の深層学習ブログ

深層学習を使った環境音認識研究で、働きながら博士号を取得しました

【深層学習】CNNを用いた画像分類手法まとめ(VGG, ResNet, Inceptionなど)

社会人博士を始めるにあたり、CNNの様々なモデルやテクニックについて勉強したので、忘れないようまとめておきます。

体験談も書いていますので、よければそちらもご覧ください。

ys0510.hatenablog.com

 

参考文献は以下のサーベイ論文です。図もこちらから引用させていただきました。

 

http://mprg.jp/data/MPRG/F_group/F188_uchida2017.pdf

 

ILSVRCで振り返るCNNの進化

・AlexNet, ZFNet(2012, 2013)

それまでのデファクトスタンダードだった、SIFT+Fisher Vector+SVMに大差をつけて優勝。

各パラメータはWeight decay(l2正則化)により正則化が行われている。lossが減少しなくなったタイミングで、学習率を1/10にする。

この最適化手法は、現在においてもベストプラクティス。

全結合層部分のパラメータが多く、過学習を起こしやすいため、dropoutにより抑えている。しかし、学習ステップが2倍になったと報告されている。

1層目のカーネルが大きすぎるため、極端に高周波、低周波の情報が取得されてしまう。また、ストライドも大きいため、エリアシングを起こしていた。

→ZFNetで改善された。

f:id:ys0510:20191014103626p:plain

AlexNet(2012), ZFNet(2013)

 

・GoogLeNet(2014)

図1のような、Inceptionモジュールが導入される。

本来なら、5x5のフィルタだけで表現できるはずだが、パラメータ数が増えすぎてしまう

→明示的にフィルタサイズを複数にし、パラメータ数を削減する

Global Average Poolingを最終層に導入し、全結合層を利用しない

→パラメータ数を削減し、過学習を防ぐ。このGAPの利用は、現在でもベストプラクティス。

 

f:id:ys0510:20191014103758p:plain

GoogLeNet(2014), Inception

 

・VGGNet(2014)

・すべて3x3の畳み込みにした

5x5の畳み込みは、2層の3x3畳み込みと同一のreceptive fieldでパラメータが25→18に削減

・Xavierの初期値を用いることで、深い層の学習を可能にした

 

・ResNet(2015)

図2に示すResidualモジュールを利用する。ショートカットを用いることで、より深い層のネットワークを学習可能。

ReLUを用いる場合の初期値を導出(Heの初期値)

f:id:ys0510:20191014105507p:plain

Residualモジュール

 

・SENet(2017)

チャンネル方向のAttention機構。基本的にはどのネットワークにも適用可能。

f:id:ys0510:20191014105803p:plain

 

・Xception

Inceptionの改良。Separable convolution(depthwise convolutionとpointwise convolutionに分解)を用いることで、パラメータ数を削減。結果的に、ResNetやInception-v3よりも高精度な認識性能。

f:id:ys0510:20191014105845p:plain

 

 

学習時間と性能比較

モデルによって学習時間がかなり差があるようです。

f:id:ys0510:20191014110114p:plain

学習時間と性能比較

 

まとめ

VGGやResNetなど、たくさんあるCNNのネットワークについて、サーベイ論文をもとに解説しました。

 

 意外にあまり認識されていないかもしれませんが、CNNは音声データにも非常によく使われます。

以下の記事では、ミスチルの曲分類の実験やアマゾンエコーに使われているCNN技術について解説していますので、よければそちらもご覧ください。

 

ys0510.hatenablog.com

ys0510.hatenablog.com

ys0510.hatenablog.com

 

ys0510.hatenablog.com

 

ご意見、ご質問、調べてほしいことなどあれば、コメントください。

励みになりますので、お気に入り登録もよろしくお願いいたします!