コンピュータービジョン

VGGNet ぶいじーじーねっと

VGGNetVGGCNN深層学習画像認識ImageNet
VGGNetについて教えて

簡単に言うとこんな感じ!

VGGNetは「3×3フィルタだけを深く積み重ねる」というシンプルな設計哲学で2014年のImageNetコンペ2位になったCNNだよ。シンプルさゆえに理解しやすく、転移学習のベースモデルとして今でも教育・実務で広く使われているんだ!


VGGNetとは

VGGNet(VGG:Visual Geometry Group)は、2014年にオックスフォード大学のVisual Geometry Groupが発表した深いCNNアーキテクチャです。ILSVRC 2014で分類部門2位・局所化部門1位を達成しました。

VGGNetの設計哲学は「シンプルさと深さ」 です。AlexNetが11×11や5×5の大きなフィルタを使っていたのに対し、VGGNetは3×3フィルタのみを使用。3×3フィルタを2つ重ねると5×5と同じ受容野を持ちながら、パラメータ数が少なく非線形性が増します。

代表的なバリアントはVGG16(16層)とVGG19(19層)で、現在でも転移学習のベースモデルとして教育・研究で広く使われています。ただしパラメータ数が多い(VGG16で1億3800万)ため、メモリ効率は良くありません。


VGG16のアーキテクチャ

ブロック内容出力サイズ
Block 1Conv 64×2 + MaxPool112×112×64
Block 2Conv 128×2 + MaxPool56×56×128
Block 3Conv 256×3 + MaxPool28×28×256
Block 4Conv 512×3 + MaxPool14×14×512
Block 5Conv 512×3 + MaxPool7×7×512
FC層4096→4096→1000 + Softmax1000
import torchvision.models as models

# 学習済みVGG16をロード(転移学習用)
vgg16 = models.vgg16(pretrained=True)

# 最終層を自社タスク用に変更(転移学習)
import torch.nn as nn
vgg16.classifier[6] = nn.Linear(4096, 10)  # 10クラス分類に変更

歴史と背景

  • 2014年:OxfordのVGGがILSVRC 2014に出場。分類2位・局所化1位を達成
  • 2014年末:論文「Very Deep Convolutional Networks for Large-Scale Image Recognition」公開
  • 2015年以降:VGG16が転移学習の定番ベースモデルとして普及
  • 現在ResNetEfficientNetに性能では劣るが、シンプルさから教育用途で現役

主要CNNアーキテクチャの比較

モデル精度(Top-1)パラメータ数特徴
AlexNet201257.1%6000万深層学習の先駆け
VGG16201471.5%1億3800万シンプル・転移学習向き
ResNet-50201576.1%2500万残差接続で深層化
EfficientNet-B0201977.1%540万高効率・高精度

関連用語