(57)【要約】【課題】ノードの数を事前に決定することなく、逐次的に入力される新たな連想対を既存の知識を壊すことなく追加学習することができる連想記憶装置、連想記憶方法、及びプログラムを提供すること。【解決手段】本発明に係る連想記憶装置は、連想のキーとなるベクトル及び当該連想キーより想起されるベクトルからなる連想対を学習した結果に基づき、当該連想対の一方のベクトルを想起キーとして他方のベクトルを想起する連想記憶装置であって、連想対を入力ベクトルとしてニューラルネットワークに順次入力し、当該入力ベクトル、及び当該ニューラルネットワークに配置される多次元ベクトルで記述されるノードに基づいて、当該ノードを自動的に増加させる自己増殖型ニューラルネットワークを用いて連想記憶を行うものである。【選択図】図１
2008299644.tif 000002
【特許請求の範囲】
【請求項１】
連想のキーとなるベクトル及び当該連想キーより想起されるベクトルからなる連想対を学習した結果に基づき、当該連想対の一方のベクトルを想起キーとして他方のベクトルを想起する連想記憶装置であって、
前記連想対を入力ベクトルとしてニューラルネットワークに順次入力し、当該入力ベクトル、及び当該ニューラルネットワークに配置される多次元ベクトルで記述されるノードに基づいて、当該ノードを自動的に増加させる自己増殖型ニューラルネットワークを用いて連想記憶を行う
ことを特徴とする連想記憶装置。
【請求項２】
前記自己増殖型ニューラルネットワークは、
入力される前記入力ベクトルに最も近い重みベクトルを持つノードと２番目に近い重みベクトルを持つノードの間に辺を接続したとき、
注目するノードと他のノード間の距離に基づいて算出される当該注目するノードの類似度閾値、及び前記入力ベクトルと当該注目するノード間の距離に基づいて、前記入力ベクトルをノードとして挿入するクラス間ノード挿入部と、
前記入力ベクトルに最も近いノードに対応する重みベクトル及び当該ノードと辺によって直接的に接続されるノードに対応する重みベクトルをそれぞれ前記入力ベクトルに更に近づけるように更新する重みベクトル更新部とを備える
ことを特徴とする請求項１記載の連想記憶装置。
【請求項３】
前記クラス間ノード挿入部は、
入力される前記入力ベクトルに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとし、当該第１勝者ノード及び当該第２勝者ノードの間に辺を接続したとき、
注目するノードについて、当該注目するノードと辺によって直接的に接続されるノードが存在する場合には、当該直接的に接続されるノードのうち当該注目するノードからの距離が最大であるノード間の距離を前記類似度閾値とし、当該注目するノードと辺によって直接的に接続されるノードが存在しない場合には、当該注目するノードからの距離が最小であるノード間の距離を前記類似度閾値として算出する類似度閾値算出部と、
前記入力ベクトルと前記第１勝者ノード間の距離が当該第１勝者ノードの類似度閾値より大きいか否か、及び、前記入力ベクトルと前記第２勝者ノード間の距離が当該第２勝者ノードの類似度閾値より大きいか否かを判定する類似度閾値判定部と、
類似度閾値判定結果に基づいて、前記入力ベクトルをノードとして当該入力ベクトルと同じ位置に挿入するノード挿入部とを備える
ことを特徴とする請求項２記載の連想記憶装置。
【請求項４】
前記自己増殖型ニューラルネットワークは、
前記辺に対応付けられる辺の年齢に基づいて、当該辺を削除する辺削除部と、
注目するノードについて、当該注目するノードに直接的に接続される辺の本数に基づいて、当該注目するノードを削除するノード削除部とを更に備える
ことを特徴とする請求項１記載の連想記憶装置。
【請求項５】
前記自己増殖型ニューラルネットワークは１層構造である
ことを特徴とする請求項１記載の連想記憶装置。
【請求項６】
前記自己増殖型ニューラルネットワークは、
前記連想対を入力ベクトルとして前記自己増殖型ニューラルネットワークに入力する入力部を更に備える
ことを特徴とする請求項１記載の連想記憶装置。
【請求項７】
前記入力部は、
前記連想対からなるベクトルを摂動したベクトルを入力ベクトルとして前記自己増殖型ニューラルネットワークに入力する
ことを特徴とする請求項６記載の連想記憶装置。
【請求項８】
前記連想対の一方のベクトルを想起キーとして前記自己増殖型ニューラルネットワークに入力して、前記連想対の他方のベクトルを前記自己増殖型ニューラルネットワークから出力する想起部とを更に備える
ことを特徴とする請求項１記載の連想記憶装置。
【請求項９】
前記想起部は、
前記連想対の一方のベクトルを想起キーとして前記自己増殖型ニューラルネットワークに入力して、当該想起キーとの距離が所定の閾値より小さい前記連想対の他方のベクトルを前記自己増殖型ニューラルネットワークから出力する
ことを特徴とする請求項８記載の連想記憶装置。
【請求項１０】
前記自己増殖型ニューラルネットワークは、ノードの集合であるクラスについて、各クラスの代表的なノードとしてのプロトタイプノードを生成するプロトタイプノード生成部を更に備え、
前記想起部は、前記連想対の一方のベクトルを想起キーとして前記自己増殖型ニューラルネットワークに入力して、前記プロトタイプノードに対応する前記連想対の他方のベクトルを前記自己増殖型ニューラルネットワークから出力する
ことを特徴とする請求項８記載の連想記憶装置。
【請求項１１】
連想のキーとなるベクトル及び当該連想キーより想起されるベクトルからなる連想対を学習した結果に基づき、当該連想対の一方のベクトルを想起キーとして他方のベクトルを想起する連想記憶方法であって、
前記連想対を入力ベクトルとしてニューラルネットワークに順次入力し、当該入力ベクトル、及び当該ニューラルネットワークに配置される多次元ベクトルで記述されるノードに基づいて、当該ノードを自動的に増加させる自己増殖型ニューラルネットワークを用いて連想記憶を行う
ことを特徴とする連想記憶方法。
【請求項１２】
前記自己増殖型ニューラルネットワークは、
入力される前記入力ベクトルに最も近い重みベクトルを持つノードと２番目に近い重みベクトルを持つノードの間に辺を接続したとき、
注目するノードと他のノード間の距離に基づいて算出される当該注目するノードの類似度閾値、及び前記入力ベクトルと当該注目するノード間の距離に基づいて、前記入力ベクトルをノードとして挿入するクラス間ノード挿入ステップと、
前記入力ベクトルに最も近いノードに対応する重みベクトル及び当該ノードと辺によって直接的に接続されるノードに対応する重みベクトルをそれぞれ前記入力ベクトルに更に近づけるように更新する重みベクトル更新ステップとを備える
ことを特徴とする請求項１１記載の連想記憶方法。
【請求項１３】
前記クラス間ノード挿入ステップは、
入力される前記入力ベクトルに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとし、当該第１勝者ノード及び当該第２勝者ノードの間に辺を接続したとき、
注目するノードについて、当該注目するノードと辺によって直接的に接続されるノードが存在する場合には、当該直接的に接続されるノードのうち当該注目するノードからの距離が最大であるノード間の距離を前記類似度閾値とし、当該注目するノードと辺によって直接的に接続されるノードが存在しない場合には、当該注目するノードからの距離が最小であるノード間の距離を前記類似度閾値として算出する類似度閾値算出ステップと、
前記入力ベクトルと前記第１勝者ノード間の距離が当該第１勝者ノードの類似度閾値より大きいか否か、及び、前記入力ベクトルと前記第２勝者ノード間の距離が当該第２勝者ノードの類似度閾値より大きいか否かを判定する類似度閾値判定ステップと、
類似度閾値判定結果に基づいて、前記入力ベクトルをノードとして当該入力ベクトルと同じ位置に挿入するノード挿入ステップとを備える
ことを特徴とする請求項１２記載の連想記憶方法。
【請求項１４】
前記自己増殖型ニューラルネットワークは、
前記辺に対応付けられる辺の年齢に基づいて、当該辺を削除する辺削除ステップと、
注目するノードについて、当該注目するノードに直接的に接続される辺の本数に基づいて、当該注目するノードを削除するノード削除ステップとを更に備える
ことを特徴とする請求項１１記載の連想記憶方法。
【請求項１５】
前記自己増殖型ニューラルネットワークは１層構造である
ことを特徴とする請求項１１記載の連想記憶方法。
【請求項１６】
前記自己増殖型ニューラルネットワークは、
前記連想対を入力ベクトルとして前記自己増殖型ニューラルネットワークに入力する入力ステップを更に備える
ことを特徴とする請求項１１記載の連想記憶方法。
【請求項１７】
前記入力ステップでは、
前記連想対からなるベクトルを摂動したベクトルを入力ベクトルとして前記自己増殖型ニューラルネットワークに入力する
ことを特徴とする請求項１６記載の連想記憶方法。
【請求項１８】
前記連想対の一方のベクトルを想起キーとして前記自己増殖型ニューラルネットワークに入力して、前記連想対の他方のベクトルを前記自己増殖型ニューラルネットワークから出力する想起ステップを更に備える
ことを特徴とする請求項１１記載の連想記憶方法。
【請求項１９】
前記想起ステップでは、
前記連想対の一方のベクトルを想起キーとして前記自己増殖型ニューラルネットワークに入力して、当該想起キーとの距離が所定の閾値より小さい前記連想対の他方のベクトルを前記自己増殖型ニューラルネットワークから出力する
ことを特徴とする請求項１８記載の連想記憶方法。
【請求項２０】
前記自己増殖型ニューラルネットワークは、ノードの集合であるクラスについて、各クラスの代表的なノードとしてのプロトタイプノードを生成するプロトタイプノード生成ステップを更に備え、
前記想起ステップでは、前記連想対の一方のベクトルを想起キーとして前記自己増殖型ニューラルネットワークに入力して、前記プロトタイプノードに対応する前記連想対の他方のベクトルを前記自己増殖型ニューラルネットワークから出力する
ことを特徴とする請求項１８記載の連想記憶方法。
【請求項２１】
請求項１１乃至２０いずれか１項記載の連想記憶処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自己増殖型ニューラルネットワークを用いて連想記憶を行う連想記憶装置、連想記憶方法、及びプログラムに関する。
【背景技術】
【０００２】
従来より、連想の機能を持つ連想記憶モデルの研究が盛んに行われている。"連想"という機能は人間が持つ知的プロセスのひとつであり、人間はこの機能を活用し生活している。例えば、人間は「赤くて丸い」という情報から「りんご」や「トマト」を連想して思い出すように、ある情報を連想のキーとして対応する情報を想起することができる。また、家族や友人の「顔の一部」や、時には「目だけ」、「口だけ」などといった情報からでも家族や友人の「顔の全体像」を思い出せるように、部分的な情報から全体像を想起することができる。
【０００３】
そして、連想を人間の知的処理にとって極めて重要な機能であるとみなし、連想の機能を導入することによって、実世界において人間のように知的に振る舞う知能システムの研究が近年行われている（非特許文献１乃至４など）。
【０００４】
一方、実世界において学習を行う学習器は、学習すべき項目を事前に全て列挙することが不可能であるという大きな問題を抱えている。これは、実世界は複雑かつ膨大な情報からなり、その全てを予め学習器に学習させることが事実上不可能なためである。従って、実世界に対処するため、学習器は次の２つの機能を備えることが必要不可欠となる。
（１）逐次的に与えられる新たな知識を追加的に学習可能であること。実世界において学習すべき項目を事前に全て列挙することは不可能であるため、予め用意された学習データのみを学習するというバッチ学習では、実世界における学習に対応することができない。このため、学習器は逐次的に入力される新たな情報を、既存の知識を壊すことなく学習しなければならない。
（２）高いノイズ耐性を持つこと。実世界から得られるデータは、ぶれや欠損による"データに乗ったノイズ"や、本来学習する必要の無いデータである"データと独立なノイズ"などが混じり込むため、学習器はこれら２種のノイズに対して耐性を持っていなければならない。
【０００５】
従来の連想記憶モデルは大別して２種に分けることができる。ひとつは、非特許文献５に開示されるホップフィールドネットや、非特許文献６に開示される双方向連想メモリ(Bidirectional Associative Memory:BAM)などに代表される連想記憶モデルである。これらのモデルは、相互に結合されたノード(素子)からなるニューラルネットワークであり、学習すべき連想対の情報が、全てのノードに分散かつ重複して記憶される(分散多重学習)。
【０００６】
もうひとつは、非特許文献７に開示される自己組織化マップ(Self Organizing Map:SOM)を用いた連想記憶モデルに代表される、競合学習によって連想を学習する連想記憶モデルである。このモデルは、新たに入力された学習データ及び既知の情報間の距離を計算し、距離が最小となるノード(勝ちノード)について、そのノードの重みベクトルを学習データのベクトルに近づけるように更新してゆくという方法により記憶を行う。即ち、学習すべき１つの連想対の情報が、１つのノードの重みベクトルとして記憶されてゆく。一般に、逐次的に入力されるデータを学習するという課題において、非特許文献７に開示される連想記憶モデルでは、上記の分散多重学習による連想記憶モデルに比べて、既存の記憶の損失が起き難く、高い性能を発揮する。
【０００７】
また、競合学習によって連想を学習する他の連想記憶モデルとして、非特許文献８に開示されるモデルでは、学習データに極めて近いベクトルを持つノードを十分に学習が進んだノードとみなして以後変化させないようにすることにより記憶を保持している。さらにまた、非特許文献９に開示されるモデルでは、そのようなノードの周辺のノード(近傍ノード)の学習率についても低下させることとし、新たな学習データからの影響を減少させ、記憶の頑健性を高めている。また、非特許文献１０に開示されるモデルでは、"記憶パターンの信頼度"という概念を導入し、ノードの持つ情報が新たな情報へ上書きされる度合いを信頼度の高低で制御することによって、限られたサイズのネットワークを用いて逐次的な追加学習を行っている。
【非特許文献１】Bisler.A, "An Associative Memory for Autonomous Agents," In Proc. of the Fourth International Conference on Intelligent Systems Design and Applications, 2004.
【非特許文献２】Rhodes.B.J, "Margin Notes: Building a Contextually Aware Associative Memory," in Proc. of the International Conference on Intelligent User Interface(IUI'00), pp 9-12, 2000.
【非特許文献３】Itoh.K, Miwa.H,Nukariya.Y, Zecca.M, Takanobu.H, Dario.P and Takanishi.A, "New memory model for humanoid robots - introduction of co-associative memory using mutually coupled chaotic neural networks," in Proc. of the 2005 International Joint Conference on Neural Networks(IJCNN'05), pp 2790-2795, 2005.
【非特許文献４】Mizutani.K, Omori.T, "On-line Map Formation and Path Planning for Mobile Robot by Associative Memory with Controllable Attention," in Proc. Of the 1999 International Joint Conference on Neural Networks(IJCNN'99), pp 2051-2056, 1999.
【非特許文献５】Hopfield.J.J, "Neural network and physical systems with emergent collective computational abilities, " Proceedings of the National Academy of Sciences of the United States of America, Vol.79, No.8, pp 2554-2558,1982.
【非特許文献６】Kosko.B, "Bidirectional Associative Memories, " IEEE Trans. Systems, Man and Cybernetics, Vol.18, No.1, pp 49-60, 1988.
【非特許文献７】Ichiki.H, Hagiwara.M and Nakagawa.M, "Kohonen feature maps as a supervised learning machine, " in Proc. of the IEEE International Conference on Neural Networks, pp 1944-1948, 1993.
【非特許文献８】Kondo.S, Futami.R, Hoshimiya.N, "Pattern recognition with feature map and the improvement on sequential learning ability, " 信学技報, Vol.95, No.599, pp 55-60, 1996.
【非特許文献９】Yamada.T, Hattori.M, Morisawa.M, Ito.H, "Sequential Learning for Associative Memory using Kohonen Feature Map, " in Proc. of the 1999 International Joint Conference on Neural Networks (IJCNN'99), pp 1920-1923, 1999.
【非特許文献１０】Yoshizawa.S, Doki.S, Okuma.S, " A New Associative Memory System for Supplemental Learning under Restriction on Memory Capacity, " IEICE Trans. Information and System , Vol.J82-D , No. (6), pp 1072-1081, 1999.
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、Frenchが指摘したように、非特許文献５及び６に開示されるモデルでは、逐次的に学習データを与えて追加的な学習を行った場合には、新たな情報の記憶によって既存の記憶が失われてしまうという追加学習性の問題を抱えている（French.R.M, "Using Semi-Distributed Representation to Overcome Catastrophic Forgetting in Connectionist Networks, " Pm. of the 13th Annual Cognitive Science Society Conference, pp 173-178, 1991.）。このため、予め学習対象となる知識を準備し、バッチ学習により学習を行う必要があるが、実世界において学習すべき知識を事前に全て準備することは事実上不可能である。従って、これらのモデルを利用した知能システムでは、事前に準備した知識によって扱いきれない環境においては正確に機能しない可能性があるため、実世界において動作するシステムとして用いるには適切ではない。
【０００９】
また、非特許文献７に開示されるモデルであっても、逐次的に学習データを与えて追加的な学習を行う場合に、既存の記憶が失われるという問題を完全に解決したものではない。新たな学習データは、ネットワーク中に存在するノードのうちで、学習データと最も距離の小さなノード(勝ちノード)により学習される。このため、新たな学習データとノードの持つデータとが全く異なった場合であってもそのノードが勝ちノードとなり学習されるため、既存の情報を損失する可能性がある。また、自身が勝ちノードとならない場合であっても、新たな学習データは勝ちノードの周囲ノードの重みベクトルをも更新してしまうため、新たな学習データに影響され、記憶していた情報を喪失する可能性がある。
【００１０】
さらにまた、非特許文献８乃至１０に開示されるモデルであっても、実世界で学習を行うモデルとしては適当とは言えない。なぜならば、これらのモデルはネットワークを構成するノードの数を事前に決定する必要があり、ネットワークの容量を超えて情報を覚えさせようとした場合には、既存の記憶を喪失する、あるいは新たな情報を覚えられないという問題を抱えているためである。
【００１１】
このような問題に対しては、事前に巨大なネットワークを用意することによって、システムは学習した項目の殆どを(記憶容量を超えない限り)記憶することが可能となる。しかし、学習データが入力される都度、全てのノードが持つ重みベクトルとの距離を計算する必要があるため、学習項目が少ない場合には無駄な処理時間及びメモリの浪費を生み出すことになる。このため、実世界で学習を行うモデルとしては不十分なものである。
【００１２】
他方、実世界において学習を行う学習器は高いノイズ耐性を有することが要求されるが、従来技術では、ぶれや欠損による"データに乗ったノイズ"、及び本来学習すべきでないデータである"データと独立なノイズ"というこれら２種のノイズに対して十分な耐性を有していないものであった。
【００１３】
ここで、実環境から得られるノイズデータとは、データの一部が欠損・変質したノイズ、及びデータそのものがノイズ(無意味なランダムパターンなど)というこれら２種類のノイズを想定する。以下では、前者を"データに乗ったノイズ"、後者を"データと独立なノイズ"という。例えば図２７(ａ)は"データに乗ったノイズ"の一例を示している。学習器はこのような入力が想起キーとして与えられた場合においても、ノイズの影響を排除して正確に想起を行う必要がある。このノイズに対する耐性は従来技術も有しているものの、後述するように、例えばノイズが２０％の時点において従来技術では正解率が７０％以下となるなど、ノイズ耐性が不十分なものであった。また、例えば図２７(ｂ)は"データと独立なノイズ"の一例を示している。学習器はこのような無意味なパターン(学習したパターンと全く異なるパターン)が想起キーとして入力された場合には、その入力を未知であるものと適切に判定する必要があるものの、従来技術では正確な判定をすることができず、不正な想起結果を出力するものであった。
【００１４】
このように、従来の連想記憶モデルでは、ネットワークを構成するノードの数を事前に決定しなければならず、ネットワークの容量を超えて情報を記憶させようとした場合には、既存の記憶を失うことがあり、正確に追加学習を実現することができないという問題がある。
【００１５】
さらに、"データに乗ったノイズ"及び"データと独立なノイズ"という２種のノイズ両方に対して、十分なノイズ耐性を有していないという問題がある。
【００１６】
本発明は係る課題を解決するためになされたものであり、ノードの数を事前に決定することなく、逐次的に入力される新たな連想対を既存の知識を壊すことなく追加学習することができる連想記憶装置、連想記憶方法、及びプログラムを提供することを第１の目的とする。
【００１７】
さらに、"データに乗ったノイズ"及び"データと独立なノイズ"という２種のノイズ両方に対して、高いノイズ耐性を有する連想記憶装置、連想記憶方法、及びプログラムを提供することを第２の目的とする。
【課題を解決するための手段】
【００１８】
本発明に係る連想記憶装置は、連想のキーとなるベクトル及び当該連想キーより想起されるベクトルからなる連想対を学習した結果に基づき、当該連想対の一方のベクトルを想起キーとして他方のベクトルを想起する連想記憶装置であって、前記連想対を入力ベクトルとしてニューラルネットワークに順次入力し、当該入力ベクトル、及び当該ニューラルネットワークに配置される多次元ベクトルで記述されるノードに基づいて、当該ノードを自動的に増加させる自己増殖型ニューラルネットワークを用いて連想記憶を行うものである。
【００１９】
本発明においては、ノードの数を事前に決定することなく、逐次的に入力される新たな連想対を既存の知識を壊すことなく追加学習することができる。
【００２０】
また、前記自己増殖型ニューラルネットワークは、入力される前記入力ベクトルに最も近い重みベクトルを持つノードと２番目に近い重みベクトルを持つノードの間に辺を接続したとき、注目するノードと他のノード間の距離に基づいて算出される当該注目するノードの類似度閾値、及び前記入力ベクトルと当該注目するノード間の距離に基づいて、前記入力ベクトルをノードとして挿入するクラス間ノード挿入部と、前記入力ベクトルに最も近いノードに対応する重みベクトル及び当該ノードと辺によって直接的に接続されるノードに対応する重みベクトルをそれぞれ前記入力ベクトルに更に近づけるように更新する重みベクトル更新部とを備えるようにしてもよい。これにより、類似度閾値に基づいて、挿入されるノードの個数を自律的に管理することができるため、ノードの数を事前に決定することなく、逐次的に入力される新たな連想対を既存の知識を壊すことなく追加学習することができる。
【００２１】
さらにまた、前記クラス間ノード挿入部は、入力される前記入力ベクトルに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとし、当該第１勝者ノード及び当該第２勝者ノードの間に辺を接続したとき、注目するノードについて、当該注目するノードと辺によって直接的に接続されるノードが存在する場合には、当該直接的に接続されるノードのうち当該注目するノードからの距離が最大であるノード間の距離を前記類似度閾値とし、当該注目するノードと辺によって直接的に接続されるノードが存在しない場合には、当該注目するノードからの距離が最小であるノード間の距離を前記類似度閾値として算出する類似度閾値算出部と、前記入力ベクトルと前記第１勝者ノード間の距離が当該第１勝者ノードの類似度閾値より大きいか否か、及び、前記入力ベクトルと前記第２勝者ノード間の距離が当該第２勝者ノードの類似度閾値より大きいか否かを判定する類似度閾値判定部と、類似度閾値判定結果に基づいて、前記入力ベクトルをノードとして当該入力ベクトルと同じ位置に挿入するノード挿入部とを備えるようにしてもよい。これにより、入力ベクトルに応じて変化する類似度閾値によれば、挿入されるノードの個数を自律的に管理することができるため、ノードの数を事前に決定することなく、逐次的に入力される新たな連想対を既存の知識を壊すことなく追加学習することができる。
【００２２】
また、前記自己増殖型ニューラルネットワークは、前記辺に対応付けられる辺の年齢に基づいて、当該辺を削除する辺削除部と、注目するノードについて、当該注目するノードに直接的に接続される辺の本数に基づいて、当該注目するノードを削除するノード削除部とを更に備えるようにしてもよい。これにより、本来学習すべきでないデータである"入力データとは独立なノイズ"を効果的かつ動的に削除することができる。
【００２３】
さらにまた、前記自己増殖型ニューラルネットワークは１層構造であるようにしてもよい。これにより、非特許文献：F. Shen and O. Hasegawa, "An Incremental Network for On-line Unsupervised Classification and Topology Learning, " Neural Networks, vol. 19, pp. 90-106, 2006.に開示された技術であるSelf-Organizing Incremental Neural Network（以下、ＳＯＩＮＮという。）と比べて、２層目の学習を開始するタイミングを指定せずに追加学習を実行することができる。即ち、完全なオンラインでの追加学習を実行することができる。
【００２４】
また、前記自己増殖型ニューラルネットワークは、前記連想対を入力ベクトルとして前記自己増殖型ニューラルネットワークに入力する入力部を更に備えるようにしてもよい。これにより、連想対をひとつの入力ベクトルとして、自己増殖型ニューラルネットワークに容易に入力することができる。
【００２５】
さらにまた、前記入力部は、前記連想対からなるベクトルを摂動したベクトルを入力ベクトルとして前記自己増殖型ニューラルネットワークに入力するようにしてもよい。これにより、入力ベクトルをある程度の広がりをもたせることで、入力ベクトルに応じて生成されるノードからなるクラスタを柔軟に形成することができる。
【００２６】
また、前記連想対の一方のベクトルを想起キーとして前記自己増殖型ニューラルネットワークに入力して、前記連想対の他方のベクトルを前記自己増殖型ニューラルネットワークから出力する想起部とを更に備えるようにしてもよい。これにより、連想対の一部より、その連想対の他の一部を自己増殖型ニューラルネットワークから容易に出力することができる。
【００２７】
さらにまた、前記想起部は、前記連想対の一方のベクトルを想起キーとして前記自己増殖型ニューラルネットワークに入力して、当該想起キーとの距離が所定の閾値より小さい前記連想対の他方のベクトルを前記自己増殖型ニューラルネットワークから出力するようにしてもよい。これにより、入力される想起キーが既知か否かを容易に判定することができ、ランダムパターンなどが想起キーとして入力された場合には、入力された想起キーが未知であるものと適切に判定することができる。
【００２８】
また、前記自己増殖型ニューラルネットワークは、ノードの集合であるクラスについて、各クラスの代表的なノードとしてのプロトタイプノードを生成するプロトタイプノード生成部を更に備え、前記想起部は、前記連想対の一方のベクトルを想起キーとして前記自己増殖型ニューラルネットワークに入力して、前記プロトタイプノードに対応する前記連想対の他方のベクトルを前記自己増殖型ニューラルネットワークから出力するようにしてもよい。これにより、ぶれや欠損による"入力データに乗ったノイズ"によって影響を受けたノードを避けてプロトタイプノードを出力することで、想起結果の歪みの軽減を図ることができる。
【００２９】
本発明に係る連想記憶方法は、連想のキーとなるベクトル及び当該連想キーより想起されるベクトルからなる連想対を学習した結果に基づき、当該連想対の一方のベクトルを想起キーとして他方のベクトルを想起する連想記憶方法であって、前記連想対を入力ベクトルとしてニューラルネットワークに順次入力し、当該入力ベクトル、及び当該ニューラルネットワークに配置される多次元ベクトルで記述されるノードに基づいて、当該ノードを自動的に増加させる自己増殖型ニューラルネットワークを用いて連想記憶を行うものである。
【００３０】
本発明に係るプログラムは、上述のような情報処理をコンピュータに実行させるものである。
【発明の効果】
【００３１】
本発明によれば、ノードの数を事前に決定することなく、逐次的に入力される新たな連想対を既存の知識を壊すことなく追加学習することができる連想記憶装置、連想記憶方法、及びプログラムを提供することができる。
【００３２】
さらに、"データに乗ったノイズ"及び"データと独立なノイズ"という２種のノイズ両方に対して、高い耐性を有する連想記憶装置、連想記憶方法、及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。尚、各図面において、同一要素には同一の符号を付しており、説明の明確化のため、必要に応じて重複説明を省略する。
【００３４】
発明の実施の形態１．
本実施の形態１は、本発明を、連想のキーとなるベクトル及びその連想キーより想起されるベクトルからなる連想対を学習した結果に基づき、その連想対の一方のベクトルを想起キーとして他方のベクトルを想起する連想記憶装置に適用したものである。
【００３５】
連想記憶装置は、事前にノード数を決定することなく追加学習を実現するため、自己増殖型ニューラルネットワークを用いて連想記憶を行う。自己増殖型ニューラルネットワークは、連想対を入力ベクトルとしてニューラルネットワークに順次入力し、入力ベクトル、及びニューラルネットワークに配置される多次元ベクトルで記述されるノードに基づいて、ノードを自動的に増加させることにより連想対を学習する。
【００３６】
学習処理においては、自己増殖型ニューラルネットワークは、ノードの類似度閾値、及びノード間の距離に基づいて、入力ベクトルをノードとして挿入し、ノードに対応する重みベクトルを入力ベクトルに更に近づけるように更新する。そして、ノイズを削除するため、辺の年齢に基づいて、ノード間に存在する辺を削除すると共に、辺の本数に基づいて、ノードを削除する。また、学習処理においては、連想対は入力部を介して自己増殖型ニューラルネットワークに入力され、この際、入力部において、連想対からなるベクトルが摂動される。
【００３７】
一方、想起処理においては、連想対の一方のベクトルを想起キーとして自己増殖型ニューラルネットワークに入力され、想起キーとの距離が所定の閾値より小さい連想対の他方のベクトルを出力することによって想起結果が得られる。そして、想起結果として、各クラスの代表的なノードであるプロトタイプノードが出力される。
【００３８】
図１は、本発明の実施の形態１に係る連想記憶装置１を示すブロック図である。連想記憶装置１は、学習部１０及び想起部２０を備え、学習用の連想対が格納された学習用連想対データベース（ＤＢ）３０と接続されている。自己増殖型ニューラルネットワークとしての学習部１０は、入力部１１、及びＳＯＩＮＮ１２を備える。後述するＳＯＩＮＮ１２は、クラス間ノード挿入部１２１と、辺削除部１２２と、ノード削除部１２３と、重みベクトル更新部１２４と、プロトタイプノード生成部１２５とを備える。
【００３９】
次に、各ブロックについて以下詳細に説明する。学習部１０は、連想対を学習することにより記憶する。より具体的には、連想のキーとなるベクトル及び連想キーより想起されるベクトルからなる連想対が学習用連想対ＤＢ３０に格納されている場合に、学習用連想対ＤＢ３０より連想対が与えられると、学習部１０は、入力部１１を介して連想対を入力ベクトルとして受け取り、入力ベクトル及び連想対の知識に対応するノードを生成し、生成されたノード及びノード間の辺に基づいて、ノードを自律的に増加させることによって連想対を学習する。即ち、連想対の知識を保持するノードを記憶する。
【００４０】
図２は、学習部１０の構造を示す概念図である。図２に示すように、学習部１０は、入力部１１としての入力層（Ｉｎｐｕｔ  Ｌａｙｅｒ）及び、ＳＯＩＮＮ１２としての競合層（Ｃｏｍｐｅｔｉｔｉｖｅ  Ｌａｙｅｒ）を備える。
【００４１】
入力部１１は、連想対を入力ベクトルとしてＳＯＩＮＮ１２に入力する。図２においては、入力層のそれぞれの部位が連想のキーとなるベクトル及び想起されるベクトルに対応する。入力層は、２つの部位に入力された連想対のベクトルを結合してひとつのベクトルとし、競合層への入力信号を生成する。例えば、Ｆを連想のキーとなるＭ次元ベクトル、Ｒを連想のキーＦから想起されるＮ次元ベクトルとした場合に、入力層は、入力された連想対である２つのベクトルＦ及びＲをＭ＋Ｎ次元の入力ベクトルＸとして統合する。ここで、Ｆ及びＲは、−１から１に正規化した実数値ベクトルである。
また、入力部１１は、入力ベクトルＸに対して正規分布に従う摂動を加えて、競合層への入力データを生成する。このように摂動を加えて入力ベクトルＸをある程度の広がりをもたせることで、競合層において生成されるノードからなるクラスタを柔軟に形成させることができる。
【００４２】
このように、入力層より競合層へと入力ベクトルを与えて、競合層においてクラスタリング処理を行うことにより、自己増殖型ニューラルネットワークを用いて連想対の学習を実現することができる。
【００４３】
ＳＯＩＮＮ１２は、入力ベクトル及びニューラルネットワークに配置されるノードに基づいて、ノードを自動的に増加させる自己増殖型ニューラルネットワークであり、本実施の形態１においては、従来技術であるＳＯＩＮＮの１層目を改良した競合層を用いる。
【００４４】
従来技術であるＳＯＩＮＮは２層の競合層を有するため、入力データにオーバーラップが存在する場合であっても適切にクラスタリングが可能であるという利点を有するものの、本実施の形態１において使用する連想対ベクトルについてはオーバーラップを想定しないため、計算時間、メモリ使用量などの観点より１層のみを競合層として使用する。１層構造とすることにより、ＳＯＩＮＮと比べて、２層目の学習を開始するタイミングを指定せずに追加学習を実行することができる。即ち、完全なオンラインでの追加学習を実行することができる。また、自己増殖型ニューラルネットワークはＳＯＩＮＮに限定されず、後述するａｄｊｕｓｔｅｄ  ＳＯＩＮＮや、Ｅｎｈａｎｃｅｄ−ＳＯＩＮＮ（以下、Ｅ−ＳＯＩＮＮという。）などとしても１層構造とすることができ、２層目の学習を開始するタイミングを指定せずに追加学習を実行することができる。
【００４５】
以下、まず、従来技術であるＳＯＩＮＮについて簡単に説明し、次いで本実施の形態１にかかるＳＯＩＮＮ１２について説明する。
ＳＯＩＮＮは、非特許文献：Fritzke.B, "A growing neural gas network learns topologies, " Advances in neural information processing systems(NIPS), pp 625-632, 1995.に開示された技術であるＧｒｏｗｉｎｇ Ｎｅｕｒａｌ Ｇａｓ（以下、ＧＮＧという。）を拡張した、いわゆる自己増殖型ニューラルネットワークと呼ばれる教師なし追加学習手法である。ノードを自己増殖しながら入力ベクトルを逐次的に学習することにより、入力データの分布を表現するネットワークを追加的に構築することができる。ＳＯＩＮＮは、次の４つの利点を有する。
（１）過去に学習したクラスタを壊さずに、新規に入力される未知クラスの入力ベクトルを追加的に学習して、新規のクラスタを構築することができる。
（２）入力データに対して独立なノイズを、効果的かつ動的に除去することができる。
（３）逐次的に与えられる教師無しデータについて、その位相構造を表現するネットワークを自律的に構築することができる。
（４）ノード数を事前に決定せずに、入力ベクトルを近似することができる。
【００４６】
図３は、従来技術であるＳＯＩＮＮによる学習処理を説明するためのフローチャートである。以下、図３を用いてＳＯＩＮＮの処理を説明する。ここで、ＳＯＩＮＮは２層ネットワーク構造を有し、１層目及び２層目において同様の学習処理を実施する。また、ＳＯＩＮＮは、１層目の出力である学習結果を２層目への入力ベクトルとして利用する。
【００４７】
Ｓ１０１：ＳＯＩＮＮに対して入力ベクトルを与える。
Ｓ１０２：与えられた入力ベクトルに最も近いノード(以下、第１勝者ノードという。)、及び２番目に近いノード(以下、第２勝者ノードという。)を探索する。
Ｓ１０３：第１勝者ノード及び第２勝者ノードの類似度閾値に基づいて、入力ベクトルがこれら勝者ノードの少なくともいずれか一方と同一のクラスタに属すか否かを判定する。ここで、ノードの類似度閾値はボロノイ領域の考えに基づいて算出する。学習過程において、ノードの位置は入力ベクトルの分布を近似するため次第に変化し、それに伴いボロノイ領域も変化する。即ち、類似度閾値もノードの位置変化に応じて適応的に変化してゆく。
Ｓ１０４：Ｓ１０３における判定の結果、入力ベクトルが勝者ノードと異なるクラスタに属す場合は、入力ベクトルと同じ位置にノードを挿入し、Ｓ１０１へと進み次の入力ベクトルを処理する。尚、このときの挿入をクラス間挿入と呼ぶ。
Ｓ１０５：一方、入力ベクトルが勝者ノードと同一のクラスタに属す場合は、第１勝者ノード及び第２勝者ノード間に辺を生成し、ノード間を辺によって直接的に接続する。
Ｓ１０６：第１勝者ノード及び第１勝者ノードと辺によって直接的に接続しているノードの重みベクトルをそれぞれ更新する。
Ｓ１０７：Ｓ１０５において生成された辺は年齢を有しており、予め設定された閾値を超えた年齢を持つ辺を削除する。入力ベクトルを逐次的に与えてゆくオンライン学習においては、ノードの位置が常に徐々に変化してゆくため、初期の学習で構成した隣接関係が以後の学習によって成立しない可能性がある。このため、一定期間を経ても更新されないような辺について、辺の年齢が高くなるように構成することにより、学習に不要な辺を削除することができる。
【００４８】
Ｓ１０８：入力ベクトルの入力総数が、予め設定されたλの倍数であるか否かを判定する。判定の結果、入力ベクトルの入力総数がλの倍数でない場合には、Ｓ１０１へと戻り次の入力ベクトルを処理する。一方、入力ベクトルの総数がλの倍数となった場合には以下の処理を実行する。
Ｓ１０９：局所累積誤差が最大であるノードを探索し、そのノード付近に新たなノードを挿入する。ノードの持つ平均誤差を示す誤差半径に基づいて、ノード挿入が成功であったか否かを判定する。尚、このときの挿入をクラス内挿入と呼ぶ。ここで、ノード及び入力ベクトル間の距離差をノードの持つ誤差として、入力ベクトルの入力に応じてノードの誤差を累積することにより局所累積誤差を算出する。誤差半径はノードの持つ誤差及びノードが第１勝者となった回数に基づいて算出する。
Ｓ１１０：クラス内挿入によるノード挿入が成功であると判定した場合には、クラス内挿入により挿入されたノード及び局所累積誤差が最大のノードを辺によって直接的に接続する。一方、クラス内挿入によるノード挿入が失敗であると判定した場合には、クラス内挿入により挿入したノードを削除してＳ１１１へと進む。
Ｓ１１１：隣接ノード数及びノードが第１勝者となった回数に基づいて、ノイズノードを削除する。ここで、隣接ノードとは、ノードと辺によって直接的に接続されるノードを示し、隣接ノードの個数が１以下であるノードを削除対象とする。また、第１勝者となった回数の累積回数を予め設定されたパラメタｃを使用して算出される閾値と比較し、第１勝者累積回数が閾値を下回るノードを削除対象とする。
【００４９】
Ｓ１１２：入力ベクトルの入力総数が予め設定されたＬＴの倍数であるか否かを判定する。判定の結果、入力ベクトルの入力総数がＬＴの倍数でない場合には、Ｓ１０１へと戻り次の入力ベクトルを処理する。一方、入力ベクトルの総数がＬＴの倍数となった場合には、以下の処理を実行する。
Ｓ１１３：１層目の学習を終了するか否かを判定する。判定の結果、２層目の学習へと進む場合には、Ｓ１０１へと進み１層目の学習結果であるノードを２層目への入力ベクトルとして入力する。ただし、追加学習を行う場合は、２層目に残っている以前の学習結果を消去した上で２層目の学習を開始する。
２層目への入力回数が予め設定された回数ＬＴの倍数となり２層目の学習を終了する場合には、ノードを異なるクラスに分類し、クラス数及び各クラスの代表的なプロトタイプベクトルを出力し停止する。ここで、プロトタイプベクトルはノードの重みベクトルに相当する。
【００５０】
ここで、ＳＯＩＮＮの機能を検証するために人工データセットを用いて行った実験を示す。図４は、ＳＯＩＮＮへと入力した２次元の人工データを示す画像である。図４に示した入力データセットは、２つのガウス分布、２つの同心円、及びサイン曲線の合計５つの信号発生源（クラス）からなる。また、実環境を想定して、５つの信号発生源から発生する信号に対して、１０％の一様ノイズを加えた。ＳＯＩＮＮに対して、図４に示した人工データセットをオンラインで追加的に入力し、教師無しのクラス分類を行わせた。
【００５１】
図５は、図４に示した２次元の人工データをＳＯＩＮＮへと追加的に入力した場合における出力結果を示す画像である。図５に示すように、ＳＯＩＮＮは、入力データに含まれるノイズを削除することが可能であると共に、入力データのクラス数及びそのトポロジ（位相構造）を正しく抽出することができる。このように、ＳＯＩＮＮは、ノード数を自律的に管理することにより非定常的な入力を学習することができ、分布に複雑な形状を持つクラスに対しても適切なクラス数及び位相構造を抽出できるなど多くの利点を持つ。ＳＯＩＮＮの応用例として、例えばパターン認識においては、ひらがな文字のクラスを学習させた後に、カタカナ文字のクラスなどを追加的に学習させることができる。
【００５２】
次いで、本実施の形態１に係るＳＯＩＮＮ１２について説明する。
ＳＯＩＮＮ１２は、クラス間ノード挿入部１２１と、辺削除部１２２と、ノード削除部１２３と、重みベクトル更新部１２４と、プロトタイプノード生成部１２５とを備える。
【００５３】
クラス間ノード挿入部１２１は、類似度閾値算出部、類似度閾値判定部、及びノード挿入部を備える。クラス間ノード挿入部１２１は、入力される入力ベクトルに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとし、第１勝者ノード及び第２勝者ノードの間に辺を接続したとき、以下に述べるようにしてノードを挿入する。
【００５４】
まず、類似度閾値算出部は、注目するノードについて、注目するノードと辺によって直接的に接続されるノードが存在する場合には、直接的に接続されるノードのうち注目するノードからの距離が最大であるノード間の距離を類似度閾値とし、注目するノードと辺によって直接的に接続されるノードが存在しない場合には、注目するノードからの距離が最小であるノード間の距離を類似度閾値として算出する。次いで、類似度閾値判定部は、入力ベクトルと第１勝者ノード間の距離が第１勝者ノードの類似度閾値より大きいか否か、及び、入力ベクトルと第２勝者ノード間の距離が第２勝者ノードの類似度閾値より大きいか否かを判定する。次いで、ノード挿入部は、類似度閾値判定結果に基づいて、入力ベクトルをノードとして入力ベクトルと同じ位置に挿入する。
【００５５】
このようにして、入力ベクトルに応じて変化する類似度閾値によれば、挿入されるノードの個数を自律的に管理することができるため、ノードの数を事前に決定することなく、逐次的に入力される新たな連想対を既存の知識を壊すことなく追加学習することができる。
【００５６】
また、従来の連想記憶モデルでは事前に１対多からなる連想対について、事前にその"多"の大きさを決定する必要があったが、本実施の形態１における連想記憶装置１では追加的に学習が可能であるため、１対多からなる連想対について、事前にその"多"の大きさを決定する必要がなく、想起する連想対の数を学習内容に応じて適応的に変化させることができる。さらにまた、ひとつの連想記憶装置によって様々な多方向連想（２対１、３対１、４対１など）を柔軟に実現することができる。
【００５７】
辺削除部１２２は、辺に対応付けられる辺の年齢に基づいて、辺を削除する。ノード削除部１２３は、注目するノードについて、注目するノードに直接的に接続される辺の本数に基づいて、注目するノードを削除する。これにより、"入力データとは独立なノイズ"を効果的かつ動的に削除することができる。また、誤って生成された辺を適切に削除することができる。辺が存在しないノードは、そのノードの持つ結合重みベクトルに近い入力の頻度が極めて低いことを示しており、ノードの保持している情報は学習すべきデータと無関係なノイズであるものとみなすことができるためである。
【００５８】
尚、後述する本実施の形態１にかかる効果の説明において、学習データにノイズが乗っていないという理想的な条件下での実験を実施するが、この場合、学習した連想対のノードが孤立点(辺が存在しないノード)となり消去されてしまうものの、入力層において入力データに正規分布に従う摂動を加えて競合層へ入力することによって、この問題を回避することができる。
【００５９】
重みベクトル更新部１２４は、入力ベクトルに最も近いノードに対応する重みベクトル、及びそのノードと辺によって直接的に接続されるノードに対応する重みベクトルをそれぞれ入力ベクトルに更に近づけるように更新する。
【００６０】
プロトタイプノード生成部１２５は、ノードの集合であるクラスについて、各クラスの代表的なノードとしてのプロトタイプノードを生成する。より具体的には、プロトタイプノード生成部１２５は、まず、辺によって到達可能なノードの集合をクラスとみなして、以下の手法によりノードの属するクラスを決定する。尚、辺を通じて到達できるノードの個数が１個以下である場合、即ち、クラスタを構成するノードの個数が２個以下である場合にはそのノードをノイズとみなし、クラスとは扱わないものとする。
【００６１】
Ｓ２０１：全てのノードをどのクラスにも属していない状態とする。
Ｓ２０２：どのクラスにも属していないノードｉをランダムに選択し、ノードｉに近傍ノードが存在する場合のみ新しいクラスのラベルを付与する。一方、近傍ノードが存在しない場合にはクラスのラベルは付与せず、以後ステップＳ２０２における選択対象から外すものとする。尚、近傍ノードとは、ノードｉと辺によって直接的に接続している他のノードを示す。
Ｓ２０３：ノードｉから辺を通じて到達可能なノードを全て探索し、ノードｉと同じラベルを付与する。
Ｓ２０４：どのクラスにも属さず、かつステップＳ２０２における選択対象から外されていないノードが存在する場合には、ステップＳ２０２に戻る。一方、存在しない場合には、ステップＳ２０５へと進む。
Ｓ２０５：クラスのラベルが付与されているノードのうち、近傍ノードの個数が１以下のノードについて、そのラベルを剥奪する。
【００６２】
次いで、プロトタイプノード生成部１２５は、ひとつのクラス（同一のクラスのラベルが貼られているノード群）につきひとつのプロトタイプノードを生成する。より具体的には、クラスを代表するベクトルとして、同一クラスに属するノードが持つ結合重みベクトルの平均値算出し、そのクラスの重みベクトルの平均値を自身の結合重みベクトルとして持つプロトタイプノードを生成する。
【００６３】
学習データにノイズが乗っている場合(ここでは実環境を想定し、ガウスノイズと仮定する)、あるいは学習データに摂動を加えた場合には、連想対の情報はある程度の広がりを持ったクラスタを形成し、ノイズも含めた入力の分布が近似されるものと予想される。位相空間中におけるノードの位置はノードの持つ結合重みベクトルによって決まるため、１つのクラスタに属するノードの結合重みベクトルを平均した結合重みベクトルは、クラスタの中心を近似する。即ち、クラスタの中心を近似したベクトルは、ノイズの乗っていないベクトルを近似したベクトルとすることができる。従って、このようなプロトタイプノードをクラスタごとに生成することにより、データに乗ったノイズの影響の低減を図ることができる。また、このようなプロトタイプノードを出力することにより、後述する想起部２０は、"入力データに乗ったノイズ"による想起結果の歪みの軽減を図ることができる。
【００６４】
想起部２０は、学習部１０により学習され記憶された連想対について、連想対の一方のベクトルを想起キーとして学習部１０に入力して、連想対の他方のベクトルを学習部１０から出力することによって想起する。ここで、想起は学習した連想対の一方を想起キーとして、他方を想起する双方向想起が可能である。例えば、Ｍ次元ベクトルＦを想起キー、Ｎ次元ベクトルＲを想起結果として学習を行い、Ｆ→Ｒという連想を学習した場合において、順方向想起とはＦを想起キーとしてＲを想起する連想であり、逆方向想起とはＲを想起キーとしてＦを想起する連想である。
【００６５】
より具体的には、想起部２０は、まず、想起キーとＳＯＩＮＮ１２上に配置されたノード間の距離を算出し、距離が最小かつ閾値δ以下となるノードについて、１つのクラスにつき１つのノードを探索して勝ちノードとする。ここで、想起キーとＳＯＩＮＮ１２上のノード間の距離を計算する際に、順方向想起においては想起キーＦとＳＯＩＮＮ１２上のノードの１からＭ次元目の距離を計算し、逆方向想起においては想起キーＲとＳＯＩＮＮ１２上のノードのＭ＋１からＭ＋Ｎ次元目の距離を計算する。次いで、それぞれの勝ちノードの属するクラスのプロトタイプノードを求め、プロトタイプノードの持つ結合重みベクトルのうち、順方向想起の場合はＭ＋１からＭ＋Ｎ次元目、逆方向想起の場合は１からＭ次元目を想起結果として出力する。
【００６６】
ここで、ノイズによって変質したデータ(位相空間中で本来のデータ位置からずれたデータ)を連想キーとして想起を行った場合には、クラスタの中心から離れた位置に存在するノードが勝ちノードとなり、誤った想起結果を出力する可能性がある。かかる場合においても、想起部２０は、勝ちノードの重みベクトルを直接想起結果とするのではなく、勝ちノードが属するクラスのプロトタイプノードの結合重みベクトルを想起結果とすることにより、入力データに乗ったノイズによる想起結果の歪みの軽減を図ることができる。また、プロトタイプノードのみに対応するベクトルを出力するため、計算量を削減することができる。
【００６７】
さらにまた、想起部２０は、閾値δを調整することにより、入力される想起キーに対して既知か否かとなる範囲を変化させることができるため、入力された想起キーが未知であるものと柔軟に判定することができる。また、閾値δを調整することにより、出力される連想対の想起数を柔軟に調整することができる。
【００６８】
以上のような連想記憶装置１は、専用コンピュータ、パーソナルコンピュータ（ＰＣ）などのコンピュータにより実現可能である。但し、コンピュータは、物理的に単一である必要はなく、分散処理を実行する場合には、複数であってもよい。図６は、本実施の形態１に係る連想記憶装置１を実現するためのシステム構成の一例を示す図である。図６に示すように、コンピュータ４０は、ＣＰＵ４１（Central Processing Unit）、ＲＯＭ４２（Read Only Memory）及びＲＡＭ４３（Random Access Memory）を有し、これらがバス４４を介して相互に接続されている。尚、コンピュータを動作させるためのＯＳソフトなどは、説明を省略するが、この連想記憶装置１を構築するコンピュータも当然備えているものとする。
【００６９】
バス４４には又、入出力インターフェイス４５も接続されている。入出力インターフェイス４５には、例えば、キーボード、マウス、センサなどよりなる入力部４６、ＣＲＴ、ＬＣＤなどよりなるディスプレイ、並びにヘッドフォンやスピーカなどよりなる出力部４７、ハードディスクなどより構成される記憶部４８、モデム、ターミナルアダプタなどより構成される通信部４９などが接続されている。
【００７０】
ＣＰＵ４１は、ＲＯＭ４２に記憶されている各種プログラム、又は記憶部４８からＲＡＭ４３にロードされた各種プログラムに従って各種の処理、本実施の形態においては、例えば学習処理や想起処理を実行する。ＲＡＭ４３には又、ＣＰＵ４１が各種の処理を実行する上において必要なデータなども適宜記憶される。通信部４９は、例えば図示しないインターネットを介しての通信処理を行ったり、ＣＰＵ４１から提供されたデータを送信したり、通信相手から受信したデータをＣＰＵ４１、ＲＡＭ４３、記憶部４８に出力したりする。記憶部４８はＣＰＵ４１との間でやり取りし、情報の保存・消去を行う。通信部４９は又、他の装置との間で、アナログ信号又はディジタル信号の通信処理を行う。入出力インターフェイス４５は又、必要に応じてドライブ５０が接続され、例えば、磁気ディスク５０１、光ディスク５０２、フレキシブルディスク５０３、又は半導体メモリ５０４などが適宜装着され、それらから読み出されたコンピュータプログラムが必要に応じて記憶部４８にインストールされる。
【００７１】
続いて、本実施の形態１に係る学習処理及び想起処理について説明する。まず、本実施の形態１に係る学習処理及び想起処理を説明するための用語について説明する。以下、Ａはノードの集合、Ｗｉはｉ番目のノードが持つ結合重み、Ｅｉはｉ番目のノードの近傍ノード群、Ｐはプロトタイプノードの集合、ｄｉはｉ番目のノードの持つ類似度閾値としての近傍閾値、Γｅｄｇｅは辺の年齢としての辺の寿命、μｉはｉ番目のノードが勝者ノードとなった勝ち回数、δは想起処理における勝者閾値、λはノードの除去が行われる頻度、‖ａ−ｂ‖はノードａ及びノードｂ間のユークリッド距離をそれぞれ示すものとする。
【００７２】
次いで、図７を参照しながら連想記憶装置１による学習処理について説明する。図７は、連想記憶装置１による学習処理の概要を示すフローチャートである。
【００７３】
Ｓ３０１：ノード集合Ａ及びプロトタイプノード集合Ｐを空集合とし、学習回数カウンタを０として初期化し、その結果を一時記憶部（例えばＲＡＭ４３）に格納する。
Ｓ３０２：学習用連想対ＤＢ３０より、連想のキーとなるＭ次元ベクトルＦ及び連想のキーから想起されるＮ次元ベクトルＲが学習部１０へと与えられ、その結果を一時記憶部に格納する。ここで、Ｆ及びＲは−１から１までの値を取る実数値ベクトルである。
Ｓ３０３：入力部１１は、一時記憶部に格納されたベクトルＦ及びＲより、以下の式に基づいてＭ＋Ｎ次元ベクトルの連想対ベクトルＸを生成し、その結果を一時記憶部に格納する。
【数１】
2008299644.tif 000003
【００７４】
Ｓ３０４：入力部１１は、一時記憶部に格納された連想対ベクトルＸについて、以下の式に基づいて連想対ベクトルＸに摂動を加え、競合層への入力ベクトルである入力信号（Ｉｎｐｕｔ）を生成し、その結果を一時記憶部に格納する。ここで、ＩｎｐｕｔｋはベクトルＩｎｐｕｔにおけるｋ番目の成分を示す。
【数２】
2008299644.tif 000004
Ｓ３０５：一時記憶部に格納されたノードについて、Ａに含まれるノードの個数が２以上である場合には、Ａに含まれるノードのうち、‖Ｉｎｐｕｔ−Ｗｉ‖が最小となるノード、即ち、Ｉｎｐｕｔに最も近い重みベクトルを持つ第１勝者ノードｒ、及び２番目に近い重みベクトルを持つ第２勝者ノードｑを探索し、その結果を一時記憶部に格納する。尚、Ａに含まれるノードの個数が２個より少ない場合には、Ｉｎｐｕｔを結合重みとして持つ新たなノードを生成し、Ａに追加してＳ３１５へと進む。
【００７５】
Ｓ３０６：クラス間ノード挿入部１２１は、一時記憶部に格納されたＩｎｐｕｔ及び重みベクトルＷについて、以下の式が成立するか否かについて判定を行い、成立する場合にはＳ３０８へと進む。
【数３】
2008299644.tif 000005
ここで、ｄｒ及びｄｑは以下の式に基づいてそれぞれ算出し、その結果を一時記憶部に格納する。
【数４】
2008299644.tif 000006
Ｓ３０７：Ｓ３０６における判定の結果、成立しない場合には、クラス間ノード挿入部１２１は、Ｉｎｐｕｔを結合重みとして持つ新たなノードを生成してＡに追加し、その結果を一時記憶部に格納する。
【００７６】
Ｓ３０８：一時記憶部に格納されたノードについて、ノードｒ及びｑ間に辺が存在しない場合には、ｒ及びｑを結ぶ辺を生成し、その結果を一時記憶部に格納する。次いで、一時記憶部に格納されたＥｒ及びＥｑについて、Ｅｒにｑを、Ｅｑにｒをそれぞれ追加し、その結果を一時記憶部に格納する。また、一時記憶部に格納された、ノードｒ及びｑ間を結ぶ辺について、辺の寿命を０とし、その結果を一時記憶部に格納する。さらにまた、一時記憶部に格納された、ノードｒと辺によって直接的に接続される他のノードについて、他のノードとの間に存在する全ての辺の寿命をインクリメントし（＋１する）、その結果を一時記憶部に格納する。
Ｓ３０９：辺削除部１２２は、一時記憶部に格納された辺について、寿命がΓｅｄｇｅを超えた辺を削除し、その結果を一時記憶部に格納する。
【００７７】
尚、Γｅｄｇｅを用いることにより、ノイズなどの影響により誤って生成される辺を削除することができる。Γｅｄｇｅに小さな値を設定することにより、辺が削除されやすくなりノイズによる影響を防ぐことができるものの、値を極端に小さくすると、頻繁に辺が削除されるようになり学習結果が不安定になる。一方、極端に大きな値をΓｅｄｇｅに設定すると、ノイズの影響で生成された辺を適切に取り除くことができない。これらを考慮して、パラメタΓｅｄｇｅは実験により予め算出し一時記憶部に格納される。
【００７８】
Ｓ３１０：重みベクトル更新部１２３は、一時記憶部に格納されたノードの結合重みベクトルＷについて、ノードｒ及びその近傍ノードＥｒの結合重みベクトルを以下の式に基づいて更新し、その結果を一時記憶部に格納する。
【数５】
2008299644.tif 000007
【数６】
2008299644.tif 000008
ここで、Ｗｒ及びＷｉは以下の式に基づいてそれぞれ算出する。
【数７】
2008299644.tif 000009
【数８】
2008299644.tif 000010
次いで、一時記憶部に格納された、ノードｒが勝者回数となった勝ち回数μについて、以下の式に基づいて、インクリメントし（＋１する）、その結果を一時記憶部に格納する。
【数９】
2008299644.tif 000011
また、一時記憶部に格納された学習回数カウンタをインクリメントし（＋１する）、その結果を一時記憶部に格納する。
Ｓ３１１：学習部１０は、一時記憶部に格納された学習カウンタがλを超えたか否かを判定する。学習カウンタがλを超えた場合にはＳ３１２へ進む。一方、超えていない場合にはＳ３１３へと進む。
【００７９】
尚、λはノイズと見なされるノードを削除する周期である。λに小さな値を設定することにより、頻繁にノイズ処理を実施することができるものの、値を極端に小さくすると、実際にはノイズではないノードを誤って削除してしまう。一方、極端に大きな値をλに設定すると、ノイズの影響で生成されたノードを適切に取り除くことができない。これらを考慮して、パラメタλは実験により予め算出し一時記憶部に格納される。
【００８０】
Ｓ３１２：ノード削除部１２３は、一時記憶部に格納されたＡに含まれるノードｉについて、Ｅｉが空集合であるノードを削除し、その結果を一時記憶部に格納する。次いで、一時記憶部に格納された学習回数カウンタを０とし、その結果を一時記憶部に格納する。
Ｓ３１３：プロトタイプノード生成部１２５は、上述したようにノードのクラス分類を行い、その結果を一時記憶部に格納する。
Ｓ３１４：プロトタイプノード生成部１２５は、一時記憶部に格納されたＰを空集合に初期化し、１つのクラスにつき１つのプロトタイプノードを生成してＰに追加し、その結果を一時記憶部に格納する。ここで、プロトタイプノードの結合重みベクトルは、クラス内ノードの結合重みベクトルの平均値により算出する。
Ｓ３１５：学習処理を続行し、次のデータを入力する場合にはＳ３０２へと進み処理を続行する。一方、学習処理を終了する場合には、以上の処理を終了して学習を停止する。
【００８１】
次に、想起処理について説明する。図８は、連想記憶装置１による想起処理の概要を示すフローチャートである。
【００８２】
Ｓ４０１：想起部２０は、想起キーＫＥＹが入力されると、以下の式に基づいてＭ＋Ｎ次元ベクトルＩｎｐｕｔを生成して競合層への入力とし、その結果を一時記憶部に格納する。尚、ＫＥＹは順方向想起時にはＭ次元であり、逆方向想起時にはＮ次元のベクトルである。
【数１０】
2008299644.tif 000012
Ｓ４０２：一時記憶部に格納されたノードについて、各クラスにおいて、Ｉｎｐｕｔとの間の距離が最小となるノードを探索する。さらに、距離が最小であり、かつ距離が閾値δｒ以下となるノード全てを勝ちノードとし、その結果を一時記憶部に格納する。ここで、勝ちノードのノード番号をｒとする。
【００８３】
ここで、Ｉｎｐｕｔ及び競合層に存在するノードの結合重みベクトルＷｊ（ｊ∈Ａ）間のユークリッド距離ｄＩｎｐｕｔ，Ｗｊを、以下の式に基づいて算出する。尚、以下の式において示すように、ユークリッド距離ｄＩｎｐｕｔ，Ｗｊは連想キーが入力された側に対応する成分のみについて距離を算出する。ここで、Ｉｎｐｕｔｋ，Ｗｊ，ｋはベクトルのｋ番目の成分を示している。
【数１１】
2008299644.tif 000013
【００８４】
このように閾値δｒを用いてノードを探索することにより、勝ちノード(想起結果)となるノードは複数存在する場合があり、その数は学習の内容及び連想キーによって変化する。また、閾値δｒを調整することによって、勝ちノード数を柔軟に調整することができる。
【００８５】
Ｓ４０３：一時記憶部に格納されたプロトタイプノードについて、勝ちノードの属するクラスのプロトタイプノードを探索し、その結果を一時記憶部に格納する。ここで、プロトタイプノードとは、ひとつのクラス(辺により接続された３つ以上のノードからなるクラスタ)にひとつ存在する、クラスの代表ノードである。探索したプロトタイプノード番号をＰｒｏｔｏ（ｒ）とする。
Ｓ４０４：一時記憶部に格納されたプロトタイプノードについて、プロトタイプノードの持つ結合重みベクトルＷＰｒｏｔｏ（ｒ）のうち、連想キーが入力されていない側に対応する成分を想起結果Ｏｕｔｐｕｔとして出力する。ここで、ＷＰｒｏｔｏ（ｒ），ｋはプロトタイプノードの持つ結合重みベクトルにおけるｋ番目の成分を示す。
【数１２】
2008299644.tif 000014
【００８６】
続いて、本発明の実施の形態１に係る連想記憶装置１による効果について説明する。尚、以下においては、連想記憶装置１をAssociative Memory with Self−Organizing Incremental Neural Network（ＳＯＩＮＮ−ＡＭ）と呼ぶ。
【００８７】
ＳＯＩＮＮ−ＡＭの有効性を確認するため、グレイスケール顔画像及び２値の文字画像を用いて実験を行った。図９は、グレイスケールの顔画像を示すＡＴ＆Ｔ顔画像データベースの画像である。図９に示す９２×１１２ピクセルのグレイスケール顔画像を、各ピクセルのデータについて[−１，１]の範囲に正規化し、実数値ベクトルとして実験した。
図１０は、２値データを示すビットマップデータである。図１０に示すビットマップデータは、７×７のビットマップデータであり、白いピクセルを−１、黒いピクセルを＋１とすることにより、２値のデータとしてベクトル化した学習データとした。
【００８８】
また、従来手法との比較に際しては、図１０に示す２値データを用いて連想の学習実験を行った。比較手法としては、非特許文献：Oh.H, Kothari.S.C, "Adaptation of the relaxation method for learning in bidirectional associative memory, " IEEE Trans. Neural Networks, Vol.5, No.4, pp 576-583, 1994.に開示されるPseudo-Relaxation Learning Algorithmを用いたBidirectional Associative Memory（以下、ＢＡＭ  ｗｉｔｈ  ＰＲＬＡＢという。)、非特許文献８に開示されるKohonen Feature Mapによる連想記憶モデル(以下、ＫＦＭＡＭという。)、及び非特許文献９に開示されるＫＦＭＡＭにweight fixed及びsemi-fixedを導入した手法(以下、ＫＦＭＡＭ−ＦＷという。)を用いた。それぞれの従来手法においては、結合重みベクトルの初期値を−１から＋１の間でランダムに選択した。
【００８９】
また、ＳＯＩＮＮ−ＡＭは学習用連想対データを５０回ずつ入力するものとし、ＢＡＭ  ｗｉｔｈ  ＰＲＬＡＢ及びＫＦＭＡＭについては、重みベクトルが変化しなくなるまで学習を行った。図１１は、それぞれの学習器におけるパラメタ設定を示す表である。
【００９０】
まず、逐次的に与えられる学習データを、既存の知識を壊すことなく追加的に学習できるかについて検証する。このため、ひとつの連想対についての学習が完了した後に、続いて次の連想対の学習を開始させるという、逐次的な学習を行った。
【００９１】
ＳＯＩＮＮ−ＡＭに対して、各人１０パターン、合計６０パターンの顔画像を学習させた結果、２７分１１秒の学習処理時間を要し(Intel Xeon Processor 3.60GHz, 2GB RAM)、１０１個のノードからなるネットワークを生成した。例えば、図９（ａ）に示す画像は、図９（ｂ）に示す顔画像をＳＯＩＮＮ−ＡＭにより学習させ、想起に成功した場合の想起結果を示している。図９（ｂ）に示す学習対象の顔画像に対して、実際にＳＯＩＮＮ−ＡＭが想起した顔画像との間でユークリッド距離を算出すると、その距離は０．１から０．２の範囲であった。これは、ベクトルの次元数が１０３０４であるため、次元辺り（ピクセル毎）の平均誤差は１×１０−５から２×１０−５である。即ち、人間の目では殆ど差が分からず、極めて微小な差であるといえる。
【００９２】
ここで、Ｒｅｃａｌｌ及びＰｒｅｃｉｓｉｏｎという２つの尺度から、ＳＯＩＮＮ−ＡＭの性能を評価する。Ｒｅｃａｌｌは再現率とも呼び、解と判定されるべき事例をシステムがどれだけ解として列挙できたかを示す。Ｒｅｃａｌｌは以下の式に基づいて算出する。
【数１３】
2008299644.tif 000015
一方、Ｐｒｅｃｉｓｉｏｎは精度とも呼び、システムが解として列挙した事例のうち、どれだけが想起すべき本当の解であるかを示す。Ｐｒｅｃｉｓｉｏｎは以下の式に基づいて算出する。
【数１４】
2008299644.tif 000016
【００９３】
また、想起された顔画像を正解と判断するための評価基準について説明する。本明細書においては、ＳＯＩＮＮ−ＡＭが想起した顔画像及び学習させた元画像との間のユークリッド距離を算出し、算出結果が０．３を下回った場合に正解であるものとみなした。即ち、図９（ａ）に示した顔画像及び元画像との間のユークリッド距離が０．１から０．２であったことから、ＳＯＩＮＮ−ＡＭは高い正解率を有するものである。
【００９４】
尚、ＳＯＩＮＮ−ＡＭでは、パラメタδｒを操作することによりＲｅｃａｌｌ−Ｐｒｅｃｉｓｉｏｎが変化するが、一般に、Ｒｅｃａｌｌ及びＰｒｅｃｉｓｉｏｎはトレードオフの関係にある。即ち、δｒの値を大きくしすぎた場合には、既知の知識の全てを想起結果として返してしまうため、想起結果には(本来Ｕｎｋｎｏｗｎであると答えるべき場合を除いて)正解が含まれることになり、Ｒｅｃａｌｌの値が１に到達する。しかし、この場合には、答えた解のほとんどが誤りであるため、Ｐｒｅｃｉｓｉｏｎは低下する。
他方、δｒの値を小さくしすぎた場合には、少しでも学習時と異なる想起キーを入力すると、未知入力であるものと解釈してＵｎｋｎｏｗｎと答えてしまい、Ｒｅｃａｌｌが低下し、さらにノイズ耐性も低下してしまう。
【００９５】
ここで、上記の顔画像を用いた実験において、Ｒｅｃａｌｌ及びＰｒｅｃｉｓｉｏｎの関係がパラメタδｒによってどのように変化するかについて検証した。図１２は、その結果を示す表である。図１２に示すように、パラメタδｒの範囲が０．００１５から０．２５において、Ｒｅｃａｌｌ−Ｐｒｅｃｉｓｉｏｎはともに１となり、ＳＯＩＮＮ−ＡＭはその範囲においてパラメタの設定を柔軟に行うことができる。
【００９６】
次に、図１０に示す２値データを用いて従来手法との比較を行った。従来の連想記憶モデルの殆どは２値ベクトル間での連想を学習するものである。このため、従来手法との比較に際しては、２値データを用いて逐次的な学習を行わせた。ここで、学習した連想対はＡ→ａ、Ｂ→ｂのように、アルファベットの大文字から小文字への連想２６対とし、それぞれの連想対をアルファベットの並び順に学習器へと入力し、逐次的な学習を行った。即ち、Ａ→ａという連想対を学習し終えた後に、Ｂ→ｂという連想対の学習を開始し、それが終わった場合に次はＣ→ｃという連想対の学習を行う、といったようにして学習を行った。
【００９７】
全ての連想対を学習し終えた後、学習器に対して、想起キーとして大文字のアルファベットを入力して、対応する小文字のアルファベットが正しく出力されるか否かの判定を行った。尚、２値データを用いた実験においては、ＳＯＩＮＮ−ＡＭが想起したベクトルの各成分について、正の値であるならば＋１、負の値であるならば−１とみなして２値データ化した上で、元々の２値画像とビットの並びが完全に一致した場合のみを正解とした。また、δｒ＝０．１５とした。
【００９８】
図１３は、各学習器による再現結果を示す表である。ＳＯＩＮＮ−ＡＭは、全ての連想対を学習するために９９個のノードからなるネットワークを生成した。また、学習を完了するまでに４秒を要した(Intel Xeon Processor 3.60GHz , 2GB RAM)。そして、図１３に示すように、ＢＡＭ  ｗｉｔｈ  ＰＲＬＡＢ及びＫＦＭＡＭによるＲｅｃａｌｌ  Ｒａｔｅが５０％に満たない一方で、ＳＯＩＮＮ−ＡＭは全てのパターンを想起することができた。
【００９９】
図１４に示す画像は、ＢＡＭ  ｗｉｔｈ  ＰＲＬＡＢ及びＫＦＭＡＭによる想起結果を示す画像である。図１４（ａ）はＢＡＭ  ｗｉｔｈ  ＰＲＬＡＢによる想起結果を説明するための画像であり、上段が想起結果、下段が正しい想起結果を示す。図１４（ｂ）はＫＦＭＡＭよる想起結果を説明するための画像であり、上段が想起結果、下段が正しい想起結果を示す。
【０１００】
図１４に示すように、これらの学習器においては、後半に学習させたＸ→ｘや、Ｙ→ｙという連想については略正しく想起できたものの、前半に学習させたＡ→ａや、Ｂ→ｂという連想については誤った想起をした。これは、新たな学習によって、それ以前に学習した記憶が失われるという問題のためである。
【０１０１】
他方、図１３に示したように、ＫＦＭＡＭ−ＦＷでは、十分なサイズのネットワークが事前に与えられている場合には、全てのパターンを想起することが出来るものの、ネットワークサイズが十分でない場合には無限ループに陥り（Ｇｏｉｎｇ  ｔｏ  ｉｎｆｉｎｉｔｅ  ｌｏｏｐ）、学習を完了することができなかった。ＫＦＭＡＭ−ＦＷでは、新たな学習によってそれ以前に学習した記憶が失われる問題を解決するため、連想対を学習したノードの結合重みベクトルを固定する。このため、事前に与えられたネットワークサイズが学習すべき連想対の数に対して不足している場合には、ネットワーク中における全てのノードの結合重みベクトルが固定されてしまい、それ以上学習することができないという状況に陥る。従って、ＫＦＭＡＭ−ＦＷは、学習すべきデータの個数が明確に決まっている場合でなければ、有効に機能することができない。
【０１０２】
続いて、ＳＯＩＮＮ−ＡＭに対して、多対一の連想対を学習させ、正しいペアを想起できるか否かについて検証を行った。図１５は、学習に使用した顔画像を示している。連想対として、図１５（ａ）に示す様々なアングルの顔から、図１５（ｂ）に示す正面の顔を想起するという５対１の連想とした。このような連想を２０人分用意し、ＳＯＩＮＮ−ＡＭに対して逐次的に入力して学習した。尚、学習に際して、ある想起キーからいくつの想起結果が得られればよいかという情報は事前に与えないものとした。
【０１０３】
図１６は、多対一の連想実験の結果を示す表である。図１６は、学習が完了した後、上記同様δｒを変化させながら想起キーを入力し、想起結果からＲｅｃａｌｌ及びＰｒｅｃｉｓｉｏｎを算出した結果を示しており、ここでは、δｒ=０．１５とした。
図１６に示すように、実験の結果、ＳＯＩＮＮ−ＡＭは全ての想起キーに対して正しい想起結果を返すことができた。尚、一対多の連想において、正しい想起結果とは、学習させた連想対のペアだけを想起し、それ以外のペアは一切想起しないという結果である。
【０１０４】
さらに、５対１、４対１、３対１、及び２対１の連想対をひとつのＳＯＩＮＮ−ＡＭにより学習させ、同様にδｒを変化させながら想起キーを入力し、想起結果からＲｅｃａｌｌ及びＰｒｅｃｉｓｉｏｎを算出した。図１７は、このような多対一の連想実験の結果を示す表である。図１７に示すように、実験の結果、ＳＯＩＮＮ−ＡＭは全ての想起キーに対して正しい想起結果を返すことができた。また、図１２及び図１６に示した結果と比較しても、Ｒｅｃａｌｌ及びＰｒｅｃｉｓｉｏｎの両方が１に達するパラメタδｒの範囲がほぼ同様の範囲となっており、連想方式に応じてパラメタを調整する必要がないことが示された。
【０１０５】
続いて、ＳＯＩＮＮ−ＡＭが有するノイズ耐性能力についての検証実験を行った。本実施の形態１においては、ノイズとして、"データに乗ったノイズ"及び"データと独立なノイズ"という２種類のノイズを定義する。
"データに乗ったノイズ"とは、例えば顔画像において図２７（ａ）に示したノイズを指す。このノイズへの耐性とは、本来のデータがノイズによって歪んだ場合であっても、ノイズの影響を排除して正しいペアを想起することが出来ることをいう。
"データと独立なノイズ"とは、例えば、図２７（ｂ）に示したようなホワイトノイズや、学習していない顔画像などの全く未知のデータが想起キーとして入力されたという状況に相当する。このノイズへの耐性とは、このようなランダムパターンが想起キーとして与えられた場合において、既知の記憶には相当しない未知データであるものと判定し、想起結果を返さないことが出来ることをいう。
【０１０６】
まず、実数値データを用いて、ＳＯＩＮＮ−ＡＭによるノイズ耐性能力を検証した。そこで、図１５に示した顔画像を用いて、上記の実験同様５対１の連想対２０人分をＳＯＩＮＮ−ＡＭにより学習させ、学習が完了した後、ノイズの乗った学習済み顔画像を想起キーとして入力した。尚、これまでの実験結果を踏まえてδｒ＝０．２と設定した。
【０１０７】
始めに、データに乗ったノイズへの耐性を検証するため、顔画像にホワイトノイズを加えた。そして、図２７（ａ）のような画像を想起キーとし、想起された結果をもとにＲｅｃａｌｌ及びＰｒｅｃｉｓｉｏｎを算出した。
【０１０８】
図１８は、データに乗ったノイズに対する想起結果を示す図である。ここで、図の横軸はシグナル−ノイズ比(ＳＮ比)であり、以下の式に基づいて算出する。Ｓは、入力画像の各ピクセルが取りうる値の幅を示し、本実験においてはＳ=２である。σは、データに加えるノイズが従う分布の偏差を示す。尚、ＳＮ比の数値が大きいほどノイズが少ない状態であることを意味する。
【数１５】
2008299644.tif 000017
【０１０９】
図１９（ａ）は、ＳＮ比が２０である画像を示している。ＳＯＩＮＮ−ＡＭは、このようなノイズの乗った画像からでも、図９（ａ）に示したノイズ無しデータを想起キーとした場合と同様の画像を想起することができた。また、図１９（ｂ）は、ＳＮ比が１８の画像を示し、ここまでノイズが増えた場合には、ＳＯＩＮＮ−ＡＭは既知の人物ではないものと判定する。かかる場合において、Ｒｅｃａｌｌは低下するものの、Ｐｒｅｃｉｓｉｏｎは低下しないため、ＳＯＩＮＮ−ＡＭが誤った解を想起結果として返すことはない。
尚、図１８では、ＳＮ比が２０前後において、Ｒｅｃａｌｌが急激に低下しているが、これはノイズが多くなりすぎたため、想起キーとなる画像と、学習時に用いた画像との間のユークリッド距離が閾値δrを超える程遠くなったためである。
【０１１０】
次に、図２０に示すような、完全なホワイトノイズ及び未学習の顔画像を入力して、データと独立なノイズに対する耐性を検証した。その結果、ＳＯＩＮＮ−ＡＭは、いずれの入力に対してもこれらの想起キーを、既知のどの記憶とも一致しない未知入力であるものと判定することができた（図２０において、「Ｕｎｋｎｏｗｎ」と出力した）。これは、ノードの持つ結合重みベクトルと、ランダムパターン及び未知画像との間の距離が大きく離れており、想起処理における閾値δｒを上回ったためである。
【０１１１】
続いて、図１０に示した２値データを用いて、ＳＯＩＮＮ−ＡＭによるノイズ耐性能力について検証した。ここでは、他手法との比較のため、２値データを用いて２種のノイズへの耐性を検証した。図１０に示したビットマップデータを用いて、アルファベットの大文字から小文字への連想対を２６対用意し、それぞれの学習器により学習した。尚、実験においては、ＫＦＭＡＭ及びＫＦＭＡＭ−ＦＷのネットワークサイズは１００とし、ＫＦＭＡＭ−ＦＷがネットワークサイズの不足によって無限ループに陥るという事態を回避して行った。
【０１１２】
始めに、データに乗ったノイズへの耐性を検証するため、一部のビットが反転した２値データを想起キーとして入力し、正しい連想対を想起できるか検証を行った。尚、δｒ=０．１５とし、ノイズ含有率の異なるデータを各連想対につき１００組、合計２６００組用意して、想起キーとして入力した。
【０１１３】
図２１は、ノイズに対する各学習器の耐性結果を示す図である。ここで、Ｎｏｉｓｅ  Ｌｅｖｅｌはノイズ含有率を示し、データの各ビットが反転する確率を意味する。また、図２１において、図中の(batch learning)により示される正解率は、バッチ学習によって連想対を学習させた場合の正解率であり、非特許文献９において開示された正解率とほぼ同様の数値である。
図２１に示すように、ノイズが２０％の時点において、他手法が正しく想起できた連想対の割合が７０％以下であるのに対して、ＳＯＩＮＮ−ＡＭは９２．３％であった。また、ノイズが２４％となる場合には、他手法は４９％以下であるのに対して、ＳＯＩＮＮ−ＡＭの正解率は８８．８％であった。このように、２値データを用いた場合においても、従来手法に比較して、ＳＯＩＮＮ−ＡＭはデータに乗ったノイズに対してより強い耐性を有するものである。
【０１１４】
次に、各ビットがランダムに＋１又は−１の値をとる２値データを想起キーとしてそれぞれの学習器に入力し、データと独立なノイズへの耐性を検証した。
図２２は、ランダムパターンを入力した場合の想起結果を示す図である。図２２（ａ）及び（ｆ）は学習器へと入力したランダムパターンの一例であり、（ｂ）乃至（ｅ）、及び（ｇ）乃至（ｊ）は、それぞれ入力（ａ）及び（ｆ）に対する想起結果を示す図である。ここで、図２２（ｂ）及び（ｇ）は、ＳＯＩＮＮ−ＡＭによる想起結果を示し、（ｃ）及び（ｈ）は、ＰＲＬＡＢによる想起結果を示し、（ｄ）及び（ｉ）は、ＫＦＭＡＭによる想起結果を示し、（ｅ）及び（ｊ）は、ＫＦＭＡＭ−ＦＷによる想起結果をそれぞれ示している。図２２に示すように、ＳＯＩＮＮ−ＡＭはこのようなデータが入力された場合、「未知の想起キーであり、対応する連想結果は存在しない（Ｕｎｋｎｏｗｎ）」ものであると適切に判定することができた。一方、ＰＲＬＡＢ、ＫＦＭＡＭ、及びＫＦＭＡＭ−ＦＷは、未知の想起キーに対して、学習していないデータを想起結果として出力した。即ち、これらの学習器は、入力された想起キーが既知か否かを判定する機構を持たず、未知の想起キーに対しても何らかのデータを出力し、不正な想起結果を返してしまう。
【０１１５】
続いて、実環境から得られるデータをＳＯＩＮＮ−ＡＭに学習させ、正しい想起が行えるか否かについて検証を行った。
図２３は、実験において使用する物体を示す画像である。ステレオカメラを用いて、図２３に示す物体から特徴量を取得するものとし、ここでは、特徴量として物体の色及び形を取得した。具体的には、色の特徴量は、物体のＲＧＢ値の平均値を０から１の範囲に正規化し、ＨＳＶ値に変換して得た３次元ベクトルである。また、形の特徴量は、物体の輪郭と中心点の距離の系列を波形とみなして離散フーリエ変換を行い、実数部及び虚数部の第一係数から第八係数のみを取り出して得た１６次元ベクトルである。色及び形の特徴量ベクトルを結合して１９次元のベクトルとし、このベクトルを物体ベクトルとした。黒い実験台上に配置した物体を、カメラにより撮影し、逐次的に得た画像の黒い領域を背景とみなして除去して、物体画像だけを取り出すことにより物体ベクトルを取得した。図２４は、ＳＯＩＮＮ−ＡＭに学習させた、物体ベクトル間の連想対１５組を示す表である。ここで、表中の（赤，三角）などは、左側が物体の色を、右側が物体の形を示している。
【０１１６】
学習が完了した後、それぞれの物体ベクトルを想起キーとして、順方向想起及び逆方向想起を行い、正しい想起が行えるか否かについて検証実験を行った。尚、δｒ＝０．０２とした。また、想起された物体ベクトルと、学習させた物体ベクトルとの間のユークリッド距離が０．３以下(次元あたり０．０１６)となり、学習させた連想対のみを想起した場合に、正しい想起を行ったものと判断した。
【０１１７】
実験の結果、ＳＯＩＮＮ−ＡＭは全ての想起キーに対して正しい連想を行うことができた。図２５及び２６は、ＳＯＩＮＮ−ＡＭが想起した物体ベクトルの例を示す図である。尚、図においては見易さのため、想起結果である物体ベクトルをそのまま表示せずに、形ベクトルを輪郭に戻して描写し、色ベクトルの表現する色により内側を塗りつぶした画像として表示している。
【０１１８】
図２５（ａ）に示す画像は、カメラにより取得した画像である。図２５（ｂ）に示す画像は、図２５（ａ）の画像から形及び色の特徴量を抽出し、（黄色，三角）を想起キーとした場合の順方向想起による想起結果（（緑，丸）及び（黄色，三角））を示す画像である。また、図２６（ｂ）に示す画像は、図２６（ａ）の画像から形及び色の特徴量を抽出し、（青，四角）を想起キーとした場合の逆方向想起による想起結果（（緑，丸）及び（青，星型））を示す画像である。このように、ＳＯＩＮＮ−ＡＭは逐次的に与えられる実数値データを追加的に学習することができ、多方向連想の機能をも有するものである。
【０１１９】
以上の実験において説明したように、ＳＯＩＮＮ−ＡＭは、新たな学習データを与えられても既存の記憶を壊す事無く学習が可能であり、特に、学習すべきデータの数を事前に決定できない環境において、従来手法と比較してより有効に機能するものである。
【０１２０】
また、ＳＯＩＮＮ−ＡＭは、多方向連想において、従来手法のようにいくつの連想対を想起すればよいかを事前に決定する必要がなく、想起する連想対の数は学習の内容に応じて変化し、かつひとつの学習器によって様々な多方向連想(２対１、３対１、４対１など)を実現可能である。
さらにまた、ＳＯＩＮＮ−ＡＭは、"データに乗ったノイズ"及び"データと独立なノイズ"という２種類のノイズに対して高い耐性を有するものである。
また、ＳＯＩＮＮ−ＡＭは、実環境から得られる実数値データ間での連想に用いることができる。
【０１２１】
尚、本実施の形態１においては、連想記憶装置１が学習処理及び想起処理を行うものとして説明したが、本発明はこれに限定されるものではない。例えば、学習部１０を、自己増殖型ニューラルネットワークを用いて学習を行う学習装置としても使用することができる。また、想起部２０を、自己増殖型ニューラルネットワークを用いて想起を行う想起装置としても使用することができる。
【０１２２】
尚、本実施の形態１において示した連想はこれに限定されず、ＳＯＩＮＮ−ＡＭは実環境における他の連想についても適用することができる。
また、実環境において動作する知能ロボットにＳＯＩＮＮ−ＡＭを適用することができる。ＳＯＩＮＮ−ＡＭを適用することにより、非定常かつノイズ在りの環境下において推論などの複雑なタスクを行うロボットを実現することができる。
【０１２３】
その他の発明の実施の形態．
以上、本発明をその実施の形態により説明したが、本発明はその趣旨の範囲において種々の変形が可能である。例えばＳＯＩＮＮ１２に代えて、ＳＯＩＮＮに基づくａｄｊｕｓｔｅｄ  ＳＯＩＮＮ、又はＥｎｈａｎｃｅｄ−ＳＯＩＮＮ（以下Ｅ−ＳＯＩＮＮという。）を使用しても良い。
【０１２４】
図２８を用いてａｄｊｕｓｔｅｄ  ＳＯＩＮＮの処理を説明する。ａｄｊｕｓｔｅｄ  ＳＯＩＮＮは、ＳＯＩＮＮと比べて、学習に際して事前に指定するパラメタの数を少なくすることができ、より簡単に学習を実施することができる。
【０１２５】
Ｓ５０１：入力情報取得手段は、ランダムに２つの入力パターンを取得し、ノード集合Ａをそれらに対応する２つのノードのみを含む集合として初期化し、その結果を一時記憶部に格納する。また、辺集合Ｃ⊂Ａ×Ａを空集合として初期化し、その結果を一時記憶部に格納する。
Ｓ５０２：入力情報取得手段は、入力ベクトルとしての新しい入力パターンξを入力し、その結果を一時記憶部に格納する。
Ｓ５０３：勝者ノード探索手段は、一時記憶部に格納された入力パターン及びノードについて、入力パターンξに最も近い重みベクトルを持つ第１勝者ノードａ1及び２番目に近い重みベクトルを持つ第２勝者ノードａ2を探索し、その結果を一時記憶部に格納する。
【０１２６】
Ｓ５０４：類似度閾値判定手段は、一時記憶部に格納された入力パターン、ノード、ノードの類似度閾値について、入力パターンξと第１勝者ノードａ1間の距離が第１勝者ノードａ1の類似度閾値T1より大きいか否か、及び、入力パターンξと第２勝者ノードａ2間の距離が第２勝者ノードａ2の類似度閾値T2より大きいか否かを判定し、その結果を一時記憶部に格納する。ここで、一時記憶部に格納された第１勝者ノードａ1の類似度閾値T1及び第２勝者ノードａ2の類似度閾値T2は、ＳＯＩＮＮと同様にして算出され、その結果が一時記憶部に格納される。
Ｓ５０５：一時記憶部に格納されたＳ５０４における判定の結果、入力パターンξと第１勝者ノードａ1間の距離が第１勝者ノードａ1の類似度閾値T1より大きい、又は、入力パターンξと第２勝者ノードａ2間の距離が第２勝者ノードａ2の類似度閾値T2より大きい場合には、ノード挿入手段は、一時記憶部に格納された入力パターン及びノードについて、入力パターンξを新たなノードｉとして、入力パターンξと同じ位置に挿入し、その結果を一時記憶部に格納する。
【０１２７】
Ｓ５０６：一方、一時記憶部に格納されたＳ５０４における判定の結果、入力パターンξと第１勝者ノードａ1間の距離が第１勝者ノードａ1の類似度閾値T1以下であり、かつ、入力パターンξと第２勝者ノードａ2間の距離が第２勝者ノードａ2の類似度閾値T2以下である場合には、辺接続判定手段は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノードａ1及び第２勝者ノードａ2間に辺を接続するか否かを判定し、その結果を一時記憶部に格納する。
【０１２８】
Ｓ５０７：一時記憶部に格納されたＳ５０６における判定の結果、第１勝者ノードａ1及び第２勝者ノードａ2間に辺を生成して接続する場合には、辺接続手段は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を接続し、その結果を一時記憶部に格納する。そして、ａｄｊｕｓｔｅｄ  ＳＯＩＮＮは、一時記憶部に格納された辺及び辺の年齢について、新しく生成された辺、及び、既にノード間に辺が生成されていた場合にはその辺について、辺の年齢を０に設定しその結果を一時記憶部に格納し、第１勝者ノードａ1と直接的に接続される辺の年齢をインクリメントし（１増やす）、その結果を一時記憶部に格納する。一方、一時記憶部に格納されたＳ５０６における判定の結果、第１勝者ノードａ1及び第２勝者ノードａ2間に辺を接続しない場合には、Ｓ５０８へと処理を進めるが、既にノード間に辺が生成されていた場合には、辺削除手段は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノードａ1及び第２勝者ノードａ2間の辺を削除し、その結果を一時記憶部に格納する。
次いで、ａｄｊｕｓｔｅｄ  ＳＯＩＮＮは、一時記憶部に格納された第１勝者ノードａ1が第１勝者ノードとなった累積回数Ｍａ1をインクリメントし（１増やす）、その結果を一時記憶部に格納する。
【０１２９】
Ｓ５０８：重みベクトル更新手段は、一時記憶部に格納されたノード及びノードの重みベクトルについて、第１勝者ノードａ1の重みベクトル及び第１勝者ノードａ1の隣接ノードの重みベクトルをそれぞれ入力パターンξに更に近づけるように更新し、その結果を一時記憶部に格納する。ここで、重みベクトルの更新量の算出には、一時記憶部に格納されるＭａ1をｔとして使用する。
Ｓ５０９：ａｄｊｕｓｔｅｄ  ＳＯＩＮＮは、一時記憶部に格納された辺について、予め設定され一時記憶部に格納された閾値ａｇｅｔを超えた年齢を持つ辺を削除し、その結果を一時記憶部に格納する。尚、ａｇｅｔはノイズなどの影響により誤って生成される辺を削除するために使用する。ａｇｅｔに小さな値を設定することにより、辺が削除されやすくなりノイズによる影響を防ぐことができるものの、値を極端に小さくすると、頻繁に辺が削除されるようになり学習結果が不安定になる。一方、極端に大きな値をａｇｅｔに設定すると、ノイズの影響で生成された辺を適切に取り除くことができない。これらを考慮して、パラメタａｇｅｔは実験により予め算出し一時記憶部に格納される。
【０１３０】
Ｓ５１０：ａｄｊｕｓｔｅｄ  ＳＯＩＮＮは、一時記憶部に格納された与えられた入力パターンξの総数について、与えられた入力パターンξの総数が予め設定され一時記憶部に格納されたλの倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力パターンの総数がλの倍数でない場合にはＳ５０２へと戻り、次の入力パターンξを処理する。一方、入力パターンξの総数がλの倍数となった場合には以下の処理を実行する。尚、λはノイズと見なされるノードを削除する周期である。λに小さな値を設定することにより、頻繁にノイズ処理を実施することができるものの、値を極端に小さくすると、実際にはノイズではないノードを誤って削除してしまう。一方、極端に大きな値をλに設定すると、ノイズの影響で生成されたノードを適切に取り除くことができない。これらを考慮して、パラメタλは実験により予め算出し一時記憶部に格納される。
Ｓ５１１：ノイズノード削除手段は、一時記憶部に格納されたノードについて、ノイズノードと見なしたノードを削除し、その結果を一時記憶部に格納する。
【０１３１】
Ｓ５１２：ａｄｊｕｓｔｅｄ  ＳＯＩＮＮは、一時記憶部に格納された与えられた入力パターンξの総数について、与えられた入力パターンξの総数が予め設定されたＬＴの倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力パターンの総数がＬＴの倍数でない場合にはＳ５０２へと戻り、次の入力パターンξを処理する。一方、入力パターンξの総数がＬＴの倍数となった場合には以下の処理を実行する。
Ｓ５１３：ａｄｊｕｓｔｅｄ  ＳＯＩＮＮは、一時記憶部に格納されたノードをプロトタイプとして出力する。以上の処理を終了した後、ａｄｊｕｓｔｅｄ  ＳＯＩＮＮによる学習を停止する。
【０１３２】
次に、Ｅｎｈａｎｃｅｄ−ＳＯＩＮＮ（以下Ｅ−ＳＯＩＮＮという。）について説明する。Ｅ−ＳＯＩＮＮはＳＯＩＮＮに比べて、入力パターンの分布に高密度の重なりのあるクラスを分離することができる。そして、分布の重なり領域の検出処理においては、平滑化の手法を導入したことより、ＳＯＩＮＮに比べてより安定的に動作することができる。さらに、１層構造であっても効率的にノイズノードを削除することができる。さらにまた、ＳＯＩＮＮに比べて、より少ないパラメタで動作するため、処理をより容易に実行することができる。
【０１３３】
以下にＥ−ＳＯＩＮＮを簡単に説明する。図２９は、Ｅ−ＳＯＩＮＮによる学習処理の処理概要を示すフローチャートである。尚、上述したａｄｊｕｓｔｅｄ  ＳＯＩＮＮと同様の処理については説明を省略する。まず、図２９に示すＳ６０１乃至Ｓ６０５については、図２８に示したａｄｊｕｓｔｅｄ  ＳＯＩＮＮと同様の処理を実施する。従って、以下では図２９に示すＳ６０６からの処理について説明する。
【０１３４】
Ｓ６０６：辺接続判定手段は、一時記憶部に格納されたノード、ノード密度、ノード間の辺について、第１勝者ノードａ1及び第２勝者ノードａ2のノード密度に基づいて、第１勝者ノードａ1及び第２勝者ノードａ2間に辺を接続するか否かを判定し、その結果を一時記憶部に格納する。
【０１３５】
Ｓ６０７：一時記憶部に格納されたＳ６０６における判定の結果、第１勝者ノードａ1及び第２勝者ノードａ2間に辺を生成して接続する場合には、辺接続手段は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を接続し、その結果を一時記憶部に格納する。そして、Ｅ−ＳＯＩＮＮは、一時記憶部に格納された辺及び辺の年齢について、新しく生成された辺、及び、既にノード間に辺が生成されていた場合にはその辺について、辺の年齢を０に設定しその結果を一時記憶部に格納し、第１勝者ノードａ1と直接的に接続される辺の年齢をインクリメントし（１増やす）、その結果を一時記憶部に格納する。一方、一時記憶部に格納されたＳ６０６における判定の結果、第１勝者ノードａ1及び第２勝者ノードａ2間に辺を接続しない場合には、Ｓ６０８へと処理を進めるが、既にノード間に辺が生成されていた場合には、辺削除手段は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノードａ1及び第２勝者ノードａ2間の辺を削除し、その結果を一時記憶部に格納する。
次いで、一時記憶部に格納されたノード及びノード密度のポイント値について、第１勝者ノードａ1について、ノード密度算出手段は、一時記憶部に格納された第１勝者ノードａ1のノード密度のポイント値を算出しその結果を一時記憶部に格納し、算出され一時記憶部に格納されたノード密度のポイント値を以前までに算出され一時記憶部に格納されたポイント値に加算することで、ノード密度ポイントとして累積し、その結果を一時記憶部に格納する。
次いで、Ｅ−ＳＯＩＮＮは、一時記憶部に格納された第１勝者ノードａ1が第１勝者ノードとなった累積回数Ｍａ1をインクリメントし（１増やす）、その結果を一時記憶部に格納する。
【０１３６】
Ｓ６０８：重みベクトル更新手段は、一時記憶部に格納されたノード及びノードの重みベクトルについて、第１勝者ノードａ1の重みベクトル及び第１勝者ノードａ1の隣接ノードの重みベクトルをそれぞれ入力ベクトルξに更に近づけるように更新し、その結果を一時記憶部に格納する。尚、Ｅ−ＳＯＩＮＮにおいては、追加学習に対応するため、入力ベクトルの入力回数ｔに代えて、一時記憶部に格納される第１勝者ノードａ1が第１勝者ノードとなった累積回数Ｍａ1を用いる。
Ｓ６０９：Ｅ−ＳＯＩＮＮは、一時記憶部に格納された辺について、予め設定され一時記憶部に格納された閾値ａｇｅｔを超えた年齢を持つ辺を削除し、その結果を一時記憶部に格納する。
【０１３７】
Ｓ６１０：Ｅ−ＳＯＩＮＮは、一時記憶部に格納された与えられた入力ベクトルξの総数について、与えられた入力ベクトルξの総数が予め設定され一時記憶部に格納されたλの倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力ベクトルの総数がλの倍数でない場合にはＳ６０２へと戻り、次の入力ベクトルξを処理する。一方、入力ベクトルξの総数がλの倍数となった場合には以下の処理を実行する。
【０１３８】
Ｓ６１１：分布重なり領域検出手段は、一時記憶部に格納されたサブクラスタ及び分布の重なり領域について、上述のＳ３０１乃至Ｓ３０５において示したようにしてサブクラスタの境界である分布の重なり領域を検出し、その結果を一時記憶部に格納する。
Ｓ６１２：ノード密度算出手段は、一時記憶部に格納されて累積されたノード密度ポイントを単位入力数あたりの割合として算出しその結果を一時記憶部に格納し、単位入力数あたりのノードのノード密度を算出し、その結果を一時記憶部に格納する。
Ｓ６１３：ノイズノード削除手段は、一時記憶部に格納されたノードについて、ノイズノードと見なしたノードを削除し、その結果を一時記憶部に格納する。尚、Ｓ６１３においてノイズノード削除手段が使用するパラメタｃ1及びｃ2はノードをノイズと見なすか否かの判定に使用する。通常、隣接ノード数が２であるノードはノイズではないことが多いため、ｃ1は０に近い値を使用する。また、隣接ノード数が１であるノードはノイズであることが多いため、ｃ2は１に近い値を使用するものとし、これらのパラメタは予め設定され一時記憶部に格納される。
【０１３９】
Ｓ６１４：Ｅ−ＳＯＩＮＮは、一時記憶部に格納された与えられた入力ベクトルξの総数について、与えられた入力ベクトルξの総数が予め設定され一時記憶部に格納されたＬＴの倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力ベクトルの総数がＬＴの倍数でない場合にはＳ６０２へと戻り、次の入力ベクトルξを処理する。
一方、入力ベクトルξの総数がＬＴの倍数となった場合には、一時記憶部に格納されたノードをプロトタイプとして出力する。以上の処理を終了した後、学習を停止する。
【０１４０】
ノード密度算出手段は、一時記憶部に格納されたノード及びノード密度について、注目するノードについて、その隣接ノード間の平均距離に基づいて、注目するノードのノード密度を算出し、その結果を一時記憶部に格納する。具体的には、ノード密度ポイント算出部は、例えば一時記憶部に格納される以下の式に基づいてノードｉに与えられるノード密度のポイント値ｐｉを算出し、その結果を一時記憶部に格納する。尚、ノードｉに与えられるポイント値ｐｉは、ノードｉが第１勝者ノードとなった場合には一時記憶部に格納される以下の式に基づいて算出されるポイント値が与えられるが、ノードｉが第１勝者ノードでない場合にはノードｉにはポイントは与えられないものとする。
【数１６】
2008299644.tif 000018
ここで、ｅｉはノードｉからその隣接ノードまでの平均距離を示し、一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。
【数１７】
2008299644.tif 000019
尚、ｍは一時記憶部に格納されたノードｉの隣接ノードの個数を示し、Ｗｉは一時記憶部に格納されたノードｉの重みベクトルを示す。
【０１４１】
ここで、隣接ノードへの平均距離が大きくなる場合には、ノードを含むその領域にはノードが少ないものと考えられ、逆に平均距離が小さくなる場合には、その領域にはノードが多いものと考えられる。従って、ノードの多い領域で第１勝者ノードとなった場合には高いポイントが与えられ、ノードの少ない領域で第１勝者ノードとなった場合には低いポイントが与えられるようにノードの密度のポイント値の算出方法を上述のように構成する。
【０１４２】
これにより、ノードを含むある程度の範囲の領域におけるノードの密集具合を推定することができるため、ノードの分布が高密度の領域に位置するノードであっても、ノードが第１勝者回数となった回数をノードの密度とするＳＯＩＮＮに比べて、入力ベクトルの入力分布密度により近似した密度となるノード密度ポイントを算出することができる。
【０１４３】
単位ノード密度ポイント算出部は、例えば一時記憶部に格納される以下の式に基づいてノードｉの単位入力数あたりのノード密度ｄｅｎｓｉｔｙｉを算出し、その結果を一時記憶部に格納する。
【数１８】
2008299644.tif 000020
ここで、連続して与えられる入力ベクトルの入力回数を予め設定され一時記憶部に格納される一定の入力回数λごとの区間に分け、各区間においてノードｉに与えられたポイントについてその合計を累積ポイントｓｉと定める。尚、入力ベクトルの総入力回数を予め設定され一時記憶部に格納されるＬＴとする場合に、ＬＴ/λを区間の総数ｎとしその結果を一時記憶部に格納し、ｎのうち、ノードに与えられたポイントの合計が０以上であった区間の数をＮとして算出し、その結果を一時記憶部に格納する（Ｎとｎは必ずしも同じとならない点に注意する）。
【０１４４】
累積ポイントｓｉは、例えば一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。
【数１９】
2008299644.tif 000021
ここで、ｐｉ（ｊ，ｋ）はｊ番目の区間におけるｋ番目の入力によってノードｉに与えられたポイントを示し、上述のノード密度ポイント算出部により算出され、その結果を一時記憶部に格納する。
【０１４５】
このように、単位ノード密度ポイント算出部は、一時記憶部に格納されたノードｉの密度ｄｅｎｓｉｔｙｉを累積ポイントｓｉの平均として算出し、その結果を一時記憶部に格納する。
【０１４６】
尚、Ｅ−ＳＯＩＮＮにおいては追加学習に対応するため、ｎに代えてＮを用いる。これは、追加学習において、以前の学習で生成されたノードにはポイントが与えられないことが多く、ｎを用いて密度を算出すると、以前学習したノードの密度が次第に低くなってしまうという問題を回避するためである。即ち、ｎに代えてＮを用いてノード密度を算出することで、追加学習を長時間行った場合であっても、追加されるデータが以前学習したノードの近くに入力されない限りは、そのノードの密度を変化させずに保持することができる。これにより、追加学習を長時間実施する場合であっても、ノードのノード密度が相対的に小さくなってしまうことを防ぐことができ、ＳＯＩＮＮを含む従来の手法に比べて、入力ベクトルの入力分布密度により近似したノード密度を変化させずに保持して算出することができる。
【０１４７】
分布重なり領域検出手段は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードの密度について、辺によって接続されるノードの集合であるクラスタを、ノード密度算出手段によって算出されるノード密度に基づいてクラスタの部分集合であるサブクラスタに分割し、その結果を一時記憶部に格納し、サブクラスタの境界である分布の重なり領域を検出し、その結果を一時記憶部に格納する。
【０１４８】
さらに、分布重なり領域検出手段は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードの密度について、ノード密度算出手段により算出されたノード密度に基づいて、ノード密度が局所的に最大であるノードを探索するノード探索部と、探索したノードに対して、既に他のノードに付与済みのラベルとは異なるラベルを付与する第１のラベル付与部と、第１のラベル付与部によりラベルが付与されなかったノードのうち、そのノードと辺によって接続されるノードについて、第１のラベル付与部によりラベルが付与されたノードのラベルと同じラベルを付与する第２のラベル付与部と、それぞれ異なるラベルが付与されたノード間に辺によって直接的に接続がある場合に、その辺によって接続されるノードの集合であるクラスタをクラスタの部分集合であるサブクラスタに分割するクラスタ分割部と、注目するノード及びその隣接ノードがそれぞれ異なるサブクラスタに属する場合に、その注目するノード及びその隣接ノードを含む領域を、サブクラスタの境界である分布の重なり領域として検出する分布重なり領域検出部を有する。具体的には、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードの密度について、例えば以下のようにしてサブクラスタの境界である分布の重なり領域を検出し、その結果を一時記憶部に格納する。
【０１４９】
Ｓ７０１：ノード探索部は、一時記憶部に格納されたノード及びノードの密度について、ノード密度算出手段により算出されたノード密度に基づいて、ノード密度が局所的に最大であるノードを探索し、その結果を一時記憶部に格納する。
Ｓ７０２：第１のラベル付与部は、一時記憶部に格納されたノード、及びノードのラベルについて、Ｓ７０１において探索したノードに対して、既に他のノードに付与済みのラベルとは異なるラベルを付与し、その結果を一時記憶部に格納する。
Ｓ７０３：第２のラベル付与部は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードのラベルについて、Ｓ７０２において第１のラベル付与部によりラベルが付与されなかったノードについて、第１のラベル付与部にラベルが付与されたノードと辺によって接続されるノードについて、第１のラベル付与部によりラベルが付与されたノードのラベルと同じラベルを付与し、その結果を一時記憶部に格納する。即ち、密度が局所的に最大の隣接ノードと同じラベルを付与する。
Ｓ７０４：クラスタ分割部は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードのラベルについて、一時記憶部に格納された辺によって接続されるノードの集合であるクラスタを、同じラベルが付与されたノードからなるクラスタの部分集合であるサブクラスタに分割し、その結果を一時記憶部に格納する。
Ｓ７０５：分布重なり領域検出部は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードのラベルについて、注目するノードとその隣接ノードが異なるサブクラスタにそれぞれ属する場合に、その注目するノード及びその隣接ノードを含む領域を、サブクラスタの境界である分布の重なり領域として検出し、その結果を一時記憶部に格納する。
【０１５０】
辺接続判定手段は、一時記憶部に格納されたノード、ノード密度、及び分布重なり領域について、第１勝者ノード及び第２勝者ノードが分布重なり領域に位置するノードである場合に、第１勝者ノード及び第２勝者ノードのノード密度に基づいて第１勝者ノード及び第２勝者ノード間に辺を接続するか否かを判定し、その結果を一時記憶部に格納する。さらに辺接続判定手段は、一時記憶部に格納されたノード、ノード密度、ノードのサブクラスタについて、ノードが属しているサブクラスタを判定する所属サブクラスタ判定部と、ノードが属するサブクラスタの頂点の密度及びノードの密度に基づいて、第１勝者ノード及び第２勝者ノード間に辺を接続するか否かを判定する辺接続判定部を有する。
【０１５１】
辺接続手段は、一時記憶部に格納された辺接続判定手段の判定結果に基づいて、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を接続し、その結果を一時記憶部に格納する。辺削除手段は、一時記憶部に格納された辺接続判定手段の判定結果に基づいて、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間の辺を削除し、その結果を一時記憶部に格納する。具体的には、一時記憶部に格納されたノード、ノード密度、ノードのサブクラスタ、及びノード間の辺について、例えば以下のようにして辺接続判定手段は辺を接続するか否かを判定し、辺接続手段及び辺削除手段は辺の生成及び削除処理を実施し、その結果を一時記憶部に格納する。
【０１５２】
Ｓ８０１：所属サブクラスタ判定部は、一時記憶部に格納されたノード、ノードのサブクラスタについて、第１勝者ノード及び第２勝者ノードが属するサブクラスタをそれぞれ判定し、その結果を一時記憶部に格納する。
Ｓ８０２：一時記憶部に格納されたＳ８０１における判定の結果、第１勝者ノード及び第２勝者ノードがどのサブクラスタにも属していない場合、又は、第１勝者ノード及び第２勝者ノードが同じサブクラスタに属している場合には、辺接続手段は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を生成することによりノード間を接続し、その結果を一時記憶部に格納する。
Ｓ８０３：一時記憶部に格納されたＳ８０１における判定の結果、第１勝者ノード及び第２勝者ノードが互いに異なるサブクラスタに属す場合には、辺接続判定部は、一時記憶部に格納されたノード、ノード密度、及びノード間の辺について、ノードが属するサブクラスタの頂点の密度及びノードの密度に基づいて、第１勝者ノード及び第２勝者ノード間に辺を接続するか否かを判定し、その結果を一時記憶部に格納する。
Ｓ８０４：一時記憶部に格納されたＳ８０３における辺接続判定部による判定の結果、辺を接続する必要がないと判定した場合には、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間を辺によって接続せず、既にノード間が辺によって接続されていた場合には、辺削除手段は、一時記憶部に格納されたノード及びノード間の辺について、一時記憶部に格納された第１勝者ノード及び第２勝者ノード間の辺を削除し、その結果を一時記憶部に格納する。
Ｓ８０５：一時記憶部に格納されたＳ８０３における辺接続判定部による判定の結果、辺を接続する必要があると判定した場合には、辺接続手段は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を生成しノード間を接続する。
【０１５３】
ここで、辺接続判定部による判定処理について詳細に説明する。
まず、辺接続判定部は、一時記憶部に格納されたノード及びノード密度について、第１勝者ノードのノード密度ｄｅｎｓｉｔｙｗｉｎ及び第２勝者ノード密度ｄｅｎｓｉｔｙｓｅｃ−ｗｉｎのうち、最小のノード密度ｍを例えば一時記憶部に格納される以下の式に基いて算出し、その結果を一時記憶部に格納する。
【数２０】
2008299644.tif 000022
次に、一時記憶部に格納されたノード、ノードのノード密度、及びノードのサブクラスについて、第１勝者ノード及び第２勝者ノードがそれぞれ属するサブクラスタＡ及びサブクラスタＢについて、サブクラスタＡの頂点の密度Ａｍａｘ及びサブクラスタＢの頂点の密度Ｂｍａｘを算出し、その結果を一時記憶部に格納する。尚、サブクラスタに含まれるノードのうち、ノード密度が最大であるノード密度をサブクラスタの頂点の密度とする。
【０１５４】
そして、一時記憶部に格納されたノードが属するサブクラスタの頂点の密度Ａｍａｘ及びＢｍａｘ、及びノードの密度ｍについて、ｍがαＡＡｍａｘより小さく、かつ、ｍがαＢＢｍａｘより小さいか否かを判定し、その結果を一時記憶部に格納する。即ち、一時記憶部に格納される以下の不等式を満足するか否かを判定し、その結果を一時記憶部に格納する。
【数２１】
2008299644.tif 000023
【０１５５】
判定の結果、ｍがαＡＡｍａｘより小さく、かつ、ｍがαＢＢｍａｘより小さい場合には、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間には辺は不要であると判定し、その結果を一時記憶部に格納する。
一方、判定の結果、ｍがαＡＡｍａｘ以上、または、ｍがαＢＢｍａｘ以上である場合には、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺は必要であると判定し、その結果を一時記憶部に格納する。
【０１５６】
このように、第１勝者ノード及び第２勝者ノードの最小ノード密度ｍを、第１勝者ノード及び第２勝者ノードをそれぞれ含むサブクラスタの平均的なノード密度と比較することで、第１勝者ノード及び第２勝者ノードを含む領域におけるノード密度の凹凸の大きさを判定することができる。即ち、サブクラスタＡ及びサブクラスタＢの間に存在する分布の谷間のノード密度ｍが、閾値αＡＡｍａｘ又はαＢＢｍａｘより大きな場合には、ノード密度の形状は小さな凹凸であると判定することができる。
【０１５７】
ここで、αＡ及びαＢは一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。尚、αＢについてもαＡと同様にして算出することができるためここでは説明を省略する。
ｉ）      Ａｍａｘ/ｍｅａｎＡ−１≦１の場合には、αＡ＝０．０とする。
ｉｉ）    １＜Ａｍａｘ/ｍｅａｎＡ−１≦２の場合には、αＡ＝０．５とする。
ｉｉｉ）  ２＜Ａｍａｘ/ｍｅａｎＡ−１の場合には、αＡ＝１．０とする。
【０１５８】
Ａｍａｘ/ｍｅａｎＡの値が１以下となるi）の場合には、ＡｍａｘとｍｅａｎＡの値は同程度であり、密度の凹凸はノイズの影響によるものと判断する。そして、αの値を０．０とすることで、サブクラスタが統合されるようにする。また、Ａｍａｘ/ｍｅａｎＡの値が２を超えるiii）の場合には、ＡｍａｘはｍｅａｎＡに比べて十分大きく、明らかな密度の凹凸が存在するものと判断する。そして、αの値を１．０とすることで、サブクラスタが分離されるようにする。そして、Ａｍａｘ/ｍｅａｎＡの値が上述した場合以外となる i i）の場合には、αの値を０．５とすることで、密度の凹凸の大きさに応じてサブクラスタが統合又は分離されるようにする。尚、ｍｅａｎＡはサブクラスタＡに属すノードｉのノード密度ｄｅｎｓｉｔｙｉの平均値を示し、ＮＡをサブクラスタＡに属するノードの数として、一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。
【数２２】
2008299644.tif 000024
【０１５９】
このように、サブクラスタへの分離を行う際に、サブクラスタに含まれるノード密度の凹凸の程度を判定し、ある基準を満たした２つのサブクラスタを１つに統合することで、分布の重なり領域の検出におけるサブクラスタの分けすぎによる不安定化を防止することができる。例えば、ノイズや学習サンプルが少ないことが原因で、密度の分布に多くの細かい凹凸が形成されることがある。このような場合に、第１勝者ノード及び第２勝者ノードがサブクラスタＡ及びＢの間にある分布の重なり領域に位置する場合に、ノード間の接続を行う際にある基準を満たした２つのサブクラスタを１つに統合することで、密度の分布に多くの細かい凹凸が含まれる場合であっても平滑化することができる。
【０１６０】
ノイズノード削除手段は、一時記憶部に格納されたノード、ノード密度、ノード間の辺、隣接ノードの個数について、注目するノードについて、ノード密度算出手段により算出されるノード密度及び注目するノードの隣接ノードの個数に基づいて、注目するノードを削除し、その結果を一時記憶部に格納する。
【０１６１】
さらにノイズノード削除手段は、一時記憶部に格納されたノード、ノード密度、ノード間の辺、隣接ノードの個数について、注目するノードのノード密度を所定の閾値と比較するノード密度比較部と、注目するノードの隣接ノードの個数を算出する隣接ノード数算出部と、注目するノードをノイズノードとみなして削除するノイズノード削除部を有する。具体的には、例えば以下のようにして一時記憶部に格納されたノード、ノード密度、ノード間の辺、隣接ノードの個数について、ノード密度及び注目するノードの隣接ノードの個数に基づいて、注目するノードを削除し、その結果を一時記憶部に格納する。
【０１６２】
ノイズノード削除手段は、一時記憶部に格納されたノード、ノード間の辺、隣接ノードの個数について、注目するノードｉについて、隣接ノード数算出部によりその隣接ノードの個数を算出し、その結果を一時記憶部に格納する。そして、一時記憶部に格納された隣接ノードの個数に応じて、以下の処理を実施する。
【０１６３】
ｉ）      一時記憶部に格納された隣接ノード数が２の場合、ノード密度比較部はノードｉのノード密度ｄｅｎｓｉｔｙｉを例えば一時記憶部に格納される以下の式に基づいて算出する閾値と比較し、その結果を一時記憶部に格納する。
【数２３】
2008299644.tif 000025
一時記憶部に格納された比較結果について、ノード密度ｄｅｎｓｉｔｙｉが閾値より小さい場合には、ノイズノード削除部は、一時記憶部に格納されたノードについて、ノードを削除し、その結果を一時記憶部に格納する。
【０１６４】
ｉｉ）    一時記憶部に格納された隣接ノード数が１の場合、ノード密度比較部はノードｉのノード密度ｄｅｎｓｉｔｙｉを例えば一時記憶部に格納される以下の式に基づいて算出する閾値と比較し、その結果を一時記憶部に格納する。
【数２４】
2008299644.tif 000026
一時記憶部に格納された比較の結果について、ノード密度ｄｅｎｓｉｔｙｉが閾値より小さい場合には、ノイズノード削除部は、一時記憶部に格納されたノードについて、ノードを削除し、その結果を一時記憶部に格納する。
【０１６５】
ｉｉｉ）  一時記憶部に格納された隣接ノード数について、隣接ノードを持たない場合、ノイズノード削除部は、一時記憶部に格納されたノードについて、ノードを削除し、その結果を一時記憶部に格納する。
【０１６６】
ここで、予め設定され一時記憶部に格納される所定のパラメタｃ1及びｃ2を調整することで、ノイズノード削除手段によるノイズノードの削除の振る舞いを調整することができる。
【０１６７】
本発明の目的は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは当然である。この場合、記録媒体から読み出されたプログラムコード自体が上述の実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１６８】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているオペレーティングシステム（ＯＳ）などが実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も当然含まれる。
【０１６９】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も当然含まれる。本発明を上記記録媒体に適用する場合、その記録媒体には、上述したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１７０】
【図１】本発明を実施するための機能ブロックを示す図である。
【図２】本発明に係る学習部の構造を模式的に示す図である。
【図３】従来手法であるＳＯＩＮＮによる学習処理の処理概要を示すフローチャートである。
【図４】従来手法であるＳＯＩＮＮに対して入力した人工データセットを示す図である。
【図５】人工データセットに対するＳＯＩＮＮの出力結果を示す図である。
【図６】本実施形態に係る連想記憶装置のシステム構成を示す図である。
【図７】連想記憶装置による学習処理の処理概要を示すフローチャートである。
【図８】連想記憶装置による想起処理の処理概要を示すフローチャートである。
【図９】検証実験に用いたグレイスケールの顔画像を示す図である。
【図１０】比較実験に用いた２値データの画像を示す図である。
【図１１】学習器に対するパラメタ設定を示す表である。
【図１２】閾値に対するＲｅｃａｌｌ及びＰｒｅｃｉｓｉｏｎの変化を示す表である。
【図１３】学習器による想起結果を示す表である。
【図１４】従来手法による想起結果を示す図である。
【図１５】検証実験に用いた顔画像の連想対を示す図である。
【図１６】閾値に対するＲｅｃａｌｌ及びＰｒｅｃｉｓｉｏｎの変化を示す表である。
【図１７】閾値に対するＲｅｃａｌｌ及びＰｒｅｃｉｓｉｏｎの変化を示す表である。
【図１８】ノイズに対するＲｅｃａｌｌ及びＰｒｅｃｉｓｉｏｎの変化を示す図である。
【図１９】ノイズの乗った顔画像を示す図である。
【図２０】データと独立なノイズ及びその想起結果を示す図である。
【図２１】ノイズに対する学習器による想起結果を示す図である。
【図２２】データと独立なノイズに対する学習器による想起結果を示す図である。
【図２３】検証実験に用いた実環境から得られる物体を示す図である。
【図２４】検証実験に用いた色及び形特徴からなる連想対を示す表である。
【図２５】連想記憶装置による順方向想起結果の一例を示す図である。
【図２６】連想記憶装置による逆方向想起結果の一例を示す図である。
【図２７】データに乗ったノイズ及びデータと独立なノイズを示す図である。
【図２８】従来手法であるａｄｊｕｓｔｅｄ  ＳＯＩＮＮによる学習処理の処理概要を示すフローチャートである。
【図２９】従来手法であるＥ―ＳＯＩＮＮによる学習処理の処理概要を示すフローチャートである。
【符号の説明】
【０１７１】
１    連想記憶装置
４０    コンピュータ
４１    ＣＰＵ
４２    ＲＯＭ
４３    ＲＡＭ
４４    バス
４５    入出力インターフェイス
４６    入力部
４７    出力部
４８    記憶部
４９    通信部
５０    ドライブ
５０１    磁気ディスク
５０２    光ディスク
５０３    フレキシブルディスク
５０４    半導体メモリ
１０  学習部
１１  入力部
１２  ＳＯＩＮＮ
１２１  クラス間ノード挿入部
１２２  辺削除部
１２３  ノード削除部
１２４  重みベクトル更新部
１２５  プロトタイプノード生成部
２０  想起部
３０  学習用連想対ＤＢ
【図１】
2008299644.tif 000027
【図３】
2008299644.tif 000028
【図６】
2008299644.tif 000029
【図７】
2008299644.tif 000030
【図８】
2008299644.tif 000031
【図１１】
2008299644.tif 000032
【図１２】
2008299644.tif 000033
【図１４】
2008299644.tif 000034
【図１６】
2008299644.tif 000035
【図１７】
2008299644.tif 000036
【図１８】
2008299644.tif 000037
【図２２】
2008299644.tif 000038
【図２４】
2008299644.tif 000039
【図２８】
2008299644.tif 000040
【図２９】
2008299644.tif 000041
【図２】
2008299644.tif 000042
【図４】
2008299644.tif 000043
【図５】
2008299644.tif 000044
【図９】
2008299644.tif 000045
【図１０】
2008299644.tif 000046
【図１３】
2008299644.tif 000047
【図１５】
2008299644.tif 000048
【図１９】
2008299644.tif 000049
【図２０】
2008299644.tif 000050
【図２１】
2008299644.tif 000051
【図２３】
2008299644.tif 000052
【図２５】
2008299644.tif 000053
【図２６】
2008299644.tif 000054
【図２７】
2008299644.tif 000055