VGGNet (G検定)

VGGNet

1. 定義と概要

VGGNetとは、英オックスフォード大学のVisual Geometry Group(VGG)に所属するKaren Simonyan氏とAndrew Zisserman氏が2014年に発表したモデルです。論文『Very Deep Convolutional Networks for Large-Scale Image Recognition』で提案された、CNNによる画像分類モデル群の総称になります。CNNとは、画像の特徴を捉えるのに適したネットワーク構造を持つ畳み込みニューラルネットワークの略称です。

すべての畳み込み層でフィルタサイズを3×3に統一し、それを何層も重ねてネットワークの深さを増やした点が最大の特徴です。重みを持つ層の数に応じて11・13・16・19層のバリエーションがあります。なかでも13の畳み込み層と3つの全結合層(前の層のすべてのユニットと結びつき、最終的な分類判断を行う層)からなる16層構成のVGG16、16の畳み込み層と3つの全結合層からなる19層構成のVGG19が代表的なモデルとして知られています。

2012年のAlexNetは、11×11や5×5など複数の大きさの畳み込みフィルタ(画像から局所的な特徴を抽出するために使う小さな窓のようなもの)を組み合わせた8層構成でした。これに対しVGGNetの開発チームは、3×3という最小級のフィルタを2層重ねると5×5フィルタ1層と同じ受容野(1つの出力が影響を受ける入力画像上の範囲)を得られることを示しました。3層重ねれば7×7フィルタ1層分の受容野になります。

しかもパラメータ(モデルが学習によって調整する数値の総数)を抑えながら、活性化関数ReLU(入力が0以下なら0、0より大きければそのまま出力する関数)を通す回数を増やせることも分かりました。この発見にもとづき、フィルタサイズを3×3に統一したまま層を積み重ねる設計方針で、AlexNetの8層から16〜19層へと大幅にネットワークを深くしたモデルがVGGNetです。

2. 試験対策ポイント

まず整理しておきたいのは、VGGNetの設計思想の中心にある、3×3の小さいフィルタを重ねて深さを稼ぐ方針そのものです。3×3フィルタを2層重ねると5×5フィルタ1層、3層重ねると7×7フィルタ1層と同じ受容野を得られる一方、パラメータ数を抑えつつ活性化関数を通す回数が増える分、表現力が高まります。

VGG16・VGG19という名称は、それぞれ重みを持つ層(畳み込み層と全結合層の合計)が16層・19層であることに由来します。内訳の違いもあわせて押さえておきたい点です。

モデル 畳み込み層 全結合層 重みを持つ層の合計
VGG16 13層 3層 16層
VGG19 16層 3層 19層

全結合層が3つである点は共通で、違いは畳み込み層の数にあります。

ILSVRC 2014(大規模画像認識のコンテスト)では、VGGNetは画像分類部門でtop-5エラー率(モデルが予測した上位5候補の中に正解ラベルが含まれていない割合を示す評価指標)7.3%を記録し、2位となりました。物体の位置を特定する局所化(ローカライゼーション。画像内で物体がどこにあるかを矩形などで特定するタスク)部門では1位という結果を残しています。分類部門で優勝したのはtop-5エラー率6.7%のGoogLeNetで、同じ2014年大会に登場した2つの代表的なアーキテクチャという関係にあります。

VGGNetは構造がシンプルで規則的な一方、パラメータ数が非常に多い点が制約です。代表的なVGG16は約1億3,800万個のパラメータを持ち、その大半が全結合層に集中しています。VGGNetより層の深いGoogLeNetの方がパラメータ数は少なく、この違いは後続のアーキテクチャがパラメータ効率を重視する方向へ進んだ背景の一つとして整理しておきたいところです。

構造の単純さゆえに、VGGNetは学習済みモデルを別のタスクに応用する転移学習(学習済みモデルが持つ知識を別のタスクに応用する手法)のベースモデルとして扱いやすくなっています。教育・研究の場で広く使われてきたモデルという位置づけもあわせて理解しておきたい論点です。

3. 関連概念との比較・相違点

AlexNetとの最大の違いは、フィルタサイズと設計思想にあります。AlexNetは11×11や5×5など複数サイズの大きなフィルタを組み合わせた8層構成だったのに対し、VGGNetは3×3の小さいフィルタに統一して16〜19層まで深くしました。フィルタの大きさで勝負するか、小さいフィルタを重ねて深さで稼ぐかという方向性の違いです。

