[CNN(畳み込みニューラルネットワーク)解説]画像認識で圧倒的強さを誇る「3大要素と進化の歴史」

CNNは「画像認識・画像処理」で圧倒的な性能を発揮するために作られたニューラルネットワークの構造です。 現在は画像だけでなく、音声スペクトログラム、動画、医療画像、自動運転などほぼ全ての「空間的・局所的な構造を持つデータ」に使われています。

1. CNNが普通のニューラルネットワークと違う最大のポイント3つ

普通の全結合NN(MLP)CNNの特徴
すべてのニューロンがすべて繋がっている局所的にしか繋がっていない(局所結合)
位置情報が無視される位置情報が非常に重要(同じパターンがどこにあっても検知できる)
パラメータ数が爆発しやすいパラメータ共有で劇的に少ない

→ これにより「画像が大きくなっても計算量が抑えられ、かつ翻訳不変性(同じ模様がどこにあっても認識できる)」が得られる

2. CNNの3大要素

① 畳み込み層(Convolution Layer)

  • 小さなフィルター(カーネル、例:3×3や5×5)を画像全体にスライドさせながら掛け算→足し算
  • フィルター = 「エッジ検出」「テクスチャ検出」など特定の特徴を抽出するもの
  • 同じフィルターを画像全体で共有 → パラメータ共有

主なハイパーパラメータ:

  • フィルターサイズ(3×3が主流)
  • ストライド(1 or 2):フィルターを何マスずつずらすか
  • パディング(Same / Valid):出力サイズを保つか縮めるか
  • フィルター数(チャンネル数):何種類の特徴を同時に抽出するか(64, 128, 512…と層が深くなるほど増える)

② プーリング層(Pooling Layer)

  • 特徴マップを「縮小」して計算量を減らし、位置の微小なズレに強くなる
  • Max Pooling(領域内で最大値を取る)がほぼ標準
  • Average Poolingは最近あまり使われない
  • 最近の最先端モデルではプーリングを減らし、ストライド付き畳み込みで代替することも多い

③ 全結合層(Fully Connected Layer)

  • 最後の数層だけ普通のニューラルネットワークに変換
  • 最近はGlobal Average Pooling(GAP)で全結合層をなくすのが主流(パラメータ激減)

3. 代表的なCNNアーキテクチャの歴史(性能順)

モデル名特徴・ポイント
1998LeNet-5CNNの元祖(手書き数字認識)
2012AlexNetImageNetで圧勝 → ディープラーニングブームの火付け役
2014VGGNetすべて3×3フィルターで非常に深い(16〜19層)
2015ResNetResidual接続(スキップ接続)で超深い(152層もOK)←現在も基本
2017DenseNetすべての層が互いに繋がる
2020EfficientNet精度と速度のバランスが最高(現在実用最強クラス)
2021〜ConvNeXtTransformer時代でも「純粋なCNN」がまだ強いことを証明
2022〜ConvFormer / ViTハイブリッドCNNとTransformerを融合した次世代

4. 最近のトレンド(2023〜2025)

  • 純粋なCNNはVision Transformer(ViT)に押され気味だったが…
  • ConvNeXt、RepLKNetなど「現代的に改良したCNN」が再びSOTA(最先端)を奪還
  • モバイル向け:MobileNet, EfficientNet-Lite
  • 実用では依然として「ResNet50」「EfficientNet-B0〜B7」が最も使われている

5. CNNのイメージ図(典型的な構造)

入力画像 (224×224×3)
    ↓
Conv1 (3×3, 64フィルター) + ReLU
    ↓
MaxPool (2×2)
    ↓
Conv2 (3×3, 128) → Conv3 (3×3, 128)
    ↓
MaxPool
    ↓
Convブロック×数回(どんどんチャンネル数増加)
    ↓
Global Average Pooling または Flatten
    ↓
Fully Connected (全結合層) → Softmax → 1000クラス分類

まとめ:CNNが画像認識で強い理由

  1. 局所結合+パラメータ共有 → 計算効率が非常に高い
  2. 翻訳不変性 → 同じ特徴がどこにあっても検出できる
  3. 階層構造で「低レベルの特徴(エッジ)→ 高レベルの特徴(目、鼻→ 顔)」を自動で学習