(57)【要約】【課題】  高速且つ安定に加速収束させ、所望の出力層出力信号を得ることができる多層ニューラルネットワーク学習装置及びソフトウェアを提供する。【解決手段】  応答関数の導関数が出力信号に対して零点を有する該応答関数を用いたエラー・バック・プロパゲーション重み係数更新により教師信号を学習して重み係数を更新する多層ニューラルネットワークにおいて、  学習用入力信号に対応した出力層出力ユニット信号の正解不正解を少なくとも判定する正解不正解出力判定手段２７を設け、不正解と判定された出力層出力ユニットでは、０以上１より小さい第１のべき乗係数値を設定した出力層応答関数微分正規化べき乗関数を介して得られた出力層応答関数微分係数正規化べき乗値を少なくとも用い、中間層−出力層間重み係数更新を行うことを特徴とした多層ニューラルネットワーク学習装置。【選択図】  図１
2005339322.tif 000002
【特許請求の範囲】
【請求項１】
応答関数の導関数が出力信号に対して零点を有する該応答関数を用いたエラー・バック・プロパゲーション重み係数更新により教師信号を学習して重み係数を更新する多層ニューラルネットワークにおいて、
学習用入力信号（２１〜２Ｎ）に対する多層ニューラルネットワーク（１）の出力層出力ユニット信号を教師ユニット信号（Ｔ）と比較し、正解又は不正解を少なくとも判定し、出力ユニット正解不正解判定信号を送出する正解不正解出力判定処理手段（１１）と、
該出力層出力ユニット信号が不正解と判定された出力層出力ユニットでは、０以上１より小さい第１のべき乗係数値を所定の関数に適用して出力層応答関数微分係数正規化べき乗値を得る出力層応答関数微分係数正規化べき乗値処理手段（２７）とを少なくとも設け、
該出力層応答関数微分係数正規化べき乗値処理手段（２７）の出力を少なくとも用いて、前記多層ニューラルネットワーク（１）の中間層−出力層間の重み係数更新を行うことを特徴とする多層ニューラルネットワーク学習装置。
【請求項２】
前記出力層応答関数微分係数正規化べき乗値処理手段（２７）に於いて、
更に、前記出力層出力ユニット信号が正解と判定された出力層出力ユニットでは、０以上１以下の第２のべき乗係数値を所定の関数に適用して出力層応答関数微分係数正規化べき乗値を得え、重み係数更新を行うことを特徴とする請求項１に記載の多層ニューラルネットワーク学習装置。
【請求項３】
前記正解不正解出力判定処理手段（１１）に於いて、
更に、全ての学習入力信号（２１〜２Ｎ）に夫々対応した出力層出力信号が正解か不正解かを判定し全出力正解判定信号を送出し、全出力層出力信号が正解と一旦判定されると、
前記出力層応答関数微分係数正規化べき乗値処理手段（２７）に於いて、少なくとも出力層出力ユニットが正解と判定された出力層出力ユニットでは、０以上で前記第２のべき乗係数値より小さい第３のべき乗係数値を所定の関数に適用して出力層応答関数微分係数正規化べき乗値を得え、重み係数更新を行うことを特徴とする請求項１又は２に記載の多層ニューラルネットワーク学習装置。
【請求項４】
０以上１以下の第４のべき乗係数値を所定の関数に適用して中間層応答関数微分係数正規化べき乗値を得る中間層応答関数微分係数正規化べき乗値処理手段（２８）を設け、
該中間層応答関数微分係数正規化べき乗値処理手段（２８）の出力を少なくとも用いて、前記多層ニューラルネットワーク（１）の中間層−中間層間或いは入力層−中間層間の重み係数更新を行うことを特徴とする請求項１から３のいずれか１項に記載の多層ニューラルネットワーク学習装置。
【請求項５】
前記正解不正解出力判定処理手段（１５）に於いて、更に、出力層出力信号の正解或いは不正解を判定し出力正解不正解判定信号を送出し、
出力層出力信号が正解であれば、０以上１以下の第５のべき乗係数値を所定の関数に適用し、不正解ならば０以上１より小さい第６のべき乗係数値を所定の関数に適用して中間層応答関数微分係数正規化べき乗値を得る中間層応答関数微分係数正規化べき乗値処理手段（２９）を設け、
該中間層応答関数微分係数正規化べき乗値処理手段（２９）の出力を少なくとも用いて、前記多層ニューラルネットワーク（１）の中間層−中間層間或いは入力層−中間層間の重み係数更新を少なくとも行うことを特徴とする請求項１から３のいずれか１項に記載の多層ニューラルネットワーク学習装置。
【請求項６】
応答関数の導関数が出力信号に対して零点を有する該応答関数を用いたエラー・バック・プロパゲーション重み係数更新により教師信号を学習して重み係数を更新する多層ニューラルネットワークにおいて、
学習用入力信号（２１〜２Ｎ）に対する多層ニューラルネットワーク（１）の出力層出力信号を教師信号（Ｔ）と比較し、正解又は不正解を少なくとも判定し、出力正解不正解判定信号を送出する正解不正解出力判定処理手段（１５）と、
該出力層出力信号が正解と判定されると、０以上１以下の第７のべき乗係数値を所定の関数に適用し、不正解と判定されると、０以上１より小さい第８のべき乗係数値を所定の関数に適用して中間層応答関数微分係数正規化べき乗値を得る中間層応答関数微分係数正規化べき乗値処理手段（２９）を少なくとも設け、
該中間層応答関数微分係数正規化べき乗値処理手段（２９）の出力を少なくとも用いて、前記多層ニューラルネットワーク（１）の入力層−中間層間或いは中間層−中間層間の重み係数更新を少なくとも行うことを特徴とする多層ニューラルネットワーク学習装置。
【請求項７】
前記正解不正解出力判定処理手段（１５）に於いて、
更に、全ての学習入力信号（２１〜２Ｎ）に夫々対応した出力層出力信号が正解か不正解かを判定し全出力正解判定信号を送出し、全出力層出力信号が正解と一旦判定されると、
前記出力層応答関数微分係数正規化べき乗値処理手段（２９）に於いて、少なくとも出力層出力ユニットが正解と判定された出力層出力ユニットでは、０以上で前記第７のべき乗係数値より小さい第９のべき乗係数値を所定の関数に適用して出力層応答関数微分係数正規化べき乗値を得え、重み係数更新を行うことを特徴とする請求項６に記載の多層ニューラルネットワーク学習装置。
【請求項８】
応答関数の導関数が出力信号に対して零点を有する該応答関数を用いたエラー・バック・プロパゲーション重み係数更新により教師信号を学習して重み係数を更新する多層ニューラルネットワーク用のコンピュータソフトウェアにおいて、
コンピュータに、
学習用入力信号（２１〜２Ｎ）に対する多層ニューラルネットワーク（１）の出力層出力ユニット信号を教師ユニット信号（Ｔ）と比較し、正解又は不正解を少なくとも判定する正解不正解出力判定処理（１３０）と、
不正解と判定された出力層ユニットでは、０以上１より小さい第１０のべき乗係数値を所定の関数に適用して出力層応答関数微分係数正規化べき乗値を得る応答関数微分係数正規化べき乗値処理（１４０）とを少なくとも実行させ、
該出力層応答関数微分係数正規化べき乗値に少なくとも基づき、前記多層ニューラルネットワーク（１）の重み係数更新を実行させることを特徴とする多層ニューラルネットワークの学習ソフトウェア。
【請求項９】
前記正解不正解出力判定処理（１３０）に於いて、
更に、全ての学習入力信号（２１〜２Ｎ）に夫々対応した出力層出力信号が正解か不正解かを判定し、
前記応答関数微分係数正規化べき乗値処理（１４０）に於いて、全出力層出力信号が正解と一旦判定されると、少なくとも出力層出力ユニットが正解と判定された出力層出力ユニットでは、０以上１以下の第１１のべき乗係数値を所定の関数に適用して出力層応答関数微分係数正規化べき乗値を得え、重み係数更新を実行させることを特徴とする請求項８に記載の多層ニューラルネットワーク学習ソフトウェア。
【請求項１０】
前記正解不正解出力判定処理（１３０）に於いて、
更に、出力層出力信号の正解或いは不正解を判定し、前記応答関数微分係数正規化べき乗値算出処理（１４０）に於いて、出力層出力信号が正解であれば、０以上１以下の第１２のべき乗係数値を所定の関数に適用し、不正解ならば０以上１より小さい第１３のべき乗係数値を所定の関数に適用して中間層応答関数微分係数正規化べき乗値を得え、前記多層ニューラルネットワーク（１）の中間層−中間層間或いは入力層−中間層間の重み係数更新を少なくとも実行させることを特徴する請求項８又は９に記載の多層ニューラルネットワーク学習ソフトウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワークによるネットワーク障害検出、ネットワークセキュリティ、パターン認識やデータ圧縮などを行う処理分野に於いて、大量の教師付き学習用入力信号を用いて学習を行う多層ニューラルネットワークのエラー・バック・プロパゲーション学習装置に関するものである。
【背景技術】
【０００２】
ニューラルネットワークの１つとして、多層（階層）ニューラルネットワークがあるが、このニューラルネットワークの教師信号を用いた学習装置として、エラー・バック・プロパゲーション・アルゴリズムによる最急降下勾配法が幅広く使用されている。本アルゴリズムを用いた学習過程では、重み係数を初期設定した後、予め用意された教師信号Ｔの教師ユニット信号（教師信号エレメントでもある、Ｔ１、Ｔ２、...、ＴＭ）から、入力層に入力された学習用入力信号に対する出力層からの出力ユニット信号を差し引き、誤差信号を求め、各層の出力ユニット信号と誤差信号とを基に誤差信号の電力を最小にするように、誤差電力最小法により、各層間の重み係数の更新を行い学習を行うものである。この重み係数適応制御からなる学習を予め準備された全ての学習用入力信号に対して実行し、学習収束条件を満足するまで繰り返す。
【０００３】
この学習過程に於て、重み係数更新の結果、誤差電力が最小（グローバルミニマム）となると完全に収束し、然も全ての学習用入力信号に対する、出力層出力ユニット信号を２値化した２値出力層出力ユニット信号が２値教師ユニット信号と一致し、全ての正解出力信号が得られる。しかしながら、誤差電力が局部極小（ローカルミニマム）の局所解に一旦陥ると、それが非常に安定な場合はそれ以降の重み係数更新が進まず最小とならないこと、また、全ての２値出力層出力信号が２値教師信号とは一致せず、誤った不正解出力信号を送出する状態が発生する。一般に誤差電力が最小の状態には中々到達せず、学習収束条件を満足する学習回数が著しく増加することや、収束特性に重み係数の初期値依存性があるなどの問題がある。特に大量の学習用入力信号を用いた場合に大きな問題となる。
【０００４】
ここで、従来のエラー・バック・プロパゲーション学習の動作について、２値教師信号を例にとり図４を用いて詳細に説明する。ここでは、エレメントが０或いは１からなる２値教師信号Ｔ（T１，T２、．．．TM）に対して学習速度を改善するために、非特許文献１では、図４に示す従来方式の学習を用いた多層ニューラルネットワークにおいて、それぞれのエレメントに対して０．１或いは０. ９の教師信号エレメント（T１，T２、．．．TM）を設定し、動作モード制御部１０からの制御信号により夫々初期設定を行った後、学習処理を開始する。また、従来のエラー・バック・プロパゲーション・アルゴリズムについては、非特許文献２など多くの解説書に詳細が記載されている。
【０００５】
３層ニューラルネットワーク１の出力層出力信号は、各出力層ユニットに対応した出力層出力ユニット信号からなる。端子３からの教師ユニット信号（T１，T２、．．．TM）から、端子２からの学習用入力信号に対する出力層出力ユニット信号を減算部４（４１，４２、．．．４Ｍ）を介して差し引き、各出力層ユニットの出力層出力ユニット誤差信号からなる誤差信号を求め、これを重み係数制御部５に入力し、エラー・バック・プロパゲーション・アルゴリズムにより重み係数更新を行い、３層ニューラルネットワーク１に再度設定する処理を学習用入力信号に対して繰り返し実行する。
【０００６】
また、２値識別スレショルドを用いて２値化する２値スレショルド回路６（６１，６２、．．．６Ｍ）を介して出力層出力ユニット信号から２値出力層出力ユニット信号を得、また、２値識別スレショルドを用いて２値化する２値スレショルド回路７（７１，７２、．．．７Ｍ）を介して教師信号Ｔから２値教師信号を得、一致検出部８にてこれらが完全に一致する状態を検出すると正解出力信号とみなし、学習収束判定処理部９に送出する。また、２値出力層出力ユニット信号から構成された２値出力層出力信号が得られる。
【０００７】
学習収束判定処理部９では、全ての学習用入力信号に対する出力信号の誤差電力を求め、これが予め準備された誤差電力スレショルド以下で、更に全て２値教師信号と一致し正解出力信号となれば、３層ニューラルネットワーク１が収束したと判断して動作モード制御部１０を介して学習が終了する。ここで、大規模ニューラルネットワークを大量の学習用入力信号で学習する際に、誤差電力が与えられた誤差電力スレショルド以下であっても、一致検出部８に於いて２値出力層出力信号と２値教師信号との完全な一致が得られない場合がある。この時、数個の不正解の出力層出力信号が存続し、全て正解の出力層出力信号とはならず、非常に安定したローカルミニマム（局所解）に落ち込んでいる状態が多い。
【０００８】
このような状況下では、殆どの学習用入力信号に対する正解の出力層出力信号は、教師信号に非常に近いより正解の値をとり、数少ない学習用入力信号に対する不正解の出力層出力信号は、教師信号から大きく離れたより不正解の値をとり、収束せず学習が進まない。従って、全正解の出力層出力信号が得られず、汎化特性も劣化する。
【０００９】
ここで、重み係数制御部５における従来のエラー・バック・プロパゲーション・アルゴリズムによる重み係数更新に関する、安定したローカルミニマムの発生について以下に説明する。教師信号エレメント（T１，T２、．．．TM）を０．１或いは０. ９に設定することにより、０或いは１からなる２値教師信号の場合に比較して、収束しやすくなり学習回数も削減されることが述べられている。
【００１０】
式(1)の各ユニットに於ける出力ユニット信号を得る際に、一般に用いられる応答関数f(x)の一例としての式(2)の示す０から１の範囲の値を持つシグモイド関数を仮定すると、
Ｏkj(t)  ＝  f(Ninkj(t))、
Ｏsm(t)  ＝  f(Ninsm(t))        (１)
Ｏkj(t): t番目学習用入力信号に対するk層j番目ユニットの出力ユニット信号
Ｏｓm(t): t番目学習用入力信号に対するs(出力)層m番目ユニットの出力層出力ユニット信号
t：学習用入力信号番号
s：出力層
j:k層j番目ユニット番号
m:出力層m番目ユニット番号
Ninkj(t)：t番目学習用入力信号に対応したｋ層j番目ユニットへの入力の総和（ユニットへの入力信号を意味する）
f(x)＝1/{1+Exp(-λx)}            (２)
で与えられる。但し、ここでは、定数λ=1として説明するが、一般性を失うものではない。
【００１１】
安定したローカルミニマムでは、k層出力ユニット信号Ｏkj(t)が０あるいは１に近づくと、重み係数更新量を得る際に用いられる式（３）及び式（４）に示す応答関数導関数f’(x)が出力信号に対して零点を持ち、即ち応答関数微分係数値が零或いは零に非常に近い正の小さい値となることにより、重み係数の更新量も小さくなり、更新速度が極端に小さくなることの理由による。
【００１２】
ｋ層ｊ番目ユニットに於ける応答関数微分係数値
＝f’(Ninkj(t))    
＝  Exp(-Ninkj(t))/{1 + Exp(-Ninkj(t))}2    (≧0)
＝  Ｏkj(t){1-Ｏkj(t)}                     （３）
ここで、f’(x)：応答関数導関数であり、f’(Ninkj(t))はｋ層応答関数微分関数である。
【００１３】
出力層m番目ユニットに於ける出力層応答関数微分係数値
＝f’(Ninsm(t))
＝ＯSm(t)(1−ＯSm(t))              （４）
で与えられる。ここで、f’(Ninsm(t))は出力層応答関数微分関数である。
また、
【００１４】
【数１】
2005339322.tif 000003
Wkj,i:k層j番目ユニットとk-1層i番目ユニット間の重み係数
Ninkj(t)：t番目学習用入力信号に対応したｋ層j番目ユニットへの入力の総和（入力信号）
で与えられる。
【００１５】
誤差電力の最急降下勾配法では、式(３)、式（４）に記載されているように、応答関数としてのシグモイド関数の微分係数値を出力層応答関数微分係数値処理部２０及び中間層応答関数微分係数値処理部２１に於いて、それぞれ出力層及び中間層に対して求める。
【００１６】
t番目学習用入力信号に対する出力層ｍ番目ユニットの出力層出力ユニット誤差信号は、式（６）で与えられ、出力層出力信号の誤差電力、Epowerは式（７）で与えられる。
【００１７】
出力層出力ユニット誤差信号  ＝  Tm- Ｏsm(t)       （６）
ここで、Tm  ：t番目学習用入力信号に対する出力層m番目ユニットの教師信号
【００１８】
【数２】
2005339322.tif 000004
ここで、k-1層i番目ユニット−k層j番目ユニット間の重み係数の重み係数更新に於ける、重み微調修正量を式（８）で与えられる。
【００１９】
重み微調修正量  ＝  δkj(t)・Ｏk-1i(t)              （８）
ここで、s-1層j番目ユニット−s(出力)層m番目ユニット間の重み係数の重み微調修正量に於ける重み係数更新用誤差信号δsm(t)は、式（９）となる。
【００２０】
δsm(t)＝(Tm−Ｏsm)f’(Ninsm(t))
＝(Tm−Ｏsm(t)) ＯSm(t)(1−ＯSm(t))        （９）
出力層では、教師信号エレメントを０．１及び０. ９の２値に設定し、Ｏsm(t)が０または１とならないようにしてδsm(t)を求め、学習速度を改善している。しかしながら、このような教師信号エレメントの値の設定に於いても同様に安定したローカルミニマムに落ち込む場合がある。また、２値として、０．１及び０．９を用いることから、これらの値に収束した場合にも、0或いは１のエレメントを持つ２値教師信号の場合に比較して汎化特性がかなり劣化する。
【００２１】
k層j番目ユニット−k+1層n番目ユニット間の重み係数の重み微調修正量に於ける重み係数更新用誤差信号δkj(t)は、式（１０）となる。
【００２２】
【数３】
2005339322.tif 000005
但し、k≠s 
ここで、
ΔWsm,jをs-1層j番目ユニット−s(出力)層m番目ユニット間の重み係数の重み係数更新量、
ΔWkj,iを(k-1)層i番目ユニット−k層j番目ユニット間重み係数の重み係数更新量とすると、式（１１）で与えられる。また、更新された重み係数は式（１２）で与えられる。
【００２３】
ΔWkj,i(t)= αδkj(t)Ｏk-1i(t)  ＋  ηΔWkj,i(t-1)  （１１）
η：慣性係数
α：学習係数
Wkj,i(t)=  Wki,i(t-1)  ＋  ΔWkj,i(t)        （１２）
出力層応答関数微分係数値処理部２０及び中間層応答関数微分係数値処理部２１に於いて、上記の式（３）及び式（４）で求められた、出力層及び中間層の夫々の応答関数微分係数値は、重み微調修正量処理部２２に入力され、式（８）のように重み微調修正量が得られる。これを重み係数更新量処理部２３に入力し、式（１１）のように、t-1番目の学習用入力信号の重み係数更新量が重み係数更新量記憶部２４から読み出され、加算され新たな重み係数更新量を得る。その後、重み係数更新処理部２５へ送出すると共に、式（１１）の新たな重み係数更新量は、重み係数更新量記憶部２４に格納する。
【００２４】
重み係数更新処理部２５では、式（１２）のように、t-1番目の学習用入力信号の重み係数を重み係数記憶処理部２６から読み出し、重み係数更新量を加算することにより、新たな重み係数を得、重み係数記憶処理部２６に格納する。全ての学習用入力信号に対して求められると、この新たな重み係数を重み係数記憶処理部２６から読み出し３層ニューラルネットワーク１の重み係数として、夫々の層間のユニットの結合の為に設定される。
【００２５】
上記の如く、重み係数制御部５に於いて、全ての学習用入力信号に対して一連の重み係数更新処理が終了すると、動作モード制御部１０からの制御信号を基に、全ての学習用入力信号を３層ニューラルネットワーク１に入力し、式（１）に示すように、出力層に対応した応答関数出力信号を出力層出力信号として得る。更に、式（６）に示すように、減算部４を介して出力層出力ユニット誤差信号を得、式（７）に示す誤差電力を求め、学習収束判定処理部９にて出力信号の収束状態を調べる。
【００２６】
学習収束条件として、一致検出部８から全て正解出力信号が得られ、然も誤差電力スレショルド以下であれば、収束したと判定し学習を終了する。一方、これらの学習収束条件が満たされない場合には、満たされるまで、再度、全ての学習用入力信号に対して重み係数更新を繰り返し行う。
【００２７】
ここで、式（８）に示すように、正解出力信号の誤差成分が小さくなると共に、応答関数微分係数値も小さく、重み微調修正量が非常に小さくなる。
【００２８】
また、式（３）で明らかなように、出力層応答関数微分係数値は、誤差が非常に大きい不正解出力層出力ユニット信号に対しても非常に小さくなる可能性があり、結果的に不正解出力層出力信号に対しても重み微調修正量が小さくなり、重み係数の更新が進まない場合がある。
【００２９】
特に、収束が進み、殆どの学習用入力信号に対して正解出力層出力信号となり、不正解出力層出力信号の学習用入力信号数が数個と非常に少なくなると、誤差電力はより小さくなる。しかしながら、急激に正解出力層出力信号は益々教師信号に非常に近い、最小の誤差成分を持った正解の出力層出力信号に、一方、不正解出力層出力信号は、より大きな誤差信号を持ち、急激に全て誤った出力層出力ユニット信号となり、最大の誤差成分を持った不正解出力層出力信号となり、安定したローカルミニマムに陥る。この為に、これ以降の重み係数更新は進まず、誤差電力も殆ど変化せず、不正解出力層出力信号を出したままとなる。
【００３０】
これらの従来の学習装置では、上記説明の如く、ローカルミニマムの状態に落ち込みやすく、また、なかなか抜け出せないことから、全て正解出力となり完全な収束状態が簡単には到達できないなどの欠点がある。特に、入力ユニット数の多い３層あるいは多層ニューラルネットワークにおいて、教師信号に対して確実に収束させる設計手法は明らかになっておらず、初期値依存性の為に重み係数の初期値を変更したり、中間層ユニット（隠れユニット）数を増やすなどの種々の試行錯誤を行っている。また、安定なローカルミニマムへの捕獲状態を簡単に避ける手段はこれまでない。
【００３１】
【特許文献１】特願２００３−１３１６６５号明細書
【非特許文献１】D.E.Rumelhart, “Parallel Distributed Processing”, MIT Press, １９８８年
【非特許文献２】麻生英樹著、“ニューラルネットワーク情報処理”、産業図書出版、１９８８年
【発明の開示】
【発明が解決しようとする課題】
【００３２】
上記の説明のごとく、教師信号を用いた多層ニューラルネットワークの従来の学習処理において、多層ニューラルネットワークが学習用入力信号に対応した所望の出力信号を送出するよう重み係数を更新する際に、正解で所望の出力信号を送出する収束した状態になるまでの学習回数即ち学習繰り返し回数が非常に多くなる場合や、学習しても収束しない状態即ち非常に安定したローカルミニマムの状態に落ち込み所望の出力信号が送出されないなど重み係数の初期値依存性があるなどの欠点を有している。
【００３３】
また、一旦全正解の所望の２値出力信号を得た後にも、汎化特性を改善するために、出力層出力ユニット信号と教師ユニット信号との誤差電力が指定された誤差電力スレショルド以下となるまで学習を継続する必要があるが、出力層に於いて式（８）の重み微調修正量が小さくなることから収束までの学習回数が非常に多くなる欠点を持っている。
【００３４】
特に、入力層や出力層出力ユニット数が多く、而も分布型の表示形式を持った出力層出力信号を用いた多層ニューラルネットワークでは、学習用入力信号数が多い場合、学習の際に収束が非常に困難となり、所望の出力信号を送出する多層ニューラルネットワークを自由に設計する方法が確立されていない。また、収束しやすくするために中間ユニット数を大幅に増やす方法もあるが、収束が補償される訳ではない。過学習により汎化能力が劣化すると共に当然のことながらそれぞれの演算量が増し、非常に大きいハードウェア能力あるいは演算能力が要求される。
【００３５】
本発明の目的は、上記の問題を解決し、多層ニューラルネットワークに於ける従来のエラー・バック・プロパゲーション学習方法などに比べて、安定したローカルミニマム（局所解）に陥ることなく、非常に少ない学習回数で非常に安定に収束し、少なくとも１０倍から１００倍の高速度で学習を完了させることが出来、然も汎化能力に優れ、学習用入力信号に対して所望の出力信号を容易に得ることができる多層ニューラルネットワークの新たなエラー・バック・プロパゲーション学習装置を提供することにある。
【課題を解決するための手段】
【００３６】
上記の問題点を解決するために、第１の手段として、応答関数の導関数が出力信号に対して零点を有する該応答関数を用いたエラー・バック・プロパゲーション重み係数更新により教師信号を学習して重み係数を更新する多層ニューラルネットワークにおいて、学習用入力信号に対する多層ニューラルネットワークの出力層出力ユニット信号を教師ユニット信号と比較し、正解又は不正解を少なくとも判定し、出力ユニット正解不正解判定信号を送出する正解不正解出力判定処理手段と、該出力層出力ユニット信号が不正解と判定された出力層出力ユニットでは、０以上１より小さい第１のべき乗係数値を所定の関数に適用して出力層応答関数微分係数正規化べき乗値を得る出力層応答関数微分係数正規化べき乗値処理手段とを少なくとも設け、該出力層応答関数微分係数正規化べき乗値処理手段の出力を少なくとも用いて、前記多層ニューラルネットワークの中間層−出力層間の重み係数更新を行うことを特徴とする多層ニューラルネットワーク学習装置を構成する。
【００３７】
第２の手段として、第１の手段に記載の多層ニューラルネットワーク学習装置の前記出力層応答関数微分係数正規化べき乗値処理手段に於いて、更に、前記出力層出力ユニット信号が正解と判定された出力層出力ユニットでは、０以上１以下の第２のべき乗係数値を所定の関数に適用して出力層応答関数微分係数正規化べき乗値を得え、重み係数更新を行うことを特徴とする多層ニューラルネットワーク学習装置を構成する。
【００３８】
第３の手段として、第１及び第２の手段の何れかに記載の多層ニューラルネットワーク学習装置の前記正解不正解出力判定処理手段に於いて、更に、全ての学習入力信号に夫々対応した出力層出力信号が正解か不正解かを判定し全出力正解判定信号を送出し、全出力層出力信号が正解と一旦判定されると、前記出力層応答関数微分係数正規化べき乗値処理手段に於いて、少なくとも出力層出力ユニットが正解と判定された出力層出力ユニットでは、０以上で前記第２のべき乗係数値より小さい第３のべき乗係数値を所定の関数に適用して出力層応答関数微分係数正規化べき乗値を得え、重み係数更新を行うことを特徴とする多層ニューラルネットワーク学習装置を構成する。
【００３９】
第４の手段として、第１、第２及び第３の手段の何れかに記載の多層ニューラルネットワーク学習装置に於いて、０以上１以下の第４のべき乗係数値を所定の関数に適用して中間層応答関数微分係数正規化べき乗値を得る中間層応答関数微分係数正規化べき乗値処理手段を設け、該中間層応答関数微分係数正規化べき乗値処理手段の出力を少なくとも用いて、前記多層ニューラルネットワークの中間層−中間層間或いは入力層−中間層間の重み係数更新を行うことを特徴とする多層ニューラルネットワーク学習装置を構成する。
【００４０】
第５の手段として、第１、第２及び第３の手段の何れかに記載の多層ニューラルネットワーク学習装置の前記正解不正解出力判定処理手段に於いて、更に、出力層出力信号の正解或いは不正解を判定し出力正解不正解判定信号を送出し、出力層出力信号が正解であれば、０以上１以下の第５のべき乗係数値を所定の関数に適用し、不正解ならば０以上１より小さい第６のべき乗係数値を所定の関数に適用して中間層応答関数微分係数正規化べき乗値を得る中間層応答関数微分係数正規化べき乗値処理手段を設け、該中間層応答関数微分係数正規化べき乗値処理手段の出力を少なくとも用いて、前記多層ニューラルネットワークの中間層−中間層間或いは入力層−中間層間の重み係数更新を少なくとも行うことを特徴とする多層ニューラルネットワーク学習装置を構成する。
【００４１】
第６の手段として、応答関数の導関数が出力信号に対して零点を有する該応答関数を用いたエラー・バック・プロパゲーション重み係数更新により教師信号を学習して重み係数を更新する多層ニューラルネットワークにおいて、学習用入力信号に対する多層ニューラルネットワークの出力層出力信号を教師信号と比較し、正解又は不正解を少なくとも判定し、出力正解不正解判定信号を送出する正解不正解出力判定処理手段と、該出力層出力信号が正解と判定されると、０以上１以下の第７のべき乗係数値を所定の関数に適用し、不正解と判定されると、０以上１より小さい第８のべき乗係数値を所定の関数に適用して中間層応答関数微分係数正規化べき乗値を得る中間層応答関数微分係数正規化べき乗値処理手段を少なくとも設け、該中間層応答関数微分係数正規化べき乗値処理手段の出力を少なくとも用いて、前記多層ニューラルネットワークの入力層−中間層間或いは中間層−中間層間の重み係数更新を少なくとも行うことを特徴とする多層ニューラルネットワーク学習装置を構成する。
【００４２】
第７の手段として、第６の手段に記載の多層ニューラルネットワーク学習装置の前記正解不正解出力判定処理手段に於いて、更に、全ての学習入力信号に夫々対応した出力層出力信号が正解か不正解かを判定し全出力正解判定信号を送出し、全出力層出力信号が正解と一旦判定されると、前記出力層応答関数微分係数正規化べき乗値処理手段に於いて、少なくとも出力層出力ユニットが正解と判定された出力層出力ユニットでは、０以上で前記第７のべき乗係数値より小さい第９のべき乗係数値を所定の関数に適用して出力層応答関数微分係数正規化べき乗値を得え、重み係数更新を行うことを特徴とする多層ニューラルネットワーク学習装置を構成する。
【００４３】
第８の手段として、応答関数の導関数が出力信号に対して零点を有する該応答関数を用いたエラー・バック・プロパゲーション重み係数更新により教師信号を学習して重み係数を更新する多層ニューラルネットワーク用のコンピュータソフトウェアにおいて、コンピュータに、学習用入力信号に対する多層ニューラルネットワークの出力層出力ユニット信号を教師ユニット信号と比較し、正解又は不正解を少なくとも判定する正解不正解出力判定処理と、不正解と判定された出力層ユニットでは、０以上１より小さい第１０のべき乗係数値を所定の関数に適用して出力層応答関数微分係数正規化べき乗値を得る応答関数微分係数正規化べき乗値処理とを少なくとも実行させ、該出力層応答関数微分係数正規化べき乗値に少なくとも基づき、前記多層ニューラルネットワークの重み係数更新を実行させることを特徴とする多層ニューラルネットワークの学習ソフトウェアを構成する。
【００４４】
第９の手段として、第８の手段に記載の多層ニューラルネットワーク学習ソフトウェアの前記正解不正解出力判定処理に於いて、更に、全ての学習入力信号に夫々対応した出力層出力信号が正解か不正解かを判定し、前記応答関数微分係数正規化べき乗値処理に於いて、全出力層出力信号が正解と一旦判定されると、少なくとも出力層出力ユニットが正解と判定された出力層出力ユニットでは、０以上１以下の第１１のべき乗係数値を所定の関数に適用して出力層応答関数微分係数正規化べき乗値を得え、重み係数更新を実行させることを特徴とする請求項８に記載の多層ニューラルネットワーク学習ソフトウェアを構成する。
【００４５】
第１０の手段として、第８及び第９の手段の何れかに記載の多層ニューラルネットワーク学習ソフトウェアの前記正解不正解出力判定処理（１３０）に於いて、更に、出力層出力信号の正解或いは不正解を判定し、前記応答関数微分係数正規化べき乗値算出処理に於いて、出力層出力信号が正解であれば、０以上１以下の第１２のべき乗係数値を所定の関数に適用し、不正解ならば０以上１より小さい第１３のべき乗係数値を所定の関数に適用して中間層応答関数微分係数正規化べき乗値を得え、前記多層ニューラルネットワークの中間層−中間層間或いは入力層−中間層間の重み係数更新を少なくとも実行させることを特徴する多層ニューラルネットワーク学習ソフトウェアを構成する。
【００４６】
本発明の多層ニューラルネットワークの応答関数微分係数正規化べき乗関数型エラー・バック・プロパゲーション学習方法に於いて、重み係数更新の際に、不正解の出力層出力ユニット信号に対して、従来用いられてきた出力層応答関数微分係数値ではなく、出力層応答関数微分係数正規化べき乗値を用いることにより、出力層出力ユニット信号に対して従来の出力層応答関数微分係数値が小さくなる状況下でも、重み微調修正量を大きくでき、重み係数の更新を迅速且つ確実に進ませることができる。また、不正解の出力層出力信号に対して、中間層応答関数微分係数正規化べき乗値を用いることにより同様の作用を実現できる。
【００４７】
上記説明のごとく本発明の応答関数微分係数正規化べき乗関数型エラー・バック・プロパゲーション学習方法は、重み係数の学習状態の停滞を抑え、収束速度を大幅に改善でき、然も、特許文献１に記載されている出力層応答関数微分値制限付き学習方法と組み合わせる事により、安定したローカルミニマム捕獲状態に一段と陥ることもなく、更に高速に収束させることができる。この結果、従来方式に比べて重み係数の初期値依存性もなく、非常に高速に且つ確実に収束させ、所望の全て正解の２値出力層出力信号を容易に得ることができる。また、その汎化特性も従来方法より一段と優れた特性を実現できる。
【００４８】
これらのことから、多量の学習用入力信号を有し、全正解出力層出力信号を送出する大規模な多層ニューラルネットワークを自由に設計できる。更に、実時間で学習をやり直す必要のある学習機能を持った論理システムや、非常に多くの入力信号エレメント数を持った入力信号やユニット数の多い多層ニューラルネットワークを用いた２値論理システムを実現できる。
【００４９】
従って、従来方式では高速に且つ安定に収束させることができず、然も所望の全て正解の出力信号を得ることが困難であったパターン認識や画像処理を初め、ネットワークセキュリティやネットワーク障害検出などの高度な学習特性と汎化特性が要求されるシステムなども容易に設計し実現することが可能となる。
【発明の効果】
【００５０】
以上述べたように、従来のエラー・バック・プロパゲーション学習装置において、大量の学習用入力信号に対して学習を進めても２値教師信号と２値出力層出力信号との間の誤り個数や、２値教師信号と出力信号との誤差電力が低減せず変化しない非常に安定したローカルミニマムに陥る場合が多く、収束しないか、或いは収束しても学習回数が数万回にも至る場合が多く、エラー・バックプロパゲーション学習法の大きな欠点として指摘されてきた。特に、収束の際、全出力正解判定信号から全出力正解状態を検出し、２値出力層出力信号が全正解となったとしても、その後も、２値教師信号に対して所望の誤差範囲内の出力信号を得る全出力正解余裕状態になり収束判定条件を満たすためには、非常に多くの学習回数が必要である。
【００５１】
一方、本発明の応答関数微分係数正規化べき乗関数型エラー・バック・プロパゲーション学習装置に於いては、出力層に接続されている重み係数更新の際に、不正解出力がある場合、大きく不正解であると非常に小さくなる応答関数微分係数値を用いるのではなく、１より小さいべき乗係数を設定した出力層応答微分正規化べき乗値を用いて、大きく重み微調修正することにより、このような安定したローカルミニマムに停滞することが無くなる。
【００５２】
然も、全正解の２値出力層出力信号が得られた後には、出力層出力信号が２値教師信号に近づくと、従来の非常に小さくなる応答関数微分係数値を用いるのではなく、より小さなべき乗係数を持つ出力層応答関数微分正規化べき乗値を用い、重み微調修正することから、２値教師信号に対して出力層出力信号を所望の振幅誤差範囲内に収束し学習収束条件を迅速に満たすことも出来、大幅な学習回数の削減がされる。この事から、全正解で、所望の振幅誤差範囲内の２値出力信号を持ったグローバルミニマムの状態を速やかに達成することができる。
【００５３】
従って、学習データ量が非常に多くても、常に収束し、収束が得られた状態での従来方式に対しても学習回数が１０倍程度以上著しく短縮される。特に、特願2003‐131665、“多層ニューラルネットワーク学習方法”を組み合わせて用いることにより、100倍以上速く収束する。また、必要最小限の中間ユニット数あるいは中間層数を用いて常に安定に最適状態に収束させることが出来ることから、ハードウェア規模やその演算量も少なく出来る。
【００５４】
本発明の応答関数微分係数正規化べき乗関数型エラー・バック・プロパゲーション学習装置を用いたニューラルネットワークは、従来方式に比べて少ない中間層ユニット数あるいは中間層を用い、初期依存性もなく且つ低い演算精度を持った重み係数で、ローカルミニマムに陥ることなく高速かつ安定に収束し、全正解の出力層出力信号を送出することができる。また、教師信号に対して所望の振幅誤差範囲で収束状態が得られることから、汎化特性も従来より大幅に優れており、従来技術では実現が困難な大規模なニューラルネットワークを短時間で自由に設計し、ネットワーク不正浸入検出部、ネットワーク障害状態の検出を行うネットワーク障害検出部やセキュリティ管理の為のバイオメトリクスに於ける各種パターン認識、データ高速検索、更には、連想メモリやデータ圧縮などへの応用もできるなど、非常に幅広い効果を有している。
【発明を実施するための最良の形態】
【００５５】
以下に、本発明の多層ニューラルネットワーク学習装置の実施形態に於いて、その基本構成の説明を簡単にする為、２値教師信号を用いた３層ニューラルネットワークを例に挙げ、その構成及びその動作について詳細に説明する。しかしながら、本発明は、３層ニューラルネットワークに限るものではなく、４層以上の多層ニューラルネットワークでもよい。また、エラー・バック・プロパゲーション・アルゴリズムを用いて重み係数更新を行うニューラルネットワークであれば、如何なるニューラルネットワークでもよい。
【００５６】
本発明の応答関数微分係数正規化べき乗関数型エラー・バック・プロパゲーション学習装置の実施形態に於ける３層ニューラルネットワーク学習過程の１実施例を図１に示す。端子２から学習用入力信号が入力層の入力ユニットに入力され中間層ユニットから中間層出力ユニット信号と出力層ユニットから出力層出力ユニット信号とをそれぞれ送出する３層ニューラルネットワーク１と、出力層出力信号のエレメントである該出力層出力ユニット信号を２値識別スレショルドを用いて２値化し、２値出力層出力信号のエレメントである２値出力層出力ユニット信号を得る２値スレショルド回路６（６１，６２、．．．６M）と、２値教師ユニット信号（T１，T２、．．．TM）と該出力層出力ユニット信号とを入力し該２値教師ユニット信号から該出力層出力ユニット信号を差し引き、誤差信号エレメントである出力層出力ユニット誤差信号を得る減算部４（４１，４２、．．．４M）と、該２値教師ユニット信号（T１，T２、．．．TM）と該２値出力層出力ユニット信号とを入力し夫々比較し、不一致状態となった２値出力層出力ユニット信号とそれをエレメントとして持つ２値出力層出力信号とを検出し、動作モード制御部１０からの制御信号のもとに出力ユニット正解不正解判定信号及び全出力正解判定信号を出力層応答関数微分係数正規化べき乗値処理部２７へ送出し、更に該全出力正解判定信号を学習収束判定処理部１３へ送出する正解不正解出力判定処理部１１と、該全出力正解判定信号と減算部４からの該誤差信号とから学習収束状態を判定し収束判定信号を送出する学習収束判定処理部１３と、減算部４からの該誤差信号と正解不正解出力判定処理部１１からの該出力ユニット正解不正解判定信号及び該全出力正解判定信号と３層ニューラルネットワーク１からの前記中間層出力信号と前記出力層出力信号とを用いて３層ニューラルネットワーク１の重み係数を更新し設定する応答関数微分重み係数制御部１４と、３層ニューラルネットワーク１と正解不正解出力判定処理部１１と応答関数微分重み係数制御部１４と学習収束判定処理部１３との各初期設定、更に学習の開始及び終了を制御する動作モード制御部１０とから構成される。
【００５７】
更に、前記応答関数微分重み係数制御部１４は、前記中間層出力信号を基に中間層応答関数微分係数正規化べき乗値を得る中間層応答関数微分係数正規化べき乗値処理部２８と、前記出力層出力信号と前記出力ユニット正解不正解判定信号と前記全出力正解判定信号とを基に出力層応答関数微分係数正規化べき乗値を得る出力層応答関数微分係数正規化べき乗値処理部部２７と、該出力層応答関数微分係数正規化べき乗値、前記誤差信号と中間層出力信号とから出力層重み微調修正量を得え、入力層−中間層間重み係数更新の際には該中間層応答関数微分係数正規化べき乗値と中間層出力信号と重み係数記憶処理部２６からの入力層−中間層間の重み係数とから中間層重み微調修正量を得る重み微調修正量処理部２２と、前回の学習処理に於ける重み係数更新量を記憶する重み係数更新量記憶部２４と、重み係数更新量記憶部２４から読み出された重み係数更新量と該重み微調修正量とから新たな重み係数更新量を得、重み係数更新量記憶部２４に格納し、重み係数記憶処理部２６から読み出された前回の学習処理に於ける重み係数と該新たな重み係数更新量とから新たな重み係数を得、前記重み係数記憶処理部２６へ送出する重み係数更新処理部２５とから構成される。
【００５８】
次に学習過程におけるこれらの動作を説明する。３層ニューラルネットワーク１は、予め準備された複数個の学習用入力信号と夫々に対応した２値教師信号Tとを基に学習の為の重み係数更新を動作モード制御部１０の制御管理の下に行う。
【００５９】
学習が開始されると、動作モード制御部１０に重み係数更新モードが新たに設定され、３層ニューラルネットワーク１及び重み微調修正処理部２２に重み係数記憶処理部２６からの重み係数初期値が設定され、正解不正解出力判定処理部１１、学習収束判定処理部１３及び応答関数微分重み係数制御部１４内の重み係数更新量記憶部２４が夫々初期設定される。
【００６０】
３層ニューラルネットワーク１に於いて、入力された学習用入力信号に対して得られた出力層出力信号を得、正解不正解出力判定処理部１１に於いて、該出力層出力ユニット信号から２値スレショルド回路６を介して得た２値出力層出力ユニット信号と対応した前記教師ユニット信号とを比較し、出力ユニットの不一致状態を示す前記出力ユニット正解不正解判定信号を得、出力層応答関数微分係数正規化べき乗値処理部部２７へ送出する。
【００６１】
更に、全ての学習用入力信号に対する２値出力層出力信号が対応した夫々の教師信号に一旦一致したかどうかの状態を示す全出力正解判定信号を得、出力層応答関数微分係数正規化べき乗値処理部２７及び学習収束判定処理部１３へそれぞれ送出する。
【００６２】
中間層と出力層間の重み係数更新の際には、先ず、出力層応答関数微分係数正規化べき乗値処理部２７に於いて、前記出力層出力信号と正解不正解出力判定処理部１１からの出力ユニット正解不正解判定信号及び全出力正解判定信号とを基に式（１３）に従って、出力層応答関数微分係数正規化べき乗値を得、重み微調修正量処理部２２へ送出する。
【００６３】
式（１３）の出力層応答関数微分係数正規化べき乗値は、出力層m番目ユニットの出力層出力ユニット信号が不正解判定の場合、べき乗係数Go=Gowを設定して得る。ここで、Gowは、０≦Gow＜１の予め与えられた定数である。一方、出力層出力ユニット信号が正解判定の場合には、全出力正解判定信号に於いて全ての学習用入力信号に対する出力層出力信号が正解となる状態が達成されてなければ、べき乗係数Go=Gocを設定して得る。全正解が少なくとも一旦達成されておれば、べき乗係数Go=Goallcを設定して得る。ここで、Goc、Goallcは、０≦Goallc＜Goc≦１の予め与えられた定数である。
【００６４】
このように、出力層出力ユニット信号の正解、不正解、或いは全学習用入力信号に対する出力層出力信号の全正解達成状態とにより、べき乗係数Goが切り替えられる。
【００６５】
従来方式は、常にGo=1の場合に対応しており、本発明の実施形態の如く、Goallc、Goc、Gowを１より小さい値を設定することによって、図５の如く、出力層出力ユニット信号が０または１に近い場合に、従来方式の出力層応答関数微分係数値より出力層応答関数微分係数正規化べき乗値を大きく、然も出力層出力信号の状況に応じて制御でき、学習に於いて従来より安定且つ高速収束が可能となる。
【００６６】
出力層応答関数微分係数正規化べき乗値
＝maxo(1-Go)・{f’(Ninsm(t))}Go    （１３）
の出力層応答関数微分正規化べき乗関数から得られ、ここで、べき乗係数Goは、０≦Go＜１である。また、maxoは、出力層応答関数導関数のf’((Ninsm(t))の最大値と、Go≠1の場合の出力層応答関数微分係数正規化べき乗値の最大値とが同一の値となるよう調整する正規化定数である。これにより、式（１３）及び図５に示すように、出力層応答関数微分係数正規化べき乗値の最大値が、べき乗係数Goの値に関わらず、従来方式の出力層応答関数微分係数値の最大値と常に同じとなり、頻繁に切り替えても不安定な動作を発生させることなく、学習を安定に且つ高速に収束させる事ができる。
【００６７】
特に、応答関数f(x)が式（２）のシグモイド関数の場合、応答関数導関数（出力応答微分関数）が式（３）で与えられることから、出力層応答関数微分係数正規化べき乗値は、式（１４）で与えられる。
【００６８】
即ち、出力層応答関数微分係数正規化べき乗値
＝ maxo(1-Go)・{f’(Ninsm(t))}Go
＝ 0.25(1-Go){ＯSm(t)(1−ＯSm(t))}Go    （１４）
となる。Go＝１の場合は、従来方式に於ける式（４）の出力層応答関数微分係数値となる。図５に出力層応答関数微分係数値と出力層応答関数微分係数正規化べき乗値との一般的関係を示す。ＯSm(t)が１或いは０に近づくと、出力層応答関数微分係数値より出力層応答関数微分係数正規化べき乗値が大きくなる。これにより、学習の安定且つ収束速度が改善される。
【００６９】
また、出力ユニット正解不正解判定信号から出力層m番目ユニットの出力層出力ユニット信号が不正解判定の場合は、べき乗係数Go＝Gowを設定する。正解判定の場合は、全出力正解判定信号に於いて全学習用入力信号に対する出力層出力信号が全て正解となる全出力正解状態が得られるまでは、べき乗係数Go=Gocが設定される。全正解状態が一旦得られれば、式（１５）の如くべき乗係数Go＝Goallcを設定する。
【００７０】
正解不正解出力判定処理部１１に於いて、全ての学習用入力信号に対する２値出力層出力信号が２値教師信号に対して一旦全正解となった状態が達成された場合には、全出力正解判定信号を全出力正解状態とし送出する。また、達成されてなければ非全出力正解状態として送出する。学習収束判定処理部１３では、全出力正解判定信号に於いて全出力正解状態が達成されてなければ重み係数更新処理を繰り返す。
【００７１】
一旦全出力正解状態が達成されると、全ての出力層出力ユニット信号の出力正解余裕（２値スレショルド回路６の正解不正解判定スレショルド値（２値識別スレショルド）からの正解となる振幅余裕）が予め定められた正解最小余裕スレショルドを越え、全出力正解余裕状態となれば、学習収束判定条件を満足したとして学習処理を終了する。
【００７２】
この間、重み係数修正を行う際に、正解の全ての出力層出力ユニットに関して、式（１５）のように、Go=Goallcとする。即ち、出力層応答関数微分係数正規化べき乗値が最大値（maxo）に近い値をより幅広くとるよう、Gocよりも０に近い値のGoallcを設定する。これにより、全ての出力層出力ユニット信号が正解最小余裕スレショルドを素早く越えるよう重み係数修正を加速させ、出力層出力信号を教師信号により正確且つ高速に近づくよう加速する。
【００７３】
全出力正解状態が一旦得られた後の正解出力層出力ユニットに於ける出力層応答関数
微分係数正規化べき乗値
＝ 0.25(1-Goallc){ＯSm(t)(1−ＯSm(t))}Goallc    (1５)
ここで、0≦ Goallc＜Goc≦１である。  
【００７４】
重み微調修正量処理部２２では、s-1層j番目ユニット−s(出力)層m番目ユニット間の重み係数の重み係数更新に於ける重み微調修正量を得、重み係数更新処理部２３へ送出する。重み微調修正量を式（１６）で与える。
【００７５】
重み微調修正量  = δｓm(t)・Ｏs-1i(t)   （１６）
【００７６】
ここで、重み係数更新用誤差信号δsm(t)は、式（１７）で与えられる。
【００７７】
δsm(t) ＝ {Tm−Ｏsm(t)}・[maxo(1-Go)・｛f’(Ninsm(t))｝Go]  （１７）
【００７８】
重み係数更新処理部２３では、重み係数更新量記憶部２４から読み出された中間層−出力層間の重み係数に対する重み係数更新量と前記重み微調修正量とから、式（１１）を基に新たな重み係数更新量を得、重み係数更新量記憶部２４に格納すると共に重み係数更新処理部２５へ送出する。
【００７９】
重み係数更新処理部２５では、重み係数記憶処理部２６から読み出された中間層−出力層間の重み係数と前記重み係数更新量とから、従来と同様に式（１２）に従って、新たな重み係数を得、重み係数記憶処理部２６に送出する。重み係数記憶処理部２６では該新たな重み係数を記憶すると共に、３層ニューラルネットワーク１及び重み微調修正量処理部２２の中間層−出力層間の重み係数として設定する。
【００８０】
次に、入力層−中間層間の重み係数更新の際には、中間層応答関数微分係数正規化べき乗値処理部２８に於いて、３層ニューラルネットワーク１の中間層からの中間層出力信号を基に、式（１８）に従って、中間層応答関数微分係数正規化べき乗値を得、重み微調修正量処理部２２へ送出する。
【００８１】
中間層応答関数微分係数正規化べき乗値
＝ maxh(1-Gh){f’(Ninkj(t))}Gh     (１８)
の中間層応答関数微分正規化べき乗関数から得られる。ここで、べき乗係数Ghは、0≦Gh<１である。maxhは、f’((Ninkj(t))の最大値と、Gh≠1の場合の中間層応答関数微分係数正規化べき乗値の最大値とが同一の値となるよう調節する正規化定数である。
【００８２】
これにより、中間層応答関数微分係数正規化べき乗値の最大値が、べき乗係数Ghの値に関わらず、従来方式の中間層応答関数微分係数値の最大値（maxh）と常に同じとなり、Gh<1の場合にも安定且つ高速に収束させる事ができる。また、Gh=1の場合には、従来方式の中間層応答関数微分係数値と同じになる。Gh＜1と設定することにより、中間層出力ユニット信号が１或いは０に近い場合に、中間層応答関数微分係数値より大きい中間層応答関数微分係数正規化べき乗値を用いることができ、入力層−中間層間の重み係数の修正を加速することができる。
【００８３】
中間層応答関数微分係数値と中間層応答関数微分係数正規化べき乗値との関係は、応答関数がシグモイド関数の場合には、図５に示す出力層応答関数微分係数値と出力層応答関数微分係数正規化べき乗値との一般的関係と同様な関係にある。
【００８４】
重み微調修正量処理部２２では、従来と同様に、式（８）の重み微調修正量を得、重み係数更新処理部２３へ送出する。
【００８５】
ここで、k層j番目ユニット−k+1層n番目ユニット間の重み係数の重み微調修正量に於ける重み係数更新用誤差信号δkj(t)は、
【００８６】
【数４】
2005339322.tif 000006
但し、k≠s で与えられる。
【００８７】
重み係数更新処理部２３では、重み係数更新量記憶部２４から読み出された入力層−中間層間の重み係数に対する重み係数更新量と該重み微調修正量とから、従来と同様に式（１１）に従って新たな重み係数更新量を得、重み係数更新量記憶部２４に格納すると共に重み係数更新処理部２５へ送出する。
【００８８】
重み係数更新処理部２５では、重み係数記憶処理部２６から読み出された入力層と中間層間の重み係数と該重み係数更新量とから、従来と同様に式（１２）に従って、新たな重み係数を得、重み係数記憶処理部２６に送出する。
【００８９】
重み係数記憶処理部２６では、該新たな重み係数を格納すると共に、３層ニューラルネットワーク１及び重み微調修正量処理部２２の入力層−中間層間の重み係数に設定する。
【００９０】
上記の一連の重み係数更新を全ての学習用入力信号に対して実施した後、動作モード制御部１０に於いて、動作モードをテストモードとし、学習収束判定処理部１３及び正解不正解出力判定処理部１１にテストモード制御信号を送出し、全ての学習用入力信号を用いてテストモード処理を実施する。正解不正解出力判定処理部１１に於いて、全学習用入力信号に対して正解となる全出力正解状態の検出状況を示す全出力正解判定信号を学習収束判定処理部１３へ送出する。
【００９１】
学習収束判定処理部１３では、動作モード制御部１０からテストモード制御信号が入力されると、学習収束判定処理部１３をリセットし、全出力正解判定信号に於いて全出力正解状態が得られてなければ、再度重み係数更新モードに戻る。全出力正解状態が得られておれば、更に、出力正解余裕状態判定として、全ての出力層出力ユニット信号の出力正解余裕（２値スレショルド回路６の正解不正解判定スレショルド値、即ち２値識別スレショルドからの正解となる振幅余裕で与えられ、最大余裕値-｜誤差｜でも得られる。）が予め定められた正解最小余裕スレショルドを越えると、学習収束判定条件を満足したとして学習収束判定信号を動作モード制御部１０へ送出し、学習処理を終了する。
【００９２】
学習収束判定条件を満足していなければ、重み係数更新要求信号を動作モード制御部１０へ送出し、再度重み係数更新モードに戻り、上記の一連の重み係数更新処理を実施する。
【００９３】
上記のように、中間層応答関数微分係数正規化べき乗値処理部２８に於いて、べき乗係数Ghを０＜Gh＜１と設定し、更に出力層応答関数微分係数正規化べき乗値処理部２７では、正解或いは不正解出力層出力ユニット信号により、式（１３）に於けるGoとして、０＜Goc≦１、０＜Gow＜１を夫々設定することにより、更には、全学習用入力信号に対する出力信号が正解となる全出力正解状態が一旦得られると、少なくとも正解出力層出力ユニットに対して０＜Goallc＜Goc≦１となるGoallcをGoとして設定し、中間層出力ユニットに対して０＜Ghallc＜Ghc≦１となるGhallcをGhとして設定することにより、出力層応答関数微分係数正規化べき乗値及び中間層応答関数微分係数正規化べき乗値は、従来の出力層応答関数微分係数値及び中間層応答関数微分係数値よりも、夫々大きい値をとることができ、学習の収束を加速することができる。尚、全学習用入力信号に対する出力信号が正解となる全出力正解状態が一旦得られると、不正解出力層出力ユニットに対しても、Goallc或いはGocをGoとして設定してもよい。
【００９４】
即ち、出力層出力ユニット信号が教師ユニット信号と異なり、大きく間違って０或いは１の値に近づいた場合に、従来の装置では、式（３）に示すように、出力層の応答関数導関数の値である出力層応答関数微分係数値が非常に小さい値となる。従って、式（８）の重み微調修正量も小さくなり、式（１１）に於いて結果的に出力層出力ユニット誤差信号に関連した重み係数更新量が小さく、重み係数の更新が殆ど行われない。
【００９５】
これに対して、本発明で得られた出力層応答関数微分係数正規化べき乗値は、このような状況に於いても、従来の出力層応答関数微分値より大きい値を採ることから、式（１１）の不正解の出力層出力ユニット信号に関連した重み係数更新が安定且つ高速に加速進展する。また、同様に出力層出力ユニット信号が正解の場合にも、０或いは１に近づいた時、同様に、０≦Goc≦１と設定することにより、出力層応答関数微分係数正規化べき乗値を従来の出力層応答関数微分係数値よりも大きい値にすることができ、正解の出力層出力ユニットに於いても重み係数更新が安定且つ高速に加速進展される。
【００９６】
更に、ローカルミニマムに収束した状態（正解出力層出力ユニット信号はより正解の、不正解出力層出力ユニット信号はより不正解の出力振幅を採る）から素早く抜け出し、学習速度を加速する為に、０≦Gow＜Goc≦１と設定してもよい。
【００９７】
また、同様に中間層応答関数微分係数正規化べき乗値処理部２８に於いて、0≦Gh≦1のGhを設定することから、中間層出力ユニットに於いても、中間層の応答関数導関数の値である中間層応答関数微分係数正規化べき乗値を用いることにより、入力層−中間層間の重み係数更新が安定且つ高速に加速進展される。
【００９８】
尚、中間層応答関数微分係数正規化べき乗値処理部２８に於いて、Gh=1とし、図２の如く、図４に示す従来の中間層応答関数微分係数値処理部２１を用いても良い。
【００９９】
更に、図６の如く、正解不正解出力判定処理部１５に於いて、新たに出力層出力信号内の出力ユニット信号が全正解となる、即ち出力層出力信号が出力正解状態か、或いは不正解ユニットがあり出力不正解となる、即ち出力層出力信号が出力不正解状態かを示す正解不正解出力判定信号をも設け、全出力正解判定信号と該正解不正解出力判定信号とを中間層応答関数微分係数正規化べき乗値処理部２９に送出し、出力層応答関数微分係数正規化べき乗値処理部２７と似たように、式（１８）の中間層応答関数微分係数正規化べき乗値のべき乗係数Ghに対して、出力層出力信号が出力不正解状態であればGhwを、全出力正解状態ではないが、出力正解状態であれば、Ghcを、全出力正解状態であり、出力正解状態であれば、Ghallcを夫々設定し、より正確な制御の基に学習を加速収束させてもよい。ここで、夫々0≦Ghw<1及び0≦Ghallc≦Ghc ≦1である。尚、全出力正解状態を検出せず、少なくとも出力正解状態に対してGhcを用いるだけでもよい。
【０１００】
これに従って、入力層−中間層間重み係数を順次更新する。尚、３層以上の多層ニューラルネットワークでは、出力層以前から順次行われる中間層−入力層間の重み係数更新の際に、これら全ての層間に於いて夫々の中間層応答関数微分係数正規化べき乗値を用いてもよいが、一部の層間に於いてのみ用いても良い。
【０１０１】
従来の装置では、式（３）及び式（４）に示すように、出力層出力ユニット信号や中間層出力ユニット信号が１や０に近づくと、出力層の応答関数導関数の値である出力層応答関数微分係数値や中間層の中間層応答関数微分係数値が小さくなり、０またはこれに近い値となる。従って、式（８）の重み微調修正量も小さくなり、式（１１）に於いて結果的に不正解の出力層出力ユニット誤差信号に関連した重み係数更新量が小さく、重み係数の更新が殆ど行われない。特に、ローカルミニマム状態ではこの傾向が一段と強くなり、このローカルミニマム状態から離脱が非常に困難となる。
【０１０２】
これに対して、本発明の実施形態に於ける式（１３）の如く、出力層出力ユニット信号の出力正解不正解判定を行い、べき乗係数Goを切り替え、更に式（１８）の如く常にべき乗係数Gh＜1に少なくとも設定することによって、出力層及び中間層応答関数微分係数正規化べき乗値を最大値(maxo、maxh)以下の範囲で従来の出力層及び中間層応答関数微分係数値よりも夫々大きい値を得るよう制御することができ、より正確且つ大きな重み微調修正量が得られる。
【０１０３】
これにより、正解の出力層出力信号がより一層２値教師信号に近づくと共に、同時に不正解の出力層出力信号が教師信号に対して益々不正解側の値をとる非常に安定したローカルミニマム状態に落ち込み難くなり、重み係数の更新が非常に安定し且つ加速される。
【０１０４】
また、全ての学習用入力信号に対して正解出力層出力信号が得られた全出力正解状態に一旦なった後にも、全ての出力層出力ユニット信号が正解最小余裕スレショルドを高速に越え、全出力正解余裕状態となり学習収束判定条件を迅速に満足させることができる。また、全出力正解状態を達成する前及びその後の学習回数が夫々削減され、全体の学習回数は大幅に削減改善できる。
【０１０５】
この結果、全ての出力層出力ユニット信号が教師信号に非常に近い値を持った出力層出力信号が得られ、従来方式より大幅に少ない学習回数で誤差電力が最小のグローバルミニマムの状態を迅速に達成できる。
【０１０６】
また、教師信号エレメントは、０及び１を用いることから、従来の０．９及び０．１を用いた場合よりも汎化特性も優れた多層ニューラルネットワークの学習を実現できる。
【０１０７】
本発明の実施形態の図１に関する応答関数微分係数正規化べき乗関数型エラー・バック・プロパゲーション学習装置の処理フローを図３に示す。ステップ１００の学習初期設定処理は、重み係数初期値の３層ニューラルネットワーク１への設定など重み係数更新に必要な初期設定を行う。ステップ１１０の学習用入力信号入力処理では、準備された学習用入力信号と対応した教師信号とを指定された順序で順次３層ニューラルネットワーク１に設定する。ステップ１２０の３層ニューラルネットワーク処理では、３層ニューラルネットワーク１に於いて、入力された学習用入力信号に対して、中間層出力信号及び出力層出力信号などを送出する多層ニューラルネットワーク処理を行う。
【０１０８】
ステップ１３０の正解不正解出力判定処理では、２値スレショルド回路６と正解不正解出力判定処理１１の処理と対応しており、各出力層出力ユニット信号に対して２値識別スレショルドを用いて２値出力層出力ユニット信号を得、対応した教師ユニット信号と比較し、一致しておれば正解、不一致ならば不正解として出力ユニット正解不正解判定信号を得える。
【０１０９】
ステップ１４０の応答関数微分正規化べき乗値算出処理では、先ず、中間層-出力層間重み係数更新の為に、出力層応答関数微分正規化べき乗値算出処理を実施する。出力層応答関数微分係数正規化べき乗値処理部２７の如く、出力ユニット正解不正解判定信号を用い、出力層出力ユニット信号が不正解の場合には、べき乗係数Go＝Goｗを設定し、式（１４）を用いて、出力層応答関数微分係数正規化べき乗値を求める。
【０１１０】
一方、出力層出力ユニット信号が正解の場合には、全学習入力信号に対する出力層出力信号が一旦全出力正解状態となり、これにより全出力正解判定信号が、全出力正解余裕判定及び全出力正解不正解判定処理２１０にて検出されておれば、べき乗係数Go＝Goallcを、検出されていなければ、べき乗係数Go＝Gocを設定し式（１４）を用いて、出力層応答関数微分係数正規化べき乗値を求める。また、一連の中間層−出力層間重み係数更新処理が終了し、ステップ１８０から戻ってくると、入力層−中間層間重み係数更新処理の為に、べき乗係数Ghを設定した式（１８）の中間層応答関数微分係数正規化べき乗値算出処理を応答関数微分係数正規化べき乗値算出処理１４０にて実施する。中間層応答関数微分係数正規化べき乗値処理部２８の如く、中間層応答関数微分係数正規化べき乗値が式（１８）に従って求められる。
【０１１１】
更に、ステップ１５０の重み微調修正量算出処理では、減算部４の如く各出力層出力ユニット信号に対して教師ユニット信号からの差をとり、出力層出力ユニット誤差信号を得る誤差信号算出処理を行い、重み微調修正量処理部２２の如く、前記の出力層応答関数微分係数正規化べき乗値と誤差信号と中間層出力信号とから式（８）により、中間層と出力層間の重み係数の重み微調修正量を得る。
【０１１２】
また、入力層−中間層間の重み係数更新の際には、式（１９）の中間層応答関数微分係数正規化べき乗値と式（１９）の重み係数更新用誤差信号δkj(t)とから、式（８）のk層j番目ユニット−k+1層n番目ユニット間の重み係数の重み微調修正量が夫々求められる。
【０１１３】
ステップ１６０の重み係数更新量算出処理では、重み係数更新量処理部２３及び重み係数更新量記憶部２４に於ける処理の如く、重み微調修正量を用いて、式（１１）に従って、夫々新たな重み係数更新量を求める。
【０１１４】
ステップ１７０の重み係数更新算出処理では、重み係数更新処理部２５及び重み係数記憶処理部２６での処理の如く、重み係数更新量を用いて、式（１２）により中間層−出力層間の新たな重み係数を得、また式（１２）により入力層−出力層間の新たな重み係数を得る。
【０１１５】
ステップ１８０の入力層−中間層層間重み係数更新済み判定処理では、中間層-出力層間の全ての重み係数の更新が未終了ならば、ステップ１４０へ戻り、ステップ１４０からステップ１７０までの中間層−出力層間の全ての重み係数の更新処理を完全に実施する。その後、同様に入力層−中間層間の全ての重み係数の更新をステップ１４０から１７０において実施し、上記の入力層−中間層間重み係数の更新処理が全て終了すると、次のステップ１９０へ移る。尚、３層以上の多層ニューラルネットワークを用いる場合には、中間層−中間層間の重み係数を順次更新し、最後に入力層−中間層間重み係数を更新することとなる。
【０１１６】
１９０のニューラルネットワーク更新重み係数設定処理では、中間層−出力層間及び入力層−中間層間の更新された重み係数を夫々３層ニューラルネットワークに夫々設定する。
【０１１７】
ステップ２００の全学習用入力信号の入力判定処理では、全ての学習用入力信号が入力され重み係数が更新されたかの判断を行い、されていなければ、次の学習用入力信号と対応した教師信号とを３層ニューラルネットワークに設定する為に、ステップ１１０の学習用入力信号入力処理へ戻り、１１０から１９０の処理を繰り返す。全ての学習用入力信号に対し重み係数が更新されると、ステップ２１０へ進む。
【０１１８】
ステップ２１０の全出力正解余裕判定及び全出力正解不正解判定処理では、全ての学習用入力信号に対して、学習収束判定処理部１３と同様に全ての出力層出力ユニット信号の出力正解余裕を求め、正解最小余裕スレショルドと比較し、全て正解最小余裕スレショルドを超えているかの全出力正解余裕判定を行う。
【０１１９】
また、全ての学習入力信号に対する２値出力層出力信号が対応した２値教師信号と一致した全出力正解状態かを示す全出力正解判定を行う。
【０１２０】
ステップ２２０の学習収束判定処理では、全出力正解余裕判定及び全出力正解判定が、学習収束判定条件を満足しておれば、重み係数更新処理が全て完了したとして、学習を終了する。学習収束判定条件を満足していなければ、ステップ１１０に戻り、再度最初の学習用入力信号から順次各ステップに沿って重み係数更新処理を行う。
【０１２１】
本発明の実施形態では、出力層応答関数として０及び１の出力値の範囲を持ったシグモイド関数を例にとり説明したが、−１から１の出力範囲を持ったシグモイド関数や、０から１の出力範囲を持ったガウス関数でもよい。また一般に応答関数導関数が出力信号に対して零点を有する応答関数ならば何れの関数でもよく、シグモイド関数などに限るものではない。
【０１２２】
また、応答関数微分係数値が正及び負の値を採り得る場合、０以上の値をとる領域と負の領域とに分け、０以上の領域では、本実施形態と同様にその領域での最大値を用いて式（１３）、（１７）の如く、出力応用関数微分係数正規化べき乗値を得え、負の領域では、その領域での応答関数微分係数値の最小値を用いて、応答関数微分係数値の絶対値に対するべき乗値を正規化することにより、応答関数微分係数正規化べき乗値を得ればよい。
【０１２３】
本実施形態の学習収束判定処理部１３の学習収束判定条件として、正解不正解出力判定処理部１１に於いて、出力層出力信号が全て正解判定とされた全出力正解状態であれば、正解の出力層出力ユニット信号の内で正解判定となる為の、正解不正解判定スレショルドからの最小余裕値を求め、これを予め準備した正解最小余裕スレショルドと比較し、全ての学習用入力信号に対する出力層出力ユニット信号がこれを超えておれば全出力正解余裕状態に収束したと見なす学習収束判定条件を用いたが、これに代わって、出力層出力信号が全て正解判定の全出力正解状態が得られた後に、出力層出力信号の総誤差電力が与えられた誤差電力スレショルド以下となれば収束したと見なす学習収束判定条件を用いてもよい。
【０１２４】
出力層応答関数微分係数正規化べき乗値処理部２７に於いて、特願2003‐131665、“多層ニューラルネットワーク学習方法”のように、出力層応答関数微分係数正規化べき乗値に取り得る下限値Ｄlimitを設定し、Ｄlimit以上であればそのままの値を出力層応答関数微分係数正規化べき乗値として、Ｄlimit未満であればＤlimitに置き換えて出力層応答関数微分係数正規化べき乗値として用いてもよい。ここで、Dlimitは、予め与えられた下限微分係数値（下限値）＞０である。
【０１２５】
また、学習を進めた結果、正解判定の出力層出力信号がより教師信号に近づき、同時に不正解判定の出力層出力信号がより不正解の値をとる安定したローカルミニマム状態を、不正解の出力層出力ユニット誤差信号内の最小値が与えられた最小誤差スレショルドを超えることにより検出し、Gowをより小さくし、その後、安定したローカルミニマム状態から離脱し、最小誤差スレショルド以下になると、元のGowに戻してもよい。
【０１２６】
また、不正解の出力層出力ユニットに於いて、不正解出力層出力ユニット信号が、予め指定された範囲内（例えば、不正解１から0.７5、或いは不正解０から0.25の範囲）の場合に、Go=Gowを用い、それ以外ではGo=1を用いてもよい。
【０１２７】
或いは、図６に示す正解不正解出力判定信号と全出力正解判定信号とによりべき乗係数値を制御する中間層応答関数微分係数正規化べき乗値処理部２９と、図４に示す従来の出力層応答関数微分係数値処理部２０とを用いてもよい。
【０１２８】
以上の実施形態において、多層ニューラルネットワークを前提に説明したが、教師信号を利用して学習させるニューラルネットワークであれば、上記以外のニューラルネットワークを用いても良い。
【図面の簡単な説明】
【０１２９】
【図１】本発明の応答関数微分係数正規化べき乗関数型エラー・バック・プロパゲーション学習装置を用いた３層ニューラルネットワーク学習処理の第１の構成例である。
【図２】本発明の実施形態の応答関数微分係数正規化べき乗関数型エラー・バック・プロパゲーション学習装置を用いた３層ニューラルネットワーク学習処理に於いて、従来の中間層応答関数微分係数値処理を用いた構成例である。
【図３】本発明の実施形態に於ける応答関数微分係数正規化べき乗関数型エラー・バック・プロパゲーション学習装置の１処理フロー図である。
【図４】従来方式のエラー・バック・プロパゲーション学習装置を用いた多層ニューラルネットワーク学習処理の構成例である。
【図５】２値出力層出力ユニット信号に於ける従来方式の出力層応答関数微分係数値と本発明の実施形態に於ける出力層応答関数微分係数正規化べき乗値との関係を示す図である。
【図６】本発明の実施形態の応答関数微分係数正規化べき乗関数型エラー・バック・プロパゲーション学習装置を用いた３層ニューラルネットワーク学習処理に於ける中間層応答関数微分係数べき乗値処理部のべき乗係数を出力層出力信号により切り替え制御する構成例である。
【符号の説明】
【０１３０】
１    ３層ニューラルネットワーク
２    入力信号入力端子
２１、２２、２Ｎ  入力信号ユニット入力端子
３    教師信号入力端子
３１、３２、３Ｍ  教師ユニット信号入力端子
４、４１、４２、４Ｍ  減算部
５    重み係数制御部
６、６１、６２、６Ｍ、７、７１、７２、７Ｍ  ２値スレショルド回路
８    一致検出部
９    学習収束判定処理部
１０  動作モード制御部
１１  正解不正解出力判定処理部
１２  応答関数微分重み係数制御部
１３  学習収束判定処理部
１４  応答関数微分重み係数制御部
１５  正解不正解出力判定処理部
１６  応答関数微分重み係数制御部
２０  出力層応答関数微分係数値処理部
２１  中間層応答関数微分係数値処理部
２２  重み微調修正量処理部
２３  重み係数更新量処理部
２４  重み係数更新量記憶部
２５  重み係数更新処理部
２６  重み係数記憶処理部
２７  出力層応答関数微分係数正規化べき乗値処理部
２８  中間層応答関数微分係数正規化べき乗値処理部
２９  中間層応答関数微分係数正規化べき乗値処理部
１００  学習初期設定処理
１１０  学習用入力信号入力処理
１２０  ３層ニューラルネットワーク処理
１３０  正解不正解出力判定処理
１４０  応答関数微分係数正規化べき乗値算出処理
１５０  重み微調修正量算出処理
１６０  重み係数更新量算出処理
１７０  重み係数更新算出処理
１８０  入力層−中間層間重み係数更新済み判定
１９０  ニューラルネットワーク更新重み係数設定処理
２００  全学習用入力信号の入力判定
２１０  全出力正解余裕判定及び全出力正解不正解判定処理
２２０  学習収束判定
【図１】
2005339322.tif 000007
【図２】
2005339322.tif 000008
【図３】
2005339322.tif 000009
【図４】
2005339322.tif 000010
【図５】
2005339322.tif 000011
【図６】
2005339322.tif 000012