7. 畳み込みニューラルネットワーク(CNN)とは:基礎から応用まで

畳み込みニューラルネットワーク(CNN: Convolutional Neural Network)とは、画像のような格子状データに対して、空間的な相関を効率よく学習するよう設計された深層学習モデルである。移動不変性と局所性という性質を活かし、コンピュータビジョンにおいて飛躍的な成果をもたらしてきた。

画像データは、モノクロ画像であれカラー画像であれ、ピクセルからなる二次元グリッドとして表される。したがって、各ピクセルは1つまたは複数の数値に対応する。従来は、この豊かな構造を無視し、ピクセル間の空間的関係にかかわらず、画像を 平坦化 して数値ベクトルとして扱ってきた。この満足のいかない方法は、得られた一次元ベクトルを全結合 MLP に入力するために必要であった。

この種のネットワークは特徴量の順序に対して不変である。そのため、ピクセルの空間構造に対応する順序を保っても、MLP のパラメータを学習する前に設計行列の列を並べ替えても、ほぼ同じ結果になる。望ましいのは、近接するピクセル同士は通常関連しているという事前知識を活用し、画像データを学習するための効率的なモデルを構築することである。

本章では、まさにこの目的のために設計された強力なニューラルネットワーク群である 畳み込みニューラルネットワーク(CNN)を紹介する (LeCun et al., 1995)。CNN に基づくアーキテクチャは、現在ではコンピュータビジョンの至るところで用いられている。たとえば、ImageNet コレクション (Deng et al., 2009) では、畳み込みニューラルネットワーク、すなわち ConvNet の導入が顕著な性能向上をもたらした (Krizhevsky et al., 2012)

現代の CNN は、その通称が示すほど単純な発想から生まれたわけではなく、生物学、群論、そして膨大な実験的試行錯誤から着想を得て設計されている。CNN は、少ないサンプルで高精度なモデルを実現できるというサンプル効率の高さに加え、計算効率にも優れる。これは、全結合アーキテクチャより必要なパラメータ数が少ないことと、畳み込み演算を GPU コア全体にわたって並列化しやすいことの両方による (Chetlur et al., 2014)。その結果、実務では適用可能な場面で CNN を優先することが多い。さらに近年では、音声 (Abdel-Hamid et al., 2014)、テキスト (Kalchbrenner et al., 2014)、時系列解析 (LeCun et al., 1995) のように、従来は再帰ニューラルネットワークが主に用いられてきた一次元系列のタスクにおいても、有力な競争相手となっている。CNN を巧みに拡張することで、グラフ構造データ (Kipf and Welling, 2016) や推薦システムにも適用されるようになった。

まず、畳み込みニューラルネットワークの動機をさらに詳しく見ていく。続いて、あらゆる畳み込みネットワークの骨格を成す基本操作を順に扱う。具体的には、畳み込み層そのもの、パディングとストライドに関する詳細、隣接する空間領域にまたがる情報を集約するためのプーリング層、各層における複数チャネルの利用、そして現代的なアーキテクチャの構造について議論する。章の最後では、現代の深層学習が台頭するはるか以前に、最初に成功を収めた実用的な畳み込みネットワークである LeNet の完全な動作例を示す。次章では、現代の実務で広く用いられる技法の多くを体現した、人気の高い比較的新しい CNN アーキテクチャをいくつか取り上げ、その完全な実装を見ていく。