VGG16はネットワークの構成の種類です。
2014年のILSVRCで2位になった、オックスフォード大学のVGGチームのネットワーク。AlexNetをより深くした、畳み込み層とプーリング層から成るどノーマルなCNNで、重みがある層(畳み込み層や全結合層)を16層、もしくは19層重ねたもの。それぞれVGG16やVGG19と呼ばれる。
VGG19の方が新しいようなので、VGG19の論文を読みました。この論文にVGG16についても載っています。
概要
VGG19を構成して性能の評価を行った。VGG19はConvNetのアーキテクチャの深さを深くしたもの。性能が向上することから、性能の向上とアーキテクチャの深みは関係があることを結論づけています。小さなconvolution filter(3 x 3)を使った深いアーキテクチャで精度が向上しました。
先行研究との比較
精度が向上した。
技術や手法の特徴
ネットワーク
- 3×3(一部1×1)の畳み込みのみを利用する
- 同一出力チャネル数の畳み込み層を幾つか重ねた後にmax poolingにより特徴マップを半分に縮小する
- max poolingの後の畳み込み層の出力チャネル数を2倍に増加させる
学習方法
バッチサイズは256、モメンタムは0.9、dropout ratio0.5、learning rate 10^-2からはじめて改善されるごとに減らしていきます。重みの初期化が重要なので、重みを学習させる時はtable1のAの構成でrandom initializationすることからはじめています。
理由はAの構成は、ネットワークが深くなく、random initializationが可能だからです。そして、B~Eのより深いネットワークの重みの初期化には、Aで学習済みの重みをはじめの4つのconv layerと最後の3つのfully connected layerに適用します。Aの学習を行う際は、learning rateの減少は行いません。
検証方法
ILSVRC-2012 dataset
を使って、top-1 errorとtop-5 errorで比較しました。top-1 errorは画像を分類した上位1つに正解の分類が入っていない確率、top-5は上位5つです。
テストの画像サイズを統一したケース。
ネットワークが深く、学習の画像サイズの乱れがあった方がうまくいっています。
テストの画像サイズが複数あるケース。
これも深い方がよい結果となっています。
1枚を1回で判断するdense evaluation(今まで使っていたもの)と、1つの画像に対してwindow slidingして判断するmulti-crop evaluationで精度を出しています。
vgg16とvgg19の比較だとvgg16の方が良い結果になっています。単に深くすればよいものではないようですね。
複数のモデルの結果の平均値で比較しています。
改善する組み合わせもありました。
table6の内容は他の手法と比較してもかなり良い結果となっています。
議論
他のモデルでも更にネットワークを深くすることで精度が上がる可能性がある。Appendix B
を参照。
その他
Isotropically rescaling
multi-corp evaluation
Multi-crop は、1つの入力画像に対して複数のCropをする手法(Window sliding)