説明

推論装置、推論方法、及びプログラム

【課題】入力パターンを実数値ベクトルにより表現することができると共に、連言、選言、否定を含む任意のif−thenルールを自己増殖型ニューラルネットワークによって学習させることができる推論装置、推論方法、及びプログラムを提供することを目的とする。
【解決手段】本発明に係る推論装置は、自己増殖型ニューラルネットワークを用いて、if−thenルールを入力パターンとして学習する学習部40と、学習部40による学習結果を利用して推論を行う推論部50を備え、自己増殖型ニューラルネットワークは、多次元ベクトルで記述される入力パターンをニューラルネットワークに順次入力し、当該入力パターン、及び当該ニューラルネットワークに配置される多次元ベクトルで記述されるノードに基づいて、ノードを自動的に増加させると共にノード間を辺により接続してゆくものである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自己増殖型ニューラルネットワークを用いてパターンベースの推論を行う推論装置、推論方法、及びプログラムに関する。
【背景技術】
【0002】
人工知能分野における論理・推論に関する研究の歴史は長く、これまでにも多くの研究がなされてきた。推論に関する研究は、いわば、知識をシンボルで表現し、それを利用して新しい知識を生成する記号処理の仕組みの研究である。しかし、非定常な実環境下において汎用的なタスクを扱う知能ロボット等にとって、このような既存の推論システムの枠組みでは不十分なものである。これは、既存のシステムのほとんどがシンボル化された知識のみを操作対象とする推論しか行えないことが大きな理由であるものと考えられる。
【0003】
シンボルを操作対象とする代表的な推論機としてプロダクションシステムがある。プロダクションシステムでは、事前に人間の専門家がif−thenルールの形でシステムにシンボルベースの知識を与えておく必要がある。このため、システムの扱うタスクの範囲が限定されている場合には、必要とされる知識を事前にシステムに与えることによってタスクを解決することができる。
【0004】
一方、非定常な実環境下においては、自律的に活動する知能ロボット等にとって十分な知識を事前に全て列挙することは不可能であり、知能ロボット等が新たな環境に適応するためには自律的に知識を追加学習していく必要がある。このようなシステムが実世界からセンサを通じて獲得する情報はパターン情報であり、シンボル化されていないものである。従って、獲得された情報を、シンボルを操作対象とする推論機を用いて推論するためには、パターン情報をシンボル化する必要がある。しかし、現在のパターン識別機の性能は不十分なものであるため、例えば猫と犬を識別することすら簡単なことではない。このため、パターン情報をシンボル化する装置に従来のシンボルベースの推論機を組み合わせても、推論性能には限界がある。
【0005】
また、人間と同等の能力を有する識別機が開発された場合においても、以下の理由からシンボルベースの推論機だけでは不十分なものであると考えられる。第一に、システムが自らシンボルを生成する際に生じる問題が挙げられる。非定常な環境においては、システムに事前に全てのシンボルを与えることは不可能であり、環境に対応して自らシンボルを生成してゆくことが求められる。しかし、システムによるシンボル化が人間のように対象を用いた行動や思考の結果なされるものである場合には、シンボルを操作対象とする推論機しか持たないシステムでは、適切なシンボル化を行うことは困難である。第二に、シンボル化に馴染まないパターン情報が存在するという問題がある。例えば、風景や絵などの画像の色彩や構図は、我々人間にとってもシンボル化することが難しく、恐らくパターン情報のまま処理されているものと考えられるためである。
【0006】
このように、非定常な実環境下において汎用的なタスクを扱う将来の知能ロボットにとって、シンボルを操作対象とする推論機だけでは不十分であり、センサ情報であるパターン情報をシンボル化することなく推論を行う、パターン情報ベースの推論を実現する必要がある。また、計算機上で熟練者の模倣を行うエキスパートシステムを実現する際に生ずる知識獲得問題の解決のためという観点や、シンボルグラウンディング問題及びフレーム問題の回避という観点からも、パターン情報ベースの推論の実現は現在の人工知能研究における限界を克服できる可能性を持つものである。
【0007】
パターン情報ベースの推論機として、非特許文献1及び非特許文献2に開示された技術がある。非特許文献1に開示された技術は、パターン情報を関数としてとらえ、非古典論理である中間論理LCを用いることで、関数ととらえたパターン情報の入出力関係を学習した3層のフィードフォワード型ニューラルネットワークを命題として扱うパターン推論を行うことができる。非特許文献2に開示された技術は、パターン情報を2値ベクトルとして扱い、2値ベクトル間の関係を非単調神経回路網に学習させることで構成される、大自由度力学系のダイナミクスを利用したパターンベース推論を行うことができる。
【非特許文献1】Tsukimoto, H.,"Pattern Reasoning",Logical Reasoning of Neural Networks, IEICE Trans. Information and System, J83-D-II, 744-753, 2000.
【非特許文献2】Yamane, K., Hasuo, T., Suemitsu A., Morita, M."Pattern-based reasoning using trajectory attractors," IEICE Trans. Information and System, J90-D, 933-944, 2007.
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、非特許文献1に開示された技術では、異なるパターンごとに新しくフィードフォワード型ニューラルネットワークを用意する必要があるが、知能ロボットのセンサ情報は時間的にも空間的にも連続的なものであるため、新しいニューラルネットワークを用意するタイミングを決めることが非常に困難である。これを失敗すると、ニューラルネットワークの数が爆発し、知識の学習にもそれを用いた推論にも莫大な処理時間を要するか、又は、知識として全く異なるパターンを同じ命題として処理してしまうために学習した知識が無意味なものになってしまうという恐れがある。
【0009】
一方、非特許文献2に開示された技術では、単一の非単調神経回路網に複数の知識を学習することになるためこのような問題は回避することができる。他方、知能ロボットへの応用を考慮した場合には、2値ベクトルをそのまま命題として処理可能であるという点において、非特許文献2に開示された技術は非特許文献1に開示された技術よりも優れているが、連言(かつ)、選言(または)、否定を扱うことができないという問題がある。
【0010】
このように、従来の推論機では、入力パターンを実数値ベクトルにより表現することができると共に、連言、選言、否定を含む複雑なif−thenルールを学習させることができないという問題がある。
【0011】
本発明は係る課題を解決するためになされたものであり、入力パターンを実数値ベクトルにより表現することができると共に、連言、選言、否定を含む複雑なif−thenルールを自己増殖型ニューラルネットワークによって学習させることができる推論装置、推論方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明に係る推論装置は、自己増殖型ニューラルネットワークを用いて、if−thenルールを前記入力パターンとして学習する学習部と、前記学習部による学習結果を利用して推論を行う推論部とを備え、前記自己増殖型ニューラルネットワークは、多次元ベクトルで記述される入力パターンをニューラルネットワークに順次入力し、当該入力パターン、及び当該ニューラルネットワークに配置される多次元ベクトルで記述されるノードに基づいて、ノードを自動的に増加させると共にノード間を辺により接続してゆくものである。
【0013】
本発明においては、入力パターンを実数値ベクトルにより表現することができると共に、連言、選言、否定を含む複雑なif−thenルールを自己増殖型ニューラルネットワークによって学習させることができる。このため、パターンベースの推論をより適切に行うことができる。
【0014】
また、前記自己増殖型ニューラルネットワークは、入力される前記入力パターンに最も近い重みベクトルを持つノードと2番目に近い重みベクトルを持つノードの間に辺を接続したとき、注目するノードと他のノード間の距離に基づいて算出される当該注目するノードの類似度閾値、及び前記入力パターンと当該注目するノードとの間の距離に基づいて、前記入力パターンをノードとして挿入するクラス間ノード挿入部を有し、前記学習部は、前記自己増殖型ニューラルネットワークを用いて、前記入力パターンをクラスタリングするようにしてもよい。これにより、類似度閾値に基づいて、挿入されるノードの個数を自律的に管理することができるため、ノードの数を事前に決定することなく、逐次的に入力される新たな入力パターンを既存の知識を壊すことなく追加学習することができる。また、ノードの挿入を類似度閾値に基づいて判断することによって、知識を重複して学習することを回避することができる。
【0015】
さらにまた、前記クラス間ノード挿入部は、入力される前記入力パターンに最も近い重みベクトルを持つノードを第1勝者ノードとし、2番目に近い重みベクトルを持つノードを第2勝者ノードとし、当該第1勝者ノード及び当該第2勝者ノードの間に辺を接続したとき、注目するノードについて、当該注目するノードと辺によって直接的に接続されるノードが存在する場合には、当該直接的に接続されるノードのうち当該注目するノードからの距離が最大であるノード間の距離を前記類似度閾値とし、当該注目するノードと辺によって直接的に接続されるノードが存在しない場合には、当該注目するノードからの距離が最小であるノード間の距離を前記類似度閾値として算出する類似度閾値算出部と、前記入力パターンと前記第1勝者ノード間の距離が当該第1勝者ノードの類似度閾値より大きいか否か、及び、前記入力パターンと前記第2勝者ノード間の距離が当該第2勝者ノードの類似度閾値より大きいか否かを判定する類似度閾値判定部と、類似度閾値判定結果に基づいて、前記入力パターンをノードとして当該入力パターンと同じ位置に挿入するノード挿入部とを有するようにしてもよい。このように入力パターンに応じて変化する類似度閾値によれば、挿入されるノードの個数を自律的に管理することができるため、ノードの数を事前に決定することなく、逐次的に入力される新たな入力パターンを既存の知識を壊すことなく追加学習することができる。また、ノードの挿入を類似度閾値に基づいて判断することによって、知識を重複して学習することを回避することができる。
【0016】
また、前記自己増殖型ニューラルネットワークは、前記辺に対応付けられる辺の年齢に基づいて、当該辺を削除する辺削除部と、注目するノードについて、当該注目するノードに直接的に接続される辺の本数に基づいて、当該注目するノードを削除するノード削除部とを更に有するようにしてもよい。これにより、不要な入力パターンから生成されたノードを効果的かつ動的に削除することができる。
【0017】
さらにまた、前記推論部は、前記学習部により学習され長期記憶部に記憶されたノードとしてのif−thenルールと推論に利用する事実データであるファクトとの間の距離に基づいて推論を行うようにしてもよい。このように、ノードとしてのif−thenルールを利用して、ファクトがif−thenルールに作用することによって推論を行う。
【0018】
また、前記推論部は、前記学習部により学習され長期記憶部に記憶された前記if−thenルールの条件部と前記ファクトとの間の距離が所定の閾値より小さい場合に、前記if−thenルールの結論部を出力するようにしてもよい。これにより、入力されるファクトが既知か否かを容易に判定することができ、既知の知識とは無関係なランダムパターンなどがファクトとして入力された場合には、入力されたファクトが未知であるものと適切に判定することができる。
【0019】
さらにまた、前記推論部は、前記ファクトを根としたときに、当該ファクトとの間の距離が所定の閾値より小さな前記if−thenルールの結論部を当該ファクトの子ノードとして追加する第1の子ノード追加部と、前記第1の子ノード追加部により追加された前記結論部をファクトとして、当該ファクトとの間の距離が所定の閾値より小さな前記if−thenルールの結論部を当該ファクトの子ノードとして追加する第2の子ノード追加部とを有するようにしてもよい。このように推論結果を生成することで、ファクトを根とする木構造の出力結果を得ることができる。このため、複数の推論結果を容易に理解することができる。
【0020】
また、前記学習部により学習され長期記憶部に記憶された前記if−thenルールとしてのノードについて、注目する前記if−thenルールの一部又は全部と、他の注目する前記if−thenルールの一部又は全部との間の距離を算出するようにしてもよい。このようにif−thenルール間の距離を測定することによって、連言、選言、否定を含む複雑な知識間の距離であっても適切に算出することができる。
【0021】
さらにまた、任意のif−thenルールについて、当該if−thenルールの条件部及び結論部をそれぞれ選言標準形に変形し、当該変形した前記条件部及び前記結論部の選言肢の組合せからなるif−thenルールへと分解する分解部を更に有し、前記分解部は、分解された前記if−thenルールを前記自己増殖型ニューラルネットワークへと入力するようにしてもよい。これにより、任意のif−thenルールをその条件部及び結論部の選言肢の組合せからなるif−thenルールへと分解することで、任意のif−thenルールを入力パターンとして容易に学習させることができる。
【0022】
また、前記自己増殖型ニューラルネットワークは1層構造としてもよい。これにより、非特許文献: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(以下、SOINNという。)と比べて、2層目の学習を開始するタイミングを指定せずに追加学習を実行することができる。即ち、完全なオンラインでのクラスタリングを実行することができる。
【0023】
本発明に係る推論方法は、多次元ベクトルで記述される入力パターンをニューラルネットワークに順次入力し、当該入力パターン、及び当該ニューラルネットワークに配置される多次元ベクトルで記述されるノードに基づいて、ノードを自動的に増加させると共にノード間を辺により接続してゆく自己増殖型ニューラルネットワーク用いて、if−thenルールを前記入力パターンとして学習する学習ステップと、前記学習ステップによる学習結果を利用して推論を行う推論ステップと
を有するものである。
【0024】
本発明に係るプログラムは、上述のような情報処理をコンピュータに実行させるものである。
【発明の効果】
【0025】
本発明によれば、入力パターンを実数値ベクトルにより表現することができると共に、連言、選言、否定を含む任意のif−thenルールを自己増殖型ニューラルネットワークによって学習させることができる推論装置、推論方法、及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【0026】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。尚、各図面において、同一要素には同一の符号を付しており、説明の明確化のため、必要に応じて重複説明を省略する。
【0027】
発明の実施の形態1.
本実施の形態1は、本発明を、自己増殖型ニューラルネットワークを用いて、if−thenルールを入力パターンとして学習する学習部と、学習部による学習結果を利用して推論を行う推論部とを有する推論装置に適用したものである。推論装置は、連言、選言、否定を扱うことができると共に、実数値ベクトルとして処理可能なパターン情報を命題とするif−thenルールを、自己増殖型ニューラルネットワークを用いて学習する。即ち、推論装置は、ベクトルとして表現されたパターン情報を原子命題としたとき、これらの原子命題に、連言、選言、否定を付加した命題を含意(ならば)で結ぶことによって構成される、任意のif−thenルールを学習することができる。
【0028】
例えば、A乃至Fを、パターン情報を表現するベクトルとしたとき、「A→B」や、「(A∧B)∨C)→(D∧¬E∧F)」といった知識が学習対象となる。尚、→は含意、∧は連言、∨は選言、¬は否定をそれぞれ示す。このようなif−thenルールを学習した推論装置に対し、事実データであるファクトに対応するパターン情報を入力すると、学習したif−thenルールを利用して演繹推論が行われ、いくつかの推論結果を導出することができる。例えば、推論装置に「(A∧B)→(C∨D)」及び「C→(E∧¬F)」を学習させた後に、「A∧B」を入力した場合には、「C∨D」及び「(E∧¬F)∨D」を推論結果として出力する。
【0029】
後述するように、学習処理においては、パターン情報を命題とするif−thenルールが入力され、所定の処理に従って入力データを学習する。その際、学習データを長期記憶部に追加すべきか否かを判断すると共に、長期記憶部に既に記憶されているデータについて削除すべきものがあるか否かについてもオンラインで判断することができる。また、学習処理においては、長期記憶部に記憶されるif−thenルールがオンラインでクラスタリングされる。また、推論処理においては、学習処理において学習され長期記憶部に記憶されたノードとしてのif−thenルールと推論に利用する事実データであるファクトとの間の距離に基づいて推論を行う。
【0030】
図1は、本発明の実施の形態1に係る推論装置1を示すブロック図である。推論装置1は、分解部10、短期記憶部20、長期記憶部30、学習部40、及び推論部50を備える。自己増殖型ニューラルネットワークとしての学習部40は、クラス間ノード挿入部41と、辺削除部42と、ノード削除部43を備える。推論部50は、第1の子ノード追加部及び第2の子ノード追加部としての子ノード追加部51を備える。各ブロックについて以下詳細に説明する。
【0031】
分解部10は、学習データとして入力される任意のif−thenルールについて、そのif−thenルールの条件部及び結論部をそれぞれ選言標準形に変形し、変形した条件部及び結論部の選言肢の組合せからなるif−thenルールへと分解する。より詳細には、入力データとして、学習用のif−thenルールが入力されると、以下の方法によって「リテラルの連言→リテラルの連言」の形をした複数のif−thenルールへと分解する。
【0032】
STEP101:まず、入力されたif−thenルールの条件部及び結論部を、それぞれ選言標準形に変形する。尚、任意の命題論理式を選言標準形に変形可能であるため、任意の命題論理式を推論装置1に対して入力することができる。
STEP102:次いで、変形したif−thenルールの条件部及び結論部の選言肢をひとつずつ選び、それらを含意で結んだif−thenルールを全ての組み合わせについて生成する。すると、選言標準形に変形した場合において、条件部及び結論部の選言肢の数がそれぞれM個、N個であったとすると、M×N個の「リテラルの連言→リテラルの連言」の形のif−thenルールを得る。例えば、条件部及び結論部のそれぞれを選言標準形に変形した結果が(A∧¬B)∨C∨(D∧E∧F)→¬G∨(H∧I)である場合には、条件部及び結論部の選言肢を組み合わせることによって、A∧¬B→¬G、A∧¬B→H∧I、C→¬G、C→H∧I、D∧E∧F→¬G、及びD∧E∧F→H∧Iという6つのif−thenルールを得る。
【0033】
以上のようにして分解されたif−thenルールが短期記憶部20に一時的に記憶され、学習部40へと入力される。ここで、分解された複数のif−thenルールは、個別に学習部40へと入力されオンラインクラスタリングが行われる。尚、以下の説明においては、分解されたif−thenルールを単に学習データと呼ぶ。
【0034】
尚、以上のようにして分解されたif−thenルールを単純に長期記憶部30に保存するだけでは、推論処理において計算量の増加及び推論結果の重複を招く。そこで学習部40では、類似データの排除及び長期記憶部30に記憶されるif−thenルールのオンラインクラスタリングを後述するようにして行う。
【0035】
学習部40は、if−thenルールを入力パターンとして学習する。図2は、学習部40の構造を示す概念図である。図2に示すように、学習部40は、入力層(Input Layer)及び、競合層(Competitive Layer)を備える。入力層において、if−thenルールの条件部(Condition Rule)及び結論部(Sequential Rule)が1つの入力パターンとしてまとめられ、競合層へと与えられる。競合層において、入力パターン及びニューラルネットワークに配置されるノードに基づいて、ノードを自動的に増加させると共にノード間を辺により接続してゆくことによって、入力パターンに対応するノードが競合層において生成される。
このように、入力層より競合層へと入力パターンが与えられて、競合層においてクラスタリング処理を行うことにより、自己増殖型ニューラルネットワークを用いてif−thenルールの学習を実現することができる。尚、本実施の形態1においては、従来技術であるSOINNの1層目を改良した競合層を用いる。
【0036】
従来技術であるSOINNは2層の競合層を有するが、本実施の形態1において使用する入力パターンについては1層のみを競合層として使用する。1層構造とすることにより、SOINNと比べて、2層目の学習を開始するタイミングを指定せずに追加学習を実行することができる。即ち、完全なオンラインでの追加学習を実行することができる。また、自己増殖型ニューラルネットワークはSOINNに限定されず、後述するadjusted SOINNや、Enhanced−SOINN(以下、E−SOINNという。)などとしても1層構造とすることができ、2層目の学習を開始するタイミングを指定せずに追加学習を実行することができる。また、自己増殖型ニューラルネットワークはこれに限定されず、SOINNを拡張したものだけでなく、非特許文献:Fritzke.B, "A growing neural gas network learns topologies, " Advances in neural information processing systems(NIPS), pp 625-632, 1995.に開示された技術であるGrowing Neural Gas(以下、GNGという。)を拡張したものを競合層として用いることもできる。
【0037】
尚、本実施の形態1において使用する自己増殖型ニューラルネットワークは、非特許文献: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(以下、SOINN−AMという。)と同様に、学習データの入力に応じて自律的にノードが増えていくモデルであるものの、以下の点について相違する。
【0038】
まず、SOINN−AMが学習対象とするデータは連想対であるため、ひとつのノードが保持する重みは、学習対象の連想対に対応する実数値ベクトルのペアである。一方、本実施の形態にかかる推論装置1が学習対象とするデータは、リテラルの連言を含意で結んだif−thenルールである。このため、本実施の形態1にかかる推論装置1によって学習され、各ノードが保持する重みは、条件部及び結論部の命題のペア(即ち、実数値ベクトルのペア)であり、さらにその命題が肯定なのか否定なのかという情報も保持される。例えば図2において、A∧¬B→¬C∧Dを表現するノード群を示す。さらに、SOINN−AMも学習中にオンラインで知識をクラスタリングするが、ノード間に生成される辺は挿入されたノードが同じクラスタに属すものであることを示している。一方、推論装置1では、任意のif−thenルールを表現可能とするために、条件部の命題と結論部の命題の数を掛け合わせた数のノードが生成される。そして、これら複数のノードがひとつの知識(任意のif−thenルール)であることを表現するために、ノード間に辺が生成される。即ち、これらのノード間にはSOINN−AMにおけるクラスタを表現する辺とは異なる種類の辺が生成される。
【0039】
続いて、まず、従来技術であるSOINNについて簡単に説明し、次いで本実施の形態1にかかる学習部40について説明する。SOINNは、GNGを拡張した、いわゆる自己増殖型ニューラルネットワークと呼ばれる、教師なし追加学習手法である。ノードを自己増殖しながら入力ベクトルを逐次的に学習することにより、入力データの分布を表現するネットワークを追加的に構築することができる。SOINNは、次の4つの利点を有する。
(1)過去に学習したクラスタを壊さずに、新規に入力される未知クラスの入力ベクトルを追加的に学習して、新規のクラスタを構築することができる。
(2)入力データに対して独立なノイズを、効果的かつ動的に除去することができる。
(3)逐次的に与えられる教師無しデータについて、その位相構造を表現するネットワークを自律的に構築することができる。
(4)ノード数を事前に決定せずに、入力ベクトルを近似することができる。
【0040】
図3は、従来技術であるSOINNによる学習処理を説明するためのフローチャートである。以下、図3を用いてSOINNの処理を説明する。ここで、SOINNは2層ネットワーク構造を有し、1層目及び2層目において同様の学習処理を実施する。また、SOINNは、1層目の出力である学習結果を2層目への入力ベクトルとして利用する。
【0041】
S201:SOINNに対して入力ベクトルを与える。
S202:与えられた入力ベクトルに最も近いノード(以下、第1勝者ノードという。)、及び2番目に近いノード(以下、第2勝者ノードという。)を探索する。
S203:第1勝者ノード及び第2勝者ノードの類似度閾値に基づいて、入力ベクトルがこれら勝者ノードの少なくともいずれか一方と同一のクラスタに属すか否かを判定する。ここで、ノードの類似度閾値はボロノイ領域の考えに基づいて算出する。学習過程において、ノードの位置は入力ベクトルの分布を近似するため次第に変化し、それに伴いボロノイ領域も変化する。即ち、類似度閾値もノードの位置変化に応じて適応的に変化してゆく。
【0042】
S204:S203における判定の結果、入力ベクトルが勝者ノードと異なるクラスタに属す場合は、入力ベクトルと同じ位置にノードを挿入し、S201へと進み次の入力ベクトルを処理する。尚、このときの挿入をクラス間挿入と呼ぶ。
S205:一方、入力ベクトルが勝者ノードと同一のクラスタに属す場合は、第1勝者ノード及び第2勝者ノード間に辺を生成し、ノード間を辺によって直接的に接続する。
S206:第1勝者ノード及び第1勝者ノードと辺によって直接的に接続しているノードの重みベクトルをそれぞれ更新する。
S207:S205において生成された辺は年齢を有しており、予め設定された閾値を超えた年齢を持つ辺を削除する。入力ベクトルを逐次的に与えてゆくオンライン学習においては、ノードの位置が常に徐々に変化してゆくため、初期の学習で構成した隣接関係が以後の学習によって成立しない可能性がある。このため、一定期間を経ても更新されないような辺について、辺の年齢が高くなるように構成することにより、学習に不要な辺を削除することができる。
【0043】
S208:入力ベクトルの入力総数が、予め設定されたλの倍数であるか否かを判定する。判定の結果、入力ベクトルの入力総数がλの倍数でない場合には、S201へと戻り次の入力ベクトルを処理する。一方、入力ベクトルの総数がλの倍数となった場合には以下の処理を実行する。
S209:局所累積誤差が最大であるノードを探索し、そのノード付近に新たなノードを挿入する。ノードの持つ平均誤差を示す誤差半径に基づいて、ノード挿入が成功であったか否かを判定する。尚、このときの挿入をクラス内挿入と呼ぶ。ここで、ノード及び入力ベクトル間の距離差をノードの持つ誤差として、入力ベクトルの入力に応じてノードの誤差を累積することにより局所累積誤差を算出する。誤差半径はノードの持つ誤差及びノードが第1勝者となった回数に基づいて算出する。
【0044】
S210:クラス内挿入によるノード挿入が成功であると判定した場合には、クラス内挿入により挿入されたノード及び局所累積誤差が最大のノードを辺によって直接的に接続する。一方、クラス内挿入によるノード挿入が失敗であると判定した場合には、クラス内挿入により挿入したノードを削除してS211へと進む。
S211:隣接ノード数及びノードが第1勝者となった回数に基づいて、ノイズノードを削除する。ここで、隣接ノードとは、ノードと辺によって直接的に接続されるノードを示し、隣接ノードの個数が1以下であるノードを削除対象とする。また、第1勝者となった回数の累積回数を予め設定されたパラメタcを使用して算出される閾値と比較し、第1勝者累積回数が閾値を下回るノードを削除対象とする。
【0045】
S212:入力ベクトルの入力総数が予め設定されたLTの倍数であるか否かを判定する。判定の結果、入力ベクトルの入力総数がLTの倍数でない場合には、S201へと戻り次の入力ベクトルを処理する。一方、入力ベクトルの総数がLTの倍数となった場合には、以下の処理を実行する。
S213:1層目の学習を終了するか否かを判定する。判定の結果、2層目の学習へと進む場合には、S201へと進み1層目の学習結果であるノードを2層目への入力ベクトルとして入力する。ただし、追加学習を行う場合は、2層目に残っている以前の学習結果を消去した上で2層目の学習を開始する。2層目への入力回数が予め設定された回数LTの倍数となり2層目の学習を終了する場合には、ノードを異なるクラスに分類し、クラス数及び各クラスの代表的なプロトタイプベクトルを出力し停止する。ここで、プロトタイプベクトルはノードの重みベクトルに相当する。
【0046】
このように、SOINNは、ノード数を自律的に管理することにより非定常的な入力を学習することができ、分布に複雑な形状を持つクラスに対しても適切なクラス数及び位相構造を抽出できるなど多くの利点を持つ。SOINNの応用例として、例えばパターン認識においては、ひらがな文字のクラスを学習させた後に、カタカナ文字のクラスなどを追加的に学習させることができる。
【0047】
次いで、本実施の形態1に係る学習部40について説明する。学習部40は、クラス間ノード挿入部41と、辺削除部42と、ノード削除部43を備える。クラス間ノード挿入部41は、類似度閾値算出部、類似度閾値判定部、及びノード挿入部を備える。クラス間ノード挿入部41は、入力される入力パターンに最も近い重みベクトルを持つノードを第1勝者ノードとし、2番目に近い重みベクトルを持つノードを第2勝者ノードとし、第1勝者ノード及び第2勝者ノードの間に辺を接続したとき、以下に述べるようにしてノードを挿入する。
【0048】
まず、類似度閾値算出部は、注目するノードについて、注目するノードと辺によって直接的に接続されるノードが存在する場合には、直接的に接続されるノードのうち注目するノードからの距離が最大であるノード間の距離を類似度閾値とし、注目するノードと辺によって直接的に接続されるノードが存在しない場合には、注目するノードからの距離が最小であるノード間の距離を類似度閾値として算出する。次いで、類似度閾値判定部は、入力パターンと第1勝者ノード間の距離が第1勝者ノードの類似度閾値より大きいか否か、及び、入力パターンと第2勝者ノード間の距離が第2勝者ノードの類似度閾値より大きいか否かを判定する。次いで、ノード挿入部は、類似度閾値判定結果に基づいて、入力パターンをノードとして入力パターンと同じ位置に挿入する。尚、ノード間の距離の算出方法の詳細については後述する。
【0049】
このように入力パターンに応じて変化する類似度閾値によれば、挿入されるノードの個数を自律的に管理することができるため、ノードの数を事前に決定することなく、逐次的に入力される新たな入力パターンを既存の知識を壊すことなく追加学習することができる。また、ノードの挿入を類似度閾値に基づいて判断することによって、知識を重複して学習することを回避することができる。
【0050】
辺削除部42は、辺に対応付けられる辺の年齢に基づいて、辺を削除する。ノード削除部43は、注目するノードについて、注目するノードに直接的に接続される辺の本数に基づいて、注目するノードを削除する。これにより、不要な入力パターンから生成されたノードを効果的かつ動的に削除することができる。
【0051】
長期記憶部30には、学習部40が学習処理において学習したif−thenルールが辺により接続され、オンラインでクラスタリングされながら記憶される。長期記憶部30に記憶された学習結果を利用して、推論装置1は推論を行う。入力パターンとして連言、選言、否定を含む論理式がファクトとして短期記憶部20へと入力されると、ファクトは一時的に短期記憶部20に記憶される。尚、上記と同様にして、分解部10によりファクトを分解してから短期記憶部20へと記憶してもよい。
【0052】
推論部50は、短期記憶部20からファクトが入力されると、学習処理において長期記憶部30に保存されたif−thenルール及び入力されたファクトに基づいて推論を行い、入力したファクトを根とするOR木を出力する。OR木の各節はリテラルの連言を保持しており、各節を選言により連結して構成する複数の選言標準形を推論結果とみなすことができる。ここで、推論部50が推論処理を行う際には、if−thenルールの条件部とファクトとの間の距離が所定の閾値より小さい場合に、if−thenルールの結論部を出力する。これにより、入力されるファクトが既知か否かを容易に判定することができ、既知の知識とは無関係なランダムパターンなどがファクトとして入力された場合には、入力されたファクトが未知であるものと適切に判定することができる。
【0053】
推論部50は子ノード追加部51を有しており、子ノード追加部51は、ファクトを根としたときに、そのファクトとの間の距離が所定の閾値より小さなif−thenルールの結論部をそのファクトの子ノードとして追加し、さらに、追加された結論部を新たなファクトとして、その新たなファクトとの間の距離が所定の閾値より小さなif−thenルールの結論部を再帰的に追加する。このように推論結果を生成することで、ファクトを根とする木構造の出力結果を得ることができる。このため、複数の推論結果を容易に理解することができる。
【0054】
以上のような推論装置1は、専用コンピュータ、パーソナルコンピュータ(PC)などのコンピュータにより実現可能である。但し、コンピュータは、物理的に単一である必要はなく、分散処理を実行する場合には、複数であってもよい。図4は、本実施の形態1に係る推論装置1を実現するためのシステム構成の一例を示す図である。図4に示すように、コンピュータ60は、CPU61(Central Processing Unit)、ROM62(Read Only Memory)及びRAM63(Random Access Memory)を有し、これらがバス64を介して相互に接続されている。尚、コンピュータを動作させるためのOSソフトなどは、説明を省略するが、この推論装置1を構築するコンピュータも当然備えているものとする。
【0055】
バス64には又、入出力インターフェイス65も接続されている。入出力インターフェイス65には、例えば、キーボード、マウス、センサなどよりなる入力部66、CRT、LCDなどよりなるディスプレイ、並びにヘッドフォンやスピーカなどよりなる出力部67、ハードディスクなどより構成される記憶部68、モデム、ターミナルアダプタなどより構成される通信部69などが接続されている。
【0056】
CPU61は、ROM62に記憶されている各種プログラム、又は記憶部68からRAM63にロードされた各種プログラムに従って各種の処理、本実施の形態においては、例えば学習処理や推論処理を実行する。RAM63には又、CPU61が各種の処理を実行する上において必要なデータなども適宜記憶される。通信部69は、例えば図示しないインターネットを介しての通信処理を行ったり、CPU61から提供されたデータを送信したり、通信相手から受信したデータをCPU61、RAM63、記憶部68に出力したりする。記憶部68はCPU61との間でやり取りし、情報の保存・消去を行う。通信部69は又、他の装置との間で、アナログ信号又はディジタル信号の通信処理を行う。入出力インターフェイス45は又、必要に応じてドライブ70が接続され、例えば、磁気ディスク701、光ディスク702、フレキシブルディスク703、又は半導体メモリ704などが適宜装着され、それらから読み出されたコンピュータプログラムが必要に応じて記憶部68にインストールされる。
【0057】
続いて、本実施の形態1に係る学習処理及び推論処理について説明する。図5を参照しながら推論装置1による学習処理について説明する。図5は、推論装置1による学習処理の概要を示すフローチャートである。
STEP301:入力データとして、学習用のデータであるif−thenルールが入力されると、分解部10は、上述したように「リテラルの連言→リテラルの連言」の形をした複数のif−thenルールへと分解する。分解されたif−thenルールは短期記憶部20に一時的に記憶される。尚、例えばRAM63などを短期記憶部20や長期記憶部30として利用することができる。
【0058】
STEP302:学習データ及び長期記憶部30に記憶されている知識との間の距離を算出し、学習データとの間の距離が最小となる長期記憶部30の知識を第1勝者とし、2番目に小さい知識を第2勝者とし、その結果を一時記憶部(例えばRAM43)に格納する。ここで、学習データは以下の式によって示される。
【数1】

