ニューラルネットワークについて

 ニューラルネットワーク(NN)は人間の大脳の機能を模擬した情報処理システムで、以下の特長があります。

1)パターン認識能力が高い(文字認識や音声認識など)。

2)学習機能がある。

3)非線形分離が可能。

 パターン認識技術の代表例であるテンプレートマッチングやマハラノビス距離などの解析的な方法では、カテゴリ間の境界線として直線しか当てはめることができません。しかし、直線では分離できないものが現実的には多いので、非線形分離が可能なNNは優位性のあるシステムです。

線形分離.jpg線形分離非線形分離.jpg非線形分離

 一方、以下の問題点があります。

1)処理がブラックボックスで、どのような処理がなされているかわからない。

 正しい判断をしたとしても、その判断をした理由が分からないため結果に確信が持てないことになります。検定を多数行うとか、使ってみて使えるようであれば使うといったことになります。ディープラーニングでもこの点は変わりません。

2)未学習データに対して信頼度が低い。

 処理内容が分からないため、学習していない入力に対してどのような出力が得られるか予想できず、制御には不向きとされてきました。ディープラーニングでもこの点は変わりません。

 以上のような特徴から、NNはある程度誤判定があっても許容される検査や文字認識などに適用されています。また、以前から多層化すると性能が向上することはわかっていましたが、学習方法がないため応用されませんでした。最近になって、多層でも学習できる方法が開発されディープラーニングが主流になっています。ただし、簡単な問題の場合は3層階層型の方が適当な場合があります。色の認識や活字の認識などは3層階層型NNで十分対応できます。

 次に、神経細胞モデルを示します。人間の神経細胞は樹状突起で他の多数の細胞とつながっており、細胞体では結合している細胞からの信号を入力して処理し、樹状突起を通して他の細胞に処理した信号を伝えます。

神経細胞.jpg

人口ニューロンと神経細胞

 人工ニューロンは神経細胞を簡略化してモデル化されたものです。人工ニューロンは他の人工ニューロンから信号を受け取ります。その際に、信号値に重みを付けて結合されている全ニューロンの信号を加算します。この値から人工ニューロンの持つ閾値θを差し引き、その値に応じて信号出力yを計算します。この関数は活性化関数と呼ばれます。活性化関数として下記シグモイド関数などが使用されています。

シグモイド2.jpg

 上記人工ニューロン1つでは有用な情報処理が行えないため、多数の人工ニューロンを使用した神経回路網により情報処理を行います。例えば、階層型の神経回路がよく使用されます。入力層に値が入力されるとその値が中間層に伝わり、中間層の出力を基に出力層で出力が得られます。

階層型.jpg

 次に、NNは以下の手順で使用します。

1)学習

2)検定

3)適用

 まず、学習用データを使用してNNの学習を行い、構築されたNNシステムが適正かどうかを学習に使用していないデータを使用して行い、適正と思われる場合はそのシステムを使用します。あまり良い結果が得られない場合は学習を再度やり直し、所望の性能が得られるまで学習を繰り返します。

 次に、学習は以下の手順で行います。まず、層数と各層の細胞数などの構造を決めます。次に、各細胞の結合係数と閾値を初期化します。通常は乱数で初期化します。次に、誤差逆伝播法(バックプロパゲーション法)により、結合係数と閾値を調整します。調整は初期化されたパラメータを使用して出力値を計算し、所望の出力値と違いがあればその誤差が小さくなるように結合係数と閾値を調整することで行います。これを繰り返すと誤差が徐々に小さくなり、所望の誤差以下になった時点で学習を終了します。この時点では、学習データに対してはすべて所望の結果が得られます。

学習.jpg

 

弊社トップページはこちら