CNN系ネットワーク(AlexNet,VGG,ResNet等)の解説リンクまとめ
画像分類問題を解くためのCNN系の様々なネットワークについて調べていたので、備忘録も兼ねて参考になったリンクをまとめておく。
全般
下記2つの記事に目を通しておけば、たいていのネットワークの知識は網羅できる。
特に前者は記述量に圧倒される。一読の価値あり。
後者はあっさりめなので、さっと軽い気持ちで読める。
畳み込みニューラルネットワークの最新研究動向 (〜2017)
Neural Network Architectures
各ネットワークの参考リンク
LeNet5
- 1944年にYann LeCunが発表した最初のCNN
- 畳み込みのフィルタをパラメータとして学習させるというCNNのアイディアはここで生まれた
定番のConvolutional Neural Networkをゼロから理解する
Convolutional Neural Networkとは何なのか
AlexNet
- 2012年にAlex Krizhevskyが発表したLeNetを大幅に改良したネットワーク
- ImageNetの画像分類コンテストで2位以下に大差をつけて圧勝し、深層学習が画像認識に有効であることを初めて広く世に知らしめた
- 活性化関数にReLU関数を利用したり、Dropoutにより過学習の抑制したりといった、後世でも利用される手法を生み出した
VGG
- オックスフォード大学が発表したモデル
- 9x9や11x11のサイズのフィルターを使用する代わりに、3x3のフィルターを何層にも積み重ねて使用
http://cedro3.com/ai/mini-vgg-net/
Network-in-network
- 線形な畳み込み層の代わりに小さなニューラルネットワーク(MLPConvと呼ぶ)を挿入することで、非線形な特徴を抽出しやすくした
- 出力層にて、過学習しやすい全結合層の代わりに、クラス数と同じチャンネル数の層を置き、各チャンネルの平均をもって各クラスのスコアとする形とした
Network In Network architecture: The beginning of Inception
Network In Networkを動かしてみた
GoogLeNet
- 色々なサイズのフィルタをパラレルに適用し、大きなフィルタと同等の精度を得るInceptionという考え方を踏襲
- 各フィルタに入力を手渡す前に1x1畳み込みで次元削減している
ResNet
- Microsoftが2015年に発表
- 層を深くしすぎると起きる勾配消失問題を、Shortut Connection(重み層の後の活性化関数に、重み層を経る前の値も一緒に入力)という考え方で解決した
[Residual Network(ResNet)の理解とチューニングのベストプラクティス]
(https://deepage.net/deep_learning/2016/11/30/resnet.html)
Squeeze Net
- 同じ精度のAlexNetに比べて3倍高速で500倍省メモリ
- Fire Moduleという、1x1の畳み込み→活性化関数→1x1の畳み込みor3x3の畳み込み→活性化関数という一連の流れを、何層にも積み重ねたもの