また、長期記憶部の知識は以下の式によって示される。
【数2】

学習データk及び長期記憶部30に記憶されている知識k間の距離d(k,k)は以下の式に基づいて算出する。尚、k'は長期記憶部30に記憶されている知識kに含まれる任意の知識を示し、Dはリテラル(PやQなど)の次元数を示す。
【数3】

【0059】
STEP303:次いで、入力された学習データが未知の知識であるか否かを判定し、その結果を一時記憶部(例えばRAM43)に格納する。より詳細には、第1勝者及び第2勝者のそれぞれの類似度閾値sを以下の式に基づいて算出し、類似閾値に基づいて学習データが長期記憶部30にある知識と同じクラスタに属するものであるか否かを判定する。即ち、学習データ及び第1勝者の間の距離が第1勝者の類似度閾値よりも小さく、かつ、第2勝者についても同様のことが成立する場合には、学習データは第1勝者及び第2勝者と同じクラスタに属するものであると判定する。一方、学習データとの間の距離が、第1勝者又は第2勝者の類似度閾値よりも大きな場合には、学習データは既存の知識とは同じクラスタに属していないものであると判定する。
【数4】

ここで、Nは第1(又は第2)勝者と辺により接続される知識(ノード)の集合、Aは長期記憶部30に記憶されている全ての知識の集合、kは第1(又は第2)勝者の知識をそれぞれ示す。
【0060】
STEP304:STEP303における判定の結果、長期記憶部30に既に存在する知識と同じクラスタには属さないものであると判定した場合には、学習データを新たに長期記憶部30に追加した上で、STEP312へと進み、学習処理を終了するか否かについて判定する。一方、判定の結果、既存の知識と同じクラスタに属するものと判定した場合には、学習データの類似知識が既に長期記憶部30に存在しているものと考えられるため、長期記憶部30への追加は行わずに、STEP305へと進み、長期記憶部30に記憶されている知識を更新する。
【0061】
STEP305:長期記憶部30に記憶されている第1勝者及び第2勝者について、それら勝者の間に辺が存在しているか否かについて判定し、その結果を一時記憶部(例えばRAM43)に格納する。
STEP306:STEP305における判定の結果、勝者間に既に辺が存在している場合には、その辺の年齢を1に戻し、STEP308へと進む。
STEP307:一方、STEP305における判定の結果、勝者間に辺が存在していない場合には、それら勝者を同じクラスタに属するものとするため、勝者間に年齢が1の辺を生成して接続する。
STEP308:次いで、第1勝者に接続される辺について、第1勝者及び第2勝者間に接続される辺を除いた他の辺の年齢をインクリメントする(1増やす)。
STEP309:次いで、長期記憶部30に記憶されている知識間の辺について、Λedgeより大きな年齢を持つ辺を削除する。
【0062】
STEP310:次いで、学習データの入力数が所定のパラメタλの整数倍となったか否かを判定し、その結果を一時記憶部(例えばRAM43)に格納する。判定の結果、学習データの入力数が所定のパラメタの整数倍となっていない場合にはSTEP312へと進む。
STEP311:一方、学習データの入力数が所定の個数に到達している場合には、辺を一本のみ持つ知識を長期記憶部30より削除する。
STEP312:未学習のデータが残っている場合には、学習処理を続行し、S301へと進み処理を続行する。全てのデータを学習し終えると学習処理を終了する。
【0063】
尚、STEP309におけるΛedgeを用いることにより、ノイズなどの影響により誤って生成される辺を削除することができる。Λedgeに小さな値を設定することにより、辺が削除されやすくなりノイズによる影響を防ぐことができるものの、値を極端に小さくすると、頻繁に辺が削除されるようになり学習結果が不安定になる。一方、極端に大きな値をΛedgeに設定すると、ノイズの影響で生成された辺を適切に取り除くことができない。これらを考慮して、パラメタΛedgeは実験により予め算出し一時記憶部に格納される。
【0064】
また、STEP310におけるλはノイズと見なされるノードを削除する周期である。λに小さな値を設定することにより、頻繁にノイズ処理を実施することができるものの、値を極端に小さくすると、実際にはノイズではないノードを誤って削除してしまう。一方、極端に大きな値をλに設定すると、ノイズの影響で生成されたノードを適切に取り除くことができない。これらを考慮して、パラメタλは実験により予め算出し一時記憶部に格納される。
【0065】
次に、推論処理について説明する。図6は、連想記憶装置1による想起処理の概要を示すフローチャートである。
STEP401:入力データとしてファクトを入力すると、ファクトは短期記憶部20に一時的に記憶される。この際、分解部10により、上述したようにファクトを選言標準形へと分解してもよい。そして、入力したファクトを根とし、根以外に節を持たない木を生成し、その結果を一時記憶部(例えばRAM43)に格納する。
【0066】
STEP402:次に、長期記憶部30に記憶されたif−thenルールの条件部と入力されたファクトとの間の距離を算出し、その結果を一時記憶部(例えばRAM43)に格納する。
STEP403:入力されたファクトと長期記憶部30に記憶されているif−thenルールの条件部との間の距離について、その距離が閾値δ以下となるif−thenルールが存在するか否かを判定し、その結果を一時記憶部(例えばRAM43)に格納する。判定の結果、存在しない場合には推論処理を終了する。一方、判定の結果、長期記憶部30に入力されたファクトとの間の距離が閾値δ以下となるif−thenルールが存在する場合には以下の処理を実行する。
【0067】
STEP404:入力されたファクトとの距離が閾値δ以下となるif−thenルールについて、その結論部のみをSTEP401において入力したファクトの子ノードとして木に追加し、その結果を一時記憶部(例えばRAM43)に格納する。長期記憶部30に記憶されたif−thenルールについて、対象となるif−thenルールを全て追加する。ただし、同一のクラスタにおいて、閾値を下回るif−thenルールが複数存在する場合には、距離が最小となるif−thenルールのみを子ノードとして追加する。これにより、同一のクラスタから複数のif−thenルールを追加することを避けることができる。
【0068】
STEP405:続いて、STEP404において追加された子ノードを新たなファクト(葉)として、STEP403乃至404における処理と同様の処理を実行する。即ち、新たなファクトについて、長期記憶部30に記憶されたif−thenルールの条件部とそのファクトとの間の距離を算出し、その結果を一時記憶部(例えばRAM43)に格納する。STEP403へと進み、対象となる葉を全て出力した場合に、推論処理を終了する。尚、このようにして木を生成する手順は、入力されたファクト及び長期記憶部30に記憶されている断片的な知識を組み合わせることによって、多段の推論を行っていることに相当する。
【0069】
図7は、推論処理による出力結果の一例を示す図であり、例として、長期記憶部30において知識A∧B→C∨(D∧¬E),C'→F∨G∨(H∧I),D'∧¬E'→¬Jを記憶している場合に、A'∧B'をファクトとして入力した場合を示す。ここで、(A,A')、(B,B')、(C,C')、(D,D')、(E,E')は閾値に対して十分に距離が小さいパターン情報のペアである。
【0070】
また、このようにして出力される木は、例えば図7において示したように、各節にはデータとしてリテラルの連言が保持されるものの、これらは単独では推論結果としては不正確なものである。これは、各節はもともと選言によって結合されていたものを分解して学習したためである。即ち、例えば図7においては、A∧B→C∨(D∧¬E)なのであって、A∧B→Cではない。従って、出力された木をOR木として扱うことによって、節を選言により連結した選言標準形を推論結果として正しいものとして扱うことができる。例えば、図7の木が出力された場合には、推論結果がC∨(D∧¬E),C∨¬J,F∨G∨(H∧I)∨(D∧¬E),F∨G∨(H∧I)∨¬Jであったものとみなす。ここで、推論結果は選言標準形をしているが、これは推論装置1が可能性についての推論を行っているものと解釈することができる。例えば、現在地に関する情報をファクトとして入力した結果、出力として「スーパーまたはコンビニエンスストアまたは薬局」に相当する結果を得たものとする。この場合には、現在地からどのような場所に移動が可能であるかということを推論によって発見したものと考えることができる。
【0071】
続いて、本発明の実施の形態1に係る推論装置1による効果について説明する。実画像を用いて環境の因果関係や可能性について追加学習させ、学習した知識を用いて推論を行わせた。学習時のパラメタはΛedge=100、λ=50とした。実画像として、図8に示したような56×46ピクセルの14種類の画像について、それぞれアングルを変えて撮影した画像を各20枚ずつ、合計280枚を用意した。学習させたif−thenルールは、「A→B,B→D∨E,E→(C∧N)∨F∨M,(C∧N)→(G∧I)∨(H∧J),(G∧I)→K,(H∧J)→L」である。これらをシンボルで書くならば「閉じたドア→開いたドア,開いたドア→壁∨廊下,廊下→(研究室∧表札)∨エレベータ∨階段,(研究室∧表札)→(机1∧閉まった引出し1)∨(机2∧閉まった引出し2),(机1∧閉まった引出し1)→開いた引出し1,(机2∧閉まった引出し2)→開いた引出し2」である。学習データとして実際に入力されたデータは、各命題をあらわす20枚の画像をそれぞれランダムに1枚ピックアップしてできるif−thenルールであり、そのようにランダムに選択してできるif−thenルールの入力を、各if−thenルールについて4400回繰り返した。例えば、A→Bを学習させる際には、A及びBに対応する画像をそれぞれ20枚の画像から1枚ずつ選び、それをif−thenルールとして学習させることを繰り返した。
【0072】
学習によって980個のif−thenルールが長期記憶部30に記憶され、それらは10個のクラスタに分類された。クラスタに属するif−thenルールはそれぞれ「A→B,B→D,B→E,E→(C∧N),E→F,E→M,(C∧N)→(G∧I),(C∧N)→(H∧J),(G∧I)→K,(H∧J)→L」に対応する知識だけであった。これはシンボルベースで表せば単一のルールとなるようなif−thenルールを適切にクラスタリングできていることを意味する。図9は、各クラスタが保持するif−thenルールの数(クラスタのメンバー数)及びデータ圧縮率を示す表である。データ圧縮率は"1−(クラスタのメンバー数÷与えた学習データの数)"により評価した。学習データとして合計で4000種類のif−thenルールが与えられたが、そのうちの75.5%にあたる3020個のif−thenルールが長期記憶部30には記憶されなかったことがわかる。これは類似した知識を長期記憶部30に記憶しないとう推論装置1が備える機能が適切に動作したことを示す。
【0073】
ここで、上述の学習処理がバッチ学習ではなく追加学習となっている点に注目する。即ち、上述した学習処理において知識を正確に学習できたということは、いったん学習が終了した後に新たな学習データが追加された場合であっても、以前に学習した知識を忘却することなく新たな知識を学習可能であるということ、及び、同じか又は極めて類似したデータを長期記憶部30へ追加することによるメモリの浪費を回避することが可能であるということを示している。
【0074】
図10は、学習処理を終えた推論装置1に対して、ファクトを入力した場合の出力結果(木構造による出力)を示す画像である。図10に示す画像においては、根に位置する画像をファクトとして入力し、δ=0.3として推論を行った。推論処理の結果、推論装置1はif−thenルールとして断片的に学習したデータを組み合わせて図10に示すようなOR木を推論結果として出力した。推論結果は、入力したファクト及び推論装置1が学習したif−thenルールから得られる結果として、不足も重複もない必要十分なものである。
【0075】
図10に示した結果は、閉じたドアから階段、エレベータ、引出し等に到達可能であること、及び、それらの場所に至るまでの経路をシステムが推論によって見出すことが可能であるものと解釈することができる。ここで、引出しに関する推論の部分では、推論装置1が連言を処理可能であることが有効に機能している。即ち、連言を処理できない場合には、机の画像を知識として与えられず閉じた引出しの画像だけを学習することになるため、異なる引き出しであっても見た目は同一であるため推論を正確に行うことができないという問題がある。
【0076】
また、図10に示した結果において、推論結果に重複が発生しなかったのは、if−thenルールをクラスタリングしながら学習可能であったためである。クラスタリング結果を無視して、閾値よりも小さなif−thenルールの結論部を全て節として追加するようにして推論を行わせた場合には、3,804,840,166個もの節が生成される。これらの節の持つ画像は全て図7のBに対応する20枚の画像に一致し、シンボルースで解釈するならば1つの節で表現すべき内容であった。即ち、この結果はif−thenルールをクラスタリングすることの有効性を示している。
【0077】
またノイズ耐性を確かめるため、図7のAにあたる閉じたドアの画像について、異なったアングルで撮影した画像20枚に対してガウシアンノイズを加えた上で、同一のノイズレベルについて10枚ずつ用意し、それらの画像をファクトとして与えた。図11は、このようなノイズ画像が入力された場合に、推論結果に対する正解率を示す図である。図11は、各ノイズレベルについて"正しく推論した回数÷推論を試みた回数"をプロットしたものである。この結果はあるSN比を境界にして、それよりノイズの多い画像は未知画像だと判断されて推論が行われず、ノイズが少ない画像に対しては原画像の場合と同様の正しい推論を行っていることを意味する。従って、非特許文献2に開示された技術ではこのようなノイズに対して柔軟に対応することはできないが、本発明に係る推論装置1はδの設定によって境界になるSN比を調整できるという柔軟性を持つものである。さらに、このようなノイズ耐性についての結果は、推論装置1が汎化性能を持っていることを示唆するものである。
【0078】
以上の実験において説明したように、推論装置1は、入力パターンを実数値ベクトルにより表現することができると共に、連言、選言、否定を含む任意のif−thenルールを自己増殖型ニューラルネットワークによって学習させることができる。また、学習させた知識を利用して多段の推論を行うことができる。このため、本発明によれば、パターンベースの推論をより適切に行うことができる。
【0079】
パターン情報ベースの推論装置を将来の知能ロボット等へ応用する場合には、上述の機能に加えて追加学習、ノイズ耐性、及び推論結果の重複を防ぐ仕組みが必要となる。まず、システムが学習すべきif−thenルールは人間が事前に全て用意して与えることはできないため、システムは知識を追加的に学習可能である必要がある。その際、新たな知識を学習することによって既存の知識が破壊されることを防止すると共に、知識量の爆発を防ぐために既存の知識と同じか又は極めて似ている知識を排除可能でなければならない。
【0080】
非特許文献2に開示された技術では、既存の知識の再学習による知識量の爆発を防ぐことはできるものの、新たな知識の学習によって既存の知識の破壊が生じてしまう。非特許文献2に開示された実験によれば、既学習知識の約2倍を追加学習した場合には、20%弱の推論を失敗してしまう。一方、推論装置1では、知識の追加に伴って自律的にノードが増えていく自己増殖型ニューラルネットワークを用いるため、入力されるif−thenルールに対応するノードについて、事前にノードの数を決定することなく、逐次的に入力される新たなif−thenルールを既存の知識を壊すことなく追加学習することができる。
【0081】
また、実環境下においては、与えられるデータにはノイズが混入するものと考えられ、一定のノイズ耐性を持つことが必要となる。実環境におけるノイズとしては、元のデータに混入するノイズ、及び元のデータとは無相関なデータであるノイズデータという2種類が想定される。図12は、これら2種類のノイズを示す画像である。図12(a)は、入力データに対して混入するノイズデータを示す画像であり、非特許文献2に開示された技術についてもこのタイプのノイズに対しては耐性を有している。一方、図12(b)は、入力データとは無相関なノイズデータを示す画像であり、非特許文献2に開示された技術はこのタイプのノイズに対して耐性を有していない。推論装置1は、これら2種類のノイズに対して耐性を有していることから、ノイズに対してより優れた耐性を持つものであるといえる。
【0082】
汎化性能を利用し、獲得した知識と類似したデータを用いて推論が可能であっても、当然限界が存在する。このため、シンボルに落とせば単一のif−thenルールによって表現可能な知識であっても、パターン情報ベースでは複数のif−thenルールとして記憶することが必要となる。これは、パターン識別の教師付き学習において、汎化性能を備えた識別機であっても、あるラベルを持つパターンを複数用意してそれらを学習する必要があるということに対応している(教師無し学習では、ある分布に属するデータを複数用意して学習しなければならないということに対応する)。しかし、このことによって推論結果に重複が生じる可能性がある。例えば、推論装置が環境から{a→b|i,j=1,2,3・・・}といった複数のif−thenルールを学習したものと想定する。これら複数のif−thenルールを別々の知識であるものと推論装置が認識した場合には、ファクトとしてaを入力すると、推論結果としてb,b,b,・・・を出力する。出力されたb,b,b,・・・が、本来別の推論結果として解釈されるべきものであるならば問題はないが、そうでなければ、推論結果の重複を避けて一つだけ推論結果を出力することが好ましい。そこで、推論装置1は、if−thenルールをオンラインでクラスタリングすることができるため、知識を重複して学習することを回避することができる。また、if−thenルールのクラスタリングは推論結果の重複や計算量の爆発を防ぐために重要であるだけでなく、システムの内部的なシンボル獲得につながる可能性もある。
【0083】
尚、本実施の形態1においては、推論装置1が学習処理及び推論処理を行うものとして説明したが、本発明はこれに限定されるものではない。例えば、学習部40を、自己増殖型ニューラルネットワークを用いて学習を行う学習装置としても使用することができる。また、推論部50を、自己増殖型ニューラルネットワークを用いて推論を行う推論装置としても使用することができる。
【0084】
尚、本実施の形態1において示した推論はこれに限定されず、推論装置1は実環境における他の推論についても適用することができる。例えば、実環境において動作する知能ロボットに推論装置1を適用することができる。推論装置1を適用することにより、非定常かつノイズ在りの環境下において、環境から自律的にパターン情報ベースのif−thenルールルールを学習し、その知識をもとにした推論によってタスクを解決する知能ロボットを実現することができる。
【0085】
その他の発明の実施の形態.
以上、本発明をその実施の形態により説明したが、本発明はその趣旨の範囲において種々の変形が可能である。例えば学習部40として使用する自己増殖型ニューラルネットワークは、SOINNに基づくadjusted SOINN、又はEnhanced−SOINN(以下E−SOINNという。)を使用しても良い。
【0086】
図13を用いてadjusted SOINNの処理を説明する。adjusted SOINNは、SOINNと比べて、学習に際して事前に指定するパラメタの数を少なくすることができ、より簡単に学習を実施することができる。
【0087】
S501:入力情報取得手段は、ランダムに2つの入力パターンを取得し、ノード集合Aをそれらに対応する2つのノードのみを含む集合として初期化し、その結果を一時記憶部に格納する。また、辺集合C⊂A×Aを空集合として初期化し、その結果を一時記憶部に格納する。
S502:入力情報取得手段は、入力ベクトルとしての新しい入力パターンξを入力し、その結果を一時記憶部に格納する。
S503:勝者ノード探索手段は、一時記憶部に格納された入力パターン及びノードについて、入力パターンξに最も近い重みベクトルを持つ第1勝者ノードa1及び2番目に近い重みベクトルを持つ第2勝者ノードa2を探索し、その結果を一時記憶部に格納する。
【0088】
S504:類似度閾値判定手段は、一時記憶部に格納された入力パターン、ノード、ノードの類似度閾値について、入力パターンξと第1勝者ノードa1間の距離が第1勝者ノードa1の類似度閾値T1より大きいか否か、及び、入力パターンξと第2勝者ノードa2間の距離が第2勝者ノードa2の類似度閾値T2より大きいか否かを判定し、その結果を一時記憶部に格納する。ここで、一時記憶部に格納された第1勝者ノードa1の類似度閾値T1及び第2勝者ノードa2の類似度閾値T2は、SOINNと同様にして算出され、その結果が一時記憶部に格納される。
S505:一時記憶部に格納されたS504における判定の結果、入力パターンξと第1勝者ノードa1間の距離が第1勝者ノードa1の類似度閾値T1より大きい、又は、入力パターンξと第2勝者ノードa2間の距離が第2勝者ノードa2の類似度閾値T2より大きい場合には、ノード挿入手段は、一時記憶部に格納された入力パターン及びノードについて、入力パターンξを新たなノードiとして、入力パターンξと同じ位置に挿入し、その結果を一時記憶部に格納する。
【0089】
S506:一方、一時記憶部に格納されたS504における判定の結果、入力パターンξと第1勝者ノードa1間の距離が第1勝者ノードa1の類似度閾値T1以下であり、かつ、入力パターンξと第2勝者ノードa2間の距離が第2勝者ノードa2の類似度閾値T2以下である場合には、辺接続判定手段は、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノードa1及び第2勝者ノードa2間に辺を接続するか否かを判定し、その結果を一時記憶部に格納する。
【0090】
S507:一時記憶部に格納されたS506における判定の結果、第1勝者ノードa1及び第2勝者ノードa2間に辺を生成して接続する場合には、辺接続手段は、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を接続し、その結果を一時記憶部に格納する。そして、adjusted SOINNは、一時記憶部に格納された辺及び辺の年齢について、新しく生成された辺、及び、既にノード間に辺が生成されていた場合にはその辺について、辺の年齢を0に設定しその結果を一時記憶部に格納し、第1勝者ノードa1と直接的に接続される辺の年齢をインクリメントし(1増やす)、その結果を一時記憶部に格納する。一方、一時記憶部に格納されたS506における判定の結果、第1勝者ノードa1及び第2勝者ノードa2間に辺を接続しない場合には、S508へと処理を進めるが、既にノード間に辺が生成されていた場合には、辺削除手段は、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノードa1及び第2勝者ノードa2間の辺を削除し、その結果を一時記憶部に格納する。
次いで、adjusted SOINNは、一時記憶部に格納された第1勝者ノードa1が第1勝者ノードとなった累積回数Ma1をインクリメントし(1増やす)、その結果を一時記憶部に格納する。
【0091】
S508:重みベクトル更新手段は、一時記憶部に格納されたノード及びノードの重みベクトルについて、第1勝者ノードa1の重みベクトル及び第1勝者ノードa1の隣接ノードの重みベクトルをそれぞれ入力パターンξに更に近づけるように更新し、その結果を一時記憶部に格納する。ここで、重みベクトルの更新量の算出には、一時記憶部に格納されるMa1をtとして使用する。
S509:adjusted SOINNは、一時記憶部に格納された辺について、予め設定され一時記憶部に格納された閾値ageを超えた年齢を持つ辺を削除し、その結果を一時記憶部に格納する。尚、ageはノイズなどの影響により誤って生成される辺を削除するために使用する。ageに小さな値を設定することにより、辺が削除されやすくなりノイズによる影響を防ぐことができるものの、値を極端に小さくすると、頻繁に辺が削除されるようになり学習結果が不安定になる。一方、極端に大きな値をageに設定すると、ノイズの影響で生成された辺を適切に取り除くことができない。これらを考慮して、パラメタageは実験により予め算出し一時記憶部に格納される。
【0092】
S510:adjusted SOINNは、一時記憶部に格納された与えられた入力パターンξの総数について、与えられた入力パターンξの総数が予め設定され一時記憶部に格納されたλの倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力パターンの総数がλの倍数でない場合にはS502へと戻り、次の入力パターンξを処理する。一方、入力パターンξの総数がλの倍数となった場合には以下の処理を実行する。尚、λはノイズと見なされるノードを削除する周期である。λに小さな値を設定することにより、頻繁にノイズ処理を実施することができるものの、値を極端に小さくすると、実際にはノイズではないノードを誤って削除してしまう。一方、極端に大きな値をλに設定すると、ノイズの影響で生成されたノードを適切に取り除くことができない。これらを考慮して、パラメタλは実験により予め算出し一時記憶部に格納される。
S511:ノイズノード削除手段は、一時記憶部に格納されたノードについて、ノイズノードと見なしたノードを削除し、その結果を一時記憶部に格納する。
【0093】
S512:adjusted SOINNは、一時記憶部に格納された与えられた入力パターンξの総数について、与えられた入力パターンξの総数が予め設定されたLTの倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力パターンの総数がLTの倍数でない場合にはS502へと戻り、次の入力パターンξを処理する。一方、入力パターンξの総数がLTの倍数となった場合には以下の処理を実行する。
S513:adjusted SOINNは、一時記憶部に格納されたノードをプロトタイプとして出力する。以上の処理を終了した後、adjusted SOINNによる学習を停止する。
【0094】
次に、Enhanced−SOINN(以下E−SOINNという。)について説明する。E−SOINNはSOINNに比べて、入力パターンの分布に高密度の重なりのあるクラスを分離することができる。そして、分布の重なり領域の検出処理においては、平滑化の手法を導入したことより、SOINNに比べてより安定的に動作することができる。さらに、1層構造であっても効率的にノイズノードを削除することができる。さらにまた、SOINNに比べて、より少ないパラメタで動作するため、処理をより容易に実行することができる。
【0095】
以下にE−SOINNを簡単に説明する。図14は、E−SOINNによる学習処理の処理概要を示すフローチャートである。尚、上述したadjusted SOINNと同様の処理については説明を省略する。まず、図14に示すS601乃至S605については、図13に示したadjusted SOINNと同様の処理を実施する。従って、以下では図14に示すS606からの処理について説明する。
【0096】
S606:辺接続判定手段は、一時記憶部に格納されたノード、ノード密度、ノード間の辺について、第1勝者ノードa1及び第2勝者ノードa2のノード密度に基づいて、第1勝者ノードa1及び第2勝者ノードa2間に辺を接続するか否かを判定し、その結果を一時記憶部に格納する。
【0097】
S607:一時記憶部に格納されたS606における判定の結果、第1勝者ノードa1及び第2勝者ノードa2間に辺を生成して接続する場合には、辺接続手段は、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を接続し、その結果を一時記憶部に格納する。そして、E−SOINNは、一時記憶部に格納された辺及び辺の年齢について、新しく生成された辺、及び、既にノード間に辺が生成されていた場合にはその辺について、辺の年齢を0に設定しその結果を一時記憶部に格納し、第1勝者ノードa1と直接的に接続される辺の年齢をインクリメントし(1増やす)、その結果を一時記憶部に格納する。一方、一時記憶部に格納されたS606における判定の結果、第1勝者ノードa1及び第2勝者ノードa2間に辺を接続しない場合には、S608へと処理を進めるが、既にノード間に辺が生成されていた場合には、辺削除手段は、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノードa1及び第2勝者ノードa2間の辺を削除し、その結果を一時記憶部に格納する。
次いで、一時記憶部に格納されたノード及びノード密度のポイント値について、第1勝者ノードa1について、ノード密度算出手段は、一時記憶部に格納された第1勝者ノードa1のノード密度のポイント値を算出しその結果を一時記憶部に格納し、算出され一時記憶部に格納されたノード密度のポイント値を以前までに算出され一時記憶部に格納されたポイント値に加算することで、ノード密度ポイントとして累積し、その結果を一時記憶部に格納する。
次いで、E−SOINNは、一時記憶部に格納された第1勝者ノードa1が第1勝者ノードとなった累積回数Ma1をインクリメントし(1増やす)、その結果を一時記憶部に格納する。
【0098】
S608:重みベクトル更新手段は、一時記憶部に格納されたノード及びノードの重みベクトルについて、第1勝者ノードa1の重みベクトル及び第1勝者ノードa1の隣接ノードの重みベクトルをそれぞれ入力ベクトルξに更に近づけるように更新し、その結果を一時記憶部に格納する。尚、E−SOINNにおいては、追加学習に対応するため、入力ベクトルの入力回数tに代えて、一時記憶部に格納される第1勝者ノードa1が第1勝者ノードとなった累積回数Ma1を用いる。
S609:E−SOINNは、一時記憶部に格納された辺について、予め設定され一時記憶部に格納された閾値ageを超えた年齢を持つ辺を削除し、その結果を一時記憶部に格納する。
【0099】
S610:E−SOINNは、一時記憶部に格納された与えられた入力ベクトルξの総数について、与えられた入力ベクトルξの総数が予め設定され一時記憶部に格納されたλの倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力ベクトルの総数がλの倍数でない場合にはS602へと戻り、次の入力ベクトルξを処理する。一方、入力ベクトルξの総数がλの倍数となった場合には以下の処理を実行する。
【0100】
S611:分布重なり領域検出手段は、一時記憶部に格納されたサブクラスタ及び分布の重なり領域について、上述のS301乃至S305において示したようにしてサブクラスタの境界である分布の重なり領域を検出し、その結果を一時記憶部に格納する。
S612:ノード密度算出手段は、一時記憶部に格納されて累積されたノード密度ポイントを単位入力数あたりの割合として算出しその結果を一時記憶部に格納し、単位入力数あたりのノードのノード密度を算出し、その結果を一時記憶部に格納する。
S613:ノイズノード削除手段は、一時記憶部に格納されたノードについて、ノイズノードと見なしたノードを削除し、その結果を一時記憶部に格納する。尚、S613においてノイズノード削除手段が使用するパラメタc1及びc2はノードをノイズと見なすか否かの判定に使用する。通常、隣接ノード数が2であるノードはノイズではないことが多いため、c1は0に近い値を使用する。また、隣接ノード数が1であるノードはノイズであることが多いため、c2は1に近い値を使用するものとし、これらのパラメタは予め設定され一時記憶部に格納される。
【0101】
S614:E−SOINNは、一時記憶部に格納された与えられた入力ベクトルξの総数について、与えられた入力ベクトルξの総数が予め設定され一時記憶部に格納されたLTの倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力ベクトルの総数がLTの倍数でない場合にはS602へと戻り、次の入力ベクトルξを処理する。
一方、入力ベクトルξの総数がLTの倍数となった場合には、一時記憶部に格納されたノードをプロトタイプとして出力する。以上の処理を終了した後、学習を停止する。
【0102】
ノード密度算出手段は、一時記憶部に格納されたノード及びノード密度について、注目するノードについて、その隣接ノード間の平均距離に基づいて、注目するノードのノード密度を算出し、その結果を一時記憶部に格納する。具体的には、ノード密度ポイント算出部は、例えば一時記憶部に格納される以下の式に基づいてノードiに与えられるノード密度のポイント値pを算出し、その結果を一時記憶部に格納する。尚、ノードiに与えられるポイント値pは、ノードiが第1勝者ノードとなった場合には一時記憶部に格納される以下の式に基づいて算出されるポイント値が与えられるが、ノードiが第1勝者ノードでない場合にはノードiにはポイントは与えられないものとする。
【数5】

