VGGNet ぶいじーじーねっと
VGGNetVGGCNN深層学習画像認識ImageNet
VGGNetについて教えて
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 1 | Conv 64×2 + MaxPool | 112×112×64 |
| Block 2 | Conv 128×2 + MaxPool | 56×56×128 |
| Block 3 | Conv 256×3 + MaxPool | 28×28×256 |
| Block 4 | Conv 512×3 + MaxPool | 14×14×512 |
| Block 5 | Conv 512×3 + MaxPool | 7×7×512 |
| FC層 | 4096→4096→1000 + Softmax | 1000 |
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が転移学習の定番ベースモデルとして普及
- 現在:ResNet・EfficientNetに性能では劣るが、シンプルさから教育用途で現役
主要CNNアーキテクチャの比較
| モデル | 年 | 精度(Top-1) | パラメータ数 | 特徴 |
|---|---|---|---|---|
| AlexNet | 2012 | 57.1% | 6000万 | 深層学習の先駆け |
| VGG16 | 2014 | 71.5% | 1億3800万 | シンプル・転移学習向き |
| ResNet-50 | 2015 | 76.1% | 2500万 | 残差接続で深層化 |
| EfficientNet-B0 | 2019 | 77.1% | 540万 | 高効率・高精度 |
関連用語
- AlexNet — VGGの前身となった深層学習のブレイクスルーモデル
- ResNet — VGGを超えた残差接続のモデル
- CNN(畳み込みニューラルネットワーク) — VGGが採用したアーキテクチャ
- 画像分類タスク — VGGが強さを示したタスク