CNN
読み: しーえぬえぬ
畳み込みニューラルネットワーク。畳み込み層とプーリング層で画像の空間的特徴を階層的に抽出し、画像認識の標準アーキテクチャとなった深層学習モデル。
CNN (Convolutional Neural Network / 畳み込みニューラルネットワーク) は、画像の空間的な局所パターンを効率的に学習するために設計されたニューラルネットワークアーキテクチャである。全結合層では画像の空間構造が失われるのに対し、CNN は畳み込み演算によって近傍ピクセル間の関係性を保持したまま特徴を抽出する。
CNN の主要な構成要素は以下のとおりである。
- 畳み込み層 (Convolutional Layer): 小さなフィルタ (カーネル) を画像上でスライドさせ、局所的な特徴 (エッジ、テクスチャ、形状) を検出する。浅い層ではエッジ、深い層では物体の部品や全体構造を捉える
- プーリング層 (Pooling Layer): 特徴マップの空間解像度を縮小し、計算量を削減しつつ位置ずれへの頑健性を高める。Max Pooling と Average Pooling が代表的
- バッチ正規化 (Batch Normalization): 各層の入力分布を正規化し、学習の安定化と高速化を実現する
- 全結合層 (Fully Connected Layer): 最終段で特徴ベクトルをクラス確率に変換する
代表的な CNN アーキテクチャの進化を示す。
LeNet-5(1998): 手書き数字認識。CNN の原型AlexNet(2012): ImageNet で圧勝し深層学習ブームを起こしたVGGNet(2014): 3×3 フィルタの積み重ねで深さの重要性を実証ResNet(2015): 残差接続 (Skip Connection) で 100 層超の学習を可能にしたEfficientNet(2019): 幅・深さ・解像度を統合的にスケーリング
CNN は画像分類だけでなく、物体検出 (YOLO、SSD)、セマンティックセグメンテーション (U-Net、DeepLab)、姿勢推定、画像生成の特徴抽出器としても広く活用されている。近年は Vision Transformer が台頭しているが、軽量モデルやエッジデバイス向けでは CNN が依然として主力である。