ここで、eはノードiからその隣接ノードまでの平均距離を示し、一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。
【数6】

尚、mは一時記憶部に格納されたノードiの隣接ノードの個数を示し、Wは一時記憶部に格納されたノードiの重みベクトルを示す。
【0103】
ここで、隣接ノードへの平均距離が大きくなる場合には、ノードを含むその領域にはノードが少ないものと考えられ、逆に平均距離が小さくなる場合には、その領域にはノードが多いものと考えられる。従って、ノードの多い領域で第1勝者ノードとなった場合には高いポイントが与えられ、ノードの少ない領域で第1勝者ノードとなった場合には低いポイントが与えられるようにノードの密度のポイント値の算出方法を上述のように構成する。
【0104】
これにより、ノードを含むある程度の範囲の領域におけるノードの密集具合を推定することができるため、ノードの分布が高密度の領域に位置するノードであっても、ノードが第1勝者回数となった回数をノードの密度とするSOINNに比べて、入力ベクトルの入力分布密度により近似した密度となるノード密度ポイントを算出することができる。
【0105】
単位ノード密度ポイント算出部は、例えば一時記憶部に格納される以下の式に基づいてノードiの単位入力数あたりのノード密度densityを算出し、その結果を一時記憶部に格納する。
【数7】

ここで、連続して与えられる入力ベクトルの入力回数を予め設定され一時記憶部に格納される一定の入力回数λごとの区間に分け、各区間においてノードiに与えられたポイントについてその合計を累積ポイントsと定める。尚、入力ベクトルの総入力回数を予め設定され一時記憶部に格納されるLTとする場合に、LT/λを区間の総数nとしその結果を一時記憶部に格納し、nのうち、ノードに与えられたポイントの合計が0以上であった区間の数をNとして算出し、その結果を一時記憶部に格納する(Nとnは必ずしも同じとならない点に注意する)。
【0106】
累積ポイントsは、例えば一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。
【数8】

