第1回 ニューラルネットワークとは
ニューロンモデル
生物の神経系は、多数のニューロン(neuron)が複雑に結合され、それぞれが並列処理している。ニューロンの大まかな構造は、図1−1のように、入力端子である樹状突起(dendrite)、出力端子である軸索(axon)、それに本体の細胞体(soma)から成っている。
図1−1
ニューロンの概略
入力端子である樹状突起は、シナプス(synapse)を通してほかのいくつかのニューロンから入力信号である電気パルスを受け取る。そして、ニューロンの状態が変化する。入力信号が加えられことによって細胞体内の電位が上昇し、ある閾値(しきいち)を超えると発火(興奮)し、他のニューロンへ電気パルスで刺激を及ぼす。
1943年に、McCulloch-Pittsは、こうした生物系内のニューロンの動作原理に基づいて式1−1で示されるニューロンモデルを提案した。
式1−1
xi(t+1)は、ニューロンiの時間t+1での出力信号を、
wijは、ニューロンjからニューロンiへの結合強度(その名の通り結合の強さ。正だと発火を促し、負だと沈静を促し、0だと非接続と同じ)を、
xj(t)は、ニューロンjの時間tでの出力信号を
θiは、ニューロンiの閾値を示している。
そして、関数hは、次の式1−2のような関数でx≧0のとき1、x<0のとき0となる関数である。(1は興奮状態、0は静止状態を示す)
式1−2
また、グラフにすると図1−2のようなものである。
図1−2
式1−1が表しているのは、簡単に言ってしまうとニューロンiに繋がるニューロンからの入力信号によりニューロンiの電位が上昇し、閾値θiを超えていれば、発火、超えていなければ、静止っちゅうこと。また、ニューロンiの次の状態が、繋がるすべてのニューロンの状態に依るということもいえる。後で出てくるのだが、関数hが微分できないことが問題になってくるので、図1−2を滑らかにつないだような便利なシグモンド関数と呼ばれるものがあって、そちらを扱うことが多い。式1−3とグラフを図1−3で示しておく。
式1−3
図1−3
シグモンド関数
注意深くというか、なんというか式1−1を見ていて、おや?っと思った方はおられるだろうか。いなければ別にいいのだが、一応言っておきます。すべてのjについて計算するわけだからj=iということがあるやんけと。これは別にニューロンiの次の状態を決める1要素として自分自身の状態を含んでいるということで別にどうしたこともないということです。自分自身の状態を考慮しないようにしたければ、常にwij(この場合にはwii)を0にしておけば、自分自身の状態は次の状態へ何の影響も与えないことになります。
ニューラルネットワークのモデル
ニューロンモデルをいくつか結合することによってニューラルネットワークのモデルができあがっている。ニューラルネットワークのモデルには、大きく分けて2つある。1つは、階層型ニューラルネットワークと呼ばれるもので図1−4を見てもらえばわかるように、順方向のみの結合で構成されており、フィードバック結合などの相互結合をもたないもの。もうひとつは、相互結合型ニューラルネットワークと呼ばれるもので、階層型でないもの、つまり順方向のみの結合で構成されていないものです。図1−5のようにお互いに結合しあっているものです。
図1−4
階層型ニューラルネットワーク
図1−5 相互結合型ニューラルネットワーク
ニューラルネットワークの学習
これまで読んでこられた方の中にはニューロンモデルもわかった、ニューラルネットワークのモデルもわかった、だからそれがどうしたんだと思っている人がいると思います。そうです、それが当然のことであって、ニューラルネットワークはこれだけの話では何の役にも立ちません。また、みなさんの中では、結合強度ってのがあったがその値をどのようにして決めればいいのだろうかとか、どんな値が適切で、どんな値が適切でないのかどうのようにわかるのかとか思ってる人もいるだろう。そんなものが何に役立つのだろうかとか思っている人もいるかもしれない。そんなみなさんの疑問をすべて解消してくれるのが、「学習」というものなのである。学習によって様々な予測やパターン認識が可能となるのです。学習によってニューラルネットワークが知能をもつというか、味気なく言うと学習によって適切な結合強度を見いだすということです。学習方式には、教師信号ありと教師信号なしの2通りあります。教師信号とは入力データに対して理想的と考えられる出力のことです。教師信号ありの学習方式だと外部から教師信号を与えてやって、出力結果と教師信号とを比較し、その誤差をできる限り小さくなるように結合強度を修正していきます。また、教師信号なしの学習方式では、出力結果を理想的かどうかをニューラルネットワーク自信が判断して、その誤差を小さくするように結合強度を修正していきます。
ちょっと、そこのあなた、またまた疑問を思い浮かべてますね。学習って言われてもどうやってそんなもんすんねんっと思ってますね。しかし、それは次回のお楽しみ。
第2回 |