はじめに
この記事では、主に画像や動画認識に広く使われているモデル「畳み込みニューラルネットワーク(CNN)」を取り上げます。
畳み込みニューラルネットワークとは
畳み込みニューラルネットワークとは、画像データを入力として、高い認識性能を達成できるモデルです。通常のニューラルネットワークと同様に、誤差逆伝播法を学習に使います。下記のような、私たち人間が持っている視覚野の神経細胞の働きを模倣してみよう、という発想から生まれました。
- 単純型細胞(S細胞):画像の濃淡パターン(特徴)を検出する。
- 複雑型細胞(C細胞):空間的な位置のずれを吸収し、同一の特徴であるとみなす。
このS細胞、C細胞の働きを最初に組み込んだモデルが、ネオコグ二トロンです。ネオコグ二トロンは、従来のニューラルネットワークのように、S細胞層とC細胞層を交互に複数組み合わせた構造になっています。

また、LeNetという畳み込みニューラルネットワークのモデルもあります。LeNetは、畳み込み層とプーリング層の2種類を複数組み合わせた構造になっています。ネオコグ二トロンのS細胞層がLeNetにおける畳み込み層、C細胞層がプーリング層になります。

畳み込みニューラルネットワークの構造

上図は、「5」という手書き文字画像を判別するという例をもとに、最も基本的な畳み込みニューラルネットワークの構造を表したものになります。
まず最初に来るのが入力層で、次に畳み込み層(単純型細胞)、プーリング層(複雑型細胞)が連なります。そして全結合層、出力層が続くという構造になります。出力層は、0~9までの確率を取得するもので、従来のニューラルネットワークの出力層と同様の処理を行います。
畳み込み層、プーリング層、そして全結合層の、各層の役割や行われている処理内容については、以下の通りです。
畳み込み層では、フィルタを用いて画像の特徴を抽出します。
フィルタを画像の左上から順番に重ね、画像とフィルタの値を掛け合わせます。掛け合わせた数値の総和をもとめ、特徴マップという新たな2次元データを取得します。

プーリングは、ダウンサンプリングやサブサンプリングとも呼ばれ、特徴マップのサイズを決められた演算を行って小さくしていきます。

上図はmaxプーリングと呼ばれる処理を表したものです。2×2ごとに特徴マップの最大値を抽出し、新たにダウンサンプリング画像を取得します。maxプーリングの他にも、avgプーリングという平均値をとる処理もあります。
全結合層は、通常のニューラルネットワークにおける隠れ層と出力層に相当します。
全結合層では、これまで出力してきた画像が「5という文字」「ネコ」「りんご」などと判別できるように、1次元にします。

おわりに
以上、畳み込みニューラルネットワークの基本的なところを見てきました。
今回紹介したネオコグ二トロンやLeNetの他にも、AlexNetやVGGといったモデルもあります。畳み込みニューラルネットワークは、ディープラーニングの中でもポピュラーであり、最も成功していると言われる一方で、勾配消失、勾配爆発などまだまだ課題のある分野でもあるようです。
(M.Y)