ここで、p(j,k)はj番目の区間におけるk番目の入力によってノードiに与えられたポイントを示し、上述のノード密度ポイント算出部により算出され、その結果を一時記憶部に格納する。
【0107】
このように、単位ノード密度ポイント算出部は、一時記憶部に格納されたノードiの密度densityを累積ポイントsの平均として算出し、その結果を一時記憶部に格納する。
【0108】
尚、E−SOINNにおいては追加学習に対応するため、nに代えてNを用いる。これは、追加学習において、以前の学習で生成されたノードにはポイントが与えられないことが多く、nを用いて密度を算出すると、以前学習したノードの密度が次第に低くなってしまうという問題を回避するためである。即ち、nに代えてNを用いてノード密度を算出することで、追加学習を長時間行った場合であっても、追加されるデータが以前学習したノードの近くに入力されない限りは、そのノードの密度を変化させずに保持することができる。これにより、追加学習を長時間実施する場合であっても、ノードのノード密度が相対的に小さくなってしまうことを防ぐことができ、SOINNを含む従来の手法に比べて、入力ベクトルの入力分布密度により近似したノード密度を変化させずに保持して算出することができる。
【0109】
分布重なり領域検出手段は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードの密度について、辺によって接続されるノードの集合であるクラスタを、ノード密度算出手段によって算出されるノード密度に基づいてクラスタの部分集合であるサブクラスタに分割し、その結果を一時記憶部に格納し、サブクラスタの境界である分布の重なり領域を検出し、その結果を一時記憶部に格納する。
【0110】
さらに、分布重なり領域検出手段は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードの密度について、ノード密度算出手段により算出されたノード密度に基づいて、ノード密度が局所的に最大であるノードを探索するノード探索部と、探索したノードに対して、既に他のノードに付与済みのラベルとは異なるラベルを付与する第1のラベル付与部と、第1のラベル付与部によりラベルが付与されなかったノードのうち、そのノードと辺によって接続されるノードについて、第1のラベル付与部によりラベルが付与されたノードのラベルと同じラベルを付与する第2のラベル付与部と、それぞれ異なるラベルが付与されたノード間に辺によって直接的に接続がある場合に、その辺によって接続されるノードの集合であるクラスタをクラスタの部分集合であるサブクラスタに分割するクラスタ分割部と、注目するノード及びその隣接ノードがそれぞれ異なるサブクラスタに属する場合に、その注目するノード及びその隣接ノードを含む領域を、サブクラスタの境界である分布の重なり領域として検出する分布重なり領域検出部を有する。具体的には、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードの密度について、例えば以下のようにしてサブクラスタの境界である分布の重なり領域を検出し、その結果を一時記憶部に格納する。
【0111】
S701:ノード探索部は、一時記憶部に格納されたノード及びノードの密度について、ノード密度算出手段により算出されたノード密度に基づいて、ノード密度が局所的に最大であるノードを探索し、その結果を一時記憶部に格納する。
S702:第1のラベル付与部は、一時記憶部に格納されたノード、及びノードのラベルについて、S701において探索したノードに対して、既に他のノードに付与済みのラベルとは異なるラベルを付与し、その結果を一時記憶部に格納する。
S703:第2のラベル付与部は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードのラベルについて、S702において第1のラベル付与部によりラベルが付与されなかったノードについて、第1のラベル付与部にラベルが付与されたノードと辺によって接続されるノードについて、第1のラベル付与部によりラベルが付与されたノードのラベルと同じラベルを付与し、その結果を一時記憶部に格納する。即ち、密度が局所的に最大の隣接ノードと同じラベルを付与する。
S704:クラスタ分割部は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードのラベルについて、一時記憶部に格納された辺によって接続されるノードの集合であるクラスタを、同じラベルが付与されたノードからなるクラスタの部分集合であるサブクラスタに分割し、その結果を一時記憶部に格納する。
S705:分布重なり領域検出部は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードのラベルについて、注目するノードとその隣接ノードが異なるサブクラスタにそれぞれ属する場合に、その注目するノード及びその隣接ノードを含む領域を、サブクラスタの境界である分布の重なり領域として検出し、その結果を一時記憶部に格納する。
【0112】
辺接続判定手段は、一時記憶部に格納されたノード、ノード密度、及び分布重なり領域について、第1勝者ノード及び第2勝者ノードが分布重なり領域に位置するノードである場合に、第1勝者ノード及び第2勝者ノードのノード密度に基づいて第1勝者ノード及び第2勝者ノード間に辺を接続するか否かを判定し、その結果を一時記憶部に格納する。さらに辺接続判定手段は、一時記憶部に格納されたノード、ノード密度、ノードのサブクラスタについて、ノードが属しているサブクラスタを判定する所属サブクラスタ判定部と、ノードが属するサブクラスタの頂点の密度及びノードの密度に基づいて、第1勝者ノード及び第2勝者ノード間に辺を接続するか否かを判定する辺接続判定部を有する。
【0113】
辺接続手段は、一時記憶部に格納された辺接続判定手段の判定結果に基づいて、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を接続し、その結果を一時記憶部に格納する。辺削除手段は、一時記憶部に格納された辺接続判定手段の判定結果に基づいて、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノード及び第2勝者ノード間の辺を削除し、その結果を一時記憶部に格納する。具体的には、一時記憶部に格納されたノード、ノード密度、ノードのサブクラスタ、及びノード間の辺について、例えば以下のようにして辺接続判定手段は辺を接続するか否かを判定し、辺接続手段及び辺削除手段は辺の生成及び削除処理を実施し、その結果を一時記憶部に格納する。
【0114】
S801:所属サブクラスタ判定部は、一時記憶部に格納されたノード、ノードのサブクラスタについて、第1勝者ノード及び第2勝者ノードが属するサブクラスタをそれぞれ判定し、その結果を一時記憶部に格納する。
S802:一時記憶部に格納されたS801における判定の結果、第1勝者ノード及び第2勝者ノードがどのサブクラスタにも属していない場合、又は、第1勝者ノード及び第2勝者ノードが同じサブクラスタに属している場合には、辺接続手段は、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を生成することによりノード間を接続し、その結果を一時記憶部に格納する。
S803:一時記憶部に格納されたS801における判定の結果、第1勝者ノード及び第2勝者ノードが互いに異なるサブクラスタに属す場合には、辺接続判定部は、一時記憶部に格納されたノード、ノード密度、及びノード間の辺について、ノードが属するサブクラスタの頂点の密度及びノードの密度に基づいて、第1勝者ノード及び第2勝者ノード間に辺を接続するか否かを判定し、その結果を一時記憶部に格納する。
S804:一時記憶部に格納されたS803における辺接続判定部による判定の結果、辺を接続する必要がないと判定した場合には、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノード及び第2勝者ノード間を辺によって接続せず、既にノード間が辺によって接続されていた場合には、辺削除手段は、一時記憶部に格納されたノード及びノード間の辺について、一時記憶部に格納された第1勝者ノード及び第2勝者ノード間の辺を削除し、その結果を一時記憶部に格納する。
S805:一時記憶部に格納されたS803における辺接続判定部による判定の結果、辺を接続する必要があると判定した場合には、辺接続手段は、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を生成しノード間を接続する。
【0115】
ここで、辺接続判定部による判定処理について詳細に説明する。
まず、辺接続判定部は、一時記憶部に格納されたノード及びノード密度について、第1勝者ノードのノード密度densitywin及び第2勝者ノード密度densitysec−winのうち、最小のノード密度mを例えば一時記憶部に格納される以下の式に基いて算出し、その結果を一時記憶部に格納する。
【数9】

