1行定義
VGGとは、3×3の小さなフィルタの畳み込み層を何層も重ねて深くした、オックスフォード大学の研究グループが提案したCNNのことです。
くわしく
VGGは、オックスフォード大学のSimonyanとZissermanが2014年に発表したCNNです。名前は、2人が所属する研究グループVisual Geometry Groupの略称に由来します。層を深くすると精度がどこまで上がるかを確かめるため、深さだけを変えた複数の構成を比べました。
小さなフィルタを重ねる
それまでのCNNには、AlexNetのように、最初の層で11×11などの大きなフィルタを使うものがありました。VGG16やVGG19では、畳み込み層のフィルタをすべて3×3にそろえています。
3×3の層を、間にプーリングを入れずに2つ重ねると5×5の範囲を、3つ重ねると7×7の範囲を見られます。入力と出力のチャネル数をどちらもCとすると、3×3を3層重ねた重みの数は3 × 3 × 3 × C × C = 27C²で、7×7の1層の49C²より少なくなります。さらに、層ごとにReLU関数が入るので、より複雑な特徴を表せます。
構成
畳み込み層を数層重ねては、最大値プーリングで縦横を半分にする流れを繰り返します。チャネル数は64から始まり、プーリングのたびに2倍になって512で止まります。最後に全結合層3層で1,000クラスに分類します。重みをもつ層が16層のものをVGG16、19層のものをVGG19と呼びます。
長所と短所
構造が単純で、学習済みモデルも公開されました。そのため、転移学習の特徴抽出器や、SSDやSegNetなどの土台として広く使われました。一方で、VGG16のパラメータ数は約1億3,800万と多く、その大部分は最後の全結合層にあります。計算も重いため、スマートフォンなどの端末で動かす用途には向きません。
2014年のILSVRCでは、画像分類部門でGoogLeNetに次ぐ2位、位置特定の部門で1位でした。
覚え方
「VGGは3×3を積み重ねた、単純で重いCNN」と覚えます。
G検定での出題
出題のされ方
3×3の小さなフィルタを重ねる設計の利点、VGG16・VGG19の層の数え方、2014年のILSVRCでの順位、パラメータの多くが全結合層に集中していることが問われます。GoogLeNetやResNetとの違いも論点です。
混同しやすい用語
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
VGG16の「16」は、畳み込み層と全結合層を合わせた、重みをもつ層の数を表している。
答えを見る
答え ◯ 正しい
VGG16は畳み込み層13層と全結合層3層からなります。重みをもたないプーリング層は数えません。VGG19は畳み込み層が16層です。
-
VGGは、2014年のILSVRCの画像分類部門で優勝したモデルである。
答えを見る
答え × 誤り
画像分類部門では2位で、優勝はGoogLeNetでした。VGGのチームは、物体の位置を示す位置特定の部門で1位になっています。
-
VGGは、層を飛び越えて入力を出力に足し合わせるスキップ結合を使い、19層までの深さを実現した。
答えを見る
答え × 誤り
VGGは畳み込み層とプーリング層を順に重ねただけの単純な構成です。スキップ結合は、2015年のResNetで導入された仕組みです。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目26 画像認識)
- Karen Simonyan, Andrew Zisserman, Very Deep Convolutional Networks for Large-Scale Image Recognition, ICLR 2015, arXiv:1409.1556 (Abstract、2.2 Configurations、2.3 Discussion、Table 2、4.5 Comparison with the State of the Art)