(57)【要約】【課題】入力パターンを実数値ベクトルにより表現することができると共に、連言、選言、否定を含む任意のｉｆ−ｔｈｅｎルールを自己増殖型ニューラルネットワークによって学習させることができる推論装置、推論方法、及びプログラムを提供することを目的とする。【解決手段】本発明に係る推論装置は、自己増殖型ニューラルネットワークを用いて、ｉｆ−ｔｈｅｎルールを入力パターンとして学習する学習部４０と、学習部４０による学習結果を利用して推論を行う推論部５０を備え、自己増殖型ニューラルネットワークは、多次元ベクトルで記述される入力パターンをニューラルネットワークに順次入力し、当該入力パターン、及び当該ニューラルネットワークに配置される多次元ベクトルで記述されるノードに基づいて、ノードを自動的に増加させると共にノード間を辺により接続してゆくものである。【選択図】図１
2008305129.tif 000002
【特許請求の範囲】
【請求項１】
自己増殖型ニューラルネットワークを用いて、ｉｆ−ｔｈｅｎルールを入力パターンとして学習する学習部と、
前記学習部による学習結果を利用して推論を行う推論部を備え、
前記自己増殖型ニューラルネットワークは、多次元ベクトルで記述される前記入力パターンをニューラルネットワークに順次入力し、当該入力パターン、及び当該ニューラルネットワークに配置される多次元ベクトルで記述されるノードに基づいて、ノードを自動的に増加させると共にノード間を辺により接続してゆく
ことを特徴とする推論装置。
【請求項２】
前記自己増殖型ニューラルネットワークは、
入力される前記入力パターンに最も近い重みベクトルを持つノードと２番目に近い重みベクトルを持つノードの間に辺を接続したとき、
注目するノードと他のノード間の距離に基づいて算出される当該注目するノードの類似度閾値、及び前記入力パターンと当該注目するノードとの間の距離に基づいて、前記入力パターンをノードとして挿入するクラス間ノード挿入部を有し、
前記学習部は、前記自己増殖型ニューラルネットワークを用いて、前記入力パターンをクラスタリングする
ことを特徴とする請求項１記載の推論装置。
【請求項３】
前記クラス間ノード挿入部は、
入力される前記入力パターンに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとし、当該第１勝者ノード及び当該第２勝者ノードの間に辺を接続したとき、
注目するノードについて、当該注目するノードと辺によって直接的に接続されるノードが存在する場合には、当該直接的に接続されるノードのうち当該注目するノードからの距離が最大であるノード間の距離を前記類似度閾値とし、当該注目するノードと辺によって直接的に接続されるノードが存在しない場合には、当該注目するノードからの距離が最小であるノード間の距離を前記類似度閾値として算出する類似度閾値算出部と、
前記入力パターンと前記第１勝者ノード間の距離が当該第１勝者ノードの類似度閾値より大きいか否か、及び、前記入力パターンと前記第２勝者ノード間の距離が当該第２勝者ノードの類似度閾値より大きいか否かを判定する類似度閾値判定部と、
類似度閾値判定結果に基づいて、前記入力パターンをノードとして当該入力パターンと同じ位置に挿入するノード挿入部とを有する
ことを特徴とする請求項２記載の推論装置。
【請求項４】
前記自己増殖型ニューラルネットワークは、
前記辺に対応付けられる辺の年齢に基づいて、当該辺を削除する辺削除部と、
注目するノードについて、当該注目するノードに直接的に接続される辺の本数に基づいて、当該注目するノードを削除するノード削除部とを更に有する
ことを特徴とする請求項１記載の推論装置。
【請求項５】
前記推論部は、前記学習部により学習され長期記憶部に記憶されたノードとしてのｉｆ−ｔｈｅｎルールと推論に利用する事実データであるファクトとの間の距離に基づいて推論を行う
ことを特徴とする請求項１記載の推論装置。
【請求項６】
前記推論部は、前記学習部により学習され長期記憶部に記憶された前記ｉｆ―ｔｈｅｎルールの条件部と前記ファクトとの間の距離が所定の閾値より小さい場合に、前記ｉｆ―ｔｈｅｎルールの結論部を出力する
ことを特徴とする請求項５記載の推論装置。
【請求項７】
前記推論部は、
前記ファクトを根としたときに、当該ファクトとの間の距離が所定の閾値より小さな前記ｉｆ―ｔｈｅｎルールの結論部を当該ファクトの子ノードとして追加する第１の子ノード追加部と、
前記第１の子ノード追加部により追加された前記結論部をファクトとして、当該ファクトとの間の距離が所定の閾値より小さな前記ｉｆ―ｔｈｅｎルールの結論部を当該ファクトの子ノードとして追加する第２の子ノード追加部とを有する
ことを特徴とする請求項６記載の推論装置。
【請求項８】
前記学習部により学習され長期記憶部に記憶された前記ｉｆ―ｔｈｅｎルールとしてのノードについて、注目する前記ｉｆ―ｔｈｅｎルールの一部又は全部と、他の注目する前記ｉｆ―ｔｈｅｎルールの一部又は全部との間の距離を算出する
ことを特徴とする請求項１乃至７いずれか１項記載の推論装置。
【請求項９】
任意のｉｆ−ｔｈｅｎルールについて、当該ｉｆ−ｔｈｅｎルールの条件部及び結論部をそれぞれ選言標準形に変形し、当該変形した前記条件部及び前記結論部の選言肢の組合せからなるｉｆ−ｔｈｅｎルールへと分解する分解部を更に有し、
前記分解部は、分解された前記ｉｆ−ｔｈｅｎルールを前記自己増殖型ニューラルネットワークへと入力する
ことを特徴とする請求項１記載の推論装置。
【請求項１０】
前記自己増殖型ニューラルネットワークは１層構造である
ことを特徴とする請求項１記載の推論装置。
【請求項１１】
多次元ベクトルで記述される入力パターンをニューラルネットワークに順次入力し、当該入力パターン、及び当該ニューラルネットワークに配置される多次元ベクトルで記述されるノードに基づいて、ノードを自動的に増加させると共にノード間を辺により接続してゆく自己増殖型ニューラルネットワーク用いて、ｉｆ−ｔｈｅｎルールを前記入力パターンとして学習する学習ステップと、
前記学習ステップによる学習結果を利用して推論を行う推論ステップと
を有する推論方法。
【請求項１２】
前記自己増殖型ニューラルネットワークは、
入力される前記入力パターンに最も近い重みベクトルを持つノードと２番目に近い重みベクトルを持つノードの間に辺を接続したとき、
注目するノードと他のノード間の距離に基づいて算出される当該注目するノードの類似度閾値、及び前記入力パターンと当該注目するノードとの間の距離に基づいて、前記入力パターンをノードとして挿入するクラス間ノード挿入ステップを有し、
前記学習ステップは、前記自己増殖型ニューラルネットワークを用いて、前記入力パターンをクラスタリングする
ことを特徴とする請求項１１記載の推論方法。
【請求項１３】
前記クラス間ノード挿入ステップは、
入力される前記入力パターンに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとし、当該第１勝者ノード及び当該第２勝者ノードの間に辺を接続したとき、
注目するノードについて、当該注目するノードと辺によって直接的に接続されるノードが存在する場合には、当該直接的に接続されるノードのうち当該注目するノードからの距離が最大であるノード間の距離を前記類似度閾値とし、当該注目するノードと辺によって直接的に接続されるノードが存在しない場合には、当該注目するノードからの距離が最小であるノード間の距離を前記類似度閾値として算出する類似度閾値算出ステップと、
前記入力パターンと前記第１勝者ノード間の距離が当該第１勝者ノードの類似度閾値より大きいか否か、及び、前記入力パターンと前記第２勝者ノード間の距離が当該第２勝者ノードの類似度閾値より大きいか否かを判定する類似度閾値判定ステップと、
類似度閾値判定結果に基づいて、前記入力パターンをノードとして当該入力パターンと同じ位置に挿入するノード挿入ステップとを有する
ことを特徴とする請求項１２記載の推論方法。
【請求項１４】
前記自己増殖型ニューラルネットワークは、
前記辺に対応付けられる辺の年齢に基づいて、当該辺を削除する辺削除ステップと、
注目するノードについて、当該注目するノードに直接的に接続される辺の本数に基づいて、当該注目するノードを削除するノード削除ステップとを更に有する
ことを特徴とする請求項１１記載の推論方法。
【請求項１５】
前記推論ステップは、前記学習ステップにより学習され長期記憶部に記憶されたノードとしてのｉｆ−ｔｈｅｎルールと推論に利用する事実データであるファクトとの間の距離に基づいて推論を行う
ことを特徴とする請求項１１記載の推論方法。
【請求項１６】
前記推論ステップは、前記学習ステップにより学習され長期記憶部に記憶された前記ｉｆ―ｔｈｅｎルールの条件部と前記ファクトとの間の距離が所定の閾値より小さい場合に、前記ｉｆ―ｔｈｅｎルールの結論部を出力する
ことを特徴とする請求項１５記載の推論方法。
【請求項１７】
前記推論ステップは、
前記ファクトを根としたときに、当該ファクトとの間の距離が所定の閾値より小さな前記ｉｆ―ｔｈｅｎルールの結論部を当該ファクトの子ノードとして追加する第１の子ノード追加ステップと、
前記第１の子ノード追加ステップにより追加された前記結論部をファクトとして、当該ファクトとの間の距離が所定の閾値より小さな前記ｉｆ―ｔｈｅｎルールの結論部を当該ファクトの子ノードとして追加する第２の子ノード追加ステップとを有する
ことを特徴とする請求項１６記載の推論方法。
【請求項１８】
前記学習ステップにより学習され長期記憶部に記憶された前記ｉｆ−ｔｈｅｎルールとしてのノードについて、注目する前記ｉｆ−ｔｈｅｎルールの一部又は全部と、他の注目する前記ｉｆ−ｔｈｅｎルールの一部又は全部との間の距離を算出する
ことを特徴とする請求項１１乃至１７いずれか１項記載の推論方法。
【請求項１９】
任意のｉｆ−ｔｈｅｎルールについて、当該ｉｆ−ｔｈｅｎルールの条件部及び結論部をそれぞれ選言標準形に変形し、当該変形した前記条件部及び前記結論部の選言肢の組合せからなるｉｆ−ｔｈｅｎルールへと分解する分解ステップを更に有し、
前記分解ステップは、分解された前記ｉｆ−ｔｈｅｎルールを前記自己増殖型ニューラルネットワークへと入力する
ことを特徴とする請求項１１記載の推論方法。
【請求項２０】
前記自己増殖型ニューラルネットワークは１層構造である
ことを特徴とする請求項１１記載の推論方法。
【請求項２１】
請求項１１乃至２０いずれか１項記載の推論方法による処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自己増殖型ニューラルネットワークを用いてパターンベースの推論を行う推論装置、推論方法、及びプログラムに関する。
【背景技術】
【０００２】
人工知能分野における論理・推論に関する研究の歴史は長く、これまでにも多くの研究がなされてきた。推論に関する研究は、いわば、知識をシンボルで表現し、それを利用して新しい知識を生成する記号処理の仕組みの研究である。しかし、非定常な実環境下において汎用的なタスクを扱う知能ロボット等にとって、このような既存の推論システムの枠組みでは不十分なものである。これは、既存のシステムのほとんどがシンボル化された知識のみを操作対象とする推論しか行えないことが大きな理由であるものと考えられる。
【０００３】
シンボルを操作対象とする代表的な推論機としてプロダクションシステムがある。プロダクションシステムでは、事前に人間の専門家がｉｆ−ｔｈｅｎルールの形でシステムにシンボルベースの知識を与えておく必要がある。このため、システムの扱うタスクの範囲が限定されている場合には、必要とされる知識を事前にシステムに与えることによってタスクを解決することができる。
【０００４】
一方、非定常な実環境下においては、自律的に活動する知能ロボット等にとって十分な知識を事前に全て列挙することは不可能であり、知能ロボット等が新たな環境に適応するためには自律的に知識を追加学習していく必要がある。このようなシステムが実世界からセンサを通じて獲得する情報はパターン情報であり、シンボル化されていないものである。従って、獲得された情報を、シンボルを操作対象とする推論機を用いて推論するためには、パターン情報をシンボル化する必要がある。しかし、現在のパターン識別機の性能は不十分なものであるため、例えば猫と犬を識別することすら簡単なことではない。このため、パターン情報をシンボル化する装置に従来のシンボルベースの推論機を組み合わせても、推論性能には限界がある。
【０００５】
また、人間と同等の能力を有する識別機が開発された場合においても、以下の理由からシンボルベースの推論機だけでは不十分なものであると考えられる。第一に、システムが自らシンボルを生成する際に生じる問題が挙げられる。非定常な環境においては、システムに事前に全てのシンボルを与えることは不可能であり、環境に対応して自らシンボルを生成してゆくことが求められる。しかし、システムによるシンボル化が人間のように対象を用いた行動や思考の結果なされるものである場合には、シンボルを操作対象とする推論機しか持たないシステムでは、適切なシンボル化を行うことは困難である。第二に、シンボル化に馴染まないパターン情報が存在するという問題がある。例えば、風景や絵などの画像の色彩や構図は、我々人間にとってもシンボル化することが難しく、恐らくパターン情報のまま処理されているものと考えられるためである。
【０００６】
このように、非定常な実環境下において汎用的なタスクを扱う将来の知能ロボットにとって、シンボルを操作対象とする推論機だけでは不十分であり、センサ情報であるパターン情報をシンボル化することなく推論を行う、パターン情報ベースの推論を実現する必要がある。また、計算機上で熟練者の模倣を行うエキスパートシステムを実現する際に生ずる知識獲得問題の解決のためという観点や、シンボルグラウンディング問題及びフレーム問題の回避という観点からも、パターン情報ベースの推論の実現は現在の人工知能研究における限界を克服できる可能性を持つものである。
【０００７】
パターン情報ベースの推論機として、非特許文献１及び非特許文献２に開示された技術がある。非特許文献１に開示された技術は、パターン情報を関数としてとらえ、非古典論理である中間論理ＬＣを用いることで、関数ととらえたパターン情報の入出力関係を学習した３層のフィードフォワード型ニューラルネットワークを命題として扱うパターン推論を行うことができる。非特許文献２に開示された技術は、パターン情報を２値ベクトルとして扱い、２値ベクトル間の関係を非単調神経回路網に学習させることで構成される、大自由度力学系のダイナミクスを利用したパターンベース推論を行うことができる。
【非特許文献１】Tsukimoto, H.,"Pattern Reasoning",Logical Reasoning of Neural Networks， IEICE Trans. Information and System, J83-D-II, 744-753, 2000.
【非特許文献２】Yamane, K., Hasuo, T., Suemitsu A., Morita, M."Pattern-based reasoning using trajectory attractors，" IEICE Trans. Information and System, J90-D, 933-944, 2007.
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、非特許文献１に開示された技術では、異なるパターンごとに新しくフィードフォワード型ニューラルネットワークを用意する必要があるが、知能ロボットのセンサ情報は時間的にも空間的にも連続的なものであるため、新しいニューラルネットワークを用意するタイミングを決めることが非常に困難である。これを失敗すると、ニューラルネットワークの数が爆発し、知識の学習にもそれを用いた推論にも莫大な処理時間を要するか、又は、知識として全く異なるパターンを同じ命題として処理してしまうために学習した知識が無意味なものになってしまうという恐れがある。
【０００９】
一方、非特許文献２に開示された技術では、単一の非単調神経回路網に複数の知識を学習することになるためこのような問題は回避することができる。他方、知能ロボットへの応用を考慮した場合には、２値ベクトルをそのまま命題として処理可能であるという点において、非特許文献２に開示された技術は非特許文献１に開示された技術よりも優れているが、連言（かつ）、選言（または）、否定を扱うことができないという問題がある。
【００１０】
このように、従来の推論機では、入力パターンを実数値ベクトルにより表現することができると共に、連言、選言、否定を含む複雑なｉｆ−ｔｈｅｎルールを学習させることができないという問題がある。
【００１１】
本発明は係る課題を解決するためになされたものであり、入力パターンを実数値ベクトルにより表現することができると共に、連言、選言、否定を含む複雑なｉｆ−ｔｈｅｎルールを自己増殖型ニューラルネットワークによって学習させることができる推論装置、推論方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る推論装置は、自己増殖型ニューラルネットワークを用いて、ｉｆ−ｔｈｅｎルールを前記入力パターンとして学習する学習部と、前記学習部による学習結果を利用して推論を行う推論部とを備え、前記自己増殖型ニューラルネットワークは、多次元ベクトルで記述される入力パターンをニューラルネットワークに順次入力し、当該入力パターン、及び当該ニューラルネットワークに配置される多次元ベクトルで記述されるノードに基づいて、ノードを自動的に増加させると共にノード間を辺により接続してゆくものである。
【００１３】
本発明においては、入力パターンを実数値ベクトルにより表現することができると共に、連言、選言、否定を含む複雑なｉｆ−ｔｈｅｎルールを自己増殖型ニューラルネットワークによって学習させることができる。このため、パターンベースの推論をより適切に行うことができる。
【００１４】
また、前記自己増殖型ニューラルネットワークは、入力される前記入力パターンに最も近い重みベクトルを持つノードと２番目に近い重みベクトルを持つノードの間に辺を接続したとき、注目するノードと他のノード間の距離に基づいて算出される当該注目するノードの類似度閾値、及び前記入力パターンと当該注目するノードとの間の距離に基づいて、前記入力パターンをノードとして挿入するクラス間ノード挿入部を有し、前記学習部は、前記自己増殖型ニューラルネットワークを用いて、前記入力パターンをクラスタリングするようにしてもよい。これにより、類似度閾値に基づいて、挿入されるノードの個数を自律的に管理することができるため、ノードの数を事前に決定することなく、逐次的に入力される新たな入力パターンを既存の知識を壊すことなく追加学習することができる。また、ノードの挿入を類似度閾値に基づいて判断することによって、知識を重複して学習することを回避することができる。
【００１５】
さらにまた、前記クラス間ノード挿入部は、入力される前記入力パターンに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとし、当該第１勝者ノード及び当該第２勝者ノードの間に辺を接続したとき、注目するノードについて、当該注目するノードと辺によって直接的に接続されるノードが存在する場合には、当該直接的に接続されるノードのうち当該注目するノードからの距離が最大であるノード間の距離を前記類似度閾値とし、当該注目するノードと辺によって直接的に接続されるノードが存在しない場合には、当該注目するノードからの距離が最小であるノード間の距離を前記類似度閾値として算出する類似度閾値算出部と、前記入力パターンと前記第１勝者ノード間の距離が当該第１勝者ノードの類似度閾値より大きいか否か、及び、前記入力パターンと前記第２勝者ノード間の距離が当該第２勝者ノードの類似度閾値より大きいか否かを判定する類似度閾値判定部と、類似度閾値判定結果に基づいて、前記入力パターンをノードとして当該入力パターンと同じ位置に挿入するノード挿入部とを有するようにしてもよい。このように入力パターンに応じて変化する類似度閾値によれば、挿入されるノードの個数を自律的に管理することができるため、ノードの数を事前に決定することなく、逐次的に入力される新たな入力パターンを既存の知識を壊すことなく追加学習することができる。また、ノードの挿入を類似度閾値に基づいて判断することによって、知識を重複して学習することを回避することができる。
【００１６】
また、前記自己増殖型ニューラルネットワークは、前記辺に対応付けられる辺の年齢に基づいて、当該辺を削除する辺削除部と、注目するノードについて、当該注目するノードに直接的に接続される辺の本数に基づいて、当該注目するノードを削除するノード削除部とを更に有するようにしてもよい。これにより、不要な入力パターンから生成されたノードを効果的かつ動的に削除することができる。
【００１７】
さらにまた、前記推論部は、前記学習部により学習され長期記憶部に記憶されたノードとしてのｉｆ−ｔｈｅｎルールと推論に利用する事実データであるファクトとの間の距離に基づいて推論を行うようにしてもよい。このように、ノードとしてのｉｆ−ｔｈｅｎルールを利用して、ファクトがｉｆ−ｔｈｅｎルールに作用することによって推論を行う。
【００１８】
また、前記推論部は、前記学習部により学習され長期記憶部に記憶された前記ｉｆ−ｔｈｅｎルールの条件部と前記ファクトとの間の距離が所定の閾値より小さい場合に、前記ｉｆ−ｔｈｅｎルールの結論部を出力するようにしてもよい。これにより、入力されるファクトが既知か否かを容易に判定することができ、既知の知識とは無関係なランダムパターンなどがファクトとして入力された場合には、入力されたファクトが未知であるものと適切に判定することができる。
【００１９】
さらにまた、前記推論部は、前記ファクトを根としたときに、当該ファクトとの間の距離が所定の閾値より小さな前記ｉｆ−ｔｈｅｎルールの結論部を当該ファクトの子ノードとして追加する第１の子ノード追加部と、前記第１の子ノード追加部により追加された前記結論部をファクトとして、当該ファクトとの間の距離が所定の閾値より小さな前記ｉｆ−ｔｈｅｎルールの結論部を当該ファクトの子ノードとして追加する第２の子ノード追加部とを有するようにしてもよい。このように推論結果を生成することで、ファクトを根とする木構造の出力結果を得ることができる。このため、複数の推論結果を容易に理解することができる。
【００２０】
また、前記学習部により学習され長期記憶部に記憶された前記ｉｆ−ｔｈｅｎルールとしてのノードについて、注目する前記ｉｆ−ｔｈｅｎルールの一部又は全部と、他の注目する前記ｉｆ−ｔｈｅｎルールの一部又は全部との間の距離を算出するようにしてもよい。このようにｉｆ−ｔｈｅｎルール間の距離を測定することによって、連言、選言、否定を含む複雑な知識間の距離であっても適切に算出することができる。
【００２１】
さらにまた、任意のｉｆ−ｔｈｅｎルールについて、当該ｉｆ−ｔｈｅｎルールの条件部及び結論部をそれぞれ選言標準形に変形し、当該変形した前記条件部及び前記結論部の選言肢の組合せからなるｉｆ−ｔｈｅｎルールへと分解する分解部を更に有し、前記分解部は、分解された前記ｉｆ−ｔｈｅｎルールを前記自己増殖型ニューラルネットワークへと入力するようにしてもよい。これにより、任意のｉｆ−ｔｈｅｎルールをその条件部及び結論部の選言肢の組合せからなるｉｆ−ｔｈｅｎルールへと分解することで、任意のｉｆ−ｔｈｅｎルールを入力パターンとして容易に学習させることができる。
【００２２】
また、前記自己増殖型ニューラルネットワークは１層構造としてもよい。これにより、非特許文献：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.に開示された技術であるＧｒｏｗｉｎｇ Ｎｅｕｒａｌ Ｇａｓ（以下、ＧＮＧという。）を拡張したものを競合層として用いることもできる。
【００３７】
尚、本実施の形態１において使用する自己増殖型ニューラルネットワークは、非特許文献：Sudo, A., Sato, A., Hasegawa, O., " Associative Memory for Online Incremental Learning in Noisy Environments, "IJCNN'07, 2007.に開示される技術であるAssociative Memory with Self-Organizing Incremental Neural Network（以下、ＳＯＩＮＮ−ＡＭという。）と同様に、学習データの入力に応じて自律的にノードが増えていくモデルであるものの、以下の点について相違する。
【００３８】
まず、ＳＯＩＮＮ−ＡＭが学習対象とするデータは連想対であるため、ひとつのノードが保持する重みは、学習対象の連想対に対応する実数値ベクトルのペアである。一方、本実施の形態にかかる推論装置１が学習対象とするデータは、リテラルの連言を含意で結んだｉｆ−ｔｈｅｎルールである。このため、本実施の形態１にかかる推論装置１によって学習され、各ノードが保持する重みは、条件部及び結論部の命題のペア（即ち、実数値ベクトルのペア）であり、さらにその命題が肯定なのか否定なのかという情報も保持される。例えば図２において、Ａ∧¬Ｂ→¬Ｃ∧Ｄを表現するノード群を示す。さらに、ＳＯＩＮＮ−ＡＭも学習中にオンラインで知識をクラスタリングするが、ノード間に生成される辺は挿入されたノードが同じクラスタに属すものであることを示している。一方、推論装置１では、任意のｉｆ−ｔｈｅｎルールを表現可能とするために、条件部の命題と結論部の命題の数を掛け合わせた数のノードが生成される。そして、これら複数のノードがひとつの知識（任意のｉｆ−ｔｈｅｎルール）であることを表現するために、ノード間に辺が生成される。即ち、これらのノード間にはＳＯＩＮＮ−ＡＭにおけるクラスタを表現する辺とは異なる種類の辺が生成される。
【００３９】
続いて、まず、従来技術であるＳＯＩＮＮについて簡単に説明し、次いで本実施の形態１にかかる学習部４０について説明する。ＳＯＩＮＮは、ＧＮＧを拡張した、いわゆる自己増殖型ニューラルネットワークと呼ばれる、教師なし追加学習手法である。ノードを自己増殖しながら入力ベクトルを逐次的に学習することにより、入力データの分布を表現するネットワークを追加的に構築することができる。ＳＯＩＮＮは、次の４つの利点を有する。
（１）過去に学習したクラスタを壊さずに、新規に入力される未知クラスの入力ベクトルを追加的に学習して、新規のクラスタを構築することができる。
（２）入力データに対して独立なノイズを、効果的かつ動的に除去することができる。
（３）逐次的に与えられる教師無しデータについて、その位相構造を表現するネットワークを自律的に構築することができる。
（４）ノード数を事前に決定せずに、入力ベクトルを近似することができる。
【００４０】
図３は、従来技術であるＳＯＩＮＮによる学習処理を説明するためのフローチャートである。以下、図３を用いてＳＯＩＮＮの処理を説明する。ここで、ＳＯＩＮＮは２層ネットワーク構造を有し、１層目及び２層目において同様の学習処理を実施する。また、ＳＯＩＮＮは、１層目の出力である学習結果を２層目への入力ベクトルとして利用する。
【００４１】
Ｓ２０１：ＳＯＩＮＮに対して入力ベクトルを与える。
Ｓ２０２：与えられた入力ベクトルに最も近いノード(以下、第１勝者ノードという。)、及び２番目に近いノード(以下、第２勝者ノードという。)を探索する。
Ｓ２０３：第１勝者ノード及び第２勝者ノードの類似度閾値に基づいて、入力ベクトルがこれら勝者ノードの少なくともいずれか一方と同一のクラスタに属すか否かを判定する。ここで、ノードの類似度閾値はボロノイ領域の考えに基づいて算出する。学習過程において、ノードの位置は入力ベクトルの分布を近似するため次第に変化し、それに伴いボロノイ領域も変化する。即ち、類似度閾値もノードの位置変化に応じて適応的に変化してゆく。
【００４２】
Ｓ２０４：Ｓ２０３における判定の結果、入力ベクトルが勝者ノードと異なるクラスタに属す場合は、入力ベクトルと同じ位置にノードを挿入し、Ｓ２０１へと進み次の入力ベクトルを処理する。尚、このときの挿入をクラス間挿入と呼ぶ。
Ｓ２０５：一方、入力ベクトルが勝者ノードと同一のクラスタに属す場合は、第１勝者ノード及び第２勝者ノード間に辺を生成し、ノード間を辺によって直接的に接続する。
Ｓ２０６：第１勝者ノード及び第１勝者ノードと辺によって直接的に接続しているノードの重みベクトルをそれぞれ更新する。
Ｓ２０７：Ｓ２０５において生成された辺は年齢を有しており、予め設定された閾値を超えた年齢を持つ辺を削除する。入力ベクトルを逐次的に与えてゆくオンライン学習においては、ノードの位置が常に徐々に変化してゆくため、初期の学習で構成した隣接関係が以後の学習によって成立しない可能性がある。このため、一定期間を経ても更新されないような辺について、辺の年齢が高くなるように構成することにより、学習に不要な辺を削除することができる。
【００４３】
Ｓ２０８：入力ベクトルの入力総数が、予め設定されたλの倍数であるか否かを判定する。判定の結果、入力ベクトルの入力総数がλの倍数でない場合には、Ｓ２０１へと戻り次の入力ベクトルを処理する。一方、入力ベクトルの総数がλの倍数となった場合には以下の処理を実行する。
Ｓ２０９：局所累積誤差が最大であるノードを探索し、そのノード付近に新たなノードを挿入する。ノードの持つ平均誤差を示す誤差半径に基づいて、ノード挿入が成功であったか否かを判定する。尚、このときの挿入をクラス内挿入と呼ぶ。ここで、ノード及び入力ベクトル間の距離差をノードの持つ誤差として、入力ベクトルの入力に応じてノードの誤差を累積することにより局所累積誤差を算出する。誤差半径はノードの持つ誤差及びノードが第１勝者となった回数に基づいて算出する。
【００４４】
Ｓ２１０：クラス内挿入によるノード挿入が成功であると判定した場合には、クラス内挿入により挿入されたノード及び局所累積誤差が最大のノードを辺によって直接的に接続する。一方、クラス内挿入によるノード挿入が失敗であると判定した場合には、クラス内挿入により挿入したノードを削除してＳ２１１へと進む。
Ｓ２１１：隣接ノード数及びノードが第１勝者となった回数に基づいて、ノイズノードを削除する。ここで、隣接ノードとは、ノードと辺によって直接的に接続されるノードを示し、隣接ノードの個数が１以下であるノードを削除対象とする。また、第１勝者となった回数の累積回数を予め設定されたパラメタｃを使用して算出される閾値と比較し、第１勝者累積回数が閾値を下回るノードを削除対象とする。
【００４５】
Ｓ２１２：入力ベクトルの入力総数が予め設定されたＬＴの倍数であるか否かを判定する。判定の結果、入力ベクトルの入力総数がＬＴの倍数でない場合には、Ｓ２０１へと戻り次の入力ベクトルを処理する。一方、入力ベクトルの総数がＬＴの倍数となった場合には、以下の処理を実行する。
Ｓ２１３：１層目の学習を終了するか否かを判定する。判定の結果、２層目の学習へと進む場合には、Ｓ２０１へと進み１層目の学習結果であるノードを２層目への入力ベクトルとして入力する。ただし、追加学習を行う場合は、２層目に残っている以前の学習結果を消去した上で２層目の学習を開始する。２層目への入力回数が予め設定された回数ＬＴの倍数となり２層目の学習を終了する場合には、ノードを異なるクラスに分類し、クラス数及び各クラスの代表的なプロトタイプベクトルを出力し停止する。ここで、プロトタイプベクトルはノードの重みベクトルに相当する。
【００４６】
このように、ＳＯＩＮＮは、ノード数を自律的に管理することにより非定常的な入力を学習することができ、分布に複雑な形状を持つクラスに対しても適切なクラス数及び位相構造を抽出できるなど多くの利点を持つ。ＳＯＩＮＮの応用例として、例えばパターン認識においては、ひらがな文字のクラスを学習させた後に、カタカナ文字のクラスなどを追加的に学習させることができる。
【００４７】
次いで、本実施の形態１に係る学習部４０について説明する。学習部４０は、クラス間ノード挿入部４１と、辺削除部４２と、ノード削除部４３を備える。クラス間ノード挿入部４１は、類似度閾値算出部、類似度閾値判定部、及びノード挿入部を備える。クラス間ノード挿入部４１は、入力される入力パターンに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとし、第１勝者ノード及び第２勝者ノードの間に辺を接続したとき、以下に述べるようにしてノードを挿入する。
【００４８】
まず、類似度閾値算出部は、注目するノードについて、注目するノードと辺によって直接的に接続されるノードが存在する場合には、直接的に接続されるノードのうち注目するノードからの距離が最大であるノード間の距離を類似度閾値とし、注目するノードと辺によって直接的に接続されるノードが存在しない場合には、注目するノードからの距離が最小であるノード間の距離を類似度閾値として算出する。次いで、類似度閾値判定部は、入力パターンと第１勝者ノード間の距離が第１勝者ノードの類似度閾値より大きいか否か、及び、入力パターンと第２勝者ノード間の距離が第２勝者ノードの類似度閾値より大きいか否かを判定する。次いで、ノード挿入部は、類似度閾値判定結果に基づいて、入力パターンをノードとして入力パターンと同じ位置に挿入する。尚、ノード間の距離の算出方法の詳細については後述する。
【００４９】
このように入力パターンに応じて変化する類似度閾値によれば、挿入されるノードの個数を自律的に管理することができるため、ノードの数を事前に決定することなく、逐次的に入力される新たな入力パターンを既存の知識を壊すことなく追加学習することができる。また、ノードの挿入を類似度閾値に基づいて判断することによって、知識を重複して学習することを回避することができる。
【００５０】
辺削除部４２は、辺に対応付けられる辺の年齢に基づいて、辺を削除する。ノード削除部４３は、注目するノードについて、注目するノードに直接的に接続される辺の本数に基づいて、注目するノードを削除する。これにより、不要な入力パターンから生成されたノードを効果的かつ動的に削除することができる。
【００５１】
長期記憶部３０には、学習部４０が学習処理において学習したｉｆ−ｔｈｅｎルールが辺により接続され、オンラインでクラスタリングされながら記憶される。長期記憶部３０に記憶された学習結果を利用して、推論装置１は推論を行う。入力パターンとして連言、選言、否定を含む論理式がファクトとして短期記憶部２０へと入力されると、ファクトは一時的に短期記憶部２０に記憶される。尚、上記と同様にして、分解部１０によりファクトを分解してから短期記憶部２０へと記憶してもよい。
【００５２】
推論部５０は、短期記憶部２０からファクトが入力されると、学習処理において長期記憶部３０に保存されたｉｆ−ｔｈｅｎルール及び入力されたファクトに基づいて推論を行い、入力したファクトを根とするＯＲ木を出力する。ＯＲ木の各節はリテラルの連言を保持しており、各節を選言により連結して構成する複数の選言標準形を推論結果とみなすことができる。ここで、推論部５０が推論処理を行う際には、ｉｆ−ｔｈｅｎルールの条件部とファクトとの間の距離が所定の閾値より小さい場合に、ｉｆ−ｔｈｅｎルールの結論部を出力する。これにより、入力されるファクトが既知か否かを容易に判定することができ、既知の知識とは無関係なランダムパターンなどがファクトとして入力された場合には、入力されたファクトが未知であるものと適切に判定することができる。
【００５３】
推論部５０は子ノード追加部５１を有しており、子ノード追加部５１は、ファクトを根としたときに、そのファクトとの間の距離が所定の閾値より小さなｉｆ−ｔｈｅｎルールの結論部をそのファクトの子ノードとして追加し、さらに、追加された結論部を新たなファクトとして、その新たなファクトとの間の距離が所定の閾値より小さなｉｆ−ｔｈｅｎルールの結論部を再帰的に追加する。このように推論結果を生成することで、ファクトを根とする木構造の出力結果を得ることができる。このため、複数の推論結果を容易に理解することができる。
【００５４】
以上のような推論装置１は、専用コンピュータ、パーソナルコンピュータ（ＰＣ）などのコンピュータにより実現可能である。但し、コンピュータは、物理的に単一である必要はなく、分散処理を実行する場合には、複数であってもよい。図４は、本実施の形態１に係る推論装置１を実現するためのシステム構成の一例を示す図である。図４に示すように、コンピュータ６０は、ＣＰＵ６１（Central Processing Unit）、ＲＯＭ６２（Read Only Memory）及びＲＡＭ６３（Random Access Memory）を有し、これらがバス６４を介して相互に接続されている。尚、コンピュータを動作させるためのＯＳソフトなどは、説明を省略するが、この推論装置１を構築するコンピュータも当然備えているものとする。
【００５５】
バス６４には又、入出力インターフェイス６５も接続されている。入出力インターフェイス６５には、例えば、キーボード、マウス、センサなどよりなる入力部６６、ＣＲＴ、ＬＣＤなどよりなるディスプレイ、並びにヘッドフォンやスピーカなどよりなる出力部６７、ハードディスクなどより構成される記憶部６８、モデム、ターミナルアダプタなどより構成される通信部６９などが接続されている。
【００５６】
ＣＰＵ６１は、ＲＯＭ６２に記憶されている各種プログラム、又は記憶部６８からＲＡＭ６３にロードされた各種プログラムに従って各種の処理、本実施の形態においては、例えば学習処理や推論処理を実行する。ＲＡＭ６３には又、ＣＰＵ６１が各種の処理を実行する上において必要なデータなども適宜記憶される。通信部６９は、例えば図示しないインターネットを介しての通信処理を行ったり、ＣＰＵ６１から提供されたデータを送信したり、通信相手から受信したデータをＣＰＵ６１、ＲＡＭ６３、記憶部６８に出力したりする。記憶部６８はＣＰＵ６１との間でやり取りし、情報の保存・消去を行う。通信部６９は又、他の装置との間で、アナログ信号又はディジタル信号の通信処理を行う。入出力インターフェイス４５は又、必要に応じてドライブ７０が接続され、例えば、磁気ディスク７０１、光ディスク７０２、フレキシブルディスク７０３、又は半導体メモリ７０４などが適宜装着され、それらから読み出されたコンピュータプログラムが必要に応じて記憶部６８にインストールされる。
【００５７】
続いて、本実施の形態１に係る学習処理及び推論処理について説明する。図５を参照しながら推論装置１による学習処理について説明する。図５は、推論装置１による学習処理の概要を示すフローチャートである。
ＳＴＥＰ３０１：入力データとして、学習用のデータであるｉｆ−ｔｈｅｎルールが入力されると、分解部１０は、上述したように「リテラルの連言→リテラルの連言」の形をした複数のｉｆ−ｔｈｅｎルールへと分解する。分解されたｉｆ−ｔｈｅｎルールは短期記憶部２０に一時的に記憶される。尚、例えばＲＡＭ６３などを短期記憶部２０や長期記憶部３０として利用することができる。
【００５８】
ＳＴＥＰ３０２：学習データ及び長期記憶部３０に記憶されている知識との間の距離を算出し、学習データとの間の距離が最小となる長期記憶部３０の知識を第１勝者とし、２番目に小さい知識を第２勝者とし、その結果を一時記憶部（例えばＲＡＭ４３）に格納する。ここで、学習データは以下の式によって示される。
【数１】
2008305129.tif 000003
また、長期記憶部の知識は以下の式によって示される。
【数２】
2008305129.tif 000004
学習データｋｉ及び長期記憶部３０に記憶されている知識ｋｍ間の距離ｄ（ｋｉ，ｋｍ）は以下の式に基づいて算出する。尚、ｋ'は長期記憶部３０に記憶されている知識ｋｍに含まれる任意の知識を示し、Ｄはリテラル（ＰやＱなど）の次元数を示す。
【数３】
2008305129.tif 000005
【００５９】
ＳＴＥＰ３０３：次いで、入力された学習データが未知の知識であるか否かを判定し、その結果を一時記憶部（例えばＲＡＭ４３）に格納する。より詳細には、第１勝者及び第２勝者のそれぞれの類似度閾値ｓを以下の式に基づいて算出し、類似閾値に基づいて学習データが長期記憶部３０にある知識と同じクラスタに属するものであるか否かを判定する。即ち、学習データ及び第１勝者の間の距離が第１勝者の類似度閾値よりも小さく、かつ、第２勝者についても同様のことが成立する場合には、学習データは第１勝者及び第２勝者と同じクラスタに属するものであると判定する。一方、学習データとの間の距離が、第１勝者又は第２勝者の類似度閾値よりも大きな場合には、学習データは既存の知識とは同じクラスタに属していないものであると判定する。
【数４】
2008305129.tif 000006
ここで、Ｎは第１（又は第２）勝者と辺により接続される知識（ノード）の集合、Ａは長期記憶部３０に記憶されている全ての知識の集合、ｋｗは第１（又は第２）勝者の知識をそれぞれ示す。
【００６０】
ＳＴＥＰ３０４：ＳＴＥＰ３０３における判定の結果、長期記憶部３０に既に存在する知識と同じクラスタには属さないものであると判定した場合には、学習データを新たに長期記憶部３０に追加した上で、ＳＴＥＰ３１２へと進み、学習処理を終了するか否かについて判定する。一方、判定の結果、既存の知識と同じクラスタに属するものと判定した場合には、学習データの類似知識が既に長期記憶部３０に存在しているものと考えられるため、長期記憶部３０への追加は行わずに、ＳＴＥＰ３０５へと進み、長期記憶部３０に記憶されている知識を更新する。
【００６１】
ＳＴＥＰ３０５：長期記憶部３０に記憶されている第１勝者及び第２勝者について、それら勝者の間に辺が存在しているか否かについて判定し、その結果を一時記憶部（例えばＲＡＭ４３）に格納する。
ＳＴＥＰ３０６：ＳＴＥＰ３０５における判定の結果、勝者間に既に辺が存在している場合には、その辺の年齢を１に戻し、ＳＴＥＰ３０８へと進む。
ＳＴＥＰ３０７：一方、ＳＴＥＰ３０５における判定の結果、勝者間に辺が存在していない場合には、それら勝者を同じクラスタに属するものとするため、勝者間に年齢が１の辺を生成して接続する。
ＳＴＥＰ３０８：次いで、第１勝者に接続される辺について、第１勝者及び第２勝者間に接続される辺を除いた他の辺の年齢をインクリメントする（１増やす）。
ＳＴＥＰ３０９：次いで、長期記憶部３０に記憶されている知識間の辺について、Λｅｄｇｅより大きな年齢を持つ辺を削除する。
【００６２】
ＳＴＥＰ３１０：次いで、学習データの入力数が所定のパラメタλの整数倍となったか否かを判定し、その結果を一時記憶部（例えばＲＡＭ４３）に格納する。判定の結果、学習データの入力数が所定のパラメタの整数倍となっていない場合にはＳＴＥＰ３１２へと進む。
ＳＴＥＰ３１１：一方、学習データの入力数が所定の個数に到達している場合には、辺を一本のみ持つ知識を長期記憶部３０より削除する。
ＳＴＥＰ３１２：未学習のデータが残っている場合には、学習処理を続行し、Ｓ３０１へと進み処理を続行する。全てのデータを学習し終えると学習処理を終了する。
【００６３】
尚、ＳＴＥＰ３０９におけるΛｅｄｇｅを用いることにより、ノイズなどの影響により誤って生成される辺を削除することができる。Λｅｄｇｅに小さな値を設定することにより、辺が削除されやすくなりノイズによる影響を防ぐことができるものの、値を極端に小さくすると、頻繁に辺が削除されるようになり学習結果が不安定になる。一方、極端に大きな値をΛｅｄｇｅに設定すると、ノイズの影響で生成された辺を適切に取り除くことができない。これらを考慮して、パラメタΛｅｄｇｅは実験により予め算出し一時記憶部に格納される。
【００６４】
また、ＳＴＥＰ３１０におけるλはノイズと見なされるノードを削除する周期である。λに小さな値を設定することにより、頻繁にノイズ処理を実施することができるものの、値を極端に小さくすると、実際にはノイズではないノードを誤って削除してしまう。一方、極端に大きな値をλに設定すると、ノイズの影響で生成されたノードを適切に取り除くことができない。これらを考慮して、パラメタλは実験により予め算出し一時記憶部に格納される。
【００６５】
次に、推論処理について説明する。図６は、連想記憶装置１による想起処理の概要を示すフローチャートである。
ＳＴＥＰ４０１：入力データとしてファクトを入力すると、ファクトは短期記憶部２０に一時的に記憶される。この際、分解部１０により、上述したようにファクトを選言標準形へと分解してもよい。そして、入力したファクトを根とし、根以外に節を持たない木を生成し、その結果を一時記憶部（例えばＲＡＭ４３）に格納する。
【００６６】
ＳＴＥＰ４０２：次に、長期記憶部３０に記憶されたｉｆ−ｔｈｅｎルールの条件部と入力されたファクトとの間の距離を算出し、その結果を一時記憶部（例えばＲＡＭ４３）に格納する。
ＳＴＥＰ４０３：入力されたファクトと長期記憶部３０に記憶されているｉｆ−ｔｈｅｎルールの条件部との間の距離について、その距離が閾値δｒ以下となるｉｆ−ｔｈｅｎルールが存在するか否かを判定し、その結果を一時記憶部（例えばＲＡＭ４３）に格納する。判定の結果、存在しない場合には推論処理を終了する。一方、判定の結果、長期記憶部３０に入力されたファクトとの間の距離が閾値δｒ以下となるｉｆ−ｔｈｅｎルールが存在する場合には以下の処理を実行する。
【００６７】
ＳＴＥＰ４０４：入力されたファクトとの距離が閾値δｒ以下となるｉｆ−ｔｈｅｎルールについて、その結論部のみをＳＴＥＰ４０１において入力したファクトの子ノードとして木に追加し、その結果を一時記憶部（例えばＲＡＭ４３）に格納する。長期記憶部３０に記憶されたｉｆ−ｔｈｅｎルールについて、対象となるｉｆ−ｔｈｅｎルールを全て追加する。ただし、同一のクラスタにおいて、閾値を下回るｉｆ−ｔｈｅｎルールが複数存在する場合には、距離が最小となるｉｆ−ｔｈｅｎルールのみを子ノードとして追加する。これにより、同一のクラスタから複数のｉｆ−ｔｈｅｎルールを追加することを避けることができる。
【００６８】
ＳＴＥＰ４０５：続いて、ＳＴＥＰ４０４において追加された子ノードを新たなファクト（葉）として、ＳＴＥＰ４０３乃至４０４における処理と同様の処理を実行する。即ち、新たなファクトについて、長期記憶部３０に記憶されたｉｆ−ｔｈｅｎルールの条件部とそのファクトとの間の距離を算出し、その結果を一時記憶部（例えばＲＡＭ４３）に格納する。ＳＴＥＰ４０３へと進み、対象となる葉を全て出力した場合に、推論処理を終了する。尚、このようにして木を生成する手順は、入力されたファクト及び長期記憶部３０に記憶されている断片的な知識を組み合わせることによって、多段の推論を行っていることに相当する。
【００６９】
図７は、推論処理による出力結果の一例を示す図であり、例として、長期記憶部３０において知識Ａ∧Ｂ→Ｃ∨（Ｄ∧¬Ｅ），Ｃ'→Ｆ∨Ｇ∨（Ｈ∧Ｉ），Ｄ'∧¬Ｅ'→¬Ｊを記憶している場合に、Ａ'∧Ｂ'をファクトとして入力した場合を示す。ここで、(Ａ,Ａ')、(Ｂ,Ｂ')、(Ｃ,Ｃ')、(Ｄ,Ｄ')、(Ｅ,Ｅ')は閾値に対して十分に距離が小さいパターン情報のペアである。
【００７０】
また、このようにして出力される木は、例えば図７において示したように、各節にはデータとしてリテラルの連言が保持されるものの、これらは単独では推論結果としては不正確なものである。これは、各節はもともと選言によって結合されていたものを分解して学習したためである。即ち、例えば図７においては、Ａ∧Ｂ→Ｃ∨（Ｄ∧¬Ｅ）なのであって、Ａ∧Ｂ→Ｃではない。従って、出力された木をＯＲ木として扱うことによって、節を選言により連結した選言標準形を推論結果として正しいものとして扱うことができる。例えば、図７の木が出力された場合には、推論結果がＣ∨（Ｄ∧¬Ｅ），Ｃ∨¬Ｊ，Ｆ∨Ｇ∨（Ｈ∧Ｉ）∨（Ｄ∧¬Ｅ），Ｆ∨Ｇ∨（Ｈ∧Ｉ）∨¬Ｊであったものとみなす。ここで、推論結果は選言標準形をしているが、これは推論装置１が可能性についての推論を行っているものと解釈することができる。例えば、現在地に関する情報をファクトとして入力した結果、出力として「スーパーまたはコンビニエンスストアまたは薬局」に相当する結果を得たものとする。この場合には、現在地からどのような場所に移動が可能であるかということを推論によって発見したものと考えることができる。
【００７１】
続いて、本発明の実施の形態１に係る推論装置１による効果について説明する。実画像を用いて環境の因果関係や可能性について追加学習させ、学習した知識を用いて推論を行わせた。学習時のパラメタはΛｅｄｇｅ＝１００、λ＝５０とした。実画像として、図８に示したような５６×４６ピクセルの１４種類の画像について、それぞれアングルを変えて撮影した画像を各２０枚ずつ、合計２８０枚を用意した。学習させたｉｆ−ｔｈｅｎルールは、「Ａ→Ｂ，Ｂ→Ｄ∨Ｅ，Ｅ→(Ｃ∧Ｎ)∨Ｆ∨Ｍ，(Ｃ∧Ｎ)→(Ｇ∧Ｉ)∨(Ｈ∧Ｊ)，(Ｇ∧Ｉ)→Ｋ，(Ｈ∧Ｊ)→Ｌ」である。これらをシンボルで書くならば「閉じたドア→開いたドア，開いたドア→壁∨廊下，廊下→（研究室∧表札）∨エレベータ∨階段，（研究室∧表札）→（机１∧閉まった引出し1）∨（机２∧閉まった引出し２），（机１∧閉まった引出し１）→開いた引出し１，（机２∧閉まった引出し２）→開いた引出し２」である。学習データとして実際に入力されたデータは、各命題をあらわす２０枚の画像をそれぞれランダムに１枚ピックアップしてできるｉｆ−ｔｈｅｎルールであり、そのようにランダムに選択してできるｉｆ−ｔｈｅｎルールの入力を、各ｉｆ−ｔｈｅｎルールについて４４００回繰り返した。例えば、Ａ→Ｂを学習させる際には、Ａ及びＢに対応する画像をそれぞれ２０枚の画像から１枚ずつ選び、それをｉｆ−ｔｈｅｎルールとして学習させることを繰り返した。
【００７２】
学習によって９８０個のｉｆ−ｔｈｅｎルールが長期記憶部３０に記憶され、それらは１０個のクラスタに分類された。クラスタに属するｉｆ−ｔｈｅｎルールはそれぞれ「Ａ→Ｂ，Ｂ→Ｄ,Ｂ→Ｅ，Ｅ→(Ｃ∧Ｎ),Ｅ→Ｆ,Ｅ→Ｍ，(Ｃ∧Ｎ)→(Ｇ∧Ｉ)，(Ｃ∧Ｎ)→(Ｈ∧Ｊ)，(Ｇ∧Ｉ)→Ｋ，(Ｈ∧Ｊ)→Ｌ」に対応する知識だけであった。これはシンボルベースで表せば単一のルールとなるようなｉｆ−ｔｈｅｎルールを適切にクラスタリングできていることを意味する。図９は、各クラスタが保持するｉｆ−ｔｈｅｎルールの数（クラスタのメンバー数）及びデータ圧縮率を示す表である。データ圧縮率は"１−(クラスタのメンバー数÷与えた学習データの数)"により評価した。学習データとして合計で４０００種類のｉｆ−ｔｈｅｎルールが与えられたが、そのうちの７５．５％にあたる３０２０個のｉｆ−ｔｈｅｎルールが長期記憶部３０には記憶されなかったことがわかる。これは類似した知識を長期記憶部３０に記憶しないとう推論装置１が備える機能が適切に動作したことを示す。
【００７３】
ここで、上述の学習処理がバッチ学習ではなく追加学習となっている点に注目する。即ち、上述した学習処理において知識を正確に学習できたということは、いったん学習が終了した後に新たな学習データが追加された場合であっても、以前に学習した知識を忘却することなく新たな知識を学習可能であるということ、及び、同じか又は極めて類似したデータを長期記憶部３０へ追加することによるメモリの浪費を回避することが可能であるということを示している。
【００７４】
図１０は、学習処理を終えた推論装置１に対して、ファクトを入力した場合の出力結果（木構造による出力）を示す画像である。図１０に示す画像においては、根に位置する画像をファクトとして入力し、δｒ＝０．３として推論を行った。推論処理の結果、推論装置１はｉｆ−ｔｈｅｎルールとして断片的に学習したデータを組み合わせて図１０に示すようなＯＲ木を推論結果として出力した。推論結果は、入力したファクト及び推論装置１が学習したｉｆ−ｔｈｅｎルールから得られる結果として、不足も重複もない必要十分なものである。
【００７５】
図１０に示した結果は、閉じたドアから階段、エレベータ、引出し等に到達可能であること、及び、それらの場所に至るまでの経路をシステムが推論によって見出すことが可能であるものと解釈することができる。ここで、引出しに関する推論の部分では、推論装置１が連言を処理可能であることが有効に機能している。即ち、連言を処理できない場合には、机の画像を知識として与えられず閉じた引出しの画像だけを学習することになるため、異なる引き出しであっても見た目は同一であるため推論を正確に行うことができないという問題がある。
【００７６】
また、図１０に示した結果において、推論結果に重複が発生しなかったのは、ｉｆ−ｔｈｅｎルールをクラスタリングしながら学習可能であったためである。クラスタリング結果を無視して、閾値よりも小さなｉｆ−ｔｈｅｎルールの結論部を全て節として追加するようにして推論を行わせた場合には、3,804,840,166個もの節が生成される。これらの節の持つ画像は全て図７のＢに対応する２０枚の画像に一致し、シンボルースで解釈するならば１つの節で表現すべき内容であった。即ち、この結果はｉｆ−ｔｈｅｎルールをクラスタリングすることの有効性を示している。
【００７７】
またノイズ耐性を確かめるため、図７のＡにあたる閉じたドアの画像について、異なったアングルで撮影した画像２０枚に対してガウシアンノイズを加えた上で、同一のノイズレベルについて１０枚ずつ用意し、それらの画像をファクトとして与えた。図１１は、このようなノイズ画像が入力された場合に、推論結果に対する正解率を示す図である。図１１は、各ノイズレベルについて"正しく推論した回数÷推論を試みた回数"をプロットしたものである。この結果はあるＳＮ比を境界にして、それよりノイズの多い画像は未知画像だと判断されて推論が行われず、ノイズが少ない画像に対しては原画像の場合と同様の正しい推論を行っていることを意味する。従って、非特許文献２に開示された技術ではこのようなノイズに対して柔軟に対応することはできないが、本発明に係る推論装置１はδｒの設定によって境界になるＳＮ比を調整できるという柔軟性を持つものである。さらに、このようなノイズ耐性についての結果は、推論装置１が汎化性能を持っていることを示唆するものである。
【００７８】
以上の実験において説明したように、推論装置１は、入力パターンを実数値ベクトルにより表現することができると共に、連言、選言、否定を含む任意のｉｆ−ｔｈｅｎルールを自己増殖型ニューラルネットワークによって学習させることができる。また、学習させた知識を利用して多段の推論を行うことができる。このため、本発明によれば、パターンベースの推論をより適切に行うことができる。
【００７９】
パターン情報ベースの推論装置を将来の知能ロボット等へ応用する場合には、上述の機能に加えて追加学習、ノイズ耐性、及び推論結果の重複を防ぐ仕組みが必要となる。まず、システムが学習すべきｉｆ−ｔｈｅｎルールは人間が事前に全て用意して与えることはできないため、システムは知識を追加的に学習可能である必要がある。その際、新たな知識を学習することによって既存の知識が破壊されることを防止すると共に、知識量の爆発を防ぐために既存の知識と同じか又は極めて似ている知識を排除可能でなければならない。
【００８０】
非特許文献２に開示された技術では、既存の知識の再学習による知識量の爆発を防ぐことはできるものの、新たな知識の学習によって既存の知識の破壊が生じてしまう。非特許文献２に開示された実験によれば、既学習知識の約２倍を追加学習した場合には、２０％弱の推論を失敗してしまう。一方、推論装置１では、知識の追加に伴って自律的にノードが増えていく自己増殖型ニューラルネットワークを用いるため、入力されるｉｆ−ｔｈｅｎルールに対応するノードについて、事前にノードの数を決定することなく、逐次的に入力される新たなｉｆ−ｔｈｅｎルールを既存の知識を壊すことなく追加学習することができる。
【００８１】
また、実環境下においては、与えられるデータにはノイズが混入するものと考えられ、一定のノイズ耐性を持つことが必要となる。実環境におけるノイズとしては、元のデータに混入するノイズ、及び元のデータとは無相関なデータであるノイズデータという２種類が想定される。図１２は、これら２種類のノイズを示す画像である。図１２（ａ）は、入力データに対して混入するノイズデータを示す画像であり、非特許文献２に開示された技術についてもこのタイプのノイズに対しては耐性を有している。一方、図１２（ｂ）は、入力データとは無相関なノイズデータを示す画像であり、非特許文献２に開示された技術はこのタイプのノイズに対して耐性を有していない。推論装置１は、これら２種類のノイズに対して耐性を有していることから、ノイズに対してより優れた耐性を持つものであるといえる。
【００８２】
汎化性能を利用し、獲得した知識と類似したデータを用いて推論が可能であっても、当然限界が存在する。このため、シンボルに落とせば単一のｉｆ−ｔｈｅｎルールによって表現可能な知識であっても、パターン情報ベースでは複数のｉｆ−ｔｈｅｎルールとして記憶することが必要となる。これは、パターン識別の教師付き学習において、汎化性能を備えた識別機であっても、あるラベルを持つパターンを複数用意してそれらを学習する必要があるということに対応している（教師無し学習では、ある分布に属するデータを複数用意して学習しなければならないということに対応する）。しかし、このことによって推論結果に重複が生じる可能性がある。例えば、推論装置が環境から｛ａｉ→ｂｊ｜ｉ，ｊ＝１，２，３・・・｝といった複数のｉｆ−ｔｈｅｎルールを学習したものと想定する。これら複数のｉｆ−ｔｈｅｎルールを別々の知識であるものと推論装置が認識した場合には、ファクトとしてａ１を入力すると、推論結果としてｂ１，ｂ２，ｂ３，・・・を出力する。出力されたｂ１，ｂ２，ｂ３，・・・が、本来別の推論結果として解釈されるべきものであるならば問題はないが、そうでなければ、推論結果の重複を避けて一つだけ推論結果を出力することが好ましい。そこで、推論装置１は、ｉｆ−ｔｈｅｎルールをオンラインでクラスタリングすることができるため、知識を重複して学習することを回避することができる。また、ｉｆ−ｔｈｅｎルールのクラスタリングは推論結果の重複や計算量の爆発を防ぐために重要であるだけでなく、システムの内部的なシンボル獲得につながる可能性もある。
【００８３】
尚、本実施の形態１においては、推論装置１が学習処理及び推論処理を行うものとして説明したが、本発明はこれに限定されるものではない。例えば、学習部４０を、自己増殖型ニューラルネットワークを用いて学習を行う学習装置としても使用することができる。また、推論部５０を、自己増殖型ニューラルネットワークを用いて推論を行う推論装置としても使用することができる。
【００８４】
尚、本実施の形態１において示した推論はこれに限定されず、推論装置１は実環境における他の推論についても適用することができる。例えば、実環境において動作する知能ロボットに推論装置１を適用することができる。推論装置１を適用することにより、非定常かつノイズ在りの環境下において、環境から自律的にパターン情報ベースのｉｆ−ｔｈｅｎルールルールを学習し、その知識をもとにした推論によってタスクを解決する知能ロボットを実現することができる。
【００８５】
その他の発明の実施の形態．
以上、本発明をその実施の形態により説明したが、本発明はその趣旨の範囲において種々の変形が可能である。例えば学習部４０として使用する自己増殖型ニューラルネットワークは、ＳＯＩＮＮに基づくａｄｊｕｓｔｅｄ  ＳＯＩＮＮ、又はＥｎｈａｎｃｅｄ−ＳＯＩＮＮ（以下Ｅ−ＳＯＩＮＮという。）を使用しても良い。
【００８６】
図１３を用いてａｄｊｕｓｔｅｄ  ＳＯＩＮＮの処理を説明する。ａｄｊｕｓｔｅｄ  ＳＯＩＮＮは、ＳＯＩＮＮと比べて、学習に際して事前に指定するパラメタの数を少なくすることができ、より簡単に学習を実施することができる。
【００８７】
Ｓ５０１：入力情報取得手段は、ランダムに２つの入力パターンを取得し、ノード集合Ａをそれらに対応する２つのノードのみを含む集合として初期化し、その結果を一時記憶部に格納する。また、辺集合Ｃ⊂Ａ×Ａを空集合として初期化し、その結果を一時記憶部に格納する。
Ｓ５０２：入力情報取得手段は、入力ベクトルとしての新しい入力パターンξを入力し、その結果を一時記憶部に格納する。
Ｓ５０３：勝者ノード探索手段は、一時記憶部に格納された入力パターン及びノードについて、入力パターンξに最も近い重みベクトルを持つ第１勝者ノードａ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は１に近い値を使用するものとし、これらのパラメタは予め設定され一時記憶部に格納される。
【０１０１】
Ｓ６１４：Ｅ−ＳＯＩＮＮは、一時記憶部に格納された与えられた入力ベクトルξの総数について、与えられた入力ベクトルξの総数が予め設定され一時記憶部に格納されたＬＴの倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力ベクトルの総数がＬＴの倍数でない場合にはＳ６０２へと戻り、次の入力ベクトルξを処理する。
一方、入力ベクトルξの総数がＬＴの倍数となった場合には、一時記憶部に格納されたノードをプロトタイプとして出力する。以上の処理を終了した後、学習を停止する。
【０１０２】
ノード密度算出手段は、一時記憶部に格納されたノード及びノード密度について、注目するノードについて、その隣接ノード間の平均距離に基づいて、注目するノードのノード密度を算出し、その結果を一時記憶部に格納する。具体的には、ノード密度ポイント算出部は、例えば一時記憶部に格納される以下の式に基づいてノードｉに与えられるノード密度のポイント値ｐｉを算出し、その結果を一時記憶部に格納する。尚、ノードｉに与えられるポイント値ｐｉは、ノードｉが第１勝者ノードとなった場合には一時記憶部に格納される以下の式に基づいて算出されるポイント値が与えられるが、ノードｉが第１勝者ノードでない場合にはノードｉにはポイントは与えられないものとする。
【数５】
2008305129.tif 000007
ここで、ｅｉはノードｉからその隣接ノードまでの平均距離を示し、一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。
【数６】
2008305129.tif 000008
尚、ｍは一時記憶部に格納されたノードｉの隣接ノードの個数を示し、Ｗｉは一時記憶部に格納されたノードｉの重みベクトルを示す。
【０１０３】
ここで、隣接ノードへの平均距離が大きくなる場合には、ノードを含むその領域にはノードが少ないものと考えられ、逆に平均距離が小さくなる場合には、その領域にはノードが多いものと考えられる。従って、ノードの多い領域で第１勝者ノードとなった場合には高いポイントが与えられ、ノードの少ない領域で第１勝者ノードとなった場合には低いポイントが与えられるようにノードの密度のポイント値の算出方法を上述のように構成する。
【０１０４】
これにより、ノードを含むある程度の範囲の領域におけるノードの密集具合を推定することができるため、ノードの分布が高密度の領域に位置するノードであっても、ノードが第１勝者回数となった回数をノードの密度とするＳＯＩＮＮに比べて、入力ベクトルの入力分布密度により近似した密度となるノード密度ポイントを算出することができる。
【０１０５】
単位ノード密度ポイント算出部は、例えば一時記憶部に格納される以下の式に基づいてノードｉの単位入力数あたりのノード密度ｄｅｎｓｉｔｙｉを算出し、その結果を一時記憶部に格納する。
【数７】
2008305129.tif 000009
ここで、連続して与えられる入力ベクトルの入力回数を予め設定され一時記憶部に格納される一定の入力回数λごとの区間に分け、各区間においてノードｉに与えられたポイントについてその合計を累積ポイントｓｉと定める。尚、入力ベクトルの総入力回数を予め設定され一時記憶部に格納されるＬＴとする場合に、ＬＴ/λを区間の総数ｎとしその結果を一時記憶部に格納し、ｎのうち、ノードに与えられたポイントの合計が０以上であった区間の数をＮとして算出し、その結果を一時記憶部に格納する（Ｎとｎは必ずしも同じとならない点に注意する）。
【０１０６】
累積ポイントｓｉは、例えば一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。
【数８】
2008305129.tif 000010
ここで、ｐｉ（ｊ，ｋ）はｊ番目の区間におけるｋ番目の入力によってノードｉに与えられたポイントを示し、上述のノード密度ポイント算出部により算出され、その結果を一時記憶部に格納する。
【０１０７】
このように、単位ノード密度ポイント算出部は、一時記憶部に格納されたノードｉの密度ｄｅｎｓｉｔｙｉを累積ポイントｓｉの平均として算出し、その結果を一時記憶部に格納する。
【０１０８】
尚、Ｅ−ＳＯＩＮＮにおいては追加学習に対応するため、ｎに代えてＮを用いる。これは、追加学習において、以前の学習で生成されたノードにはポイントが与えられないことが多く、ｎを用いて密度を算出すると、以前学習したノードの密度が次第に低くなってしまうという問題を回避するためである。即ち、ｎに代えてＮを用いてノード密度を算出することで、追加学習を長時間行った場合であっても、追加されるデータが以前学習したノードの近くに入力されない限りは、そのノードの密度を変化させずに保持することができる。これにより、追加学習を長時間実施する場合であっても、ノードのノード密度が相対的に小さくなってしまうことを防ぐことができ、ＳＯＩＮＮを含む従来の手法に比べて、入力ベクトルの入力分布密度により近似したノード密度を変化させずに保持して算出することができる。
【０１０９】
分布重なり領域検出手段は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードの密度について、辺によって接続されるノードの集合であるクラスタを、ノード密度算出手段によって算出されるノード密度に基づいてクラスタの部分集合であるサブクラスタに分割し、その結果を一時記憶部に格納し、サブクラスタの境界である分布の重なり領域を検出し、その結果を一時記憶部に格納する。
【０１１０】
さらに、分布重なり領域検出手段は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードの密度について、ノード密度算出手段により算出されたノード密度に基づいて、ノード密度が局所的に最大であるノードを探索するノード探索部と、探索したノードに対して、既に他のノードに付与済みのラベルとは異なるラベルを付与する第１のラベル付与部と、第１のラベル付与部によりラベルが付与されなかったノードのうち、そのノードと辺によって接続されるノードについて、第１のラベル付与部によりラベルが付与されたノードのラベルと同じラベルを付与する第２のラベル付与部と、それぞれ異なるラベルが付与されたノード間に辺によって直接的に接続がある場合に、その辺によって接続されるノードの集合であるクラスタをクラスタの部分集合であるサブクラスタに分割するクラスタ分割部と、注目するノード及びその隣接ノードがそれぞれ異なるサブクラスタに属する場合に、その注目するノード及びその隣接ノードを含む領域を、サブクラスタの境界である分布の重なり領域として検出する分布重なり領域検出部を有する。具体的には、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードの密度について、例えば以下のようにしてサブクラスタの境界である分布の重なり領域を検出し、その結果を一時記憶部に格納する。
【０１１１】
Ｓ７０１：ノード探索部は、一時記憶部に格納されたノード及びノードの密度について、ノード密度算出手段により算出されたノード密度に基づいて、ノード密度が局所的に最大であるノードを探索し、その結果を一時記憶部に格納する。
Ｓ７０２：第１のラベル付与部は、一時記憶部に格納されたノード、及びノードのラベルについて、Ｓ７０１において探索したノードに対して、既に他のノードに付与済みのラベルとは異なるラベルを付与し、その結果を一時記憶部に格納する。
Ｓ７０３：第２のラベル付与部は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードのラベルについて、Ｓ７０２において第１のラベル付与部によりラベルが付与されなかったノードについて、第１のラベル付与部にラベルが付与されたノードと辺によって接続されるノードについて、第１のラベル付与部によりラベルが付与されたノードのラベルと同じラベルを付与し、その結果を一時記憶部に格納する。即ち、密度が局所的に最大の隣接ノードと同じラベルを付与する。
Ｓ７０４：クラスタ分割部は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードのラベルについて、一時記憶部に格納された辺によって接続されるノードの集合であるクラスタを、同じラベルが付与されたノードからなるクラスタの部分集合であるサブクラスタに分割し、その結果を一時記憶部に格納する。
Ｓ７０５：分布重なり領域検出部は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードのラベルについて、注目するノードとその隣接ノードが異なるサブクラスタにそれぞれ属する場合に、その注目するノード及びその隣接ノードを含む領域を、サブクラスタの境界である分布の重なり領域として検出し、その結果を一時記憶部に格納する。
【０１１２】
辺接続判定手段は、一時記憶部に格納されたノード、ノード密度、及び分布重なり領域について、第１勝者ノード及び第２勝者ノードが分布重なり領域に位置するノードである場合に、第１勝者ノード及び第２勝者ノードのノード密度に基づいて第１勝者ノード及び第２勝者ノード間に辺を接続するか否かを判定し、その結果を一時記憶部に格納する。さらに辺接続判定手段は、一時記憶部に格納されたノード、ノード密度、ノードのサブクラスタについて、ノードが属しているサブクラスタを判定する所属サブクラスタ判定部と、ノードが属するサブクラスタの頂点の密度及びノードの密度に基づいて、第１勝者ノード及び第２勝者ノード間に辺を接続するか否かを判定する辺接続判定部を有する。
【０１１３】
辺接続手段は、一時記憶部に格納された辺接続判定手段の判定結果に基づいて、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を接続し、その結果を一時記憶部に格納する。辺削除手段は、一時記憶部に格納された辺接続判定手段の判定結果に基づいて、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間の辺を削除し、その結果を一時記憶部に格納する。具体的には、一時記憶部に格納されたノード、ノード密度、ノードのサブクラスタ、及びノード間の辺について、例えば以下のようにして辺接続判定手段は辺を接続するか否かを判定し、辺接続手段及び辺削除手段は辺の生成及び削除処理を実施し、その結果を一時記憶部に格納する。
【０１１４】
Ｓ８０１：所属サブクラスタ判定部は、一時記憶部に格納されたノード、ノードのサブクラスタについて、第１勝者ノード及び第２勝者ノードが属するサブクラスタをそれぞれ判定し、その結果を一時記憶部に格納する。
Ｓ８０２：一時記憶部に格納されたＳ８０１における判定の結果、第１勝者ノード及び第２勝者ノードがどのサブクラスタにも属していない場合、又は、第１勝者ノード及び第２勝者ノードが同じサブクラスタに属している場合には、辺接続手段は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を生成することによりノード間を接続し、その結果を一時記憶部に格納する。
Ｓ８０３：一時記憶部に格納されたＳ８０１における判定の結果、第１勝者ノード及び第２勝者ノードが互いに異なるサブクラスタに属す場合には、辺接続判定部は、一時記憶部に格納されたノード、ノード密度、及びノード間の辺について、ノードが属するサブクラスタの頂点の密度及びノードの密度に基づいて、第１勝者ノード及び第２勝者ノード間に辺を接続するか否かを判定し、その結果を一時記憶部に格納する。
Ｓ８０４：一時記憶部に格納されたＳ８０３における辺接続判定部による判定の結果、辺を接続する必要がないと判定した場合には、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間を辺によって接続せず、既にノード間が辺によって接続されていた場合には、辺削除手段は、一時記憶部に格納されたノード及びノード間の辺について、一時記憶部に格納された第１勝者ノード及び第２勝者ノード間の辺を削除し、その結果を一時記憶部に格納する。
Ｓ８０５：一時記憶部に格納されたＳ８０３における辺接続判定部による判定の結果、辺を接続する必要があると判定した場合には、辺接続手段は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を生成しノード間を接続する。
【０１１５】
ここで、辺接続判定部による判定処理について詳細に説明する。
まず、辺接続判定部は、一時記憶部に格納されたノード及びノード密度について、第１勝者ノードのノード密度ｄｅｎｓｉｔｙｗｉｎ及び第２勝者ノード密度ｄｅｎｓｉｔｙｓｅｃ−ｗｉｎのうち、最小のノード密度ｍを例えば一時記憶部に格納される以下の式に基いて算出し、その結果を一時記憶部に格納する。
【数９】
2008305129.tif 000011
次に、一時記憶部に格納されたノード、ノードのノード密度、及びノードのサブクラスについて、第１勝者ノード及び第２勝者ノードがそれぞれ属するサブクラスタＡ及びサブクラスタＢについて、サブクラスタＡの頂点の密度Ａｍａｘ及びサブクラスタＢの頂点の密度Ｂｍａｘを算出し、その結果を一時記憶部に格納する。尚、サブクラスタに含まれるノードのうち、ノード密度が最大であるノード密度をサブクラスタの頂点の密度とする。
【０１１６】
そして、一時記憶部に格納されたノードが属するサブクラスタの頂点の密度Ａｍａｘ及びＢｍａｘ、及びノードの密度ｍについて、ｍがαＡＡｍａｘより小さく、かつ、ｍがαＢＢｍａｘより小さいか否かを判定し、その結果を一時記憶部に格納する。即ち、一時記憶部に格納される以下の不等式を満足するか否かを判定し、その結果を一時記憶部に格納する。
【数１０】
2008305129.tif 000012
【０１１７】
判定の結果、ｍがαＡＡｍａｘより小さく、かつ、ｍがαＢＢｍａｘより小さい場合には、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間には辺は不要であると判定し、その結果を一時記憶部に格納する。
一方、判定の結果、ｍがαＡＡｍａｘ以上、または、ｍがαＢＢｍａｘ以上である場合には、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺は必要であると判定し、その結果を一時記憶部に格納する。
【０１１８】
このように、第１勝者ノード及び第２勝者ノードの最小ノード密度ｍを、第１勝者ノード及び第２勝者ノードをそれぞれ含むサブクラスタの平均的なノード密度と比較することで、第１勝者ノード及び第２勝者ノードを含む領域におけるノード密度の凹凸の大きさを判定することができる。即ち、サブクラスタＡ及びサブクラスタＢの間に存在する分布の谷間のノード密度ｍが、閾値αＡＡｍａｘ又はαＢＢｍａｘより大きな場合には、ノード密度の形状は小さな凹凸であると判定することができる。
【０１１９】
ここで、αＡ及びαＢは一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。尚、αＢについてもαＡと同様にして算出することができるためここでは説明を省略する。
ｉ）      Ａｍａｘ/ｍｅａｎＡ−１≦１の場合には、αＡ＝０．０とする。
ｉｉ）    １＜Ａｍａｘ/ｍｅａｎＡ−１≦２の場合には、αＡ＝０．５とする。
ｉｉｉ）  ２＜Ａｍａｘ/ｍｅａｎＡ−１の場合には、αＡ＝１．０とする。
【０１２０】
Ａｍａｘ/ｍｅａｎＡの値が１以下となるi）の場合には、ＡｍａｘとｍｅａｎＡの値は同程度であり、密度の凹凸はノイズの影響によるものと判断する。そして、αの値を０．０とすることで、サブクラスタが統合されるようにする。また、Ａｍａｘ/ｍｅａｎＡの値が２を超えるiii）の場合には、ＡｍａｘはｍｅａｎＡに比べて十分大きく、明らかな密度の凹凸が存在するものと判断する。そして、αの値を１．０とすることで、サブクラスタが分離されるようにする。そして、Ａｍａｘ/ｍｅａｎＡの値が上述した場合以外となる i i）の場合には、αの値を０．５とすることで、密度の凹凸の大きさに応じてサブクラスタが統合又は分離されるようにする。尚、ｍｅａｎＡはサブクラスタＡに属すノードｉのノード密度ｄｅｎｓｉｔｙｉの平均値を示し、ＮＡをサブクラスタＡに属するノードの数として、一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。
【数１１】
2008305129.tif 000013
【０１２１】
このように、サブクラスタへの分離を行う際に、サブクラスタに含まれるノード密度の凹凸の程度を判定し、ある基準を満たした２つのサブクラスタを１つに統合することで、分布の重なり領域の検出におけるサブクラスタの分けすぎによる不安定化を防止することができる。例えば、ノイズや学習サンプルが少ないことが原因で、密度の分布に多くの細かい凹凸が形成されることがある。このような場合に、第１勝者ノード及び第２勝者ノードがサブクラスタＡ及びＢの間にある分布の重なり領域に位置する場合に、ノード間の接続を行う際にある基準を満たした２つのサブクラスタを１つに統合することで、密度の分布に多くの細かい凹凸が含まれる場合であっても平滑化することができる。
【０１２２】
ノイズノード削除手段は、一時記憶部に格納されたノード、ノード密度、ノード間の辺、隣接ノードの個数について、注目するノードについて、ノード密度算出手段により算出されるノード密度及び注目するノードの隣接ノードの個数に基づいて、注目するノードを削除し、その結果を一時記憶部に格納する。
【０１２３】
さらにノイズノード削除手段は、一時記憶部に格納されたノード、ノード密度、ノード間の辺、隣接ノードの個数について、注目するノードのノード密度を所定の閾値と比較するノード密度比較部と、注目するノードの隣接ノードの個数を算出する隣接ノード数算出部と、注目するノードをノイズノードとみなして削除するノイズノード削除部を有する。具体的には、例えば以下のようにして一時記憶部に格納されたノード、ノード密度、ノード間の辺、隣接ノードの個数について、ノード密度及び注目するノードの隣接ノードの個数に基づいて、注目するノードを削除し、その結果を一時記憶部に格納する。
【０１２４】
ノイズノード削除手段は、一時記憶部に格納されたノード、ノード間の辺、隣接ノードの個数について、注目するノードｉについて、隣接ノード数算出部によりその隣接ノードの個数を算出し、その結果を一時記憶部に格納する。そして、一時記憶部に格納された隣接ノードの個数に応じて、以下の処理を実施する。
【０１２５】
ｉ）      一時記憶部に格納された隣接ノード数が２の場合、ノード密度比較部はノードｉのノード密度ｄｅｎｓｉｔｙｉを例えば一時記憶部に格納される以下の式に基づいて算出する閾値と比較し、その結果を一時記憶部に格納する。
【数１２】
2008305129.tif 000014
一時記憶部に格納された比較結果について、ノード密度ｄｅｎｓｉｔｙｉが閾値より小さい場合には、ノイズノード削除部は、一時記憶部に格納されたノードについて、ノードを削除し、その結果を一時記憶部に格納する。
【０１２６】
ｉｉ）    一時記憶部に格納された隣接ノード数が１の場合、ノード密度比較部はノードｉのノード密度ｄｅｎｓｉｔｙｉを例えば一時記憶部に格納される以下の式に基づいて算出する閾値と比較し、その結果を一時記憶部に格納する。
【数１３】
2008305129.tif 000015
一時記憶部に格納された比較の結果について、ノード密度ｄｅｎｓｉｔｙｉが閾値より小さい場合には、ノイズノード削除部は、一時記憶部に格納されたノードについて、ノードを削除し、その結果を一時記憶部に格納する。
【０１２７】
ｉｉｉ）  一時記憶部に格納された隣接ノード数について、隣接ノードを持たない場合、ノイズノード削除部は、一時記憶部に格納されたノードについて、ノードを削除し、その結果を一時記憶部に格納する。
【０１２８】
ここで、予め設定され一時記憶部に格納される所定のパラメタｃ1及びｃ2を調整することで、ノイズノード削除手段によるノイズノードの削除の振る舞いを調整することができる。
【０１２９】
本発明の目的は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは当然である。この場合、記録媒体から読み出されたプログラムコード自体が上述の実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１３０】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているオペレーティングシステム（ＯＳ）などが実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も当然含まれる。
【０１３１】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も当然含まれる。本発明を上記記録媒体に適用する場合、その記録媒体には、上述したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１３２】
【図１】本発明を実施するための機能ブロックを示す図である。
【図２】本発明に係る学習部の構造を模式的に示す図である。
【図３】従来手法であるＳＯＩＮＮによる学習処理の処理概要を示すフローチャートである。
【図４】本実施形態に係る推論装置のシステム構成を示す図である。
【図５】推論装置による学習処理の処理概要を示すフローチャートである。
【図６】推論装置による推論処理の処理概要を示すフローチャートである。
【図７】推論装置による出力結果の一例を示す図である。
【図８】学習に用いたパターン情報としての実画像を示す図である。
【図９】推論装置による推論結果を示す表である。
【図１０】推論結果を木構造により表現した図である。
【図１１】ノイズ画像が入力された場合の正解率を示す図である。
【図１２】データに乗ったノイズ及びデータと独立なノイズを示す図である。
【図１３】従来手法であるａｄｊｕｓｔｅｄ  ＳＯＩＮＮによる学習処理の処理概要を示すフローチャートである。
【図１４】従来手法であるＥ―ＳＯＩＮＮによる学習処理の処理概要を示すフローチャートである。
【符号の説明】
【０１３３】
１    推論装置
６０    コンピュータ
６１    ＣＰＵ
６２    ＲＯＭ
６３    ＲＡＭ
６４    バス
６５    入出力インターフェイス
６６    入力部
６７    出力部
６８    記憶部
６９    通信部
７０    ドライブ
７０１    磁気ディスク
７０２    光ディスク
７０３    フレキシブルディスク
７０４    半導体メモリ
１０  分解部
２０  短期記憶部
３０  長期記憶部
４０  学習部
４１  クラス間ノード挿入部
４２  辺削除部
４３  ノード削除部
５０  推論部
５１  子ノード追加部
【図１】
2008305129.tif 000016
【図３】
2008305129.tif 000017
【図４】
2008305129.tif 000018
【図５】
2008305129.tif 000019
【図６】
2008305129.tif 000020
【図７】
2008305129.tif 000021
【図９】
2008305129.tif 000022
【図１３】
2008305129.tif 000023
【図１４】
2008305129.tif 000024
【図２】
2008305129.tif 000025
【図８】
2008305129.tif 000026
【図１０】
2008305129.tif 000027
【図１１】
2008305129.tif 000028
【図１２】
2008305129.tif 000029