(57)【要約】【課題】高密度の分布の重なりを持つクラスを分離できる情報処理装置、情報処理方法、及びプログラムを提供すること。【解決手段】本発明に係る情報処理装置は、注目するノード及びその隣接ノード間の平均距離に基づいて、注目するノードのノード密度を算出するノード密度算出手段２７と、辺によって接続されるノードの集合であるクラスタを、ノード密度算出手段２７によって算出されるノード密度に基づいてサブクラスタに分割し、分布の重なり領域を検出する分布重なり領域検出手段２８と、勝者ノードが分布重なり領域に位置するノードである場合に、勝者ノードのノード密度に基づいて勝者ノード間に辺を接続するか否かを判定する辺接続判定手段２９と、判定結果に基づいて、勝者ノード間に辺を接続する辺接続手段３０と、判定結果に基づいて、勝者ノード間の辺を削除する辺削除手段３１とを備えるものである。【選択図】図５
2008217246.tif 000002
【特許請求の範囲】
【請求項１】
多次元ベクトルで記述されるノードが配置される少なくとも１層以上の構造を有し、
任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理装置において、
当該入力される入力ベクトルに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとし、当該第１勝者ノード及び当該第２勝者ノードの間に辺を接続したとき、
注目するノード及び当該注目するノードと辺によって直接的に接続されるノード間の平均距離に基づいて、当該注目するノードのノード密度を算出するノード密度算出手段と、
辺によって接続されるノードの集合であるクラスタを、前記ノード密度算出手段によって算出されるノード密度に基づいてクラスタの部分集合であるサブクラスタに分割し、当該サブクラスタの境界である分布の重なり領域を検出する分布重なり領域検出手段と、
前記第１勝者ノード及び前記第２勝者ノードが前記分布重なり領域に位置するノードである場合に、当該第１勝者ノード及び当該第２勝者ノードのノード密度に基づいて当該第１勝者ノード及び当該第２勝者ノード間に辺を接続するか否かを判定する辺接続判定手段と、
前記判定結果に基づいて、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続する辺接続手段と、
前記判定結果に基づいて、前記第１勝者ノード及び前記第２勝者ノード間の辺を削除する辺削除手段を備える
ことを特徴とする情報処理装置。
【請求項２】
多次元ベクトルで記述されるノードが配置される少なくとも１層以上の構造を有し、
任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理装置において、
当該入力される入力ベクトルに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとし、当該第１勝者ノード及び当該第２勝者ノードの間に辺を接続したとき、
注目するノード及び当該注目するノードと辺によって直接的に接続されるノード間の平均距離に基づいて、当該注目するノードのノード密度を算出するノード密度算出手段と、
注目するノードについて、前記ノード密度算出手段により算出されるノード密度及び当該注目するノードと辺によって直接的に接続されるノードの個数に基づいて、当該注目するノードを削除するノイズノード削除手段を備える
ことを特徴とする情報処理装置。
【請求項３】
前記第１勝者ノードに対応する重みベクトル及び当該第１勝者ノードと辺によって直接的に接続されるノードに対応する重みベクトルをそれぞれ前記入力ベクトルに更に近づけるように更新する重みベクトル更新手段を更に備える
ことを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
注目するノードについて、前記ノード密度算出手段により算出されるノード密度及び当該注目するノードと辺によって直接的に接続されるノードの個数に基づいて、当該注目するノードを削除するノイズノード削除手段を更に備える
ことを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記ノード密度算出手段は、
前記第１勝者ノード及び当該第１勝者ノードと辺によって直接的に接続されるノード間の平均距離に基づいて、当該第１勝者ノードのノード密度を単位入力数あたりの割合として算出する単位ノード密度算出部を有する
ことを特徴とする請求項１乃至４いずれか１項記載の情報処理装置。
【請求項６】
前記ノード密度算出手段は、
前記第１勝者ノード及び当該第１勝者ノードと辺によって直接的に接続されるノード間の平均距離に基づいて、当該第１勝者ノードのノード密度のポイント値を算出するノード密度ポイント算出部と、
前記入力ベクトルの入力数が所定の単位入力数となるまでノード密度ポイントを累積し、当該入力ベクトルの入力数が所定の単位入力数になった場合に、当該累積されたノード密度ポイントを単位入力数あたりの割合として算出し、単位入力数あたりのノードのノード密度を算出する単位ノード密度ポイント算出部とを有する
ことを特徴とする請求項１乃至４いずれか１項記載の情報処理装置。
【請求項７】
前記入力ベクトルをニューラルネットワークに入力し、当該入力される入力ベクトルに基づいて、該ニューラルネットワークに配置されるノードを自動的に増加させる自己増殖型ニューラルネットワークである
ことを特徴とする請求項１乃至６いずれか１項記載の情報処理装置。
【請求項８】
注目するノードについて、当該注目するノードと辺によって直接的に接続されるノードが存在する場合には、当該直接的に接続されるノードのうち当該注目するノードからの距離が最大であるノード間の距離を類似度閾値とし、当該注目するノードと辺によって直接的に接続されるノードが存在しない場合には、当該注目するノードからの距離が最小であるノード間の距離を類似度閾値として算出する類似度閾値算出手段と、
前記入力ベクトルと前記第１勝者ノード間の距離が当該第１勝者ノードの類似度閾値より大きいか否か、及び、前記入力ベクトルと前記第２勝者ノード間の距離が当該第２勝者ノードの類似度閾値より大きいか否かを判定する類似度閾値判定手段と、
類似度閾値判定結果に基づいて、前記入力ベクトルをノードとして当該入力ベクトルと同じ位置に挿入するノード挿入手段を更に備える
ことを特徴とする請求項７記載の情報処理装置。
【請求項９】
前記自己増殖型ニューラルネットワークは１層構造である
ことを特徴とする請求項７記載の情報処理装置。
【請求項１０】
前記分布重なり領域検出手段は、
前記ノード密度算出手段により算出されたノード密度に基づいて、ノード密度が局所的に最大であるノードを探索するノード探索部と、
当該探索したノードに対して、既に他のノードに付与済みのラベルとは異なるラベルを付与する第１のラベル付与部と、
前記第１のラベル付与部によりラベルが付与されなかったノードについて、前記第１のラベル付与部によりラベルが付与されたノードと辺によって接続されるノードについて、前記第１のラベル付与部によりラベルが付与されたノードのラベルと同じラベルを付与する第２のラベル付与部と、
辺によって接続されるノードの集合であるクラスタを、同じラベルが付与されたノードからなるクラスタの部分集合であるサブクラスタに分割するクラスタ分割部と、
注目するノード及び当該注目するノードと辺によって直接的に接続されるノードがそれぞれ異なるサブクラスタに属する場合に、当該注目するノード及び当該注目するノードと辺によって直接的に接続されるノードを含む領域を、サブクラスタの境界である分布の重なり領域として検出する分布重なり領域検出部とを有する
ことを特徴とする請求項１記載の情報処理装置。
【請求項１１】
多次元ベクトルで記述されるノードが配置される少なくとも１層以上の構造を有し、
任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理方法において、
当該入力される入力ベクトルに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとし、当該第１勝者ノード及び当該第２勝者ノードの間に辺を接続したとき、注目するノード及び当該注目するノードと辺によって直接的に接続されるノード間の平均距離に基づいて、当該注目するノードのノード密度を算出するノード密度算出ステップと、
辺によって接続されるノードの集合であるクラスタを、前記ノード密度算出ステップによって算出されるノード密度に基づいてクラスタの部分集合であるサブクラスタに分割し、当該サブクラスタの境界である分布の重なり領域を検出する分布重なり領域検出ステップと、
前記第１勝者ノード及び前記第２勝者ノードが前記分布重なり領域に位置するノードである場合に、当該第１勝者ノード及び当該第２勝者ノードのノード密度に基づいて当該第１勝者ノード及び当該第２勝者ノード間に辺を接続するか否かを判定する辺接続判定ステップと、
前記判定結果に基づいて、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続する辺接続ステップと、
前記判定結果に基づいて、前記第１勝者ノード及び前記第２勝者ノード間の辺を削除する辺削除ステップを備える
ことを特徴とする情報処理方法。
【請求項１２】
多次元ベクトルで記述されるノードが配置される少なくとも１層以上の構造を有し、
任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理方法において、
当該入力される入力ベクトルに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとし、当該第１勝者ノード及び当該第２勝者ノードの間に辺を接続したとき、注目するノード及び当該注目するノードと辺によって直接的に接続されるノード間の平均距離に基づいて、当該注目するノードのノード密度を算出するノード密度算出ステップと、
注目するノードについて、前記ノード密度算出ステップにより算出されるノード密度及び当該注目するノードと辺によって直接的に接続されるノードの個数に基づいて、当該注目するノードを削除するノイズノード削除ステップを備える
ことを特徴とする情報処理方法。
【請求項１３】
前記第１勝者ノードに対応する重みベクトル及び当該第１勝者ノードと辺によって直接的に接続されるノードに対応する重みベクトルをそれぞれ前記入力ベクトルに更に近づけるように更新する重みベクトル更新ステップを更に備える
ことを特徴とする請求項１１又は１２記載の情報処理方法。
【請求項１４】
注目するノードについて、前記ノード密度算出ステップにより算出されるノード密度及び当該注目するノードと辺によって直接的に接続されるノードの個数に基づいて、当該注目するノードを削除するノイズノード削除ステップを更に備える
ことを特徴とする請求項１１記載の情報処理方法。
【請求項１５】
前記ノード密度算出ステップは、
前記第１勝者ノード及び当該第１勝者ノードと辺によって直接的に接続されるノード間の平均距離に基づいて、当該第１勝者ノードのノード密度を単位入力数あたりの割合として算出する単位ノード密度算出ステップを有する
ことを特徴とする請求項１１乃至１４いずれか１項記載の情報処理方法。
【請求項１６】
前記ノード密度算出ステップは、
前記第１勝者ノード及び当該第１勝者ノードと辺によって直接的に接続されるノード間の平均距離に基づいて、当該第１勝者ノードのノード密度のポイント値を算出するノード密度ポイント算出ステップと、
前記入力ベクトルの入力数が所定の単位入力数となるまでノード密度ポイントを累積し、当該入力ベクトルの入力数が所定の単位入力数になった場合に、当該累積されたノード密度ポイントを単位入力数あたりの割合として算出し、単位入力数あたりのノードのノード密度を算出する単位ノード密度ポイント算出ステップとを有する
ことを特徴とする請求項１１乃至１４いずれか１項記載の情報処理方法。
【請求項１７】
前記入力ベクトルをニューラルネットワークに入力し、当該入力される入力ベクトルに基づいて、該ニューラルネットワークに配置されるノードを自動的に増加させる自己増殖型ニューラルネットワークである
ことを特徴とする請求項１１乃至１６いずれか１項記載の情報処理方法。
【請求項１８】
注目するノードについて、当該注目するノードと辺によって直接的に接続されるノードが存在する場合には、当該直接的に接続されるノードのうち当該注目するノードからの距離が最大であるノード間の距離を類似度閾値とし、当該注目するノードと辺によって直接的に接続されるノードが存在しない場合には、当該注目するノードからの距離が最小であるノード間の距離を類似度閾値として算出する類似度閾値算出ステップと、
前記入力ベクトルと前記第１勝者ノード間の距離が当該第１勝者ノードの類似度閾値より大きいか否か、及び、前記入力ベクトルと前記第２勝者ノード間の距離が当該第２勝者ノードの類似度閾値より大きいか否かを判定する類似度閾値判定ステップと、
類似度閾値判定結果に基づいて、前記入力ベクトルをノードとして当該入力ベクトルと同じ位置に挿入するノード挿入ステップを更に備える
ことを特徴とする請求項１７記載の情報処理方法。
【請求項１９】
前記自己増殖型ニューラルネットワークは１層構造である
ことを特徴とする請求項１７記載の情報処理方法。
【請求項２０】
前記分布重なり領域検出ステップは、
前記ノード密度算出ステップにより算出されたノード密度に基づいて、ノード密度が局所的に最大であるノードを探索するノード探索ステップと、
当該探索したノードに対して、既に他のノードに付与済みのラベルとは異なるラベルを付与する第１のラベル付与ステップと、
前記第１のラベル付与部によりラベルが付与されなかったノードについて、前記第１のラベル付与ステップによりラベルが付与されたノードと辺によって接続されるノードについて、前記第１のラベル付与ステップによりラベルが付与されたノードのラベルと同じラベルを付与する第２のラベル付与ステップと、
辺によって接続されるノードの集合であるクラスタを、同じラベルが付与されたノードからなるクラスタの部分集合であるサブクラスタに分割するクラスタ分割ステップと、
注目するノード及び当該注目するノードと辺によって直接的に接続されるノードがそれぞれ異なるサブクラスタに属する場合に、当該注目するノード及び当該注目するノードと辺によって直接的に接続されるノードを含む領域を、サブクラスタの境界である分布の重なり領域として検出する分布重なり領域検出ステップを有する
ことを特徴とする請求項１１記載の情報処理方法。
【請求項２１】
請求項１１乃至２０いずれか１項記載の情報処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
入力データを任意個のクラスタに分類するクラスタリングとして、競合型ニューラルネットワークを利用する手法が良く知られている。競合型ニューラルネットワークは機械学習分野における教師なし分類の代表的な手法である。
【０００３】
競合型ニューラルネットワークでは、入力層に学習データである入力ベクトルが与えられた場合に、競合層に配置される各ニューロンが持つ参照ベクトルと入力ベクトルとの距離を計算し、入力ベクトルに最も近い参照ベクトルを持つニューロン及びその近傍に位置する近傍ニューロンの参照ベクトルを入力ベクトルに近づくように更新することで学習が行われる。
逐次的に入力ベクトルを与えて学習を繰り返すことで、競合層には入力ベクトルの位相構造を反映した特徴マップが形成され、入力ベクトルの教師なしクラスタリングが行われる。
ここで、特徴マップとはニューロン群とそれらを結ぶ辺から構成されるネットワークを示す。
【０００４】
競合型ニューラルネットワークの代表的な手法であるコホネンの自己組織化マップは、ニューロンの数を事前に決定して特徴マップを形成するため、分類能力に限界がある。このため、学習中に学習すべきクラスが増加する追加学習への対応が難しい（非特許文献１参照）。
また、入力ベクトルが与えられる度に各ニューロンの参照ベクトルが更新されるため、過去に与えられた入力ベクトルに対応したニューロンの持つ参照ベクトルが徐々に破壊されてしまう。
【０００５】
一方、非特許文献２に開示された技術は、学習中に必要に応じてニューロンを増殖させることでこれらの問題に対応している。
以下、非特許文献２に開示された技術であるSelf-Organizing Incremental Neural Network（以下、ＳＯＩＮＮという。）による学習を簡単に説明する。
【０００６】
ＳＯＩＮＮは２層ネットワーク構造を有し、１層目及び２層目において同様の学習処理を実施する。ＳＯＩＮＮは、１層目の出力である学習結果を２層目への入力ベクトルとして利用する。
【０００７】
図１６は、従来技術であるＳＯＩＮＮによる学習処理を説明するためのフローチャートである。以下、図１６を用いてＳＯＩＮＮの処理を説明する。
Ｓ１０１：ＳＯＩＮＮに対して入力ベクトルを与える。
Ｓ１０２：与えられた入力ベクトルに最も近いノード(以下、第１勝者ノードという。)及び２番目に近いノード(以下、第２勝者ノードという。)を探索する。
Ｓ１０３：第１勝者ノード及び第２勝者ノードの類似度閾値に基づいて、入力ベクトルがこれら勝者ノードの少なくともいずれか一方と同一のクラスタに属すか否かを判定する。
ここで、ノードの類似度閾値はボロノイ領域の考えに基づいて算出する。学習過程において、ノードの位置は入力ベクトルの分布を近似するため次第に変化し、それに伴いボロノイ領域も変化する。即ち、類似度閾値もノードの位置変化に応じて適応的に変化してゆく。
【０００８】
Ｓ１０４：Ｓ１０３における判定の結果、入力ベクトルが勝者ノードと異なるクラスタに属す場合は、入力ベクトルと同じ位置にノードを挿入し、Ｓ１０１へと進み次の入力ベクトルを処理する。
尚、このときの挿入をクラス間挿入と呼ぶ。
Ｓ１０５：一方、入力ベクトルが勝者ノードと同一のクラスタに属す場合は、第１勝者ノード及び第２勝者ノード間に辺を生成し、ノード間を辺によって直接的に接続する。
Ｓ１０６：第１勝者ノード及び第１勝者ノードと辺によって直接的に接続しているノードの重みベクトルをそれぞれ更新する。
【０００９】
Ｓ１０７：Ｓ１０５において生成された辺は年齢を有しており、予め設定された閾値を超えた年齢を持つ辺を削除する。
入力ベクトルを逐次的に与えてゆくオンライン学習においては、ノードの位置が常に徐々に変化してゆくため、初期の学習で構成した隣接関係が以後の学習によって成立しない可能性がある。このため、一定期間を経ても更新されないような辺について、辺の年齢が高くなるように構成することにより、学習に不要な辺を削除する。
【００１０】
Ｓ１０８：入力ベクトルの入力総数が、予め設定されたλの倍数であるか否かを判定する。
判定の結果、入力ベクトルの入力総数がλの倍数でない場合には、Ｓ１０１へと戻り次の入力ベクトルを処理する。
一方、入力ベクトルの総数がλの倍数となった場合には以下の処理を実行する。
【００１１】
Ｓ１０９：局所累積誤差が最大であるノードを探索し、そのノード付近に新たなノードを挿入する。ノードの持つ平均誤差を示す誤差半径に基づいて、ノード挿入が成功であったか否かを判定する。
尚、このときの挿入をクラス内挿入と呼ぶ。
ここで、ノード及び入力ベクトル間の距離差をノードの持つ誤差として、入力ベクトルの入力に応じてノードの誤差を累積することにより局所累積誤差を算出する。誤差半径はノードの持つ誤差及びノードが第１勝者となった回数に基づいて算出する。
【００１２】
Ｓ１１０：クラス内挿入によるノード挿入が成功であると判定した場合には、クラス内挿入により挿入されたノード及び局所累積誤差が最大のノードを辺によって直接的に接続する。
一方、クラス内挿入によるノード挿入が失敗であると判定した場合には、クラス内挿入により挿入したノードを削除してＳ１１１へと進む。
【００１３】
Ｓ１１１：隣接ノード数及びノードが第１勝者となった回数に基づいて、ノイズノードを削除する。
ここで、隣接ノードとは、ノードと辺によって直接的に接続されるノードを示し、隣接ノードの個数が１以下であるノードを削除対象とする。また、第１勝者となった回数の累積回数を予め設定されたパラメタｃを使用して算出される閾値と比較し、第１勝者累積回数が閾値を下回るノードを削除対象とする。
【００１４】
Ｓ１１２：入力ベクトルの入力総数が予め設定されたＬＴの倍数であるか否かを判定する。
判定の結果、入力ベクトルの入力総数がＬＴの倍数でない場合には、Ｓ１０１へと戻り次の入力ベクトルを処理する。
一方、入力ベクトルの総数がＬＴの倍数となった場合には、以下の処理を実行する。
【００１５】
Ｓ１１３：１層目の学習を終了するか否かを判定する。
判定の結果、２層目の学習へと進む場合には、Ｓ１０１へと進み１層目の学習結果であるノードを２層目への入力ベクトルとして入力する。
ただし、追加学習を行う場合は、２層目に残っている以前の学習結果を消去した上で２層目の学習を開始する。
【００１６】
２層目への入力回数が予め設定された回数ＬＴの倍数となり２層目の学習を終了する場合には、ノードを異なるクラスに分類し、クラス数及び各クラスの代表的なプロトタイプベクトルを出力し停止する。
ここで、プロトタイプベクトルはノードの重みベクトルに相当する。
【００１７】
このように、非特許文献２に開示された技術であるＳＯＩＮＮは、ノード数を自律的に管理することにより非定常的な入力を学習することができ、分布に複雑な形状を持つクラスに対しても適切なクラス数及び位相構造を抽出できるなど多くの利点を持つ。ＳＯＩＮＮの応用例として、例えばパターン認識においては、ひらがな文字のクラスを学習させた後に、カタカナ文字のクラスなどを追加的に学習させることができる。
【非特許文献１】T. Kohonen, "Self-organized formation of topologically correct feature maps," Biol. Cybern, vol.43, No.1 pp.59-69, Jan 1982
【非特許文献２】F.Shen and O.Hasegawa, "An incremental network for on-line unsupervised classification and topology learning," Neural Networks, Vol.19, No.1, pp.90-106, 2006
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しかしながら、ＳＯＩＮＮは、入力ベクトルの属する複数のクラスが近接して、クラス間に高密度の入力ベクトル分布の重なりが存在する学習データを学習させた場合、異なるクラスが連結して１つのクラスタを形成する。
ＳＯＩＮＮは２層ネットワーク構造を用いて学習を実施することで、この問題の解決を試みているものの、分布の重なりが高密度な場合には適切にクラスを分離できないという問題がある。
【００１９】
具体例として、図１に示すように、２つのクラス、クラス１及びクラス２間に入力ベクトル分布の重なり部分Ａが存在する場合を想定する。ＳＯＩＮＮは、このような分布の重なりが低密度である場合には２つのクラスを適切に分離することができるものの、重なりが高密度の場合には分離できずに、複数のクラスが連結して１つのクラスタを形成する。即ち、２つのクラス、クラス１及びクラス２が誤って接続されて１つのクラスタを形成するのである。
【００２０】
一般に、学習データの入力ベクトルについて、クラスの中心領域においては多数の入力ベクトルが存在し、クラスの境界領域に近づくに従って減少してゆく。このため、学習データの入力ベクトル分布の密度が所定の閾値を下回った領域をクラスの境界とすることにより、クラスを分離することができる。
しかし、異なるクラス間に高密度の入力ベクトル分布の重なりが存在する場合には、クラスの境界領域であっても相当程度の学習データが存在するため、入力ベクトルの分布の密度が所定の閾値を上回り、クラスを容易に分離することができない。
また、単純に閾値を大きな値に設定することで解決を試みても、本来クラスの境界ではない領域を境界領域として判定する可能性があり、学習結果が安定しないという問題を招く。
【００２１】
一方、ノードに密度を持たせることにより、学習データに含まれる入力ベクトルの分布の密度を推定することができる。ノードの密度を局所的に与えられる入力ベクトルの数によって定義する。即ち、注目するノード付近に多くの入力ベクトルが与えられる場合には、そのノード付近の学習データにおける入力ベクトルの分布の密度は高いものと考えられ、注目するノード付近に入力ベクトルがほとんど与えられない場合には、そのノード付近での学習データにおける入力ベクトルの分布の密度は低いものと考えられる。
【００２２】
このため、ＳＯＩＮＮを含む競合型ニューラルネットワークにおいては、ノードが第１勝者ノードとなった回数である勝者回数をノードの密度として定義している。
しかしながら、勝者回数に基づく従来のノード密度の定義は自然な定義であるものの、以下に示す問題がある。
一つ目の問題として、一般に入力ベクトルの分布が高密度の領域には多くのノードが挿入されるため、そのような領域においてはノードが第１勝者ノードとなる機会が少ない。即ち、より高密度の領域に位置するノードほど勝者の回数が多くなるとは限らないという問題がある。
二つ目の問題として、追加学習を行う場合には、以前の学習において生成されたノードは第１勝者ノードとならないことが多い。即ち、追加学習によって以前の学習において生成されたノードが勝者となった回数は相対的に少なくなり、以前の学習で得られた結果に悪影響を与えてしまうという問題がある。
【００２３】
このように、従来の勝者回数に基づくノード密度を使用しては、クラスの境界となりうる分布の重なり領域を検出するには不十分なものであり、高密度の分布の重なりを持つクラスを適切に分離することができない。
【００２４】
さらに、ＳＯＩＮＮでは入力ベクトルに含まれるノイズデータを効果的に除去するため、２層ネットワーク構造を必要とする。このため、２層ネットワーク構造へと拡張したことに伴い、１層目における学習処理の終了を判定する必要があり、完全にオンラインで追加学習を実現することができない。即ち、１層構造によりノイズデータを効率的に除去することができないという問題がある。
【００２５】
本発明は係る課題を解決するためになされたものであり、高密度の分布の重なりを持つクラスを分離することができる情報処理装置、情報処理方法、及びプログラムを提供することを第１の目的とする。
更に、ノイズデータを効率的に除去することができる情報処理装置、情報処理方法、及びプログラムを提供することを第２の目的とする。
【課題を解決するための手段】
【００２６】
本発明に係る情報処理装置は、多次元ベクトルで記述されるノードが配置される少なくとも１層以上の構造を有し、任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造としてのクラス数及び位相構造を学習する情報処理装置において、当該入力される入力ベクトルに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとし、当該第１勝者ノード及び当該第２勝者ノードの間に辺を接続したとき、注目するノード及び当該注目するノードと辺によって直接的に接続されるノード間の平均距離に基づいて、当該注目するノードのノード密度を算出するノード密度算出手段と、辺によって接続されるノードの集合であるクラスタを、前記ノード密度算出手段によって算出されるノード密度に基づいてクラスタの部分集合であるサブクラスタに分割し、当該サブクラスタの境界である分布の重なり領域を検出する分布重なり領域検出手段と、前記第１勝者ノード及び前記第２勝者ノードが前記分布重なり領域に位置するノードである場合に、当該第１勝者ノード及び当該第２勝者ノードのノード密度に基づいて当該第１勝者ノード及び当該第２勝者ノード間に辺を接続するか否かを判定する辺接続判定手段と、前記判定結果に基づいて、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続する辺接続手段と、前記判定結果に基づいて、前記第１勝者ノード及び前記第２勝者ノード間の辺を削除する辺削除手段とを備えるものである。
【００２７】
このように、ノード密度算出手段により算出されるノード密度によれば、ノードについて、そのノードを含むある程度の範囲の領域におけるノードの密集具合を推定することができる。
これにより、分布が高密度の領域に位置するノードであっても、ノードが第１勝者回数となった回数をノードの密度とする従来の場合に比べて、入力ベクトルの入力分布密度により近似した密度となるノード密度を算出することができる。
そして、ノード密度算出手段により算出されるノード密度に基づいて分布の重なり領域を検出し、分布の重なり領域に位置する第１勝者ノード及び第２勝者ノード間に辺を接続するか否かを判定することで、異なるクラスから生成されるクラスタが互いに接続されることを防止することができると共に、誤って一つのクラスタとして接続された場合であっても、接続されたクラスタを適切に分離することができる。
【００２８】
また、多次元ベクトルで記述されるノードが配置される少なくとも１層以上の構造を有し、任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理装置において、当該入力される入力ベクトルに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとし、当該第１勝者ノード及び当該第２勝者ノードの間に辺を接続したとき、注目するノード及び当該注目するノードと辺によって直接的に接続されるノード間の平均距離に基づいて、当該注目するノードのノード密度を算出するノード密度算出手段と、注目するノードについて、前記ノード密度算出手段により算出されるノード密度及び当該注目するノードと辺によって直接的に接続されるノードの個数に基づいて、当該注目するノードを削除するノイズノード削除手段を備えるものである。
【００２９】
このように、ノード密度算出手段により算出されるノード密度によれば、ノードについて、そのノードを含むある程度の範囲の領域におけるノードの密集具合を推定することができる。
これにより、分布が高密度の領域に位置するノードであっても、ノードが第１勝者回数となった回数をノードの密度とする従来の場合に比べて、入力ベクトルの入力分布密度により近似した密度となるノード密度を算出することができる。
そして、ノード密度算出手段により算出されるノード密度、及びノードと辺によって直接的に接続されるノードの個数に基づいて注目するノードを削除することで、ノイズノードを効率的に削除することができる。
【００３０】
さらに、前記第１勝者ノードに対応する重みベクトル及び当該第１勝者ノードと辺によって直接的に接続されるノードに対応する重みベクトルをそれぞれ前記入力ベクトルに更に近づけるように更新する重みベクトル更新手段を更に備えるようにしてもよい。
【００３１】
これにより、第１勝者ノードに対応する重みベクトル、及び第１勝者ノードと辺によって直接的に接続されるノードに対応する重みベクトルを、それぞれ入力ベクトルに更に近づけるように更新することができる。
【００３２】
さらにまた、注目するノードについて、前記ノード密度算出手段により算出されるノード密度及び当該注目するノードと辺によって直接的に接続されるノードの個数に基づいて、当該注目するノードを削除するノイズノード削除手段を更に備えるようにしてもよい。
【００３３】
これにより、ノード密度算出手段により算出されるノード密度、及びノードと辺によって直接的に接続されるノードの個数に基づいて、ノードを削除することで、ノイズノードをさらに効率的に削除することができる。
【００３４】
また、前記ノード密度算出手段は、前記第１勝者ノード及び当該第１勝者ノードと辺によって直接的に接続されるノード間の平均距離に基づいて、当該第１勝者ノードのノード密度を単位入力数あたりの割合として算出する単位ノード密度算出部を有するようにしてもよい。
【００３５】
このように、ノード密度を、ノードの密集具合を反映させた上で、単位入力数あたりのノードのノード密度として算出することができる。
これにより、追加学習を長時間実施する場合であっても、ノードのノード密度が相対的に小さくなってしまうことを防ぐことができ、従来の手法に比べて、入力ベクトルの入力分布密度により近似したノード密度を変化させずに保持して算出することができる。
【００３６】
さらに、前記ノード密度算出手段は、前記第１勝者ノード及び当該第１勝者ノードと辺によって直接的に接続されるノード間の平均距離に基づいて、当該第１勝者ノードのノード密度のポイント値を算出するノード密度ポイント算出部と、前記入力ベクトルの入力数が所定の単位入力数となるまでノード密度ポイントを累積し、当該入力ベクトルの入力数が所定の単位入力数になった場合に、当該累積されたノード密度ポイントを単位入力数あたりの割合として算出し、単位入力数あたりのノードのノード密度を算出する単位ノード密度ポイント算出部とを有するようにしてもよい。
【００３７】
このように、ノード密度を、ノードの密集具合を反映させたポイントとして算出し、単位入力数あたりのノードのノード密度ポイントとして算出することができる。
これにより、追加学習を長時間実施する場合であっても、ノードのノード密度が相対的に小さくなってしまうことを防ぐことができ、従来の手法に比べて、入力ベクトルの入力分布密度により近似したノード密度を変化させずに保持して算出することができる。
【００３８】
さらにまた、前記入力ベクトルをニューラルネットワークに入力し、当該入力される入力ベクトルに基づいて、該ニューラルネットワークに配置されるノードを自動的に増加させる自己増殖型ニューラルネットワークであるようにしてもよい。
【００３９】
このように、ノードを自動的に増加させることで、入力ベクトル空間からランダムに入力ベクトルが与えられる定常的な環境に限られず、例えば一定期間毎に入力ベクトルの属するクラスが切替えられて、切替後のクラスからランダムに入力ベクトルが与えられる非定常的な環境に対応することができる。
【００４０】
また、注目するノードについて、当該注目するノードと辺によって直接的に接続されるノードが存在する場合には、当該直接的に接続されるノードのうち当該注目するノードからの距離が最大であるノード間の距離を類似度閾値とし、当該注目するノードと辺によって直接的に接続されるノードが存在しない場合には、当該注目するノードからの距離が最小であるノード間の距離を類似度閾値として算出する類似度閾値算出手段と、前記入力ベクトルと前記第１勝者ノード間の距離が当該第１勝者ノードの類似度閾値より大きいか否か、及び、前記入力ベクトルと前記第２勝者ノード間の距離が当該第２勝者ノードの類似度閾値より大きいか否かを判定する類似度閾値判定手段と、類似度閾値判定結果に基づいて、前記入力ベクトルをノードとして当該入力ベクトルと同じ位置に挿入するノード挿入手段と、を更に備えるようにしてもよい。
【００４１】
このように、類似度閾値に基づいてノードの挿入を判断することで、ノード数を自律的に管理することができる。
これにより、入力ベクトル空間からランダムに入力ベクトルが与えられる定常的な環境に限られず、例えば一定期間毎に入力ベクトルの属するクラスが切替えられて、切替後のクラスからランダムに入力ベクトルが与えられる非定常的な環境に対応することができる共に、このような非定常的な環境において必要とされる、新しいクラスを追加的に学習する追加学習を実施することができる。
【００４２】
さらに、前記自己増殖型ニューラルネットワークは１層構造であるようにしてもよい。
【００４３】
このように、１層構造とすることで、２層目の学習を開始するタイミングを指定せずに追加学習を実施することができる。即ち、完全なオンラインでの追加学習を実施することができる。
また、非特許文献２に開示された技術と比べて、学習に際して事前に指定するパラメタの数を減少させることができ、より簡単に学習を実施することができる。
【００４４】
さらにまた、前記分布重なり領域検出手段は、前記ノード密度算出手段により算出されたノード密度に基づいて、ノード密度が局所的に最大であるノードを探索するノード探索部と、
当該探索したノードに対して、既に他のノードに付与済みのラベルとは異なるラベルを付与する第１のラベル付与部と、前記第１のラベル付与部によりラベルが付与されなかったノードについて、前記第１のラベル付与部によりラベルが付与されたノードと辺によって接続されるノードについて、前記第１のラベル付与部によりラベルが付与されたノードのラベルと同じラベルを付与する第２のラベル付与部と、辺によって接続されるノードの集合であるクラスタを、同じラベルが付与されたノードからなるクラスタの部分集合であるサブクラスタに分割するクラスタ分割部と、注目するノード及び当該注目するノードと辺によって直接的に接続されるノードがそれぞれ異なるサブクラスタに属する場合に、当該注目するノード及び当該注目するノードと辺によって直接的に接続されるノードを含む領域を、サブクラスタの境界である分布の重なり領域として検出する分布重なり領域検出部とを有するようにしてもよい。
【００４５】
このように、ノード密度が局所的に最大となるノードに基づいてクラスタをサブクラスタに分割することで、単純に密度の低い領域をクラスタの境界として検出する方法では検出が困難となる場合においても、サブクラスタの境界である分布の重なり領域を適切に検出することができる。
【００４６】
本発明に係る情報処理方法は、多次元ベクトルで記述されるノードが配置される少なくとも１層以上の構造を有し、任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理方法において、当該入力される入力ベクトルに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとし、当該第１勝者ノード及び当該第２勝者ノードの間に辺を接続したとき、注目するノード及び当該注目するノードと辺によって直接的に接続されるノード間の平均距離に基づいて、当該注目するノードのノード密度を算出するノード密度算出ステップと、辺によって接続されるノードの集合であるクラスタを、前記ノード密度算出手段によって算出されるノード密度に基づいてクラスタの部分集合であるサブクラスタに分割し、当該サブクラスタの境界である分布の重なり領域を検出する分布重なり領域検出ステップと、前記第１勝者ノード及び前記第２勝者ノードが前記分布重なり領域に位置するノードである場合に、当該第１勝者ノード及び当該第２勝者ノードのノード密度に基づいて当該第１勝者ノード及び当該第２勝者ノード間に辺を接続するか否かを判定する辺接続判定ステップと、前記判定結果に基づいて、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続する辺接続ステップと、前記判定結果に基づいて、前記第１勝者ノード及び前記第２勝者ノード間の辺を削除する辺削除ステップとを備えるものである。
【００４７】
本発明に係るプログラムは、上述のような情報処理をコンピュータに実行させるものである。
【発明の効果】
【００４８】
本発明によれば、高密度の分布の重なりを持つクラスを分離することができる情報処理装置、情報処理方法、及びプログラムを提供することができる。
更に、ノイズデータを効率的に除去することができる情報処理装置、情報処理方法、及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００４９】
発明の実施の形態１．
図２は、本実施の形態１に係る情報処理装置を実現するためのシステム構成の一例を示す図である。情報処理装置は、専用コンピュータ、パーソナルコンピュータ（ＰＣ）などのコンピュータより実現可能である。但し、コンピュータは、物理的に単一である必要はなく、分散処理を実行する場合には、複数であってもよい。図２に示すように、コンピュータ１０は、ＣＰＵ１１（Central Processing Unit）、ＲＯＭ１２（Read Only Memory）及びＲＡＭ１３（Random Access Memory）を有し、これらがバス１４を介して相互に接続されている。尚、コンピュータを動作させるためのＯＳソフトなどは、説明を省略するが、この情報処理装置を構築するコンピュータも当然備えているものとする。
【００５０】
バス１４には又、入出力インターフェイス１５も接続されている。入出力インターフェイス１５には、例えば、キーボード、マウス、センサなどよりなる入力部１６、ＣＲＴ、ＬＣＤなどよりなるディスプレイ、並びにヘッドフォンやスピーカなどよりなる出力部１７、ハードディスクなどより構成される記憶部１８、モデム、ターミナルアダプタなどより構成される通信部１９などが接続されている。
【００５１】
ＣＰＵ１１は、ＲＯＭ１２に記憶されている各種プログラム、又は記憶部１８からＲＡＭ１３にロードされた各種プログラムに従って各種の処理、本実施の形態においては、例えばノード密度算出手段２７や分布重なり領域検出手段２８における処理を実行する。ＲＡＭ１３には又、ＣＰＵ１１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００５２】
通信部１９は、例えば図示しないインターネットを介しての通信処理を行ったり、ＣＰＵ１１から提供されたデータを送信したり、通信相手から受信したデータをＣＰＵ１１、ＲＡＭ１３、記憶部１８に出力したりする。記憶部１８はＣＰＵ１１との間でやり取りし、情報の保存・消去を行う。通信部１９は又、他の装置との間で、アナログ信号又はディジタル信号の通信処理を行う。
【００５３】
入出力インターフェイス１５は又、必要に応じてドライブ２０が接続され、例えば、磁気ディスク２０１、光ディスク２０２、フレキシブルディスク２０３、又は半導体メモリ２０４などが適宜装着され、それらから読み出されたコンピュータプログラムが必要に応じて記憶部１８にインストールされる。
【００５４】
続いて、本実施形態に係る情報処理装置１における各処理について、その主な処理を図３に示す機能ブロック図を用いて説明する。ハードウェア上は、各処理は実際にはソフトウェアと上記ＣＰＵ１１などのハードウェア資源とが協働して実現している。
【００５５】
情報処理装置１は、ｎ次元ベクトルで記述されるノードが配置される少なくとも１層以上の構造のニューラルネットワークを有し、入力情報取得手段２１、勝者ノード探索手段２２、類似度閾値算出手段２３、類似度閾値判定手段２４、ノード挿入手段２５、重みベクトル更新手段２６、ノード密度算出手段２７、分布重なり領域検出手段２８、辺接続判定手段２９、辺接続手段３０、辺削除手段３１、ノイズノード削除手段３２、クラス決定手段３３、出力情報表示手段３４を含む。
尚、本実施形態に係る情報処理装置は、非特許文献２に開示される技術であるＳＯＩＮＮに比べて、更に、ノード密度算出手段２７、分布重なり領域検出手段２８、辺接続判定手段２９、辺接続手段３０、辺削除手段３１、ノイズノード削除手段３２を含むものである。
ノード密度算出手段２７、分布重なり領域検出手段２８、辺接続判定手段２９、辺接続手段３０、及び辺削除手段３１によれば、分布に高密度の重なりのあるクラスを分離することができる。
さらに、ノード密度算出手段２７及びノイズノード削除手段３２によれば、ノイズノードを効率的に削除することができる。
以下、更に詳細に説明する。
【００５６】
本実施形態においては、情報処理装置１を構成するニューラルネットワークは、入力ベクトルをニューラルネットワークに入力し、入力される入力ベクトルに基づいて、ニューラルネットワークに配置されるノードを自動的に増加させる自己増殖型ニューラルネットワークであり、１層構造を有するものとして以下説明する。
【００５７】
これにより、自己増殖型ニューラルネットワークを用いてノードを自動的に増加させることができるため、入力ベクトル空間からランダムに入力ベクトルが与えられる定常的な環境に限られず、例えば一定期間毎に入力ベクトルの属するクラスが切替えられて、切替後のクラスからランダムに入力ベクトルが与えられる非定常的な環境にも対応することができる。
さらにまた、１層構造とすることで、２層目の学習を開始するタイミングを指定せずに追加学習を実施することができる。即ち、完全なオンラインでの追加学習を実施することができる。
また、ＳＯＩＮＮと比べて、学習に際して事前に指定するパラメタの数を少なくすることができ、より簡単に学習を実施することができる。
【００５８】
入力情報取得手段２１は、情報処理装置１に入力として与えられる情報として、任意のクラスに属するｎ次元の入力ベクトルを取得する。そして、取得された入力ベクトルを一時記憶部（例えばＲＡＭ１３）に格納し、一時記憶部に格納されたニューラルネットワークに対して順次入力する。
【００５９】
勝者ノード探索手段２２は、一時記憶部に格納される入力ベクトル及びノードについて、入力ベクトルに最も近い重みベクトルを持つノードを第１勝者ノードとし、２番目に近い重みベクトルを持つノードを第２勝者ノードとして探索し、その結果を一時記憶部に格納する。
即ち、ｎ次元の入力ベクトルξに対して、一時記憶部に格納される以下の式を満足するノードを、それぞれ第１勝者ノードａ1及び第２勝者ノードａ2として探索し、その結果を一時記憶部に格納する。
【数１】
2008217246.tif 000003
【数２】
2008217246.tif 000004
ここで、ａは一時記憶部に格納されたノード集合Ａに含まれるノードであり、Ｗａは一時記憶部に格納されたノードａの重みベクトルを示す。
【００６０】
類似度閾値算出手段２３は、一時記憶部に格納されたノード及びノードの類似度閾値について、注目するノードについて、注目するノードと辺によって直接的に接続されるノード（以下、隣接ノードという。）が存在する場合には、隣接ノードのうち注目するノードからの距離が最大であるノードまでの距離を類似度閾値として算出し、その結果を一時記憶部に格納し、隣接ノードが存在しない場合には、注目するノードからの距離が最小であるノードまでの距離を類似度閾値として算出し、その結果を一時記憶部に格納する。
具体的には、例えば以下のようにして注目するノードの類似度閾値を算出し、その結果を一時記憶部に格納する。
Ｓ２０１：類似度閾値算出手段２３は、新しく挿入され一時記憶部に格納されたノードｉの類似度閾値Tiを＋∞（十分大きな値）に設定し、その結果を一時記憶部に格納する。
Ｓ２０２：一時記憶部に格納されたノードについて、ノードｉが入力ベクトルから最も近いノードまたは２番目に近いノードとなった場合に、ノードｉが隣接ノードを持つか否かを判定し、その結果を一時記憶部に格納する。
Ｓ２０３：一時記憶部に格納された判定の結果、隣接ノードを持つ場合には、一時記憶部に格納された類似度閾値及びノードについて、類似度閾値Tiを隣接ノードへの最大距離とし、その結果を一時記憶部に格納する。
即ち、ノードｉについて、一時記憶部に格納される以下の式に基づいて類似度閾値Tiを算出し、その結果を一時記憶部に格納する。
【数３】
2008217246.tif 000005
ここで、ｃは一時記憶部に格納されたノードｉの隣接ノード集合Ｎｉに含まれるノードであり、Ｗｃは一時記憶部に格納されたノードｃの重みベクトルを示す。
Ｓ２０４：判定の結果、隣接ノードを持たない場合には、ノードｉからノードｉを除いた他の各ノードへの距離を算出し、算出された距離のうち最小の距離を類似度閾値Tiとする。
即ち、ノードｉについて、一時記憶部に格納される以下の式に基づいて類似度閾値Tiを算出し、その結果を一時記憶部に格納する。
【数４】
2008217246.tif 000006
【００６１】
類似度閾値判定手段２４は、一時記憶部に格納された入力ベクトル、ノード及び、ノードの類似度閾値について、入力ベクトル及びと第１勝者ノード間の距離が第１勝者ノードの類似度閾値より大きいか否か、及び、入力ベクトルと第２勝者ノード間の距離が第２勝者ノードの類似度閾値より大きいか否かを判定し、その結果を一時記憶部に格納する。
即ち、一時記憶部に格納される以下の式に示すように、入力ベクトルξと第１勝者ノードａ1の間の距離が類似度閾値Ｔａ1よりも大きいか否かを判定しその結果を一時記憶部に格納すると共に、入力ベクトルξと第２勝者ノードａ2の間の距離が類似度閾値Ｔａ2よりも大きいか否かを判定しその結果を一時記憶部に格納する。
【数５】
2008217246.tif 000007
【００６２】
ノード挿入手段２５は、一時記憶部に格納された類似度閾値判定手段２４による判定結果に基づいて、一時記憶部に格納された入力ベクトルについて、入力ベクトルを新たなノードとして、入力ベクトルと同じ位置に挿入し、その結果を一時記憶部に格納する。
【００６３】
重みベクトル更新手段２６は、一時記憶部に格納されたノードの重みベクトルについて、第１勝者ノードの重みベクトル及び第１勝者ノードの隣接ノードの重みベクトルをそれぞれ入力ベクトルに更に近づけるように更新し、その結果を一時記憶部に格納する。
第１勝者ノードａ1の重みベクトルの更新量ΔＷａ1、及び第１勝者ノードａ1の隣接ノードｉの重みベクトルの更新量ΔＷａｉは、例えば一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。
【数６】
2008217246.tif 000008
【数７】
2008217246.tif 000009
ここで、ε1（ｔ）及びε2（ｔ）はそれぞれ一時記憶部に格納される以下の式に基づいて算出し、その結果を一時期億部に格納する。
【数８】
2008217246.tif 000010
【数９】
2008217246.tif 000011
尚、本実施の形態においては、追加学習に対応するため、入力ベクトルの入力回数ｔに代えて、一時記憶部に格納される第１勝者ノードａ1が第１勝者ノードとなった累積回数Ｍａ1を用いる。
【００６４】
ノード密度算出手段２７は、一時記憶部に格納されたノード及びノード密度について、注目するノードについて、その隣接ノード間の平均距離に基づいて、注目するノードのノード密度を算出し、その結果を一時記憶部に格納する。
さらに、ノード密度算出手段２７は、単位ノード密度算出部を有し、単位ノード密度算出部は、追加学習に対応するため、一時記憶部に格納された第１勝者ノード及びノード密度について、第１勝者ノードとその隣接ノード間の平均距離に基づいて、第１勝者ノードのノード密度を単位入力数あたりの割合として算出し、その結果を一時記憶部に格納する。
さらにまた、ノード密度算出手段２７は、一時記憶部に格納されたノード及びノード密度ポイントについて、第１勝者ノード及びその隣接ノード間の平均距離に基づいて、第１勝者ノードのノード密度のポイント値を算出するノード密度ポイント算出部と、入力ベクトルの入力数が所定の単位入力数となるまでノード密度ポイントを一時記憶部に格納して累積し、入力ベクトルの入力数が所定の単位入力数になった場合に、一時記憶部に格納して累積されたノード密度ポイントを単位入力数あたりの割合として算出し、単位入力数あたりのノードのノード密度を算出し、その結果を一時記憶部に格納する単位ノード密度ポイント算出部を有する。
【００６５】
具体的には、ノード密度ポイント算出部は、例えば一時記憶部に格納される以下の式に基づいてノードｉに与えられるノード密度のポイント値ｐｉを算出し、その結果を一時記憶部に格納する。尚、ノードｉに与えられるポイント値ｐｉは、ノードｉが第１勝者ノードとなった場合には一時記憶部に格納される以下の式に基づいて算出されるポイント値が与えられるが、ノードｉが第１勝者ノードでない場合にはノードｉにはポイントは与えられないものとする。
【数１０】
2008217246.tif 000012
ここで、ｅｉはノードｉからその隣接ノードまでの平均距離を示し、一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。
【数１１】
2008217246.tif 000013
尚、ｍは一時記憶部に格納されたノードｉの隣接ノードの個数を示し、Ｗｉは一時記憶部に格納されたノードｉの重みベクトルを示す。
【００６６】
ここで、隣接ノードへの平均距離が大きくなる場合には、ノードを含むその領域にはノードが少ないものと考えられ、逆に平均距離が小さくなる場合には、その領域にはノードが多いものと考えられる。
従って、ノードの多い領域で第１勝者ノードとなった場合には高いポイントが与えられ、ノードの少ない領域で第１勝者ノードとなった場合には低いポイントが与えられるようにノードの密度のポイント値の算出方法を上述のように構成する。
これにより、ノードを含むある程度の範囲の領域におけるノードの密集具合を推定することができるため、ノードの分布が高密度の領域に位置するノードであっても、ノードが第１勝者回数となった回数をノードの密度とする従来の場合に比べて、入力ベクトルの入力分布密度により近似した密度となるノード密度ポイントを算出することができる。
【００６７】
単位ノード密度ポイント算出部は、例えば一時記憶部に格納される以下の式に基づいてノードｉの単位入力数あたりのノード密度ｄｅｎｓｉｔｙｉを算出し、その結果を一時記憶部に格納する。
【数１２】
2008217246.tif 000014
ここで、連続して与えられる入力ベクトルの入力回数を予め設定され一時記憶部に格納される一定の入力回数λごとの区間に分け、各区間においてノードｉに与えられたポイントについてその合計を累積ポイントｓｉと定める。尚、入力ベクトルの総入力回数を予め設定され一時記憶部に格納されるＬＴとする場合に、ＬＴ/λを区間の総数ｎとしその結果を一時記憶部に格納し、ｎのうち、ノードに与えられたポイントの合計が０以上であった区間の数をＮとして算出し、その結果を一時記憶部に格納する（Ｎとｎは必ずしも同じとならない点に注意する）。
累積ポイントｓｉは、例えば一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。
【数１３】
2008217246.tif 000015
ここで、ｐｉ（ｊ，ｋ）はｊ番目の区間におけるｋ番目の入力によってノードｉに与えられたポイントを示し、上述のノード密度ポイント算出部により算出され、その結果を一時記憶部に格納する。
このように、単位ノード密度ポイント算出部は、一時記憶部に格納されたノードｉの密度ｄｅｎｓｉｔｙｉを累積ポイントｓｉの平均として算出し、その結果を一時記憶部に格納する。
【００６８】
尚、本実施の形態においては追加学習に対応するため、ｎに代えてＮを用いる。これは、追加学習において、以前の学習で生成されたノードにはポイントが与えられないことが多く、ｎを用いて密度を算出すると、以前学習したノードの密度が次第に低くなってしまうという問題を回避するためである。即ち、ｎに代えてＮを用いてノード密度を算出することで、追加学習を長時間行った場合であっても、追加されるデータが以前学習したノードの近くに入力されない限りは、そのノードの密度を変化させずに保持することができる。
これにより、追加学習を長時間実施する場合であっても、ノードのノード密度が相対的に小さくなってしまうことを防ぐことができ、従来の手法に比べて、入力ベクトルの入力分布密度により近似したノード密度を変化させずに保持して算出することができる。
【００６９】
分布重なり領域検出手段２８は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードの密度について、辺によって接続されるノードの集合であるクラスタを、ノード密度算出手段２７によって算出されるノード密度に基づいてクラスタの部分集合であるサブクラスタに分割し、その結果を一時記憶部に格納し、サブクラスタの境界である分布の重なり領域を検出し、その結果を一時記憶部に格納する。
【００７０】
さらに、分布重なり領域検出手段２８は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードの密度について、ノード密度算出手段２７により算出されたノード密度に基づいて、ノード密度が局所的に最大であるノードを探索するノード探索部と、探索したノードに対して、既に他のノードに付与済みのラベルとは異なるラベルを付与する第１のラベル付与部と、第１のラベル付与部によりラベルが付与されなかったノードのうち、そのノードと辺によって接続されるノードについて、第１のラベル付与部によりラベルが付与されたノードのラベルと同じラベルを付与する第２のラベル付与部と、それぞれ異なるラベルが付与されたノード間に辺によって直接的に接続がある場合に、その辺によって接続されるノードの集合であるクラスタをクラスタの部分集合であるサブクラスタに分割するクラスタ分割部と、注目するノード及びその隣接ノードがそれぞれ異なるサブクラスタに属する場合に、その注目するノード及びその隣接ノードを含む領域を、サブクラスタの境界である分布の重なり領域として検出する分布重なり領域検出部を有する。
【００７１】
具体的には、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードの密度について、例えば以下のようにしてサブクラスタの境界である分布の重なり領域を検出し、その結果を一時記憶部に格納する。
Ｓ３０１：ノード探索部は、一時記憶部に格納されたノード及びノードの密度について、ノード密度算出手段２７により算出されたノード密度に基づいて、ノード密度が局所的に最大であるノードを探索し、その結果を一時記憶部に格納する。
Ｓ３０２：第１のラベル付与部は、一時記憶部に格納されたノード、及びノードのラベルについて、Ｓ３０１において探索したノードに対して、既に他のノードに付与済みのラベルとは異なるラベルを付与し、その結果を一時記憶部に格納する。
Ｓ３０３：第２のラベル付与部は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードのラベルについて、Ｓ３０２において第１のラベル付与部によりラベルが付与されなかったノードについて、第１のラベル付与部にラベルが付与されたノードと辺によって接続されるノードについて、第１のラベル付与部によりラベルが付与されたノードのラベルと同じラベルを付与し、その結果を一時記憶部に格納する。即ち、密度が局所的に最大の隣接ノードと同じラベルを付与する。
Ｓ３０４：クラスタ分割部は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードのラベルについて、一時記憶部に格納された辺によって接続されるノードの集合であるクラスタを、同じラベルが付与されたノードからなるクラスタの部分集合であるサブクラスタに分割し、その結果を一時記憶部に格納する。
Ｓ３０５：分布重なり領域検出部は、一時記憶部に格納されたノード、ノード間を接続する辺、及びノードのラベルについて、注目するノードとその隣接ノードが異なるサブクラスタにそれぞれ属する場合に、その注目するノード及びその隣接ノードを含む領域を、サブクラスタの境界である分布の重なり領域として検出し、その結果を一時記憶部に格納する。
【００７２】
辺接続判定手段２９は、一時記憶部に格納されたノード、ノード密度、及び分布重なり領域について、第１勝者ノード及び第２勝者ノードが分布重なり領域に位置するノードである場合に、第１勝者ノード及び第２勝者ノードのノード密度に基づいて第１勝者ノード及び第２勝者ノード間に辺を接続するか否かを判定し、その結果を一時記憶部に格納する。
【００７３】
さらに辺接続判定手段２９は、一時記憶部に格納されたノード、ノード密度、ノードのサブクラスタについて、ノードが属しているサブクラスタを判定する所属サブクラスタ判定部と、ノードが属するサブクラスタの頂点の密度及びノードの密度に基づいて、第１勝者ノード及び第２勝者ノード間に辺を接続するか否かを判定する辺接続判定部を有する。
【００７４】
辺接続手段３０は、一時記憶部に格納された辺接続判定手段２９の判定結果に基づいて、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を接続し、その結果を一時記憶部に格納する。
辺削除手段３１は、一時記憶部に格納された辺接続判定手段２９の判定結果に基づいて、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間の辺を削除し、その結果を一時記憶部に格納する。
【００７５】
具体的には、一時記憶部に格納されたノード、ノード密度、ノードのサブクラスタ、及びノード間の辺について、例えば以下のようにして辺接続判定手段２９は辺を接続するか否かを判定し、辺接続手段３０及び辺削除手段３１は辺の生成及び削除処理を実施し、その結果を一時記憶部に格納する。
Ｓ４０１：所属サブクラスタ判定部は、一時記憶部に格納されたノード、ノードのサブクラスタについて、第１勝者ノード及び第２勝者ノードが属するサブクラスタをそれぞれ判定し、その結果を一時記憶部に格納する。
Ｓ４０２：一時記憶部に格納されたＳ４０１における判定の結果、第１勝者ノード及び第２勝者ノードがどのサブクラスタにも属していない場合、又は、第１勝者ノード及び第２勝者ノードが同じサブクラスタに属している場合には、辺接続手段３０は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を生成することによりノード間を接続し、その結果を一時記憶部に格納する。
Ｓ４０３：一時記憶部に格納されたＳ４０１における判定の結果、第１勝者ノード及び第２勝者ノードが互いに異なるサブクラスタに属す場合には、辺接続判定部は、一時記憶部に格納されたノード、ノード密度、及びノード間の辺について、ノードが属するサブクラスタの頂点の密度及びノードの密度に基づいて、第１勝者ノード及び第２勝者ノード間に辺を接続するか否かを判定し、その結果を一時記憶部に格納する。
Ｓ４０４：一時記憶部に格納されたＳ４０３における辺接続判定部による判定の結果、辺を接続する必要がないと判定した場合には、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間を辺によって接続せず、既にノード間が辺によって接続されていた場合には、辺削除手段３１は、一時記憶部に格納されたノード及びノード間の辺について、一時記憶部に格納された第１勝者ノード及び第２勝者ノード間の辺を削除し、その結果を一時記憶部に格納する。
Ｓ４０５：一時記憶部に格納されたＳ４０３における辺接続判定部による判定の結果、辺を接続する必要があると判定した場合には、辺接続手段３０は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を生成しノード間を接続する。
【００７６】
ここで、辺接続判定部による判定処理について詳細に説明する。
まず、辺接続判定部は、一時記憶部に格納されたノード及びノード密度について、第１勝者ノードのノード密度ｄｅｎｓｉｔｙｗｉｎ及び第２勝者ノード密度ｄｅｎｓｉｔｙｓｅｃ−ｗｉｎのうち、最小のノード密度ｍを例えば一時記憶部に格納される以下の式に基いて算出し、その結果を一時記憶部に格納する。
【数１４】
2008217246.tif 000016
次に、一時記憶部に格納されたノード、ノードのノード密度、及びノードのサブクラスについて、第１勝者ノード及び第２勝者ノードがそれぞれ属するサブクラスタＡ及びサブクラスタＢについて、サブクラスタＡの頂点の密度Ａｍａｘ及びサブクラスタＢの頂点の密度Ｂｍａｘを算出し、その結果を一時記憶部に格納する。
尚、サブクラスタに含まれるノードのうち、ノード密度が最大であるノード密度をサブクラスタの頂点の密度とする。
そして、一時記憶部に格納されたノードが属するサブクラスタの頂点の密度Ａｍａｘ及びＢｍａｘ、及びノードの密度ｍについて、ｍがαＡＡｍａｘより小さく、かつ、ｍがαＢＢｍａｘより小さいか否かを判定し、その結果を一時記憶部に格納する。即ち、一時記憶部に格納される以下の不等式を満足するか否かを判定し、その結果を一時記憶部に格納する。
【数１５】
2008217246.tif 000017
判定の結果、ｍがαＡＡｍａｘより小さく、かつ、ｍがαＢＢｍａｘより小さい場合には、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間には辺は不要であると判定し、その結果を一時記憶部に格納する。
一方、判定の結果、ｍがαＡＡｍａｘ以上、または、ｍがαＢＢｍａｘ以上である場合には、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺は必要であると判定し、その結果を一時記憶部に格納する。
【００７７】
このように、第１勝者ノード及び第２勝者ノードの最小ノード密度ｍを、第１勝者ノード及び第２勝者ノードをそれぞれ含むサブクラスタの平均的なノード密度と比較することで、第１勝者ノード及び第２勝者ノードを含む領域におけるノード密度の凹凸の大きさを判定することができる。即ち、サブクラスタＡ及びサブクラスタＢの間に存在する分布の谷間のノード密度ｍが、閾値αＡＡｍａｘ又はαＢＢｍａｘより大きな場合には、ノード密度の形状は小さな凹凸であると判定することができる。
【００７８】
ここで、αＡ及びαＢは一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。尚、αＢについてもαＡと同様にして算出することができるためここでは説明を省略する。
ｉ）      Ａｍａｘ/ｍｅａｎＡ−１≦１の場合には、αＡ＝０．０とする。
ｉｉ）    １＜Ａｍａｘ/ｍｅａｎＡ−１≦２の場合には、αＡ＝０．５とする。
ｉｉｉ）  ２＜Ａｍａｘ/ｍｅａｎＡ−１の場合には、αＡ＝１．０とする。
Ａｍａｘ/ｍｅａｎＡの値が１以下となるi）の場合には、ＡｍａｘとｍｅａｎＡの値は同程度であり、密度の凹凸はノイズの影響によるものと判断する。そして、αの値を０．０とすることで、サブクラスタが統合されるようにする。
また、Ａｍａｘ/ｍｅａｎＡの値が２を超えるi i i）の場合には、ＡｍａｘはｍｅａｎＡに比べて十分大きく、明らかな密度の凹凸が存在するものと判断する。そして、αの値を１．０とすることで、サブクラスタが分離されるようにする。
そして、Ａｍａｘ/ｍｅａｎＡの値が上述した場合以外となる i i）の場合には、αの値を０．５とすることで、密度の凹凸の大きさに応じてサブクラスタが統合又は分離されるようにする。
尚、ｍｅａｎＡはサブクラスタＡに属すノードｉのノード密度ｄｅｎｓｉｔｙｉの平均値を示し、ＮＡをサブクラスタＡに属するノードの数として、一時記憶部に格納される以下の式に基づいて算出し、その結果を一時記憶部に格納する。
【数１６】
2008217246.tif 000018
【００７９】
このように、サブクラスタへの分離を行う際に、サブクラスタに含まれるノード密度の凹凸の程度を判定し、ある基準を満たした２つのサブクラスタを１つに統合することで、分布の重なり領域の検出におけるサブクラスタの分けすぎによる不安定化を防止することができる。
例えば、図４に示す２つのサブクラスタＡ及びＢについて、サブクラスタＡの頂点の密度がＡｍａｘであり、サブクラスタＢの頂点の密度がＢｍａｘであるものとする。
図４に示すように、ノイズや学習サンプルが少ないことが原因で、密度の分布に多くの細かい凹凸が形成されることがある。
このような場合に、第１勝者ノード及び第２勝者ノードがサブクラスタＡ及びＢの間にある分布の重なり領域に位置する場合に、ノード間の接続を行う際にある基準を満たした２つのサブクラスタを１つに統合することで、図４に示すように密度の分布に多くの細かい凹凸が含まれる場合であっても、図１に示すように密度の分布を平滑化することができる。
【００８０】
ノイズノード削除手段３２は、一時記憶部に格納されたノード、ノード密度、ノード間の辺、隣接ノードの個数について、注目するノードについて、ノード密度算出手段２７により算出されるノード密度及び注目するノードの隣接ノードの個数に基づいて、注目するノードを削除し、その結果を一時記憶部に格納する。
【００８１】
さらにノイズノード削除手段３２は、一時記憶部に格納されたノード、ノード密度、ノード間の辺、隣接ノードの個数について、注目するノードのノード密度を所定の閾値と比較するノード密度比較部と、注目するノードの隣接ノードの個数を算出する隣接ノード数算出部と、注目するノードをノイズノードとみなして削除するノイズノード削除部を有する。
具体的には、例えば以下のようにして一時記憶部に格納されたノード、ノード密度、ノード間の辺、隣接ノードの個数について、ノード密度及び注目するノードの隣接ノードの個数に基づいて、注目するノードを削除し、その結果を一時記憶部に格納する。
【００８２】
ノイズノード削除手段３２は、一時記憶部に格納されたノード、ノード間の辺、隣接ノードの個数について、注目するノードｉについて、隣接ノード数算出部によりその隣接ノードの個数を算出し、その結果を一時記憶部に格納する。そして、一時記憶部に格納された隣接ノードの個数に応じて、以下の処理を実施する。
ｉ）      一時記憶部に格納された隣接ノード数が２の場合、ノード密度比較部はノードｉのノード密度ｄｅｎｓｉｔｙｉを例えば一時記憶部に格納される以下の式に基づいて算出する閾値と比較し、その結果を一時記憶部に格納する。
【数１７】
2008217246.tif 000019
一時記憶部に格納された比較結果について、ノード密度ｄｅｎｓｉｔｙｉが閾値より小さい場合には、ノイズノード削除部は、一時記憶部に格納されたノードについて、ノードを削除し、その結果を一時記憶部に格納する。
ｉｉ）    一時記憶部に格納された隣接ノード数が１の場合、ノード密度比較部はノードｉのノード密度ｄｅｎｓｉｔｙｉを例えば一時記憶部に格納される以下の式に基づいて算出する閾値と比較し、その結果を一時記憶部に格納する。
【数１８】
2008217246.tif 000020
一時記憶部に格納された比較の結果について、ノード密度ｄｅｎｓｉｔｙｉが閾値より小さい場合には、ノイズノード削除部は、一時記憶部に格納されたノードについて、ノードを削除し、その結果を一時記憶部に格納する。
ｉｉｉ）  一時記憶部に格納された隣接ノード数について、隣接ノードを持たない場合、ノイズノード削除部は、一時記憶部に格納されたノードについて、ノードを削除し、その結果を一時記憶部に格納する。
ここで、予め設定され一時記憶部に格納される所定のパラメタｃ1及びｃ2を調整することで、ノイズノード削除手段３２によるノイズノードの削除の振る舞いを調整することができる。
【００８３】
クラス決定手段３３は、一時記憶部に格納されたノード、ノード間の辺、及びノードのクラスについて、ノード間に生成された辺に基づいて、ノードの属するクラスを決定し、その結果を一時記憶部に格納する。
【００８４】
具体的には、一時記憶部に格納されたノード、ノード間の辺、及びノードのクラスについて、例えば以下のようにしてノードの属するクラスを決定し、その結果を一時記憶部に格納する。
Ｓ５０１：一時記憶部に格納されたノード及びノードのクラスについて、すべてのノードをどのクラスにも属していない状態にし、その結果を一時記憶部に格納する。
Ｓ５０２：一時記憶部に格納されたノード及びノードのクラスについて、どのクラスにも属していないノードから、ノードｉをランダムに選択し、新しいクラスのラベルを付与し、その結果を一時記憶部に格納する。
Ｓ５０３：一時記憶部に格納されたノード、ノード間の辺、及びノードのクラスについて、ノードｉとパスによって接続しているノードをすべて探索し、ノードｉと同じラベルを付与し、その結果を一時記憶部に格納する。
Ｓ５０４：一時記憶部に格納されたノード及びノードのクラスについて、どのクラスにも属していないノードが存在する場合には、Ｓ５０２へと進み、全てのノードに対してクラスのラベルを付与するまで処理を続ける。
ここで、ノードａ及びノードｂとがパスによって接続されるとは、ノードａ及びノードｂ間において、いくつかの辺を通して２つのノードが接続されることを示す。
即ち、ノード集合Ａに含まれるノードａ、ノードｂ、ノードｘｉ（ｉ＝１，２，・・・，ｎ）に対して、ノードａ及びノードｘ1間の辺を示す（ａ，ｘ1）、ノードｘ1及びノードｘ2間の辺を示す（ｘ1，ｘ2）、・・・、ノードｘｎ及びノードｂ間の辺を示す（ｘｎ，ｂ）という辺の連続が存在する場合に、ノードａ及びノードｂ間とがパスによって接続されるという。
【００８５】
出力情報表示手段３４は、一時記憶部に格納されたノード、及びノードのクラスについて、ノードの属するクラスのクラス数、及び各クラスのプロトタイプベクトルを出力する。
【００８６】
続いて、本実施形態に係る情報処理装置における全体処理フローについて、図５のフローチャートを用いて説明する。図５は、本実施形態に係る情報処理装置による学習処理の処理概要を示すフローチャートである。
Ｓ６０１：入力情報取得手段２１は、ランダムに２つの入力ベクトルを取得し、ノード集合Ａをそれらに対応する２つのノードのみを含む集合として初期化し、その結果を一時記憶部に格納する。また、辺集合Ｃ⊂Ａ×Ａを空集合として初期化し、その結果を一時記憶部に格納する。
Ｓ６０２：入力情報取得手段２１は、新しい入力ベクトルξを入力し、その結果を一時記憶部に格納する。
Ｓ６０３：勝者ノード探索手段２２は、一時記憶部に格納された入力ベクトル及びノードについて、入力ベクトルξに最も近い重みベクトルを持つ第１勝者ノードａ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及び第２勝者ノードａ2間に辺を生成して接続する場合には、辺接続手段３０は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を接続し、その結果を一時記憶部に格納する。
そして、情報処理装置は、一時記憶部に格納された辺及び辺の年齢について、新しく生成された辺、及び、既にノード間に辺が生成されていた場合にはその辺について、辺の年齢を０に設定しその結果を一時記憶部に格納し、第１勝者ノードａ1と直接的に接続される辺の年齢をインクリメントし（１増やす）、その結果を一時記憶部に格納する。
一方、一時記憶部に格納されたＳ６０６における判定の結果、第１勝者ノードａ1及び第２勝者ノードａ2間に辺を接続しない場合には、Ｓ６０８へと処理を進めるが、既にノード間に辺が生成されていた場合には、辺削除手段３１は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノードａ1及び第２勝者ノードａ2間の辺を削除し、その結果を一時記憶部に格納する。尚、上述のＳ４０１乃至Ｓ４０５において示したようにして、辺接続判定手段２９、辺接続手段３０、及び辺削除手段３１は処理を実施する。
次いで、一時記憶部に格納されたノード及びノード密度のポイント値について、第１勝者ノードａ1について、ノード密度算出手段２７は、一時記憶部に格納された第１勝者ノードａ1のノード密度のポイント値を算出しその結果を一時記憶部に格納し、算出され一時記憶部に格納されたノード密度のポイント値を以前までに算出され一時記憶部に格納されたポイント値に加算することで、ノード密度ポイントとして累積し、その結果を一時記憶部に格納する。
次いで、情報処理装置は、一時記憶部に格納された第１勝者ノードａ1が第１勝者ノードとなった累積回数Ｍａ1をインクリメントし（１増やす）、その結果を一時記憶部に格納する。
【００９０】
Ｓ６０８：重みベクトル更新手段２６は、一時記憶部に格納されたノード及びノードの重みベクトルについて、第１勝者ノードａ1の重みベクトル及び第１勝者ノードａ1の隣接ノードの重みベクトルをそれぞれ入力ベクトルξに更に近づけるように更新し、その結果を一時記憶部に格納する。
Ｓ６０９：情報処理装置は、一時記憶部に格納された辺について、予め設定され一時記憶部に格納された閾値ａｇｅｔを超えた年齢を持つ辺を削除し、その結果を一時記憶部に格納する。尚、ａｇｅｔはノイズなどの影響により誤って生成される辺を削除するために使用する。ａｇｅｔに小さな値を設定することにより、辺が削除されやすくなりノイズによる影響を防ぐことができるものの、値を極端に小さくすると、頻繁に辺が削除されるようになり学習結果が不安定になる。一方、極端に大きな値をａｇｅｔに設定すると、ノイズの影響で生成された辺を適切に取り除くことができない。これらを考慮して、パラメタａｇｅｔは実験により予め算出し一時記憶部に格納される。
【００９１】
Ｓ６１０：情報処理装置は、一時記憶部に格納された与えられた入力ベクトルξの総数について、与えられた入力ベクトルξの総数が予め設定され一時記憶部に格納されたλの倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力ベクトルの総数がλの倍数でない場合にはＳ６０２へと戻り、次の入力ベクトルξを処理する。
一方、入力ベクトルξの総数がλの倍数となった場合には以下の処理を実行する。
尚、λはノイズと見なされるノードを削除する周期である。λに小さな値を設定することにより、頻繁にノイズ処理を実施することができるものの、値を極端に小さくすると、実際にはノイズではないノードを誤って削除してしまう。一方、極端に大きな値をλに設定すると、ノイズの影響で生成されたノードを適切に取り除くことができない。これらを考慮して、パラメタλは実験により予め算出し一時記憶部に格納される。
【００９２】
Ｓ６１１：分布重なり領域検出手段２８は、一時記憶部に格納されたサブクラスタ及び分布の重なり領域について、上述のＳ３０１乃至Ｓ３０５において示したようにしてサブクラスタの境界である分布の重なり領域を検出し、その結果を一時記憶部に格納する。
Ｓ６１２：ノード密度算出手段２７は、一時記憶部に格納されて累積されたノード密度ポイントを単位入力数あたりの割合として算出しその結果を一時記憶部に格納し、単位入力数あたりのノードのノード密度を算出し、その結果を一時記憶部に格納する。
Ｓ６１３：ノイズノード削除手段３２は、一時記憶部に格納されたノードについて、ノイズノードと見なしたノードを削除し、その結果を一時記憶部に格納する。尚、Ｓ６１３においてノイズノード削除手段３２が使用するパラメタｃ1及びｃ2はノードをノイズと見なすか否かの判定に使用する。通常、隣接ノード数が２であるノードはノイズではないことが多いため、ｃ1は０に近い値を使用する。また、隣接ノード数が１であるノードはノイズであることが多いため、ｃ2は１に近い値を使用するものとし、これらのパラメタは予め設定され一時記憶部に格納される。
Ｓ６１４：情報処理装置は、一時記憶部に格納された与えられた入力ベクトルξの総数について、与えられた入力ベクトルξの総数が予め設定され一時記憶部に格納されたＬＴの倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力ベクトルの総数がＬＴの倍数でない場合にはＳ６０２へと戻り、次の入力ベクトルξを処理する。
一方、入力ベクトルξの総数がＬＴの倍数となった場合には以下の処理を実行する。
【００９３】
Ｓ６１５：クラス決定手段３３は、一時記憶部に格納されたノード、ノード間の辺、及びノードのクラスについて、ノード間に生成された辺に基づいて、上述のＳ５０１乃至Ｓ５０４において示したようにしてノードの属するクラスを決定し、その結果を一時記憶部に格納する。そして、出力情報表示手段３４は、一時記憶部に格納されたノード及びノードのクラスについて、ノードの属するクラスのクラス数、及び各クラスのプロトタイプベクトルを出力する。以上の処理を終了した後、学習を停止する。
【００９４】
続いて、以下に本実施の形態の具体例として、入力データに対する学習結果を説明する。
まず、図７に示す人工データセットを用いて、従来技術であるＳＯＩＮＮ及び本実施形態の情報処理装置について比較実験を実施する。
【００９５】
図７は、従来技術であるＳＯＩＮＮ及び本実施形態の情報処理装置との比較実験に用いた入力ベクトルの人工データセットを示す図である。
人工データセットは分布に重なりのある２つのガウス分布Ａ及びＢ、２つの同心円Ｃ及びＤ、及びサインカーブＥ１、Ｅ２、Ｅ３の合計５つのクラスによって構成される。また、実世界の環境を想定して、人工データセットには１０％の一様ノイズが加えられている。
図６は、非定常的な環境における図７に示す人工データセットからの入力ベクトルの入力環境を示す表である。定常的な環境においては、人工データセット全体からランダムに入力ベクトルを与えるものとし、非定常的な環境においては、図７に示すように人工データセットを７つの領域Ａ、Ｂ、Ｃ、Ｄ、Ｅ１、Ｅ２、Ｅ３に分け、入力環境を一定期間ごとに図６に示す表に従って切り替えながら入力ベクトルを与えるものとする。このような非定常的な環境における実験は、オンラインでの追加学習を想定して実施するものである。
従来技術であるＳＯＩＮＮについて、同じ人工データセットを用いた実験が実施され、定常的な環境及び非定常的な環境における実験ともに、５つのクラス及び各クラスの位相構造を適切に出力することが示されている。
【００９６】
図８は、図７に示す人工データセットに対する、本実施形態の情報処理装置の出力結果を示す図である。
図８に示すように、定常的な環境及び非定常的な環境のいずれにおいても、本実施形態の情報処理装置は５つのクラス及び各クラスの位相構造を適切に出力することができる。即ち、従来技術であるＳＯＩＮＮに比べて、本実施形態の情報処理装置は同程度の学習機能を有するものである。
尚、予め設定されるパラメタについては、λ＝１００、ａｇｅｔ＝１００、ｃ1＝０．００１、ｃ2＝１．０とし、これらは実験により定めた。
【００９７】
次に、図９は、従来技術であるＳＯＩＮＮ及び本実施形態の情報処理装置との比較実験に用いた入力ベクトルの人工データセットを示す図である。
図９に示す人工データセットは分布に重なりのある３つのガウス分布から構成され、１０％の一様ノイズが加えられている。図９に示す人工データセットは、図７に示す人工データセットに比べて、クラス間の分布に高密度の重なりを持つ。
定常的な環境においては、図９に示す人工データセット全体からランダムに入力ベクトルを選択し、非定常的な環境においては、各クラスから順にそれぞれ１０，０００回ずつ入力ベクトルを選択して学習を実施する。
【００９８】
図１０は、図９に示す人工データセットに対する、従来技術であるＳＯＩＮＮの出力結果を示す図である。
図１０に示すように、定常的な環境及び非定常的な環境のいずれにおいても、従来技術であるＳＯＩＮＮは高密度の重なりのあるクラスを分離することができない。
尚、予め設定されるパラメタについて、λ＝２００、ａｇｅｔ＝５０、ｃ＝１．０については実験により定め、α1＝１/６、α2＝１/４、α3＝１/４、β＝２/３、γ＝３/４については非特許文献２に開示された値と同じ値を使用した。
【００９９】
一方、図１１に示すように、定常的な環境及び非定常的な環境のいずれにおいても、本実施形態の情報処理装置は３つのクラス及び各クラスの位相構造を適切に出力することができる。即ち、本実施形態の情報処理装置は高密度の重なりを持つクラスを分離することができる。
尚、予め設定されるパラメタについては、λ＝２００、ａｇｅｔ＝５０、ｃ1＝０．００１、ｃ2＝１．０とし、これらは実験により定めた。
【０１００】
続いて、実データセットを用いて、従来技術であるＳＯＩＮＮ及び本実施形態の情報処理装置との比較実験を実施する。
【０１０１】
まず、ＡＴ＆Ｔデータベース（ｈｔｔｐ:／／ｗｗｗ．ｕｋ．ｒｅｓｅａｒｃｈ．ａｔｔ．ｃｏｍ）を用いた比較実験を実施する。
実験に使用するデータセットは、ＡＴ＆Ｔ＿ＦＡＣＥデータベースから選択された１０クラス（各クラスは１０個のサンプルを含む）を使用する。データセットに含まれるオリジナル画像は９２×１１２ピクセル、グレースケール２５６階調である（詳細は、非特許文献２における図１１を参照）。
ここで、実験に際しては、オリジナルの画像を２３×２８ピクセルに縮小し（最近傍法により補間)、ガウス分布（サイズ４、分散２）による平滑化処理を施した画像を使用する。これらの処理によって得られた特徴ベクトルを入力ベクトルとして実験に使用する（詳細は、非特許文献２における図１２を参照）。
定常的な環境においては、入力ベクトルをデータセット全体からランダムに選択し、非定常的な環境においては、各クラスから順にそれぞれ１，０００回ずつ入力ベクトルを選択して学習を実施する。
【０１０２】
データセットに対する実験結果は、定常的な環境及び非定常的な環境のいずれにおいても、本実施形態の情報処理装置は出力クラス数として１０クラスを出力する場合が最多である。
尚、予め設定されるパラメタについては、λ＝２５、ａｇｅｔ＝２５、ｃ1＝０．０、ｃ2＝１．０とし、これらは実験により定めた。
【０１０３】
また、本実施形態の情報処理装置が出力するプロトタイプベクトルの一つを用いて、非特許文献２におけるＳＯＩＮＮの実験と同様に、オリジナルのデータセットの識別を実施する。
その結果、本実施形態の情報処理装置は、定常的な環境においては９０％の認識率を、非定常的な環境においては８６％の認識率を得ることができる。
これらの認識率はＳＯＩＮＮと同程度の認識率であり、本実施形態の情報処理装置はＳＯＩＮＮと同程度の認識機能を有するものである。
尚、ＳＯＩＮＮと同程度の認識率を得ることができたのは、データセットに含まれるサンプル数が少なく、クラス間の分布の重なりが低密度であるためと考えられる。
【０１０４】
次に、従来技術であるＳＯＩＮＮ及び本実施形態の情報処理装置の出力結果について、その安定性を比較するため、それぞれ１，０００回ずつ実験を実施して、出力クラス数の頻度を確認する。
図１２は、ＳＯＩＮＮの出力結果である出力クラス数の頻度を示す図である。図１３は、本実施形態の情報処理装置の出力結果である出力クラス数の頻度を示す図である。
図１２及び図１３より、定常的な環境（ｓｔａｔｉｏｎａｒｙ）及び非定常的な環境（ｎｏｎ−ｓｔａｔｉｏｎａｒｙ）のいずれにおいても、本実施形態の情報処理装置はＳＯＩＮＮと比較して１０クラス前後を出力する回数が多い。即ち、本実施形態の情報処理装置は、ＳＯＩＮＮに比べて出力結果が安定する。
【０１０５】
さらに続いて、別の実データを用いて比較実験を実施する。実験に使用するデータとして、Optical Recognition of Handwritten Digits database(Optdigits)を使用する（http://www.ics.uci. edu/~mlearn/MLRepository.html）。このデータセットは１０クラスの手書き数字からなり、学習データとして３，８２３個、テストデータとして１，７９７個のサンプルを含む。サンプルの次元数は６４である。
【０１０６】
図１４は、Ｏｐｔｄｉｇｉｔｓのデータセットに対する、従来技術であるＳＯＩＮＮの出力結果であるプロトタイプベクトルの一例を示す図である。
データセットに対する実験結果は、定常的な環境及び非定常的な環境のいずれにおいても、ＳＯＩＮＮは出力クラス数として１０クラスを出力する場合が最多である。
そして、ＳＯＩＮＮが出力するプロトタイプベクトルの一つを用いて、テストデータの分類を実施すると、定常的な環境においては９２．２％の認識率を、非定常的な環境においては９０．４％の認識率を得ることができる。
さらに、ＳＯＩＮＮについて１００回の実験を実施し、クラス数の変動を確認すると、定常的な環境及び非定常的な環境のいずれにおいても、６乃至１３クラスを出力する。
尚、予め設定されるパラメタについて、λ＝２００、ａｇｅｔ＝５０、ｃ＝１．０については実験により定め、α1＝１/６、α2＝１/４、α3＝１/４、β＝２/３、γ＝３/４については非特許文献２に開示された値と同じ値を使用した。
【０１０７】
図１５は、Ｏｐｔｄｉｇｉｔｓのデータセットに対する、本実施形態の情報処理装置の出力結果であるプロトタイプベクトルの一例を示す図である。
データセットに対する実験結果は、定常的な環境及び非定常的な環境のいずれにおいても、本実施形態の情報処理装置は出力クラス数として１２クラスを出力する場合が最多である。
そして、本実施形態の情報処理装置が出力するプロトタイプベクトルの一つを用いて、テストデータの分類を実施すると、定常的な環境においては９４．３％の認識率を、非定常的な環境においては９５．８％の認識率を得ることができ、ＳＯＩＮＮに比べて高い認識率を得ることができる。
さらに、本実施形態の情報処理装置について１００回の実験を実施して、クラス数の変動を確認すると、定常的な環境及び非定常的な環境のいずれにおいても、１０乃至１３クラスを出力し、ＳＯＩＮＮに比べて出力結果が安定する。
尚、予め設定されるパラメタについては、λ＝２００、ａｇｅｔ＝５０、ｃ1＝０．００１、ｃ2＝１．０とし、これらは実験により定めた。
【０１０８】
ここで、図１４及び図１５に示すプロトタイプベクトルの例を比較すると、ＳＯＩＮＮは「１'」及び「９'」といったサンプルを抽出することができないが、本実施形態の情報処理装置は「１'」及び「９'」といったサンプルを抽出することができる。即ち、ＳＯＩＮＮでは数字の「１」を１つのクラスとして出力するのに対して、本実施形態の情報処理装置は「１」を２つのクラスとして出力することが確認できる（同様にして、本実施形態の情報処理装置は数字の「９」についても２クラスに分けている。)。
これは、オリジナルのデータセットにおいて、図１５に示す「１」及び「１'」といったサンプルの間には大きな違いが認められることより、本実施形態の情報処理装置は「１'」を分離して抽出したものと考えられる(「９」及び「９'」についても同様であるものと考えられる。)。
従って、本実施形態の情報処理装置は、例えば図１５に示す「１」及び「１'」などの分布に重なりのあるクラスを分離することができ、ＳＯＩＮＮに比べて、オリジナルデータの情報をより適切に保存することができる。
以上、実データＯｐｔｄｉｇｉｔｓを使用した実験結果より、本実施形態の情報処理装置は、ＳＯＩＮＮに比べて、分布に重なりのあるクラスを分離することができる。
さらに、本実施形態の情報処理装置は、高い認識率を得ることができるとともに、出力結果の安定性が高いものである。
【０１０９】
以上の通り説明した本発明に係る情報処理装置によって、次のような効果を奏することができる。
まず、分布に高密度の重なりのあるクラスを分離することができる。そして、分布の重なり領域の検出処理においては、平滑化の手法を導入したことより、ＳＯＩＮＮに比べてより安定的に動作することができる。
さらに、１層構造であっても効率的にノイズノードを削除することができるため、完全なオンラインでの追加学習を実現することができる。
さらにまた、ＳＯＩＮＮに比べて、より少ないパラメタで動作するため、処理をより容易に実行することができる。
これにより、例えば、本発明に係る情報処理装置をロボットに搭載することで、ロボットは、周囲から取得する様々な情報を入力データとして、従来は分類が困難であった複雑なデータについても、ノイズデータを排除しながら、リアルタイムで安定して認識することができる。
【０１１０】
その他の発明の実施の形態．
本発明の目的は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは当然である。この場合、記録媒体から読み出されたプログラムコード自体が上述の実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１１１】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているオペレーティングシステム（ＯＳ）などが実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も当然含まれる。
【０１１２】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も当然含まれる。
【０１１３】
本発明を上記記録媒体に適用する場合、その記録媒体には、上述した図５に示すフローチャートに対応するプログラムコードが格納されることになる。
【０１１４】
以上、本発明をその実施の形態により説明したが、本発明はその趣旨の範囲において種々の変形が可能である。
【図面の簡単な説明】
【０１１５】
【図１】クラス間の分布重なり領域の例を示す図である。
【図２】本発明を実施するための構成例を示す図である。
【図３】本発明を実施するための機能ブロックを示す図である。
【図４】細かい凹凸を含んだクラス間の分布重なり領域の例を示す図である。
【図５】本発明に係る実施例による学習処理の処理概要を示すフローチャートである。
【図６】非定常的な環境における入力ベクトルの入力環境を示す表である。
【図７】比較実験に用いた入力ベクトルの人工データセットを示す図である。
【図８】人工データセットに対する本発明に係る実施例の出力結果を示す図である。
【図９】分布の重なりを含み、かつ、ノイズを含む人工データセットを示す図である。
【図１０】人工データセットに対するＳＯＩＮＮの出力結果を示す図である。
【図１１】人工データセットに対する本発明に係る実施例の出力結果を示す図である。
【図１２】ＳＯＩＮＮの出力結果である出力クラス数の頻度を示す図である。
【図１３】本発明に係る実施例の出力結果である出力クラス数の頻度を示す図である。
【図１４】ＳＯＩＮＮの出力結果であるプロトタイプベクトルを示す図である。
【図１５】本発明に係る実施例の出力結果であるプロトタイプベクトルを示す図である。
【図１６】ＳＯＩＮＮによる学習処理の処理概要を示すフローチャートである。
【符号の説明】
【０１１６】
１    情報処理装置
１０    コンピュータ
１１    ＣＰＵ
１２    ＲＯＭ
１３    ＲＡＭ
１４    バス
１５    入出力インターフェイス
１６    入力部
１７    出力部
１８    記憶部
１９    通信部
２０    ドライブ
２０１    磁気ディスク
２０２    光ディスク
２０３    フレキシブルディスク
２０４    半導体メモリ
２１    入力情報取得手段
２２    勝者ノード探索手段
２３    類似度閾値算出手段
２４    類似度閾値判定手段
２５    ノード挿入手段
２６    重みベクトル更新手段
２７    ノード密度算出手段
２８    分布重なり領域検出手段
２９    辺接続判定手段
３０    辺接続手段
３１    辺削除手段
３２    ノイズノード削除手段
３３    クラス決定手段
３４    出力情報表示手段
【図１】
2008217246.tif 000021
【図２】
2008217246.tif 000022
【図３】
2008217246.tif 000023
【図４】
2008217246.tif 000024
【図５】
2008217246.tif 000025
【図６】
2008217246.tif 000026
【図１６】
2008217246.tif 000027
【図７】
2008217246.tif 000028
【図８】
2008217246.tif 000029
【図９】
2008217246.tif 000030
【図１０】
2008217246.tif 000031
【図１１】
2008217246.tif 000032
【図１２】
2008217246.tif 000033
【図１３】
2008217246.tif 000034
【図１４】
2008217246.tif 000035
【図１５】
2008217246.tif 000036