GoogLeNetとの違いは、深さを稼ぐアプローチにあります。VGGNetはフィルタサイズを3×3に統一して層を積み重ねる方針です。一方のGoogLeNetは、複数サイズのフィルタを並列に組み合わせるインセプションモジュール(複数サイズの畳み込みを並列に配置し結果をまとめる構造)を採用し、パラメータ効率よく深さと表現力を両立させています。

同じ2014年のILSVRCに登場した2つのモデルながら、片方はシンプルな積み重ね、もう片方は並列構造の工夫であり、対照的な設計思想を採った点が興味深いところです。3つのモデルを並べると設計思想の違いが見えてきます。

モデル 発表年 畳み込みの設計 層の深さ
AlexNet 2012年 11×11や5×5など複数サイズの大きなフィルタ 8層
VGGNet 2014年 3×3の小さいフィルタに統一して積み重ねる 16〜19層
GoogLeNet 2014年 複数サイズの畳み込みを並列に置くインセプションモジュール VGGNetよりさらに深い

大きなフィルタから小さなフィルタへ、さらに並列構造へと解き方が移り変わった流れが読み取れます。

4. ビジネス・実務での活用シナリオ

画像生成・クリエイティブの分野では、写真の内容を保ったまま絵画などの画風を重ね合わせるニューラルスタイル変換(写真の内容はそのままに、絵画などの画風を重ね合わせて生成する画像処理技術)にVGGNetが使われています。学習済みのVGG19が各層で出力する特徴量(内容を表す特徴と画風を表す特徴)を利用する手法として提案されており、層ごとに異なる特徴を捉えるVGGNetの構造を、そのまま転用できる点が大きな強みです。

医療・研究分野の画像解析では、構造が規則的で理解・改造しやすいVGGNetが役立っています。ImageNetで学習済みの重みをそのまま転用する転移学習のベースモデルとして、医療画像の分類など少量データしか集まりにくい研究用途でも扱いやすく、教育・研究の現場で広く使われてきました。ゼロからモデルを設計しなくても、既存の知識を土台にできる点が、研究リソースの限られる現場で選ばれる理由になっています。

物体検出の分野でも、VGGNetは基盤としての役割を果たしています。画像内の物体の位置とカテゴリを一度の処理で検出するSSD(Single Shot Detector。画像内の物体の位置とカテゴリを一度の処理で検出する物体検出モデル)は、初期の実装で特徴抽出の土台としてVGG16を採用しました。画像分類モデルとして学習した重みを検出タスクに転用できたことが、開発の効率化につながっています。

5. 要点まとめ

  • VGGNetは3×3の小さい畳み込みフィルタを何層も重ねて深さを追求したCNNで、16層のVGG16と19層のVGG19が代表的なバリエーションです。
  • ILSVRC 2014では画像分類部門でtop-5エラー率7.3%を記録して2位、局所化部門では1位となり、分類部門優勝のGoogLeNetとあわせて整理しておきたい関係にあります。
  • 構造がシンプルな一方でパラメータ数が多い(VGG16で約1億3,800万個)という制約があり、この点は転移学習のベースモデルとして広く使われてきた背景ともあわせて理解しておきたいところです。

6. 確認問題

問1VGGNetは、3×3の小さい畳み込みフィルタを複数層重ねることで、AlexNetより深いネットワーク構造を実現している。

解答・解説をみる

○ 正しい

VGGNetはフィルタサイズを3×3に統一し、それを重ねることで受容野を広げながら層数を増やす設計を採用しています。AlexNetの8層に対し、VGGNetは16〜19層まで深くなっています。

問2ILSVRC 2014の画像分類部門において、VGGNetはGoogLeNetを上回るtop-5エラー率を記録して優勝した。

解答・解説をみる

× 誤り

正しくは、画像分類部門で優勝したのはtop-5エラー率6.7%を記録したGoogLeNetで、VGGNetはtop-5エラー率7.3%で2位でした。優勝したという記述は誤りです。なお、局所化部門ではVGGNetが1位となっています。

問3VGG16・VGG19という名称の数字は、それぞれのモデルが持つ重み付きの層(畳み込み層と全結合層の合計)の数を表している。

解答・解説をみる

○ 正しい

VGG16は13の畳み込み層と3つの全結合層で合計16層、VGG19は16の畳み込み層と3つの全結合層で合計19層です。名称の数字は、重みを持つ層の総数に対応しています。