次に、一時記憶部に格納されたノード、ノードのノード密度、及びノードのサブクラスについて、第1勝者ノード及び第2勝者ノードがそれぞれ属するサブクラスタA及びサブクラスタBについて、サブクラスタAの頂点の密度Amax及びサブクラスタBの頂点の密度Bmaxを算出し、その結果を一時記憶部に格納する。尚、サブクラスタに含まれるノードのうち、ノード密度が最大であるノード密度をサブクラスタの頂点の密度とする。
【0116】
そして、一時記憶部に格納されたノードが属するサブクラスタの頂点の密度Amax及びBmax、及びノードの密度mについて、mがαmaxより小さく、かつ、mがαmaxより小さいか否かを判定し、その結果を一時記憶部に格納する。即ち、一時記憶部に格納される以下の不等式を満足するか否かを判定し、その結果を一時記憶部に格納する。
【数10】

【0117】
判定の結果、mがαmaxより小さく、かつ、mがαmaxより小さい場合には、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノード及び第2勝者ノード間には辺は不要であると判定し、その結果を一時記憶部に格納する。
一方、判定の結果、mがαmax以上、または、mがαmax以上である場合には、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺は必要であると判定し、その結果を一時記憶部に格納する。
【0118】
このように、第1勝者ノード及び第2勝者ノードの最小ノード密度mを、第1勝者ノード及び第2勝者ノードをそれぞれ含むサブクラスタの平均的なノード密度と比較することで、第1勝者ノード及び第2勝者ノードを含む領域におけるノード密度の凹凸の大きさを判定することができる。即ち、サブクラスタA及びサブクラスタBの間に存在する分布の谷間のノード密度mが、閾値αmax又はαmaxより大きな場合には、ノード密度の形状は小さな凹凸であると判定することができる。
【0119】
ここで、α及びαは一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。尚、αについてもαと同様にして算出することができるためここでは説明を省略する。
i) Amax/mean−1≦1の場合には、α=0.0とする。
ii) 1<Amax/mean−1≦2の場合には、α=0.5とする。
iii) 2<Amax/mean−1の場合には、α=1.0とする。
【0120】
max/meanの値が1以下となるi)の場合には、Amaxとmeanの値は同程度であり、密度の凹凸はノイズの影響によるものと判断する。そして、αの値を0.0とすることで、サブクラスタが統合されるようにする。また、Amax/meanの値が2を超えるiii)の場合には、Amaxはmeanに比べて十分大きく、明らかな密度の凹凸が存在するものと判断する。そして、αの値を1.0とすることで、サブクラスタが分離されるようにする。そして、Amax/meanの値が上述した場合以外となる i i)の場合には、αの値を0.5とすることで、密度の凹凸の大きさに応じてサブクラスタが統合又は分離されるようにする。尚、meanはサブクラスタAに属すノードiのノード密度densityの平均値を示し、NをサブクラスタAに属するノードの数として、一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。
【数11】

