畳み込みニューラルネットワーク(CNN) は、主に画像や動画などのグリッド状データの処理に特化した深層学習モデルの一種である。畳み込み層、プーリング層、全結合層を積み重ねて構成され、局所受容野と重み共有のメカニズムにより、データの空間的階層構造を効率的に学習する。画像認識、物体検出、セマンティックセグメンテーションなど、コンピュータビジョン分野で広く応用され、さらに自然言語処理や音声認識にも派生利用されている。
1 基本概念
1.1 ニューラルネットワークとの関係
畳み込みニューラルネットワークは、従来の全結合型ニューラルネットワークを拡張したものである。全結合層では各入力ニューロンと出力ニューロンがすべて接続されるのに対し、CNNでは畳み込み演算によって局所的な接続パターンを導入し、パラメータ数を大幅に削減する。
1.2 畳み込みの数学的定義
畳み込み演算は、入力データ(画像など)とフィルタ(カーネル)の要素ごとの積和を、フィルタを入力上でスライドさせながら計算する操作である。連続系では積分、離散系では総和で表され、次元に応じて2次元畳み込み(画像)や1次元畳み込み(系列データ)が定義される。
2 主要構成要素
2.1 畳み込み層
畳み込み層はCNNの中核であり、入力に複数のフィルタを適用して特徴マップを生成する。各フィルタは特定のパターン(エッジ、テクスチャなど)を検出するように学習される。
2.1.1 フィルタ(カーネル)
フィルタは小さな重み行列(例:3×3、5×5)であり、入力の部分領域と畳み込まれる。フィルタの重みは学習によって最適化される。複数のフィルタを用いることで多様な特徴を抽出できる。
2.1.2 ストライドとパディング
ストライドはフィルタをスライドさせる間隔を決める。ストライドが大きいと出力サイズは小さくなる。パディングは入力の周囲にゼロなどの値を追加することで、出力サイズを調整したり、端の情報を保持したりする。代表的なパディングに「valid」(パディングなし)と「same」(入力と出力のサイズを一致させる)がある。
2.2 プーリング層
プーリング層は特徴マップの空間的サイズを縮小し、計算量を減らすとともに、位置変動に対するロバスト性を向上させる。通常、畳み込み層の後に配置される。
2.2.1 最大プーリング
最大プーリングは、プーリング領域内の最大値を出力する。エッジやテクスチャの強い応答を残し、小さな位置ずれの影響を受けにくい。
2.2.2 平均プーリング
平均プーリングは、プーリング領域内の平均値を出力する。特徴マップ全体の平均的な情報を抽出する目的で使われるが、最近のネットワークでは最大プーリングが主流である。
2.3 全結合層
全結合層は、CNNの最後の段階で用いられ、畳み込み層とプーリング層で抽出された高次特徴を基に分類や回帰を行う。全結合層は通常、1つ以上の層を重ねて構成され、最終出力層ではソフトマックス関数などで確率に変換される。
2.4 活性化関数
活性化関数は各層の出力に非線形性を与える。畳み込み層や全結合層の直後に適用され、ネットワークの表現力を高める。
2.4.1 ReLUとその派生
ReLU(Rectified Linear Unit)は、正の入力はそのまま、負の入力は0にする関数で、計算が高速かつ勾配消失問題を緩和する。派生としてLeaky ReLU(負の部分を小さな傾きで出力)やELUなどがある。
2.4.2 ソフトマックス関数
ソフトマックス関数は多クラス分類の最終層で用いられ、各クラスのスコアを0から1の確率に変換し、総和が1になるように正規化する。
3 動作原理
3.1 特徴マップの生成
入力画像に畳み込み層を適用すると、各フィルタに対応した2次元の特徴マップが生成される。特徴マップは入力の局所領域におけるフィルタの応答を表し、層が深くなるにつれてより抽象的な特徴(物体の部品や全体)を抽出する。
3.2 局所受容野と重み共有
CNNでは各ユニットが入力の一部(局所受容野)のみに接続される。また、同一フィルタの重みは画像全体で共有される。これによりパラメータ数が削減され、平行移動に対する不変性が向上する。
3.3 空間的階層の学習
層を重ねることで、低層ではエッジや色の変化、中層ではテクスチャや形状、高層では物体の部品やカテゴリといった階層的な特徴が学習される。この階層構造は、プーリングによる空間サイズの縮小とともにより広い受容野を獲得することで実現される。
4 代表的なアーキテクチャ
4.1 LeNet-5
1998年にYann LeCunらによって提案された初期のCNN。手書き数字認識(MNIST)に用いられ、2つの畳み込み層とプーリング層、3つの全結合層で構成される。畳み込みカーネルは5×5。
4.2 AlexNet
2012年のILSVRCで画期的な成果を挙げたネットワーク。5つの畳み込み層と3つの全結合層を持ち、ReLU活性化、ドロップアウト、データ拡張を導入。大規模画像認識の先駆けとなった。
4.3 VGGNet
2014年にOxford大学のVGGグループが提案。3×3の小さな畳み込みフィルタを深く積み重ねるシンプルな構造が特徴。VGG16(16層)やVGG19がよく使われる。パラメータ数が多いが、特徴抽出に優れる。
4.4 GoogLeNet(Inception)
同じく2014年にGoogleが提案。Inceptionモジュールと呼ばれる、1×1、3×3、5×5の多様なフィルタを並列に配置し、その出力を結合する構造を採用。パラメータ数を抑えつつ深いネットワークを実現した。
4.5 ResNet
2015年にMicrosoft Researchが提案。層を非常に深く(152層など)するために残差接続(スキップ接続)を導入。勾配消失問題を解決し、深層ネットワークの学習を可能にした。
4.5.1 残差接続の仕組み
残差接続は、ある層の入力をその出力に直接加算する経路である。これにより、ネットワークは恒等写像を学習しやすくなり、深い層でも勾配が伝播しやすくなる。
4.6 軽量モデル
4.6.1 MobileNet
Googleが提案したモバイル向けの軽量CNN。深度分離畳み込み(Depthwise Separable Convolution)を採用し、標準畳み込みと比較して計算量を大幅に削減。リアルタイム処理や組み込み機器への応用に適する。
4.6.2 EfficientNet
2019年にGoogleが提案。ネットワークの深さ、幅、解像度をバランスよくスケーリングする手法(Compound Scaling)を用いることで、計算効率と精度の両立を実現。軽量でありながら高精度を達成した。
5 訓練方法
5.1 損失関数
ネットワークの出力と正解ラベルの誤差を定量化する関数。分類タスクでは交差エントロピー損失、回帰タスクでは平均二乗誤差などが用いられる。
5.1.1 交差エントロピー損失
多クラス分類における標準的な損失関数。予測確率分布と正解ラベル(one-hotベクトル)の間の交差エントロピーを計算する。最小化によりモデルの確率予測が改善される。
5.2 バックプロパゲーション
誤差を出力層から入力層に向かって逆方向に伝播させ、各層の重みに対する勾配を計算する手法。連鎖律を用いて効率的に微分を計算し、勾配降下法による学習を可能にする。
5.3 最適化アルゴリズム
5.3.1 SGDとモメンタム
SGD(確率的勾配降下法)は各ミニバッチごとに勾配を計算して重みを更新する。モメンタムは過去の更新方向を考慮して更新ベクトルを平滑化し、収束を加速する。
5.3.2 Adam
適応的学習率を持つ最適化手法で、モメンタムとRMSPropの利点を組み合わせる。学習率の自動調整が行われ、幅広い問題で安定した学習を実現する。
5.4 正則化手法
5.4.1 ドロップアウト
訓練時に確率的に一部のニューロンを無効化する手法。これによりニューロン間の共適応を防ぎ、過学習を抑制する。テスト時にはすべてのニューロンを用いるが、ドロップアウト確率に応じて出力をスケーリングする。
5.4.2 バッチ正規化
各ミニバッチごとに層の入力を平均0、分散1に正規化する手法。学習を安定化させ、高い学習率を許容し、過学習を抑える効果がある。CNNでは畳み込み層と活性化関数の間によく挿入される。
6 応用分野
6.1 画像認識と分類
CNNの最も基本的な応用。入力画像を所定のカテゴリ(犬、猫、車など)に分類する。ImageNetのような大規模データセットで学習されたモデルは転移学習にも広く使われる。
6.2 物体検出
画像内の物体の位置(バウンディングボックス)とカテゴリを同時に推定する。CNNを基盤にした手法が主流。
6.2.1 R-CNN系(Fast, Faster)
R-CNNは領域提案(Region Proposal)を用いて物体候補領域を抽出し、各領域をCNNで分類する。Fast R-CNNは畳み込み特徴マップを共有して高速化、Faster R-CNNは領域提案ネットワーク(RPN)を導入しエンドツーエンドの学習を実現。
6.2.2 YOLOとSSD
YOLO(You Only Look Once)は画像をグリッドに分割し、各セルで物体の存在と位置を一括予測する。SSD(Single Shot MultiBox Detector)は複数のスケールの特徴マップから検出を行う。どちらも高速でリアルタイム検出に適する。
6.3 セマンティックセグメンテーション
画像の各ピクセルにクラスラベルを割り当てるタスク。CNNを用いて画素単位の分類を行う。
6.3.1 FCN
Fully Convolutional Network(FCN)は全結合層を畳み込み層に置き換え、任意サイズの画像からセグメンテーションマップを生成する。デコンボリューション(転置畳み込み)を使って特徴マップを元の解像度に拡大する。
6.3.2 U-Net
医療画像セグメンテーション向けに提案されたエンコーダ-デコーダ構造。エンコーダで空間情報を圧縮し、デコーダで詳細な位置情報を復元する。スキップ接続により低層の特徴をデコーダに伝えることで、細かい構造の再現が可能。
6.4 自然言語処理への応用
テキストデータを1次元の系列と見なし、CNNを適用する。単語埋め込みを入力とし、n-gramに相当する局所パターンを捉える。
6.4.1 テキストCNN
Yoon Kim(2014)によって提案された。複数のフィルタサイズで畳み込みを行い、最大プーリングで特徴を抽出した後、全結合層で分類する。文書分類や感情分析に有効。
6.5 医療画像解析
CT、MRI、X線画像などの解析に広く応用される。腫瘍検出、臓器セグメンテーション、疾患分類などで高い性能を示す。3D CNNを用いたボリュームデータ処理も行われる。
6.6 自動運転
カメラ画像からの物体検出(歩行者、車両、信号)、レーン検出、深度推定にCNNが不可欠。リアルタイム性が要求されるため、軽量モデルや専用ハードウェア(GPU、TPU)が利用される。
7 発展と限界
7.1 トランスフォーマーとの比較
近年、Vision Transformer(ViT)などのトランスフォーマーベースのモデルが画像認識でCNNを凌ぐ性能を示している。トランスフォーマーは自己注意機構により長距離依存関係をモデル化できるが、計算コストが高く、大規模データが必要。一方、CNNは局所的なパターン抽出に優れ、計算効率が高い。両者を組み合わせたハイブリッドモデルも研究されている。
7.2 計算コストとハードウェア要求
深いCNNは大量のパラメータと演算を伴うため、訓練には高性能GPUやTPUが必須。推論時にもリソースを消費するため、モバイルや組み込み機器向けには軽量化技術(プルーニング、量子化、知識蒸留)が重要となる。
7.3 解釈可能性の課題
CNNはブラックボックス的な性質が強く、なぜ特定の判断を下したかの説明が難しい。可視化手法(Grad-CAM、Saliency Mapなど)で注目領域を表示することはできるが、完全な解釈には至っていない。医療や自動運転など安全性が求められる分野では、説明可能性の向上が重要な研究テーマである。