モデル解説 Page 1/5

画像分類(10モデル)+ 軽量CNN(2モデル)── 全12モデル

📅 画像分類モデルの進化(年表)

ILSVRCコンペ(ImageNet Large Scale Visual Recognition Challenge)の歴史と共に発展

1998
LeNet
CNNの原点
2012
AlexNet
🏆ILSVRC
DLブーム開始
2014
VGGNet
シンプルに深く
2014
GoogLeNet
🏆ILSVRC
Inceptionモジュール
2015
ResNet
🏆ILSVRC
人間超え
2016
WideResNet
幅方向拡張
2017
DenseNet
密結合
2017
SENet
🏆最後のILSVRC
2019
EfficientNet
バランス拡張
2020
ViT
CNNを捨てる
大きな流れ:深くする(VGG→ResNet)→ 賢くする(Inception, SE)→ 効率化(MobileNet, EfficientNet)→ CNNを捨てる(ViT)

1998 LeNet ─ CNNの原点

Yann LeCun(ヤン・ルカン)が手書き数字認識のために開発した、CNNの元祖。郵便番号読み取りに使用された。

アーキテクチャ

入力
32×32
Conv
5×5
Pool
Conv
5×5
Pool
FC
FC
出力
10クラス
試験ポイント:CNN(畳み込み→プーリングの繰り返し→全結合→出力)の基本構造を初めて実用化したモデル。活性化関数はsigmoid/tanh(ReLU以前)。

2012 AlexNet ─ ディープラーニング革命

2012年のILSVRC(ImageNet大規模画像認識コンペ)で従来手法を圧倒して優勝。ここからDLブームが始まった。

AlexNetの3大イノベーション

① ReLU

sigmoid/tanhに代わる活性化関数。
f(x)=max(0,x)
勾配消失を大幅に軽減

② GPU学習

GPU 2枚で並列学習。
学習速度を劇的に向上。
「GPUでDLを学習」の先駆け

③ Dropout

学習時にランダムにニューロンを無効化。
過学習を防ぐ正則化手法

試験ポイント:「ILSVRC2012」「ReLU」「Dropout」「GPU」が出たらAlexNet。エラー率を従来の26%→15.3%に大幅改善。

2014 VGGNet ─ シンプルに深くする

Visual Geometry Group(オックスフォード大)が開発。「3×3フィルターだけで統一してひたすら深く」という思想。

VGGの設計思想:なぜ3×3だけ?

7×7フィルター × 1回

パラメータ数:7×7 = 49

3×3フィルター × 3回

パラメータ数:3×3×3 = 27
受容野は同じ(7×7)なのにパラメータ数45%削減!

VGG16のアーキテクチャ(16層)

Conv×2
Pool
Conv×2
Pool
Conv×3
Pool
Conv×3
Pool
Conv×3
Pool
FC×3

青=Conv 3×3 / 水色=MaxPool / オレンジ=全結合層 ── 合計16層(Conv13 + FC3)

試験ポイント:「3×3フィルターのみ」「VGG16 / VGG19」が頻出。シンプルだがパラメータ数が非常に多い(約1.38億)のが欠点。

2014 GoogLeNet(Inception)─ 複数フィルターを並列に

Google開発。ILSVRC2014優勝。VGGのように「深くする」のではなく、「1つの層の中で複数サイズのフィルターを同時に使う」というアイデア。

Inceptionモジュール

1つの入力に対して4つの並列パスを同時実行し、結果を結合(Concatenate)する

1×1 Conv
細かい特徴
1×1 Conv
3×3 Conv
中くらいの特徴
1×1 Conv
5×5 Conv
大きな特徴
3×3 Pool
1×1 Conv
空間情報
Concatenate(結合)
試験ポイント:「Inceptionモジュール」「1×1 Conv(次元削減)」「22層なのにパラメータ数がVGGの1/12」。GoogLeNet = Inception v1。

2015 ResNet ─ スキップ結合で超深層を実現

Residual Network。Microsoftが開発しILSVRC2015で優勝。人間の認識精度(エラー率5%)を初めて超えた(3.57%)。「層を深くしすぎると性能が落ちる」問題をスキップ結合で解決。

Residual Block(残差ブロック)

入力 x を直接出力に足す=「足りない分(残差)だけ学習すればいい」

入力 x
Conv層
Conv層
F(x) + x
出力
 

なぜスキップ結合が効く?

もし中間のConv層が何も学習しなくても(F(x)=0)、出力 = 0 + x = 入力がそのまま通る。

つまり「最低でも入力を維持する」ことが保証される。
→ 深くしても性能が落ちない

← 入力xをそのまま出力に足す(スキップ結合 / ショートカット結合 / 残差結合)

試験ポイント:「スキップ結合(残差結合/ショートカット結合)」「152層」「人間超え」「勾配消失の回避」。F(x) + x の式が重要。

2016-17 WideResNet & DenseNet ─ ResNetの発展形

WideResNet (2016)

「深さではなく幅で勝負」

ResNetのフィルター数(チャネル数)を増やす方向で拡張。
深さを減らしても幅を増やせば同等以上の精度。
計算効率も高い(GPU並列化と相性が良い)。

