CNNの勉強(Ⅳ)-CNNとDNNの関連性

前回の記事では

を扱いました。今回は素朴な疑問として、ディープニューラルネットワークと畳み込みニューラルネットワークがどのように関連しているのか説明していきます。

DNNとは

ディープニューラルネットワーク(DNN)は、深層学習という機械学習手法で使用される機械学習モデルで、ニューラルネットワークの一種です。ニューラルネットワークは入力層、中間層、出力層により成り立つものが一般的で、中間層が2層以上存在するものが、ディープニューラルネットワークといわれます。DNNの例を図1に示します。

図1 DNN

DNNのニューロンに受容野の概念を与えたものがCNN

畳み込みニューラルネットワーク(CNN)は深層学習の中でも、最も有名なもののひとつです。まず、CNNの説明で頻繁に描かれる図を見てみましょう。図2と図3を目にする機会が最も高いのではないでしょうか。

図2 CNNの図の例1
図3 CNNの図の例2

これを見ると、DNNに全く似ていない構造ではないかと思う方が多いのではないでしょうか。この疑問を解き明かしていきたいと思います。

ニューロンの形式で畳み込み層を表す

図4 畳み込みフィルタをニューロンで表す

畳み込み層では畳み込みフィルタ(カーネル)によりエッジ検出、つまり、視覚野でいう単純型細胞の働きを実現しています。フィルターで描かれているとニューロンに似ていないように感じますが、実は、図4のように受容野を持つニューロンの各入力の重みがフィルタ形式で表されているだけなのです。フィルタの重みを各入力と掛けて足し上げる操作は、活性化関数として恒等関数を使用したときのニューロンそのものです。

フィルターを少しずつずらしていく操作は、同様の方位選択性をもつ単純型細胞が全体に分布していることをフィルタ1つで実現していることに他なりません。そして、フィルタの種類が増すことは、異なる方位選択性をもつ単純型細胞の種類が増えることとほぼ同じです。

ニューロン形式でプーリング層を表す

図5 プーリング層をニューロンで表す

プーリング層もニューロンで表せます。視覚野で対応する神経細胞は複雑型細胞です。最大値をとるピクセルの重みのみが1で、それ以外の重みが0の、恒等関数を活性化関数とするニューロンです。CNNでは畳み込み層とプーリング層のストライドを設定し、次元を小さくするためにフィルターの適応を疎にすることがありますが、視覚野の単純型細胞や複雑型細胞の分布と比較すると、疎にすることはCNNの性能を落とすことに繋がりかねないと個人的に思っています。

CNNをDNNの形式で図示すると

上の二つに共通することは、ニューロンに受容野があることです。DNNでは前層のニューロン全てから入力を受けますが、CNNでは入力を受ける領域と受けない領域がハッキリと分かれているのです。CNNをDNNに似せて図示してみました(図6)。

※入力画像はMNISTを想定して784個です。

図6 CNNをDNNに似せて図示すると

畳み込み層とプーリング層では、受容野があるため、前層の全ニューロンから入力を受けているわけではないことが図6からも分かります。受容野があることで画像中の位置を考慮しつつ特徴抽出がしやすい個のです。

したがって、DNNの特徴抽出段階において、ニューロンに受容野を持たせたものが、CNNであるといえます。

Follow me!

CNNの勉強(Ⅳ)-CNNとDNNの関連性” に対して1件のコメントがあります。

この投稿はコメントできません。