けの〜のブログ

ガッキーでディープラーニングして教育界に革命を起こす

CNN Architectures VGGNet,AlexNet,GoogleNet,ResNetのケーススタディ

今回はCNNの様々なモデルについて書きとめようと思う。

 

VGGNetはそれまで首位を獲得していたAlexNetと比べ

より層を深くし、重みフィルターのサイズも小さくしている
Layer数 AlexNet 8 →VGGNet 16~19

重みフィルター(Conv層)

3×3, stride1,zero-padding1

Pooling

2×2,stride2

 

以前にも書き留めたが、重みフィルターを小さくすることには様々な利点がある。

7×7のConv層を1層重ねるのと、3×3のConv層を3層重ねるのは、見ている範囲(ピクセル数)は同じである。

しかし3×3のConv層を3層重ねると

非線形性をより表現でき、調整するパラメーター数を少なくすることができる。

 

GoogleNet
22Layer,

Inception Moduleという計算を効率よく行う工夫がなされている。

Inception Moduleでなされている工夫は、

Inputに対し複数の畳み込みを行い、次の層へと渡すということがなされる

しかし保持するParameterがとても大きくなってしまうため、

f:id:keno-lasalle-kagoshima:20171116123531p:plain

このように1×1の畳み込み層を挟んでから次の畳み込み層へ渡している。

この1×1の畳み込み層をbottleneck Layerと呼ぶ。

Fully ConnectedLayerは取り除かれている

f:id:keno-lasalle-kagoshima:20171116124407p:plain

さらに分類を行う処理を三つ取り入れている。

AlexNetに比べて約12分の1のparameter数である。

 

これらの工夫はBatch Normalizationが発明されていないためになされたものだが、BatchNormalizationを使えばこのような構造を取る必要はなくなるようだ。 

ResNet

152層も重ねている 

しかし普通層を重ねすぎると弊害が起こる

それは過学習を起こしてtestdataに対して低いスコアを出すということではなかった。

 

Optimization、重みの最適化の段階でうまく機能していないという問題点があった

解決策として

f:id:keno-lasalle-kagoshima:20171116133733p:plain

 

 residualと呼ばれる考えを使用しているらしい(理解に時間がかかる、、、)

 

他にもこれらを組み合わせた構造があるようだ。