ResNet
深い・細い
WideResNet
浅い・太い

DenseNet (2017)

「全前層と密に接続」

ResNetはスキップ結合で1つ前の層と接続。
DenseNetは全ての前層の出力を結合
特徴量を無駄なく再利用。パラメータ効率が高い。

L1
L2
L3
L4

全ノード間が直結(Dense=密)

ResNet vs WideResNet vs DenseNet:
ResNet → 深さ方向に拡張 + スキップ結合
WideResNet → 幅方向に拡張 + スキップ結合
DenseNet → 全前層と密結合(スキップ結合の拡張版)

2017 SENet ─ チャネルの重要度を自動学習

Squeeze-and-Excitation Network。ILSVRC最後(2017年)の優勝モデル。「全チャネルが同じ重要度」という前提をやめ、チャネルごとの重みを学習。

SE Block の処理フロー

入力
H×W×C
Squeeze
GAP→1×1×C
Excitation
FC→ReLU→FC→Sigmoid
Scale
チャネルごとに重み付け
出力

Squeeze(絞る):各チャネルをGlobal Average Poolingで1つの数値に圧縮

Excitation(興奮):FC層で各チャネルの重要度スコア(0〜1)を算出

Scale(掛ける):元の特徴マップに重要度を掛け算。重要なチャネルを強調

試験ポイント:「チャネルごとの注意機構(Channel Attention)」「既存モデル(ResNetなど)に後付け可能」「ILSVRC2017最後の優勝」

2019 EfficientNet ─ バランスよくスケーリング

Google開発。「深さ・幅・解像度の3軸を同時にバランスよくスケールアップする」ことで効率的に精度を向上。

Compound Scaling(複合スケーリング)

深さ(Depth)

層の数を増やす

幅(Width)

チャネル数を増やす

解像度(Resolution)

入力画像サイズを増やす

→ 3つを 同時に バランスよく拡大 = Compound Scaling

試験ポイント:「3軸の複合スケーリング」「EfficientNet-B0〜B7」「NASで基本構造を探索」。最小のB0でも高精度、B7で当時最高精度。

2020 ViT ─ CNNを捨ててTransformerで画像分類

Vision Transformer。Google開発。「画像をパッチ(小さな正方形)に分割し、系列データとしてTransformerに入力」という革命的アプローチ。畳み込みを一切使わない。

ViTの処理フロー

P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
P13
P14
P15
P16

① 画像を16×16等のパッチに分割

[CLS] トークン
...

② 各パッチをベクトル化
+位置埋め込み

Transformer
Encoder
Self-Attention
× L層

③ Transformerで
パッチ間の関係を学習

[CLS]
→ 分類

④ [CLS]トークンで
クラス予測

試験ポイント:「画像をパッチに分割」「Self-Attention」「CNNを使わない」「大量データで学習するとCNNを超える」。
NLPのTransformerを画像に転用した。

📱 軽量CNNモデル

スマートフォンやIoTデバイスなど、計算リソースが限られた環境で動かすための効率的なモデル。

MobileNet (2017) ─ Depthwise Separable Convolution

Google開発。通常の畳み込みを2段階に分解することでパラメータ数と計算量を大幅に削減。

通常の畳み込み vs Depthwise Separable Convolution

通常のConv

3×3×チャネル数 のフィルターで
全チャネルを一度に処理

計算コスト:大

Depthwise Separable Conv

Step1: Depthwise Conv
各チャネルを個別に3×3で畳み込み

Step2: Pointwise Conv
1×1 Convでチャネル間を混合

計算コスト:約1/8〜1/9に削減!

MnasNet (2019) ─ モバイル向けNAS

Mobile Neural Architecture Search Net。Google開発。AIが自動でモバイル向け最適ネットワーク構造を探索する。

NAS
(構造を自動探索)
精度を最大化
推論速度の制約
(モバイルで動くこと)
最適な構造
試験ポイント:MobileNet→「Depthwise Separable Convolution」。MnasNet→「NASでモバイル向け最適構造を自動探索」。EfficientNetの基本ブロックにもMnasNetの構造が使われている。

📊 全12モデル比較表

モデル 層数 核心アイデア ILSVRC キーワード
LeNet19985CNNの基本形手書き数字、LeCun
AlexNet20128GPU・ReLU・Dropout🏆優勝DLブーム開始
VGGNet201416/193×3フィルターで統一2位シンプルに深く
GoogLeNet201422Inceptionモジュール🏆優勝並列フィルター、1×1 Conv
ResNet2015152スキップ結合(残差学習)🏆優勝人間超え、F(x)+x
WideResNet2016ResNetの幅方向拡張チャネル数↑
DenseNet2017全前層と密結合Dense Block
SENet2017チャネル注意機構🏆最後の優勝Squeeze-and-Excitation
EfficientNet20193軸複合スケーリング深さ×幅×解像度
ViT2020画像にTransformer適用パッチ分割、CNN不使用
MobileNet2017Depthwise Separable Convモバイル向け軽量化
MnasNet2019NASでモバイル最適構造自動構造探索