【0121】
このように、サブクラスタへの分離を行う際に、サブクラスタに含まれるノード密度の凹凸の程度を判定し、ある基準を満たした2つのサブクラスタを1つに統合することで、分布の重なり領域の検出におけるサブクラスタの分けすぎによる不安定化を防止することができる。例えば、ノイズや学習サンプルが少ないことが原因で、密度の分布に多くの細かい凹凸が形成されることがある。このような場合に、第1勝者ノード及び第2勝者ノードがサブクラスタA及びBの間にある分布の重なり領域に位置する場合に、ノード間の接続を行う際にある基準を満たした2つのサブクラスタを1つに統合することで、密度の分布に多くの細かい凹凸が含まれる場合であっても平滑化することができる。
【0122】
ノイズノード削除手段は、一時記憶部に格納されたノード、ノード密度、ノード間の辺、隣接ノードの個数について、注目するノードについて、ノード密度算出手段により算出されるノード密度及び注目するノードの隣接ノードの個数に基づいて、注目するノードを削除し、その結果を一時記憶部に格納する。
【0123】
さらにノイズノード削除手段は、一時記憶部に格納されたノード、ノード密度、ノード間の辺、隣接ノードの個数について、注目するノードのノード密度を所定の閾値と比較するノード密度比較部と、注目するノードの隣接ノードの個数を算出する隣接ノード数算出部と、注目するノードをノイズノードとみなして削除するノイズノード削除部を有する。具体的には、例えば以下のようにして一時記憶部に格納されたノード、ノード密度、ノード間の辺、隣接ノードの個数について、ノード密度及び注目するノードの隣接ノードの個数に基づいて、注目するノードを削除し、その結果を一時記憶部に格納する。
【0124】
ノイズノード削除手段は、一時記憶部に格納されたノード、ノード間の辺、隣接ノードの個数について、注目するノードiについて、隣接ノード数算出部によりその隣接ノードの個数を算出し、その結果を一時記憶部に格納する。そして、一時記憶部に格納された隣接ノードの個数に応じて、以下の処理を実施する。
【0125】
i) 一時記憶部に格納された隣接ノード数が2の場合、ノード密度比較部はノードiのノード密度densityを例えば一時記憶部に格納される以下の式に基づいて算出する閾値と比較し、その結果を一時記憶部に格納する。
【数12】

