ラビットチャレンジ【深層学習day2】~最新のCNN~

概要

CNNは現在でも様々な改良モデルが研究・開発されている

最新のモデルがどのような構造であるかを把握することは大切である

この章では以下の項目を学んだ

・ILSVRC(appendix)

・AlexNet

・GoogLeNet(appendix)

・VGGNet(appendix)

・ResNet(appendix)

ILSVRC

これから学習するCNNモデルはどれもILSVRCで優勝(VGGNetは2位)しているモデルである

ILSVRCは、ImageNet Large Scale Visual Recognition Challengeの略である

画像分類系のコンペティションで256x256のカラー画僧を1,000分類する

AlexNet

ILSVRC2012で優勝

CNNの層をシンプルに積み重ねたネットワークである

活性化関数にはReLUを使用しており、過学習を防ぐためにサイズ4096の全結合層の出力にドロップアウトを使用している

GoogLeNet

ILSVRC2014で優勝

下図のようなInception moduleネットワーク内に9個入っている

f:id:Maruring:20210716201049p:plain

Inception module内にある1x1 Convはどんな役割をしているのか?

NNの層を深く大きくし過ぎると無駄なニューロン(結果にあまり影響しない・重りが0)が大量発生してしまう

0重りが多いことをspase(疎)という

GoogLeNetではSpaseをDence(密)として表現することで、上記の問題を解決した

具体的には1x1Convによりチャネル方向に内積をとることで相関のあるニューロンをまとめる

また、横縦にも繋がりは存在するため、3x3Conv,5x5Convをした後に1x1Convをすることで情報を圧縮する

VGGNet

ILSVRC2014で2位(単体であればGoogLeNetより精度は高い)

3x3ConvとMAxPoolingを積み重ねた非常にシンプルなネットワーク

Global Avg.Poolingを使用して様々なサイズの画僧を利用

VGG-16や152とあるが、「16」、「152」は重みがある層(3x3Conv)の数を示す

当時はVGG-16とVGG-19の性能を評価したところ、層が浅いVGG-16の方が良かった

ResNet

ILSVRC2015で優勝

residual blockによりdegradation問題(浅い層のmodelが深い層のmodelより性能が良くなる)を解決している

residual blockにより勾配消失問題にも対応している