【ネットワーク教習所】
ニューラルネットワークの可能性
第2回:ニューラルネットワークの構造を知る!
著者:名古屋工業大学大学院工学研究科 岩田 彰
公開日:2008/03/12(水)
ニューラルネットワークとニューロンモデル
ニューラルネットワークは脳の神経回路網における計算方式と同じ方式をコンピュータで行おうとするものである。ニューラルネットワークの特徴は、学習と並列処理であるが、学習とはあらかじめ用意された学習データに基づいて、ある入力が入るとその入力に対応する出力が得られるようにネットワークの結合係数の値を学習することである。文字認識であれば、手書きの「あ」という文字パターンを入力すると、文字コードの「あ」が出力されるということだ。
ネットワークの結合係数を決定するため、どのように学習するかという学習方式があれば、学習データを与えるだけで学習してくれるので手軽にパターン認識機械を作ることができる。
データを綿密に分析して入出力の関係をプログラムで表現しなくてもよい。例えるなら、子供に字を教える感覚でニューラルネットワークの学習を行えるのである。また、人間の脳に汎用性(日本人でもアメリカで育てば英語を自由に話せるように)があるのと同じように、ニューラルネットワークにも汎用性があり、さまざまなアプリケーションに適用できる利点がある。
本質的には並列処理であることからマルチプロセッサ方式のコンピュータに対して優れた適合性を持ち、高速演算が可能だ。その規模は、数個のプロセッサを持つシステムからニューロンの数と同じ数のプロセッサを持つ超並列システムまで考えられている。また、基本素子であるニューロンを多数配置してネットワーク化するだけでよいので、ハードウェア化にも適している。本連載の第4回ではハードウエア化の実際の例を紹介する。
ニューラルネットワークの応用分野は広いが、その中でも文字認識や音声認識などのパターン認識が最もよく適用される分野の1つだ。ニューラルネットワークを用いると、学習によって非線形な識別境界が獲得でき、従来技術によるパターン認識能力を越える認識機械を構成することができる。
まずは、ニューロンモデルについて解説していこう。ニューロン(神経細胞)は図1のようにモデル化される。入力がn個あるとき、それに対応する結合係数もn個存在する。i番目の入力、結合係数をそれぞれXi、Wiとする。ニューロンには膜電位(まくでんい)というものがあり、そのしきい値を超えると発火する。つまり、膜電位からしきい値を引いた値が正であれば発火しているということになる。すなわち、膜電位がしきい値を超えていれば「1」、超えていなければ「0」、という階段関数状に出力する。階段関数をstep()として、ニューロンの出力をあらわすことができる。
階層型ネットワークとバックプロパゲーション(BP)
ニューラルネットワークはニューロンを基本素子とし、それらが互いに接続することによって構成されている。ネットワークの構造にはいくつかの種類があるが、代表的なものが図1に示した階層型ネットワークだ。
Rumelhartらによって提案されたバックプロパゲーション(誤差逆伝播学習)は、階層型ニューラルネットの教師あり、学習モデルとして現在最もよく用いられている。学習は図1に示すように、(入力信号から出力信号を求める)前向き演算と(誤差が小さくなるように結合係数を修正する)後向き演算に分かれる。
バックプロパゲーションは、このような前向き演算と後向き演算を、すべての学習パターンについて繰り返し、2乗誤差E(教師出力と前向き演算の結果得られた出力層ニューロンの出力の差の2乗)が小さくなるように結合係数を修正していく。 次のページ