畳み込みニューラルネットワーク(CNN)は、ニューラルネットワークのアーキテクチャの一種であり、入力全体に小さな共有フィルタを適用する畳み込み層を中心に構築されている。これにより、近隣のピクセルが関連し、エッジやテクスチャなどの有用なパターンがフレーム内のどこにでも現れ得る画像のようなグリッド構造データに対して特に効果的である。同じフィルタの重みをすべての空間位置で再利用することで、CNNは同等のサイズの全結合ネットワークよりもはるかに少ないパラメータで済み、画像の意味がその内容の平行移動によってほぼ変わらないという性質、すなわち並進不変性として知られる仮定を自然に組み込んでいる。
歴史
このアーキテクチャの概念的なルーツは、1980年に発表された視覚野の階層モデルである福島邦彦のネオコグニトロンに遡る。これはKunihiko Fukushimaによって記述され、誤差逆伝播法を訓練に用いることなく層状の特徴検出を導入した。Yann LeCunは1980年代後半に畳み込み層と誤差逆伝播法を組み合わせ、LeNetを生み出した。1990年代半ばまでに、これは銀行小切手の手書き数字を商用展開で読み取ることができ、深層学習の初期の実用的成功例の一つとなった。CNNは約20年間専門的なツールに留まったが、2012年、Alex KrizhevskyがIlya SutskeverとGeoffrey Hintonとともに設計したAlexNetが、GPU (in AI)上で訓練された深いCNNを用いてImageNet 2012 (AlexNet moment)のImageNetコンペティションで大差で勝利し、この出来事が現代の深層学習ブームに火をつけたと広く認識されている。
アーキテクチャ
典型的なCNNは、学習されたフィルタを用いて局所パターンを検出する畳み込み層と、空間解像度をダウンサンプリングしながら最も強い検出特徴を保持するプーリング層を交互に積み重ね、初期層のエッジや色などの低レベルパターンから、深い層の顔や物体などの高レベルで意味的な概念へと段階的に構築する。最終層は通常全結合層であり、抽出された特徴を出力クラスにマッピングする。VGGNet、ResNet、Inceptionなどの後のアーキテクチャは深さをさらに押し進め、ResNetの2015年の残差接続(スキップ接続)の導入は、それまで非常に深いCNNを通常の勾配降下法で訓練することを困難にしていた勾配消失問題を解決した。
応用
CNNは、画像分類、物体検出、セマンティックセグメンテーション、顔認識などのコンピュータビジョンタスクの標準的なアーキテクチャとなり、自動運転の知覚システム、医用画像解析、初期の生成敵対ネットワーク設計の構成要素を支えており、そこではCNNが通常、生成器と識別器の両方を形成していた。また、視覚以外にも、音声スペクトログラムや一部のテキスト分類タスクなど、共有フィルタが活用できる局所的でグリッド状の構造を持つデータであればどこにでも適用されてきた。
相対的優位性の衰退
2020年頃以降、トランスフォーマーアーキテクチャとその注意機構を畳み込みフィルタの代わりに画像パッチに適応させたVision Transformerが、多くの大規模視覚ベンチマークでCNNの性能に匹敵するかそれを上回り、特に非常に大規模なデータセットで訓練された場合にその傾向が顕著となり、十分なデータと計算量が利用可能になれば畳み込みの内蔵された空間的仮定が依然として必要かどうかについて議論を引き起こしている。それでもCNNは、特にリソースが制約された環境やエッジAI設定で広く使用され続けている。なぜなら、その帰納的バイアスにより、訓練データが限られている場合にトランスフォーマーよりもデータ効率が良く、また、より大規模なマルチモーダルシステム内のエンコーダとしても機能し続けているからである。