(57)【要約】      （修正有）【課題】従来のニューラルネットワークを用いた連想記憶装置では、記憶量の大容量化と連想特性の高性能化が困難であった。【解決手段】分類カテゴリに対応したプロトタイプとその教師信号とからなる初期学習データを学習させた初期学習の後、プロトタイプの近傍テスト入力データとその教師信号とからなるプロトタイプの近傍テストデータを用いてテストし、プロトタイプの近傍テストデータが全て正解となるまで、プロトタイプと不正解出力となったプロトタイプの近傍テストデータとの追加学習を繰り返し、得られた重み係数を設定した連想用ニューラルネットワークと、前記追加学習したプロトタイプ及び前記不正解出力を発生させたプロトタイプの近傍テスト入力データとをリング傾斜配置した学習データを学習し得られた重み係数を設定したリングメモリ用ニューラルネットワークと、アトラクタ収束検出手段、アトラクタ識別手段及び連想入力識別手段、とを有する。【選択図】図１
2006285489.tif 000002
【特許請求の範囲】
【請求項１】
自己連想用学習済みニューラルネットワーク手段１と、該自己連想用学習済みニューラルネットワーク手段１の学習入力データからなるリング傾斜配置した学習データを学習したリングメモリ用学習済みニューラルネットワーク手段５と、該自己連想用学習済みニューラルネットワーク手段１に入力された連想入力信号に対するアトラクタ収束状態を検出するアトラクタ収束検出手段２と、該リングメモリ用学習済みニューラルネットワーク手段５に記憶されている該学習入力データを順次読み出し、少なくとも該自己連想用学習済みニューラルネットワーク手段１から出力されたアトラクタに収束したアトラクタ出力信号との一致比較により、スプリアス・アトラクタか学習アトラクタかのアトラクタ識別をするアトラクタ識別手段６とを少なくとも有することを特徴とした自己連想記憶装置。
【請求項２】
相互連想用前進学習済みニューラルネットワーク手段２５と、該前進学習済みニューラルネットワーク手段２５からの入力信号に対する出力信号を該前進学習済みニューラルネットワーク手段２５にフィードバック入力すると共にアトラクタ収束状態のアトラクタ出力信号を送出する、該前進学習済みニューラルネットワーク手段２５の学習データである学習入力データと教師信号とを逆配置した学習データに対して学習した後進学習済みニューラルネットワーク手段３１と、該前進学習済みニューラルネットワーク手段２５の該学習入力データをリング傾斜配置した学習データを学習したリングメモリ用学習済みニューラルネットワーク手段５と、該前進学習済みニューラルネットワーク手段２５に入力された連想入力信号に対するアトラクタ収束状態を検出するアトラクタ収束検出手段２と、該リングメモリ用学習済みニューラルネットワーク手段５に記憶されている該学習入力データを順次読み出し、少なくとも前記後進学習済みニューラルネットワーク手段３１から出力されたアトラクタに収束したアトラクタ出力信号と一致比較することにより、該アトラクタ出力信号の学習アトラクタかスプリアス・アトラクタかのアトラクタ識別をするアトラクタ識別手段６とを少なくとも有することを特徴とした相互連想記憶装置。
【請求項３】
相互連想用前進学習済みニューラルネットワーク手段２５と、該前進学習済みニューラルネットワーク手段２５からの入力信号に対する出力信号を該前進学習済みニューラルネットワーク手段２５にフィードバック入力すると共にアトラクタ収束状態のアトラクタ出力信号を送出する、該前進追習済みニューラルネットワーク手段２５の学習データである学習入力データと教師信号とを逆配置した学習データに対して学習した後進学習済みニューラルネットワーク手段３１と、該前進学習済みニューラルネットワーク手段２５の該学習入力データをリング傾斜配置した学習データを学習したリングメモリ用学習済みニューラルネットワーク手段５と、該前進学習済みニューラルネットワーク手段２５に入力された連想入力信号に対するアトラクタ収束状態を検出し、更に該前進学習済みニューラルネットワーク手段２５の出力信号を用いて、該後進学習済みニューラルネットワーク手段３１から出力されたアトラクタに収束したアトラクタ出力信号の学習アトラクタかスプリアス・アトラクタかのアトラクタ識別をするアトラクタ検出識別手段２６と、該後進学習済みニューラルネットワーク手段３１から出力されたアトラクタ出力信号を基に、該リングメモリ用学習済みニューラルネットワーク手段５から順次読み出された該学習入力データと該アトラクタ出力信号との一致比較を少なくとも行ない、該リングメモリ用学習済みニューラルネットワーク手段５からの該学習入力データの読み出しを制御するアトラクタ一致検出手段２９とを少なくとも有することを特徴とした相互連想記憶装置。
【請求項４】
請求項１、２及び請求項３の連想記憶装置に於いて、前記リングメモリ用学習済みニューラルネットワーク手段５からの前記学習入力データと前記連想入力信号との一致比較を少なくとも行ない、該連想入力信号の学習・非学習入力データ識別を行う連想入力識別手段９を有することを特徴とした連想記憶装置。
【請求項５】
請求項１、２、３、及び請求項４の連想記憶装置に於いて、前記リングメモリ用学習済みニューラルネットワーク手段５から前記学習入力データを順次読み出し、記憶する学習入力データ記憶手段８を有することを特徴とした連想記憶装置。
【請求項６】
自己連想用学習済みニューラルネットワーク処理１３０と、該自己連想用学習済みニューラルネットワーク処理１３０の学習入力データからなるリング傾斜配置した学習データを学習したリングメモリ用学習済みニューラルネットワーク処理１９０と、該自己連想用学習済みニューラルネットワーク処理１３０に入力された連想入力信号に対するアトラクタ収束状態を検出するアトラクタ収束検出処理１４０と、該リングメモリ用学習ニューラルネットワーク処理１９０に記憶されている該学習入力データを順次読み出し、少なくとも該自己連想用学習済みニューラルネットワーク処理１３０から出力されたアトラクタに収束したアトラクタ出力信号との一致比較により、学習アトラクタかスプリアス・アトラクタかのアトラクタ識別をするアトラクタ識別処理２６０とを少なくとも有することを特徴とした自己連想記憶ソフトウェア。
【請求項７】
相互連想用前進学習済みニューラルネットワーク処理４３０と、該前進学習済みニューラルネットワーク処理４３０からの入力信号に対する出力信号を該前進学習済みニューラルネットワーク４３０にフィードバック入力すると共にアトラクタ収束状態のアトラクタ出力信号を送出する、該前進学習済みニューラルネットワーク処理４３０の学習データである学習入力データと教師信号とを逆配置した学習データに対して学習した後進学習済みニューラルネットワーク処理６１０と、該前進学習済みニューラルネットワーク処理４３０の該学習入力データをリング傾斜配置した学習データを学習したリングメモリ用ニューラルネットワーク処理４９０と、該前進学習済みニューラルネットワーク処理４３０に入力された連想入力信号に対するアトラクタ収束状態を検出するアトラクタ収束検出処理４４０と、該リングメモリ用学習済みニューラルネットワーク処理４９０に記憶されている該学習入力データを順次読み出し、少なくとも該後進学習済みニューラルネットワーク処理６１０から出力されたアトラクタに収束したアトラクタ出力信号と一致比較することにより、該アトラクタ出力信号の学習アトラクタかスプリアス・アトラクタかのアトラクタ識別をするアトラクタ識別処理５６０とを少なくとも有することを特徴とした相互連想記憶ソフトウェア。
【請求項８】
相互連想用前進学習済みニューラルネットワーク処理７３０と、該前進学習学習ニューラルネットワーク処理７３０からの入力信号に対する出力信号を該前進学習済みニューラルネットワーク処理７３０にフィードバック入力すると共にアトラクタ収束状態のアトラクタ出力信号を送出する、該前進学習済みニューラルネットワーク処理７３０の学習データである学習入力データと教師信号とを逆配置した学習データに対して学習した後進学習済みニューラルネットワーク処理６１０と、該前進学習済みニューラルネットワーク処理７３０の該学習入力データをリング傾斜配置した学習データを学習したリングメモリ用学習済みニューラルネットワーク処理４９０と、該前進学習済みニューラルネットワーク処理７３０に入力された連想入力信号に対するアトラクタ収束状態を検出し、更に該前進学習済みニューラルネットワーク処理７３０の出力信号を用いて、該後進学習済みニューラルネットワーク処理６１０から出力されたアトラクタに収束したアトラクタ出力信号の学習アトラクタかスプリアス・アトラクタかのアトラクタ識別をするアトラクタ識別処理７４０と、該後進学習済みニューラルネットワーク処理６１０から送出されたアトラクタ出力信号を基に、該リングメモリ用学習済みニューラルネットワーク処理４９０から順次読み出された該学習入力データと該アトラクタ出力信号との一致検出を少なくとも行ない、該リングメモリ用学習済みニューラルネットワーク処理４９０からの該学習入力データの読み出しを制御するアトラクタ出力ー学習入力データ一致状態判定処理５２０とを少なくとも有することを特徴とした相互連想記憶ソフトウェア。
【請求項９】
請求項６、７及び請求項８の連想記憶ソフトウェアに於いて、前記リングメモリ用学習済みニューラルネットワーク処理７３０からの前記学習入力データと前記連想入力信号との一致比較を少なくとも行ない、該連想入力信号の学習・非学習入力データ識別を行う連想入力識別処理５９０、２９０を有することを特徴とした連想記憶ソフトウェア。
【請求項１０】
請求項６、７、８、及び請求項９の連想記憶ソフトウェアに於いて、前記リングメモリ用学習済みニューラルネットワーク処理１９０、４９０から前記学習入力データを順次読み出し、記憶する学習入力データ記憶処理２００、５００とを有することを特徴とした連想記憶ソフトウェア。
【請求項１１】
請求項１から請求項５の前記連想用学習済みニューラルネットワーク手段１、２５に於いて、分類カテゴリに対応したプロトタイプとその教師信号とからなる予め準備された初期学習データをニューラルネットワークに学習させた初期学習の後、プロトタイプの近傍テスト入力データとその教師信号とからなる予め準備されたプロトタイプの近傍テストデータを用いてテストし、不正解出力となるプロトタイプの近傍テスト入力データを追加学習入力データとしプロトタイプと共に追加学習を行ない、準備されたプロトタイプの近傍テスト入力データに対して全て正解出力となるまでプロトタイプの近傍テストデータ追加学習処理を繰り返し、得られた重み係数を設定した連想用学習済みニューラルネットワーク手段１、２５を用いることを特徴とした連想記憶装置。
【請求項１２】
請求項６から請求項１０の前記連想用学習済みニューラルネットワーク処理１３０、４３０として、分類カテゴリに対応したプロトタイプとその教師信号とからなる予め準備された初期学習データをニューラルネットワークに学習させた初期学習の後、プロトタイプの近傍テスト入力データとその教師信号とからなる予め準備されたプロトタイプの近傍テストデータを用いてテストし、不正解出力となるプロトタイプの近傍テスト入力データを追加学習入力データとしプロトタイプと共に追加学習を行ない、準備されたプロトタイプの近傍テスト入力データに対して全て正解出力となるまでプロトタイプの近傍テストデータ追加学習処理を繰り返し、得られた重み係数を設定した連想用学習済みニューラルネットワーク処理１３０、４３０，７３０を用いることを特徴とした連想記憶ソフトウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、劣化画像の雑音除去や復元機能も持った画像認識、種々のパターン認識や、不正アクセス防止などのセキュリティシステム、或いは更に高速メモリ検索などに適用可能な多層ニューラルネットワークを用いた相互連想（Hetero-Associative）記憶装置に関するものである。
【背景技術】
【０００２】
ニューラルネットワークを用いた連想メモリの種類としては、自己連想メモリと相互（ヘテロ）連想メモリとがある。文献、Hopfield,J.J., Proc. Nationl. Acad. Sci. USA, 79,pp.2554-2558, 1982や、Associative Neural Memories Theory and Implementation Edited by Mohamad H. Hassoun OXFORD University Press 1993などに詳細が記載されている。
【０００３】
図３は、従来技術としての一つのニューラルネットワークを用いた自己連想メモリの１構成例である。入力層と出力層だけから構成された２層ニューラルネットワークや３層ニューラルネットワーク（一つの中間層を持つ砂時計ニューラルネットワーク）、或いはホップフィールドネットワークとして知られる相互結合ネットワーク型のニューラルネットワークなどが用いられている。これらは自己連想ニューラルネットワークの出力信号が直接入力にフィードバックされる構成となっている。
【０００４】
図３の従来技術による自己連想メモリとして、自己連想用ニューラルネットワーク３３の２層ニューラルネットワーク（中間層を持たない）を用いた場合について、これらの動作を簡単に説明する。
先ず、最初に連想ループ制御処理部３５からの制御のもとに、入力端子１１からの連想入力信号が、入力切替スイッチ４及び入力端子１２を介して自己連想用ニューラルネットワーク３３に入力されるとともに、アトラクタ収束検出処理部３４に入力記憶される。自己連想用ニューラルネットワーク３３としての学習済み２層ニューラルネットワークの出力信号が出力端子１３に得られると、これを、連想ループ制御処理部３５の制御の基に、入力切替スイッチ４を介して該自己連想用ニューラルネットワーク３３の入力端子１２にフィードバックする。この為、入力層ユニット数と出力層ユニット数は同一の構成となっている。  従って、学習入力データ（学習アトラクタ）と教師信号が同一で、これらを事前に学習させている。ここで、２層ニューラルネットワークを用いた学習では、多くの場合、重み係数は計算によって求められ設定される。
【０００５】
連想ループ制御処理部３５により、自己連想用ニューラルネットワーク３３からの出力信号を入力切替スイッチ４と入力端子１２を介して自己連想用ニューラルネットワーク３３へフィードバックし、再度、自己連想用ニューラルネットワーク３３から出力信号を得る。この一連のフィードバック処理を連想ループ処理と呼び、そのフィードバック回数を連想ループ回数jとする。
ここで、連想ループ回数jに於ける入力端子１２の自己連想用ニューラルネットワーク３３の入力層への入力信号をX(j)とし、自己連想用ニューラルネットワーク３３の出力信号をX(j+1)とし、連想ループ回数j+1の連想ループ処理に於いて、X(j+1)が入力端子１２へ再度フィードバックされる。
【０００６】
この連想ループ処理を繰り返し行った際に、前回の連想ループ処理との出力信号が同一となり、変化しなくなった状態、即ち、X(j)＝X(j+1)の状態をアトラクタ収束状態と呼び、また、その時の出力信号をアトラクタと呼び、アトラクタ出力信号として出力端子１３から得る。
収束し得られたアトラクタは、連想入力信号に最も近い特徴を持った学習入力データである学習アトラクタとなる場合と、スプリアス・アトラクタ（偽りのアトラクタ）となる場合とがある。スプリアス・アトラクタは、学習入力データではなく、殆どの場合は、多くの雑音を含んだデータから構成されており明確な特徴を持っていない。
【０００７】
このように、入力端子１１の連想入力信号X(0)を入力した後、アトラクタ収束状態になるまでの一連の動作を以下に説明する。先ず、連想ループ制御処理部３５からの連想ループ制御によって入力切替スイッチ４の初期設定（j=0時）を行ない、入力切替スイッチ４を介して入力端子１１と入力端子１２を接続する。また、アトラクタ収束検出処理部３４の内部状態をリセットし、入力端子１１の連想入力信号X(0)を入力記憶する。更に、連想入力信号X(0)が、入力切替スイッチ４を介して学習済み自己連想用ニューラルネットワーク３３に入力信号として入力される。自己連想用ニューラルネットワーク３３から出力信号X(1)が得られ、アトラクタ収束検出処理部３４に該出力信号X(1)がアトラクアに収束したかどうかを検出する為に入力記憶される。
【０００８】
更に、連想ループ制御処理部３５は、該出力信号X(1)をフィードバックし自己連想用ニューラルネットワーク３３に入力する為に、連想ループ回数j=1とし、入力切替スイッチ４を切り替え、出力信号X(1)を、入力端子１２を介して自己連想用ニューラルネットワーク３３にフィードバック入力し、新たな出力信号X(２)を得え、アトラクタ収束検出処理部３４に入力する。このような連想ループ処理を繰り返す。
ここで、X(0)が学習入力データ、即ち学習アトラクタであると、X(0)とその出力信号X(1)は等しくなり、直ちに平衡状態のアトラクタ収束状態となり、アトラクタ収束検出処理部３４にて検出される。
【０００９】
即ち、アトラクタ収束検出処理部３４では、X(j)とX(j+1)との一致検出を行う。但し、j≧0である。一致すると、アトラクタに収束したとして、アトラクタ収束信号を出力端子２０に送出すると共に、連想ループ制御処理部３５に連想ループ処理を停止するよう連想ループ処理完了信号を送出する。この時の自己連想用ニューラルネットワーク３３の出力信号がアトラクタ出力信号として出力端子１３に送出される。このアトラクタに収束した状態を想起状態と呼ぶ。
【００１０】
一致しない場合には、収束していないと見なし、連想ループ制御処理部３５に再度連想ループ処理を要求するために、連想ループ処理要求信号を送出する。
連想ループ制御処理部３５では、連想ループ処理要求信号を受信すると、予め指定された連想ループ最大回数J未満であれば、連想ループ回数j＝j+1として、連想ループ処理を再度実行するため、出力信号X(j+1)を、入力切替スイッチ４を介して入力端子１２へフィードバックする。一方、連想ループ処理完了信号を受信した場合、或いは連想ループ回数jが連想ループ最大回数Jとなると、連想ループ処理を完了する。
【００１１】
連想ループ回数ｊ=Jの状態で連想ループ処理を完了し、アトラクタ収束検出処理部３４はアトラクタ発散信号を出力端子２０に送出する。
この状態は、連想ループ回数jが指定された最大回数Jとなっても、アトラクタ収束検出処理部３４に於いて、X(J)とX(J+1)との一致状態が得られない状態を意味する。このアトラクタ発散識別状態は、不想起状態と呼ばれる。
【００１２】
連想ループ制御処理部３５では、入力端子１１に新たな連想入力信号X(0)が入力される度毎に入力切替スイッチ４及びアトラクタ収束検出処理部３４とを初期設定し、上記の一連の処理を新たな連想入力信号X(0)に対して繰り返す。
【００１３】
自己連想用ニューラルネットワーク３３は、重み係数が予め設定された学習済みニューラルネットワークであるが、その重み係数の学習処理では、入力端子１１の学習アトラクタとして与えられた学習入力データとその出力信号とが同一の学習アトラクタとなる関係の基で重み係数を計算により得、設定している。尚、この重み係数の求め方については、前記の文献に詳細が記載されている。
【００１４】
入力端子１１の連想入力信号が学習アトラクタとは異なり、これに似た連想入力信号の場合、複数回の連想ループ処理を介してアトラクタ収束状態に達し、想起される場合がある。例えば、雑音などを含む未知連想入力信号に対しても、連想ループ処理を繰り返すことにより、所望の学習アトラクタに収束し、想起が成功する場合もある。このような動作はフィルタ作用やコンテント・アドレッサブル・メモリとしての働きをする。
【００１５】
一方、アトラクタ収束検出処理部３４の出力端子２０からアトラクタ収束信号が送出されると同時に、出力端子１３に学習アトラクアとは異なるアトラクタ出力信号が送出され、スプリアス・アトラクタ（偽りアトラクタ）と呼ばれるアトラクタ収束状態に想起される場合がある。即ち、多くの雑音や歪みを含んだ連想入力信号に対して、アトラクタ収束状態となるが、通常の学習アトラクアタとは全く異なった有意な意味を殆ど持たないスプリアス・アトラクタがアトラクタ出力信号として送出される。このスプリアス・アトラクタに収束したアトラクタ出力信号を用いる応用システムでは、誤動作の原因となる。しかしながら、従来技術では、アトラクタ出力信号に対して、学習アトラクタかスプリアス・アトラクタかのアトラクタ識別を行っていない。
【００１６】
従来の自己連想用ニューラルネットワーク３３での正しい想起をできるだけ成功させ、然もスプリアス・アトラクタの発生を抑えるには、学習アトラクタとしての学習入力データは互いに相関を持たない直交関係を持つ必要がある。即ち、比較的似た連想入力信号を、学習入力データとして学習記憶させる重み係数を計算し求めて設定すると、学習アトラクタ間の干渉が発生し、スプリアス・アトラクタに収束する場合が増加するか、或いは想起されない無収束の発散状態になる場合が増える。
【００１７】
従って、自己連想用ニューラルネットワーク３３の最適な重み係数によって記憶されている学習入力データ数、即ち学習アトラクタ数に大幅な制限がある。また、学習入力データ数が増えると、自己連想用ニューラルネットワーク３３では、汎化能力が低く、連想ループ処理に於ける単独のフィードバック・ループによってのみアトラクタ収束を行わせることから、アトラクタに中々収束せず、アトラクタ発散状態になりやすく、然も、アトラクタに収束してもスプリアス・アトラクタになり易いなどの欠点がある。
【００１８】
上記のように、自己連想用ニューラルネットワーク３３を用いた自己連想メモリの最も大きな欠点は、取り得る重み係数への大きな制約による、記憶容量の少なさである。上記の文献によると、この記憶容量は、理論的に約0.12x入力層ユニット数で与えられる。
更に、互いに似た学習入力データを学習させると、互いの干渉からアトラクタ収束状態が得にくくなるなどの欠点もある。また、誤って想起されるアトラクタ収束状態でのスプリアス・アトラクタを少なくするためには、記憶容量が更に少なくなる。このように、学習入力データ数が理論的限界に近づくとアトラクタ収束が一段と困難となってくる。
【００１９】
一方、自己連想用ニューラルネットワーク３３として、２層ニューラルネットワークの代わりに、学習に於いて教師信号を用いた重み係数の適応更新により求めた重み係数を設定した３層ニューラルネットワーク（一つの中間層を持つ）を用いた場合には、上記の２層ニューラルネットワークと同様の動作を行ない、２層ニューラルネットワークより汎化能力が比較的高いことから、アトラクタに収束しやすく、また、重み係数による学習アトラクタの記憶容量も比較的大きい。汎化率を最大とする最適な中間層ユニット数は、入力層及び出力層のユニット数より一般的に小さく、砂時計型連想メモリと呼ばれる。中間層ユニット数を増やしても連想特性改善は図れない。
【００２０】
記憶容量は、２層ニューラルネットワークの場合より大きく、記憶する学習アトラクタ数が入力層ユニット数よりも比較的少なければ、高性能な連想特性を実現できる。しかしながら、入力層ユニット数よりも多くなると、汎化能力が急激に劣化することから、連想能力は低下し、認識率や、学習アトラクタへの収束速度の低下、更には、スプリアス・アトラクタへの収束や、アトラクタ発散状態が急激に増加するなどの欠点を持っている。
このような従来方式では、このスプリアス・アトラクタ出力信号は、記憶している全ての学習アトラクタと比較しない限り、学習アトラクタかスプリアス・アトラクタかの区別はできず、多くの処理量を要する。
【００２１】
この他の従来技術として、２つの従属接続されたニューラルネットワークを用いた相互（ヘテロ）連想メモリと呼ばれる方式がある。この方式は，図４のように、夫々教師信号を用い重み係数更新によって学習された前進ニューラルネットワーク３２及び後進ニューラルネットワーク３１から構成される。
【００２２】
前進ニューラルネットワーク３２の出力信号としては、何れか１つのユニットのみが１となり、他のR-1個のユニットは０となるRユニットの２値出力信号形式、即ち、One out of Rと（但し、Rは出力層出力ユニット数で、分類カテゴリ数に対応）呼ばれる粗い符号化コードを用いて学習させている。これは、ニューラルネットワークの学習入力データに対応した教師信号の分類カテゴリへの対応づけが簡単であることから、殆どの多層ニューラルネットワークの出力信号形式として採り入れられ、学習させている。
【００２３】
一方、後進ニューラルネットワーク３１では、前進ニューラルネットワーク３２の教師信号を学習入力データとして学習させる。また、後進ニューラルネットワーク３１の教師信号としては、入力切替スイッチ４を介して、前進ニューラルネットワーク３２にフィードバック入力する為に、入力端子１１からの前進連想入力信号X(0)と同一ユニット数の出力形式を持たせる必要があり、前進ニューラルネットワーク３２の学習入力データ、即ち学習アトラクタとする。
【００２４】
即ち、前進ニューラルネットワーク３２への学習入力データが、後進ニューラルネットワーク３１の出力信号として再現されるよう夫々の学習を行う。このようにして重み係数更新により学習された重み係数を、前進ニューラルネットワーク３２及び後進ニューラルネットワーク３１の重み係数として夫々設定する。
【００２５】
ここで、これらの動作を簡単に説明する。図４の入力切替スイッチ４、連想ループ制御処理部３５、アトラクタ収束検出処理部３４は、夫々図３のそれらと同一構成である。図３の場合と同様に、連想ループ制御処理部３５からの制御信号により入力切替スイッチ４は制御され、入力端子１１の前進連想入力信号X(0)が学習済みの前進ニューラルネットワーク３２の入力端子１２を介して入力されるよう接続を行う。また、前進連想入力信号X(0)をアトラクタ収束検出処理部３４に初期設定される。前進ニューラルネットワーク３２に於いて、前進連想入力信号X(0)に対応した出力信号Y(0)を出力端子１３から送出し、更に入力端子１７を介して学習済み後進ニューラルネットワーク３１に入力する。対応した出力信号X(2)は、連想ループ制御処理部３５の制御の基に、連想ループ処理として、入力切替スイッチ４を介して入力端子１２にフィードバックされると共に、アトラクタ収束検出処理部３４に入力記憶される。
【００２６】
アトラクタ収束検出処理部３４に於いては、連想ループ回数jの時、記憶されている後進ニューラルネットワーク３１の出力信号X(j)と、出力信号X(j+1)とが一致すると、アトラクタに収束したとみなし、アトラクタ収束信号を出力端子２０から送出し、出力端子１８から後進ニューラルネットワーク３１の出力信号がアトラクタ出力信号として送出される。連想ループ回数j=Jに於いても、アトラクタに収束しないアトラクタ発散状態では、アトラクタ発散信号が出力端子２０から送出される。
【００２７】
この従来の3層ニューラルネットワークによる相互連想メモリの構成では、必要なR個の学習アトラクタとしての学習入力データと教師信号とを前進ニューラルネットワーク３２に学習させることから、重み係数による記憶容量を大きくすることが出来き、然も汎化能力が2層ニューラルネットワークによる自己連想用ニューラルネットワーク３３より高く、前進ニューラルネットワーク３２及び後進ニューラルネットワーク３１を介した連想ループ処理を行うことから、アトラクタへの収束も速く、認識率もよい。
【００２８】
しかしながら、学習アトラクタとしての学習入力データ数Rが非常に多い場合、One out of Rの粗コード出力形式を用いた前進ニューラルネットワーク３２では、R個の出力層ユニット数が必要で、然も同一の入力層ユニット数を持った後進ニューラルネットワーク３１を準備する必要があり、ニューラルネットワーク規模が非常に大きくなる。従って、粗コード出力型前進ニューラルネットワーク３２及び後進ニューラルネットワーク３１の学習処理及び実行処理の演算量が膨大となる欠点を有している。
【００２９】
また、一般的に学習アトラクタ間の距離が互いに近い場合には、汎化率が比較的高いことから、アトラクタ収束速度も比較的速いが、R個のユニットの粗コードからなるスパース出力信号形式が用いられることから、スプリアス・アトラクタに収束する場合が非常に多くなる。
また、お互いの距離が離れた相関の小さい学習アトラクタを学習させた前進ニューラルネットワークを用いた相互連想メモリの場合には、汎化能力を高くできず、優れた連想特性が得られない欠点を持っている。
【００３０】
上記では、教師信号を用い学習する粗コード出力型前進ニューラルネットワーク３２について説明したが、密なコード出力型３層ニューラルネットワークを前進ニューラルネットワーク３２として用いてもよい。しかしながら、粗コード出力型３層ニューラルネットワークを用いた前進ニューラルネットワーク３２の場合の性能に比べて、スプリアス・アトラクタは発生しにくいものの、汎化特性が若干低く、誤った学習アトラクタに収束しやすく、認識率が低い。更に、性能が劣化するが自己組織化ネットワークを用いる場合もあるが、上記に述べた欠点を併せ持っている。
【００３１】
上記の説明の如く、２層ニューラルネットワークによる自己連想メモリでは、入出力ユニット数が同一で限定された構成であることから、学習入力データである学習アトラクタに収束するためには、重み係数に制約があり、多くの学習入力データを記憶することが出来ない欠点を持っている。例えば、２層ニューラルネットワークに於ける記憶できる理論的最大学習入力データ数は、0.12x入力層ユニット数であり、重み係数の記憶量が非常に少ない欠点を持っている。
【００３２】
また、３層ニューラルネットワークを用いた砂時計型自己連想メモリに於いて、記憶容量を増加させた場合、学習アトラクタ数が入力層ユニット数以上になると、汎化能力が急激に劣化し、然も粗い出力信号形式であることから、スプリアス・アトラクタ状態に収束する場合が非常に多く発生し、また、大きく雑音劣化した連想入力信号に対しては、アトラクタ収束状態に到達しないアトラクタ発散状態となる場合が非常に多いなどの欠点も有している。
【発明の開示】
【発明が解決しようとする課題】
【００３３】
上記の説明のごとく、従来の自己連想メモリや相互連想メモリは、実用的には多くの欠点を有している。２層及び３層ニューラルネットワークを用いた自己連想メモリの場合、重み係数が持つ記憶容量が小さく、多くの学習アトラクタを記憶できない。また、連想ループ処理に於いて、単独のフィードバック処理であることから、アトラクタに中々収束せず、アトラクタ発散状態になりやすく、然も、アトラクタに収束しても、所望の学習アトラクタではなく、スプリアス・アトラクタになり易いなどの欠点がある。
【００３４】
一方、従来の３層ニューラルネットワークによる相互連想メモリでは、記憶容量を大幅に増加させることができるが、粗コード出力型３層ニューラルネットワークによる前進ニューラルネットワーク３２を用いた場合、多くの学習アトラクタを記憶させる為には、前進ニューラルネットワーク３２の出力層ユニット数を非常に大きくしなければならず、前進及び後進ニューラルネットワーク３２，３１の規模が非常に大きくなり、当然のことながら演算量が膨大となるとともに、正しい学習も困難となる欠点を持っている。また、同様の構成理由からスプリアス・アトラクタに非常に収束し易い欠点も有している。
【００３５】
また、密なコード出力型３層ニューラルネットワークによる前進ニューラルネットワークを用いた相互連想メモリでは、粗コード形式３層ニューラルネットワークの場合よりも汎化能力が若干劣ることから、スプリアス・アトラクタは発生しにくいものの、認識率が若干劣る欠点を持っている。
更に、互いに距離が離れた相関の小さい学習アトラクタを多く学習した前進ニューラルネットワークでは、汎化能力が低くなることから、これを用いた相互連想メモリは、優れた連想能力を実現できない欠点を持っている。
また、従来の連想メモリでは、アトラクタ識別を行っておらず、アトラクタ出力信号を用いる応用システムでは誤動作の原因となる欠点も持っている。
上記のように、連想メモリとして種々の欠点を持っている。
【００３６】
本発明の目的は、上記の問題を解決し、従来のニューラルネットワークを用いた自己連想メモリや相互連想メモリなどに比べて、非常に大きな記憶容量を持たせることができると共に、スプリアス・アトラクタに落ち込むことも非常に少なく、また、アトラクタ発散状態も非常に少なく、認識率が非常に高い高性能な連想特性を持ち、更に、分類カテゴリ識別、アトラクタ識別と、連想入力信号が学習入力データであるか、非学習入力データかの連想入力識別と、収束したアトラクタ出力信号に対応した学習入力データ読み出しも可能で、種々の応用に適した非常に優れた連想記憶装置を提供することにある。
【課題を解決するための手段】
【００３７】
上記の問題点を解決するために、第１の手段として、自己連想用学習済みニューラルネットワーク手段１と、該自己連想用学習済みニューラルネットワーク手段１の学習入力データからなるリング傾斜配置した学習データを学習したリングメモリ用学習済みニューラルネットワーク手段５と、該自己連想用学習済みニューラルネットワーク手段１に入力された連想入力信号に対するアトラクタ収束状態を検出するアトラクタ収束検出手段２と、該リングメモリ用学習済みニューラルネットワーク手段５に記憶されている該学習入力データを順次読み出し、少なくとも該自己連想用学習済みニューラルネットワーク手段１から出力されたアトラクタに収束したアトラクタ出力信号との一致比較により、スプリアス・アトラクタか学習アトラクタかのアトラクタ識別をするアトラクタ識別手段６とを少なくとも有することを特徴とした自己連想記憶装置を構成する。
【００３８】
第２の手段として、相互連想用前進学習済みニューラルネットワーク手段２５と、該前進学習済みニューラルネットワーク手段２５からの入力信号に対する出力信号を該前進学習済みニューラルネットワーク手段２５にフィードバック入力すると共にアトラクタ収束状態のアトラクタ出力信号を送出する、該前進学習済みニューラルネットワーク手段２５の学習データである学習入力データと教師信号とを逆配置した学習データに対して学習した後進学習済みニューラルネットワーク手段３１と、該前進学習済みニューラルネットワーク手段２５の該学習入力データをリング傾斜配置した学習データを学習したリングメモリ用学習済みニューラルネットワーク手段５と、該前進学習済みニューラルネットワーク手段２５に入力された連想入力信号に対するアトラクタ収束状態を検出するアトラクタ収束検出手段２と、該リングメモリ用学習済みニューラルネットワーク手段５に記憶されている該学習入力データを順次読み出し、少なくとも前記後進学習済みニューラルネットワーク手段３１から出力されたアトラクタに収束したアトラクタ出力信号と一致比較することにより、該アトラクタ出力信号の学習アトラクタかスプリアス・アトラクタかのアトラクタ識別をするアトラクタ識別手段６とを少なくとも有することを特徴とした相互連想記憶装置を構成する。
【００３９】
第３の手段として、相互連想用前進学習済みニューラルネットワーク手段２５と、該前進学習済みニューラルネットワーク手段２５からの入力信号に対する出力信号を該前進学習済みニューラルネットワーク手段２５にフィードバック入力すると共にアトラクタ収束状態のアトラクタ出力信号を送出する、該前進追習済みニューラルネットワーク手段２５の学習データである学習入力データと教師信号とを逆配置した学習データに対して学習した後進学習済みニューラルネットワーク手段３１と、該前進学習済みニューラルネットワーク手段２５の該学習入力データをリング傾斜配置した学習データを学習したリングメモリ用学習済みニューラルネットワーク手段５と、該前進学習済みニューラルネットワーク手段２５に入力された連想入力信号に対するアトラクタ収束状態を検出し、更に該前進学習済みニューラルネットワーク手段２５の出力信号を用いて、該後進学習済みニューラルネットワーク手段３１から出力されたアトラクタに収束したアトラクタ出力信号の学習アトラクタかスプリアス・アトラクタかのアトラクタ識別をするアトラクタ検出識別手段２６と、該後進学習済みニューラルネットワーク手段３１から出力されたアトラクタ出力信号を基に、該リングメモリ用学習済みニューラルネットワーク手段５から順次読み出された該学習入力データと該アトラクタ出力信号との一致比較を少なくとも行ない、該リングメモリ用学習済みニューラルネットワーク手段５からの該学習入力データの読み出しを制御するアトラクタ一致検出手段２９とを少なくとも有することを特徴とした相互連想記憶装置を構成する。
【００４０】
第４の手段として、第１、２及び第３の手段の連想記憶装置に於いて、前記リングメモリ用学習済みニューラルネットワーク手段５からの前記学習入力データと前記連想入力信号との一致比較を少なくとも行ない、該連想入力信号の学習・非学習入力データ識別を行う連想入力識別手段９を有することを特徴とした連想記憶装置を構成する。
【００４１】
第５の手段として、第１、２、３、及び第４の手段の連想記４装置に於いて、前記リングメモリ用学習済みニューラルネットワーク手段５から前記学習入力データを順次読み出し、記憶する学習入力データ記憶手段８を有することを特徴とした連想記憶装置を構成する。
【００４２】
第６の手段として、自己連想用学習済みニューラルネットワーク処理１３０と、該自己連想用学習済みニューラルネットワーク処理１３０の学習入力データからなるリング傾斜配置した学習データを学習したリングメモリ用学習済みニューラルネットワーク処理１９０と、該自己連想用学習済みニューラルネットワーク処理１３０に入力された連想入力信号に対するアトラクタ収束状態を検出するアトラクタ収束検出処理１４０と、該リングメモリ用学習ニューラルネットワーク処理１９０に記憶されている該学習入力データを順次読み出し、少なくとも該自己連想用学習済みニューラルネットワーク処理１３０から出力されたアトラクタに収束したアトラクタ出力信号との一致比較により、学習アトラクタかスプリアス・アトラクタかのアトラクタ識別をするアトラクタ識別処理２６０とを少なくとも有することを特徴とした自己連想記憶ソフトウェアを構成する。
【００４３】
第７の手段として、相互連想用前進学習済みニューラルネットワーク処理４３０と、該前進学習済みニューラルネットワーク処理４３０からの入力信号に対する出力信号を該前進学習済みニューラルネットワーク４３０にフィードバック入力すると共にアトラクタ収束状態のアトラクタ出力信号を送出する、該前進学習済みニューラルネットワーク処理４３０の学習データである学習入力データと教師信号とを逆配置した学習データに対して学習した後進学習済みニューラルネットワーク処理６１０と、該前進学習済みニューラルネットワーク処理４３０の該学習入力データをリング傾斜配置した学習データを学習したリングメモリ用ニューラルネットワーク処理４９０と、該前進学習済みニューラルネットワーク処理４３０に入力された連想入力信号に対するアトラクタ収束状態を検出するアトラクタ収束検出処理４４０と、該リングメモリ用学習済みニューラルネットワーク処理４９０に記憶されている該学習入力データを順次読み出し、少なくとも該後進学習済みニューラルネットワニューラルネットワーク処理６１０から出力されたアトラクタに収束したアトラクタ出力信号と一致比較することにより、該アトラクタ出力信号の学習アトラクタかスプリアス・アトラクタかのアトラクタ識別をするアトラクタ識別処理５６０とを少なくとも有することを特徴とした相互連想記憶ソフトウェアを構成する。
【００４４】
第８の手段として、相互連想用前進学習済みニューラルネットワーク処理７３０と、該前進学習学習ニューラルネットワーク処理７３０からの入力信号に対する出力信号を該前進学習済みニューラルネットワーク処理７３０にフィードバック入力すると共にアトラクタ収束状態のアトラクタ出力信号を送出する、該前進学習済みニューラルネットワーク処理７３０の学習データである学習入力データと教師信号とを逆配置した学習データに対して学習した後進学習済みニューラルネットワーク処理６１０と、該前進学習済みニューラルネットワーク処理７３０の該学習入力データをリング傾斜配置した学習データを学習したリングメモリ用学習済みニューラルネットワーク処理４９０と、該前進学習済みニューラルネットワーク処理７３０に入力された連想入力信号に対するアトラクタ収束状態を検出し、更に該前進学習済みニューラルネットワーク処理７３０の出力信号を用いて、該後進学習済みニューラルネットワーク処理６１０から出力されたアトラクタに収束したアトラクタ出力信号の学習アトラクタかスプリアス・アトラクタかのアトラクタ識別をするアトラクタ識別処理７４０と、該後進学習済みニューラルネットワーク処理６１０から送出されたアトラクタ出力信号を基に、該リングメモリ用学習済みニューラルネットワーク処理４９０から順次読み出された該学習入力データと該アトラクタ出力信号との一致検出を少なくとも行ない、該リングメモリ用学習済みニューラルネットワーク処理４９０からの該学習入力データの読み出しを制御するアトラクタ出力ー学習入力データ一致状態判定処理５２０とを少なくとも有することを特徴とした相互連想記憶ソフトウェアを構成する。
第９の手段として、第６、７及び第８の手段の連想記憶ソフトウェアに於いて、前記リングメモリ用学習済みニューラルネットワーク処理７３０からの前記学習入力データと前記連想入力信号との一致比較を少なくとも行ない、該連想入力信号の学習・非学習入力データ識別を行う連想入力識別処理５９０、２９０を有することを特徴とした連想記憶ソフトウェアを構成する。
第１０の手段として、第６、７、８、及び第９の手段の連想記憶ソフトウェアに於いて、前記リングメモリ用学習済みニューラルネットワーク処理１９０、４９０から前記学習入力データを順次読み出し、記憶する学習入力データ記憶処理２００、５００とを有することを特徴とした連想記憶ソフトウェアを構成する。
第１１の手段として、第１から第５の前記連想用学習済みニューラルネットワーク手段１、２５に於いて、分類カテゴリに対応したプロトタイプとその教師信号とからなる予め準備された初期学習データをニューラルネットワークに学習させた初期学習の後、プロトタイプの近傍テスト入力データとその教師信号とからなる予め準備されたプロトタイプの近傍テストデータを用いてテストし、不正解出力となるプロトタイプの近傍テスト入力データを追加学習入力データとしプロトタイプと共に追加学習を行ない、準備されたプロトタイプの近傍テスト入力データに対して全て正解出力となるまでプロトタイプの近傍テストデータ追加学習処理を繰り返し、得られた重み係数を設定した連想用学習済みニューラルネットワーク手段１、２５を用いることを特徴とした連想記憶装置を構成する。
第１２の手段として、第６から第１０の前記連想用学習済みニューラルネットワーク処理１３０、４３０として、分類カテゴリに対応したプロトタイプとその教師信号とからなる予め準備された初期学習データをニューラルネットワークに学習させた初期学習の後、プロトタイプの近傍テスト入力データとその教師信号とからなる予め準備されたプロトタイプの近傍テストデータを用いてテストし、不正解出力となるプロトタイプの近傍テスト入力データを追加学習入力データとしプロトタイプと共に追加学習を行ない、準備されたプロトタイプの近傍テスト入力データに対して全て正解出力となるまでプロトタイプの近傍テストデータ追加学習処理を繰り返し、得られた重み係数を設定した連想用学習済みニューラルネットワーク処理１３０、４３０，７３０を用いることを特徴とした連想記憶ソフトウェアを構成する。
本発明の連想記憶装置は、初期学習に於いて、各分類カテゴリに一つ割り当てられた学習入力データとしての代表的なプロトタイプ以外に、追加学習入力データとして、プロトタイプの近傍テストデータも用いて追加学習した、非常に高い汎化能力を持った多層ニューラルネットワークを、自己連想メモリの自己連想用ニューラルネットワーク、及び相互連想メモリの前進ニューラルネットワークとしてそれぞれ導入している。この為、大規模な記憶容量を実現でき、然も、アトラクタ状態への吸引力も強く、アトラクタ発散状態も大幅に改善され、スプリアス・アトラクタへの収束も減少し、認識率が非常に高くなる特徴を有し優れた連想特性を実現できる。更に、分類カテゴリに対応したプロトタイプ以外に追加学習入力データを記憶したリングメモリを導入することにより、アトラクタ識別、収束した学習アトラクタに対応した、追加学習入力データも含めた一連の学習入力データを呼び出すとともに、連想入力信号の学習・非学習入力データ識別も行うことができ、従来の連想記憶装置には無い優れた特徴を有する。
【発明を実施するための最良の形態】
【００４５】
本発明の第１の実施形態に於ける、リングメモリを有し、追加学習ニューラルネットワークを用いた自己連想記憶装置の構成例を図１に示す。以下の本発明の自己連想記憶装置に於いて、その基本構成の説明を簡単にする為、２値の入出力信号を用いた３層ニューラルネットワークを例に挙げ、その構成及びその動作について詳細に説明する。尚、本発明は、３層ニューラルネットワークに限るものではなく、４層以上の多層ニューラルネットワークなど教師信号を用いて学習するニューラルネットワークであればよい。
【００４６】
図１の自己連想記憶装置は、入力端子１１に入力された連想入力信号と自己連想用追加学習ニューラルネットワーク１からの出力信号の何れかを連想ループ制御処理部３からの制御信号により切替選択し、入力端子１２を介して自己連想用追加学習ニューラルネットワーク１とアトラクタ収束検出処理部２とへ入力する入力切り替えスイッチ４と、入力端子１２からの入力信号に対して出力信号を得、アトラクタ出力信号として出力端子１３から送出するとともに、入力切り替えスイッチ４及びアトラクタ収束検出処理部２へ夫々送出する自己連想用追加学習ニューラルネットワーク１と、連想ループ制御処理部３からの制御の基に自己連想用追加学習ニューラルネットワーク１への入力信号及び出力信号とが夫々入力され、アトラクタ収束信号、或いはアトラクタ発散信号を端子２０から送出するアトラクタ収束検出処理部２と、出力端子１３を介して得られたアトラクタ出力信号、或いはリングメモリ用ニューラルネットワーク５の出力信号を連想ループ制御処理部３からの制御信号の基に切り替え、入力端子１５を介してリングメモリ用ニューラルネットワーク５へ入力する入力切替スイッチ７と、入力端子１５を介して入力された入力信号に対する出力信号を、アトラクタ識別処理部６、学習入力データメモリ８、連想入力識別処理部９及びフィードバックの為の入力切替スイッチ７へ夫々送出するリングメモリ用ニューラルネットワーク５と、端子１３からのアトラクタ出力信号とリングメモリ用ニューラルネットワーク５の出力信号である学習入力データとを連想ループ制御処理部３の制御の基に記憶し出力端子１６から出力する学習入力データメモリ８と、連想ループ制御処理部３の制御の基に出力端子１３からのアトラクタ出力信号とリングメモリ用ニューラルネットワーク５の出力を夫々入力し、アトラクタ出力信号を識別し、アトラクタ識別信号を連想入力識別処理部９及び出力端子１４へ送出するアトラクタ識別処理部６と、連想ループ制御処理部３からの制御信号及びアトラクタ識別処理部６からのアトラクタ識別信号の基に、リングメモリ用ニューラルネットワーク５の出力信号と入力端子１１からの連想入力信号X(0)とにより連想入力信号の学習・非学習入力データの識別を行ない出力端子２１から学習・非学習入力データ識別信号を送出する連想入力識別処理部９と、入力切替スイッチ４及び７、アトラクタ収束検出処理部２、連想入力識別処理部９及びアトラクタ識別処理部６、学習入力データメモリ８を夫々制御する連想ループ制御処理部３とから構成される。
【００４７】
以下に、一連の連想ループ処理の動作を説明する。連想ループ処理に先だって、自己連想用追加学習ニューラルネットワーク１では、高性能な汎化能力を持たせるために、以下のプロトタイプの近傍テストデータ追加学習処理を実行して得られた重み係数を設定した場合について説明する。この学習処理としては、先ず、各分類カテゴリに一つ割り当てられた代表的なプロトタイプP(r)で、然も学習アトラクタを示す学習入力データと、その分類カテゴリrに対応する教師信号とからなる初期学習データに対して、全正解出力となるよう３層ニューラルネットワークを収束させる初期学習を行う。尚、当然ではあるが、プロトタイプだけを学習させた初期学習だけの重み係数を設定してもよい。また、ここでは、分類カテゴリ毎に一個のプロトタイプP（r）を用意したが、これが複数個の場合は、一個以外を近傍テスト入力データとして扱えばよい。
【００４８】
その後、引き続き、予め準備された、プロトタイプの近傍テスト入力データとその分類カテゴリに対応した教師信号とからなるプロトタイプの近傍テストデータを用いて、初期学習された３層ニューラルネットワークのテストを行ない、不正解出力を送出している近傍テスト入力データを学習入力データZ(r,n)、（但し、nは分類カテゴリｒの学習データ番号で、0≦n≦nr）として、初期学習入力データと共に追加学習させ、これら学習入力データに対して全正解出力を送出し収束するよう追加学習を行う。その後、再度同様のテストを行ない、不正解出力があれば、その近傍テスト入力データを追加学習入力データとして加え、上記の追加学習を再度行う。このような追加学習処理を繰り返し、プロトタイプの近傍テスト入力データに対して全て正解出力が得られると追加学習処理を完了する。
【００４９】
プロトタイプの近傍テストデータ追加学習処理が完了すると、その重み係数を自己連想用ニューラルネットワークに設定し、自己連想用追加学習ニューラルネットワーク１として用いる。尚、上記の３層ニューラルネットワークの追加学習処理については、特開平１０−４９５０９に詳細が明らかにされている。
【００５０】
一方、リングメモリ用ニューラルネットワーク５に於いては、上記の追加学習処理で用いたプロトタイプP(r)からなる初期学習入力データと学習入力データZ(r,n)、(但し、0≦n≦nr、nrは、分類カテゴリｒの追加学習入力データ数)とを用いて、表１に示すリングメモリ用ニューラルネットワーク５の為のリングメモリ用学習データを準備し、これらの学習入力データに対して全正解出力となり収束するよう学習を行ない、得られた重み係数をリングメモリ用ニューラルネットワーク５に設定して用いる。尚、表１に於いて、プロトタイプP(r)に対応した分類カテゴリ数、即ち、プロトタイプ数をR、カテゴリ別の追加学習入力データ数nrの内最大値をNmaxとする。
【表１】
2006285489.tif 000003
【００５１】
表１では、分類カテゴリrに割り当てられた初期学習入力データであるプロトタイプP(r)と、それに対応した学習入力データZ(r,n), 0≦n≦nrとを分類カテゴリ・グループとした学習データの関係を示す。グループ内の最後の追加学習入力データに対応した教師信号として、そのプロトタイプP(r)を割り当てられていることから、リング状態に配置された学習入力データを記憶させることができる。ここでは、この学習入力データとその教師信号との配置関係をリング傾斜配置と呼ぶこととする。即ち、プロトタイプP(r)とnr個の学習入力データZ(r,n),0≦n≦nrとからなる学習入力データと、これらがリング傾斜配置された教師信号とからなる分類カテゴリ別学習データを得る。
【００５２】
これら分類カテゴリ別学習データを全て学習させ、これらの学習入力データに対して全て正解出力となるよう収束させる。このように学習させた重み係数をリングメモリ用ニューラルネットワーク５に設定する。従って、端子１５を介してリングメモリ用ニューラルネットワーク５にプロトタイプP(r)が入力されると、入力切替スイッチ７を介した、リングメモリの一連の出力フィードバック読み出し処理により、学習入力データZ(r,n)が順次読み出され、最後に、プロトタイプP(r)が読み出されることとなる。分類カテゴリｒのグループ内の全学習入力データ読み出しループ回数はnr+1で与えられる。従って、プロトタイプであるリングメモリ入力信号がプロトタイプである場合には、同一のリングメモリ読み出し出力信号が得られるとグループ内の一連の学習入力データが全て読み出されたこととなる。
【００５３】
次に、本実施形態の、上記の自己連想用ニューラルネットワーク１及びリングメモリ用ニューラルネットワーク５を有する自己連想記憶装置の動作について説明する。連想ループ制御処理部３に於いて連想ループ回数j＝０を、また、リングメモリ読み出しカウンタｎ=０を初期設定し、連想ループ制御信号の基に、入力切替スイッチ４の設定及びアトラクタ収束検出処理部２及び学習入力データメモリ８の内部状態、アトラクタ識別処理部６及び連想入力識別処理部９の初期設定を行う。連想入力信号X(0)が入力切替スイッチ４に入力され入力端子１２を介して自己連想用追加学習ニューラルネットワーク１に入力されると共に、アトラクタ収束検出処理部２に入力記憶される。
【００５４】
また、連想入力信号X(0)は連想入力識別処理部９に入力記憶される。自己連想用追加学習ニューラルネットワーク１は、入力されたX(0)に対応した出力信号X(1)を送出し、アトラクタ収束検出処理部２へ入力する。アトラクタ収束検出処理部２では、連想ループ制御処理部３からの制御信号の基に連想ループ回数カウンタ設定(j=0)を行うとともに、入力されたX(0)とX(1)とを比較し、異なるとアトラクタ非収束状態として、連想ループ回数jをj＝j+1とし、連想ループ制御処理部３に連想ループ処理要求をする。
連想ループ制御処理部３では、連想ループ処理要求があると、入力切替スイッチ４を介して自己連想用追加学習ニューラルネットワーク１とアトラクタ収束検出処理部２とに入力し、出力信号X(2)を得る。
【００５５】
このようにアトラクタ収束状態の検出の為の一連の連想ループ処理を繰り返し、連想ループ処理回数ｊに対して、アトラクタ収束検出処理部２に於いて、自己連想用追加学習ニューラルネットワーク１の入力信号X(j)及び出力信号X(j+1)が一致すると、アトラクタに収束したと見なして、連想ループ制御処理部３へアトラクタ収束信号を送出すると共に、アトラクタ収束検出処理を終了する。更に、アトラクタ収束信号を出力端子２０に出力する。この時、連想ループ回数がj=0ならば、アトラクタ収束信号（One-Shotアトラクタ収束信号）を出力端子２０から送出させる。また、不一致状態が続き、指定された連想ループ回数Jになっても、アトラクタ収束が得られない場合には、発散アトラクタであり、アトラクタ発散信号を出力端子２０から送出し、連想ループ処理停止要求を出し、アトラクタ収束検出処理を終了させる。更に、連想ループ制御処理部３では、アトラクタ識別処理部６の出力端子１４から、アトラクタ発散識別信号を送出し、連想入力識別処理部２１の端子２１から非学習入力識別信号を送出させ、一連の連想ループ処理を完了させる。
【００５６】
アトラクタ収束検出処理部２において、アトラクタ収束状態が検出され、アトラクタ収束信号が連想ループ制御処理部３に送入されると、連想ループ制御処理部３の制御の基に、自己連想用追加学習ニューラルネットワーク１の出力信号を出力端子１８からアトラクタ出力信号として、入力切替スイッチ７及び入力端子１５を介してリングメモリ用ニューラルネットワーク５に送出し、アトラクタ識別処理部６、連想入力識別処理部９及び学習入力データメモリ８に於いて、それぞれ以下の学習入力データ読み出し処理と、アトラクタ識別処理及び連想入力識別処理からなる一連の連想ループ処理を行う。以下これらの一連の処理について説明する。
【００５７】
連想ループ制御処理部３の制御の基に、入力切替スイッチ７を介して、自己連想用追加学習ニューラルネットワーク１の出力端子１３のアトラクタ出力信号X(j+1)が入力端子１５を介してリングメモリ用ニューラルネットワーク５に入力されると共に、アトラクタ識別処理部６に入力記憶される。入力端子１５からのアトラクタ出力信号X(j+1)に対して、リングメモリ用ニューラルネットワーク５から出力信号Rout(1)を得、アトラクタ識別処理部６、連想入力識別処理部９及び学習入力データメモリ８へ夫々入力する。アトラクタ識別処理部６に於いて、アトラクタ出力信号X(j+1)と出力Rout(1)を比較し、不一致ならば、リングメモリ読み出しカウンタn=n+1とし(但し、初期値n=0)、連想ループ制御処理部３の制御の基に入力切替スイッチ７が制御され、Rout(1)が入力端子１５を介してリングメモリ用ニューラルネットワーク５にフィードバック入力され、再度読み出し処理を行う。
【００５８】
アトラクタ識別処理部６内のリングメモリ読み出しカウンタn(≧0)が予め指定されたカテゴリ別読み出し最大カウンタ数となる範囲内で、アトラクタ出力信号X(j+1)と出力Rout(n)が一致するまで、上記のフィードバックによる一連の処理が繰り返される。尚、カテゴリ別読み出し最大カウンタ数は、表１に示すカテゴリ別の追加学習入力データ数nr、但し（n1,n2,..nr,…nR）内の最大値Nmaxを設定する。表２に示すようにX(j)とRout(n)が一致すると、この時のリングメモリ読み出しカウンタnと同じ値を持つ学習データ数nrが存在し、然も、その対応したプロトタイプP(r)とアトラクタ出力信号X(j+1)が一致すれば、学習アトラクタであることが判明し識別でき、学習アトラクタ識別信号を連想入力識別処理部９と連想ループ制御処理部３と出力端子１４へ夫々出力する。
ここで、アトラクタ識別処理部６に於けるアトラクタ識別条件を表２にまとめて示す。
【表２】
2006285489.tif 000004
【００５９】
一方、表２に示すように、同じ学習データ数nrを持った分類カテゴリｒのプロトタイプP(r)とアトラクタ出力信号X(j+1)を比較し、一致しない場合、即ち、そのリングメモリ読み出しカウンタｎに対応した学習データ数を持つプロトタイプが存在しない、或いは、一致しても、ｎ≦Nmaxのリングメモリ読み出しカウンタnに一致する学習データ数nrのカテゴリ番号rが存在しない場合などには、アトラクタ出力信号X(j+1)はスプリアス・アトラクタであることが判明しスプリアス・アトラクタ識別信号が送出される。また、表２のようにカテゴリ別読み出し最大カウント数Nmax以下で、アトラクタ出力信号X(j+1)、出力Rout(n)及びP(r)が全て一致しない場合も、アトラクタ出力信号X(j+1)はスプリアス・アトラクタであることが判明し、スプリアス・アトラクタ識別信号を連想入力識別処理部９と連想ループ制御処理部３と出力端子１４へ夫々送出する。このように、リングメモリ読み出し出力信号を用いることにより、アトラクタ出力信号の学習アトラクタかスプリアス・アトラクタかの識別ができる。
【００６０】
アトラクタ識別処理部６に於いて、アトラクタ識別処理が終了すると、連想ループ制御処理部３は、学習アトラクタ識別の場合には、学習入力データメモリ８を読み出し、出力端子１６から学習アトラクタに対応したプロトタイプとその追加学習入力データを全て送出する。
連想入力識別処理部９では、連想入力信号X(0)とRout(n)とが比較され、一旦一致したならば、連想入力信号が学習入力データであることから、学習入力データ一致状態を記憶する。ここで、アトラクタ識別処理部６から学習アトラクタ識別信号が入力されると、出力端子２１から学習入力データ識別信号が送出される。学習アトラクタ識別信号が入力された時に、リングメモリ読み出し出力信号が全て連想入力信号X(0)と不一致状態で、学習入力データ不一致状態が記憶されているならば、非学習入力データ識別信号が送出される。
【００６１】
一方、アトラクタ識別処理部６に於いて、スプリアス・アトラクタ識別信号が識別された場合には、出力端子１４からスプリアス・アトラクタ識別信号を送出し、連想ループ制御処理部３の制御の基に、学習入力データメモリ８の内部状態はリセットされ、連想入力識別処理部９は、連想入力信号X(0)を非学習入力データと識別し、出力端子２１から非学習入力データ識別信号を送出し、全ての処理を完了する。
尚、初期設定として、表１を基に、カテゴリ別読み出し最大カウント数Nmax、カテゴリ別追加学習入力データ数nr及びそのプロトタイプP(r)が予め記憶されている。
【００６２】
上記の説明の如く、学習アトラクタである分類カテゴリ別のプロトタイプP(r)がアトラクタ出力信号として、出力端子１３から送出されると、プロトタイプP(r)とその近傍追加学習入力データとを記憶したカテゴリ別追加学習入力データ数nrに等しいリングメモリ読み出しカウンタnで、X(j+1)=Rout(nr)=P(r)となり、然もプロトタイプ（最後に読み出される）を含め分類カテゴリ別の学習入力データを全て読み出すことができる。
【００６３】
スプリアス・アトラクタであるアトラクタ出力信号が出力端子１３から送出されると、出力端子１４からスプリアス・アトラクタ識別信号が送出される。
尚、アトラクタ識別処理部６に於いて、出力端子１４から学習アトラクタ識別信号と共に、一致したプロトタイプP(r)の分類カテゴリ番号ｒを送出してもよい。これによりカテゴリ分類も行うことができる。
【００６４】
ここで、アトラクタ識別処理部６に於いて、出力端子１３からのアトラクタ出力信号X(j+1)と予め記憶されたプロトタイプP(r)、1≦r≦Rと直接比較し、何れかと一致すると、学習アトラクタと識別し、学習アトラクタ識別信号を連想入力識別処理部９、連想ループ制御処理部３及び出力端子１４へ送出してもよい。
【００６５】
上記の説明の如く、連想入力信号X(0)に対して、連想ループ処理に於いて、表３に示すようにアトラクタ収束状態を検出し、アトラクタに収束しておれば、アトラクタ出力信号X(j+1)に対して、リングメモリ用ニューラルネットワーク５から一連の学習入力データを読み出すと共に、表２に示すように、学習アトラクタかスプリアス・アトラクタかのアトラクタ識別、及び連想入力信号の学習・非学習入力識別ができる。
【表３】
2006285489.tif 000005
【００６６】
ここで、本発明の第１の実施形態に於ける図１に示す自己連想記憶処理に関して、連想入力信号X(0)が与えられた時の連想処理フローを図６に示す。尚、ここでは、自己連想用追加学習ニューラルネットワーク処理１３０及びリングメモリ用ニューラルネットワーク処理１９０に於いて、前記と同様、追加学習及び学習が夫々既に完了していることを前提として処理フローを説明する。
連想初期設定処理１００は、連想ループ回数判定処理１６０に於ける連想ループ最大回数J、リングメモリ読み出し回数判定処理２３０におけるカテゴリ別読み出し最大カウント数Nmax、即ち表１に於ける分類カテゴリ内で最大の追加学習データ数であるカテゴリ内最大追加学習データ数Nmax = Max{n1,n2,..,nR}、及びアトラクタ識別処理２６０への表２に示すアトラクア検出及び識別の条件設定など、初期パラメータ設定を夫々行う。
【００６７】
連想ループ初期設定処理１１０は、連想ループ回数jの初期設定としてj=0及びリングメモリ読み出しカウンタn=0の初期設定、連想入力―リングメモリ出力一致検出処理２１０及び学習入力データ記憶処理２００の内部状態のリセットを行う。
連想入力信号入力設定処理１２０は、連想入力信号X(0)を自己連想用追加学習ニューラルネットワーク処理１３０、アトラクタ収束検出処理１４０及び連想入力-リングメモリ出力一致検出処理２１０へ夫々入力設定を行う。
【００６８】
自己連想用追加学習ニューラルネットワーク処理１３０は、連想ループ回数j=0で、入力された連想入力信号X(0)に対する２値出力信号X(1)を、或いは、連想ループ回数j>0の場合には、自己連想用追加学習ニューラルネットワーク出力信号入力設定処理１８０を介して入力設定された連想ループ回数j-1に於ける２値出力信号X(j)を入力し、２値出力信号X(j+1)を夫々送出する。
【００６９】
アトラクタ収束検出処理１４０は、連想ループ回数j=0の場合には、自己連想用追加学習ニューラルネットワーク処理１３０の連想入力信号X(0)に対する出力信号X(1)、或いは連想ループ回数jの場合には、２値入力信号X(j)に対する出力信号X(j+1)との一致比較を行ないアトラクタ収束状態の検出を行う。入力信号X(j)と出力信号X(j+1)とが一致しておれば、入出力信号がアトラクタとなったアトラクタ収束状態である。また、この時、連想ループ回数j=0であれば、One-Shotアトラクタ収束状態、連想ループ回数j≧1の場合、汎化アトラクタ収束状態とする。不一致ならば、アトラクタ未収束状態とする。
アトラクタ収束判定処理１５０に於いて、アトラクタ収束状態が得られると、リングメモリ用ニューラルネットワーク処理１９０を行う。一方、アトラクタ未収束状態であれば、引き続き連想ループ回数判定処理１６０を行う。
【００７０】
連想ループ回数判定処理１６０では、連想ループ回数jが連想ループ最大回数J未満であれば、j←j+1設定処理１７０にて連想ループ回数jを１増加させる。
自己連想用追加学習ニューラルネットワーク出力信号入力設定処理１８０では、X(j+1)を自己連想用追加学習ニューラルネットワーク処理１３０の入力として設定する。その後、前回の連想ループ回数ｊの場合と同様に、自己連想用追加学習ニューラルネットワーク処理１３０、アトラクタ収束検出処理１４０及びアトラクタ収束判定処理１５０を再度実施する。
【００７１】
一方、連想ループ回数判定処理１６０にて、連想ループ回数j=Jならば、指定された最大回数Jの連想ループ処理に於いて、連想入力信号X(0)が、アトラクタに収束ぜず、アトラクタ発散状態で不想起となったと判定する。この判定結果に従い、連想入力識別設定処理３１０に於いて、連想入力信号X(0)が非学習入力データで、発散アトラクタであると識別し、全ての連想ループ処理を完了する。
【００７２】
アトラクタ収束判定処理１５０に於いて、アトラクタ収束状態であると判定されると、自己連想用追加学習ニューラルネットワーク１３０の出力信号であるアトラクタ出力信号X(j+1)に対して、リングメモリ用ニューラルネットワーク処理１９０に於いてリングメモリ読み出しを行う。
即ち、リングメモリ用ニュウラルネットワーク処理１９０にて、アトラクタ出力信号X(j+1)を入力し、リングメモリ出力信号Rout(1)を得え、これを学習入力データ記憶処理２００にて記憶する。ここで、アトラクタ出力信号X(j+1)がプロトタイプP(ｒ)である場合には、Rout(1)は、学習入力データZ(r,1)となる。
【００７３】
更に、連想入力―リングメモリ出力一致検出処理２１０にて、連想入力信号X(0)と読み出されたリングメモリ出力信号Rout(1)との一致比較を行う。一旦一致すれば、学習入力データ一致状態を設定する。不一致の場合には、学習入力データ不一致状態を設定する。
更に、アトラクタ出力ー学習入力データ一致状態判定処理２２０にて、X(j+1)≠Rout(n)の学習入力データ不一致状態の場合には、読み出し回数判定処理２３０にて、リングメモリ読み出しカウンタnがNmax未満であると、リングメモリ読み出しカウンタn←n+1処理２４０にて、nを１増加して、読み出されたRout(1)を入力しリングメモリ用ニューラルネットワーク処理１９０を再度行ない、新たなリングメモリ出力信号Rout(2)を得る。
【００７４】
更に、同様に学習入力データ記憶処理２００、連想入力―リングメモリ出力一致検出処理２１０及びアトラクタ出力ー学習入力データ一致状態判定処理２２０を行う。
読み出し回数判定処理２３０にてリングメモリ読み出しカウンタnがNmaxとなると、スプリアス・アトラクタ識別設定処理２５０にて、アトラクタ出力信号がスプリアス・アトラクタであると識別設定し、スプリアス・アトラクタ状態とし、学習アトラクタ識別判定処理２７０を行う。
【００７５】
一方、アトラクタ出力ー学習入力データ一致状態判定処理２２０にて、アトラクタ出力信号X(j+1)がリングメモリ出力信号Rout(n)に一致し、学習入力データ一致状態と判定されると、アトラクタ識別処理２６０にて、表２のようにアトラクタ出力信号X(j+1)のアトラクタ識別を行う。
【００７６】
即ち、アトラクタ識別処理２６０では、n≦Nmaxのリングメモリ読み出しカウンタnに等しい追加学習入力データ数nrを持った分類カテゴリのプロトタイプP(r)とリングメモリ出力Rout(n)及びX(j+1)との一致を調べ、一致であれば、アトラクタ出力信号X(j+1)を学習アトラクタと識別し、学習アトラクタ状態とする。また、上記の条件を満たさない場合には、アトラクタ出力信号X(j+1)はスプリアス・アトラクタと識別し、スプリアス・アトラクタ識別状態とする。（尚、同じ追加学習データ数nrを持ったプロトタイプが複数個存在する場合も表２の条件で対応できる。）
【００７７】
次に、学習アトラクタ識別判定処理２７０に於いて、アトラクタ出力信号X(j+1)が学習アトラクタ状態と識別された場合には、連想入力識別処理２９０にて、連想入力―リングメモリ出力一致検出処理２１０の結果、学習入力データ一致状態が設定されておれば、連想入力信号X(0)は学習入力データと識別される。ここで、更に、アトラクタ出力信号X(j+1)と一致すれば、プロトタイプであり、不一致であれば、追加学習入力データと識別される。学習入力データ不一致状態が設定されておれば、連想入力信号X(0)は非学習入力データと識別される。
【００７８】
学習入力データ読み出し処理３００にて、学習アトラクタであるアトラクタ出力信号X(j+1)に対応した全ての追加学習入力データとプロトタイプが読み出され、一連の連想ループ処理が全て完了する。
【００７９】
一方、学習アトラクタ識別判定処理２７０の結果、アトラクタ出力信号X(j+1)がスプリアス・アトラクタ状態であると識別されると、連想入力非学習入力データ識別設定処理２８０にて、連想入力信号X(0)が非学習入力データ（未知連想入力データ）であると識別設定され、一連の連想ループ処理が全て完了する。
【００８０】
尚、新たな連想入力信号X(0)が入力されると、連想ループ初期設定処理１１０を行ない、上記の一連の連想ループ処理を行う。
【００８１】
次に、本発明の第２の実施形態として、リングメモリを有し、前進追加学習ニューラルネットワークを用いた相互連想記憶装置について説明する。図２は、本実施形態の相互連想記憶装置の１構成例を示す。
【００８２】
図２の相互連想記憶装置は、入力端子１１からの前進連想入力信号X(0)と後進ニューラルネットワーク３１からの出力信号の何れかを連想ループ制御処理部３からの制御信号により切替選択し、入力端子１２を介して前進追加学習ニューラルネットワーク２５へ入力すると共に，アトラクタ収束検出処理部２３に送出する入力切替スイッチ４と、入力端子１２からの入力信号に対して出力信号を得、出力端子１３から分類カテゴリ出力信号として送出し、入力端子１７を介して後進ニュ-ラルネットワーク３１に入力する前進追加学習ニューラルネットワーク２５と、入力端子１７の入力信号に対する出力信号を得、入力切替スイッチ４及びアトラクタ収束検出処理部２３へ夫々送出すると共に、アトラクタ出力信号として出力端子１８から送出する後進ニューラルネットワーク３１と、連想ループ制御処理部２４の制御の基に、前進追加学習ニューラルネットワーク２５の入力信号と後進ニューラルネットワーク３１の出力信号とを入力し、アトラクタ収束状態を検出し、アトラクタ収束信号、或いはアトラクア発散信号を出力端子２０へ夫々送出するアトラクタ収束検出処理部２３と、出力端子１８を介して得られたアトラクタ出力信号、或いはリングメモリ用ニューラルネットワーク５の出力信号を連想ループ制御処理部２４からの制御信号の基に切り替え、入力端子１５を介してリングメモリ用ニューラルネットワーク５へ入力する入力切替スイッチ７と、入力端子１５を介して入力された入力信号に対する出力信号を、アトラクタ識別処理部６、学習入力データメモリ８、連想入力識別処理部９及びフィードバックの為の入力切替スイッチ７へ夫々送出するリングメモリ用ニューラルネットワーク５と、リングメモリ用ニューラルネットワーク５からの出力信号を学習入力データとして連想ループ制御処理部２４の制御の基に夫々記憶し出力端子１６から出力する学習入力データメモリ８と、連想ループ制御処理部２４の制御の基に出力端子１８からのアトラクタ出力信号とリングメモリ用ニューラルネットワーク５の出力信号を夫々入力し、アトラクタ出力信号を識別し、アトラクタ識別信号を連想入力識別処理部９及び出力端子１４へ送出するアトラクタ識別処理部６と、連想ループ制御処理部２４からの制御信号及びアトラクタ識別処理部６からのアトラクタ識別信号の基に、リングメモリ用ニューラルネットワーク５の出力信号と入力端子１１からの連想入力信号X(0)の比較により、連想入力信号の学習・非学習入力データの識別を行ない出力端子２１から学習・非学習入力データ識別信号を送出する連想入力識別処理部９と、入力切替スイッチ４及び７、アトラクタ収束検出処理部２３、連想入力識別処理部９及びアトラクタ識別処理部６、学習入力データメモリ８を夫々制御する連想ループ制御処理部２４とから構成される。
【００８３】
尚、第１の実施形態に於ける自己連想記憶装置の１構成例を示す図１と、第２の実施形態に於ける相互連想記憶装置の１構成例を示す図２、及び従来技術に関する図３及び図４に於いて、同一番号を持つ機能は、同じである。従って、それらの詳細な説明は省略する。
【００８４】
以下に、アトラクタ収束検出、アトラクタ識別、連想入力データ識別及び学習入力データ読み出し処理からなる一連の連想ループ処理の動作を中心に説明する。これらの連想ループ処理に先だって、前進追加学習ニューラルネットワーク２５では、前記の第１の実施形態と同様に、追加学習処理を実行して得られた重み係数を設定しておく。追加学習処理としては、先ず、予め準備されたプロトタイプP(r)で学習アトラクタを示す学習入力データと、その分類カテゴリrに対応する教師信号とからなる初期学習データを学習させ、全正解出力となり収束した初期学習を行わせる。
【００８５】
その後、予め準備された、プロトタイプの近傍テスト入力データとその分類カテゴリに対応した教師信号とを近傍テストデータとしてテストを行ない、誤った出力信号を送出している近傍テスト入力データを学習入力データZ(r,n)として、初期学習に引き続いて初期学習データと共に追加学習させ、これら学習データに対して全正解出力を送出し収束するまで追加学習を行う。その後、再度テストを行ない、プロトタイプの近傍テスト入力データに対して全て正解出力が得られると追加学習を完了する。不正解出力があれば、その近傍テストデータを追加学習入力データとして加え、上記の追加学習を再度行う。
【００８６】
このような一連の追加学習処理をプロトタイプの近傍テストデータに対して行ない、全ての近傍テスト入力データに対して正解出力が得られるまで繰り返す。全てのプロトタイプの近傍テスト入力データに対して正解出力を送出する追加学習が完了すると、その重み係数を設定し、前進追加学習ニューラルネットワーク２５として用いる。ここで、追加学習された、プロトタイプとテストに於いて誤った出力を送出したプロトタイプの近傍テスト入力データとからなる学習入力データを同様に表１に示す。
【００８７】
更に、前進追加学習ニューラルネットワーク２５に於ける前記のプロトタイプとその教師信号とからなる初期学習データに対して逆配置の入出力関係を持つ初期学習データに関して、後進ニューラルネットワーク３１が全て正解出力を送出し収束するよう学習させ、得られた重み係数を夫々設定しておく。
【００８８】
一方、リングメモリ用ニューラルネットワーク５に於いては、上記の追加学習で用いた、プロトタイプP(r)である初期学習入力データと学習入力データZ(r,ｎ)とを用いて、表１に示すリングメモリ用ニューラルネットワーク５の教師信号を準備し、これらの学習データに対して全正解出力となり収束するよう学習を行ない、得られた重み係数をリングメモリ用ニューラルネットワーク５に設定して用いる。上記のリングメモリ用ニューラルネットワーク５の学習は、第１の実施形態に於ける自己連想記憶装置での場合と同様である。
【００８９】
ここで、先ず、アトラクタ収束検出処理に関する連想ループ処理について説明する。連想ループ制御処理部２４に於いて、連想ループ回数j＝０を初期設定し、連想ループ制御信号を、入力切替スイッチ４の設定及びアトラクタ収束検出処理部２３及び学習入力データメモリ８の内部状態、アトラクタ識別処理部６及び連想入力識別処理部９の初期設定の為夫々送出する。前進連想入力信号X(0)が入力端子１１を介して入力切替スイッチ４に入力され、入力端子１２を介して前進追加学習ニューラルネットワーク２５に入力されると共に、アトラクタ収束検出処理部２３に入力記憶される。また、前進連想入力信号X(0)は連想入力識別処理部９に入力記憶される。
【００９０】
前進追加学習ニューラルネットワーク２５は、入力されたX(0)に対応した分類カテゴリを示す出力信号Y(0)を分類カテゴリ出力信号として送出し、出力端子１３を介して後進ニューラルネットワーク３１の入力端子１７に入力する。後進ニューラルネットワーク３１は、入力された分類カテゴリ出力信号Y(0)に対して出力信号X(1)を送出し、アトラクタ収束検出処理部２３へ入力する。アトラクタ収束検出処理部２３では、連想ループ制御処理部２４から連想ループ回数j=0の設定を行ない、入力されたX(0)とX(1)とを比較し、異なるとアトラクタ非収束状態として、連想ループ回数j=1とし、連想ループ制御処理部２４に連想ループ処理要求をする。連想ループ制御処理部２４では、連想ループ処理要求があると、出力信号X(1)を、入力切替スイッチ４を介して前進追加学習ニューラルネットワーク２５とアトラクタ収束検出処理部２３とに入力する。
【００９１】
一連の連想ループ処理に於いて、アトラクタ収束検出処理部２３にて、前進追加学習ニューラルネットワーク２５の入力信号Ｘ(j)及び後進ニューラルネットワーク３１の出力信号Ｘ(j+1)が一致すると、アトラクタに収束したと見なして、連想ループ制御処理部２４へアトラクタ収束信号を送出すると共に、アトラクタ収束信号を出力端子２０に出力する。この時、j=０ならば、アトラクタ収束信号（One-Shotアトラクタ収束信号）を、j≠０ならば、アトラクタ収束信号（汎化アトラクタ収束信号）を出力端子２０から夫々送出させる。また、指定された連想ループ最大回数Jになっても、アトラクタ収束が得られない場合には、アトラクタ発散信号を出力端子２０から送出させると共に、連想ループ制御処理部２４では、アトラクタ識別処理部６の出力端子１４から、アトラクタ発散識別信号を送出し、連想入力識別処理部９の端子２１から非学習入力識別信号を送出させ、一連の連想ループ処理を完了させる。
【００９２】
次に、アトラクタ収束状態が検出された後の、アトラクタ識別、連想入力データ識別及び学習入力データ読み出し処理に関する一連の連想ループ処理を説明する。ここで、第１の実施形態の自己連想記憶装置に於ける図１及び本実施形態の図２に示すように、入力切替スイッチ７、リングメモリ用ニューラルネトワーク５、学習入力データメモリ８及び連想入力識別処理部９の構成及び接続は基本的に同一で、従って、これらの動作は互いに同じであることから、詳細説明は省略する。基本的に、アトラクタ識別処理部６に於いて、リングメモリ用ニューラルネットワーク５から指定されたカウンタ範囲Nmax（カテゴリ別読み出し最大カウント数Nmax）内で順次読み出された出力信号Rout(n)と出力端子１８からのアトラクタ出力信号X(j+1)とが一致した時のリングメモリ読み出しカウンタnと等しい追加学習入力データ数nrが存在し、然もX(j+1)が、プロトタイプP(r)と一致すると、学習アトラクタと識別し、学習アトラクタ識別信号を連想入力識別処理部９へ送出する。X(j+1)=Rout(n)となるリングメモリ読み出しカウンタn（但し、ｎ≦Nmax）と等しいnrが存在しない場合、X(j+1)=Rout(nr)=P(r)が成立しない場合或いはリングメモリ読み出しカウンタn＞Nmaxの場合には、スプリアス・アトラクタと識別し、スプリアス・アトラクタ識別信号を送出する。
【００９３】
また、学習アトラクタと識別されると、学習入力データメモリ８から対応した一連の学習入力データが読み出され、更に連想入力識別処理部９では、前進連想入力信号X(0)が読み出されたプロトタイプ、或いは追加学習入力データの何れかと一致すれば学習入力データ、その他の場合には非学習入力データと識別され、学習入力データ識別信号或いは非学習入力データ識別信号が夫々送出される。
上記の説明の如く、前進連想入力信号X(0)に対してアトラクタ収束状態を検出し、プロトタイプに対応したアトラクタ出力信号X(j+1)を基に、アトラクタ識別を行う共に、前進連想入力信号X(0)の学習・非学習入力識別と、対応した一連の学習入力データの読み出しができる。
【００９４】
次に、本発明の第２の実施形態に於ける図２に示す相互連想記憶処理に関して、前進連想入力信号X(0)が与えられた時の連想処理フローを図７に示す。尚、ここでは、前進追加学習ニューラルネットワーク処理４３０、後進ニューラルネットワーク処理６１０及びリングメモリ用ニューラルネットワーク処理４９０は、前記の第１の実施形態と同様に、追加学習及び学習が夫々既に完了していることを前提として処理フローを説明する。
【００９５】
前進連想初期設定処理４００は、連想ループ回数判定処理４６０に於ける連想ループ最大回数J、リングメモリ読み出し回数判定処理５３０におけるカテゴリ別読み出し最大カウント数Nmax及びアトラクタ識別処理５６０への表２に示すアトラクア検出及び識別の条件設定など、初期パラメータ設定を行う。
連想ループ初期設定処理４１０は、連想ループ回数jの初期設定としてj=0、及びリングメモリ読み出しカウンタn=0の初期設定、連想入力―リングメモリ出力一致検出処理５１０及び学習入力データ記憶処理５００の内部状態のリセットを行う。
前進連想入力信号入力設定処理４２０は、前進連想入力信号X(0)を前進追加学習ニューラルネットワーク処理４３０、アトラクタ収束検出処理４４０及び連想入力-リングメモリ出力一致検出処理５１０へ夫々入力設定を行う。
【００９６】
前進追加学習ニューラルネットワーク処理４３０は、連想ループ回数j=0で、入力された前進連想入力信号X(0)、或いは、連想ループ回数j>0の場合には、後進ニューラルネットワーク出力信号入力設定処理４８０を介して入力設定された連想ループ回数j-1での出力信号X(j)を処理し、出力信号Y(0)、Y(j)を夫々送出する。
後進ニューラルネットワーク処理６１０では、入力されたY(0)、Y(j)に対して出力信号X(1)、X(j+1)を夫々送出する。
【００９７】
アトラクタ収束検出処理４４０は、連想ループ回数j=0の場合には、前進追加学習ニューラルネットワーク処理４３０の入力信号X(0)及び後進ニューラルネットワーク処理６１０からの出力信号X(1)、或いは連想ループ回数j（j≧1）の場合には、前進追加学習ニューラルネットワーク処理４３０の２値入力信号X(j)及び後進ニューラルネットワーク処理６１０からの出力信号X(j+１)との一致比較処理を行ない、一致の場合にはアトラクタ収束状態、不一致の場合にはアトラクタ未収束状態とする。この時、表３に示すように、連想ループ回数j=0の時に一致しておれば、One-Shotアトラクタ収束状態、連想ループ回数j≧1の場合、汎化アトラクタ収束状態とする。
【００９８】
アトラクタ収束判定処理４５０に於いて、アトラクタ収束状態であれば、リングメモリ用ニューラルネットワーク処理４９０を行う。アトラクタ未収束状態であれば、連想ループ回数判定処理４６０を行う。
【００９９】
連想ループ回数判定処理４６０では、連想ループ回数jが連想ループ最大回数J未満であれば、j←j+1設定処理４７０にて連想ループ回数jを１増加させる。
後進ニューラルネットワーク出力信号入力設定処理４８０では、X(j+1)を前進追加学習ニューラルネットワーク処理４３０の入力として設定する。その後、前回の連想ループ回数ｊの場合と同様に、前進追加学習ニューラルネットワーク処理４３０、後進ニューラルネットワーク処理６１０、アトラクタ収束検出処理４４０及びアトラクタ収束判定処理４５０を再度実施する。
【０１００】
一方、連想ループ回数判定処理４６０にて、連想ループ回数j=Jならば、指定された最大回数Jの連想ループ処理に於いて、アトラクタに収束せず、連想入力信号X(0)がアトラクタ発散状態で不想起となったとし、連想入力識別設定処理６２０に於いて、連想入力信号X(0)が非学習入力データで、発散アトラクタであるとし、全ての連想ループ処理を完了する。
【０１０１】
アトラクタ収束判定処理４５０に於いて、アトラクタ収束状態であると判定されると、後進ニューラルネットワーク処理６１０の出力信号であるアトラクタ出力信号X(j+1)を基に、リングメモリ用ニューラルネトワーク処理４９０を介したリングメモリ読み出しによるアトラクタ識別、連想入力信号識別及び対応した学習入力データ読み出す処理を引き続き行う。ここで、これらの一連の連想ループ処理は、図７での処理と全て同一であることから、説明は省略する。
【０１０２】
本発明に於ける第３の実施形態に於けるリングメモリとアトラクタ識別機能を有した、前進追加学習ニューラルネットワークを用いた相互連想記憶装置の１構成例について、図５を用いて説明する。尚、ここでの前進追加学習ニューラルネットワーク２５の学習に於いて用いられる教師信号は、密な２値コード（例えば、教師信号としての２値コードの整数変換値が０から、或いはある整数値から連続となる場合など）に分類カテゴリｒを夫々割り当てることにより、スプリアス・アトラクタが発生しない場合及び、前進追加学習ニューラルネットワーク２５に於いて、Winner takes allのような疎な２値出力形式を持った教師信号が用いられる場合に、学習アトラクタ識別及びスプリアス・アトラクタ識別をアトラクタ検出識別処理２６に於いて行う例について説明する。
【０１０３】
尚、ここでは、説明を簡単にする為に、前進追加学習ニューラルネットワーク２５はR個の出力層ユニット数を持ち、その２値出力信号Y(j)として、One out of R  或いはWinner takes allと呼ばれる疎な２値符号化形式を仮定する。
【０１０４】
図５の相互連想記憶装置は、入力端子１１からの前進連想入力信号X(0)と後進ニューラルネットワーク３１からの出力信号の何れかを連想ループ制御処理部２８からの制御信号により切替選択し、入力端子１２を介して前進追加学習ニューラルネットワーク２５へ入力すると共に，アトラクタ検出識別処理部２６に送出する入力切替スイッチ４と、入力端子１２からの入力信号に対して出力信号を得、出力端子１３から分類カテゴリ出力信号として送出し、入力端子１７を介して後進ニュ-ラルネットワーク３１に入力すると共に、アトラクタ検出識別処理部２６へ送出する前進追加学習ニューラルネットワーク２５と、入力端子１７の入力信号に対する出力信号を得、入力切替スイッチ４及びアトラクタ検出識別処理部２６へ夫々送出すると共に、アトラクタ出力信号として出力端子１８から送出する後進ニューラルネットワーク３１と、連想ループ制御処理部２８の制御の基に、前進追加学習ニューラルネットワーク２５の入力信号及び出力信号と後進ニューラルネットワーク３１の出力信号とを入力し、アトラクタ収束状態を検出し、収束したアトラクタを識別し、アトラクタ検出識別信号を連想ループ制御処理部２８へ、アトラクタ識別信号を出力端子２７へ夫々送出するアトラクタ検出識別処理部２６と、出力端子１８を介して得られたアトラクタ出力信号、或いはリングメモリ用ニューラルネットワーク５の出力信号を連想ループ制御処理部２８からの制御信号の基に切り替え、入力端子１５を介してリングメモリ用ニューラルネットワーク５へ入力する入力切替スイッチ７と、入力端子１５を介して入力された入力信号に対する出力信号を、アトラクタ一致検出処理部２９、学習入力データメモリ８、連想入力識別処理部９及びフィードバックの為の入力切替スイッチ７へ夫々送出するリングメモリ用ニューラルネットワーク５と、リングメモリ用ニューラルネットワーク５からの出力信号を学習入力データとして連想ループ制御処理部２８の制御の基に夫々記憶し出力端子１６から出力する学習入力データメモリ８と、連想ループ制御処理部２８の制御の基に出力端子１８からのアトラクタ出力信号とリングメモリ用ニューラルネットワーク５の出力信号を夫々入力し、一致状態を検出し、アトラクタ一致判定信号を連想入力識別処理部９へ送出するアトラクタ一致検出処理部２９と、連想ループ制御処理部２８からの制御信号の基に、出力端子１８からのアトラクタ出力信号と入力端子１１からの連想入力信号X(0)とにより連想入力信号の学習・非学習入力データの識別を行ない出力端子２１から学習・非学習入力データ識別信号を送出する連想入力識別処理部９と、入力切替スイッチ４及び７、アトラクタ検出識別処理部２６、連想入力識別処理部９及びアトラクタ一致検出処理部２９、学習入力データメモリ８を夫々制御する連想ループ制御処理部２８とから構成される。
【０１０５】
尚、第１の実施形態に於ける自己連想記憶装置の１構成例を示す図１、第２の実施形態に於ける相互連想記憶装置の１構成例を示す図２、本実施形態の相互連想記憶装置の１構成例を示す図５、従来技術の構成例である図３及び図４に於いて、同一番号の機能は、同一である。従って、これらの詳細な説明は省略する。
【０１０６】
アトラクタ検出識別処理部２６では、表３に示すように、アトラクタ収束状態が検出された場合、前進追加学習ニューラルネットワーク２５のWinner takes all  ２値表現形式を持った出力信号Y(j)のハミング重み、Hamming・Weight{Y(j)}、即ちRビットからなる出力信号Y(j)の１となるビットの数を計算する。
その結果、
Hamming・Weight{Y(j)}≠1      （１）
を満足する場合には、前進追加学習ニューラルネットワーク２５の出力信号Y(j)が学習外カテゴリの２値出力信号であると識別される。即ち、分類カテゴリに割り当てられた２値教師信号以外の２値出力信号となっており、後進ニューラルネットワーク３１の出力であるアトラクタ出力信号はスプリアス・アトラクタで、スプリアス・アトラクタ識別となる。
【０１０７】
一方、
Hamming・Weight{Y(j)}＝1      （２）
を満たす場合には、前進追加学習ニューラルネットワーク２５の出力信号Y(j)が学習内カテゴリの出力信号と識別され、前進追加学習ニューラルネットワーク２５の教師信号の何れかと同じであり、後進ニューラルネットワーク３１の出力であるアトラクタ出力信号は、学習アトラクタであり、学習アトラクタ識別となる。
【０１０８】
以下に、これら一連の連想ループ処理の動作を説明する。連想ループ処理に先だって、前進追加学習ニューラルネットワーク２５では、相互連想記憶装置の第２の実施形態に於いて説明した如く、プロトタイプを用いた初期学習と、初期学習データ及びテストに於いて出力誤りとなったプロトタイプの近傍テストデータからなる追加学習データとを学習データとして追加学習して得られた重み係数が設定されている。
【０１０９】
また、図２と同様に、前進追加学習ニューラルネットワーク２５に於ける前記のプロトタイプとその教師信号からなる初期学習データに対して逆配置の入出力関係を持つ初期学習データに関して、後進ニューラルネットワーク３１が全て正解出力を送出し収束するよう学習させ、得られた重み係数を夫々設定しておく。
【０１１０】
前進追加学習ニューラルネットワーク２５は、後進ニューラルネットワーク３１と同一のデータ構造の２値出力信号を送出し、後進ニューラルネットワーク３１は前進連想入力信号と同一のデータ構造の出力信号を送出する。
更に、リングメモリ用ニューラルネットワーク５に於いても、図２と同様に、プロトタイプP(r)である初期学習入力データと学習入力データZ(r,ｎ)とを用いて、表１に示すリングメモリ用ニューラルネットワーク５の学習データを準備し、これらの学習データに対して全正解出力となり収束するよう学習を行ない、得られた重み係数をリングメモリ用ニューラルネットワーク５に設定する。
【０１１１】
アトラクタ検出識別処理部２６に関する連想ループ処理では、連想ループ制御処理部２８に於いて連想ループ回数j=0を初期設定し、連想ループ制御信号の基に、入力切替スイッチ４の設定及びアトラクタ検出識別処理部２６及び学習入力データメモリ８の内部状態、連想入力識別処理部９及びアトラクタ一致検出処理部２９などの初期設定を夫々行う。入力端子１１に前進連想入力信号X(0)が入力されると、入力切替スイッチ４は、入力端子１１と入力端子１２とを接続し、アトラクタ収束識別処理に関する連想ループ処理が実行される。
入力端子１１の前進連想入力信号X(0)が前進追加学習ニューラルネットワーク２５に入力され、更にアトラクタ検出識別処理部２６及び連想入力識別処理部９へ入力され記憶される。
【０１１２】
連想ループ回数j=0の場合に、前進連想入力信号X(0)に対応して、前進追加学習ニューラルネットワーク２５から分類カテゴリ出力信号としての出力信号Y(0)、更に後進ニューラルネットワーク３１から出力信号X(1)が夫々得られる。また、連想ループ回数j（但し、j≧1）の場合には、連想ループ制御処理部２８からの制御信号の基に、入力切替スイッチ４を介して入力端子１２に後進ニューラルネットワーク３１の出力信号X(j)が入力され、更に前進追加学習ニューラルネットワーク２５から出力信号Y(j)、後進ニューラルネットワーク３１から出力信号X(j+1)が夫々得られ、これらの比較の為に、アトラクタ検出識別処理部２６に夫々入力され記憶される。
【０１１３】
更に、アトラクタ検出識別処理部２６では、表３の如く、これらの前進追加学習ニューラルネットワーク２５及び後進ニューラルネットワーク３１の記憶された入出力信号X(j-1)、Y(j-1)、X(j)、Y(j)、X(j+1)を夫々比較し、アトラクタの収束状態の検出と識別を行う。連想ループ回数j(但し、j≧1)に於いて、X(j-1)=X(j)、Y(j-1)=Y(j)、X(j)=X(j+1)の関係を満たすとアトラクタ収束状態になる。j=1で、アトラクタ収束状態が検出されると、Y(j)が式（２）を満足し、学習内カテゴリであれば、One-Shot学習アトラクタ識別信号、式（１）を満足し、学習外カテゴリであれば、One-Shotスプリアス・アトラクタ識別信号、また、j≠1の場合には、夫々汎化学習アトラクタ識別信号、学習外カテゴリであれば、汎化スプリアス・アトラクタ識別信号を出力端子２７に夫々送出する。尚、連想ループ回数に無関係に、アトラクタの識別を単純に学習アトラクタ識別信号、スプリアス・アトラクタ識別信号及びアトラクタ発散識別信号としてもよい。
【０１１４】
また、表３の如く、アトラクタ検出識別処理部２６に於いて、アトラクタ未収束状態で、連想ループ回数ｊが連想ループ最大回数J未満であれば、連想ループ処理要求信号を、アトラクタ収束状態ならば、学習アトラクタ識別信号かスプリアス・アトラクタ識別信号かのアトラクタ識別信号を連想ループ制御処理部２８へ送出する。また、アトラクタ未収束状態で、連想ループ回数が最大回数Jであれば、アトラクタ発散状態として、アトラクタ発散識別信号を連想ループ制御処理部２８及び出力端子２７に送出する。
【０１１５】
連想ループ制御処理部２８では、アトラクタ未収束信号が入力されると、連想ループ処理を継続し、アトラクタ発散識別信号が入力されるとアトラクタ検出識別の為の連想ループ処理を終了する。
また、アトラクタ検出識別処理部２６からアトラクタ識別信号が入力されると、アトラクタ検出識別の為の連想ループ処理を終了し、学習・非学習データ識別とアトラクタ出力信号に対応した学習入力データをリングメモリ用ニューラルネットワーク５から読み出す為のリングメモリ読み出し処理の連想ループ処理を行う。以下これらの一連の処理について説明する。
【０１１６】
連想ループ制御処理部２８の制御の基に、アトラクタ検出識別処理部２６からアトラクタ識別信号としてのOne-Shot 及び汎化スプリアス・アトラクタ識別信号が入力された場合、或いはアトラクタ発散識別信号の場合には、アトラクタ出力信号は無意味な情報を有していることから、端子２７からスプリアス・アトラクタ識別信号、或いはアトラクタ発散識別信号を、また、端子２１からは、非学習入力識別信号を送出し、全ての連想ループ処理を完了させる。
一方、One-Shot或いは汎化学習アトラクタなどの学習アトラクタ識別信号が入力されると、出力端子１３から分類カテゴリ出力信号を得、更に、出力端子１８からのアトラクタ出力信号を基に、リングメモリ用ニューラルネットワーク５からのこれに対応した一連の追加学習入力データとプロトタイプとを読み出し、更に、前進連想入力信号X(0)が未知連想入力データであるか、プロトタイプ或いは追加学習入力データであるかの連想入力識別処理を行う。この為、入力切替スイッチ７を介して、後進ニューラルネットワーク３１の出力端子１８のアトラクタ出力信号X(j+1)が入力端子１５を介してリングメモリ用ニューラルネットワーク５に入力されると共に、学習入力データメモリ８及びアトラクタ一致検出処理部２９に入力記憶される。入力端子１５からのアトラクタ出力信号X(j+1)に対して、リングメモリ用ニューラルネットワーク５から出力信号Rout(1)を得、アトラクタ一致検出処理部２９、連想入力識別処理部９及び学習入力データメモリ８へ夫々入力する。
【０１１７】
アトラクタ一致検出処理部２９に於いて、アトラクタ出力信号X(j+1)と出力Rout(1)を比較し、不一致ならば、リングメモリ読み出しカウンタn=n+1と１増加し(但し、初期値n=0)し、連想ループ制御処理部２８の制御の基に入力切替スイッチ７を切替え、Rout(1)が入力端子１５を介してリングメモリ用ニューラルネットワーク５にフィードバック入力される。
アトラクタ一致検出処理部２９内のリングメモリ読み出しカウンタnが予め指定されたカテゴリ別読み出し最大カウント数Nmaxとなる範囲内で、アトラクタ出力信号X(j+1)と出力Rout(n)が一致するまで、上記の一連のフィードバックによる読み出し処理が繰り返される。尚、カテゴリ別読み出し最大カウント数Nnaxは、表１に示すカテゴリ別追加学習入力データ数nr内の最大値Nmaxを設定する。アトラクタ出力信号X(j+1)と出力Rout(n)が一致すると、分類カテゴリに対応した全ての学習入力データを読み出し、学習入力データメモリ８に記憶したこととなる。
【０１１８】
また、リングメモリ読み出し完了信号を連想入力識別処理部９へ出力する。連想入力識別処理部９では、この間に読み出された追加学習入力データの何れかに連想入力信号X(0)が一致していると、連想入力信号X(0)は追加学習入力データ或いはプロトタイプに一致していると、学習入力データ識別、何れとも一致していなければ、非学習入力データ識別とされ、出力端子２１から夫々送出される。また、連想ループ制御処理部２８へ全処理完了信号を送出する。連想ループ制御処理部２８がこの信号を受け取ると全ての一連の処理が完了し、新たな連想入力信号の受信状態とする。新たな前進連想入力信号X(0)が入力端子１１に入力されると、再び連想ループ回数j=0とし、上記の一連の連想ループ処理を実施する。
【０１１９】
本発明の第３の実施形態では、前進追加学習ニューラルネットワーク２５の２値出力形式として、Winner Takes All 或いはOne out of Rの出力形式を用いて、学習内外カテゴリ識別処理を行う場合について説明したが、この２値出力形式に限るものではなく、２値出力形式を基に前進追加学習ニューラルネットワーク２５の出力信号から学習内外カテゴリ識別が行えるものであればよい。また、例えば、特願2004-236466「相互連想記憶装置とそのソフトウェア」に詳細が記載されているが、２値教師信号である密な２値コード全てを連続した通し番号に整数値変換した、即ち、０から最大分類カテゴリ番号（=R-１）の通し番号から構成された分類カテゴリ番号領域を設け、前進追加学習ニューラルネットワーク２５の２値出力信号Y(j)を分類カテゴリ番号に変換し比較処理をする学習内外カテゴリ識別方法や、ある特定の整数値以上の分類カテゴリ番号から連続した分類カテゴリ番号から構成された分類カテゴリ番号領域を設け、これらを２値コードに対応させた教師信号を用いて学習させ、２値出力信号Y(j)を分類カテゴリ番号に変換し比較処理をする学習内外カテゴリ識別方法を用いても良い。このような出力表現形式の２値教師信号を用いた場合には、スプリアス・アトラクタは発生しないことから、アトラクタ検出識別処理部２６は、アトラクタ収束状態の検出機能だけでよい。
【０１２０】
即ち、上記の分類カテゴリ番号領域を表すために必要となる最小ビット数以上の２値コードの分散型出力形式を持った２値出力信号を用いても良い。特に、２値教師信号数或いは分類カテゴリ数Rが２のべき乗（R=2**Qで、完全パッキング・コード）である場合には、所要最小ビット数を用いることにより、学習外カテゴリを発生することはなく、常に学習アトラクタか汎化学習アトラクタに収束し、One-Shot及び汎化スプリアス・アトラクタを発生しない、非常に優れた特性が実現され、アトラクタ識別が簡単となる。
【０１２１】
尚、収束状態のアトラクタを、One-Shot学習アトラクタと汎化学習アトラクタ、One-Shotスプリアス・アトラクタと汎化スプリアス・アトラクタと夫々識別したが、これらを簡単に、学習トラクタとスプリアス・アトラクタとに識別してもよい。
上記の説明の如く、前進連想入力信号X(0)に対して、アトラクタ収束状態を検出し、アトラクタ識別を行う共に、分類カテゴリ出力信号Y(j)を得、プロトタイプに対応したアトラクタ出力信号X(j+1)を基に、前進連想入力信号の学習・非学習入力識別と、対応した一連の学習入力データの読み出しができる。
【０１２２】
次に、本発明の第３の実施形態に於ける図５に示す相互連想記憶処理に関して、連想入力信号X(0)が与えられた時の連想処理フローを図８に示す。尚、ここでは、前進追加学習ニューラルネットワーク処理７３０、後進ニューラルネットワーク処理６１０及びリングメモリ用ニューラルネットワーク処理４９０に於いて、前記と同様、追加学習及び学習が夫々既に完了していることを前提として処理フローを説明する。
【０１２３】
前進連想初期設定処理７００は、連想ループ回数判定処理４６０に於ける連想ループ最大回数J、及びアトラクタ識別処理７４０への表３に示すアトラクタ検出及び識別の条件設定など、初期パラメータ設定を行う。
連想ループ初期設定処理７１０では、連想ループ回数jの初期設定としてj=0、及びリングメモリ読み出しカウンタn=0の初期設定、連想入力―リングメモリ出力一致検出処理５１０及び学習入力データ記憶処理５００の内部状態のリセットを行う。
前進連想入力信号入力設定処理７２０では、前進連想入力信号X(0)を前進追加学習ニューラルネットワーク処理７３０、アトラクタ検出識別処理７４０及び連想入力-リングメモリ出力一致検出処理５１０へ夫々入力設定を行う。
【０１２４】
前進追加学習ニューラルネットワーク処理７３０は、連想ループ回数j=0で、入力された前進連想入力信号X(0)、或いは、連想ループ回数j>0の場合には、後進ニューラルネットワーク出力信号入力設定処理４８０を介して入力設定された出力信号X(j)を処理し、出力信号Y(0)、Y(j)を夫々送出する。
後進ニューラルネットワーク処理６１０では、入力されたY(0)、Y(j)に対して出力信号X(1)、X(j+1)を夫々送出する。
【０１２５】
アトラクタ検出識別処理７４０は、連想ループ回数j=0の場合には、前進追加学習ニューラルネットワーク処理７３０の入力信号X(0)、出力信号Y(0)及び後進ニューラルネットワーク処理６１０からの出力信号X(1)、或いは連想ループ回数jの場合には、前進追加学習ニューラルネットワーク処理７３０の入力信号X(j)、出力信号Y(j)及び後進ニューラルネットワーク処理６１０からの出力信号X(j+１)を用いた一致比較からアトラクタ収束状態の検出を行う。X(j)とX(j+1)とが一致すれば、アトラクタ収束状態、また、この時、連想ループ回数j=0であれば、One-Shotアトラクタ収束状態、連想ループ回数j≧1の場合、汎化アトラクタ収束状態とする。不一致ならばアトラクタ未収束状態とする。
【０１２６】
更に、アトラクタ収束判定処理４５０に於いて、アトラクタ収束状態であれば、夫々リングメモリ用ニューラルネットワーク処理４９０を行う。アトラクタ未収束状態であれば、連想ループ回数判定処理４６０を行う。
【０１２７】
連想ループ回数判定処理４６０では、連想ループ回数jが連想ループ最大回数J未満であれば、j←j+1設定処理４７０にて連想ループ回数jを１増加させる。
後進ニューラルネットワーク出力信号入力設定処理４８０では、X(j+1)を前進追加学習ニューラルネットワーク処理７３０の入力として設定する。その後、前回の連想ループ回数ｊの場合と同様に、前進追加学習ニューラルネットワーク処理７３０、後進ニューラルネットワーク処理６１０、アトラクタ検出識別処理７４０及びアトラクタ収束判定処理４５０を再度実施する。
【０１２８】
一方、連想ループ回数判定処理４６０にて、連想ループ回数j=Jならば、指定された最大回数Jの連想ループ処理に於いて、アトラクタに収束せず、連想入力信号X(0)がアトラクタ発散状態で不想起となったとし、連想入力識別設定処理６２０に於いて、連想入力信号X(0)が非学習入力識別信号と、アトラクタ発散識別信号を送出し、全ての連想ループ処理を完了する。
【０１２９】
アトラクタ判定識別処理７４０に於いて、アトラクタ収束状態であると判定されると、更に学習アトラクタかスプリアス・アトラクタかの識別を行う。
アトラクタ判定識別処理７４０では、前進追加学習ニューラルネットワーク処理７３０の出力信号Y(j)である２値出力コードのハミング重みを計算し、式（１）を満たす場合には、学習外カテゴリの２値出力信号であることからスプリアス・アトラクタと識別され、式（２）を満たす場合には、学習内カテゴリの出力信号であることから学習アトラクアと夫々識別される。
【０１３０】
学習アトラクタ判定処理７５０に於いて、後進ニューラルネットワーク処理６１０の出力信号であるアトラクタ出力信号X(j+1)が、スプリアス・アトラクタ識別であると判定されたならば、連想入力識別設定処理６３０に於いて、スプリアス・アトラクタ識別信号、非学習入力識別信号を送出して、全ての一連の連想ループ処理を完了する。
一方、学習アトラクタ識別であると判定されると、リングメモリ用ニューラルネットワーク処理４９０を介したリングメモリ読み出しによる連想入力信号識別処理、及び対応した学習入力データ読み出す処理を引き続き以下のように行う。
【０１３１】
リングメモリ用ニューラルネットワーク処理４９０にて、学習アトラクタであるアトラクタ出力信号X(j+1)を入力し、リングメモリ出力信号Rout(1)を得え、これを学習入力データ記憶処理５００にて記憶する。
更に、連想入力識別の為の連想入力―リングメモリ出力一致検出処理５１０にて、連想入力信号X(0)とリングメモリ出力信号Rout(1)の一致比較を行う。一旦一致すれば、学習入力データであり、追加学習入力データかプロトタイプであることが明らかであることから、学習入力データ一致状態を設定する。
【０１３２】
アトラクタ出力ー学習入力データ一致状態判定処理５２０にて、アトラクタ出力信号とリングメモリ出力Rout(1)との一致判定を行ない、不一致の場合には、リングメモリ読み出しカウンタｎ←n+1処理５４０にて、nを１増加して、リングメモリ用ニューラルネットワーク処理４９０を再度行ない、新たなリングメモリ出力信号Rout(n)を得る。更に、学習入力データ記憶処理５００、連想入力―リングメモリ出力一致検出処理５１０及びアトラクタ出力ー学習入力データ一致状態判定処理５２０を行う。
【０１３３】
アトラクタ出力ー学習入力データ一致状態判定処理５２０にて、アトラクタ出力信号X(j+1)がリングメモリ出力信号Rout(n)に一致すると、学習アトラクタであるアトラクタ出力信号X(j+1)に対応した追加学習入力データ及びプロトタイプP(r)を全て読み出したことから、連想入力識別処理５９０にて、連想入力―リングメモリ出力一致検出処理５１０の結果、学習入力データ一致状態が設定されておれば、連想入力信号X(0)は、学習入力データと識別される。更に、アトラクタ出力信号と一致すれば、プロトタイプで、不一致であれば、追加学習入力データと識別される。学習入力データ不一致状態が設定されておれば、連想入力信号X(0)は非学習入力データと識別される。
学習入力データ読み出し処理６００にて、学習アトラクタであるアトラクタ出力信号X(j+1)に対応した全ての追加学習入力データとプロトタイプとが読み出され、一連の連想ループ処理が全て完了する。
【０１３４】
尚、新たな連想入力信号X(0)が入力されると、連想ループ初期設定処理７１０を行ない、上記の一連の連想ループ処理を行う。
【０１３５】
上記の実施形態の連想記憶装置では、記憶量に対応した自己連想用ニューラルネットワークや前進追加学習ニューラルネットワークのプトロタイプである学習アトラクタの数が非常に多い場合、即ち連想記憶の所要記憶量が非常に大きい場合にも、多層ニューラルネットワークの中間層ユニット数を増やすことで、追加学習を確実に正しく収束させることができ連想記憶を実現することが可能である。従って、記憶容量を従来方式の連想記憶装置より飛躍的に連想特性を改善することができる。
【０１３６】
また、従来の自己連想メモリでは、記憶容量の制限から記憶できる学習アトラクタとして、代表的なものに限られ、然も互いに余り相関のない学習アトラクタであることの制限があったが、本実施形態の自己及び相互連想記憶装置では、この代表的な学習アトラクタ以外に、それらに似た大きな相関を持った複雑な入力データも追加学習入力データとして多く記憶でき、然も複雑な前進連想入力信号や後進連想入力信号に対しても学習アトラクタに収束させることができる。
【０１３７】
本発明の実施形態では、３層ニューラルネットワークを用いた場合について説明したが、３層以上の多層ニューラルネットワークでも良い。更に、多層ニューラルネットワークに限ることなく、入出力が同一の形式を持った２値教師信号を利用して学習させたニューラルネットワークでもよい。
また、分類カテゴリに対してWinner Takes allのような疎な２値出力コードを用いる代わりに、密な分散型２値コード、例えば、表し得る全ての２値コードに分類カテゴリを割り当てた出力２値コード（完全パッキング・コード）や、ある範囲内で連続した整数値に変換される２値コードに分類カテゴリを割り当てた出力２値コード（連続割り当てコード）などを用いた、高い汎化能力を持った前進追加学習ニューラルネットワークを適用してもよい。これにより、スプリアス・アトラクタを発生させることなく処理を行うこともできる。
【０１３８】
以上述べたように、従来の自己連想メモリでは、そのデータ記憶容量が非常に少ない。また、学習アトラクタ数や学習アトラクタの距離分布によっては、連想能力を高くできないなどの問題がある。
また、従来の相互連想メモリ装置は、データ記憶容量は大きくできるが、スプリアス・アトラクタが多く発生するなど、連想特性が余り優れていない。然も後進多層ニューラルネットワークからのアトラクタ出力信号は、所望の学習アトラクタかスプリアス・アトラクタかの識別や連想入力識別もできない。従って、アトラクタ出力信号を用いた応用処理システムでは誤動作が避けられない。
【０１３９】
これに対して、本発明の連想記憶装置に於いては、記憶する大量の学習アトラクタ数に応じて、中間層ユニット数を増やし、全正解出力となるよう収束させ追加学習を行った、非常に高い汎化能力を持った追加学習ニューラルネットワークを導入することにより、スプリアス・アトラクタの発生の大幅な削減とアトラクタ吸引力の改善が図られ、非常に優れた連想特性を持ち、然も非常に多量の学習アトラクタを記憶できる。また、プロトタイプ及び追加学習入力データを記憶したリングメモリの導入により、それらの読み出しループ処理に於ける、連想入力信号の学習・非学習入力データ識別、学習アトラクタ及びスプリアス・アトラクタ間のアトラクタ識別、及びアトラクタ出力信号に対応した全ての学習入力データの読み出しなどをダイナミックに行うことができる。
【０１４０】
このように自己及び相互連想記憶の構造面及び特性面で非常に優れており、種々の応用に合わせた自由な設計が可能で、然も信頼性も優れている。従って、従来の自己或いは相互連想記憶装置では、記憶容量だけでなく、アトラクタ吸引力、多くのスプリアス・アトラクタの発生などに関しても、種々の実用上の制約があったが、これらの問題を解決できる。
また、非常に優れた連想特性と大容量記憶能力以外に、カテゴリ分類能力、アトラクタ識別能力、連想入力識別能力及び収束したアトラクタ出力信号に対応した学習入力データ読み出し機能を有していることから、非常に幅広い応用処理システムにも適用できる。
【０１４１】
上記の幅広い効果から、本発明のリングメモリを有し、追加学習ニュ−ラルネットワークを用いた自己及び相互連想記憶装置は、セキュリティ管理システムや不正アクセス検出などのセキュリティシステムへの応用、バイオメトリクスに於ける各種高機能なパターン認識や多くの雑音などにより劣化した大容量の画像データなどの認識への応用、高速データ検索などへの応用、更にはネットワーク障害状態の異常状態検出などネットワーク障害検出システムへの応用など、非常に幅広く適用できる特徴を有している。
【図面の簡単な説明】
【０１４２】
【図１】本発明の第１の実施形態に於ける追加学習入力データを記憶したリングメモリとアトラクタ識別機能とを有した、自己連想用追加学習ニューラルネットワークとを用いた自己連想記憶装置の１構成例である。
【図２】本発明の第２の実施形態に於ける追加学習入力データを記憶したリングメモリとアトラクタ識別機能を有した、前進追加学習ニューラルネットワークを用いた相互連想記憶装置の１構成例である。
【図３】従来方式に於ける自己連想ニューラルネットワークによる自己連想記憶装置の１構成例である。
【図４】従来方式に於ける前進及び更新ニューラルネットワークを用いた相互連想記憶装置の１構成例である。
【図５】本発明の第３の実施形態に於ける追加学習入力データを記憶したリングメモリとアトラクタ識別機能を有した、前進追加学習ニューラルネットワークを用いた相互連想記憶装置の１構成例である。
【図６】本発明の第１の実施形態に於ける連想入力信号に対する自己連想記憶の連想ループ処理フロー図である。
【図７】本発明の第２の実施形態に於ける前進連想入力信号に対する相互連想メモリの連想ループ処理フロー図である。
【図８】本発明の第３の実施形態に於ける前進連想入力信号に対する相互連想メモリの連想ループ処理フロー図である。
【符号の説明】
【０１４３】
１  自己連想用追加学習ニューラルネットワーク
２  アトラクタ収束検出処理部
３  連想ループ制御処理部
４  入力切替スイッチ
５  リングメモリ用ニューラルネットワーク
６  アトラクタ識別処理部
７  入力切替スイッチ
８  学習入力データ記憶メモリ
９  連想入力識別処理部
１０  入力切替スイッチ
１１  連想入力信号端子
１２  ニューラルネットワーク入力端子
１３  ニューラルネットワーク出力端子
１４  アトラクタ識別出力端子
１５  リングメモリ入力端子
１６  学習データ出力端子
１７  後進ニューラルネットワーク入力端子
１８  後進ニューラルネットワーク出力端子
１９  後進連想入力端子
２０  アトラクタ収束検出出力端子
２１  連想入力識別出力端子  
２２  アトラクタ検出識別処理部  
２３  アトラクタ収束検出処理部
２４  連想ループ制御処理部
２５  前進追加学習ニューラルネットワーク
２６  アトラクタ検出識別処理部
２７  アトラクタ検出識別出力端子
２８  連想ループ制御処理部
２９  アトラクタ一致検出処理部
３１  後進ニューラルネットワーク
３２  前進ニューラルネットワーク
３３  自己連想用ニューラルネットワーク
３４  アトラクタ収束検出処理部
３５  連想ループ制御処理部
１００  連想初期設定処理
１１０  連想ループ初期設定処理
１２０  連想入力信号入力設定処理
１３０  自己連想用追加学習ニューラルネットワーク処理
１４０  アトラクタ収束検出処理
１５０  アトラクタ収束判定処理
１６０  連想ループ回数判定処理
１７０  連想ループ回数j←j+1設定処理
１８０  自己連想用追加学習ニューラルネットワーク出力信号入力設定処理
１９０  リングメモリ用ニューラルネットワーク処理
２００  学習入力データ記憶処理
２１０  連想入力―リングメモリ出力一致検出処理
２２０  アトラクタ出力ー学習入力データ一致状態判定処理
２３０  リングメモリ読み出し回数判定処理
２４０  リングメモリ読み出しカウンタｎのn←n+1設定処理
２５０  スプリアス・アトラクタ識別設定処理
２６０  アトラクタ識別処理
２７０  学習アトラクタ識別判定処理
２８０  連想入力非学習入力データ識別設定処理
２９０  連想入力識別処理
３００  学習入力データ読み出し処理
３１０  連想入力識別設定処理
４００  前進連想初期設定処理
４１０  連想ループ初期設定処理
４２０  前進連想入力信号入力設定処理
４３０  前進追加学習ニューラルネットワーク処理
４４０  アトラクタ収束検出処理
４５０  アトラクタ収束判定処理
４６０  連想ループ回数判定処理
４７０  連想ループ回数j←j+1設定処理
４８０  後進ニューラルネットワーク出力信号入力設定処理
４９０  リングメモリ用ニューラルネットワーク処理
５００  学習入力データ記憶処理
５１０  連想入力―リングメモリ出力一致検出処理
５２０  アトラクタ出力ー学習入力データ一致状態判定処理
５３０  リングメモリ読み出し回数判定処理
５４０  リングメモリ読み出しカウンタｎのn←n+1設定処理
５５０  スプリアス・アトラクタ識別設定処理
５６０  アトラクタ識別処理
５７０  学習アトラクタ識別判定処理
５８０  連想入力非学習入力データ識別設定処理
５９０  連想入力識別処理
６００  学習入力データ読み出し処理
６１０  後進ニューラルネットワーク処理
６２０  連想入力識別設定処理
６３０  連想入力識別設定処理
７００  前進連想初期設定処理
７１０  連想ループ初期設定処理
７２０  前進連想入力信号入力設定処理
７３０  前進追加学習ニューラルネットワーク処理
７４０  アトラクタ検出識別処理
７５０  学習アトラクタ識別判定処理
【図１】
2006285489.tif 000006
【図２】
2006285489.tif 000007
【図３】
2006285489.tif 000008
【図４】
2006285489.tif 000009
【図５】
2006285489.tif 000010
【図６】
2006285489.tif 000011
【図７】
2006285489.tif 000012
【図８】
2006285489.tif 000013