一時記憶部に格納された比較結果について、ノード密度densityが閾値より小さい場合には、ノイズノード削除部は、一時記憶部に格納されたノードについて、ノードを削除し、その結果を一時記憶部に格納する。
【0126】
ii) 一時記憶部に格納された隣接ノード数が1の場合、ノード密度比較部はノードiのノード密度densityを例えば一時記憶部に格納される以下の式に基づいて算出する閾値と比較し、その結果を一時記憶部に格納する。
【数13】

一時記憶部に格納された比較の結果について、ノード密度densityが閾値より小さい場合には、ノイズノード削除部は、一時記憶部に格納されたノードについて、ノードを削除し、その結果を一時記憶部に格納する。
【0127】
iii) 一時記憶部に格納された隣接ノード数について、隣接ノードを持たない場合、ノイズノード削除部は、一時記憶部に格納されたノードについて、ノードを削除し、その結果を一時記憶部に格納する。
【0128】
ここで、予め設定され一時記憶部に格納される所定のパラメタc1及びc2を調整することで、ノイズノード削除手段によるノイズノードの削除の振る舞いを調整することができる。
【0129】
本発明の目的は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは当然である。この場合、記録媒体から読み出されたプログラムコード自体が上述の実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0130】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているオペレーティングシステム(OS)などが実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も当然含まれる。
【0131】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も当然含まれる。本発明を上記記録媒体に適用する場合、その記録媒体には、上述したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【0132】
【図1】本発明を実施するための機能ブロックを示す図である。
【図2】本発明に係る学習部の構造を模式的に示す図である。
【図3】従来手法であるSOINNによる学習処理の処理概要を示すフローチャートである。
【図4】本実施形態に係る推論装置のシステム構成を示す図である。
【図5】推論装置による学習処理の処理概要を示すフローチャートである。
【図6】推論装置による推論処理の処理概要を示すフローチャートである。
【図7】推論装置による出力結果の一例を示す図である。
【図8】学習に用いたパターン情報としての実画像を示す図である。
【図9】推論装置による推論結果を示す表である。
【図10】推論結果を木構造により表現した図である。
【図11】ノイズ画像が入力された場合の正解率を示す図である。
【図12】データに乗ったノイズ及びデータと独立なノイズを示す図である。
【図13】従来手法であるadjusted SOINNによる学習処理の処理概要を示すフローチャートである。
【図14】従来手法であるE―SOINNによる学習処理の処理概要を示すフローチャートである。
【符号の説明】
【0133】
1 推論装置
60 コンピュータ
61 CPU
62 ROM
63 RAM
64 バス
65 入出力インターフェイス
66 入力部
67 出力部
68 記憶部
69 通信部
70 ドライブ
701 磁気ディスク
702 光ディスク
703 フレキシブルディスク
704 半導体メモリ
10 分解部
20 短期記憶部
30 長期記憶部
40 学習部
41 クラス間ノード挿入部
42 辺削除部
43 ノード削除部
50 推論部
51 子ノード追加部

