ニューラルネットワークとは、「人間の脳の仕組み」に着想をヒントにして誕生した、画期的な機械学習の手法の一つです。まずは、イメージを図示します。
これを、少し詳細に表現すれば、以下のようになります。
ニューラルネットワークの詳細概念
これでは、依然として詳細概念図を見てもさっぱりわかりません。これから、用語を順に確認しながら詳細概念図を理解していきます。
まずは、ニューラルネットワークでよく使われる用語を洗い出しておきます。
基本用語
◆ニューロン(ノード・ユニット) ・・・ ニューラルネットワークにおいて、先ほどの概念図の ● をニューロン・ノード・ユニットなどといいます。そして、それぞれの ● は1つの数値を表しています。すなわち、1列目のn個の ● は犬の画像データを1次元ベクトルの数値データに変換していることを意味しています。
◆重み ・・・ 2列目一番上のニューロンに注目します。概念図では表現しきれなかったのですが、ニューロン間を繋いでいた線には重みがあり、別名で「エッジ」ともいいます。以下の図を参考にして下さい。
上図内の、w1~wnが重みにあたります。重みは、次の列のニューロンの値を算出するのに使われます。次の列のニューロンの値の出し方は、図下部の数式の通りです。このようにして、ニューラルネットワーク内で、入力から出力に向け、次々に値が伝播していくのです。
◆レイヤー ・・・ 下図のように入力層、隠れ層、出力層の3層から構成されています。
ニューラルネットワークは詳細概念図の表現通り、“入力層” , “隠れ層” , “出力層” の3層から構成されています。通常、入力・出力層は1層ですが、隠れ層は複数の層から成り立つ場合が多いのです。その理由は、多層構造になっている方が一般的に判別精度が高くなるためです。
入力層
入力層はその名の通り、入力データそのものを表しており、最も左にあるニューロン列を示します。今回のニューラルネットワークであれば、犬の画像データを1次元ベクトルにしたものをいいます。
隠れ層
中間層ともいいます。入力層と出力層の間にある層は、すべて隠れ層或いは中間層ともいいます。一般的に、隠れ層の値が何を意味している値なのかは、人間にはほとんど理解することは不可能です。ニューラルネットワークの種類によって、さまざまな種類の層があります。
全結合層
全結合層は、最も基本的で単純な層です。普通のニューラルネットワークでは、すべてが全結合層で構成されます。しかし、全結合層には欠点があります。全結合層では、空間的な情報が扱うことが出来ません。例えば、画像であればカラー情報まで含めると、空間的(3次元的)な情報であり、取り扱うことは不可能です。
ちなみに、詳細概念図はすべてが全結合層で構成されており、ニューロンの1次元ベクトルになっていることが理解出来ると思います。
畳込み層
フィルタを通して、複数の最小データをまとめた特徴量を検出する層のことをいいます。畳込み層は1層で複数のフィルタをもち、そのフィルタの数だけデータがアウトプットされます。
プーリング層
プーリング層は、入力情報を圧縮する目的で使われる層のことをいいます。多くの場合は畳込み層の後に使用されます。メリットとして以下のようなことがあります。
★元データ内オブジェクトの多少の位置的・特徴的差異を吸収
★過学習の減少
★計算コストの減少
出力層
出力層は、最終的な値を保持するニューロン列を示します。最終的な出力層のニューロンの数は分類される数と一致している必要があります。今回取り扱っているニューラルネットワークの場合であれば、犬である確率と犬でない確率になります。
ディープランニングについては次回の予定です。
機械学習 ニューラルネットワーク ディープランニング その1