(57)【要約】【課題】  学習入力データ間の距離が小さく、然も密な場合、或いは相関が非常に強い場合には学習が困難であるが、このような学習入力データに対して迅速且つ安定に収束させることが出来る付加入力生成機能を持った２値多層ニューラルネットワーク学習装置及びこの学習済み２値多層ニューラルネットワークと該付加入力生成機能を有する２値多層ニューラルネットワーク装置とそのソフトウェアを提供する。【解決手段】  教師信号を用いて学習させる多層ニューラルネットワーク手段に於いて、２値学習入力データと、該２値学習入力データを基に付加入力生成処理手段を介して生成した付加入力生成データとを合わせて新たな学習用２値入力データとして入力し該多層ニューラルネットワーク手段を学習させる多層ニューラルネットワーク学習装置。【選択図】図１
2006127350.tif 000002
【特許請求の範囲】
【請求項１】
２値学習入力データを基に付加入力生成データを生成する付加入力生成処理手段（５０）と、該２値学習入力データと該２値付加入力生成データとを合わせて新たな学習用２値入力データとして入力し、教師信号を用いて多層ニューラルネットワーク手段（１）を学習させることを特徴とした多層ニューラルネットワーク学習装置。
【請求項２】
２値入力信号を基に付加入力生成信号を生成する付加入力生成処理手段（５０）と、該２値入力信号と該２値付加入力生成信号とを合わせて新たな２値入力信号として入力する、教師信号を用いて学習させた多層ニューラルネットワーク手段（１）を少なくとも用いて構成することを特徴とした多層ニューラルネットワーク装置。
【請求項３】
２値入力信号を基に夫々の付加入力生成信号を生成する並列接続された付加入力生成処理手段（５３、５４、５５）と、該２値入力信号と夫々の該２値付加入力生成信号とを合わせて夫々の新たな２値入力信号として入力する、基本となる２値教師信号から変換された互いに異なる夫々の２値教師信号を用いて学習させ並列接続された多層ニューラルネットワーク手段（６１，６２，６３）と、学習に用いた該２値教師信号を元の該基本となる２値教師信号に逆変換する夫々の変換則を有し、対応した該多層ニューラルネットワーク手段（６１，６２，６３）の２値出力信号を出力逆変換する並列接続された出力逆変換処理手段（６４，６５，６６）と、夫々の該出力逆変換処理手段（６４、６５、６６）からの並列接続数の２値出力信号から一つの２値出力信号を選択送出する出力複合処理手段（６７）とから、少なくとも構成することを特徴とした並列複合多層ニューラルネットワーク装置。
【請求項４】
２値入力信号を基に夫々の付加入力生成信号を生成する付加入力生成処理手段（５３，５４，５５）と、該２値入力信号と夫々の該２値付加入力生成信号とを合わせて夫々の新たな２値入力信号として入力する並列接続された入力変換処理手段（６８，６９，７１）と、夫々の該入力変換処理手段からの２値出力信号を入力とする並列接続された多層ニューラルネットワーク手段（６１，６２，６３）と、夫々の該多層ニューラルネットワーク手段からの並列接続数の２値出力信号から一つの２値出力信号を選択送出する出力複合処理手段（６７）とから、少なくとも構成することを特徴とした並列複合多層ニューラルネットワーク装置。
【請求項５】
並列接続された入力変換処理手段（７２，７３，７４）と、夫々の該入力変換処理手段からの２値入力信号を基に付加入力生成信号を生成する２値付加入力生成処理手段（５３，５４，５５）と、夫々の該２値入力信号と生成された該２値付加入力生成信号とを合わせて夫々の新たな２値入力信号として入力する並列接続された多層ニューラルネットワーク手段（６１，６２，６３）と、夫々の該多層ニューラルネットワーク手段からの並列接続数の２値出力信号から一つの２値出力信号を選択送出する出力複合処理手段（６７）とから、少なくとも構成することを特徴とした並列複合多層ニューラルネットワーク装置。
【請求項６】
請求項３、４及び５の前記付加入力生成処理手段（５３，５４，５５）に於いて、付加入力信号を生成する生成則が全て同一の付加入力生成処理手段を用いることを特徴とした並列複合多層ニューラルネットワーク装置。
【請求項７】
前進２値多層ニューラルネットワーク手段２３と、後進２値多層ニューラルネットワーク手段（２６）と、前進連想入力信号を該前進２値多層ニューラルネットワーク手段（２３）に一旦入力した後、該後進２値多層ニューラルネットワーク手段（２６）の２値出力信号を入力する入力切替スイッチ（２１）と、アトラクタ収束状態を識別するアトラクタ収束状態識別処理手段（２９）とを少なくも有し連想ループ処理を行う相互連想記憶装置に於いて、
該前進２値多層ニューラルネットワーク手段（２３）の２値出力信号を基に後進付加入力生成信号を生成する後進付加入力生成処理手段（５１）と、該２値出力信号と該後進付加入力生成信号とを合わせて入力する、該前進２値多層ニューラルネットワーク手段（２３）の２値教師信号を基に該後進付加入力生成処理手段（５１）を介して生成した後進付加入力生成データとを合わせて学習用入力データとして学習させた該後進２値多層ニューラルネットワーク手段（２６）とから少なくとも構成することを特徴とした相互連想記憶装置。
【請求項８】
前進２値多層ニューラルネットワーク手段（２３）と、後進２値多層ニューラルネットワーク手段（２６）と、前進連想入力信号を、或いは該後進２値多層ニューラルネットワーク手段（２６）の２値出力信号を該前進２値多層ニューラルネットワーク手段（２３）に入力する入力切替スイッチ（２１）と、後進連想入力信号を、或いは該前進２値多層ニューラルネットワーク手段（２３）の２値出力信号を該後進２値多層ニューラルネットワーク手段（２６）に入力する入力切替スイッチ（４２）と、アトラクタ収束状態を識別するアトラクタ収束状態識別処理手段（４５）とを少なくも有し、前進連想入力信号に対する連想ループ処理を行う場合には、該前進２値多層ニューラルネットワーク手段（２３）を該後進２値多層ニューラルネットワーク手段（２６）に常に接続するよう前記入力切替スイッチ（４２）を制御し、後進連想入力信号に対する連想ループ処理を行う場合には、該後進２値多層ニューラルネットワーク手段（２６）を該前進２値多層ニューラルネットワーク手段（２３）に常に接続するよう前記入力切替スイッチ（２１）を制御して、夫々連想ループ処理を行う相互連想記憶装置に於いて、
該後進２値多層ニューラルネットワーク手段（２６）の２値出力信号を基に前進付加入力生成信号を生成する前進付加入力生成処理手段（５２）と、該２値出力信号と該前進付加入力生成信号とを合わせて入力する、学習入力データを基に該後進付加入力生成処理手段（５２）を介して生成した前進付加入力生成データとを合わせて学習用入力データとして学習させた該前進２値多層ニューラルネットワーク手段（２３）と、
該前進２値多層ニューラルネットワーク手段（２３）の２値出力信号を基に後進付加入力生成信号を生成する後進付加入力生成処理手段（５１）と、該２値出力信号と該後進付加入力生成信号とを合わせて入力する、該前進２値多層ニューラルネットワーク手段（２３）に於ける２値教師信号を基に該後進付加入力生成処理手段（５１）を介して生成した後進付加入力生成データとを合わせて学習用入力データとして学習させた該後進２値多層ニューラルネットワーク手段（２６）とから少なくとも構成することを特徴とした相互連想記憶装置。
【請求項９】
２値学習入力データを基に付加入力生成データを生成する付加入力生成処理と、該２値学習入力データと該２値付加入力生成データとを合わせて新たな学習用２値入力データとして入力し、教師信号を用いて多層ニューラルネットワーク学習処理を行うことを特徴とした多層ニューラルネットワーク学習ソフトウェア。
【請求項１０】
２値入力信号を基に付加入力生成信号を生成する付加入力生成処理と、該２値入力信号と該２値付加入力生成信号とを合わせて新たな２値入力信号として入力する多層ニューラルネットワーク処理を少なくとも用いて構成することを特徴とした多層ニューラルネットワーク処理ソフトウェア。
【請求項１１】
２値入力信号を基に夫々の付加入力生成信号を生成する並列接続された付加入力生成処理と、該２値入力信号と夫々の該２値付加入力生成信号とを合わせて夫々の新たな２値入力信号として入力する、基本となる２値教師信号から変換された互いに異なる夫々の２値教師信号を用いて学習させ並列接続に対応する多層ニューラルネットワーク処理と、学習に用いた該２値教師信号を元の該基本となる２値教師信号に逆変換する夫々の変換則を有し、対応した該多層ニューラルネットワーク処理からの２値出力信号を出力逆変換する並列接続に対応した出力逆変換処理と、夫々の該出力逆変換処理からの並列接続に対応する数の２値出力信号から一つの２値出力信号を選択送出する出力複合処理とから、少なくとも構成することを特徴とした並列複合多層ニューラルネット処理ワークソフトウェア。
【請求項１２】
２値入力信号と、該２値入力信号を基に夫々の付加入力生成処理を介して生成した２値付加入力生成信号とを合わせて夫々の新たな２値入力信号として入力する並列接続に対応する入力変換処理と、夫々の該入力変換処理からの２値出力信号を入力とする並列接続に対応する多層ニューラルネットワーク処理と、夫々の該多層ニューラルネットワーク処理からの並列接続に対応した数の２値出力信号から一つの２値出力信号を選択送出する出力複合処理とから、少なくとも構成することを特徴とした並列複合多層ニューラルネットワーク処理ソフトウェア。
【請求項１３】
並列接続に対応した入力変換処理と、夫々の該入力変換処理からの２値入力信号を基に付加入力生成信号を生成する夫々の２値付加入力生成処理と、夫々の該２値入力信号と生成された該２値付加入力生成信号とを合わせて夫々の新たな２値入力信号として入力する並列接続に対応する多層ニューラルネットワーク処理と、夫々の該多層ニューラルネットワーク処理からの並列接続に対応する数の２値出力信号から一つの２値出力信号を選択送出する出力複合処理とから、少なくとも構成することを特徴とした並列複合多層ニューラルネットワーク処理ソフトウェア。
【請求項１４】
請求項１１、１２及び１３の前記付加入力生成処理に於いて、付加入力信号を生成する生成則が全て同一の付加入力生成処理を用いることを特徴とした並列複合多層ニューラルネットワーク処理ソフトウェア。
【請求項１５】
前進２値多層ニューラルネットワーク処理と、後進２値多層ニューラルネットワーク処理と、後進連想入力信号を該前進２値多層ニューラルネットワーク処理に一旦入力した後、該後進２値多層ニューラルネットワーク処理の２値出力信号を入力する入力設定処理と、アトラクタ収束状態を識別するアトラクタ収束状態識別処理とを少なくとも有し連想ループ処理を行う相互連想記憶処理に於いて、
該前進２値多層ニューラルネットワーク処理の２値出力信号を基に後進付加入力生成信号を生成する後進付加入力生成処理と、該２値出力信号と該後進付加入力生成信号とを合わせて入力する、該前進２値多層ニューラルネットワーク処理に於ける２値教師信号を基に該後進付加入力生成処理を介して生成した後進付加入力生成データとを合わせて学習用入力データとして学習させた該後進２値多層ニューラルネットワーク処理とから少なくとも構成することを特徴とした相互連想記憶処理ソフトウェア。
【請求項１６】
前進２値多層ニューラルネットワーク処理と、後進２値多層ニューラルネットワーク処理と、前進連想入力信号を、或いは該後進２値多層ニューラルネットワーク処理の２値出力信号を該前進２値多層ニューラルネットワーク処理に入力する入力設定処理と、後進連想入力信号を、或いは該前進２値多層ニューラルネットワーク処理の２値出力信号を該後進２値多層ニューラルネットワーク処理に入力する入力設定処理と、アトラクタ収束状態を識別するアトラクタ収束状態識別処理とを少なくも有し、前進連想入力信号に対する連想ループ処理を行う場合には、該前進２値多層ニューラルネットワーク処理の２値出力信号を該後進２値多層ニューラルネットワーク処理に常に入力する前記入力設定処理を行い、後進連想入力信号に対して連想ループ処理を行う場合には、該後進２値多層ニューラルネットワーク処理の２値出力信号を該前進２値多層ニューラルネットワーク処理に常に入力するよう前記入力設定処理をして、夫々連想ループ処理を行う相互連想記憶処理に於いて、
該後進２値多層ニューラルネットワーク処理の２値出力信号を基に前進付加入力生成信号を生成する前進付加入力生成処理と、該２値出力信号と該前進付加入力生成信号とを合わせて入力する、学習入力データを基に該後進付加入力生成処理を介して生成した前進付加入力生成データとを合わせて学習用入力データとして学習させた該前進２値多層ニューラルネットワーク処理と、該前進２値多層ニューラルネットワーク処理の２値出力信号を基に後進付加入力生成信号を生成する後進付加入力生成処理と、該２値出力信号と該後進付加入力生成信号とを合わせて入力する、該前進２値多層ニューラルネットワーク処理の学習に於ける２値教師信号を基に該後進付加入力生成処理を介して生成した後進付加入力生成データとを合わせて学習用入力データとして学習させた該後進２値多層ニューラルネットワーク処理とから少なくとも構成することを特徴とした相互連想記憶処理ソフトウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多層ニューラルネットワークの学習に於ける高速収束化と、及び劣化画像の雑音除去や復元機能も持った画像認識、種々のパターン認識や、不正アクセス防止などのセキュリティシステム、或いは更に高速メモリ検索などに適用可能な相互連想（Hetero-Associative）記憶装置に用いる多層ニューラルネットワークに関するものである。
【背景技術】
【０００２】
従来のニューラルネットワークには、文献  麻生英樹著、「ニューラルネットワーク情報処理」、産業図書出版（１９８９年９月３０日発行）などに示されているように、多層（階層）ニューラルネットワークや相互結合ニューラルネットワークなど種々のニューラルネットワークがある。
特に、学習入力データと分類カテゴリに割り当てられた教師信号とを用いて、学習させた多層ニューラルネットワークがパターン認識を初め種々幅広く実用されている。ここでは、教師付き学習を行う３層ニューラルネットワークを例にとり、従来技術について説明する。また、説明を簡単にする為に、パターン認識や連想記憶装置などに於いて見られる２値学習入力データと教師信号を用いて学習させ、２値出力信号を送出させることとする。
【０００３】
先ず、２値３層ニューラルネットワークの学習処理の構成について説明する。図１９は、２値３層ニューラルネットワークの学習処理の１構成例を示す。Ｎ個のユニットからなる入力層４、Ｐ個のユニットからなる中間層５及びＭ個のユニットからなる出力層６から構成される。
３層ニューラルネットワークへの学習入力データＩは、Ｉ1、Ｉ2、．．ＩNの入力データエレメントを持ったベクトルから構成され、入力端子２（２1、２2、．．．２N）を介してそれぞれ対応した入力層４のユニットに入力された後、更に中間層５の各ユニット（隠れユニット）にそれぞれ重み付けされ出力される。
【０００４】
中間層５では、入力層４の各ユニットからの重み付けされた出力の総和を入力とし、スレショルド値を差し引いた後、例えばシグモイド関数と呼ばれる非線形入出力特性を持った出力関数を介して出力される。
３層以上の多層の際にも、各層におけるそれぞれのユニットは、入力側の隣接層の各ユニットの出力信号に重み付けをした後、それらの総和を入力として得、更にその入力からスレショルド値を差し引いた後、シグモイド関数などの出力関数を介し出力層側の隣接層に出力信号を送出する。
【０００５】
出力層６においても中間層５と同様な入出力処理が行われた後、各出力層ユニットからそれぞれ対応した出力信号を送出し、減算処理部９（９１、９２、．．．９Ｍ）に於いて入力端子８（８１、８２、８Ｍ）からの教師信号Ｔ（教師信号エレメント、Ｔ１、Ｔ２、ＴＭ）から差し引き、誤差信号を得る。
この誤差信号電力を最小とする重み係数を得るための多層ニューラルネットワークの代表的重み係数更新方法としては、例えば、前記文献にも記載されているようにバック・プロパゲーション・アルゴリズムがある。
【０００６】
本アルゴリズムを用いた学習過程では、重み係数に対して乱数などを用いて初期値設定した後、予め用意された教師信号Ｔと、入力層４に端子２を介して入力された予め用意された学習入力データに対する出力層６のユニットからの出力信号との誤差信号を減算処理部９を介して求め、重み係数更新制御処理部７に入力する。
【０００７】
重み係数更新制御処理部７では、入出力端子１１を介して入力された各層のユニットからの出力信号と前記誤差信号とを基に誤差電力を最小にするように各層間の重み係数の修正値を求め、３層ニューラルネットワーク１に設定された各重み係数を更新する重み係数適応更新制御による学習を行うものである。
この重み係数適応更新制御による重み係数更新をすべての学習入力データに対して繰り返すと、得られた更新重み係数を入出力端子１１を介して３層ニューラルネットワーク１に設定する。その後、学習入力データに対する収束状態を調べるために、再度、全ての学習入力データを順次入力端子２に入力し、出力層６からの出力信号に対して、スレショルド処理部１０（１０11、１０12、．．．１０1M）を介して２値出力信号に変換し、正解不正解出力判定処理部１２に入力する。
【０００８】
正解不正解出力判定処理部１２に於いては、例えば、スレショルド処理部１０を介して得られた全学習入力データに対する２値出力信号が、対応した教師信号Ｔをスレショルド処理部１０（１０２１、１０２２、．．．１０２Ｍ）を介して得られた２値教師信号と一致する、即ち全ての２値出力信号が全正解状態であるか、少なくとも何れかが不一致となる不正解状態であるかを判定し、正解不正解判定信号を学習収束判定処理部１３へ送出する。更に、学習収束判定処理部１３では全正解状態ならば収束したとみなし、重み係数更新を止め学習を完了する為、重み学習完了制御信号を重み係数更新制御処理部７へ送出する。
【０００９】
不正解状態であれば、引き続き、全ての学習入力データを再度入力端子２に入力し、順次、重み係数更新制御処理部７にて重み係数更新処理を実行する為に、学習継続制御信号を重み係数更新制御処理部７へ送出する。
ここで、一般に誤差電力を極小にするローカルミニマム状態に一旦落ち込むと、学習処理過程を繰り返し進めても、全ての学習入力データに対して所望の２値出力信号が必ずしも得られず、２値教師信号と異なる２値出力信号を送出する場合が多い。
【００１０】
収束の為の学習回数の増大は、このローカルミニマム状態への落ち込みなど重み係数更新の為の学習アルゴリズムによるものの他に、学習入力データ間の距離の統計的性質にも依存している。
学習入力データがお互いに非常に似ており、夫々が異なる分類カテゴリに属する、即ち異なる教師信号に対応した学習入力データ間の距離（２値の場合にはハミング距離）が非常に小さい学習入力データが多く、然も密な（学習入力データの表示ビット数Ｎで表せるパターン数２Ｎに対する学習入力データ数の割合が高い）場合には、これらの学習入力データを夫々異なった正しいカテゴリへ分類することが非常に難しく、学習を繰り返しても分類カテゴリ境界領域を上手く形成することが困難となる。この為に、収束の為の学習回数が数千回以上と非常に多くなったり、場合によっては、収束しない状況が多く発生する。
【００１１】
パターン認識などに於いて、このようなローカルミニマム状態に落ち込んだ重み係数や全正解出力信号が得られない重み係数を設定した多層ニューラルネットワークを用いて、入力信号に対して実行処理を行わせた際、学習入力データに近い入力信号に対しても正しい２値出力信号が得られず、多くの誤認識が発生する。従って、実用の際には、多層ニューラルネットワークの学習に於いて、分類カテゴリに対応した２値教師信号に対して全て正解２値出力信号となるよう迅速に収束させることが非常に重要である。
【００１２】
特に、ニューラルネットワークを用いた連想記憶装置では、用いるニューラルネットワークの学習に於いて、正しい想起の為には、迅速且つ正確な全正解の２値出力信号への収束が前提であり、非常に重要である。
ニューラルネットワークを用いた連想記憶装置の種類としては、自己連想メモリと相互（ヘテロ）連想メモリとがあり、文献、Hopfield,J.J., Proc. National. Acad. Sci. USA, 79,pp.2554-2558, 1982や、Associative Neural Memories Theory and Implementation Edited by Mohamad H. Hassoun OXFORD University Press 1993などに詳細が記載されている。
【００１３】
従来の自己連想ニューラルネットワークメモリでは、重み係数は計算により求められるが、入力学習データに対して正しく想起させるには、学習アトラクタとしての学習入力データは互いに相関の小さい直交関係を持つことが好ましい。即ち、比較的似た２値入力信号を、学習入力データとして学習記憶させる重み係数を計算し求めて設定すると、学習アトラクタ間の干渉が発生し、スプリアス（偽の）・アトラクタに収束する場合が増加するか、或いは想起されない無収束の発散状態になる場合が増える。
従って、自己連想メモリの最も大きな欠点は、取り得る重み係数への大きな制約による、記憶容量の少なさである。上記の文献によると、この記憶容量は、理論的に約0.12×入力層ユニット数Ｎで与えられる。学習入力データ数がこの理論的限界に近づくとアトラクタ収束が一段と困難となり、実用的でない。
【００１４】
一方、２つの従属接続された学習済みニューラルネットワークを用いた相互（ヘテロ）連想メモリがある。この方式は，図２０のように、夫々学習入力データとそれに対応した２値教師信号とからなる学習データを用いて学習させた前進２値３層ニューラルネットワーク２３、及びこれとは逆入出力関係の学習データを用いて学習させた後進２値３層ニューラルネットワーク２６とから基本的に構成される。従来では、前進２値３層ニューラルネットワーク２３としては、粗コード出力型前進２値３層ニューラルネットワーク２３が多く用いられている。
【００１５】
粗コード出力型の前進２値３層ニューラルネットワーク２３では、その２値教師信号としては、何れか１つのユニットのみが１となり、他のＭ−１個のユニットが０となるＭビットの２値出力信号形式、即ち、One out of Ｍと呼ばれる粗い符号化コードが用いられる。これは、ニューラルネットワークの学習入力データに対応した２値教師信号の分類カテゴリへの対応づけが簡単であることから、殆どの多層ニューラルネットワークの出力信号形式として採り入れ、学習させている。
【００１６】
一方、後進２値３層ニューラルネットワーク２６では、前進２値３層ニューラルネットワーク２３に対して用いた２値教師信号を学習入力データとして学習させる。また、後進２値３層ニューラルネットワーク２６の２値教師信号としては、入力切替スイッチ２１を介して、前進２値３層ニューラルネットワーク２３にフィードバック入力する為に、入力端子２０からの前進連想入力信号Ｘ（０）と同一入力ユニット数Ｎの出力形式を持たせる必要がある。従って、前進２値３層ニューラルネットワーク２３の学習入力データ、即ち学習アトラクタとする。
【００１７】
即ち、前進２値３層ニューラルネットワーク２３への学習入力データが、後進２値３層ニューラルネットワーク２６の２値出力信号として再現されるよう夫々の学習を行う。このように学習させた重み係数を、前進２値３層ニューラルネットワーク２３及び後進２値３層ニューラルネットワーク２６の重み係数として夫々設定する。
ここで、密な２値出力コードの集合を持つ、お互いのハミング距離が小さい２値教師信号を用いて前進２値３層ニューラルネットワーク２３にて学習させると、スプリアス・アトラクタ（偽りのアトラクタ）は発生しにくいが、後進２値３層ニューラルネットワーク２６では、この密な２値コードの２値教師信号を学習入力データとして学習させる必要があり、学習が非常に困難となる。
【００１８】
特に、連続したカテゴリ番号を２値コード化し、そのまま割り当てた昇順２値コードは、非常に密な２値コードの集合となり、然もハミング距離の平均値及び標準偏差も比較的非常に小さい２値コード分布となる。粗なランダム２値コードとは異なり、このような学習入力データに対して分類カテゴリに対応した全正解の２値出力信号を送出させるためには、学習回数が数千回以上と非常に多くなり、収束しない場合も多く発生する。従って、大規模な分類カテゴリを持った相互連想メモリでは、後進２値３層ニューラルネットワーク２６の学習が非常に困難となる。
【００１９】
ここで、学習済み前進及び後進２値３層ニューラルネットワークを用いた相互連想メモリの基本的動作を簡単に説明する。図２０に於いて、初期設定として、入力切替スイッチ２１は、連想ループ制御処理部２８からの制御信号により制御され、入力端子２０の前進連想入力信号Ｘ（０）が学習済み前進２値３層ニューラルネットワーク２３へ入力端子２２を介して入力されるよう接続される。また、前進連想入力信号Ｘ（０）がアトラクタ収束状態判定を行う為の初期値としてアトラクタ収束状態識別部２９に記憶される。
【００２０】
前進２値３層ニューラルネットワーク２３は、前進連想入力信号Ｘ（０）に対応した２値出力信号を出力端子２４から送出し、更に端子２５を介して学習済み後進２値３層ニューラルネットワーク２６に入力する。対応した２値出力信号Ｘ（１）は、出力端子２７から出力され、更にアトラクタ収束状態識別処理部２９に入力記憶されると共に、連想ループ制御処理部２８の制御の基に、入力切替スイッチ２１を介して入力端子２２にフィードバックされる。
連想ループ制御処理部２８は、後進２値３層ニューラルネットワーク２６からの２値出力信号Ｘ（１）を入力切替スイッチ２１と入力端子２２を介して前進２値３層ニューラルネットワーク２３へフィードバックし、再度、前進及び後進２値３層ニューラルネットワーク２３、２６から夫々２値出力信号Ｙ（１）、Ｘ（２）を得るよう制御する。このような一連のフィードバック処理を連想ループ処理と呼び、そのフィードバック回数を連想ループ回数ｑとする。
【００２１】
アトラクタ収束状態識別処理部２９では、蓄積されている連想ループ回数ｑ−１での後進２値３層ニューラルネットワーク２６の２値出力信号Ｘ（ｑ）と連想ループ回数ｑ連想ループ処理により得られた後進２値３層ニューラルネットワーク２６の２値出力信号Ｘ（ｑ＋１）と比較し一致検出を行う。但し、ｑ≧０である。
一致し、連想ループ処理の結果が変化しなくなった平衡状態をアトラクタ収束状態と呼び、２値出力信号がアトラクタに収束したとして、アトラクタ収束状態信号を出力端子３０に送出する。更に、連想ループ制御処理部２８に連想ループ処理を停止するよう連想ループ処理完了信号を送出する。この時の後進２値３層ニューラルネットワーク２６のアトラクタである２値出力信号Ｘ（ｑ＋１）がアトラクタ出力信号として出力端子２７に送出される。このアトラクタ収束状態を想起状態と呼ぶ。
【００２２】
一致しない場合には、収束していないと見なし、連想ループ制御処理部２８に再度連想ループ処理の実行を要求するために、連想ループ処理要求信号を送出する。
連想ループ制御処理部２８では、連想ループ処理要求信号を受信すると、予め指定された連想ループ最大許容回数Q未満であれば、連想ループ回数ｑ＝ｑ＋１として、連想ループ処理を再度実行するため、２値出力信号Ｘ（ｑ＋１）を、入力切替スイッチ２１を介して入力端子２２へフィードバックする。
【００２３】
ここで、連想ループ処理完了信号を受信した場合、或いは連想ループ回数ｑが連想ループ最大許容回数Q以上となると、連想ループ処理を終了する。連想ループ回数ｑ≧Ｑの状態で、アトラクタ収束状態識別処理部２９から連想ループ処理要求信号を受信した場合には、アトラクタ発散状態信号送出要求信号をアトラクタ収束状態識別処理部２９に送り、連想ループ処理を終了する。この時、アトラクタ収束状態識別処理部２９はアトラクタ発散状態信号を出力端子３０に送出する。このアトラクタ発散状態は、不想起状態と呼ばれる。
【００２４】
アトラクタ収束状態で出力端子２７に得られたアトラクタは、連想入力信号Ｘ（０）が最も近い特徴を持った学習入力データである学習アトラクタ（教師信号）に想起される場合と、スプリアス・アトラクタ（偽りのアトラクタ）に想起される場合とがある。スプリアス・アトラクタは、学習入力データではなく、殆どの場合は、多くの雑音を含んだ有意な意味を殆ど持たないデータから構成されており明確な特徴を持っていない。
【００２５】
この従来の相互連想メモリの構成では、必要なＭ個の学習アトラクタとしての学習入力データとそれらに夫々対応したOne out of Ｍ出力信号形式の２値教師信号とを学習させることから、重み係数による記憶容量を多くすることが出来る。しかしながら、学習アトラクタとしての学習入力データ数Ｍが非常に多い場合には、前進２値３層ニューラルネットワーク２３のＭ個の出力層ユニット数と同一のユニット数を持つ後進２値３層ニューラルネットワーク２６の入力層ユニット数が必然的に非常に大きくなる。従って、粗コード出力型の前進２値３層ニューラルネットワーク２３、及び同様の粗コード形式を入力として持つ後進２値３層ニューラルネットワーク２６の規模が非常に大きくなり、学習処理の演算量が膨大となる欠点を有している。
【００２６】
また、Ｍ個のユニットの粗コードからなる２値出力信号形式が用いられることから、スプリアス・アトラクタに収束する場合が非常に多くなる欠点をもっている。
更に、後進２値３層ニューラルネットワークでの学習に於いても、One Out of Ｍの粗コードの互いのハミング距離も比較的小さいことから、これらを各カテゴリに分類するよう学習させることも比較的困難となる。
また、大きく雑音劣化した前進連想入力信号に対しては、アトラクタ収束状態に到達しないアトラクタ発散状態となる場合も非常に多いなどの欠点も有している。
【非特許文献１】麻生英樹著、「ニューラルネットワーク情報処理」、産業図書出版、１９８９年９月３０日発行
【非特許文献２】Hopfield,J.J., Proc. National. Acad. Sci. USA, 79,pp.2554-2558, 1982
【非特許文献３】Associative Neural Memories Theory and Implementation Edited by Mohamad H. Hassoun OXFORD University Press 1993
【発明の開示】
【発明が解決しようとする課題】
【００２７】
上記の説明のごとく、自己連想メモリは、記憶容量が非常に小さく、また、カテゴリ分類機能を有していない。更に、学習入力データである学習アトラクタに収束するためには、取り得る重み係数に制約があり、お互いにハミング距離の小さく、然も密な多くの似た学習入力データを記憶することが出来ない欠点を持っている。例えば、２層ニューラルネットワークに於ける記憶できる理論的最大学習入力データ数は、0.12×入力層ユニット数であり、重み係数の記憶容量が非常に少ない実用上の大きな欠点を持っている。
また、連想ループ処理に於いて、アトラクタに中々収束せず、アトラクタ発散状態になりやすく、然も、アトラクタに収束しても、所望の学習アトラクタではなく、スプリアス・アトラクタになり易いなどの欠点もある。
【００２８】
一方、従来の２値３層ニューラルネットワークによる相互連想メモリでは、粗コード出力型の前進２値３層ニューラルネットワーク２３が多く用いられることから、多くの学習アトラクタを記憶させる為には、前進２値３層ニューラルネットワーク２３の出力層ユニット数を非常に大きくしなければならない。例えば、２５６の学習アトラクタを用いる場合、昇順２値コードを用いる場合には、８ユニット（ビット）で良いが、One out of Ｍ粗コード出力形式の場合には、前進２値３層ニューラルネットワーク２３の出力層ユニット数は２５６、また、後進２値３層ニューラルネットワーク２６の入力層ユニット数も２５６となり、ネットワーク規模が非常に大きくなる。当然のことながら演算量が膨大となるとともに、全正解出力となる学習も比較的困難で、スプリアス・アトラクタも多く発生する欠点を持っている。
【００２９】
また、昇順２値コードからなる密の２値コード出力型の前進２値３層ニューラルネットワーク２３を用いた場合には、スプリアス・アトラクタは非常に発生しにくい。しかしながら、後進２値３層ニューラルネットワーク２６は、前進２値３層ニューラルネットワーク２３の２値教師信号を学習入力データとして学習する必要があるが、この２値教師信号のお互いのハミング距離が非常に小さく、然も密な２値コードの集合となることから、それぞれを独立した分類カテゴリとして学習することが非常に困難となる欠点を持っており、大規模な分類カテゴリを持ち、然も正確な記憶能力を持った大規模記憶容量の相互連想メモリが実現できない。
【００３０】
本発明の目的は、上記の問題を解決し、お互いに距離が非常に小さく密な学習入力データに対する学習に於いても、簡単で高速且つ確実に収束し、全正解２値出力信号を送出する２値多層ニューラルネットワークや並列複合２値多層ニューラルネットワークを実現し、高信頼度な２値多層ニューラルネットワークシステムを提供することにある。また、このような２値多層ニューラルネットワークや並列複合２値多層ニューラルネットワークを用いた相互連想メモリを構成することにより、従来の２値多層ニューラルネットワークを用いた自己連想メモリや相互連想メモリなどに比べて、迅速且つ正確な全正解出力を得る学習を行わせ、大規模な記憶容量を持たせることができると共に、スプリアス・アトラクタに落ち込むことも非常に少なく、アトラクタ発散状態も殆どない、非常に優れた高性能な相互連想記憶装置を提供することにある。
【課題を解決するための手段】
【００３１】
上記の問題点を解決するために、第１の手段として、２値学習入力データを基に付加入力生成データを生成する付加入力生成処理手段と、該２値学習入力データと該２値付加入力生成データとを合わせて新たな学習用２値入力データとして入力し、教師信号を用いて多層ニューラルネットワーク手段を学習させることを特徴とした多層ニューラルネットワーク学習装置を構成する。
【００３２】
第２の手段として、２値入力信号を基に付加入力生成信号を生成する付加入力生成処理手段と、該２値入力信号と該２値付加入力生成信号とを合わせて新たな２値入力信号として入力する、教師信号を用いて学習させた多層ニューラルネットワーク手段を少なくとも用いて構成することを特徴とした多層ニューラルネットワーク装置を構成する。
【００３３】
第３の手段として、２値入力信号を基に夫々の付加入力生成信号を生成する並列接続された付加入力生成処理手段と、該２値入力信号と夫々の該２値付加入力生成信号とを合わせて夫々の新たな２値入力信号として入力する、基本となる２値教師信号から変換された互いに異なる夫々の２値教師信号を用いて学習させ並列接続された多層ニューラルネットワーク手段と、学習に用いた該２値教師信号を元の該基本となる２値教師信号に逆変換する夫々の変換則を有し、対応した該多層ニューラルネットワーク手段の２値出力信号を出力逆変換する並列接続された出力逆変換処理手段と、夫々の該出力逆変換処理手段からの並列接続数の２値出力信号から一つの２値出力信号を選択送出する出力複合処理手段とから、少なくとも構成することを特徴とした並列複合多層ニューラルネットワーク装置を構成する。
【００３４】
第４の手段として、２値入力信号を基に夫々の付加入力生成信号を生成する付加入力生成処理手段と、該２値入力信号と夫々の該２値付加入力生成信号とを合わせて夫々の新たな２値入力信号として入力する並列接続された入力変換処理手段と、夫々の該入力変換処理手段からの２値出力信号を入力とする並列接続された多層ニューラルネットワーク手段と、夫々の該多層ニューラルネットワーク手段からの並列接続数の２値出力信号から一つの２値出力信号を選択送出する出力複合処理手段とから、少なくとも構成することを特徴とした並列複合多層ニューラルネットワーク装置を構成する。
【００３５】
第５の手段として、並列接続された入力変換処理手段と、夫々の該入力変換処理手段からの２値入力信号を基に付加入力生成信号を生成する２値付加入力生成処理手段と、夫々の該２値入力信号と生成された該２値付加入力生成信号とを合わせて夫々の新たな２値入力信号として入力する並列接続された多層ニューラルネットワーク手段と、夫々の該多層ニューラルネットワーク手段からの並列接続数の２値出力信号から一つの２値出力信号を選択送出する出力複合処理手段とから、少なくとも構成することを特徴とした並列複合多層ニューラルネットワーク装置を構成する。
【００３６】
第６の手段として、第３、第４及び第５の手段の前記付加入力生成処理手段に於いて、付加入力信号を生成する生成則が全て同一の付加入力生成処理手段を用いることを特徴とした並列複合多層ニューラルネットワーク装置を構成する。
【００３７】
第７の手段として、前進２値多層ニューラルネットワーク手段２３と、後進２値多層ニューラルネットワーク手段２６と、前進連想入力信号を該前進２値多層ニューラルネットワーク手段２３に一旦入力した後、該後進２値多層ニューラルネットワーク手段２６の２値出力信号を入力する入力切替スイッチ２１と、アトラクタ収束状態を識別するアトラクタ収束状態識別処理手段２９とを少なくも有し連想ループ処理を行う相互連想記憶装置に於いて、
該前進２値多層ニューラルネットワーク手段２３の２値出力信号を基に後進付加入力生成信号を生成する後進付加入力生成処理手段５１と、該２値出力信号と該後進付加入力生成信号とを合わせて入力する、該前進２値多層ニューラルネットワーク手段２３の２値教師信号を基に該後進付加入力生成処理手段５１を介して生成した後進付加入力生成データとを合わせて学習用入力データとして学習させた該後進２値多層ニューラルネットワーク手段２６とから少なくとも構成することを特徴とした相互連想記憶装置を構成する。
【００３８】
第８の手段として、前進２値多層ニューラルネットワーク手段２３と、後進２値多層ニューラルネットワーク手段２６と、前進連想入力信号を、或いは該後進２値多層ニューラルネットワーク手段２６の２値出力信号を該前進２値多層ニューラルネットワーク手段２３に入力する入力切替スイッチ２１と、後進連想入力信号を、或いは該前進２値多層ニューラルネットワーク手段２３の２値出力信号を該後進２値多層ニューラルネットワーク手段２６に入力する入力切替スイッチ４２とを、アトラクタ収束状態を識別するアトラクタ収束状態識別処理手段４５とを少なくも有し、前進連想入力信号に対する連想ループ処理を行う場合には、該前進２値多層ニューラルネットワーク手段２３を該後進２値多層ニューラルネットワーク手段２６に常に接続するよう前記入力切替スイッチ４２を制御し、後進連想入力信号に対する連想ループ処理を行う場合には、該後進２値多層ニューラルネットワーク手段２６を該前進２値多層ニューラルネットワーク手段２３に常に接続するよう前記入力切替スイッチ２１を制御して、夫々連想ループ処理を行う相互連想記憶装置に於いて、
該後進２値多層ニューラルネットワーク手段２６の２値出力信号を基に前進付加入力生成信号を生成する前進付加入力生成処理手段５２と、該２値出力信号と該前進付加入力生成信号とを合わせて入力する、学習入力データを基に該後進付加入力生成処理手段５２を介して生成した前進付加入力生成データとを合わせて学習用入力データとして学習させた該前進２値多層ニューラルネットワーク手段２３と、
該前進２値多層ニューラルネットワーク手段２３の２値出力信号を基に後進付加入力生成信号を生成する後進付加入力生成処理手段５１と、該２値出力信号と該後進付加入力生成信号とを合わせて入力する、該前進２値多層ニューラルネットワーク手段２３に於ける２値教師信号を基に該後進付加入力生成処理手段５１を介して生成した後進付加入力生成データとを合わせて学習用入力データとして学習させた該後進２値多層ニューラルネットワーク手段２６とから少なくとも構成することを特徴とした相互連想記憶装置を構成する。
【００３９】
第９の手段として、２値学習入力データを基に付加入力生成データを生成する付加入力生成処理と、該２値学習入力データと該２値付加入力生成データとを合わせて新たな学習用２値入力データとして入力し、教師信号を用いて多層ニューラルネットワーク学習処理を行うことを特徴とした多層ニューラルネットワーク学習ソフトゥエアを構成する。
【００４０】
第１０の手段として、２値入力信号を基に付加入力生成信号を生成する付加入力生成処理と、該２値入力信号と該２値付加入力生成信号とを合わせて新たな２値入力信号として入力する多層ニューラルネットワーク処理を少なくとも用いて構成することを特徴とした多層ニューラルネットワーク処理ソフトウェアを構成する。
【００４１】
第１１の手段として、２値入力信号を基に夫々の付加入力生成信号を生成する並列接続された付加入力生成処理と、該２値入力信号と夫々の該２値付加入力生成信号とを合わせて夫々の新たな２値入力信号として入力する、基本となる２値教師信号から変換された互いに異なる夫々の２値教師信号を用いて学習させ並列接続に対応する多層ニューラルネットワーク処理と、学習に用いた該２値教師信号を元の該基本となる２値教師信号に逆変換する夫々の変換則を有し、対応した該多層ニューラルネットワーク処理からの２値出力信号を出力逆変換する並列接続に対応した出力逆変換処理と、夫々の該出力逆変換処理からの並列接続に対応する数の２値出力信号から一つの２値出力信号を選択送出する出力複合処理とから、少なくとも構成することを特徴とした並列複合多層ニューラルネット処理ワークソフトウェアを構成する。
【００４２】
第１２の手段として、２値入力信号と、該２値入力信号を基に夫々の付加入力生成処理を介して生成した２値付加入力生成信号とを合わせて夫々の新たな２値入力信号として入力する並列接続に対応する入力変換処理と、夫々の該入力変換処理からの２値出力信号を入力とする並列接続に対応する学習済み多層ニューラルネットワーク処理と、夫々の該多層ニューラルネットワーク処理からの並列接続に対応した数の２値出力信号から一つの２値出力信号を選択送出する出力複合処理とから、少なくとも構成することを特徴とした並列複合多層ニューラルネットワーク処理ソフトウェアを構成する。
【００４３】
第１３の手段として、並列接続に対応した入力変換処理と、夫々の該入力変換処理からの２値入力信号を基に付加入力生成信号を生成する夫々の２値付加入力生成処理と、夫々の該２値入力信号と生成された該２値付加入力生成信号とを合わせて夫々の新たな２値入力信号として入力する並列接続に対応する多層ニューラルネットワーク処理と、夫々の該多層ニューラルネットワーク処理からの並列接続に対応する数の２値出力信号から一つの２値出力信号を選択送出する出力複合処理とから、少なくとも構成することを特徴とした並列複合多層ニューラルネットワーク処理ソフトウェアを構成する。
【００４４】
第１４の手段として、請求項１１、１２及び１３の前記付加入力生成処理に於いて、付加入力信号を生成する生成則が全て同一の付加入力生成処理を用いることを特徴とした並列複合多層ニューラルネットワーク処理ソフトウェアを構成する。
【００４５】
第１５の手段として、前進２値多層ニューラルネットワーク処理と、後進２値多層ニューラルネットワーク処理と、後進連想入力信号を該前進２値多層ニューラルネットワーク処理に一旦入力した後、該後進２値多層ニューラルネットワーク処理の２値出力信号を入力する入力設定処理と、アトラクタ収束状態を識別するアトラクタ収束状態識別処理とを少なくも有し連想ループ処理を行う相互連想記憶処理に於いて、
該前進２値多層ニューラルネットワーク処理の２値出力信号を基に後進付加入力生成信号を生成する後進付加入力生成処理と、該２値出力信号と該後進付加入力生成信号とを合わせて入力する、該前進２値多層ニューラルネットワーク処理に於ける２値教師信号を基に該後進付加入力生成処理を介して生成した後進付加入力生成データとを合わせて学習用入力データとして学習させた該後進２値多層ニューラルネットワーク処理とから少なくとも構成することを特徴とした相互連想記憶処理ソフトウェアを構成する。
【００４６】
第１６の手段として、前進２値多層ニューラルネットワーク処理と、後進２値多層ニューラルネットワーク処理と、前進連想入力信号を、或いは該後進２値多層ニューラルネットワーク処理の２値出力信号を該前進２値多層ニューラルネットワーク処理に入力する入力設定処理と、後進連想入力信号を、或いは該前進２値多層ニューラルネットワーク処理の２値出力信号を該後進２値多層ニューラルネットワーク処理に入力する入力設定処理と、アトラクタ収束状態を識別するアトラクタ収束状態識別処理とを少なくも有し、前進連想入力信号に対する連想ループ処理を行う場合には、該前進２値多層ニューラルネットワーク処理の２値出力信号を該後進２値多層ニューラルネットワーク処理に常に入力する前記入力設定処理を行い、後進連想入力信号に対して連想ループ処理を行う場合には、該後進２値多層ニューラルネットワーク処理の２値出力信号を該前進２値多層ニューラルネットワーク処理に常に入力するよう前記入力設定処理をして、夫々連想ループ処理を行う相互連想記憶処理に於いて、
該後進２値多層ニューラルネットワーク処理の２値出力信号を基に前進付加入力生成信号を生成する前進付加入力生成処理と、該２値出力信号と該前進付加入力生成信号とを合わせて入力する、学習入力データを基に該後進付加入力生成処理を介して生成した前進付加入力生成データとを合わせて学習用入力データとして学習させた該前進２値多層ニューラルネットワーク処理と、該前進２値多層ニューラルネットワーク処理の２値出力信号を基に後進付加入力生成信号を生成する後進付加入力生成処理と、該２値出力信号と該後進付加入力生成信号とを合わせて入力する、該前進２値多層ニューラルネットワーク処理の学習に於ける２値教師信号を基に該後進付加入力生成処理を介して生成した後進付加入力生成データとを合わせて学習用入力データとして学習させた該後進２値多層ニューラルネットワーク処理とから少なくとも構成することを特徴とした相互連想記憶処理ソフトウェアを構成する。
【００４７】
上記の説明のごとく、本発明の付加入力生成処理機能を有する２値多層ニューラルネットワークや並列複合２値多層ニューラルネットワークでは、互いのハミング距離が非常に小さい学習入力データに対しても、それを基に付加入力生成データを生成し、これらを合わせて多層ニューラルネットワークの入力とすることにより、入力のお互いのハミング距離を確実に拡大でき、然も入力ビット数が付加されることから、より粗な２値コード関係になる。従って、簡単で安定且つ確実に全正解の２値出力信号を送出できるよう学習させることができる。従って、実用的に非常に幅広くこれらの２値多層ニューラルネットワークを用いることができると共に、非常に高性能な汎化能力を持った付加入力生成処理機能を有する２値多層ニューラルネットワークや並列複合２値多層ニューラルネットワークなど、これらを用いた優れた性能の応用システムを実現することができる。
【００４８】
特に、これらの付加入力生成処理機能を有する２値多層ニューラルネットワークよる相互連想メモリは、前進２値多層ニューラルネットワークに於いて、分類カテゴリ番号を密に符号化した２値コードを２値教師信号として割り当てた分散型出力形式を用いて、スプリアス・アトラクタの発生を無くし、然も、非常に少ない連想ループ処理の基でアトラクタ収束状態が達成される。更に、非常に多量の学習アトラクタを自由且つ安定に記憶できるなど、従来の連想記憶装置にない、一段と優れた性能を実現できる。
【００４９】
これらのことから、本発明の付加入力生成処理機能を有する２値多層ニューラルネットワークや並列複合２値多層ニューラルネットワーク、更にこれらを用いた相互連想記憶装置は、処理遅延が一定の非常に複雑な真理値表を持った論理回路、高速データ検索や、未知入力データによる不正アクセス検出などのセキュリティシステムへの応用や、ネットワーク障害検出システムなどへの応用、更には、多くの雑音により劣化した大容量の画像データなどの認識や劣化除去フィルタリングなどのパターン認識などの実用システムへ幅広く適用できる。
【発明を実施するための最良の形態】
【００５０】
本発明の第１の実施形態に於ける付加入力生成機能を有する２値３層ニューラルネットワークの学習処理装置の１実施例を図１に示す。この基本構成の説明を簡単にする為、ここでは、３層ニューラルネットワークを例に挙げ、その構成及びその動作について詳細に説明する。尚、本発明は、３層ニューラルネットワークに限るものではなく、４層以上の多層ニューラルネットワークなどの教師信号を用いて学習するニューラルネットワークであればよい。
【００５１】
本発明の付加入力生成処理機能を有する３層ニューラルネットワーク学習処理装置は、図１に示すように、学習入力データを基に付加入力を生成する付加入力生成処理部５０と、学習入力データと付加入力生成データとからなる学習用入力データ対して出力層から出力信号を送出する３層ニューラルネットワーク１と、対応した教師信号から出力層の出力信号を差し引き、誤差信号を得える減算処理部９と、出力層の出力信号を２値化し、２値出力信号を送出するスレショルド処理部１０（１０１１、１０１２、１０１Ｍ）と、教師信号を２値化し、２値教師信号を送出するスレショルド処理部１０（１０２１、１０２２、１０２Ｍ）と、入力される全ての学習入力データに対応した２値出力信号とそれらに対応した２値教師信号との比較を行い、２値出力信号の正解不正解を判定し、正解不正解判定信号として全正解判定信号あるいは不正解判定信号を送出する正解不正解出力判定処理部１２と、全正解判定信号が得られると、重み係数更新処理を停止し学習を完了させる学習完了制御信号を送出し、不正解判定信号が得られると、再度全学習入力データに対して重み係数更新処理を行わせる学習継続制御信号とを送出する学習収束判定処理部１３と、誤差信号と重み係数と３層ニューラルネットワーク１の各層の出力信号などとから重み係数を更新し、全ての学習入力データに対して更新された重み係数を送出し３層ニューラルネットワーク１に設定する重み係数更新制御処理部７とから構成される。
【００５２】
ここで、これらの動作について説明する。
重み係数更新制御処理部７において、乱数などを用いて生成した重み係数などを初期値設定した後、初期重み係数を入出力端子１１を介して３層ニューラルネットワーク１に設定する。更に、入力端子２からの予め用意された学習入力データと入力端子８から対応した教師信号Ｔとを夫々に入力する。
付加入力生成処理部５０では、入力端子２から入力された学習入力データを基に、指定されたユニット数Ｒ、即ちＲビットの付加入力生成データを生成する。
【００５３】
生成方法としては、例えば、学習入力データを初期値とした２値乱数生成器を用いて、Ｒビットの２値乱数データを生成し、付加入力生成データとする。或いは、学習入力データをＮビットの２値パターンとみなし、これから複数個のＲビットのパターンを抽出し、夫々に対して整数変換した後、素数による剰余演算や桁シフトなどの演算を施し、更にべき乗型非線型演算処理と桁シフトを施した後、夫々を加算して最終的にＲビットの２値パターンに変換して付加入力生成データを生成してもよい。即ち、Ｎビットの入力パターンに対して一意のランダムなＲビットのパターンを発生できる付加入力生成方法であればよい。
更に、付加入力生成処理部５０として、誤り訂正符号化方法に於いて、例えば、ＢＣＨ符号やゴレー符号化などに於ける誤り訂正符号生成器を用い、これにより生成された誤り訂正符号の冗長ビット部分を付加入力生成データしてもよい。
【００５４】
この付加入力生成処理部５０により生成した付加入力生成データは、学習入力データ間のハミング距離が小さく非常に似た学習入力データに対しても、お互いにハミング距離が大きく離れ異なったＲビットの２値データとなる。
この生成された付加入力生成データと学習入力データとを合わせて、３層ニューラルネットワーク１のＮ＋Ｒビットの学習用入力データとすることにより、学習入力データ間のハミング距離よりも常に大きいハミング距離を持った入力データを構成することができ、更に学習用入力データのビット数がＲほど増加することからより粗な２値コードの関係となる。この学習用入力データを図１の如く３層ニューラルネットワーク１の入力層４に入力し学習させる。
【００５５】
この学習用入力データに対して、シグモイド関数などの出力関数を介した出力層６からの出力信号を得、減算処理部９を介して教師信号との誤差信号を求め、重み係数更新制御処理部７に入力する。
重み係数更新制御処理部７では、入出力端子１１を介して入力された、出力関数を介した各層のユニットからの出力信号などの３層ニューラルネットワーク１の内部情報と前記誤差信号とを基に誤差電力を最小にするように各層間の重み係数の更新値を求める重み係数更新処理を行う。
【００５６】
全学習入力データに対して重み係数更新が終了すると、重み係数更新制御処理部１１では、重み係数更新を一旦停止し、端子１１を介して後進重み係数を３層ニューラルネットワーク１に設定する。この後、再度全ての学習入力データを順次入力端子２から入力層４に入力する。出力層６からの出力信号は、スレショルド処理部１０を介して２値出力信号に変換され、正解不正解出力判定処理部１２に送出される。
正解不正解出力判定処理部１２では、２値出力信号が入力されると、入力端子８からの対応した２値教師信号と比較する。全ての学習入力データに対する２値出力信号が全正解か或いは何れかが不正解かを判定し、全正解であれば全正解判定信号を、いずれかが不正解であれば、不正解判定信号を学習収束判定処理部１３に送出する。
【００５７】
学習収束判定処理部１３では、全正解判定信号が入力されると、重み係数更新制御処理部７に学習完了制御信号を送出する。一方、不正解判定信号ならば、再度全学習入力データに対して重み係数更新を行うよう学習継続制御信号を送出する。
重み係数更新制御処理部７では、学習完了制御信号が入力されると、学習完全収束として学習を完了させる。学習継続制御信号が入力されると、全学習入力データに対する学習回数が予め設定された最大学習回数Ｇ以上であれば、学習不完全収束として学習を停止する。最大学習回数Ｇ未満であれば、学習回数をカウントアップし、再度全学習入力データに対して重み係数を更新するよう制御し、学習入力データを順次入力端子２へ、また対応した教師信号を入力端子８からそれぞれ入力し、一連の重み係数更新処理を行う。
【００５８】
上記の付加入力生成処理部５０では、学習入力データを基に付加入力生成データを生成し、学習入力データと合わせて新たな学習用入力データとして、３層ニューラルネットワーク１にて学習させる。この際、従来の学習入力データ単独の場合に比較して、付加入力生成データと学習入力データとからなる学習用入力データ間のハミング距離が学習入力データ間のハミング距離より常に大きく、学習用入力データをお互いに離し、更により粗な関係の２値パターンとすることができる。
【００５９】
ここで、Ｎより比較的小さい数のＲを用いることにより、学習入力データ間の相関、即ち学習入力データの入力空間の特徴もほぼ保ちながら、学習の収束状態、即ち２値出力信号が全て正解となる全正解出力状態を非常に少ない学習回数で確実に達成することができる。一方、大きい割合のＲの設定によっては、非常に高速な学習収束の下で汎化能力を殆ど持たない１対１の非常に複雑な入出力マッピングも実現することもできる。
【００６０】
尚、ここでは、教師信号は、実数値からなる教師信号を対象に記述したが、当然２値教師信号でもよく、この場合には、スレショルド処理部１０２１、１０２２、１０２Ｍは不要である。更に、２値教師信号として学習入力データと同じものを用いて、上記の学習用入力データを学習させてもよい。
また、学習収束判定処理部１３に於いても、２値出力信号の全正解を収束の条件としたが、他の収束条件を設定してもよい。例えば、全正解の条件の他に、更に教師信号からの出力信号の差の絶対値全てが与えられた誤差スレショルド値以下となるよう出力信号に対する収束条件も設定してもよい。
【００６１】
また、これらの学習済み重み係数を持った２値３層ニューラルネットワークの実行処理は、図１に於いて、付加入力生成処理部５０と、学習済み３層ニューラルネットワーク１、減算処理部９、スレショルド処理部１０と、及び重み係数更新制御処理部７の代わりの実行制御処理部とを用いて、入力端子２からの入力信号に対して、２値出力信号を出力端子３から送出することにより行うことができる。
ここで、第１の実施形態に於ける図１に示す２値３層ニューラルネットワークの学習処理に関して、その処理フローを図２に示す。
【００６２】
学習初期設定処理４００では、３層ニューラルネットワークの入力層ユニット数、中間層ユニット数と出力層ユニット数、及びシグモイド関数、付加入力生成Ｒビットの数などの構成パラメータと、学習係数や慣性係数など学習に於ける重み係数更新に必要なパラメータと、初期重み係数、最大学習回数Ｒや学習データ番号や学習回数初期値などを設定する。
学習入力データ入力処理４０１は、Ｎビットの学習入力データを付加入力生成処理４０２の入力及び３層ニューラルネットワーク処理４０３に於ける入力層のN個のユニットに入力設定する。
【００６３】
付加入力生成処理４０２は、入力されたＮビットの学習入力データを基に、Ｒビットの乱数２値パターンからなる付加入力生成データを生成し、３層ニューラルネットワーク処理４０３の入力層のＲ個のユニットに入力設定する。例えば、生成方法としては、学習入力データを初期値として、Ｒビットの２値乱数を生成してもよい。或いは、学習入力データを分割し、複数個のＲビットの整数値を得、夫々を素数で割り算の後、桁シフトにより得た実数値のべき乗などの非線型演算を施し、夫々を加算した後Ｒビットの２値パターンに変換して生成してもよい。この生成処理は、Nビットの入力された学習入力データに対して一意に決まるランダム化されたＲビットの２値パターンであればよい。
【００６４】
３層ニューラルネットワーク処理４０３では、Ｎ＋Ｒ個の入力層ユニットに設定された学習用入力データに対して、シグモイド関数などの出力関数を介した出力層の出力信号を得え、誤差信号算出処理４０４に設定する。また、各層からの出力信号を更新重み係数算出処理４０５に設定する。
誤差信号算出処理４０４では、教師信号から出力層の出力信号を差し引き、誤差信号を得、更新重み係数算出処理４０５に設定する。
更新重み係数算出処理４０５では、誤差信号及び各層の出力信号などを基に、例えば、誤差バック・プロパゲーション・アルゴリズムにより、中間層―出力層間、入力層−中間層間のそれぞれの重み係数を更新する。
【００６５】
全学習入力データ処理終了判定処理４０６では、準備されている全ての学習入力データに対して重み係数更新が終了したかを判定し、終了していない場合には、学習データ番号ｊ←ｊ＋１処理４１３を介して引き続き与えられた学習入力データに対して、学習入力データ入力処理４０１に戻り、次の学習入力データを設定し、同様の一連の処理を行う。
一方、全ての学習用入力データに対して終了しておれば、ニューラルネットワーク更新重み係数設定処理４０７を実行する。
ニューラルネットワーク更新重み係数設定処理４０７では、更新された新たな重み係数を３層ニューラルネットワークの各層間に設定する。
【００６６】
全学習入力データ２値３層ニューラルネットワーク実行処理４０８では、更新された重み係数を持つ３層ニューラルネットワークに対して、順次学習入力データを入力し、前記の付加入力生成処理４０２及び３層ニューラルネットワーク処理４０３と同様の処理を行い、出力層からの出力信号に対して、スレショルド処理を行い２値出力信号を得、全出力正解不正解判定処理４０９に設定する。
【００６７】
全出力正解不正解判定処理４０９では、全ての学習入力データに対して得られた２値出力信号が対応した２値教師信号と全て一致するか、不一致となるかの判定を行い、学習収束判定処理４１０に正解不正解判定結果を設定する。
学習収束判定処理４１０では、全正解状態ならば収束したとみなし、重み係数更新を止め学習を完了する。不正解状態であれば、収束状態が得られていないとみなし、学習回数判定処理４１２に進む。
【００６８】
学習回数判定処理４１１では、学習回数が最大学習回数Ｇ未満であれば、再度、学習入力データに対して重み係数更新を繰り返すために、学習回数ｉ←ｉ＋１処理４１２を介して学習入力データ入力処理４０１へ戻り、最初の学習入力データを設定する。最大学習回数Ｇであれば、学習未収束として学習を完了する。
次に、上記の学習収束を完了し、学習済み重み係数を設定した付加入力生成機能を有する２値３層ニューラルネットワークの実行処理の処理フローを図３に示す。
図２の学習処理フローにおける全学習入力データ２値３層ニューラルネットワーク実行処理４０８と基本的に同様である。全学習入力データではなく、入力された入力信号に対して２値出力信号を得る実行処理を示す。
【００６９】
初期設定処理４２０では、３層ニューラルネットワークの入力層ユニット数、中間層ユニット数及び出力層ユニット数、及びシグモイド関数、付加入力生成Ｒビットの数などの構成パラメータと、学習済み重み係数などを設定する。
入力信号入力処理４２１では、Ｎビットの入力信号を付加入力生成処理４２２と２値３層ニューラルネットワーク処理４２３に於ける３層ニューラルネットワーク入力層のＮ個のユニットに入力設定する。
【００７０】
付加入力生成処理４２２は、付加入力生成処理４０２と同様であり、Ｒビットの乱数２値パターンを付加入力生成信号として生成し、２値３層ニューラルネットワーク処理４２３に入力設定する。
２値３層ニューラルネットワーク処理４２３では、前記のＮビットの入力信号と前記のＲビットの付加入力生成信号とを合わせ、３層ニューラルネットワークの入力層に入力し、出力層から出力信号を得、スレショルド処理を介して２値出力信号を得る。入力信号が複数個ある場合は、順次上記の処理を繰り返せば良い。
【００７１】
次に、本発明の第２の実施形態として、付加入力生成機能を有する並列複合２値３層ニューラルネットワークの１構成例を図４に示す。ここでは、３並列の学習済み２値３層ニューラルネットワークを用いた場合について、説明するが、３並列に限るものではない。
【００７２】
図４の付加入力生成機能を有する３並列複合２値３層ニューラルネットワーク６０は、入力端子７５の入力信号を基に生成された付加入力生成信号を出力する付加入力生成処理部５０と、入力端子７５からの入力信号と付加入力生成信号とを夫々入力し、対応した２値出力信号を夫々送出する並列接続された学習済み２値３層ニューラルネットワーク６１、６２、６３と、並列接続された２値３層ニューラルネットワーク６１、６２、６３の各々の２値出力信号を同一の分類カテゴリに割り当てられた基本２値コード出力信号形式に夫々逆変換する出力逆変換処理部６４、６５、６６と、出力逆変換処理部６４、６５、６６の夫々から出力された基本２値コード出力信号間から最終的な１個の基本２値コード出力信号を選択送出する出力複合処理部６７とから構成される。
【００７３】
ここで、３並列接続された学習済み２値３層ニューラルネットワーク６１、６２、６３の夫々の学習では、入力端子７５からの学習入力データと、これを基に付加入力生成処理部５０により生成した付加入力生成データとを合わせて、夫々の入力層に入力する。更に、この学習入力データに対応した分類カテゴリ割り当て配置を表す基本２値コード出力信号に対して、互いに異なった２値コード出力信号形式に変換された変換２値教師信号を夫々用いて、２値３層ニューラルネットワーク６１、６２、６３の夫々の学習を行い、収束した重み係数を設定する。即ち、同一の分類カテゴリに対して夫々異なった２値教師信号を割り当て、夫々学習させている。
【００７４】
以下に動作について説明する。入力端子７５からの入力信号は、付加入力生成処理部５０にて生成された付加入力生成信号と合わせて、並列接続された夫々の学習済み２値３層ニューラルネットワーク６１、６２、６３の入力層に入力される。それらに対応した夫々の２値出力信号が出力逆変換処理部６４、６５、６６に夫々入力され、出力逆変換処理部６４、６５、６６にて同一分類カテゴリ割り当て配置を表す基本２値コード出力信号に夫々逆変換され送出される。出力複合処理部６７では、逆変換され得られた３個の基本２値コード出力信号に対して、例えば、出力複合方式として、多数決選択(Majority Voting)を用いて、即ち、多数決ルールに従って（但し、これらが全て不一致の場合には予め決められた出力逆変換処理部からの基本２値出力信号を選択）、１個の基本２値コード出力信号を選択し出力端子７６から最終的な２値出力信号として送出する。
【００７５】
ここで、出力複合方式として、特願２０００−５７２６３（特開２００１−２４３２１０）に示すように、学習入力データに対する中間層２値出力信号を基準に、入力端子７５の入力信号に対する中間層２値出力信号とのハミング距離や正規化ハミング距離を基に、並列２値３層ニューラルネットワークの基本２値コード出力信号間の最終的な選択しても良い。
ここで、図４の付加入力生成機能を有する３並列複合２値３層ニューラルネットワーク６０の実行処理フローを図５に示す。並列接続されている個々の２値３層ニューラルネットワークに対する基本的な処理は、図３の付加入力生成機能を有する２値３層ニューラルネットワークの実行処理フローと同様である。
【００７６】
また、並列接続された各２値３層ニューラルネットワークは、図４と同様に、予め学習した重み係数が設定されているものとする。即ち、図２に示す２値３層ニューラルネットワークの学習処理フローと同様に、３並列接続される各２値３層ニューラルネットワークの学習では、学習入力データと、これを基に付加入力生成処理４５２により生成した付加入力生成データとを合わせ学習用入力データとして、夫々の２値３層ニューラルネットワークの入力層に入力する。更に、この学習入力データに対応した分類カテゴリ割り当て配置を表す基本２値コード出力信号に対して、互いに異なった２値コード出力信号形式に変換された変換２値教師信号を夫々用いて、各２値３層ニューラルネットワークの夫々の学習を行い、収束した重み係数を夫々の並列接続された２値３層ニューラルネットワークに設定する。このように、同一の分類カテゴリに対して夫々異なった２値教師信号を割り当て、各２値３層ニューラルネットワークを予め学習させている。
【００７７】
ここで、図５の実行処理の処理フローを説明する。
初期設定処理４５０では、並列接続された３層ニューラルネットワークの入力層ユニット数、中間層ユニット数及び出力層ユニット数、及びシグモイド関数、付加入力生成Ｒビットの数などの構成パラメータと、学習済み重み係数や並列番号などを夫々設定する。
入力信号入力処理４５１では、Ｎビットの入力信号を付加入力生成処理４５２と並列２値３層ニューラルネットワーク処理４５３に於ける各２値３層ニューラルネットワーク入力層のＮ個のユニットに夫々入力設定する。
付加入力生成処理４５２では、付加入力生成処理４０２と同様であり、Ｎビットの入力信号からＲビットの乱数２値パターンを付加入力生成信号として生成し、並列２値３層ニューラルネットワーク処理４５３に於ける各２値３層ニューラルネットワーク入力層のＲ個のユニットに夫々入力設定する。
【００７８】
並列２値３層ニューラルネットワーク処理４５３では、前記のＮビットの入力信号と前記のＲビットの付加入力生成信号とを合わせ、指定された並列番号の２値３層ニューラルネットワークの入力層の入力とし、出力層から２値出力信号を得る。並列出力逆変換処理４５４では、その２値出力信号を元の基本２値コード出力信号に逆変換し、出力複合処理４５６に設定する。
全並列処理終了判定処理４５５では、並列２値３層ニューラルネットワーク処理４５３と出力逆変換処理４５４とを介して全ての基本２値コード出力信号が得られると、出力合成処理４５６に進む。
【００７９】
一方、得られていない場合は、並列番号ｋ←ｋ＋１処理４５８を介して次の並列番号の２値３層ニューラルネットワークを指定して、並列２値３層ニューラルネットワーク処理４５３に戻り、同様に前記の入力信号とその付加入力生成信号とを入力として２値出力信号を得、更に並列出力逆変換処理４５４で基本２値コード出力信号を得る。即ち、並列２値３層ニューラルネットワーク処理４５３とその並列出力逆変換処理４５４を介して並列出力される全ての基本２値コード出力信号が得られるまで、順次上記の処理を繰り返す。
出力複合処理４５６では、全ての基本２値コード出力信号が得られると、例えば多数決ルールなどにより、一つの基本２値コード出力信号を最終的に２値出力信号として選択出力する。
【００８０】
ここで、図４の付加入力生成処理機能を有する並列複合ニューラルネットワーク６０では、並列接続の２値３層ニューラルネットワーク６１、６２、６３に対して、同一の付加入力生成処理部５０を用いて生成した付加入力生成信号を夫々入力しているが、図６に示す付加入力生成処理機能を有する並列複合２値３層ニューラルネットワーク７０において、入力端子７５の入力信号と、それを基に夫々並列接続毎に異なった生成方法からなる付加入力生成処理部５３、５４、５５から得られた付加入力生成信号とを夫々対応した２値３層ニュ−ラルネットワーク６１、６２、６３に入力させてもよい。
【００８１】
尚、ここでの学習済み２値３層ニューラルネットワーク６１、６２、６３は、入力端子７５からの学習入力データと、これに対してそれぞれ異なった生成方法を持つ付加入力生成処理部５３、５４、５５を介して得られた付加入力生成データとを夫々対応した２値３層ニューラルネットワーク６１、６２、６３に対して入力して学習させ、収束し得られた重み係数を夫々設定する。
次に、図６の付加入力生成処理機能を有する並列複合２値３層ニューラルネットワーク７０の実行処理フローを図７に示す。ここでも、並列接続された各２値３層ニューラルネットワークは、図５と同様に、予め学習した重み係数が設定されているものとする。即ち、３並列接続される各２値３層ニューラルネットワークの学習では、学習入力データと、これを基に夫々並列番号毎に異なった生成方法を持った並列付加入力生成処理４５７により生成した付加入力生成データとを合わせ学習用入力データとして、指定された２値３層ニューラルネットワークの入力層に入力する。
【００８２】
更に、この学習入力データに対応した分類カテゴリ割り当て配置を表す基本２値コード出力信号に対して、互いに異なった２値コード出力信号形式に変換された変換２値教師信号を夫々用いて、各２値３層ニューラルネットワークの夫々の学習を行い、収束した重み係数を並列接続された個々の２値３層ニューラルネットワークに設定する。
並列付加入力生成処理４５７では、並列番号毎に生成方法が異なる付加入力生成処理を実行する。従って、入力信号入力処理４５１の基に入力された入力信号に対して、並列番号順に従って付加入力生成処理を実施し、生成された付加入力生成信号を並列２値３層ニューラルネットワーク処理４５３に入力設定する。その他の各処理は図５と同様であるので処理の説明は省略する。
【００８３】
図８、１２、１３の付加入力生成処理機能を有する並列複合ニューラルネットワーク８０、８１、８２では、図４及び６の付加入力生成処理機能を有する並列複合ニューラルネットワーク６０、７０に於いて、並列接続の２値３層ニューラルネットワーク６１、６２、６３に対して共通の分類カテゴリ割り当て配置に対して異なる２値コードの２値教師信号を用いて学習させた重み係数を設定した２値３層ニューラルネットワークを用いているが、ここでの３並列接続された３層ニューラルネットワーク６１、６２、６３は、分類カテゴリ割り当て配置を表す共通の基本２値コードの２値教師信号を用いる。また、入力端子７５からの学習入力データと、それを基に付加入力生成処理部５０を介して生成した付加入力生成データとを合わせて、例えば、互いに異なるハッシュ関数などによる入力変換処理部６９、７０、７１に夫々入力し変換した、夫々異なる学習用入力データを用いて、夫々の学習を行っている。
【００８４】
ここで、図８の実行処理に於ける動作を説明する。入力端子７５からの入力信号と、これを基に付加入力生成処理部５０を介して生成された付加入力生成信号とを夫々の入力変換処理部６８、６９、７１に共通に入力する。夫々異なる入力変換処理部６８、６９、７１からの変換２値出力信号を夫々対応した２値３層ニューラルネットワーク６１，６２、６３に入力し、２値出力信号を得る。更に、これらを出力複合処理部６７に入力し、多数決選択などの出力複合方法に従って、最も正解に近いと考えられる一つの２値出力信号を選択し、最終的に出力する。
また、図１０に於いては、入力端子７５からの入力信号と、これを基に各々異なる生成方法を持った付加入力生成処理部５３、５４、５５を介して生成された夫々異なる付加入力生成信号とを入力変換処理部６８、６９、７１へ入力している。ここで、付加入力生成処理部５３、５４、５５が夫々異なる生成方法を有していることから、入力変換処理部６８、６９、７１では、同じ入力変換則を準備してもよい。
【００８５】
更に、図１２では、入力端子７５の入力信号を夫々異なった入力変換則を持った入力変換処理部７２、７３、７４を介して得た夫々の２値出力信号と、それらを基に付加入力生成処理部５３、５４、５５を介して生成された夫々の付加入力生成信号とを合わせて２値３層ニューラルネットワーク６１、６２、６３に入力している。これらの動作は、基本的に図８の動作とほぼ同様であることから説明は省略する。
ここで、これらの付加入力生成機能を有した並列複合２値３層ニューラルネットワーク８０、８１、８２の実行処理フローを図９、１１、１３に夫々示す。
図９では、入力信号入力処理４５１と付加入力生成処理４５２とにより、入力信号及び付加入力生成信号が夫々並列入力変換処理４６０に入力設定される。並列番号順に従って、これらの入力信号及び付加入力生成信号からなる同一の新たな入力信号に対して、夫々異なった入力変換則によって変換２値入力信号に変換され、対応した並列２値３層ニューラルネットワーク処理４５３に入力設定され、対応した２値出力信号が得られる。出力複合処理４５６に於いて、これらの２値出力信号から最も正解に近いと思われる一つの２値出力信号を選択送出する。
【００８６】
ここで、他の同一番号を持った各処理は、夫々前記の処理と同様であることから省略する。
尚、並列２値３層ニューラルネットワーク処理４５３の夫々の２値３層ニューラルネットワークは、図８と同様に、分類カテゴリ割り当て配置を表す共通の基本２値コードの２値教師信号を用いる。また、学習入力データと、それを基に付加入力生成処理４５２を介して生成した付加入力生成データとを合わせて、並列入力変換処理４６０に夫々入力し変換した、夫々異なる学習用入力データを用いて、学習を行っている。
【００８７】
次に、図１０に対応した処理フローを図１１に示す。
図９に於いて、入力信号入力処理４５１と付加入力生成処理４５２とを介して、入力信号とそれを基に生成した付加入力生成信号とからなる同一の新たな入力信号を並列入力変換処理４６０に夫々入力設定したが、図１１では、入力信号入力処理４５１と並列付加入力生成処理４６１とを夫々介して、入力信号とそれを基に夫々並列番号（並列接続）毎に異なる付加入力生成方法により生成した付加入力生成信号とからなる、相異なる新たな入力信号を並列入力変換処理４６０に夫々入力設定する。ここでの入力変換処理では、同一の入力変換則でも、或いは夫々異なる入力変換則を用いても良い。その他の処理番号の処理は、上記と同じ処理番号の処理と同様であり、説明は省略する。
【００８８】
尚、並列２値３層ニューラルネットワーク処理４５３の各２値３層ニューラルネットワークの学習では、入力信号入力処理４５１と並列付加入力生成処理４６１とを夫々介して、学習入力データとそれを基に夫々並列接続毎に異なる付加入力生成方法により生成した付加入力生成データとからなる、相異なる新たな入力データを並列入力変換処理４６０に夫々入力し、得られた出力データを学習用入力データとして、学習し、得られた重み係数を設定する。
また、図１２に対応した処理フローを図１３に示す。入力信号入力処理４５１により入力設定された入力信号に対して、並列入力変換処理４６０を介して並列番号順に対応した夫々の変換入力信号を得、並列２値３層ニューラルネットワーク処理４５３及び並列付加入力生成処理４６１に夫々入力設定する。ここでの並列付加入力生成処理４６１では、並列入力変換処理４６０での各並列接続される入力変換処理の入力変換則が夫々異なる場合には、同一或いは夫々異なる生成則の何れでもよい。一方、入力変換則が同一の場合には、夫々異なる生成則を用いる。
【００８９】
尚、並列２値３層ニューラルネットワーク処理４５３の各２値３層ニューラルネットワークの学習では、学習入力データに対して、並列入力変換処理４６０を介して夫々得た変換学習入力データと、それを基に並列付加入力生成処理４６１を夫々介して夫々並列接続毎に異なる付加入力生成方法により生成した付加入力生成データとを合わせて、学習用入力データとして、学習し、得られた重み係数を設定する。
【００９０】
上記の第１の実施形態に於ける付加入力生成処理機能を有する２値３層ニューラルネットワークでは、お互いに非常に距離が小さく、然も密な学習入力データに対しても、付加入力生成データと合わせてハミング距離を拡大し、然も粗な学習用入力データとすることから、高速且つ全正解出力の学習収束が得られ、夫々対応したカテゴリに正しく分類される。更に、これらの学習済み２値３層ニューラルネットワークを組込んで実行処理を行う第２の実施形態の出力逆変換処理を伴う付加入力生成処理機能を有する並列複合２値３層ニューラルネットワーク６０、７０では、単一の２値３層ニューラルネットワークより汎化能力が格段に優れていることからも、非常に実用的に高い能力を有しており幅広い応用が可能である。
【００９１】
更に、後述する第３の実施形態の相互連想記憶装置に於ける、前進２値３層ニューラルネットワーク２３や後進２値３層ニューラルネットワーク２６の代わりに用いることにより、アトラクタ吸引力は格段に改善され、学習入力データから大きく距離が離れた前進連想入力信号に対しても学習アトラクタにアトラクタ収束させることができ、アトラクタ発散状態は殆ど発生せず、然も正しい学習アトラクタを送出する非常に特性の優れた相互連想記憶装置も実現できる。
【００９２】
一方、第２の実施形態に於ける、入力変換処理を伴う付加入力生成機能を有する並列複合２値３層ニューラルネットワーク８０、８１、８２では、入力変換処理部６８，６９、７１、７２、７３、７４により、入力信号間のお互いのハミング距離が一段と拡大されることから、学習も更に高速に収束し、汎化能力を必要としない非常に複雑な１対１のマッピングも簡単に実現でき、処理遅延が一定の種々の高度な真理値表を持った論理システムが自由に設計できる。
【００９３】
次に、本発明の第３の実施形態として、学習済みの付加入力生成処理機能を有する２値３層ニューラルネットワークを用いた相互連想記憶装置の１実施例を図１４に示す。尚、本発明は、３層ニューラルネットワークに限るものではなく、4層以上の多層ニューラルネットワークなどの教師信号を用いて学習するニューラルネットワークであればよい。
【００９４】
付加入力生成処理機能を有する２値３層ニューラルネットワークを用いた相互連想記憶装置は、前進連想入力信号Ｘ（０）と後進２値３層ニューラルネットワーク２６からの２値出力信号との何れかを切替選択し送出する入力切替えスイッチ２１と、入力切替スイッチ２１からの２値入力信号に対して２値出力信号を送出する前進２値３層ニューラルネットワーク２３と、該２値出力信号に対して後進付加入力生成信号を生成し送出する後進付加入力生成処理部５１と、該２値出力信号と該後進付加入力生成信号とを合わせた２値入力信号に対応した２値出力信号を送出する後進２値３層ニューラルネットワーク２６と、記憶された該２値出力信号を用いてアトラクタ収束状態を識別し、アトラクタ収束識別信号を送出し、更に、連想ループ処理要求信号或いは連想ループ完了信号を送出するアトラクタ収束状態識別処理部２９と、入力切替スイッチ２１の切替設定制御を行うとともに、アトラクタ収束状態識別処理部２９の初期設定を行い、更に連想ループ処理の開始及び終了を制御する連想ループ制御処理部２８とから構成される。
【００９５】
以下に、これらの連想ループ処理の動作を説明する。尚、連想ループ処理に先だって、学習アトラクタである学習入力データと、その分類カテゴリに割り当てられた２値コードとしての２値教師信号とを用いて前進２値３層ニューラルネットワーク２３を全正解出力となるよう予め学習収束させ、その学習済み重み係数を設定する。更に、前進２値３層ニューラルネットワーク２３の２値教師信号と、該２値教師信号を後進付加入力生成処理部５１に入力し生成された後進付加入力生成データとを合わせて学習用後進入力データとし、更に前記学習入力データを２値教師信号として、後進２値３層ニューラルネットワーク２６を全正解出力となるよう予め学習収束させ、その学習済み重み係数を設定する。
【００９６】
後進付加入力生成処理部５１は、本発明の第１の実施形態での付加入力生成処理部５０と同様な処理により、お互いのハミング距離が小さく、密な入力信号に対しても、互いのハミング距離が大きい後進付加入力生成信号を夫々生成する。従って、これらを合わせた学習用後進入力データはお互いにハミング距離を拡大し、より粗なデータ集合とすることができる。
特に、分類カテゴリに対応した２値教師信号のビット数が多い大規模な前進２値３層ニューラルネットワークを持った、或いは記憶容量が非常に大きい相互連想メモリに於いて、前進２値３層ニューラルネットワーク２３の該２値教師信号は、互いのハミング距離が非常に小さく然も密な昇順２値コードから構成されており、これを従来のように後進２値３層ニューラルネットワーク２６の学習用後進入力データとし、直接学習させて際、各カテゴリに正しく分類させる為の学習が非常に困難となり、収束しない場合や、収束の為には、数千回以上の非常に多くの学習回数を必要として実用的でない。
【００９７】
本発明のように、該２値教師信号とそれを基に生成した後進付加入力生成データとを合わせ、お互いのハミング距離を離し、然も粗の２値コードからなる学習用後進入力データとして学習させると非常に高速に学習収束させることができる。このような学習用後進入力データに対して学習させた重み係数が後進２値３層ニューラルネットワーク２６に設定される。
【００９８】
ここで、入力端子２０を介して入力された前進連想入力信号Ｘ（０）に対する動作を説明する。連想ループ制御処理部２８に於いて、連想ループ回数ｑ＝０を初期設定し、連想ループ制御信号を送出し、入力切替スイッチ２１の設定及びアトラクタ収束状態識別処理部２９の初期設定を行う。入力端子２０に前進連想入力信号Ｘ（０）が入力されると、連想ループ制御処理部２８により、入力切替スイッチ２１は、入力端子２０と入力端子２２とを接続する。更に前進連想入力信号Ｘ（０）がアトラクタ収束状態識別処理部２９に入力記憶されるよう設定制御され、連想ループ処理が開始される。
【００９９】
入力端子２０の雑音を多く含む画像データや一部の情報からなる画像データ、或いは、メモリ高速検索データとしての前進連想入力信号Ｘ（０）が入力切替スイッチ２１を介して、学習済み前進２値３層ニューラルネットワーク２３に入力されるとともに、アトラクタ収束状態識別処理部２９へ入力され記憶される。
連想ループ回数q＝０の場合に、前進連想入力信号Ｘ（０）に対応して、前進２値３層ニューラルネットワーク２３から２値出力信号Ｙ（０）、更に後進２値３層ニューラルネットワーク２６から２値出力信号Ｘ（１）が得られる。
【０１００】
連想ループ回数ｑ（但し、ｑ≧１）の場合には、連想ループ制御処理部２８からの制御信号の基に、入力切替スイッチ２１を介して入力端子２２に後進２値３層ニューラルネットワーク２６の２値出力信号Ｘ（ｑ）が入力され、更に前進２値３層ニューラルネットワーク２３から２値出力信号Ｙ（ｑ）が出力端子２４に送出される。更に入力端子２５を介して入力されると、後進付加入力生成処理部５１から生成された後進付加入力生成信号と合わせて、後進２値３層ニューラルネットワーク２６へ入力する。この入力に対応した２値出力信号Ｘ（ｑ＋１）が出力端子２７に得られる。
【０１０１】
アトラクタ収束状態識別の為に、Ｘ（ｑ）及びＸ（ｑ＋１）がアトラクタ収束状態識別処理部１４に夫々入力記憶され、Ｘ（ｑ）とＸ（ｑ＋１）との一致比較を行う。一致（Ｘ（ｑ）＝Ｘ（ｑ＋１））しておれば、アトラクタ収束状態と識別し、アトラクタ収束識別信号として、アトラクタ収束状態信号を出力端子３０から送出すると共に、連想ループ制御処理部２８へアトラクタ収束信号を送出する。また、この時、出力端子２７から学習アトラクタである２値出力信号Ｘ（ｑ＋１）がアトラクタ出力信号として送出される。更に、出力端子４０からその時の分類カテゴリ出力信号として前進２値３層ニューラルネットワーク２３の２値出力信号Ｙ（ｑ）が送出される。
【０１０２】
一方、不一致（Ｘ（ｑ）≠Ｘ（ｑ＋１））でアトラクタ未収束状態ならば、出力端子３０にアトラクタ未収束状態信号を、また連想ループ制御処理２８へ連想ループ処理要求信号を夫々送出する。
前進２値３層ニューラルネットワーク２３を密な２値コードを持った多くのビット数からなる２値教師信号を用いて学習させ、然も後進２値３層ニューラルネットワーク２６も完全に全正解２値出力となるよう迅速に学習収束させた重み係数を設定して動作させるころにより、スプリアス・アトラクタと呼ばれる偽のアトラクタに引き込まれることを無くすことができ、非常に安定した大規模な相互連想メモリを実現することができる。
【０１０３】
また、前進２値３層ニューラルネットワーク２３に於いて、従来方式で用いられている粗コード出力型である、何れか１つの出力層のユニットのみ１となり、他は全て０であるOne out of Ｍ(a winner takes all)の出力形式を用いた場合にも、後進付加入力生成処理部５１を付加することにより、後進２値３層ニューラルネットワーク２６の学習収束速度を一段と速めることができる。しかしながら、この場合には、前進及び後進２値３層ニューラルネットワーク２３、２６とも規模が非常に大きくなるとともに、スプリアス・アトラクタが多く発生する。
【０１０４】
次に、本発明の第３の実施形態に於ける図１４に示す相互連想記憶処理に関して、前進連想入力信号Ｘ（０）の連想ループ処理フローを図１５に示す。尚、ここでは、前進２値３層ニューラルネットワーク処理１４０及び後進２値３層ニューラルネットワーク処理１６０の夫々の２値３層ニューラルネットワークは、図１４と同様に既に夫々学習が完了していることを前提として処理フローを説明する。
【０１０５】
前進連想初期設定処理１００は、連想ループ回数判定処理１９０に於ける連想ループ処理最大許容回数Ｑ、及びアトラクタ収束状態識別処理１７０への前進連想入力信号の為のアトラクア収束状態識別条件設定など、初期パラメータ設定を行う。
連想ループ処理初期設定処理１１０は、連想ループ回数ｑの初期設定として、ｑ＝０の設定を行う。
前進連想入力信号入力設定処理１２０は、アトラクタ収束状態識別処理１７０の初期設定として、前進連想入力信号Ｘ（０）の格納記憶を行う。また、前進連想入力信号Ｘ（０）を学習済み前進２値３層ニューラルネットワーク処理１４０へ入力設定を行う。
【０１０６】
前進２値３層ニューラルネットワーク処理１４０は、連想ループ回数ｑ＝０で、入力された前進連想入力信号Ｘ（０）、或いは、連想ループ回数ｑの場合には、後進２値３層ニューラルネットワーク出力信号入力設定処理２１０を介して入力設定された２値出力信号Ｘ（ｑ）を処理し、２値出力信号Ｙ（０）、或いはＹ（ｑ）を夫々得、後進付加入力生成処理１５０と後進２値３層ニューラルネットワーク処理１６０に入力設定する。
後進付加入力生成処理１５０は、前進２値３層ニューラルネットワーク処理１４０の２値出力信号Ｙ（ｑ）を基に後進付加入力生成信号を生成し、後進２値３層ニューラルネットワーク処理１６０に入力設定する。
【０１０７】
後進２値３層ニューラルネットワーク処理１６０では、前進２値３層ニューラルネットワーク処理１４０の２値出力信号と後進付加入力生成処理１５０で生成された後進付加入力生成信号とを合わせて、学習済み後進２値３層ニューラルネットワークの入力層に各々入力し、その２値出力信号Ｘ（ｑ＋１）を夫々得る。
アトラクタ収束状態識別処理１７０では、後進２値３層ニューラルネットワーク処理１６０からの２値出力信号Ｘ（ｑ）とＸ（ｑ＋１）間で夫々比較し、一致するとアトラクタ収束状態と識別する。不一致の場合は、アトラクア未収束状態とする。
【０１０８】
アトラクタ収束状態判定処理１８０では、アトラクタ未収束状態であれば、連想ループ回数判定処理１９０に進む。アトラクタ収束状態であれば、前進連想入力信号Ｘ（０）に対する連想ループ処理を終了させ、最終前進連想入力信号判定処理２２０へ進む。
連想ループ回数判定処理１９０では、アトラクタ未収束状態であることから、連想ループ回数ｑが連想ループ最大許容回数Ｑ未満であれば、引き続き連想ループ処理を実行する為に、連想ループ回数ｑ←ｑ＋１設定処理２００へ進む。
【０１０９】
一方、連想ループ回数判定処理１９０に於いて、アトラクタ収束状態判定処理１８０にてアトラクタ収束状態が得られず、連想ループ回数ｑ≧Ｑならば、指定された最大連想ループ回数Ｑの連想ループ処理を介して、アトラクタに収束せず、前進連想入力信号Ｘ（０）がアトラクタ発散状態で不想起となったとし、連想ループ処理を終了して、最終前進連想入力信号判定処理２２０へ進む。
連想ループ回数ｑ←ｑ＋１設定処理２００では、連想ループ回数ｑを１増加させる。
【０１１０】
後進２値３層ニューラルネットワーク出力信号入力設定処理２１０では、Ｘ（ｑ＋１）を前進２値３層ニューラルネットワークの入力として設定する。その後、前回の連想ループ回数ｑの場合と同様に、前進２値３層ニューラルネットワーク処理１４０、後進付加入力生成処理１５０、後進２値３層ニューラルネットワーク処理１６０、アトラクタ収束状態識別処理１７０及びアトラクタ収束状態判定処理１８０を順次実施する。
最終前進連想入力信号判定処理２２０では、連想ループ処理を行った前進連想入力信号Ｘ（０）が最終前進連想入力信号Ｘ（０）であるかの判定を行う。最終前進連想入力信号Ｘ（０）であれば、一連の連想ループ処理を完了する。でなければ、連想ループ処理初期設定処理１１０を行い、新たな前進連想入力信号Ｘ（０）に対して連想ループ処理を引き続き行う。
【０１１１】
上記の第３の実施形態は、入力端子２０の前進連想入力信号Ｘ（０）を入力切替スイッチ２１を介して入力する前進２値３層ニューラルネットワーク２３と、後進付加入力生成処理５１を有する後進２値３層ニューラルネットワーク２６とを用いて連想ループ処理を行う相互連想メモリに関するものであるが、学習入力データが互いのハミング距離が小さく、密で非常に複雑な場合には、前進２値３層ニューラルネットワーク２３に於いても、学習が困難となる場合がある。
【０１１２】
従って、ここでは、第４の実施形態として、この解決策としての付加入力生成処理機能を有する前進及び後進２値３層ニューラルネットワーク２３、２６を用いた相互連想記憶装置の場合について明らかにする。また、前進連想入力信号Ｘ（０）以外に後進連想入力信号Ｙ（０）に対する相互連想記憶装置としての対応ができる構成を図１６に示す。即ち、入力端子２０からの前進連想入力信号Ｘ（０）を入力切替スイッチ２１を介して、或いは入力端子４１からの後進連想入力信号Ｙ（０）を入力切替スイッチ４２を介して入力し、夫々連想ループ処理を行う連想連想記憶装置の１実施例である。
【０１１３】
ここでは、第３の実施形態での構成に対して、新たに後進連想入力信号Ｙ（０）の入力に対する入力切替スイッチ４２と、前進連想入力信号Ｘ（０）或いは後進連想入力信号Ｙ（０）のアトラクタ収束状態識別処理部４５への初期設定の為の入力切替スイッチ４３と、前進２値３層ニューラルネットワーク２３の為の前進付加入力生成処理部５２とが付け加えられている。その他は、同様な構成となっている。
【０１１４】
ここで、これらの動作について簡単に説明する。尚、連想ループ処理に先だって、学習アトラクタとしての学習入力データと、これを基に前進付加入力生成処理部５２を介して生成された前進付加入力生成データとを合わせた学習用前進入力データと、分類カテゴリに割り当てられた２値教師信号とを用いて、前進２値３層ニューラルネットワーク２３を予め学習させる。
【０１１５】
更に、前進２値３層ニューラルネットワーク２３の２値教師信号と、これを基に後進付加入力生成処理部５１を介して生成された後進付加入力生成データとを合わせた学習用後進入力データと、前記学習入力データからなる２値教師信号とを用いて、後進２値３層ニューラルネットワーク２６を予め学習させる。
前進付加入力生成処理部５２は、本発明の第１及び第３の実施形態での後進付加入力生成処理部５０、５１と同様の処理により、互いのハミング距離が小さく、密な入力信号に対しても、ハミング距離が大きい付加入力生成信号を生成し、学習用前進入力データの互いのハミング距離を拡大し、粗な２値データとする。
【０１１６】
このように、前進及び後進２値３層ニューラルネットワーク２３、２６を夫々付加入力生成処理部５２，５１を介して得た付加入力生成データをも学習に用いることから、何れの学習収束速度も非常に速くなる。従って、どのようなハミング距離構造を持った前進及び後進連想入力信号Ｘ（０）、Ｙ（０）に対しても高性能な連想ループ処理を行うことができる。
【０１１７】
前進連想入力信号Ｘ（０）に対する連想ループ処理では、前進２値３層ニューラルネットワーク２３の２値出力信号が出力端子２４を介して入力端子２５に常に入力されるよう、入力切替スイッチ４２を設定する。また、入力切替スイッチ４３は、アトラクタ収束状態識別処理部４５の初期条件として、入力端子２０の前進連想入力信号Ｘ（０）を格納するよう設定する。
【０１１８】
更に、入力切替スイッチ２１は、連想ループ回数ｑ＝０において、入力端子２０からの前進連想入力信号Ｘ（０）を入力端子２２に入力し、前進付加入力生成処理部５２にて生成された前進付加入力生成信号と合わせて、前進２値３層ニューラルネットワーク２３に入力するよう設定する。その後の連想ループ回数ｑ＞０では、出力端子２７と入力端子２２とを接続し、後進２値３層ニューラルネットワーク２６の２値出力信号が入力されるよう設定する。これらの入力切替スイッチ２１、４２、４３は、連想ループ制御処理部４４の制御の基に設定される。
アトラクタ収束状態識別処理部４５は、第３の実施形態と同様に、連想ループ制御処理部４４の制御のもとに、後進２値３層ニューラルネットワーク２６の２値出力信号関係、Ｘ（ｑ）とＸ（ｑ＋１）との一致比較を行い、アトラクタ収束状態識別を行うよう設定される。
【０１１９】
上記のように、入力端子２２の入力信号に対して、前進付加入力生成処理５２に於いて前進付加入力生成信号を生成し、入力端子２２からの該入力信号と合わせて前進２値３層ニューラルネットワーク２３の入力層に入力すること以外は第３の実施形態と基本的同じ動作であり、説明は省略する。
一方、後進連想入力信号Ｙ（０）に対する連想ループ処理では、前進２値３層ニューラルネットワーク２３の２値出力信号と同一の形式を持った分類カテゴリを示す２値コードからなる後進連想入力信号Ｙ（０）が入力端子４１から入力される。曖昧な分類カテゴリを示す後進連想入力信号Ｙ（０）に対して、連想ループ処理を介して分類カテゴリ出力信号としての２値出力信号Ｙ（ｑ）を出力端子４０から、またその学習アトラクタであるアトラクタ出力信号Ｘ（ｑ＋１）を出力端子２７から夫々取り出すことができる。また、分類カテゴリを示す２値教師信号に対応した後進連想入力信号Ｙ（０）が入力されると、学習アトラクタであるアトラクタ出力信号Ｘ（１）を出力端子２７から読み出すことができる。
【０１２０】
後進連想入力信号Ｙ（０）の連想ループ処理を行うには、後進連想入力信号Ｙ（０）を入力端子４１に入力し、後進２値３層ニューラルネットワーク２６の２値出力信号が常に入力端子２２を介して前進付加入力生成処理部５２と前進２値３層ニューラルネットワーク２３に夫々入力されるよう、入力切替スイッチ２１を設定する。また、入力切替スイッチ４３は、アトラクタ収束状態識別処理部４５の初期条件として、入力端子４１の後進連想入力信号Ｙ（０）を格納するよう設定される。
【０１２１】
更に、入力切替スイッチ４２は、連想ループ回数ｑ＝０において、入力端子４１からの後進連想入力信号Ｙ（０）を、入力端子２５を介して後進付加入力生成処理部５１と後進２値３層ニューラルネットワーク２６とに入力するよう設定される。その後の連想ループ回数ｑ＞０では、出力端子２４と入力端子２５とを接続し、前進２値３層ニューラルネットワーク２３の２値出力信号が常に入力されるよう設定する。
アトラクタ収束状態識別処理部４５に於いては、後進２値３層ニューラルネットワーク２６の出力関係として、Ｙ（ｑ）とＹ（ｑ＋１）の一致・不一致状態からアトラクタ収束状態識別をする。他の動作は、前進連想入力信号Ｘ（０）の連想ループ処理の場合と同様であり、説明は省略する。
【０１２２】
次に、第４の実施形態に於ける前進連想入力信号Ｘ（０）の連想ループ処理を図１７に示す。ここでは、第３の実施形態に関する、図１５の前進連想入力信号Ｘ（０）の連想ループ処理フローと異なり、前進２値３層ニューラルネットワーク処理１４０の前に前進付加入力生成処理１３０が新たに挿入されている。従って、前進連想入力信号入力設定処理２３０に於いて、前進連想入力信号Ｘ（０）を前進付加入力生成処理１３０、前進２値３層ニューラルネットワーク処理１４０及びアトラクタ収束状態識別処理１７０に夫々入力設定する。
【０１２３】
また、後進２値３層ニューラルネットワーク出力信号入力設定処理２４０に於いて、後進２値３層ニューラルネットワークの２値出力信号を前進付加入力生成処理１３０及び前進２値３層ニューラルネットワーク処理１４０に入力設定する。更に、前進付加入力生成処理１３０にて、入力された前進連想入力信号或いは後進２値３層ニューラルネットワークの２値出力信号から生成された前進付加入力生成信号を前進２値３層ニューラルネットワーク処理１４０へ入力設定する。これらの処理以外は図１５の前進連想入力信号に対する後進付加入力生成処理機能を有する相互連想ループ処理フローと同様であることから説明は省略する。
次に、第４の実施形態に於ける後進連想入力信号Y(0)の連想ループ処理フローを図１８に示す。尚、ここで、図１５及び１８に於いて、同一の処理番号は、同様の処理であり、説明は省略する。
【０１２４】
後進連想初期設定処理３００では、連想ループ回数判定処理１９０に於ける連想ループ処理最大許容回数Ｑ、及びアトラクタ収束状態識別処理３２０への後進連想入力信号Ｙ（０）の為のアトラクア収束状態識別条件設定など、初期パラメータ設定を行う。
後進連想入力信号入力設定処理３１０にて、後進連想入力信号Ｙ（０）を後進付加入力生成処理１５０、後進２値３層ニューラルネットワーク処理１６０及びアトラクタ収束状態識別処理３２０へ夫々入力設定する。
【０１２５】
その後、後進付加入力生成処理１５０にて、後進連想入力信号Ｙ（０）、或いは前進２値３層ニューラルネットワークからの２値出力信号を基に生成した後進付加入力生成信号を後進２値３層ニューラルネットワーク処理１６０に入力設定する。後進２値３層ニューラルネットワーク処理１６０で後進２値３層ニューラルネットワークの２値出力信号を得、前進付加入力生成処理１３０及び前進２値３層ニューラルネットワーク処理１４０に夫々入力設定する。更に、前進付加入力生成処理１３０では、後進２値３層ニューラルネットワークの２値出力信号を基に生成した前進付加入力生成信号を前進２値３層ニューラルネットワーク処理１４０に入力設定する。
【０１２６】
前進２値３層ニューラルネットワーク処理１４０では、後進２値３層ニューラルネットワーク処理１６０からの２値出力信号と前進付加入力生成処理１３０からの前進付加入力生成信号とを合わせて入力層に入力し、２値出力信号を得る。アトラクタ収束状態識別処理３２０では、前進２値３層ニューラルネットワーク１４０の２値出力信号Ｙ（ｑ）及びＹ（ｑ＋１）の一致比較によりアトラクタ収束状態の識別を行う。
アトラクタ収束状態判定処理１８０では、識別結果に従ってアトラクタ収束状態の判定を実施する。アトラクタ未収束状態の場合に、連想ループ回数判定処理１９０に進む。また、アトラクタ収束状態の場合には、最終後進連想入力信号判定処理３４０に進む。
【０１２７】
連想ループ回数判定処理１９０にて、連想ループ回数の判定を行い、連想ループ回数ｑ≧Ｑであると、連想ループ処理を終了し、アトラクタ発散状態とし最終後進連想入力信号判定処理３４０へ進む。
一方、連想ループ回数Ｑ＞ｑ≧１であると、連想ループ回数ｑ←ｑ＋１設定処理２００を介して、前進２値３層ニューラルネットワーク出力信号入力設定処理３３０に於いて、前進２値３層ニューラルネットワークの２値出力信号を後進付加入力生成処理１５０及び後進２値３層ニューラルネットワーク処理１６０に入力設定する。
【０１２８】
最終後進連想入力信号判定処理３４０では、連想ループ処理を行った後進連想入力信号Ｙ（０）が最終後進連想入力信号であるかの判定を行う。最終後進連想入力信号であれば、一連の連想ループ処理を完了する。でなければ、連想ループ処理初期設定処理１１０を行い、新たな後進連想入力信号Ｙ（０）に対して連想ループ処理を引き続き行う。
【０１２９】
上記の第３及び第４の実施形態に於ける付加入力生成処理機能を有する２値３層ニューラルネットワークから構成された相互連想記憶装置では、記憶量に対応した前進２値３層ニューラルネットワーク２３の学習入力データである学習アトラクタの数が非常に多い場合、即ち相互連想記憶の所要記憶量が非常に大きい場合にも、２値３層ニューラルネットワークの中間層ユニット数を増やすことで、学習を迅速且つ確実に正しく収束させることができ、記憶容量を従来方式の自己連想メモリより飛躍的に増加させられ、大規模な相互連想記憶を実現することが可能である。
【０１３０】
また、従来の自己連想記憶装置では、記憶容量の制限から記憶できる学習アトラクタとして、代表的なものに限られ、然も互いに余り相関のない学習アトラクタであることの制限があったが、本実施形態の相互連想記憶装置では、この代表的な学習アトラクタ以外に、それらに似た大きな相関を持った複雑な入力データも学習アトラクタとして多く記憶でき、然も非常に複雑な前進連想入力信号や後進連想入力信号に対しても学習アトラクタに確実に収束させることができる。
【０１３１】
本発明の夫々の実施形態では、３層ニューラルネットワークを用いた場合について説明したが、３層以上の多層ニューラルネットワークでも良い。更に、多層ニューラルネットワークに限ることなく、教師信号を利用して学習させたニューラルネットワークでもよい。
また、本発明の付加入力生成機能を有する相互連想記憶装置では、前進２値３層ニューラルネットワーク２３の２値教師信号として、密な分散型２値出力形式を用い、連続した通し番号の分類カテゴリ番号から変換された２値教師信号が割当られていることから、連想ループ処理に於ける汎化学習アトラクタへの収束能力が従来方式よりも非常に高く、スプリアス・アトラクタも非常に発生しにくい。
【０１３２】
更に、図４及び図６に示す汎化特性に非常に優れた並列複合２値３層ニューラルネットワークを前進２値３層ニューラルネットワーク２３の代わりに用いることにより、一段と優れた相互連想メモリを実現することもできる。
また、特願２００４−２３６４６６に示すように、図１４及び図１６のアトラクタ収束状態識別処理部２９を高機能なアトラクタ識別／学習非学習入力データ識別処理部で置換え、前進２値３層ニューラルネットワークからの２値出力信号Ｙ（ｑ）の学習内外カテゴリの識別を基に、前進連想入力信号Ｘ（０）が、学習入力データそのものであるか、或いは非学習入力データであるかを、連想ループ回数ｑ＝１の連想ループ処理で識別してもよい。
【０１３３】
更に、連想ループ回数ｑ＝１での学習アトラクタの識別や、連想ループ処理を繰り返す事により収束した汎化学習アトラクタ、或いは有意な情報を持っていないOne-Shotスプリアス・アトラクタ、或いは汎化スプリアス・アトラクタなどを識別するアトラクタ識別を行ってもよい。これにより、アトラクタ出力信号や分類カテゴリ出力信号を利用する応用処理システムでの誤動作を防ぐことや、誤動作警報を応用処理システムに送出することもできる。
【０１３４】
以上述べたように、従来では、お互いの距離が近い、大規模な分類カテゴリを持った学習入力データを多層ニューラルネットワークに迅速且つ確実に学習させることができない。また、従来の自己連想メモリでは、そのデータ記憶容量即ち分類カテゴリ数が非常に少なく、実用的な連想メモリを実現することができない。
【０１３５】
更に、従来の相互連想メモリ装置では、前進２値３層ニューラルネットワークの密な２値コードからなる２値教師信号を学習用入力データとして、各カテゴリに分類するために後進２値３層ニューラルネットワークを学習させる必要があるが、２値教師信号間の互いのハミング距離も小さいことから、これらの学習用入力データに対する全正解２値出力信号となる収束状態が迅速に得られないか或いは収束しない場合が多い。
収束が達成されない場合には、後進２値３層ニューラルネットワークから正しい学習アトラクタが得られず、大規模相互連想記憶装置を実現できない。
また、収束状態を達成する為の学習回数が数千回と非常に多い場合、新たな分類カテゴリを登録し、記憶容量を増やすことが迅速に実現できず、実用的でない。
更に、前進２値３層ニューラルネットワークに於いても、学習入力データ間の互いのハミング距離が小さい場合には、同様に収束状態を達成する為の学習回数が非常に多く実用的でない。
【０１３６】
これに対して、本発明の付加入力生成処理機能を有する２値多層ニューラルネットワークや並列複合２値多層ニューラルネットワークは、上記の説明の如く、互いのハミング距離が非常に小さく、密で大規模な学習入力データに対しても中間層ユニット数を然程大きくする必要もなく、各カテゴリに正しく分類するための学習を迅速且つ確実に収束させることができ、然も汎化能力も優れた学習特性を実現できる。従って、リアルタイムで分類カテゴリの追加による記憶容量増加のための学習を行う大規模分類カテゴリを持った各種パターン認識や処理遅延が一定の大規模真理値を持ったＬＳＩなどへの種々の実用的な応用に合わせた自由な設計が可能である。
【０１３７】
更に、これらの付加入力生成機能を持った２値多層ニューラルネットワークを用いた相互連想メモリ装置では、前進及び後進２値多層ニューラルネットワークに於いて、中間層ユニット数を必要以上に大きくすることもなく、また、前進２値３層ニューラルネットワークに於いて密な２値コードからなる２値教師信号を用いることができることから、アトラクタ吸引力が優れ、スプリアス・アトラクタの発生を防ぎ、非常に多量の学習アトラクタを正しく記憶できる大規模記憶容量を持った相互連想記憶が実現される。
【０１３８】
上記の幅広い効果から、本発明の付加入力生成処理機能を有する２値多層ニューラルネットワークや並列複合２値多層ニューラルネットワーク、更に、これらを用いた大容量記憶能力を持った相互連想記憶装置は、セキュリティ管理システムや不正アクセス検出などのセキュリティシステムへの応用、バイオメトリクスに於ける各種高機能なパターン認識や多くの雑音などにより劣化した大容量の画像データなどの認識への応用、高速データ検索などへの応用、更にはネットワーク障害状態の異常状態検出などネットワーク障害検出システムへの応用などが可能である。また、処理遅延が一定の大規模真理値表に基いた２値論理を搭載するＬＳＩなどにも幅広く適用できる特徴を有している。
【図面の簡単な説明】
【０１３９】
【図１】本発明の第１の実施形態に於ける、付加入力生成処理機能を有する２値３層ニューラルネットワークの学習装置の１構成例である。
【図２】本発明の第１の実施形態における、付加入力生成処理機能を有する２値３層ニューラルネットワークの学習装置の学習処理フロー例である。
【図３】本発明の第１の実施形態に於ける、付加入力生成処理機能を有する２値３層ニューラルネットワークの実行処理フロー例である。
【図４】本発明の第２の実施形態に於ける、付加入力生成処理機能を有する並列複合ニューラルネットワークの１構成例である。
【図５】本発明の第２の実施形態に於ける、付加入力生成処理機能を有する並列複合ニューラルネットワークの第１の構成例の処理フロー例である。
【図６】本発明の第２の実施形態に於ける、付加入力生成処理機能を有する並列複合ニューラルネットワークの第２の構成例である。
【図７】本発明の第２の実施形態に於ける、付加入力生成処理機能を有する並列複合ニューラルネットワークの第２の構成例の処理フロー例である。
【図８】本発明の第２の実施形態に於ける、付加入力生成処理機能を有する並列複合ニューラルネットワークの第３の構成例である。
【図９】本発明の第２の実施形態に於ける、付加入力生成処理機能を有する並列複合ニューラルネットワークの第３の構成例の処理フロー例である。
【図１０】本発明の第２の実施形態に於ける、付加入力生成処理機能を有する並列複合ニューラルネットワークの第４の構成例である。
【図１１】本発明の第２の実施形態に於ける、付加入力生成処理機能を有する並列複合ニューラルネットワークの第４の構成例の処理フロー例である。
【図１２】本発明の第２の実施形態に於ける、付加入力生成処理機能を有する並列複合ニューラルネットワークの第５の構成例である。
【図１３】本発明の第２に実施形態に於ける、付加入力生成処理機能を有する並列複合ニューラルネットワークの第５の構成例の処理フロー例である。
【図１４】本発明の第３の実施形態に於ける、後進付加入力生成処理機能を有する２値３層ニューラルネットワークを用いた前進連想入力信号用相互連想記憶装置の１構成例である。
【図１５】本発明の第３の実施形態に於ける、後進付加入力生成処理機能を有する相互連想記憶装置の連想ループ処理フロー図である。
【図１６】本発明の第４の実施形態に於ける、付加入力生成処理機能を有する前進及び後進２値３層ニューラルネットワークを用いた相互連想記憶装置の１構成例である。
【図１７】本発明の第４の実施形態に於ける、前進連想入力信号に対する前進及び後進付加入力生成処理機能を有する相互連想記憶装置の連想ループ処理フロー図である。
【図１８】本発明の第４の実施形態に於ける、後進連想入力信号に対する前進及び後進付加入力生成処理機能を有する相互連想記憶装置の連想ループ処理フロー図である。
【図１９】従来方式に於ける２値３層ニューラルネットワークの学習装置の１構成例である。
【図２０】従来方式に於ける２値３層ニューラルネットワークを用いた相互連想メモリ装置の１構成例である。
【符号の説明】
【０１４０】
１   ３層ニューラルネットワーク
２   入力信号入力端子
２1  入力ユニット端子
２2  入力ユニット端子
２N  入力ユニット端子
３  ２値出力端子
３1  ２値出力ユニット端子
３2  ２値出力ユニット端子
３M  ２値出力ユニット端子
４  入力層
４１  入力層ユニット
４２  入力層ユニット
４Ｎ  入力層ユニット
４Ｎ+R-1  入力層ユニット
４Ｎ+R  入力層ユニット
５  中間層
５1  中間層ユニット
５2  中間層ユニット
５P  中間層ユニット
６  出力層
６1  出力層ユニット
６2  出力層ユニット
６M  出力層ユニット
７  重み係数更新制御処理部
８  ２値教師信号入力端子
８1  ２値教師信号入力ユニット端子
８2  ２値教師信号入力ユニット端子
８M  ２値教師信号入力ユニット端子
９  減算処理部
９1  減算処理部
９2  減算処理部
９M  減算処理部
１０  スレショルド処理部
１０1１  スレショルド処理部
１０1２  スレショルド処理部
１０１Ｍ  スレショルド処理部
１０２１  スレショルド処理部
１０２２  スレショルド処理部
１０２Ｍ  スレショルド処理部
１１  重み係数情報入出力端子
１２  正解不正解出力判定処理部
１３  学習収束判定処理部
２０  前進連想入力信号の入力端子
２１  入力切替スイッチ
２２  前進２値３層ニューラルネットワークの入力端子
２３  前進２値３層ニューラルネットワーク
２４  前進２値３層ニューラルネットワークの出力端子
２５  後進ニューラルネットワークの入力端子
２６  後進２値３層ニューラルネットワーク
２７  アトラクタ出力信号の出力端子
２８  連想ループ制御処理部
２９  アトラクタ収束状態識別処理部
３０  アトラクタ収束識別信号の出力端子
４０  分類カテゴリ出力信号の出力端子
４１  後進連想入力信号の入力端子
４２  入力切替スイッチ
４３  入力切替スイッチ
４４  連想ループ制御処理部
４５  アトラクタ収束状態識別処理部
５０  付加入力生成処理部
５１  後進付加入力生成処理部
５２  前進付加入力生成処理部
５３  付加入力生成処理部
５４  付加入力生成処理部
５５  付加入力生成処理部
６０  付加入力生成処理機能を有する並列複合ニューラルネットワーク
６１  ２値３層ニューラルネットワーク
６２  ２値３層ニューラルネットワーク
６３  ２値３層ニューラルネットワーク
６４  出力逆変換処理部
６５  出力逆変換処理部
６６  出力逆変換処理部
６７  出力複合処理部
６８  入力変換処理部
６９  入力変換処理部
７０  付加入力生成処理機能を有する並列複合ニューラルネットワーク
７１  入力変換処理部
７２  入力変換処理部
７３  入力変換処理部
７４  入力変換処理部
７５  入力端子
７６  出力端子
８０  付加入力生成処理機能を有する並列複合ニューラルネットワーク
８１  付加入力生成処理機能を有する並列複合ニューラルネットワーク
８２  付加入力生成処理機能を有する並列複合ニューラルネットワーク
１００  前進連想初期設定処理
１１０  連想ループ処理初期設定処理
１２０  前進連想入力信号入力設定処理
１３０  前進付加入力生成処理
１４０  前進２値３層ニューラルネットワーク処理
１５０  後進付加入力生成処理
１６０  後進２値３層ニューラルネットワーク処理
１７０  アトラクタ収束状態識別処理
１８０  アトラクタ収束状態判定処理
１９０  連想ループ回数判定処理
２００  連想ループ回数ｑ←ｑ＋１設定処理
２１０  後進２値３層ニューラルネットワーク出力信号入力設定処理
２２０  最終前進連想入力信号判定処理
２３０  前進連想入力信号入力設定処理
２４０  後進２値３層ニューラルネットワーク出力信号入力設定処理
３００  後進連想初期設定処理
３１０  後進連想入力信号入力設定処理
３２０  アトラクタ収束状態識別処理
３３０  前進２値３層ニューラルネットワーク出力信号入力設定処理
３４０  最終後進連想入力信号判定処理
４００  学習初期設定処理
４０１  学習入力データ入力処理
４０２  付加入力生成処理
４０３  ３層ニューラルネットワーク処理
４０４  誤差信号算出処理
４０５  更新重み係数算出処理
４０６  全学習入力データ処理終了判定処理
４０７  ニューラルネットワーク更新重み係数設定処理
４０８  全学習入力データ２値３層ニューラルネットワーク実行処理
４０９  全出力正解不正解判定処理
４１０  学習収束判定処理
４１１  学習回数判定処理
４１２  学習回数ｉ←ｉ＋１処理
４１３  学習データ番号ｊ←ｊ＋１処理
４２０  初期設定処理
４２１  入力信号入力処理
４２２  付加入力生成処理
４２３  ２値３層ニューラルネットワーク処理
４５０  初期設定処理
４５１  入力信号入力処理
４５２  付加入力生成処理
４５３  並列２値３層ニュ−ラルネットワーク処理
４５４  並列出力逆変換処理
４５５  全並列処理終了判定処理
４５６  出力複合処理
４５７  並列付加入力生成処理
４５８  並列番号ｋ←ｋ＋１処理
４６０  並列入力変換処理
４６１  並列付加入力生成処理
【図１】
2006127350.tif 000003
【図２】
2006127350.tif 000004
【図３】
2006127350.tif 000005
【図４】
2006127350.tif 000006
【図５】
2006127350.tif 000007
【図６】
2006127350.tif 000008
【図７】
2006127350.tif 000009
【図８】
2006127350.tif 000010
【図９】
2006127350.tif 000011
【図１０】
2006127350.tif 000012
【図１１】
2006127350.tif 000013
【図１２】
2006127350.tif 000014
【図１３】
2006127350.tif 000015
【図１４】
2006127350.tif 000016
【図１５】
2006127350.tif 000017
【図１６】
2006127350.tif 000018
【図１７】
2006127350.tif 000019
【図１８】
2006127350.tif 000020
【図１９】
2006127350.tif 000021
【図２０】
2006127350.tif 000022