【特許請求の範囲】
【請求項1】
自己増殖型ニューラルネットワークを用いて、if−thenルールを入力パターンとして学習する学習部と、
前記学習部による学習結果を利用して推論を行う推論部を備え、
前記自己増殖型ニューラルネットワークは、多次元ベクトルで記述される前記入力パターンをニューラルネットワークに順次入力し、当該入力パターン、及び当該ニューラルネットワークに配置される多次元ベクトルで記述されるノードに基づいて、ノードを自動的に増加させると共にノード間を辺により接続してゆく
ことを特徴とする推論装置。
【請求項2】
前記自己増殖型ニューラルネットワークは、
入力される前記入力パターンに最も近い重みベクトルを持つノードと2番目に近い重みベクトルを持つノードの間に辺を接続したとき、
注目するノードと他のノード間の距離に基づいて算出される当該注目するノードの類似度閾値、及び前記入力パターンと当該注目するノードとの間の距離に基づいて、前記入力パターンをノードとして挿入するクラス間ノード挿入部を有し、
前記学習部は、前記自己増殖型ニューラルネットワークを用いて、前記入力パターンをクラスタリングする
ことを特徴とする請求項1記載の推論装置。
【請求項3】
前記クラス間ノード挿入部は、
入力される前記入力パターンに最も近い重みベクトルを持つノードを第1勝者ノードとし、2番目に近い重みベクトルを持つノードを第2勝者ノードとし、当該第1勝者ノード及び当該第2勝者ノードの間に辺を接続したとき、
注目するノードについて、当該注目するノードと辺によって直接的に接続されるノードが存在する場合には、当該直接的に接続されるノードのうち当該注目するノードからの距離が最大であるノード間の距離を前記類似度閾値とし、当該注目するノードと辺によって直接的に接続されるノードが存在しない場合には、当該注目するノードからの距離が最小であるノード間の距離を前記類似度閾値として算出する類似度閾値算出部と、
前記入力パターンと前記第1勝者ノード間の距離が当該第1勝者ノードの類似度閾値より大きいか否か、及び、前記入力パターンと前記第2勝者ノード間の距離が当該第2勝者ノードの類似度閾値より大きいか否かを判定する類似度閾値判定部と、
類似度閾値判定結果に基づいて、前記入力パターンをノードとして当該入力パターンと同じ位置に挿入するノード挿入部とを有する
ことを特徴とする請求項2記載の推論装置。
【請求項4】
前記自己増殖型ニューラルネットワークは、
前記辺に対応付けられる辺の年齢に基づいて、当該辺を削除する辺削除部と、
注目するノードについて、当該注目するノードに直接的に接続される辺の本数に基づいて、当該注目するノードを削除するノード削除部とを更に有する
ことを特徴とする請求項1記載の推論装置。
【請求項5】
前記推論部は、前記学習部により学習され長期記憶部に記憶されたノードとしてのif−thenルールと推論に利用する事実データであるファクトとの間の距離に基づいて推論を行う
ことを特徴とする請求項1記載の推論装置。
【請求項6】
前記推論部は、前記学習部により学習され長期記憶部に記憶された前記if―thenルールの条件部と前記ファクトとの間の距離が所定の閾値より小さい場合に、前記if―thenルールの結論部を出力する
ことを特徴とする請求項5記載の推論装置。
【請求項7】
前記推論部は、
前記ファクトを根としたときに、当該ファクトとの間の距離が所定の閾値より小さな前記if―thenルールの結論部を当該ファクトの子ノードとして追加する第1の子ノード追加部と、
前記第1の子ノード追加部により追加された前記結論部をファクトとして、当該ファクトとの間の距離が所定の閾値より小さな前記if―thenルールの結論部を当該ファクトの子ノードとして追加する第2の子ノード追加部とを有する
ことを特徴とする請求項6記載の推論装置。
【請求項8】
前記学習部により学習され長期記憶部に記憶された前記if―thenルールとしてのノードについて、注目する前記if―thenルールの一部又は全部と、他の注目する前記if―thenルールの一部又は全部との間の距離を算出する
ことを特徴とする請求項1乃至7いずれか1項記載の推論装置。
【請求項9】
任意のif−thenルールについて、当該if−thenルールの条件部及び結論部をそれぞれ選言標準形に変形し、当該変形した前記条件部及び前記結論部の選言肢の組合せからなるif−thenルールへと分解する分解部を更に有し、
前記分解部は、分解された前記if−thenルールを前記自己増殖型ニューラルネットワークへと入力する
ことを特徴とする請求項1記載の推論装置。
【請求項10】
前記自己増殖型ニューラルネットワークは1層構造である
ことを特徴とする請求項1記載の推論装置。
【請求項11】
多次元ベクトルで記述される入力パターンをニューラルネットワークに順次入力し、当該入力パターン、及び当該ニューラルネットワークに配置される多次元ベクトルで記述されるノードに基づいて、ノードを自動的に増加させると共にノード間を辺により接続してゆく自己増殖型ニューラルネットワーク用いて、if−thenルールを前記入力パターンとして学習する学習ステップと、
前記学習ステップによる学習結果を利用して推論を行う推論ステップと
を有する推論方法。
【請求項12】
前記自己増殖型ニューラルネットワークは、
入力される前記入力パターンに最も近い重みベクトルを持つノードと2番目に近い重みベクトルを持つノードの間に辺を接続したとき、
注目するノードと他のノード間の距離に基づいて算出される当該注目するノードの類似度閾値、及び前記入力パターンと当該注目するノードとの間の距離に基づいて、前記入力パターンをノードとして挿入するクラス間ノード挿入ステップを有し、
前記学習ステップは、前記自己増殖型ニューラルネットワークを用いて、前記入力パターンをクラスタリングする
ことを特徴とする請求項11記載の推論方法。
【請求項13】
前記クラス間ノード挿入ステップは、
入力される前記入力パターンに最も近い重みベクトルを持つノードを第1勝者ノードとし、2番目に近い重みベクトルを持つノードを第2勝者ノードとし、当該第1勝者ノード及び当該第2勝者ノードの間に辺を接続したとき、
注目するノードについて、当該注目するノードと辺によって直接的に接続されるノードが存在する場合には、当該直接的に接続されるノードのうち当該注目するノードからの距離が最大であるノード間の距離を前記類似度閾値とし、当該注目するノードと辺によって直接的に接続されるノードが存在しない場合には、当該注目するノードからの距離が最小であるノード間の距離を前記類似度閾値として算出する類似度閾値算出ステップと、
前記入力パターンと前記第1勝者ノード間の距離が当該第1勝者ノードの類似度閾値より大きいか否か、及び、前記入力パターンと前記第2勝者ノード間の距離が当該第2勝者ノードの類似度閾値より大きいか否かを判定する類似度閾値判定ステップと、
類似度閾値判定結果に基づいて、前記入力パターンをノードとして当該入力パターンと同じ位置に挿入するノード挿入ステップとを有する
ことを特徴とする請求項12記載の推論方法。
【請求項14】
前記自己増殖型ニューラルネットワークは、
前記辺に対応付けられる辺の年齢に基づいて、当該辺を削除する辺削除ステップと、
注目するノードについて、当該注目するノードに直接的に接続される辺の本数に基づいて、当該注目するノードを削除するノード削除ステップとを更に有する
ことを特徴とする請求項11記載の推論方法。
【請求項15】
前記推論ステップは、前記学習ステップにより学習され長期記憶部に記憶されたノードとしてのif−thenルールと推論に利用する事実データであるファクトとの間の距離に基づいて推論を行う
ことを特徴とする請求項11記載の推論方法。
【請求項16】
前記推論ステップは、前記学習ステップにより学習され長期記憶部に記憶された前記if―thenルールの条件部と前記ファクトとの間の距離が所定の閾値より小さい場合に、前記if―thenルールの結論部を出力する
ことを特徴とする請求項15記載の推論方法。
【請求項17】
前記推論ステップは、
前記ファクトを根としたときに、当該ファクトとの間の距離が所定の閾値より小さな前記if―thenルールの結論部を当該ファクトの子ノードとして追加する第1の子ノード追加ステップと、
前記第1の子ノード追加ステップにより追加された前記結論部をファクトとして、当該ファクトとの間の距離が所定の閾値より小さな前記if―thenルールの結論部を当該ファクトの子ノードとして追加する第2の子ノード追加ステップとを有する
ことを特徴とする請求項16記載の推論方法。
【請求項18】
前記学習ステップにより学習され長期記憶部に記憶された前記if−thenルールとしてのノードについて、注目する前記if−thenルールの一部又は全部と、他の注目する前記if−thenルールの一部又は全部との間の距離を算出する
ことを特徴とする請求項11乃至17いずれか1項記載の推論方法。
【請求項19】
任意のif−thenルールについて、当該if−thenルールの条件部及び結論部をそれぞれ選言標準形に変形し、当該変形した前記条件部及び前記結論部の選言肢の組合せからなるif−thenルールへと分解する分解ステップを更に有し、
前記分解ステップは、分解された前記if−thenルールを前記自己増殖型ニューラルネットワークへと入力する
ことを特徴とする請求項11記載の推論方法。
【請求項20】
前記自己増殖型ニューラルネットワークは1層構造である
ことを特徴とする請求項11記載の推論方法。
【請求項21】
請求項11乃至20いずれか1項記載の推論方法による処理をコンピュータに実行させることを特徴とするプログラム。

【図1】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図9】
image rotate

【図13】
image rotate

【図14】
image rotate

【図2】
image rotate

【図8】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2008−305129(P2008−305129A)
【公開日】平成20年12月18日(2008.12.18)
【国際特許分類】
【出願番号】特願2007−151252(P2007−151252)
【出願日】平成19年6月7日(2007.6.7)
【出願人】(304021417)国立大学法人東京工業大学 (1,821)