(57)【要約】【課題】学習結果について優れた安定性を有する。【解決手段】情報処理装置１は、入力ベクトルをクラス間挿入ノードとしてネットワークに挿入するクラス間ノード挿入手段と、第１勝者ノード及び第２勝者ノード間に辺を接続したときに、第１勝者ノードについてノードの学習時間を所定の値増加する勝者ノード学習時間算出手段と、入力ベクトルの総数に応じた所定の周期ごとに、ノードの学習時間の値が相対的に大きくかつ偏っているノードを検出し、その検出したノード及びその隣接ノードの近くに新たなノードを挿入し、検出したノードの学習時間及びその隣接ノードの学習時間をそれぞれ減少し、検出したノード及びその隣接ノード間の辺を削除し、新たに挿入したノード及び検出したノード間と、新たに挿入したノード及び検出したノードのその隣接ノード間と、に辺をそれぞれ接続する負荷平衡化手段と、を備える。【選択図】図２１
2014164396.tif 000002
【特許請求の範囲】
【請求項１】
多次元ベクトルで記述されるノード及び当該ノード間を接続する辺が配置されるネットワーク構造を有し、
任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理装置において、
入力される前記入力ベクトルに最も近い距離に位置するノード及び２番目に近い距離に位置するノードを第１勝者ノード及び第２勝者ノードとしてそれぞれ探索する勝者ノード探索手段と、
前記入力ベクトルと前記第１勝者ノード間の距離及び前記入力ベクトルと前記第２勝者ノード間の距離に基づいて、クラス間ノード挿入を実行するか否かを判定するクラス間ノード挿入判定手段と、
前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行する場合に、前記入力ベクトルの成分と同一の成分を重みベクトルとして有するクラス間挿入ノードを生成し、当該生成したクラス間挿入ノードを前記ネットワークに挿入するクラス間ノード挿入手段と、
前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続したときに、前記第１勝者ノードについてノードの学習時間を所定の値増加する勝者ノード学習時間算出手段と、
前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、注目するノードについて当該注目するノードと辺によって直接的に接続されるノードを隣接ノードとして、前記第１勝者ノードの重みベクトル及び前記第１勝者ノードの隣接ノードの重みベクトルをそれぞれ前記入力ベクトルに更に近づけるように更新する重みベクトル更新手段と、
前記入力ベクトルの総数に応じた所定の周期ごとに、前記ノードの学習時間の値が相対的に大きくかつ偏っているノードを検出し、当該検出したノード及びその隣接ノードの重みベクトルに基づく重みベクトルを有する新たなノードを生成して前記ネットワークに挿入し、前記検出したノードの学習時間及び前記検出したノードの隣接ノードの学習時間をそれぞれ減少し、前記検出したノード及びその隣接ノード間の辺を削除し、前記新たに挿入したノード及び前記検出したノード間と、前記新たに挿入したノード及び前記検出したノードのその隣接ノード間と、に辺をそれぞれ接続する負荷平衡化手段と、を備える、
ことを特徴とする情報処理装置。
【請求項２】
前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、付与されるノードのサブクラスタラベルに基づいて、前記第１勝者ノード及び前記第２勝者ノードが属するサブクラスタをそれぞれ判定し、当該判定の結果、前記第１勝者ノード及び前記第２勝者ノードが互いに異なるサブクラスタに属する場合には、前記第１勝者ノード及び前記第２勝者ノードのノード密度に関して、前記第１勝者ノードを含むサブクラスタの平均ノード密度を基準とする前記第１勝者ノードについてのノード密度の条件、又は、前記第２勝者ノードを含むサブクラスタの平均ノード密度を基準とする前記第２勝者ノードについてのノード密度の条件のうちの少なくとも１つを満たすか否かを更に判定する辺接続判定手段と、
（１）前記辺接続判定手段による判定の結果、前記第１勝者ノード及び前記第２勝者ノードの少なくとも１つがいずれのサブクラスタに属していない、又は、同一のサブクラスタに属する場合には、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続し、若しくは、（２）前記辺接続判定手段による判定の結果、前記第１勝者ノード及び前記第２勝者ノードについてのノード密度の条件のうちの少なくとも１つを満たす場合には、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続し、前記第１勝者ノード及び前記第２勝者ノードについてのノード密度の条件のうちの少なくとも１つを満たさない場合には、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続しない辺接続手段と、
注目するノード及び当該注目するノードの隣接ノードからの平均距離に基づいて、当該注目するノードのノード密度を算出するノード密度算出手段と、
局所的に最大のノード密度を有するノードを頂点として、当該頂点に対してそれぞれ異なるサブクラスタラベルを付与し、当該サブクラスタラベルが付与されなかった全てのノードに対してノード密度が最大の隣接ノードと同一のサブクラスタラベルを付与し、前記頂点のうちでノード密度が所定の閾値よりも大きな頂点を基準としてボロノイ領域を生成し、当該生成したボロノイ領域において、前記基準とした頂点を含むサブクラスタと前記基準とした頂点とは異なる他の頂点を含むサブクラスタとが重複領域を有し、かつ、当該重複領域に位置するノードの平均ノード密度の条件を満たす場合に、前記基準とした頂点を含むサブクラスタのサブクラスタラベルを、前記他の頂点を含むサブクラスタのサブクラスタラベルとして付与するサブクラスタ決定手段と、を更に備える、
請求項１に記載の情報処理装置。
【請求項３】
ユークリッド距離に基づいてノード間の距離を算出する重み付きの第１の距離算出式と、前記ユークリッド距離とは異なる他の距離尺度に基づいてノード間の距離を算出する重み付きの第２の距離算出式と、を含むノード間距離算出式を更に備え、
前記ネットワークにおける任意の２つのノード間の前記ユークリッド距離に基づく最小距離値及び最大距離値を用いて前記第１の距離算出式を正規化し、
前記ネットワークにおける任意の２つのノード間の前記他の距離尺度に基づく最小距離値及び最大距離値を用いて前記第２の距離算出式を正規化し、
前記入力ベクトルの次元数が増加するに従って、前記第１の距離算出式の重みを減少させ、
前記ノード間距離算出式を用いて、前記入力ベクトル及び前記ノード間の距離、又は、前記ネットワークにおける任意の２つのノード間の距離を算出する、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記第２の距離算出式は、コサイン距離に基づいてノード間の距離を算出する、
請求項３に記載の情報処理装置。
【請求項５】
前記ユークリッド距離に基づく前記２つのノード間の最小距離値及び最大距離値と、前記他の距離尺度に基づく前記２つのノード間の最小距離値及び最大距離値と、のうちで少なくとも１つの値が変化したか否かを確認し、少なくとも１つの値が変化した場合にはノード密度を更新すると判定するノード密度更新判定手段と、を更に備え、
前記ノード密度算出手段は、
（１）前記第１の距離算出式及び前記第２の距離算出式をそれぞれ用いて前記第１勝者ノードの隣接ノードからの平均距離のベクトルの各成分を算出し、（２）当該算出した前記第１勝者ノードの前記隣接ノードからの平均距離のベクトルに基づいて前記第１勝者ノードのノード密度のポイント値のベクトルを算出し、（３）当該算出した前記第１勝者ノードの前記ノード密度のポイント値のベクトルに基づいて前記第１勝者ノードのノード密度の累積ポイント値のベクトルを算出し、（４）当該算出した前記第１勝者ノードの前記ノード密度の累積ポイント値のベクトルに基づいて前記第１勝者ノードのノード密度を算出し、（５）前記ノード密度更新判定手段による判定の結果、ノード密度を更新する場合には、変化前後における前記ユークリッド距離に基づく前記２つのノード間の最小距離値及び最大距離値と、変化前後における前記他の距離尺度に基づく前記２つのノード間の最小距離値及び最大距離値と、に基づいて、前記ネットワークに存在する全てのノードについて、注目するノードの前記ノード密度の累積ポイント値のベクトルを更新し、（６）当該更新した前記注目するノードの前記ノード密度の累積ポイント値のベクトルに基づいて前記注目するノードの前記ノード密度を再び算出する、
請求項３又は４に記載の情報処理装置。
【請求項６】
多次元ベクトルで記述されるノード及び当該ノード間を接続する辺が配置されるネットワーク構造を有し、
任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理装置における情報処理方法であって、
勝者ノード探索手段が、入力される前記入力ベクトルに最も近い距離に位置するノード及び２番目に近い距離に位置するノードを第１勝者ノード及び第２勝者ノードとしてそれぞれ探索するステップと、
クラス間ノード挿入判定手段が、前記入力ベクトルと前記第１勝者ノード間の距離及び前記入力ベクトルと前記第２勝者ノード間の距離に基づいて、クラス間ノード挿入を実行するか否かを判定するステップと、
クラス間ノード挿入手段が、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行する場合に、前記入力ベクトルの成分と同一の成分を重みベクトルとして有するクラス間挿入ノードを生成し、当該生成したクラス間挿入ノードを前記ネットワークに挿入するステップと、
勝者ノード学習時間算出手段が、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続したときに、前記第１勝者ノードについてノードの学習時間を所定の値増加するステップと、
重みベクトル更新手段が、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、注目するノードについて当該注目するノードと辺によって直接的に接続されるノードを隣接ノードとして、前記第１勝者ノードの重みベクトル及び前記第１勝者ノードの隣接ノードの重みベクトルをそれぞれ前記入力ベクトルに更に近づけるように更新するステップと、
負荷平衡化手段が、前記入力ベクトルの総数に応じた所定の周期ごとに、前記ノードの学習時間の値が相対的に大きくかつ偏っているノードを検出し、当該検出したノード及びその隣接ノードの重みベクトルに基づく重みベクトルを有する新たなノードを生成して前記ネットワークに挿入し、前記検出したノードの学習時間及び前記検出したノードの隣接ノードの学習時間をそれぞれ減少し、前記検出したノード及びその隣接ノード間の辺を削除し、前記新たに挿入したノード及び前記検出したノード間と、前記新たに挿入したノード及び前記検出したノードのその隣接ノード間と、に辺をそれぞれ接続するステップと、を実行する、
ことを特徴とする情報処理方法。
【請求項７】
辺接続判定手段が、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、付与されるノードのサブクラスタラベルに基づいて、前記第１勝者ノード及び前記第２勝者ノードが属するサブクラスタをそれぞれ判定し、当該判定の結果、前記第１勝者ノード及び前記第２勝者ノードが互いに異なるサブクラスタに属する場合には、前記第１勝者ノード及び前記第２勝者ノードのノード密度に関して、前記第１勝者ノードを含むサブクラスタの平均ノード密度を基準とする前記第１勝者ノードについてのノード密度の条件、又は、前記第２勝者ノードを含むサブクラスタの平均ノード密度を基準とする前記第２勝者ノードについてのノード密度の条件のうちの少なくとも１つを満たすか否かを更に判定するステップと、
辺接続手段が、（１）前記辺接続判定手段による判定の結果、前記第１勝者ノード及び前記第２勝者ノードの少なくとも１つがいずれのサブクラスタに属していない、又は、同一のサブクラスタに属する場合には、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続し、若しくは、（２）前記辺接続判定手段による判定の結果、前記第１勝者ノード及び前記第２勝者ノードについてのノード密度の条件のうちの少なくとも１つを満たす場合には、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続し、前記第１勝者ノード及び前記第２勝者ノードについてのノード密度の条件のうちの少なくとも１つを満たさない場合には、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続しないステップと、
ノード密度算出手段が、注目するノード及び当該注目するノードの隣接ノードからの平均距離に基づいて、当該注目するノードのノード密度を算出するステップと、
サブクラスタ決定手段が、局所的に最大のノード密度を有するノードを頂点として、当該頂点に対してそれぞれ異なるサブクラスタラベルを付与し、当該サブクラスタラベルが付与されなかった全てのノードに対してノード密度が最大の隣接ノードと同一のサブクラスタラベルを付与し、前記頂点のうちでノード密度が所定の閾値よりも大きな頂点を基準としてボロノイ領域を生成し、当該生成したボロノイ領域において、前記基準とした頂点を含むサブクラスタと前記基準とした頂点とは異なる他の頂点を含むサブクラスタとが重複領域を有し、かつ、当該重複領域に位置するノードの平均ノード密度の条件を満たす場合に、前記基準とした頂点を含むサブクラスタのサブクラスタラベルを、前記他の頂点を含むサブクラスタのサブクラスタラベルとして付与するステップと、を更に実行する、
請求項６に記載の情報処理方法。
【請求項８】
前記情報処理装置は、ユークリッド距離に基づいてノード間の距離を算出する重み付きの第１の距離算出式と、前記ユークリッド距離とは異なる他の距離尺度に基づいてノード間の距離を算出する重み付きの第２の距離算出式と、を含むノード間距離算出式を更に備え、
前記ネットワークにおける任意の２つのノード間の前記ユークリッド距離に基づく最小距離値及び最大距離値を用いて前記第１の距離算出式を正規化し、
前記ネットワークにおける任意の２つのノード間の前記他の距離尺度に基づく最小距離値及び最大距離値を用いて前記第２の距離算出式を正規化し、
前記入力ベクトルの次元数が増加するに従って、前記第１の距離算出式の重みを減少させ、
前記ノード間距離算出式を用いて、前記入力ベクトル及び前記ノード間の距離、又は、前記ネットワークにおける任意の２つのノード間の距離を算出する、
請求項６又は７に記載の情報処理方法。
【請求項９】
前記第２の距離算出式は、コサイン距離に基づいてノード間の距離を算出する、
請求項８に記載の情報処理方法。
【請求項１０】
ノード密度更新判定手段が、前記ユークリッド距離に基づく前記２つのノード間の最小距離値及び最大距離値と、前記他の距離尺度に基づく前記２つのノード間の最小距離値及び最大距離値と、のうちで少なくとも１つの値が変化したか否かを確認し、少なくとも１つの値が変化した場合にはノード密度を更新すると判定するステップを更に実行し、
前記ノード密度算出手段は、
（１）前記第１の距離算出式及び前記第２の距離算出式をそれぞれ用いて前記第１勝者ノードの隣接ノードからの平均距離のベクトルの各成分を算出し、（２）当該算出した前記第１勝者ノードの前記隣接ノードからの平均距離のベクトルに基づいて前記第１勝者ノードのノード密度のポイント値のベクトルを算出し、（３）当該算出した前記第１勝者ノードの前記ノード密度のポイント値のベクトルに基づいて前記第１勝者ノードのノード密度の累積ポイント値のベクトルを算出し、（４）当該算出した前記第１勝者ノードの前記ノード密度の累積ポイント値のベクトルに基づいて前記第１勝者ノードのノード密度を算出し、（５）前記ノード密度更新判定手段による判定の結果、ノード密度を更新する場合には、変化前後における前記ユークリッド距離に基づく前記２つのノード間の最小距離値及び最大距離値と、変化前後における前記他の距離尺度に基づく前記２つのノード間の最小距離値及び最大距離値と、に基づいて、前記ネットワークに存在する全てのノードについて、注目するノードの前記ノード密度の累積ポイント値のベクトルを更新し、（６）当該更新した前記注目するノードの前記ノード密度の累積ポイント値のベクトルに基づいて前記注目するノードの前記ノード密度を再び算出する、
請求項８又は９に記載の情報処理方法。
【請求項１１】
請求項６乃至１０いずれか１項に記載の情報処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
学習中に必要に応じてニューロンを増殖させる学習手法として、自己組織化ニューラルネットワーク（SOINN：Self-Organizing Incremental Neural Network）と呼ばれる手法が提案されている（非特許文献１を参照。）。非特許文献１に開示されたSOINNでは、ノード数を自律的に管理することにより非定常的な入力を学習することができ、複雑な分布形状を有するクラスに対しても適切なクラス数及び位相構造を抽出できるなど多くの利点を有する。SOINNの応用例として、例えばパターン認識においては、ひらがな文字のクラスを学習させた後に、カタカナ文字のクラスなどを追加的に学習させることができる。
【０００３】
さらに、SOINNに関する技術として、特許文献１に開示されたE-SOINN（Enhanced SOINN）と呼ばれる手法が提案されている。E-SOINNでは、学習を随時追加するオンライン追加学習が可能であり、バッチ学習ではなく学習効率が良いという利点を有している。このため、E-SOINNでは、学習環境が新しい環境に変化した場合においても追加学習が可能である。また、E-SOINNでは、入力データに対するノイズ耐性が高いという利点をも有している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５１３０５２３号公報
【０００５】
【非特許文献１】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.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１に開示される技術（SOINN）や特許文献１に開示される技術（E-SOINN）では、入力データの入力順序によって学習結果が異なってしまうという安定性の問題があった。また、例えば１０００次元以上の高次元データを入力データとする場合に学習精度が低下するという問題もあった。以下、これらの問題をより詳細に説明する。
【０００７】
安定性に関する１つ目の問題点として、入力データの入力順序に応じて学習結果が大きく影響を受けてしまうことがある。即ち、学習環境は変化させずに、入力順序のみを変更して入力データを入力して学習を繰り返した場合に、学習結果（ネットワークにおけるノードの個数及びノードの位置）が異なってしまう。
【０００８】
図１は、実験用の人工データセットを示す。図２（Ａ）、（Ｂ）は、図１のガウスデータ分布セットに対するE-SOINNによる学習結果をそれぞれ示し、入力データの分布に関して２つのガウス分布が重複してしまっている。図２（Ａ）は、５０万回の学習を経た後の、E-SOINNによる定常的な学習結果を示す。図２（Ｂ）は、１００万回の学習を経た後の、E-SOINNによる定常的な学習結果を示す。図２（Ａ）、（Ｂ）から明らかなように、学習の結果生成されたこれらの分布は、図１に示した入力分布と一致していない。即ち、図１に示した入力データには互いに同一の２つのガウス分布を含み、図２（Ａ）、（Ｂ）は、図１の入力データに対する学習結果をそれぞれ示している。しかし、図２（Ａ）、（Ｂ）のそれぞれの学習結果では、各分布の中心におけるノードの個数が同一とならないために、図１の２つのガウス分布のそれぞれの中心と、図２（Ａ）の２つのガウス分布のそれぞれの中心とが一致せず、また、図１の２つのガウス分布のそれぞれの中心と、図２（Ｂ）の２つのガウス分布のそれぞれの中心とも一致しない。本来であれば、図１の２つのガウス分布のそれぞれの中心は、図２（Ａ）、（Ｂ）の２つのガウス分布のそれぞれの中心と一致すべきである。
【０００９】
さらに、E-SOINNの安定性に関する他の問題点を説明する。E-SOINNは、ノードの累積ポイントの平均値を使用して、ノードの密度を表現する（特許文献１の段落００６７、数１２、数１３などを参照。）。E-SOINNは、ノードｉのノード密度のポイント値である"ｐｉ"を、以下の式（１）を用いて算出する。なお、ノード密度のポイント値ｐｉは、ノードｉが勝者ノードである場合に式（１）の算出値が与えられ、そうでない場合には値０が与えられる。
【数１】
2014164396.tif 000003
【００１０】
式（１）におけるｄｉ−（ｄｉ−は、ｄｉの上に記号「−（バー）」が付いていることを示す。）は、ノードｉからその隣接ノードｊまでの平均距離を示し、以下の式（２）を用いて算出する。なお、隣接ノードｊとは、ノードｉと辺によって直接的に接続されるノードを示す。式（２）において、ｍはノードｉの隣接ノードｊの個数を示し、Ｗｉはノードｉの重みベクトルを示し、Ｗｊは隣接ノードｊの重みベクトルを示す。
【数２】
2014164396.tif 000004
【００１１】
E-SOINNによるこの手法を用いて、図２（Ａ）、（Ｂ）に示したノード分布に対してのノードの密度を算出すると、算出されるノードの密度は明らかに不正確なものになる。これは、このノードの分布に対するノードの密度を算出しようとした場合に、当該算出に先立って生成されたノードの分布が入力分布にそもそも一致しておらず、さらに、この入力分布との不一致に起因して、E-SOINNは２つのガウス分布を一つのクラスに誤って統合してしまうことがあるためである。
【００１２】
さらに、E-SOINNの安定性に関する他の問題点を説明する。E-SOINNは、クラス間に存在する大きく重複した領域を削除しようとする。しかし、E-SOINNのアルゴリズムは安定的ではないために、サブクラスタの統合及び分離の繰り返しを引き起こしてしまう。
【００１３】
また、従来技術に関する他の問題点を説明する。従来技術では、高次元データを入力データとした場合に学習精度が低下することがある。例えばE-SOINNでは、ユークリッド距離を使用して最近傍ノードを探索する。しかし、ユークリッド距離の概念を使用して距離を測定すると、与えられた高次元データのデータセットにおける任意の２つの位置が収束してしまうために、入力データの次元数が増加するに従って学習結果の精度が低下してしまう。即ち、高次元空間においてユークリッド距離を使用した場合には、最も近い位置と最も遠い位置との区別が、とりわけ意味をなくしてしまう。このため、E-SOINNは、例えばＤＮＡクラスタリングや文書クラスタリングなどの高次元データを入力ベクトルとする、いくつかのクラスタリングの学習タスクには適していない。
【００１４】
本発明は、上述した問題を解決するためになされたものであり、学習結果について優れた安定性を有する情報処理装置、情報処理方法及びプログラムを提供することを第１の目的とする。さらに、高次元データに対しても良好な精度を有する情報処理装置、情報処理方法及びプログラムを提供することを第２の目的とする。
【課題を解決するための手段】
【００１５】
本発明の一実施の形態に係る情報処理装置は、多次元ベクトルで記述されるノード及び当該ノード間を接続する辺が配置されるネットワーク構造を有し、任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理装置において、入力される前記入力ベクトルに最も近い距離に位置するノード及び２番目に近い距離に位置するノードを第１勝者ノード及び第２勝者ノードとしてそれぞれ探索する勝者ノード探索手段と、前記入力ベクトルと前記第１勝者ノード間の距離及び前記入力ベクトルと前記第２勝者ノード間の距離に基づいて、クラス間ノード挿入を実行するか否かを判定するクラス間ノード挿入判定手段と、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行する場合に、前記入力ベクトルの成分と同一の成分を重みベクトルとして有するクラス間挿入ノードを生成し、当該生成したクラス間挿入ノードを前記ネットワークに挿入するクラス間ノード挿入手段と、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続したときに、前記第１勝者ノードについてノードの学習時間を所定の値増加する勝者ノード学習時間算出手段と、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、注目するノードについて当該注目するノードと辺によって直接的に接続されるノードを隣接ノードとして、前記第１勝者ノードの重みベクトル及び前記第１勝者ノードの隣接ノードの重みベクトルをそれぞれ前記入力ベクトルに更に近づけるように更新する重みベクトル更新手段と、前記入力ベクトルの総数に応じた所定の周期ごとに、前記ノードの学習時間の値が相対的に大きくかつ偏っているノードを検出し、当該検出したノード及びその隣接ノードの重みベクトルに基づく重みベクトルを有する新たなノードを生成して前記ネットワークに挿入し、前記検出したノードの学習時間及び前記検出したノードの隣接ノードの学習時間をそれぞれ減少し、前記検出したノード及びその隣接ノード間の辺を削除し、前記新たに挿入したノード及び前記検出したノード間と、前記新たに挿入したノード及び前記検出したノードのその隣接ノード間と、に辺をそれぞれ接続する負荷平衡化手段と、を備える、ことを特徴とするものである。これによって、入力データの入力順序に影響を受けずに、入力パターンの接続構造を正確に記述することができるため、従来技術に比べてより優れた安定性能を有する。
【００１６】
また、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、付与されるノードのサブクラスタラベルに基づいて、前記第１勝者ノード及び前記第２勝者ノードが属するサブクラスタをそれぞれ判定し、当該判定の結果、前記第１勝者ノード及び前記第２勝者ノードが互いに異なるサブクラスタに属する場合には、前記第１勝者ノード及び前記第２勝者ノードのノード密度に関して、前記第１勝者ノードを含むサブクラスタの平均ノード密度を基準とする前記第１勝者ノードについてのノード密度の条件、又は、前記第２勝者ノードを含むサブクラスタの平均ノード密度を基準とする前記第２勝者ノードについてのノード密度の条件のうちの少なくとも１つを満たすか否かを更に判定する辺接続判定手段と、（１）前記辺接続判定手段による判定の結果、前記第１勝者ノード及び前記第２勝者ノードの少なくとも１つがいずれのサブクラスタに属していない、又は、同一のサブクラスタに属する場合には、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続し、若しくは、（２）前記辺接続判定手段による判定の結果、前記第１勝者ノード及び前記第２勝者ノードについてのノード密度の条件のうちの少なくとも１つを満たす場合には、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続し、前記第１勝者ノード及び前記第２勝者ノードについてのノード密度の条件のうちの少なくとも１つを満たさない場合には、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続しない辺接続手段と、注目するノード及び当該注目するノードの隣接ノードからの平均距離に基づいて、当該注目するノードのノード密度を算出するノード密度算出手段と、局所的に最大のノード密度を有するノードを頂点として、当該頂点に対してそれぞれ異なるサブクラスタラベルを付与し、当該サブクラスタラベルが付与されなかった全てのノードに対してノード密度が最大の隣接ノードと同一のサブクラスタラベルを付与し、前記頂点のうちでノード密度が所定の閾値よりも大きな頂点を基準としてボロノイ領域を生成し、当該生成したボロノイ領域において、前記基準とした頂点を含むサブクラスタと前記基準とした頂点とは異なる他の頂点を含むサブクラスタとが重複領域を有し、かつ、当該重複領域に位置するノードの平均ノード密度の条件を満たす場合に、前記基準とした頂点を含むサブクラスタのサブクラスタラベルを、前記他の頂点を含むサブクラスタのサブクラスタラベルとして付与するサブクラスタ決定手段と、を更に備える、ようにしてもよい。これにより、異なるサブクラスタに混合クラスを分離するときの乱れを回避することができるため、学習結果をより安定させることができる。
【００１７】
また、ユークリッド距離に基づいてノード間の距離を算出する重み付きの第１の距離算出式と、前記ユークリッド距離とは異なる他の距離尺度に基づいてノード間の距離を算出する重み付きの第２の距離算出式と、を含むノード間距離算出式を更に備え、前記ネットワークにおける任意の２つのノード間の前記ユークリッド距離に基づく最小距離値及び最大距離値を用いて前記第１の距離算出式を正規化し、前記ネットワークにおける任意の２つのノード間の前記他の距離尺度に基づく最小距離値及び最大距離値を用いて前記第２の距離算出式を正規化し、前記入力ベクトルの次元数が増加するに従って、前記第１の距離算出式の重みを減少させ、前記ノード間距離算出式を用いて、前記入力ベクトル及び前記ノード間の距離、又は、前記ネットワークにおける任意の２つのノード間の距離を算出するようにしてもよい。これにより、低次元空間におけるユークリッド距離の優位性を得られる上に、学習対象とする問題に応じた柔軟な距離尺度の設定が可能になる。さらに、この枠組みは入力ベクトルの事前の分析を必要としないために、オンライン追加の自己増殖型学習タスク、あるいは限られた入力ベクトルのサンプルによる実世界の学習タスクに適している。
【００１８】
また、前記第２の距離算出式は、コサイン距離に基づいてノード間の距離を算出するようにしてもよい。これによって、高次元データに対しても良好な精度を有することができる。
【００１９】
また、前記ユークリッド距離に基づく前記２つのノード間の最小距離値及び最大距離値と、前記他の距離尺度に基づく前記２つのノード間の最小距離値及び最大距離値と、のうちで少なくとも１つの値が変化したか否かを確認し、少なくとも１つの値が変化した場合にはノード密度を更新すると判定するノード密度更新判定手段と、を更に備え、前記ノード密度算出手段は、（１）前記第１の距離算出式及び前記第２の距離算出式をそれぞれ用いて前記第１勝者ノードの隣接ノードからの平均距離のベクトルの各成分を算出し、（２）当該算出した前記第１勝者ノードの前記隣接ノードからの平均距離のベクトルに基づいて前記第１勝者ノードのノード密度のポイント値のベクトルを算出し、（３）当該算出した前記第１勝者ノードの前記ノード密度のポイント値のベクトルに基づいて前記第１勝者ノードのノード密度の累積ポイント値のベクトルを算出し、（４）当該算出した前記第１勝者ノードの前記ノード密度の累積ポイント値のベクトルに基づいて前記第１勝者ノードのノード密度を算出し、（５）前記ノード密度更新判定手段による判定の結果、ノード密度を更新する場合には、変化前後における前記ユークリッド距離に基づく前記２つのノード間の最小距離値及び最大距離値と、変化前後における前記他の距離尺度に基づく前記２つのノード間の最小距離値及び最大距離値と、に基づいて、前記ネットワークに存在する全てのノードについて、注目するノードの前記ノード密度の累積ポイント値のベクトルを更新し、（６）当該更新した前記注目するノードの前記ノード密度の累積ポイント値のベクトルに基づいて前記注目するノードの前記ノード密度を再び算出するようにしてもよい。これにより、ノードが挿入されたことに起因して、ユークリッド距離に基づく２つのノード間の最小距離値及び最大距離値と、他の距離尺度に基づく２つのノード間の最小距離値及び最大距離値と、のうちで少なくとも１つの値が変化した場合においても、これらの変化を反映させたより正確なノード密度を自動的に算出することができる。
【００２０】
本発明の一実施の形態に係る情報処理方法は、多次元ベクトルで記述されるノード及び当該ノード間を接続する辺が配置されるネットワーク構造を有し、任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理装置における情報処理方法であって、勝者ノード探索手段が、入力される前記入力ベクトルに最も近い距離に位置するノード及び２番目に近い距離に位置するノードを第１勝者ノード及び第２勝者ノードとしてそれぞれ探索するステップと、クラス間ノード挿入判定手段が、前記入力ベクトルと前記第１勝者ノード間の距離及び前記入力ベクトルと前記第２勝者ノード間の距離に基づいて、クラス間ノード挿入を実行するか否かを判定するステップと、クラス間ノード挿入手段が、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行する場合に、前記入力ベクトルの成分と同一の成分を重みベクトルとして有するクラス間挿入ノードを生成し、当該生成したクラス間挿入ノードを前記ネットワークに挿入するステップと、勝者ノード学習時間算出手段が、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、前記第１勝者ノード及び前記第２勝者ノード間に辺を接続したときに、前記第１勝者ノードについてノードの学習時間を所定の値増加するステップと、重みベクトル更新手段が、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、注目するノードについて当該注目するノードと辺によって直接的に接続されるノードを隣接ノードとして、前記第１勝者ノードの重みベクトル及び前記第１勝者ノードの隣接ノードの重みベクトルをそれぞれ前記入力ベクトルに更に近づけるように更新するステップと、負荷平衡化手段が、前記入力ベクトルの総数に応じた所定の周期ごとに、前記ノードの学習時間の値が相対的に大きくかつ偏っているノードを検出し、当該検出したノード及びその隣接ノードの重みベクトルに基づく重みベクトルを有する新たなノードを生成して前記ネットワークに挿入し、前記検出したノードの学習時間及び前記検出したノードの隣接ノードの学習時間をそれぞれ減少し、前記検出したノード及びその隣接ノード間の辺を削除し、前記新たに挿入したノード及び前記検出したノード間と、前記新たに挿入したノード及び前記検出したノードのその隣接ノード間と、に辺をそれぞれ接続するステップと、を実行する、ことを特徴とするものである。これによって、入力データの入力順序に影響を受けずに、入力パターンの接続構造を正確に記述することができるため、従来技術に比べてより優れた安定性能を有する。
【００２１】
本発明の一実施の形態に係るプログラムは、上記情報処理をコンピュータに実行させることを特徴とするものである。これによって、入力データの入力順序に影響を受けずに、入力パターンの接続構造を正確に記述することができるため、従来技術に比べてより優れた安定性能を有する。
【発明の効果】
【００２２】
本発明によれば、学習結果について優れた安定性を有する情報処理装置、情報処理方法及びプログラムを提供することができる。さらに、高次元データに対しても良好な精度を有する情報処理装置、情報処理方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の課題を説明するための図である。
【図２Ａ】本発明の課題を説明するための図である。
【図２Ｂ】本発明の課題を説明するための図である。
【図３】本発明の課題を説明するための図である。
【図４】本発明の課題を説明するための図である。
【図５】本実施の形態に係るサブクラスタ決定処理を説明するための図である。
【図６】本実施の形態に係るボロノイ領域の一例を説明するための図である。
【図７】LBSOINN及びE-SOINNの学習時間の分布を示すグラフである。
【図８】人工データセットＩに対するノード密度の分布を示すグラフである。
【図９】人工データセットＩに対するE-SOINNの実験結果を示すグラフである。
【図１０】人工データセットＩに対するLBSOINNの実験結果を示すグラフである。
【図１１】本実施の形態に係る実験に使用する人工データセットＩＩを示す図である。
【図１２Ａ】人工データセットＩＩに対するLBSOINN及びE-SOINNの学習結果を示す図である。
【図１２Ｂ】人工データセットＩＩに対するLBSOINN及びE-SOINNの学習結果を示す図である。
【図１２Ｃ】人工データセットＩＩに対するLBSOINN及びE-SOINNの学習結果を示す図である。
【図１２Ｄ】人工データセットＩＩに対するLBSOINN及びE-SOINNの学習結果を示す図である。
【図１２Ｅ】人工データセットＩＩに対するLBSOINN及びE-SOINNの学習結果を示す図である。
【図１２Ｆ】人工データセットＩＩに対するLBSOINN及びE-SOINNの学習結果を示す図である。
【図１２Ｇ】人工データセットＩＩに対するLBSOINN及びE-SOINNの学習結果を示す図である。
【図１２Ｈ】人工データセットＩＩに対するLBSOINN及びE-SOINNの学習結果を示す図である。
【図１２Ｉ】人工データセットＩＩに対するLBSOINN及びE-SOINNの学習結果を示す図である。
【図１２Ｊ】人工データセットＩＩに対するLBSOINN及びE-SOINNの学習結果を示す図である。
【図１３】本実施の形態に係る実験に使用する人工データセットＩＩＩを示す図である。
【図１４】定常的な環境下における人工データセットＩＩに対するLBSOINNの学習結果を示す図である。
【図１５】非定常的な環境下における人工データセットＩＩに対するLBSOINNの学習結果を示す図である。
【図１６】本実施の形態に係る実験に使用するＡＴ＆Ｔ顔画像データセットのオリジナル画像である。
【図１７】ＡＴ＆Ｔ顔画像データセットのオリジナル画像の特徴ベクトルを示す画像である。
【図１８Ａ】ＡＴ＆Ｔ顔画像データセットに対するE-SOINNによるクラスの個数の分布を示すグラフである。
【図１８Ｂ】ＡＴ＆Ｔ顔画像データセットに対するLBSOINNによるクラスの個数の分布を示すグラフである。
【図１９】異なる各クラスに対して異なるパーセントを入力したときの精度を示す。
【図２０】本実施の形態に係る情報処理装置を実施するための構成例を示す図である。
【図２１】本実施の形態に係る情報処理装置の機能ブロックを示す図である。
【図２２】本実施の形態に係る情報処理装置による学習処理の処理概要を示すフローチャートである。
【図２３】本実施の形態に係るサブクラスタの重複領域に位置するノードを説明するための図である。
【図２４Ａ】本実施の形態に係るサブクラスタの統合処理の様子を説明するための図である。
【図２４Ｂ】本実施の形態に係るサブクラスタの統合処理の様子を説明するための図である。
【図２４Ｃ】本実施の形態に係るサブクラスタの統合処理の様子を説明するための図である。
【発明を実施するための形態】
【００２４】
本発明の実施の形態に係る具体的な構成・処理の説明に先立ち、本発明の理解をより容易とするために、本発明に関連する技術（以下、E-SOINNと称する。）の概要を簡単に説明する。
E-SOINNは、入力データの入力順序に学習結果が大きく依存するという問題を有している。図３を参照して、E-SOINNによる学習結果を説明する。図３は、E-SOINNによる処理（特許文献１の図５のＳ６１１、Ｓ６０７、Ｓ６１２などの処理を指す。具体的には、明細書の段落００７１〜００７９に記載の処理を指す。）を実行した後の、ネットワークにおけるノードのノード密度の分布を示している。この例では、サブクラスタ間の重複領域が存在し、また、ノード密度の分布は大きな変動を有している。
【００２５】
図３において、符号Ａ及び符号Ｂは、E-SOINNによる処理によって生成された２つのサブクラスタをそれぞれ示す。なお、ネットワークにおいて辺によって接続されるノードの集合をクラスタとし、クラスタの部分集合をサブクラスタとする。ここで、サブクラスタとは、同一のサブクラスタラベルが付与されたノードからなる集合である。E-SOINNは、サブクラスタＡ及びサブクラスタＢを統合するために、所定の条件（特許文献１の明細書の段落００７６、数（１４）、数（１５）などにより示される。）を定めている。
【００２６】
E-SOINNは、新たな入力データがネットワークに入力されたときに、その第１勝者ノードがサブクラスタＡに属し、かつ、第２勝者ノードがサブクラスタＢに属し、さらに、（サブクラスタＡ及びＢの重複領域に入力データが初めて現れたために、）サブクラスタＡ及びサブクラスタＢと、サブクラスタＣ及びサブクラスタＤとが統合されていないという状況下では、明らかに、サブクラスタＡ及びＢを統合する条件をとても容易に満たしてしまう。E-SOINNは、サブクラスタＡ及びサブクラスタＢを統合しようとするが、サブクラスタＡはサブクラスタＣに本来属すべきであり、サブクラスタＢはサブクラスタＤに本来属すべきである。従って、この問題は、サブクラスタの統合及び分離の繰り返しを引き起こしてしまう。図４は、３つのガウス分布を有する入力データに対するE-SOINNによる学習結果を示し、３つのガウス分布が互いに重複を有しており、また、複数のサブクラスタへの統合及び分離の乱れが行われている。
【００２７】
以下、自己組織化ニューラルネットワーク（SOINN：Self-Organizing Incremental Neural Network）に関する技術として、本発明に係る技術を、LBSOINN（Load Balance Self-Organizing Incremental Neural Network）と称する。
【００２８】
LBSOINNは、ネットワークにおけるノードの負荷をノード学習時間として扱い、このノード学習時間を使用したノードの負荷の平衡化手法を提案する。LBSOINNは、この負荷平衡化手法によって、ネットワークをより安定化させることができる。このため、LBSOINNを負荷平衡（Load Balance）と称している。また、LBSOINNは、ボロノイテセレーション（Voronoi Tessellation）に基づくサブクラスタ決定手法を使用することによって、クラス間の重複領域を削除する際のネットワーク構造の乱れを回避する。さらに、LBSOINNは、２つのノード間の類似度を示す距離尺度に関して、高次元データをオンライン追加学習するのに適した、新たな距離尺度を導入する。
【００２９】
また、詳細は後述するが、本発明に関する効果を確認するための実験を行い、LBSOINNの有効性を確認した。実験では、人工データセットに加え実世界での例に対してもLBSOINNを適用し、クラスタリングにおけるLBSOINNの有効性を実証した。全ての実験結果から、LBSOINNがE-SOINNよりも優れた安定性を有し、また、高次元空間における良好なパフォーマンスを有していることが示された。
【００３０】
実施の形態１．
以下、図面を参照して本発明の実施の形態について説明する。
図２０は、LBSOINNの一例としての、本実施の形態１に係る情報処理装置を実現するためのシステム構成の一例を示す図である。情報処理装置１は、専用コンピュータ、パーソナルコンピュータ（ＰＣ）などのコンピュータ１０により実現可能である。但し、コンピュータは、物理的に単一である必要はなく、分散処理を実行する場合には、複数であってもよい。図２０に示すように、コンピュータ１０は、ＣＰＵ１１（Central Processing Unit）、ＲＯＭ１２（Read Only Memory）及びＲＡＭ１３（Random Access Memory）を有し、これらがバス１４を介して相互に接続されている。尚、コンピュータを動作させるためのＯＳソフトなどは、説明を省略するが、この情報処理装置を構築するコンピュータも当然備えているものとする。
【００３１】
バス１４には又、入出力インターフェイス１５も接続されている。入出力インターフェイス１５には、例えば、キーボード、マウス、センサなどよりなる入力部１６、ＣＲＴ、ＬＣＤなどよりなるディスプレイ、並びにヘッドフォンやスピーカなどよりなる出力部１７、ハードディスクなどより構成される記憶部１８、モデム、ターミナルアダプタなどより構成される通信部１９などが接続されている。
【００３２】
ＣＰＵ１１は、ＲＯＭ１２に記憶されている各種プログラム、又は記憶部１８からＲＡＭ１３にロードされた各種プログラムに従って各種の処理、本実施の形態においては、例えば後述するノード密度算出手段２３や負荷平衡化手段３３などの各手段の処理を実行する。ＲＡＭ１３には又、ＣＰＵ１１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００３３】
通信部１９は、例えば図示しないインターネットを介しての通信処理を行ったり、ＣＰＵ１１から提供されたデータを送信したり、通信相手から受信したデータをＣＰＵ１１、ＲＡＭ１３、記憶部１８に出力したりする。記憶部１８はＣＰＵ１１との間でやり取りし、情報の保存・消去を行う。通信部１９は又、他の装置との間で、アナログ信号又はディジタル信号の通信処理を行う。
【００３４】
入出力インターフェイス１５はまた、必要に応じてドライブ２０が接続され、例えば、磁気ディスク２０１、光ディスク２０２、フレキシブルディスク２０３、又は半導体メモリ２０４などが適宜装着され、それらから読み出されたコンピュータプログラムが必要に応じて記憶部１８にインストールされる。
【００３５】
続いて、本実施形態に係る情報処理装置１における各処理について、その主な処理を図２１に示す機能ブロック図を用いて説明する。ハードウェア上は、各処理は実際にはソフトウェアと上記ＣＰＵ１１などのハードウェア資源とが協働して実現している。
【００３６】
情報処理装置１は、ｎ次元ベクトルで記述されるノードが配置される非階層構造のニューラルネットワークを有し、入力情報取得手段２１、ノード密度更新判定手段２２、ノード密度算出手段２３、勝者ノード探索手段２４、クラス間ノード挿入判定手段２５、クラス間ノード挿入手段２６、辺接続判定手段２７、辺接続手段２８、勝者ノード学習時間算出手段２９、重みベクトル更新手段３０、老齢辺削除手段３１、入力数判定手段３２、負荷平衡化手段３３、サブクラスタ決定手段３４、ノイズノード削除手段３５、学習終了判定手段３６、クラス決定手段３７、出力情報表示手段３８を含む。以下、各手段の詳細を説明する。
【００３７】
本実施形態においては、情報処理装置１が有するニューラルネットワークは、入力ベクトルをニューラルネットワークに入力し、入力される入力ベクトルに基づいて、ニューラルネットワークに配置されるノードを自動的に増加させる自己増殖型ニューラルネットワークであり、また、ニューラルネットワークは非階層構造を有するものとして以下説明する。
【００３８】
自己増殖型ニューラルネットワークを用いてノードを自動的に増加させることができるため、入力ベクトル空間からランダムに入力ベクトルが与えられる定常的な環境に限られず、例えば一定期間毎に入力ベクトルの属するクラスが切替えられて、切替後のクラスからランダムに入力ベクトルが与えられる非定常的な環境にも対応することができる。さらにまた、非階層構造を採用することで、他の層での学習を開始するタイミングを指定せずに追加学習を実施することができる。即ち、完全なオンラインでの追加学習を実施することができる。
【００３９】
入力情報取得手段２１は、情報処理装置１に入力として与えられる情報として、任意のクラスに属するｎ次元の入力ベクトルを取得する。そして、取得された入力ベクトルを一時記憶部（例えばＲＡＭ１３）に格納し、一時記憶部に格納されたニューラルネットワークに対して順次入力する。
【００４０】
ノード密度更新判定手段２２は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値について、各距離尺度に基づくノード間の最小距離値及び最大距離値のうちで少なくとも１つの値が変化したか否かを確認し、少なくとも１つの値が変化した場合にはノード密度を更新すると判定し、その結果を一時記憶部に格納する。なお、各距離尺度に基づくノード間の最小距離値及び最大距離値の詳細については後述する。
【００４１】
ノード密度算出手段２３は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値、隣接ノードからのノードの平均距離のベクトル、ノードのノード密度のポイント値のベクトル、ノード密度の累積ポイント値のベクトル、ノード密度について、第１の距離算出式及び第２の距離算出式をそれぞれ用いて第１勝者ノードの隣接ノードからの平均距離のベクトルの各成分を算出し、当該算出した第１勝者ノードの隣接ノードからの平均距離のベクトルに基づいて第１勝者ノードのノード密度のポイント値のベクトルを算出し、当該算出した第１勝者ノードのノード密度のポイント値のベクトルに基づいて第１勝者ノードのノード密度の累積ポイント値のベクトルを算出し、当該算出した第１勝者ノードのノード密度の累積ポイント値のベクトルに基づいて第１勝者ノードのノード密度を算出し、その結果を一時記憶部に格納する。なお、第１の距離算出式及び第２の距離算出式、第１勝者ノードのノード密度の算出処理の詳細については後述する。
【００４２】
また、ノード密度算出手段２３は、一時記憶部に格納されたノード密度更新判定手段２２による判定の結果、ノード密度を更新する場合には、一時記憶部に格納されたノード、ノード密度の累積ポイント値のベクトル、ノードの学習時間、各距離尺度に基づくノード間の最小距離値及び最大距離値について、変化前後におけるユークリッド距離に基づく２つのノード間の最小距離値及び最大距離値と、変化前後における他の距離尺度に基づく２つのノード間の最小距離値及び最大距離値と、に基づいて、ネットワークに存在する全てのノードについて、注目するノードのノード密度の累積ポイント値のベクトルを更新し、当該更新した注目するノードのノード密度の累積ポイント値のベクトルに基づいて注目するノードのノード密度を再び算出し、その結果を一時記憶部に格納する。なお、注目するノードの累積ポイント値のベクトルの算出処理の詳細については後述する。
【００４３】
勝者ノード探索手段２４は、一時記憶部に格納される入力ベクトル及びノードについて、入力ベクトルに最も近い距離に位置するノードを第１勝者ノードとし、２番目に近い距離に位置するノードを第２勝者ノードとして探索し、その結果を一時記憶部に格納する。なお、本実施の形態に係る距離尺度の詳細については後述する。
【００４４】
クラス間ノード挿入判定手段２５は、一時記憶部に格納された入力ベクトル及びノードについて、入力ベクトルと第１勝者ノード間の距離及び入力ベクトルと第２勝者ノード間の距離に基づいて、クラス間ノード挿入を実行するか否かを判定し、その結果を一時記憶部に格納する。なお、本実施の形態に係るクラス間ノード挿入判定処理の詳細については後述する。
【００４５】
クラス間ノード挿入手段２６は、一時記憶部に格納されたクラス間ノード挿入判定手段２５による判定結果に応じて、一時記憶部に格納された入力ベクトルについて、入力ベクトルが新たにネットワークに追加するノードであるものと見なし、その入力ベクトルの成分と同一の成分を重みベクトルとして有するクラス間挿入ノードを生成し、生成したクラス間挿入ノードをネットワークに挿入し、その結果を一時記憶部に格納する。
【００４６】
辺接続判定手段２７は、一時記憶部に格納されたクラス間ノード挿入判定手段２５による判定結果に応じて、一時記憶部に格納されたノード、ノードのサブクラスタラベルについて、ノードのサブクラスタラベルに基づいて、第１勝者ノード及び第２勝者ノードが属するサブクラスタをそれぞれ判定し、その結果を一時記憶部に格納する。ここで、ノードのサブクラスタラベルとは、そのノードが属するサブクラスタを示す。クラスタとは、混合クラスに含まれるノードについて、辺によって接続されるノードの集合を示し、サブクラスタは、同一のサブクラスタラベルが付与されたノードからなるクラスタの部分集合を示す。
【００４７】
また、辺接続判定手段２７は、一時記憶部に格納された判定の結果、第１勝者ノード及び第２勝者ノードが互いに異なるサブクラスタに属する場合には、一時記憶部に格納されたノード、ノードの密度、ノードのサブクラスタラベルについて、第１勝者ノード及び第２勝者ノードのノード密度に関して、第１勝者ノードを含むサブクラスタの平均ノード密度を基準とする第１勝者ノードのノード密度の条件、又は、第２勝者ノードを含むサブクラスタの平均ノード密度を基準とする第２勝者ノードのノード密度の条件のうちの少なくとも１つを満たすか否かを更に判定し、その結果を一時記憶部に格納する。なお、辺接続判定手段２７による辺接続判定処理の詳細については後述する。
【００４８】
辺接続手段２８は、一時記憶部に格納された辺接続判定手段２７による判定の結果、第１勝者ノード及び第２勝者ノードの少なくとも１つがいずれのサブクラスタに属していない、又は、同一のサブクラスタに属する場合には、一時記憶部に格納されたノード、ノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を接続し、その結果を一時記憶部に格納する。
【００４９】
また、辺接続手段２８は、一時記憶部に格納された辺接続判定手段２７による判定の結果、上記の第１勝者及び第２勝者ノードのノード密度の条件のうちの少なくとも１つを満たす場合には、一時記憶部に格納されたノード、ノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を接続し、その結果を一時記憶部に格納する。
【００５０】
また、辺接続手段２８は、一時記憶部に格納された辺接続判定手段２７による判定の結果、上記の第１勝者及び第２勝者ノードのノード密度の条件のうちの少なくとも１つを満たさない場合には、一時記憶部に格納されたノード、ノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を接続せず（第１勝者ノード及び第２勝者ノード間に辺が存在する場合には辺を削除する）、その結果を一時記憶部に格納する。なお、辺接続手段２８による勝者ノード接続処理の詳細については後述する。
【００５１】
勝者ノード学習時間算出手段２９は、一時記憶部に格納されたノード、ノードの学習時間について、第１勝者ノードの学習時間を所定の値増加し、その結果を一時記憶部に格納する。なお、本実施形態において、ノードの学習時間の詳細については後述する。
【００５２】
重みベクトル更新手段３０は、一時記憶部に格納されたノード、ノードの重みベクトルについて、注目するノードについて注目するノードと辺によって直接的に接続されるノードを隣接ノードとして、第１勝者ノードの重みベクトル及び第１勝者ノードの隣接ノードの重みベクトルをそれぞれ入力ベクトルに更に近づけるように更新し、その結果を一時記憶部に格納する。
【００５３】
老齢辺削除手段３１は、一時記憶部に格納されたノード、ノード間の辺、辺の年齢について、第１勝者ノードと直接的に接続される全ての辺の年齢を所定の値増加し、その結果を一時記憶部に格納する。また、老齢辺削除手段３１は、一時記憶部に格納された辺について、予め設定され一時記憶部に格納された所定の閾値を超えた年齢を有する辺を削除し、その結果を一時記憶部に格納する。
【００５４】
入力数判定手段３２は、一時記憶部に格納された与えられた入力ベクトルの総数について、与えられた入力ベクトルの総数が予め設定され一時記憶部に格納された所定の単位数の倍数であるか否かを判定し、その結果を一時記憶部に格納する。
【００５５】
負荷平衡化手段３３は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノードの重みベクトル、ノードの学習時間について、入力ベクトルの総数に応じた所定の周期ごとに、ノードの学習時間の値が相対的に大きくかつ偏っているノードを検出し、当該検出したノード及びその隣接ノードの重みベクトルに基づく重みベクトルを有する新たなノードを生成してネットワークに挿入し、検出したノードの学習時間及び検出したノードの隣接ノードの学習時間をそれぞれ減少し、検出したノード及びその隣接ノード間の辺を削除し、新たに挿入したノード及び検出したノード間と、新たに挿入したノード及び検出したノードのその隣接ノード間と、に辺をそれぞれ接続し、その結果を一時記憶部に格納する。なお、負荷平衡化手段３３によるノードの負荷平衡化処理の詳細については後述する。
【００５６】
サブクラスタ決定手段３４は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノード密度、ボロノイ領域について、局所的に最大のノード密度を有するノードを頂点として、当該頂点に対してそれぞれ異なるサブクラスタラベルを付与し、当該サブクラスタラベルが付与されなかった全てのノードに対してノード密度が最大の隣接ノードと同一のサブクラスタラベルを付与し、頂点のうちでノード密度が所定の閾値よりも大きな頂点を基準としてボロノイ領域を生成し、当該生成したボロノイ領域において、基準とした頂点を含むサブクラスタと基準とした頂点とは異なる他の頂点を含むサブクラスタとが重複領域を有し、かつ、当該重複領域に位置するノードの平均ノード密度の条件を満たす場合に、基準とした頂点を含むサブクラスタのサブクラスタラベルを、他の頂点を含むサブクラスタのサブクラスタラベルとして付与し、その結果を一時記憶部に格納する。なお、サブクラスタ決定手段３４による処理の詳細については後述する。
【００５７】
ノイズノード削除手段３５は、一時記憶部に格納されたノード、ノード密度、ノード間の辺、隣接ノードの個数について、注目するノードについて、注目するノードの隣接ノードの個数及びノード密度に基づいて、注目するノードを削除し、その結果を一時記憶部に格納する。
【００５８】
学習終了判定手段３６は、情報処理装置１による学習処理を終了するか否かを判定する。
【００５９】
クラス決定手段３７は、一時記憶部に格納されたノード、ノード間の辺、ノードのクラスについて、ノード間に生成された辺に基づいて、ノードの属するクラスを決定し、その結果を一時記憶部に格納する。
【００６０】
出力情報表示手段３８は、一時記憶部に格納されたノード及びノードのクラスについて、ノードの属するクラスのクラス数、及び各クラスのプロトタイプベクトルを出力する。
【００６１】
次に、本実施の形態に係る情報処理装置１が有する特徴的な構成・処理を説明する。以下では、＜１：ノード間の負荷平衡化処理＞、＜２：サブクラスタの決定処理＞、＜３：新たな距離尺度の組み合わせの枠組み＞、＜４：類似度閾値の定義＞、＜５：新たなノード密度の定義及びその算出処理＞、＜６：辺接続判定処理及び辺接続処理＞の順に説明する。
【００６２】
＜１：ノード間の負荷平衡化処理＞
E-SOINNは、第１勝者又は第２勝者の類似度閾値による判定のみを単純に使用して、新たな入力ベクトルであるクラス間ノードをネットワークに挿入すべきか否かを決定する。このため、ネットワークの学習を新たに開始しようとしたときにノードの接続構造が既に構築されていた場合には、新たなノードをネットワークに挿入することが困難になる。この構築済みのノードの接続構造は入力データの入力順序に大きく影響されるため、E-SOINNの学習結果は安定しない。また、図２に示したように、この欠点はノードの密度を算出する際には、入力データに対する低い精度をもたらしてしまう。
【００６３】
ノードの接続構造を正確に表現するためには、ノードの個数を十分な数にすることが重要であり、このこと自体はよく知られている。ネットワークのいくつかの領域においてノードの個数が十分でない場合、それらの領域におけるノードの学習時間の値が大きくかつ偏った状況になる。本実施の形態では、この状況をノードの負荷が不均衡な状態にあるものと定義する。本実施の形態では、この負荷の不均衡を解消するために、以下に示すノード間の負荷平衡化処理を導入する。
【００６４】
＜１−１：ノード間の負荷平衡化処理（Ｓ１０１〜Ｓ１０７）＞
入力ベクトルの入力総数が所定の単位数（λ）の整数倍となった場合、負荷平衡化手段３３は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノードの重みベクトル、ノードの学習時間、ノードの密度について、ノードが属するサブクラスタの平均学習時間と比較して当該ノードの学習時間の値が相対的に大きくかつ偏ったノード（負荷が不均衡な状態にあるノード）を検出し、当該検出したノードとその隣接ノードの間に新たなノードを挿入し、当該検出したノードとその隣接ノードの学習時間を減少し、その結果を一時記憶部に格納する。これによって、負荷平衡化手段３３は、負荷が不均衡な状態にあるノードについて負荷を平衡化させる。以下、ノードの負荷平衡化処理を具体的に説明する。なお、ノードの学習時間及びノードの密度の詳細については後述する。
【００６５】
Ｓ１０１：負荷平衡化手段３３は、一時記憶部に格納されたノード、ノードのサブクラスタラベル、ノードの学習時間について、ノードの学習時間に基づいて、各サブクラスタにおいて相対的に大きなノードの学習時間を有するノードを探索し、その結果を一時記憶部に格納する。負荷平衡化手段３３は、例えば、各サブクラスタにおいて最大のノードの学習時間を有するノードｑを探索し、その結果を一時記憶部に格納する。さらに、負荷平衡化手段３３は、一時記憶部に格納されたノード、ノードの学習時間について、検出したノードｑの学習時間が、相対的に大きくかつ偏っているか否かを判定し、その結果を一時記憶部に格納する。負荷平衡化手段３３は、例えば、ノードｑの学習時間Ｍｑ及びノードｑが属するサブクラスタの平均学習時間Ｍｃｑａｖｅｒａｇｅについて、Ｍｑ＞３Ｍｃｑａｖｅｒａｇｅが成立するか否か判定し、その結果を一時記憶部に格納する。なお、負荷平衡化手段３３は、ノードｑが属するサブクラスタに含まれる全てのノードの学習時間を平均することによって、ノードｑが属するサブクラスタの平均学習時間Ｍｃｑａｖｅｒａｇｅを算出し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、Ｍｑ＞３Ｍｃｑａｖｅｒａｇｅが成立する場合には、負荷平衡化手段３３は、以下のようにして新たなノードを追加し、Ｍｑ＞３Ｍｃｑａｖｅｒａｇｅが成立しない場合には、ノードの追加を行わない。
【００６６】
Ｓ１０２：負荷平衡化手段３３は、一時記憶部に格納されたノード、ノードの学習時間について、ノードの学習時間に基づいて、ノードｑの隣接ノードのうちで、例えば最大の学習時間を有する隣接ノードｆを決定し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段３３は、一時記憶部に格納される以下の式を満たす隣接ノードｆを決定し、その結果を一時記憶部に格納する。ここで、Ｎｑは、ノードｑの隣接ノード集合を示す。
【数３】
2014164396.tif 000005
【００６７】
Ｓ１０３：負荷平衡化手段３３は、一時記憶部に格納されたノードについて、新たなノードｒを生成してネットワークに追加し、その結果を一時記憶部に格納する。また、負荷平衡化手段３３は、一時記憶部に格納されたノード、ノードの重みベクトルについて、ノードｒの重みベクトルＷｒを、ノードｑの重みベクトルＷｑ及び隣接ノードｆの重みベクトルＷｆを用いて補間して算出し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段３３は、一時記憶部に格納される以下の式に示す操作及び算出処理を実行し、その結果を一時記憶部に格納する。
【数４】
2014164396.tif 000006
【００６８】
Ｓ１０４：負荷平衡化手段３３は、一時記憶部に格納されたノード、ノードの学習時間について、ノードｒの学習時間Ｍｒを、ノードｑの学習時間Ｍｑ及び隣接ノードｆの学習時間Ｍｆを用いて補間して算出し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段３３は、一時記憶部に格納される以下の式に示す算出処理を実行し、その結果を一時記憶部に格納する。ここで、ｄは入力ベクトルの次元数を示す。
【数５】
2014164396.tif 000007
【００６９】
Ｓ１０５：負荷平衡化手段３３は、一時記憶部に格納されたノード、ノードの学習時間について、ノードｑの学習時間Ｍｑ及び隣接ノードｆの学習時間Ｍｆを所定の割合それぞれ減少し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段３３は、一時記憶部に格納される以下の式に示す算出処理を実行し、その結果を一時記憶部に格納する。ここで、ｄは入力ベクトルの次元数を示す。
【数６】
2014164396.tif 000008
【００７０】
Ｓ１０６：負荷平衡化手段３３は、一時記憶部に格納されたノード、ノードの密度について、ノードｒの密度ｈｒを、ノードｑの密度ｈｑ及び隣接ノードｆの密度ｈｆを用いて補間して算出し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段３３は、一時記憶部に格納される以下の式に示す算出処理を実行し、その結果を一時記憶部に格納する。
【数７】
2014164396.tif 000009
【００７１】
Ｓ１０７：負荷平衡化手段３３は、一時記憶部に格納されたノード、ノード間の辺について、新たなノードｒとノードｑを接続する辺と、新たなノードｒと隣接ノードｆを接続する辺と、を生成し、また、ノードｑ及び隣接ノードｆの間に元々存在する辺を削除し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段３３は、一時記憶部に格納される以下の式（８）、式（９）に示す操作を実行し、その結果を一時記憶部に格納する。ここで、Ｃは辺集合を示し、例えば（ｒ，ｑ）はノードｒ及びノードｑ間を接続する辺を示す。
【数８】
2014164396.tif 000010
【数９】
2014164396.tif 000011
【００７２】
上述したように、情報処理装置１は、ノードが属するサブクラスタの平均学習時間を基準レベルとして採用し、ネットワークにノードを新たに挿入するか否かという追加学習のタスクに適用する。このため、事前の学習結果により得られた知識（ノード及びその接続構造を含むネットワーク）は、新たに入力される入力ベクトルに影響しない。この処理によって、情報処理装置１によるノード接続構造の生成処理は、E-SOINNとは異なったものになる。
【００７３】
情報処理装置１は、ネットワークに入力ベクトルを新たに挿入すべきか否かに関し、第１勝者又は第２勝者の類似度閾値を使用してノードの挿入を行うクラス間ノード挿入処理に加えて、負荷が不均衡な状態にあるノード（即ち、ノードの学習時間の値が相対的に大きくかつ偏ったノード）を検出して、この検出したノードの近くに新たなノードを挿入する負荷平衡化処理を実行する。これによって、ネットワークにおけるノードの負荷を平衡化させることができる。そして、情報処理装置１は、上述したＳ１０１〜Ｓ１０７に示す新たなノード挿入と、後述するＳ５０７に示すノード挿入と、の両方がクラス間挿入に属する場合、ネットワークにおけるノードの個数を十分なものにすることができ、この結果、入力データの密度分布を正確に反映することができる。従って、入力データの入力順序に影響を受けずに、入力パターンの接続構造を正確に記述することができるため、従来技術に比べてより優れた安定性能を有する。
【００７４】
＜２：サブクラスタの決定処理＞
入力ベクトルの入力個数が所定の単位数（λ）の整数倍となった場合、上述した負荷平衡化処理に加えて、サブクラスタ決定手段３４は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノードの密度、ボロノイ領域について、ボロノイテセレーション（Voronoi Tessellation）に基づくサブクラスタの決定処理を実行し、その結果を一時記憶部に格納する。なお、サブクラスタの決定処理とは、ネットワークに存在するノードに対してサブクラスタラベルを付与することによって、当該ノードが属するサブクラスタを決定する処理である。
【００７５】
上述したように、E-SOINNによる処理はサブクラスタの統合及び分離の繰り返しを引き起こしてしまう。これは、E-SOINNによる処理（特許文献１の図５のＳ６１１の処理を指す。具体的には、明細書の段落００７１に記載の処理を指す。）の実行後にネットワークに多くのサブクラスタが存在し、さらに、E-SOINNによる処理（特許文献１の図５のＳ６０７、Ｓ６１２などの処理を指す。具体的には、明細書の段落００７２〜００７９に記載の処理を指す。）によって、真のサブクラスタの外縁に位置するサブクラスタが容易に統合されてしまうためである。情報処理装置１は、以下に示すサブクラスタの統合を目的とするサブクラスタ決定処理を導入することによって、E-SOINNが有する問題に対処する。
【００７６】
本実施の形態では、以下の処理についての理解をより容易とするために、"サブクラスタ"という用語に代えて"隆起（tuber）"という用語を使用する。後述するように、本実施の形態では、局所的に最大のノード密度を有するノード及び当該ノードと辺によって接続されるノードからなる集合を記述するために、この隆起という用語を使用する。なお、隆起とは通常、山の盛り上がりを示すが、本実施の形態では、あるクラスに含まれる複数のサブクラスタに関して各サブクラスタが含むノードのノード密度の高低を考慮して、ノード密度の盛り上がりを表現するために隆起という用語を用いる。例えば、図５において、Ａ、Ｂ、Ｃ、Ｄはそれぞれ隆起を示す。Ａ及びＣはそれぞれ同一のクラスに属し、Ｂ及びＤはそれぞれ他の同一のクラスに属する。
【００７７】
後述するように、本実施の形態では、サブクラスタ決定処理を、各ボロノイ領域において、ノード密度が高密度の隆起から低密度の隆起へと向けて実行する。図５において、例えば、隆起Ａからサブクラスタ決定処理を開始した場合、隆起Ｂは隆起Ａと容易に統合し、その結果、ネットワークもまた乱れてしまう。さらに、隆起のサブクラスタ決定処理は、他の隆起と統合することを回避するように、正確に停止する必要がある。また、図５において、例えば、隆起Ｃのサブクラスタ決定処理では、隆起Ｂと統合しないようにする必要がある。
【００７８】
隆起の決定処理を以下に示す。この処理は、分離及び降下平滑化アルゴリズム（SDSA：Separate and Downhill smooth algorithm）とも呼ばれる。なお、以下の処理では、局所的に最大のノード密度を有するノードを、隆起の頂点と称する。言い換えると、隆起の頂点とは、対応する隆起に含まれるノードのうちで最大のノード密度を有するノードを示す。
【００７９】
＜２−１：サブクラスタの決定処理（Ｓ２０１〜Ｓ２０５、Ｓ３０１〜Ｓ３０５）＞
Ｓ２０１：サブクラスタ決定手段３４は、一時記憶部に格納されたノード、ノードの密度について、混合クラスにおける全てのノードについて局所的に最大のノード密度を有するノードを探索し、その探索したノードを隆起の頂点としてノード集合ＬＭに追加し、その結果を一時記憶部に格納する。サブクラスタ決定手段３４は、一時記憶部に格納されたノード、ノードのサブクラスタラベル（隆起ラベル）について、探索した頂点全てに対してそれぞれ異なる隆起ラベルを付与し、その結果を一時記憶部に格納する。
【００８０】
Ｓ２０２：サブクラスタ決定手段３４は、一時記憶部に格納されたノード、ノード間を接続する辺、ノードのサブクラスタラベル（隆起ラベル）について、Ｓ２０１において隆起ラベルが付与されなかった全てのノードに対して、ノード密度が最大の隣接ノードと同じ隆起ラベルを付与する。即ち、Ｓ２０１において、各頂点に対してそれぞれ異なる隆起ラベルが付与される。そして、Ｓ２０２において、頂点を除いた他の全てのノードのそれぞれに対して、当該ノードの隣接ノードのうちで最大のノード密度を有するノードの隆起ラベルが付与される。このようにして全てのノードに対して隆起ラベルが付与され、同一の隆起ラベルが付与されたノードからなる集合を隆起（サブクラスタ）として扱うことで、混合クラスを、複数の隆起（サブクラスタ）に分離する。ここで、注目するノードとその隣接ノードが互いに異なる隆起ラベルを有する場合には、その注目するノード及びその隣接ノードは、分布の重複領域に位置する可能性がある。
【００８１】
Ｓ２０３：サブクラスタ決定手段３４は、一時記憶部に格納されたノード、ノードの密度について、頂点のノード集合ＬＭにおいてノード密度がβより大きなノードを探索し、探索したノードをノード集合Ｋに追加し、その結果を一時記憶部に格納する。例えば、サブクラスタ決定手段３４は、一時記憶部に格納される以下の式に示す算出処理を実行することによって値βを算出し、その結果を一時記憶部に格納する。ここで、γはユーザーによって予め適当な値が決定されて設定されるパラメータ（１＜γ＜２）を示し、ｈｍｅａｎは、頂点の集合ＬＭに含まれる全ての頂点のノードの密度の平均値を示し、ｈｍａｘはノード集合ＬＭに含まれる頂点のノード密度のうちで最大のノード密度を示す。
【数１０】
2014164396.tif 000012
【００８２】
Ｓ２０４：サブクラスタ決定手段３４は、一時記憶部に格納されたノード、ノードの重みベクトル、ボロノイ領域について、ノード集合Ｋに基づいて、頂点のノード集合ＬＭについてのボロノイ領域（図６を参照。）を生成し、その結果を一時記憶部に格納する。例えば、サブクラスタ決定手段３４は、一時記憶部に格納される以下の式（１１）に示す操作を実行し、その結果を一時記憶部に格納する。式（１１）に示すボロノイ領域の生成処理では、ノード集合Ｋに含まれるノードＫｉをシード（seed）として、このシードに対応するボロノイ領域Ｖｉを生成する。即ち、ノード集合Ｋに含まれるノードＫｉは、ボロノイ領域Ｖｉにおけるｉ番目のシードとなる。このように、Ｓ２０１〜２０４に示す処理では、ノード集合ＬＭは全ての頂点を含み、ノード集合Ｋは全ての頂点のうちでノード密度がβよりも高い頂点を含む。そして、ノード集合Ｋをボロノイ領域のシードとして使用する。例えば図６において、このようなシードを○（白丸）を用いて示している。
【数１１】
2014164396.tif 000013
なお、ボロノイ領域は人工知能及び数学の分野における基礎的な知識であり（例えば、http://en.m.wikipedia.org/wiki/Voronoi_diagram を参照。）、上述したボロノイ領域の生成処理は、公知のボロノイ領域生成処理を実行すればよい。このため、ここでは、その詳細な説明を省略する。
【００８３】
Ｓ２０５：サブクラスタ決定手段３４は、一時記憶部に格納されたノード、ノード間の辺、ノードの密度、ノードのサブクラスタラベル（隆起ラベル）、ボロノイ領域について、以下のＳ３０１〜Ｓ３０５に示す処理を実行し、Ｓ２０４において生成した全てのボロノイ領域におけるサブクラスタの統合を行うことによってサブクラスタを決定し、その結果を一時記憶部に格納する。ここで、ボロノイ領域においてサブクラスタを決定するとは、各ボロノイ領域に含まれる隆起についてノード密度に関する所定の条件を満足する場合に、各隆起の隆起ラベルをノードＫｉの隆起ラベルに統合する処理を指す。なお、所定の条件とは、例えば、後述する式（１２）又は式（１３）のいずれかを満足することを指す。
【００８４】
Ｓ３０１：サブクラスタ決定手段３４は、一時記憶部に格納されたノード、ノードのサブクラスタラベル（隆起ラベル）、ボロノイ領域について、ノードに付与された隆起ラベルに基づいて、あるボロノイ領域Ｖｉにおいて、当該ボロノイ領域Ｖｉに含まれるノードＫｉの隆起（Ｋｉ）とノードｊを含む隆起（ｊ）とが重複領域を有するか否かを判定し、その結果を一時記憶部に格納する。なお、ここでは、理解を容易とするため、ノードＫｉが属する隆起を隆起（Ｋｉ）とし、ノードＫｉに付与された隆起ラベルを隆起ラベル（Ｋｉ）とし、ノードｊが属する隆起を隆起（ｊ）とし、ノードｊに付与された隆起ラベルを隆起ラベル（ｊ）として説明する。また、ここでのノードｊとは、頂点の集合ＬＭに含まれるノードであって、且つ、ボロノイ領域Ｖｉに含まれるノードを指す。
【００８５】
サブクラスタ決定手段３４は、ノードＫｉの隆起（Ｋｉ）とノードｊを含む隆起（ｊ）とが重複領域を有するか否かを、例えば、以下のようにして判定する。サブクラスタ決定手段３４は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル（隆起ラベル）について、ネットワークに含まれるノード間の辺およびノードに付与された隆起ラベルに基づいて、その一端のノードの隆起ラベルが隆起ラベル（Ｋｉ）であり、かつ、他端のノードの隆起ラベルが隆起ラベル（ｊ）である辺が存在するか否かを判定し、判定の結果、そのような辺が存在する場合には、ノードＫｉの隆起（Ｋｉ）とノードｊを含む隆起（ｊ）とが重複領域を有するものと判定し、その結果を一時記憶部に格納する。
【００８６】
Ｓ３０２：サブクラスタ決定手段３４は、一時記憶部に格納された判定の結果、ノードＫｉの隆起（Ｋｉ）とノードｊを含む隆起（ｊ）とが重複領域を有する場合、ノード集合ＯＫｉにノードｊを追加する。ノード集合ＯＫｉとは、ノードＫｉの隆起（Ｋｉ）とノードｊを含む隆起（ｊ）とが重複領域を有する場合に、ノードＫｉの隆起（Ｋｉ）に対して統合する可能性のある隆起（ｊ）を格納しておくための集合である。サブクラスタ決定手段３４は、ノードＫｉの隆起（Ｋｉ）とノードｊを含む隆起（ｊ）とが重複領域を有しない場合には、Ｓ３０１へと処理を進め、他のボロノイ領域Ｖｉについて処理を行う。
【００８７】
Ｓ３０３：サブクラスタ決定手段３４は、一時記憶部に格納されたノード集合ＯＫｉについて、ノード集合ＯＫｉが空集合であるか否か判定し、その結果を一時記憶部に格納する。サブクラスタ決定手段３４は、一時記憶部に格納された判定の結果、ノード集合ＯＫｉが空集合である場合には、Ｓ３０１へと処理を進め他のボロノイ領域Ｖｉについて処理を行い、ノード集合ＯＫｉが空集合でない場合には、Ｓ３０４へと処理を進める。
【００８８】
Ｓ３０４：サブクラスタ決定手段３４は、例えば、ノード集合ＯＫｉに含まれるノードｊそれぞれについて、一時記憶部に格納される以下の式（１２）又は式（１３）のいずれか１つを満足するか否かを判定し、その結果を一時記憶部に格納する。サブクラスタ決定手段３４は、一時記憶部に格納された判定の結果、以下の式（１２）又は式（１３）のいずれか１つを満足する場合には、ノードｊ∈ＯＫｉの隆起ラベルとして、ノードＫｉの隆起ラベル（Ｋｉ）を付与する。即ち、サブクラスタ決定手段３４は、ノードｊの隆起ラベル（ｊ）をノードＫｉの隆起ラベル隆起（Ｋｉ）に変更することによって、ノードｊが属する隆起（ｊ）を、ノードＫｉが属する隆起（Ｋｉ）に統合する。
【数１２】
2014164396.tif 000014
【数１３】
2014164396.tif 000015
式（１２）及び式（１３）において、ｈＫｉは、ノードＫｉのノード密度を示す。ｍｅａｎＫｉは、隆起（Ｋｉ）に含まれるノード（ネットワークに含まれるノード）のノード密度の平均ノード密度を示す。ｈｊは、ノードｊのノード密度を示す。ｍｅａｎｊは、隆起（ｊ）に含まれるノード（ネットワークに含まれるノード）のノード密度の平均ノード密度を示す。
【００８９】
ここで、ｍｅａｎＯＲの定義を説明する。ノード集合ＯＫｉに含まれるノードｊの隆起（ｊ）について、隆起（Ｋｉ）と隆起（ｊ）とが重複領域を有する場合には、隆起ラベル（Ｋｉ）であるノードと、隆起ラベル（ｊ）であるノードとを接続する辺が存在する。この辺によって直接的に接続される各ノードを、隆起（Ｋｉ）と隆起（ｊ）の重複領域に位置するノードと称する。ｍｅａｎＯＲは、このようなノードのノード密度の平均ノード密度を示す。例えば、図２３に例示する場合では、隆起（Ｋｉ）と隆起（ｊ）とが２つの辺によって接続されており、これらの隆起は重複領域を有している。そして、これらの辺により接続されるノードとして、隆起（Ｋｉ）の２つのノードと、隆起（ｊ）の２つのノードが存在し、これらの４個のノードが隆起（Ｋｉ）と隆起（ｊ）の重複領域に位置する。ｍｅａｎＯＲは、これらの４個のノードのノード密度を平均して算出する。
【００９０】
また、θは、ユーザーによって予め適切な値が決定されて設定されるパラメータを示し、その値は［１，２］の範囲内において定められる。また、θは許容度の要素のパラメータであり、１つのクラスにおいて、隆起（Ｋｉ）と隆起（ｊ）との間の差異をどの程度許容するのかを決定するために使用される。θが増加するにつれてこの許容度はより小さくなる。
【００９１】
Ｓ３０５：サブクラスタ決定手段３４は、一時記憶部に格納されたノード集合ＯＫｉを空集合に設定し、ステップＳ３０１へと処理を進め、再びステップＳ３０１以降の処理を開始する。
【００９２】
Ｓ３０１〜Ｓ３０５の処理の様子を、図２４（Ａ）、（Ｂ）、（Ｃ）を参照して説明する。
図２４（Ａ）に示すように、ボロノイ領域Ｖ１において、隆起（Ｋ１）、隆起（ｊ１）、隆起（ｊ２）、隆起（ｊ３）、隆起（ｊ４）、隆起（ｊ５）、隆起（ｊ６）、隆起（ｊ７）、隆起（ｊ８）が含まれている。図において、各隆起を破線による白抜きの丸を用いて示す。なお、各ノードおよびノード間の辺については図示を省略した。
【００９３】
サブクラスタ決定手段３４は、Ｓ３０１において、隆起（Ｋ１）と隆起（ｊ１）が重複領域を有しているか否か、・・・、隆起Ｋ１と隆起ｊ８が重複領域を有しているか否か、をそれぞれ判定する。サブクラスタ決定手段３４は、Ｓ３０２において、隆起（Ｋ１）と隆起（ｊ１）が重複領域を有している場合には、隆起（ｊ１）のノードｊ１を集合ＯＫ１に追加し、隆起（Ｋ１）と隆起（ｊ２）が重複領域を有している場合には、隆起（ｊ２）のノードｊ２を集合ＯＫ１に追加し、隆起（Ｋ１）と隆起（ｊ３）が重複領域を有している場合には、隆起（ｊ３）のノードｊ３をＯＫ１に追加する。この結果、集合ＯＫ１は、ノードｊ１、ｊ２、ｊ３を含む。
【００９４】
次に、サブクラスタ決定手段３４は、Ｓ３０３において、集合ＯＫ１が空集合でないために、次のＳ３０４へと進む。サブクラスタ決定手段３４は、Ｓ３０４において、ノードｊ１が属する隆起（ｊ１）について式（１２）または（１３）が成立するか判定し、成立する場合には、ノードＫ１の隆起ラベル（Ｋ１）をノードｊ１の隆起ラベルとして付与する。また、サブクラスタ決定手段３４は、Ｓ３０４において、ノードｊ２が属する隆起（ｊ２）について式（１２）または（１３）が成立するか判定し、成立する場合には、ノードＫ１の隆起ラベル（Ｋ１）をノードｊ２の隆起ラベルとして付与する。また、サブクラスタ決定手段３４は、Ｓ３０４において、ノードｊ３が属する隆起（ｊ３）について式（１２）または（１３）が成立するか判定し、成立する場合には、ノードＫ１の隆起ラベル（Ｋ１）をノードｊ３の隆起ラベルとして付与する。この処理の結果、隆起ラベルに基づく各隆起の状態を、図２４（Ｂ）に示す。
【００９５】
次に、サブクラスタ決定手段３４は、Ｓ３０５において、集合ＯＫ１を空集合に設定し、ステップ３０１へと進む。サブクラスタ決定手段３４は、Ｓ３０１において、隆起（Ｋ１）と隆起（ｊ４）が重複領域を有しているか否か、・・・、隆起（Ｋ１）と隆起（ｊ８）が重複領域を有しているか否か、をそれぞれ判定し、Ｓ３０２において、これらの全ての隆起（ｊ４）〜（ｊ８）が隆起（Ｋ１）と重複領域を有している場合には、隆起（ｊ４）〜（ｊ８）のノードｊ４〜ｊ８を集合ＯＫ１に追加する。この結果、集合ＯＫ１は、ノードｊ４〜ｊ８を含む。サブクラスタ決定手段３４は、Ｓ３０３を経てＳ３０４において、ノードｊ４〜ｊ８がそれぞれ属する隆起（ｊ４）〜（ｊ８）について、式（１３）または（１３）が成立するかそれぞれ判定し、成立する場合には、ノードＫ１の隆起ラベル（Ｋ１）を、ノードｊ４〜ｊ８の隆起ラベルとして付与する。この処理の結果、隆起ラベルに基づく各隆起の状態を、図２４（Ｃ）に示す。このようにして、サブクラスタ決定手段３４は、各ボロノイ領域において、ボロノイ領域のシードとした頂点が属する隆起を中心として、他の隆起の統合を繰り返す。
【００９６】
サブクラスタ決定処理は、高いノード密度の隆起から低いノード密度の隆起へと向けて開始すべきである。このため、式（１０）の目的は、ノード密度の境界βを探索して、その境界βの密度がどの程度高いかを決定することである。ノード密度がこの境界βよりも高い隆起は、対応するサブクラスタの中心になりやすい。このため、この種の隆起のノードを、頂点のノード集合Ｋに追加する。なお、本実施の形態では、隆起に含まれるノードのうちで、局所的に最大のノード密度を有するノードのみをノード集合Ｋに追加することによって、メモリを節約している。さらに、そのノード密度が境界βよりも低い全ての他の隆起は、ノード集合Ｋにおいて対応するボロノイ領域の要素となる。
【００９７】
そして、サブクラスタ決定処理を、ノード集合Ｋにおける要素（ノードＫｉ）から開始する。加えて、サブクラスタ決定処理は、同一のボロノイ領域における隆起間においてのみ行う。異なるサブクラスタに属するかもしれない隆起を一緒に統合してしまうことは回避すべきであるため、同一のボロノイ領域における隆起間についてのみサブクラスタ決定処理を行うことはとても重要である。このような目的を実現するために、本実施の形態では、Ｓ３０１〜Ｓ３０５に示した処理を実行する。
【００９８】
Ｓ３０１〜Ｓ３０５に示したサブクラスタ決定処理は、各ボロノイ領域の中心の隆起から開始する。Ｓ３０１〜Ｓ３０５に示したサブクラスタ決定処理は繰り返し処理であり、隆起間に重複領域が存在し、かつ、ノード密度に関する上述した所定の条件を満たす場合に、ボロノイ領域の中心の隆起は、重複領域を有する隆起を統合する。なお、各繰り返し処理において、当初は重複領域を有していなかったいくつかの隆起について、最後の繰り返し処理において、重複領域を有することがある。Ｓ３０１〜Ｓ３０５に示した処理は、異なる方向に向けて山を降りていく処理にとても類似する処理である。
【００９９】
図５は、E-SOINNによって生成された変動を有する分布と、情報処理装置１によって生成されてサブクラスタが統合された分布を概念的に示している。本実施の形態に係るＳ２０１〜Ｓ２０５及びＳ３０１〜Ｓ３０５の処理によれば、明らかに、異なるサブクラスタに混合クラスを分離するときの乱れを回避することができる。言い換えると、情報処理装置１は、E-SOINNよりも安定であると言える。
【０１００】
＜３：新たな距離尺度の組み合わせの枠組み＞
E-SOINNは、ユークリッド距離を使用して最近傍ノード（最も近い距離に位置するノード）を探索する。しかしながら、入力データが高次元である場合には、ユークリッド距離を使用すると距離が集中するように見られ、データ要素間での全ての距離がとても類似するように見えてしまう（非特許文献：Verleysen, M., Francois, D. , "The Concentration of Fractional Distances", IEEE Trans. on Knowledge and Data Engineering 19(7), 873-886 (2007).を参照。）。この現象は、"次元の呪い"と呼ばれている。次元の呪いを打倒するためにこれまでに多くの手法が提案されている。
【０１０１】
例えば、高次元において近似する類似探索問題を解決するために、局所性鋭敏型ハッシュ（LSH：Locality Sensitive Hashing）手法が広く用いられている（非特許文献：Aristides Gionis , Piotr Indyk , Rajeev Motwani, "Similarity Search in High Dimensions via Hashing", Proceedings of the 25th International Conference on Very Large Data Bases, p.518-529, September 07-10, 1999.や、非特許文献：M. Datar, N. Immorlica, P. Indyk, and V.S. Mirrokni, "Locality-sensitive hashing scheme based on p-stable distributions", in Proc. Symposium on Computational Geometry, 2004, pp.253-262.を参照。）。しかし、LSHは、メモリ消費量が大きすぎるという大きな制約があり（非特許文献：Xiaoguang Gu, Yongdong Zhang, Lei Zhang, Dongming Zhang and Jintao Li, "An improved method of locality sensitive hashing for indexing large-scale and high-dimensional features," in Press, Signal Processing, 2012.を参照。）、オンライン追加学習タスクにLSHを使用することができない。さらに、コンテンツベースの類似サーチ手法として、関連するフィードバックアルゴリズムが与えられて、最適なノルムを選択するという手法がある。しかしながら、この手法もまた、オンライン追加学習タスクには使用することができない（非特許文献：Verleysen, M., Francois, D. , "The Concentration of Fractional Distances", IEEE Trans. on Knowledge and Data Engineering 19(7), 873-886 (2007).を参照。）。
【０１０２】
入力データの次元が低次元である場合、ユークリッド距離に基づく距離は有効である。入力データが高次元である場合に有効な距離尺度としては、例えば、コサイン距離、マンハッタン距離（Manhattan distance）、フラクショナル距離（fractional distance）などのいくつかが提案されている。しかし、オンライン追加学習環境においては、サンプルデータを事前に得ることができない。言い換えると、事前に入力ベクトルの次元数を分析し、どの距離尺度が有効であるかを決定することができない。このため、本実施の形態では、距離尺度の組み合わせの枠組みを提案し、高次元空間において有効な他の距離尺度とユークリッド距離を統合する。これによって、次元の呪いを克服する。この距離尺度の組み合わせの枠組みは、オンライン自己増殖型追加学習タスクに適したものである。
【０１０３】
本実施の形態に係る距離尺度の組み合わせの枠組みである距離算出式を、例えば、以下の式（１４）に示す。ここで、Ｄ（ｐ，ｑ）はノードｐ及びノードｑの間の距離を示す。ｄは入力ベクトルの次元数を示し、ｎは距離尺度の個数を示す。ηは、ユーザーによって予め適当な値が決定されて設定されるパラメータである。なお、ηは、実験を経て予め適当な値を決定し、ユーザーによって当該値を設定するものとしてもよいし、入力ベクトルの次元数を変数とする関数を情報処理装置１に設定し、情報処理装置１が、当該関数を用いて入力データの次元数に応じた適当な値を自ら算出して設定するようにしてもよい。
【０１０４】
式（１４）に示す距離算出式は、第１項部分と、第２項部分を含む。第１項部分は、ユークリッド距離に基づいてノード間の距離を算出する第１の距離算出式の一例である。第２項部分は、ユークリッド距離とは異なる他の距離尺度に基づいてノード間の距離を算出する、複数の距離算出式の一例である。第１項部分及び第２項部分はそれぞれ重み付けがされており、当該重み付けは、パラメータη及びｄに応じて設定されている。後述するように、入力ベクトルの次元数ｄが増加するに従って、第１の距離算出式の重みを減少させるように設定されている。
【０１０５】
ＥＵｐｑは、ノードｐ及びノードｑの間のユークリッド距離に基づく距離を示し、式（１５）により算出する。ＥＵｍｉｎ及びＥＵｍａｘは、ネットワークにおける任意の２つのノード間の最小のユークリッド距離及び最大のユークリッド距離をそれぞれ示す。ＥＵｍａｘの値は減少せずに増加するだけであり、このことは、ＥＵｍａｘの値が、学習の過程においてそれまでに現れた最大のユークリッド距離であることを示す。また、学習フェーズが続く限り、ＥＵｍｉｎの値は増加せずに減少するだけであり、このことは、ＥＵｍｉｎの値が、学習の過程においてそれまでに現れた最小のユークリッド距離であることを示す。
【０１０６】
Ｄｉｐｑ、Ｄｉｍｉｎ、Ｄｉｍａｘは、ｉ番目の距離尺度に関するものである。Ｄｉｐｑは、ノードｐ及びノードｑの間のｉ番目の距離尺度に基づく距離を示す。Ｄｉｍｉｎ及びＤｉｍａｘは、ネットワークにおける任意の２つのノード間のｉ番目の距離尺度に基づく最小の距離値及び最大の距離値をそれぞれ示す。即ち、これらはＥＵｐｑ、ＥＵｍｉｎ、ＥＵｍａｘとそれぞれ同一の意味合いを有する。
【０１０７】
各距離尺度に基づく距離は、互いに異なるスケールである。このため各距離尺度に基づく距離算出式を一つの距離算出式に統合するために、各距離尺度に基づく２つのノード間の最小距離値及び最大距離値を用いて、式（１４）に示すようにして２つのノード間の距離を正規化する。
【０１０８】
また、式（１４）では、入力ベクトルの次元数が増加するに従って、式（１４）に示すノード間距離算出式の値に占めるユークリッド距離に基づく距離算出式による値の比率を減少させ、これに対応するように、他の距離尺度に基づく距離算出式による値の比率を増加させる。
【０１０９】
従って、このようなノード間距離算出式に示す枠組みによれば、低次元空間におけるユークリッド距離の優位性を得られる上に、高次元空間における学習タスクに対して情報処理装置１を適用させることも可能となる。さらに、この枠組みは入力ベクトルの事前の分析を必要としないために、オンライン追加の自己増殖型学習タスク、あるいは限られた入力ベクトルのサンプルによる実世界の学習タスクに適している。
【数１４】
2014164396.tif 000016
【数１５】
2014164396.tif 000017
【０１１０】
後述するように、本実施の形態に係る情報処理装置１に対する実験においては、他の距離尺度の一例としてコサイン距離（cosine distance）を採用し、コサイン距離をユークリッド距離に統合する。コサイン距離の定義を以下の式に示す。ここで、θは、重みベクトルＷｐ及び重みベクトルＷｑの間の角度を示す。
【数１６】
2014164396.tif 000018
【０１１１】
本実施の形態では、式（１６）を用いて、式（１４）に示した距離尺度の組み合わせを、以下に示すように再定義する。情報処理装置１は、例えば、式（１７）に示す新たな距離尺度を用いてノードｐ及びノードｑの間の距離を算出し、その結果を一時記憶部に格納する。
【数１７】
2014164396.tif 000019
【０１１２】
＜４：類似度閾値の定義＞
クラス間ノード挿入判定手段２５は、一時記憶部に格納されたノード及びノードの類似度閾値について、注目するノードについて、隣接ノードが存在する場合には、隣接ノードのうち注目するノードからの距離が最大であるノードまでの距離を類似度閾値として算出し、その結果を一時記憶部に格納し、隣接ノードが存在しない場合には、注目するノードからの距離が最小であるノードまでの距離を類似度閾値として算出し、その結果を一時記憶部に格納する。具体的には、例えば以下のようにして注目するノードの類似度閾値を算出し、その結果を一時記憶部に格納する。なお、クラス間ノード挿入判定手段２５は、ネットワークに初めて挿入され一時記憶部に格納されたノードｉの類似度閾値Ｔｉについては、予め定める十分大きな値を設定し、その結果を一時記憶部に格納する。
【０１１３】
クラス間ノード挿入判定手段２５は、一時記憶部に格納されたノードについて、ノードｉが第１勝者ノード又は第２勝者ノードとなった場合に、ノードｉが隣接ノードを有するか否かを判定し、その結果を一時記憶部に格納する。
【０１１４】
クラス間ノード挿入判定手段２５は、一時記憶部に格納された判定の結果、ノードｉが隣接ノードを有する場合には、一時記憶部に格納された類似度閾値及びノードについて、類似度閾値Ｔｉを隣接ノードへの最大距離とし、その結果を一時記憶部に格納する。即ち、ノードｉについて、一時記憶部に格納される以下の式（１８）に基づいて類似度閾値Ｔｉを算出し、その結果を一時記憶部に格納する。ここで、ｊは一時記憶部に格納されたノードｉの隣接ノード集合Ｎｉに含まれるノードであり、Ｄ（ｉ，ｊ）は、式（１７）を用いて算出する、ノードｉ及びノードｊ間の距離である。
【数１８】
2014164396.tif 000020
【０１１５】
クラス間ノード挿入判定手段２５は、一時記憶部に格納された判定の結果、ノードｉが隣接ノードを有しない場合には、ノードｉからノードｉを除いた他の各ノードへの距離を算出し、算出された距離のうち最小の距離を類似度閾値Ｔｉとする。即ち、ノードｉについて、一時記憶部に格納される以下の式（１９）に基づいて類似度閾値Ｔｉを算出し、その結果を一時記憶部に格納する。
【数１９】
2014164396.tif 000021
【０１１６】
＜５：新たなノード密度の定義及びその算出処理＞
ノード密度算出手段２３は、注目するノードのノード密度を、隣接ノードからのノードの平均距離に基づいて算出する。隣接ノードｊからのノードｉの平均距離のベクトルｄｉ→は、例えば、以下の式（２０）に示すようにして算出することができる。ここで、変数ｄｉ→は、変数ｄｉの上に記号「→（ライトアロー）」が付いていることを示す。また、以下の説明において、記号「→（ライトアロー）」は、ベクトルであることを示す。ここで、ベクトルの要素数は、使用する距離尺度の個数と一致する。本実施の形態では、後述するように、２つの距離尺度を使用するため、ベクトルの要素数は２である。
【数２０】
2014164396.tif 000022
【０１１７】
本実施の形態では、上述したように、新たな距離尺度の組み合わせの枠組みを提案し、ユークリッド距離に加えて他の距離尺度を使用するために、２つのノード間の距離を正規化する。このため、本実施の形態では、以下に説明するように、ノード密度の算出に際して上記式（２０）をそのまま採用することに代えて、隣接ノードｊからのノードｉの平均距離のベクトルｄｉ→を以下の式（２３）を使用して算出する。また、本実施の形態では、各距離尺度の正規化のために使用されるノード間の最小距離値及び最大距離値（ＥＵｍａｘ、ＥＵｍｉｎ、Ｄｉｍａｘ、Ｄｉｍｉｎ）はネットワークに新たな入力ベクトルが入力されると変化するため、この点についても考慮する。
【０１１８】
情報処理装置１では、新たな距離尺度の枠組みを採用する。このため、新たなノードｉについて隣接ノードからの平均距離を式（２０）に基づいて算出する場合に、以前に挿入した他のノードの平均累積ポイント値を算出する際に使用したＥＵｍａｘ又はＤｉｍａｘと比べて、ＥＵｍａｘ又はＤｉｍａｘの値が十分に大きくなっている可能性がある（ただし、ここでＥＵｍｉｎ及びＤｉｍｉｎは変化しないものと仮定する。）。言い換えると、以前に挿入した他のノードの隣接ノードからの平均距離が算出され、新しいノードの隣接ノードからの平均距離が算出されるが、それぞれ異なったスケールにおいて正規化がなされる。
【０１１９】
そこで、本実施の形態では、情報処理装置１は、ノード密度の新たな定義及び算出処理を導入し、上述した問題に対応する。この基本的な考えは、各距離尺度に基づくノード間の最小距離値及び最大距離値（ＥＵｍａｘ、ＥＵｍｉｎ、Ｄｉｍａｘ、Ｄｉｍｉｎ）のうちで少なくとも１つの値が変化した場合に、ネットワークに存在する全てのノードのノード密度の累積ポイント値を再び算出して更新することである。以下、具体的に説明する。
【０１２０】
まず、ノード密度の新たな定義を説明する。ノードｉについて、その隣接ノードｊからのノードｉの平均距離のベクトルｄｉ→を、以下に示すように新しく定義する。
【数２１】
2014164396.tif 000023
【０１２１】
すると、式（２１）を変形することによって、以下の式（２２）を得る。
【数２２】
2014164396.tif 000024
【０１２２】
最後に、式（２２）の表記を簡略化することによって、隣接ノードｊからのノードｉの平均距離のベクトルｄｉ→を、以下の式に示すように表すことができる。ノード密度算出手段２３は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値、隣接ノードからのノードの平均距離のベクトルについて、各距離尺度に基づく注目するノードの隣接ノードからの距離と、各距離尺度に基づくノード間の最小距離値及び最大距離値と、に基づいて注目するノードの隣接ノードからの平均距離のベクトルを算出し、その結果を一時記憶部に格納する。ノード密度算出手段２３は、例えば、一時記憶部に格納される以下の式（２３）を用いて隣接ノードｊからの注目するノードｉの平均距離のベクトルｄｉ→を算出し、その結果を一時記憶部に格納する。
【数２３】
2014164396.tif 000025
【０１２３】
上記式（２３）に示した隣接ノードｊからの注目するノードｉの平均距離のベクトルｄｉ→における各要素は、０より大きくかつ１より小さい。このため、ノード密度のポイント値のベクトルｐｉ→の新たな定義を、以下の式（２４）に示すように定める。ノード密度算出手段２３は、一時記憶部に格納されるノード、隣接ノードからのノードの平均距離のベクトル、ノード密度のポイント値のベクトルについて、注目するノードが第１勝者である場合にのみ隣接ノードからのノードの平均距離のベクトルに応じた値をノード密度のポイント値のベクトルとして算出し、その結果を一時記憶部に格納する。ノード密度算出手段２３は、例えば、一時記憶部に格納される以下の式（２４）に示す算出処理を実行し、ノード密度のポイント値のベクトルｐｉ→を算出し、その結果を一時記憶部に格納する。
【数２４】
2014164396.tif 000026
【０１２４】
式（２４）に示した"ノード密度のポイント値のベクトルｐｉ→"の定義に関して、隣接ノードからのノードｉの平均距離が大きく、かつ、その領域におけるノードの個数が少ない場合、ノード密度のポイント値の定義は、E-SOINNの定義とは異なったものになる。情報処理装置１では、このような場合には、低い"ノード密度のポイント値のベクトルｐｉ→"を、ノードｉに与える（低いとは、ノード密度のポイント値のベクトルｐｉ→の要素の合計値が小さいことを意味する。）。他方で、隣接ノードからのノードｉの平均距離が小さい場合には、その領域におけるノードの個数が多く、その領域におけるノード密度が高いことを意味する。このため、情報処理装置１は、高い"ノード密度のポイント値のベクトルｐｉ→"を、ノードｉに与える（高いとは、ノード密度のポイント値のベクトルｐｉ→の要素の合計値が大きいことを意味する。）。
【０１２５】
情報処理装置１は、入力ベクトルが１つ入力されてそれに対する１回の学習の繰り返しにおいて、式（２４）に示したようにノードｉが勝者ノードである場合にのみ、ノードｉについての"ノード密度のポイント値のベクトルｐｉ→"のみを算出する。この繰り返しにおいて、勝者ノードでない他のノードの"ノード密度のポイント値のベクトルｐｉ→"は算出せず、その値は全て０である。情報処理装置１は、ノード密度のポイント値のベクトルｐｉ→の定義をE-SOINNとは異なるものにし、式（２４）が線形関数であることから、各距離尺度に基づくノード間の最小距離値及び最大距離値（ＥＵｍａｘ、ＥＵｍｉｎ、Ｄｉｍａｘ、Ｄｉｍｉｎ）のうちで少なくとも１つの値が変化した場合に、ノード密度を容易に再び算出できるようにする。
【０１２６】
ノード密度算出手段２５は、一時記憶部に格納されたノード、ノード密度のポイント値のベクトルについて、第１勝者ノードｉのノード密度のポイント値のベクトルｐｉ→を、λ及びｍに関して累積して合計することによって、第１勝者ノードｉのノード密度の累積ポイント値のベクトルｓｉ→を算出し、その結果を一時記憶部に格納する。ノード密度算出手段２５は、例えば、一時記憶部に格納される以下の式（２５）に示す算出処理を実行し、その結果を一時記憶部に格納する。ここで、連続して与えられる入力ベクトルの入力総数がＬＴとなるまでの学習区間を、１つの学習区間とする。さらに、この学習区間を、入力ベクトルの入力総数が所定の単位数（λ）となるごとに複数の単位学習区間に分割する。この複数の学習区間の個数をｍとする（ｍ＝ＬＴ／λ）。
【数２５】
2014164396.tif 000027
【０１２７】
そして、ノード密度算出手段２５は、一時記憶部に格納されたノード、ノード密度の累積ポイント値のベクトルについて、所定の関数ｆに対してノードｉのノード密度の累積ポイント値のベクトルｓｉ→を入力し、単位入力数Ｎによって除算して算出し、その結果をノードｉのノード密度ｈｉとして一時記憶部に格納する。本実施の形態では、単位入力数Ｎあたりの平均値ｈｉを、ノードｉのノード密度として定義する。従って、ノード密度算出手段２５は、例えば、一時記憶部に格納される以下の式（２６）に示す算出処理を実行し、ノード密度を算出し、その結果を一時記憶部に格納する。ここで、ｆ（Ｘ→）は、ベクトルＸ→の要素の合計値を算出する関数である。単位入力数Ｎは、ｍ個の単位学習区間のうちで、ノード密度の累積ポイント値のベクトルｓｉ→の要素が０より大きい場合の単位学習区間の回数として算出する。なお、Ｎの定義はE-SOINNと同一である（特許文献１の段落００６７を参照。）。
【数２６】
2014164396.tif 000028
【０１２８】
次に、ノード密度の更新処理について説明する。ノード密度更新判定手段２２は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値について、各距離尺度に基づくノード間の最小距離値及び最大距離値（ＥＵｍａｘ、ＥＵｍｉｎ、Ｄｉｍａｘ、Ｄｉｍｉｎ）のうちで少なくとも１つの値が変化したか否かを確認し、少なくとも１つの値が変化した場合にはノード密度を更新すると判定し、その結果を一時記憶部に格納する。
【０１２９】
そして、ノード密度算出手段２５は、一時記憶部に格納された判定の結果、ノード密度を更新する場合には、一時記憶部に格納されたノード、ノード密度の累積ポイント値のベクトル、ノードの学習時間、各距離尺度に基づくノード間の最小距離値及び最大距離値について、ノード密度の累積ポイント値のベクトル、ノードの学習時間、各距離尺度に基づくノード間の最小距離値及び最大距離値に基づいて、ネットワークに存在する全てのノードについて、ノードｉのノード密度の累積ポイント値のベクトルｓｉ→を以下に示すようにして再び算出して更新し、更新したノードｉのノード密度の累積ポイント値のベクトルｓｉ→を用いてノードｉのノード密度ｈｉを再び算出し、その結果を一時記憶部に格納する。ノード密度算出手段２５は、例えば、一時記憶部に格納される以下の式（２７）〜（３０）に示す算出処理を実行することによって、ネットワークに存在するノードｉのノード密度の累積ポイント値のベクトルｓｉ→を算出し、算出したノードｉのノード密度の累積ポイント値のベクトルｓｉ→を式（２６）に代入して、ノードｉのノード密度ｈｉを再び算出し、その結果を一時記憶部に格納する。このようにして、ノード密度算出手段２５は、ノードｉのノード密度の累積ポイント値のベクトルｓｉ→及びノードｉのノード密度ｈｉを再び算出して更新する。
【数２７】
2014164396.tif 000029
【０１３０】
式（２７）において、Ｍｉはノードｉの学習時間を示す。ノードｉの学習時間のベクトルＭｉ→を、以下の式（２８）に示す。
【数２８】
2014164396.tif 000030
【０１３１】
ノード密度算出手段２５は、例えば、一時記憶部に格納される以下の式（２９）及び式（３０）に示す算出処理を実行することによって、式（２７）におけるベクトルｋ→及びｂ→を算出し、その結果を一時記憶部に格納する。ここで、ＥＵ'ｍａｘ、ＥＵ'ｍｉｎ、（Ｄｉｍａｘ）'、（Ｄｉｍｉｎ）'は、各距離尺度に基づくノード間の最小距離値及び最大距離値についての、変化後の新たな値である。他方で、ＥＵｍａｘ、ＥＵｍｉｎ、Ｄｉｍａｘ、Ｄｉｍｉｎは、変化する以前の値である。変化する以前の値とは、学習処理過程においてネットワークにおけるノード間の距離が変化した結果、ＥＵｍａｘ、ＥＵｍｉｎ、Ｄｉｍａｘ、Ｄｉｍｉｎの値が変化した場合に、変化以前の値を指し、ＥＵｍａｘ、ＥＵｍｉｎ、Ｄｉｍａｘ、Ｄｉｍｉｎをそのまま用いて記述する。一方で、変化後の新しい値とは、ＥＵ'ｍａｘ、ＥＵ'ｍｉｎ、（Ｄｉｍａｘ）'、（Ｄｉｍｉｎ）'の値が変化した場合に、変化後の値を指し、以前の値と区別するために、ＥＵ'ｍａｘ、ＥＵ'ｍｉｎ、（Ｄｉｍａｘ）'、（Ｄｉｍｉｎ）'を用いて示す。
【数２９】
2014164396.tif 000031
【数３０】
2014164396.tif 000032
【０１３２】
＜６：辺接続判定処理及び辺接続処理（勝者ノード接続処理）＞
E-SOINNでは、勝者ノード間の辺接続判定処理及び辺接続処理（特許文献１の図５のＳ６０６、Ｓ６０７の処理を指す。具体的には、明細書の段落００７２〜００７９に記載の処理を指す。）に関して、パラメータαを使用する。このパラメータαは、所定の閾値関数を用いて定義されている（特許文献１の段落００７８を参照。）。この所定の閾値関数は、２．０、３．０、０．０、０．５、１．０などのいくつかの整数を必要としており、実際上の応用処理において良好な学習結果を得るためには、これらの整数値を調整する必要がある。しかしながら、ユーザーにとって、そのような調整タスクを行うことは容易ではない。そこで、情報処理装置１では、以下に示す滑らかな関数（soft function）を提案し、区分的関数（piecewise function）である前記所定の閾値関数を置き換える。
【０１３３】
辺接続判定手段２７は、一時記憶部に格納されたクラス間ノード挿入判定手段２５による判定結果に応じて、一時記憶部に格納されたノード、ノードのサブクラスタラベル、ノードの密度について、第１勝者ノード及び第２勝者ノードが属するサブクラスタラベルと、第１勝者ノード及び第２勝者ノードについてのノード密度の条件とに基づいて、第１勝者ノード及び第２勝者ノード間に辺を接続するか否か判定し、その結果を一時記憶部に格納する。
【０１３４】
辺接続手段２８は、一時記憶部に格納された判定結果に応じて、第１勝者ノード及び第２勝者ノード間の辺の生成及び削除処理を実行し、その結果を一時記憶部に格納する。
【０１３５】
辺接続判定手段２７は、例えば以下のようにして、辺を接続するか否かを判定し、その結果を一時記憶部に格納する。辺接続手段２８は、例えば以下のようにして、辺の生成及び削除処理を実行し、その結果を一時記憶部に格納する。
【０１３６】
＜辺接続判定処理及び勝者ノード接続処理：Ｓ４０１〜Ｓ４０５＞
Ｓ４０１：辺接続判定手段２７は、一時記憶部に格納されたノード、ノードのサブクラスタラベル（隆起ラベル）について、ノードのサブクラスタラベル（隆起ラベル）に基づいて、第１勝者ノード及び第２勝者ノードが属するサブクラスタをそれぞれ判定し、その結果を一時記憶部に格納する。
【０１３７】
Ｓ４０２：一時記憶部に格納された判定の結果、第１勝者ノード及び第２勝者ノードの少なくとも１つがいずれのサブクラスタにも属していない場合、又は、第１勝者ノード及び第２勝者ノードが同一のサブクラスタに属している場合には、辺接続手段２８は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を生成することによりノード間を接続し、その結果を一時記憶部に格納する。
【０１３８】
Ｓ４０３：一時記憶部に格納されたＳ４０１における判定の結果、第１勝者ノード及び第２勝者ノードが互いに異なるサブクラスタに属す場合には（例えば、第１勝者ノードがサブクラスタＡに属し、かつ、第２勝者ノードがサブクラスタＢに属する場合）、辺接続判定手段２７は、一時記憶部に格納されたノード、ノード密度について、第１勝者ノード及び第２勝者ノードのノード密度に関して、第１勝者ノードを含むサブクラスタの平均ノード密度を基準とする第１勝者ノードについてのノード密度の条件、又は、第２勝者ノードを含むサブクラスタの平均ノード密度を基準とする第２勝者ノードについてのノード密度の条件のうちの少なくとも１つを満たすか否かを判定し、その結果を一時記憶部に格納する。
【０１３９】
Ｓ４０４：一時記憶部に格納されたＳ４０３における判定の結果、辺を接続する必要があると判定した場合には、辺接続手段２８は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を生成しノード間を接続する。これによって、サブクラスタＡ及びＢが統合される。
【０１４０】
Ｓ４０５：一時記憶部に格納されたＳ４０３における判定の結果、辺を接続する必要がないと判定した場合には、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノード及び第２勝者ノード間を辺によって接続しない。なお、ノード間が辺によって既に接続されていた場合には、辺接続手段２８は、一時記憶部に格納されたノード及びノード間の辺について、一時記憶部に格納された第１勝者ノード及び第２勝者ノード間の辺を削除し、その結果を一時記憶部に格納する。
【０１４１】
ここで、Ｓ４０３における辺接続判定手段２７による判定処理について詳細に説明する。
辺接続判定手段２７は、例えば、以下の式（３１）又は式（３２）の少なくとも１つを満足する場合、第１勝者ノード及び第２勝者ノード間に辺を接続するものと判定し、そうでない場合、第１勝者ノード及び第２勝者ノード間に辺を接続しないと判定し、その結果を一時記憶部に格納する。
【数３１】
2014164396.tif 000033
【数３２】
2014164396.tif 000034
【０１４２】
式（３１）及び式（３２）において、ｈｗｉｎｎｅｒは第１勝者ノードのノード密度を示し、ｈｓｅｃｏｎｄｗｉｎｎｅｒは第２勝者ノードのノード密度を示す。ｍｉｎ（ｈｗｉｎｎｅｒ，ｈｓｅｃｏｎｄｗｉｎｎｅｒ）は、第１勝者ノードのノード密度ｈｗｉｎｎｅｒ及び第２勝者ノードのノード密度ｈｓｅｃｏｎｄｗｉｎｎｅｒのうちの最小のノード密度を示す。ｈＡは、サブクラスタＡに含まれるノードのうちで最大のノード密度を有するノードのノード密度を示し、ｍｅａｎＡは、サブクラスタＡに含まれる全てのノードから算出するサブクラスタＡの平均ノード密度を示す。ｈＢは、サブクラスタＢに含まれるノードのうちで最大のノード密度を有するノードのノード密度を示し、ｍｅａｎＢは、サブクラスタＢに含まれる全てのノードから算出するサブクラスタＢの平均ノード密度を示す。θは、式（１２）において用いたパラメータと同一のパラメータである。
【０１４３】
式（３１）に示す第１勝者ノードについてのノード密度の条件は、第１勝者ノードのノード密度及び第２勝者ノードのノード密度のうちの最小のノード密度が、第１勝者ノードを含むサブクラスタＡの平均ノード密度ｍｅａｎＡを基準として、サブクラスタＡの平均ノード密度ｍｅａｎＡに対する最大ノード密度ｈＡの比率に応じて算出する閾値よりも大きいか否かを判定する条件である。また、式（３２）に示す第２勝者ノードについてのノード密度の条件は、第１勝者ノードのノード密度及び第２勝者ノードのノード密度のうちの最小のノード密度が、第２勝者ノードを含むサブクラスタＢの平均ノード密度ｍｅａｎＢを基準として、サブクラスタＢの平均ノード密度ｍｅａｎＢに対する最大ノード密度ｈＢの比率に応じて算出する閾値よりも大きいか否かを判定する条件である。
【０１４４】
＜全体処理フロー：Ｓ５０１〜Ｓ５１９＞
続いて、本実施形態に係る情報処理装置における全体処理フローについて、図２２のフローチャートを用いて説明する。図２２は、本実施形態に係る情報処理装置による学習処理の処理概要を示すフローチャートである。
【０１４５】
Ｓ５０１：入力情報取得手段２１は、２つの入力ベクトルをランダムに取得し、ノード集合Ａをそれらに対応する２つのノードのみを含む集合として初期化し、その結果を一時記憶部に格納する。また、入力情報取得手段２１は、辺集合Ｃ⊂Ａ×Ａを空集合として初期化し、その結果を一時記憶部に格納する。
Ｓ５０２：入力情報取得手段２１は、新しい入力ベクトルε∈Ｒｎを入力し、その結果を一時記憶部に格納する。
【０１４６】
Ｓ５０３：ノード密度更新判定手段２２は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値について、各距離尺度に基づくノード間の最小距離値及び最大距離値（ＥＵｍａｘ、ＥＵｍｉｎ、Ｄｉｍａｘ、Ｄｉｍｉｎ）のうちで少なくとも１つの値が変化したか否かを確認し、少なくとも１つの値が変化した場合にはノード密度を更新すると判定し、その結果を一時記憶部に格納する。なお、各距離尺度に基づくノード間の最小距離値及び最大距離値（ＥＵｍａｘ、ＥＵｍｉｎ、Ｄｉｍａｘ、Ｄｉｍｉｎ）は、学習開始時点において初期値として０が予め設定される。
【０１４７】
Ｓ５０４：ノード密度算出手段２３は、一時記憶部に格納された判定の結果、ノード密度を更新する場合には、一時記憶部に格納されたノード、ノード密度の累積ポイント値のベクトル、ノードの学習時間、各距離尺度に基づくノード間の最小距離値及び最大距離値について、ノード密度の累積ポイント値のベクトル、ノードの学習時間、各距離尺度に基づくノード間の最小距離値及び最大距離値に基づいて、ノード集合Ａに含まれるノードｉ∈Ａのノード密度の累積ポイント値のベクトルｓｉ→を再び算出して更新し、更新したノードｉのノード密度の累積ポイント値のベクトルｓｉ→を用いてノードｉのノード密度ｈｉを再び算出し、その結果を一時記憶部に格納する。ノード密度算出手段２３は、例えば、一時記憶部に格納される上述した式（２７）〜（３０）及び式（２６）に示す算出処理を実行することによって、ノードｉのノード密度の累積ポイント値のベクトルｓｉ→及びノードｉのノード密度ｈｉを再び算出して更新する。
【０１４８】
なお、一時記憶部に格納された判定の結果、ノード密度を更新しない場合には、Ｓ５０４におけるノード密度算出手段２３による処理は行わずに、情報処理装置１は、Ｓ５０５へと処理を進める。
【０１４９】
Ｓ５０５：勝者ノード探索手段２４は、一時記憶部に格納された入力ベクトル及びノードについて、入力ベクトルεに最も距離が近い第１勝者ノードａ１及び２番目に近い第２勝者ノードａ２を探索し、その結果を一時記憶部に格納する。勝者ノード探索手段２４は、探索処理として、例えば、ａ１＝ｍｉｎａ∈ＡＤ（ε，a），ａ２＝ｍｉｎａ∈Ａ＼｛ａ１｝Ｄ（ε，a）に示す処理を実行し、その結果を一時記憶部に格納する。ここで、勝者ノード探索手段２４は、上述した式（１７）に示した新たな距離尺度を用いて入力ベクトルε及びノードaの間の距離Ｄ（ε，a）を算出し、その結果を一時記憶部に格納する。
【０１５０】
Ｓ５０６：クラス間ノード挿入判定手段２５は、一時記憶部に格納された入力ベクトル、ノード、ノードの類似度閾値について、入力ベクトルεと第１勝者ノードａ１間の距離が第１勝者ノードａ１の類似度閾値Ｔａ１より大きいか否か、及び、入力ベクトルεと第２勝者ノードａ２間の距離が第２勝者ノードａ２の類似度閾値Ｔａ２より大きいか否かを判定し、その結果を一時記憶部に格納する。ここで、クラス間ノード挿入判定手段２５は、上述した式（１８）又は式（１９）を用いて第１勝者ノードａ１の類似度閾値Ｔａ１及び第２勝者ノードａ２の類似度閾値Ｔａ２を算出し、その結果を一時記憶部に格納する。さらに、クラス間ノード挿入判定手段２５は、入力ベクトルεと第１勝者ノードａ１間の距離が第１勝者ノードａ１の類似度閾値Ｔａ１より大きい、又は、入力ベクトルεと第２勝者ノードａ２間の距離が第２勝者ノードａ２の類似度閾値Ｔａ２より大きい場合には、クラス間ノード挿入を実行すると判定し、そうでない場合には、クラス間ノード挿入を実行しないと判定し、その結果を一時記憶部に格納する。
【０１５１】
Ｓ５０７：一時記憶部に格納されたＳ５０６における判定の結果、クラス間ノード挿入を実行する場合には、クラス間ノード挿入手段２６は、一時記憶部に格納された入力ベクトル及びノードについて、入力ベクトルεはネットワークへの新たなノードとなるため、入力ベクトルεの成分と同一の成分を重みベクトルとして有するクラス間挿入ノードを生成し、生成したクラス間挿入ノードをノード集合Ａに追加し、その結果を一時記憶部に格納する。そして、情報処理装置１は、Ｓ５０２へと処理を進めて、再び入力ベクトルの入力を行う。
【０１５２】
Ｓ５０８：一方、一時記憶部に格納されたＳ５０６における判定の結果、クラス間ノード挿入を実行しない場合には、辺接続判定手段２７は、一時記憶部に格納されたノード、ノードのサブクラスタラベルについて、ノードのサブクラスタラベルに基づいて、第１勝者ノードａ１及び第２勝者ノードａ２が属するサブクラスタをそれぞれ判定し、その結果を一時記憶部に格納する。辺接続判定手段２７は、例えば、上述したＳ４０１に示した辺接続判定処理を行う。
【０１５３】
また、辺接続判定手段２７は、一時記憶部に格納されたＳ５０８における判定の結果、第１勝者ノード及び第２勝者ノードが互いに異なるサブクラスタに属する場合には、一時記憶部に格納されたノード、ノードの密度について、第１勝者ノードａ１及び第２勝者ノードａ２のノード密度に関して、第１勝者ノードａ１を含むサブクラスタの平均ノード密度を基準とする第１勝者ノードについてのノード密度の条件、又は、第２勝者ノードａ２を含むサブクラスタの平均ノード密度を基準とする第２勝者ノードについてのノード密度の条件のうちの少なくとも１つを満たすか否かを判定し、その結果を一時記憶部に格納する。例えば、上述したＳ４０３に示した辺接続判定処理を行う。
【０１５４】
Ｓ５０９：一時記憶部に格納されたＳ５０８における判定の結果、第１勝者ノード及び第２勝者ノードの少なくとも１つがいずれのサブクラスタにも属していない、又は、同一のサブクラスタに属する場合には、辺接続手段２８は、一時記憶部に格納されたノード及びノード間の辺について、第１勝者ノードａ１及び第２勝者ノードａ２間に辺を接続し、その結果を一時記憶部に格納する。辺接続手段２８は、例えば、上述したＳ４０２に示した勝者ノード接続処理を行う。そして、辺接続手段２８は、一時記憶部に格納された辺及び辺の年齢について、新しく生成された辺、及び、既にノード間に辺が生成されていた場合にはその辺について、辺の年齢を０に設定しその結果を一時記憶部に格納する。
【０１５５】
また、辺接続手段２８は、一時記憶部に格納されたＳ５０８における判定の結果、上記の第１勝者ノード及び第２勝者ノードについてのノード密度の条件のうちの少なくとも１つを満たす場合には、一時記憶部に格納されたノード、ノード間の辺について、第１勝者ノードａ１及び第２勝者ノードａ２間に辺を接続し、その結果を一時記憶部に格納する。辺接続手段２８は、例えば、上述したＳ４０４に示した勝者ノード接続処理を行う。
【０１５６】
辺接続手段２８は、一時記憶部に格納されたＳ５０８における判定の結果、上記の第１勝者ノード及び第２勝者ノードについてのノード密度の条件のうちの少なくとも１つを満たさない場合には、一時記憶部に格納されたノード、ノード間の辺について、第１勝者ノード及び第２勝者ノード間に辺を接続しない（第１勝者ノード及び第２勝者ノード間に辺が存在する場合には辺を削除する）、その結果を一時記憶部に格納する。辺接続手段２８は、例えば、上述したＳ４０５に示した勝者ノード接続処理を行う。
【０１５７】
Ｓ５１０：ノード密度算出手段２３は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値、隣接ノードからのノードの平均距離のベクトル、ノードのノード密度のポイント値のベクトル、ノード密度の累積ポイント値のベクトル、ノード密度について、第１勝者ノードａ１をノードｉとして、各距離尺度に基づく隣接ノードからのノードｉの距離と、各距離尺度に基づくノード間の最小距離値及び最大距離値と、に基づいてノードｉについての隣接ノードからの平均距離のベクトルｄｉ→を算出し、当該算出した隣接ノードからの平均距離のベクトルｄｉ→に基づいて第１勝者ノードａ１のノード密度のポイント値のベクトルｐｉ→を算出し、当該算出した第１勝者ノードａ１のノード密度のポイント値のベクトルｐｉ→に基づいてノード密度の累積ポイント値のベクトルｓｉ→を算出し、当該算出した第１勝者ノードａ１のノード密度の累積ポイント値のベクトルｓｉ→に基づいて第１勝者ノードａ１のノード密度ｈｉを算出し、その結果を一時記憶部に格納する。ノード密度算出手段２３は、例えば、一時記憶部に格納される上述した式（２４）〜（２６）に示す算出処理を実行することによって、ノードｉのノード密度の累積ポイント値のベクトルｓｉ→及びノードｉのノード密度ｈｉを算出する。
【０１５８】
Ｓ５１１：勝者ノード学習時間算出手段２９は、一時記憶部に格納された第１勝者ノードａ１の学習時間Ｍａ１を所定の値増加し、その結果を一時記憶部に格納する。勝者ノード学習時間算出手段２９は、例えば、Ｍａ１（ｔ＋１）＝Ｍａ１（ｔ）＋１という処理を実行することによって、第１勝者ノードａ１の学習時間Ｍａ１を１増加し、その結果を一時記憶部に格納する。
【０１５９】
Ｓ５１２：重みベクトル更新手段３０は、一時記憶部に格納されたノード及びノードの重みベクトルについて、第１勝者ノードａ１及びその隣接ノードの重みベクトルをそれぞれ入力ベクトルεに更に近づけるように更新し、その結果を一時記憶部に格納する。重みベクトル更新手段３０は、例えば以下の式（３３）及び式（３４）を用いて、第１勝者ノードａ１の重みベクトルＷａ１についての更新量ΔＷａ１及び第１勝者ノードａ１の隣接ノードｊの重みベクトルＷｓ１についての更新量ΔＷｊを算出し、更新量ΔＷａ１を第１勝者ノードａ１の重みベクトルＷａ１に加算し、更新量ΔＷｊを隣接ノードｊの重みベクトルＷｓ１に加算して、この結果を一時記憶部に格納する。式（３３）及び式（３４）において、Ｍｓ１は、第１勝者ノードａ１の学習時間を示す。なお、ここでの重みベクトルの変化方法はE-SOINNと同様である（特許文献１の段落００６３を参照。）。
【数３３】
2014164396.tif 000035
【数３４】
2014164396.tif 000036
【０１６０】
Ｓ５１３：老齢辺削除手段３１は、一時記憶部に格納されたノード、ノード間の辺、辺の年齢について、第１勝者ノードａ１と直接的に接続される全ての辺の年齢を所定の値増加し、その結果を一時記憶部に格納する。老齢辺削除手段３１は、例えば、第１勝者ノードａ１と直接的に接続される全ての辺の年齢を１増加し、その結果を一時記憶部に格納する。老齢辺削除手段３１は、一時記憶部に格納された辺について、予め設定され一時記憶部に格納された所定の閾値ａｇｅｍａｘを超えた年齢を有する辺を削除し、その結果を一時記憶部に格納する。ここで、パラメータａｇｅｍａｘは実験により予め適当な値を算出し一時記憶部に格納される。
【０１６１】
Ｓ５１４：入力数判定手段３２は、一時記憶部に格納された与えられた入力ベクトルεの総数について、入力された入力ベクトルεの総数が予め設定され一時記憶部に格納された所定の単位数（λ）の倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力ベクトルの総数が所定の単位数でない場合にはＳ５０２へと戻り、次の入力ベクトルεを処理する。入力ベクトルεの総数が所定の単位数となった場合には以下のＳ５１５以降に示す処理を実行する。なお、パラメータλは実験により予め適当な値を算出し一時記憶部に格納される。
【０１６２】
なお、Ｓ５１５〜Ｓ５１７に示す処理は、情報処理装置１に対して入力された入力ベクトルの総数が所定の単位数となるごとに実行される。即ち、入力ベクトルの総数が所定の数（λ）となるまでの単位学習区間を一周期とすると、Ｓ５１５〜Ｓ５１７に示す処理は、入力ベクトルの総数に応じた所定の周期ごとに定期的に実行される。
【０１６３】
Ｓ５１５：負荷平衡化手段３３は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノードの重みベクトル、ノードの学習時間、ノードの密度について、学習時間の値が大きくかつ偏ったノードをノードの学習時間に基づいて検出し、当該検出したノードとその隣接ノードの間に新たなノードを挿入してノード集合Ａに追加する。当該検出したノード及びその隣接ノードについてのノードの学習時間をそれぞれ減少し、その結果を一時記憶部に格納する。負荷平衡化手段３３は、例えば、上述したＳ１０１〜Ｓ１０７に示したノード間の負荷平衡化処理を実行し、その結果を一時記憶部に格納する。これによって、負荷平衡化手段３３は、負荷が不均衡な状態にあるノードについてその負荷を平衡化させる。
【０１６４】
Ｓ５１６：サブクラスタ決定手段３４は、一時記憶部に格納されたノード、ノード間の辺、ノード密度、ノードのサブクラスタラベルについて、ノード集合Ａに含まれるノードから局所的に最大のノード密度を有するノードを頂点として探索し、当該探索した頂点に対してそれぞれ異なるサブクラスタラベル（隆起ラベル）を付与し、当該サブクラスタラベル（隆起ラベル）が付与されなかった全てのノードに対してノード密度が最大の隣接ノードと同一のサブクラスタラベル（隆起ラベル）を付与し、その結果を一時記憶部に格納する。また、サブクラスタ決定手段３４は、一時記憶部に格納されたノード、ノード間の辺、ノード密度について、頂点のうちでノード密度が所定の閾値よりも大きな頂点を基準としてボロノイ領域を生成し、その結果を一時記憶部に格納する。さらに、サブクラスタ決定手段３４は、一時記憶部に格納されたノード、ノード間の辺、ノード密度、ボロノイ領域について、生成したボロノイ領域において、基準とした頂点を含むサブクラスタと基準とした頂点とは異なる他の頂点を含むサブクラスタとが重複領域を有し、かつ、当該重複領域に位置するノードの平均ノード密度の条件を満たす場合に、基準とした頂点を含むサブクラスタのサブクラスタラベルを、他の頂点を含むサブクラスタのサブクラスタラベルとして付与し、その結果を一時記憶部に格納する。サブクラスタ決定手段３４は、例えば、上述したＳ２０１〜Ｓ２０５、Ｓ３０１〜Ｓ３０５に示したサブクラスタ決定処理を実行し、その結果を一時記憶部に格納する。
【０１６５】
Ｓ５１７：ノイズノード削除手段３５は、一時記憶部に格納されたノード集合Ａに含まれる全てのノードａについて、ノイズノードと見なしたノードを削除し、その結果を一時記憶部に格納する。ノイズノード削除手段３５は、一時記憶部に格納されたノード、ノード間の辺、隣接ノードの個数、ノード密度について、例えば、以下のＳ６０１〜Ｓ６０４に示す処理を実行し、注目するノードａの隣接ノードの個数及びノード密度に基づいて、注目するノードを削除し、その結果を一時記憶部に格納する。
【０１６６】
Ｓ６０１：ノイズノード削除手段３５は、一時記憶部に格納されたノード、ノード間の辺、隣接ノードの個数について、注目するノードａの隣接ノードの個数を算出し、その結果を一時記憶部に格納する。そして、ノイズノード削除手段３５は、一時記憶部に格納された隣接ノードの個数に応じて、以下のＳ６０２〜Ｓ６０４のいずれかの処理を実行する。なお、以下の処理において使用されるパラメータｃ１及びｃ２は、予め適当な値が設定され一時記憶部に格納される。
【０１６７】
Ｓ６０２：一時記憶部に格納された隣接ノード数が２の場合、ノイズノード削除手段３５は、一時記憶部に格納される例えば式（３５）が成立するか否かを判定し、その結果を一時記憶部に格納する。ここで、ｈａは、ノードａのノード密度を示し、ＮＡは、ノード集合Ａに含まれるノードの個数を示す。一時記憶部に格納された判定結果について式（３５）が成立する場合には、ノイズノード削除手段３５は、一時記憶部に格納されたノードについて、該当するノードａを削除し、その結果を一時記憶部に格納する。
【数３５】
2014164396.tif 000037
【０１６８】
Ｓ６０３：一時記憶部に格納された隣接ノード数が１の場合、ノイズノード削除手段３５は、ノードａのノード密度ｈａについて、一時記憶部に格納される例えば式（３６）が成立するか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定結果について式（３６）が成立する場合には、ノイズノード削除手段３５は、一時記憶部に格納されたノードについて、該当するノードａを削除し、その結果を一時記憶部に格納する。
【数３６】
2014164396.tif 000038
【０１６９】
Ｓ６０４：一時記憶部に格納された隣接ノード数が０の場合（隣接ノードを有しない場合）、ノイズノード削除手段３５は、一時記憶部に格納されたノードについて、該当するノードａを削除し、その結果を一時記憶部に格納する。
【０１７０】
Ｓ５１８：学習終了判定手段３６は、情報処理装置１による学習処理を終了するか否かを判定する。例えば、学習終了判定手段３６は、一時記憶部に格納された与えられた入力ベクトルεの総数について、与えられた入力ベクトルεの総数が予め設定され一時記憶部に格納された所定の数ＬＴの倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力ベクトルの総数がＬＴの倍数でない場合にはＳ５０２へと戻り、次の入力ベクトルεを処理する。一方、入力ベクトルεの総数がＬＴの倍数となった場合には以下の処理を実行する。なお、学習終了判定の方法はこれに限定されず、ユーザーによって学習終了の指示が与えられるものとしてもよい。
【０１７１】
Ｓ５１９：クラス決定手段３７は、一時記憶部に格納されたノード、ノード間の辺、ノードのクラスについて、ノード間に生成された辺に基づいて、各ノードが属するクラスを決定し、その結果を一時記憶部に格納する。そして、出力情報表示手段３８は、一時記憶部に格納されたノード及びノードのクラスについて、ノードの属するクラスのクラス数、及び各クラスのプロトタイプベクトルを出力する。以上の処理を終了した後、学習を停止する。
【０１７２】
クラス決定手段３７は、一時記憶部に格納されたノード、ノード間の辺、ノードのクラスについて、例えば以下のＳ７０１〜Ｓ７０４に示す処理を実行して各ノードが属するクラスを決定し、その結果を一時記憶部に格納する。
【０１７３】
Ｓ７０１：一時記憶部に格納されたノード及びノードのクラスについて、すべてのノードをどのクラスにも属していない状態にし、その結果を一時記憶部に格納する。
Ｓ７０２：一時記憶部に格納されたノード及びノードのクラスについて、いずれのクラスにも属していないノードからノードｉをランダムに選択して新しいクラスラベルを付与し、その結果を一時記憶部に格納する。
Ｓ７０３：一時記憶部に格納されたノード、ノード間の辺、ノードのクラスについて、ノードｉと「パス」によって接続しているノードをすべて探索し、当該探索したノードにノードｉと同じクラスラベルを付与し、その結果を一時記憶部に格納する。
Ｓ７０４：一時記憶部に格納されたノード及びノードのクラスについて、いずれのクラスにも属していないノードが存在する場合にはＳ７０２へと進み、全てのノードに対してクラスラベルを付与し終えるまでの間、処理を続ける。
【０１７４】
Ｓ７０３において、任意の２つのノードａ及びノードｂとが「パス」によって接続されるとは、ノードａ及びノードｂ間において、いくつかの辺を通して２つのノードが接続されることを示す。即ち、ノード集合Ａに含まれるノードａ、ノードｂ、ノードｘｉ（ｉ＝１，２，・・・，ｎ）に対して、ノードａ及びノードｘ1間の辺を示す（ａ，ｘ1）、ノードｘ1及びノードｘ2間の辺を示す（ｘ1，ｘ2）、・・・、ノードｘｎ及びノードｂ間の辺を示す（ｘｎ，ｂ）という辺の連続が存在する場合に、ノードａ及びノードｂ間とがパスによって接続されると呼ぶ。
【０１７５】
＜実験結果＞
続いて、本実施の形態に係る情報処理装置１の有効性を確認するため、３つの人工データセット及び３つの実世界データセットを用いて実験を行う。情報処理装置１（LBSOINN）をE-SOINNと比較するために、いくつかの実験では同一のデータセットを選択した。また、同一の人工データセットＩ（図１）を情報処理装置１（LBSOINN）及びE-SOINNに適用してノードの学習時間を比較し、さらに、カーネル密度推定（KDE：kernel density estimation）を使用して、ノード間の接続構造に関するノードの密度を推定する。
【０１７６】
図７は、E-SOINN及び情報処理装置１（LBSOINN）におけるノードの学習時間を示す。図において、縦軸はノードの学習時間を示し、横軸はノードの個数を示す。E-SOINNによるノードの個数は、ネットワークのいくつかの領域において十分ではなく、それらの領域におけるノードの学習時間は長くかつ偏っている。一方で、E-SOINNとは異なり、情報処理装置１（LBSOINN）におけるノードの学習時間の分布は平衡していることが分かる。
【０１７７】
図８は人工データセットＩのノードの密度分布を示す。図９は、E-SOINNにおけるノードの密度の推定結果を示し、図１０は、情報処理装置１（LBSOINN）におけるノードの密度の推定結果を示す。図８、９、１０において、ｘ軸及びｙ軸はノードが配置される２次元空間を示し、ｚ軸はノード密度を示す。明らかに、E-SOINNは、入力パターンに対する良好な精度を得ていないことが分かる。しかし、E-SOINNでは、ノード密度を使用してクラス間の重複領域を探索するために、入力パターンの接続構造を正確に表現することはとても重要である。これに対して、図１０に示したように、情報処理装置１（LBSOINN）では、入力パターンの接続構造を正確に記述することができるため、E-SOINNに比べてより優れた安定性能を有する。
【０１７８】
図１１に、人工データセットＩＩを示す。人工データセットＩＩでは、ノードの密度に関して高密度の重複領域を有する３つのガウス分布を含む。人工データセットＩＩを使用して、定常環境におけるE-SOINN及び情報処理装置１（LBSOINN）の安定性についての実験を行う。実験では、データセットから入力パターンをランダムに選択して、入力パターンに対して１０％のノイズを追加する。パラメータの設定に関して、E-SOINNでは、λ＝２００、ａｇｅｍａｘ＝５０、ｃ１＝０．００１、ｃ２＝１．０に設定する。情報処理装置１（LBSOINN）では、λ、ａｇｅｍａｘ、ｃ１、ｃ２についてはE-SOINNと同じ値を設定し、γ＝１．３、η＝１．００１、θ＝１．３に設定する。
【０１７９】
図１２（Ａ）〜（Ｊ）は、定常環境において時系列にネットワークを学習したときの、人工データセットＩＩに対する学習結果を示す。図１２（Ａ）〜（Ｅ）は、１０００００回、２０００００回、３０００００回、４０００００回、５０００００回の繰り返しにおけるE-SOINNの学習結果をそれぞれ示す。図１２（Ｆ）〜（Ｊ）は、１０００００回、２０００００回、３０００００回、４０００００回、５０００００回の繰り返しにおける情報処理装置１（LBSOINN）の学習結果をそれぞれ示す。明らかに、E-SOINNは、異なるクラスが常に一緒に接続されてしまうために、ノードの接続構造が乱れておりかつ不安定である。
【０１８０】
情報処理装置１（LBSOINN）は、上述したサブクラスタ決定手法を使用して、ネットワークに存在する過度に局所的に最大となるノードの発生を回避する。これによって、情報処理装置１（LBSOINN）は、混合クラスをサブクラスタに分割してしまうことによるノードの接続構造の乱れを回避する。人工データセットＩＩに対する実験は、E-SOINNと比較して情報処理装置１（LBSOINN）がより優れた安定性を有し、かつ、ノード密度が高密度の重複領域を正確に分離できることを示している。後述するように、ＡＴ＆Ｔ画像データセットを使用して、非定常的な学習環境下において、実世界のデータセットによってまた、E-SOINNと比較して情報処理装置１（LBSOINN）がより優れた安定性を有することを確認する。
【０１８１】
図１３に、E-SOINNの評価において使用された、他の人工データセットを示す。この人工データセットは、２つのガウス分布、２つのリング形状分布、正弦関数分布を含んでいる。入力分布は、入力サンプル数の合計の１０％に達するランダムノイズを含んでいる。パラメータの設定に関して、情報処理装置１（LBSOINN）は、λ＝１００、ａｇｅｍａｘ＝１００、ｃ１＝０．００１、ｃ２＝１．０、γ＝１．３、η＝１．００１、θ＝１．３に設定する。図１４及び図１５は、定常環境下及び非定常環境下での情報処理装置１（LBSOINN）によるクラスタリング結果をそれぞれ描写する。図１４及び図１５の類似性から、情報処理装置１（LBSOINN）は入力データの入力順序に依存していないこと、即ち、E-SOINNと比較してよりも優れた安定性を有することを示している。
【０１８２】
実世界での実験の一つとして、情報処理装置１（LBSOINN）をE-SOINNと比較するために、E-SOINNにおいて使用されたデータセットと同一のＡＴ＆Ｔ画像データセットを選択する。この画像データセットは、４０の異なるクラスと、クラスごとの１０の異なる画像を含んでいる。これらのクラスは異なる年齢及び人種に関するものである。いくつかのクラスに対して、異なるタイミングで画像が取得されている。顔の表現（開いた／閉じた目、微笑む／微笑んでいない）及び顔の詳細（メガネあり／メガネなし）にはバリエーションがある。全ての画像は、クラスを有する黒色の均一な背景の下で、直立して正面の位置（ある程度の側面の動きに対する耐性を有する。）から撮られている。このデータセットから１０クラスを選択し（図１６）、最近傍補間法（nearest-neighbor interpolation）を使用して、データセットにおける画像を９２×１１２から２３×２８へとサンプリングし直す。そして、ガウス法（Gaussian method）を使用することによって、Ｗｉｄｔｈ＝４、σ＝２であるガウシアンを用いて画像を平滑化して、特徴ベクトルを得る（図１７）。
【０１８３】
定常及び非定常環境下におけるE-SOINN及び情報処理装置１（LBSOINN）の性能を実験する。LBSOINNのパラメータは、λ＝２５、ａｇｅｍａｘ＝２５、ｃ１＝０．０、ｃ２＝１．０、γ＝１．３、η＝１．００１、θ＝１．３に設定する。学習を経て、ネットワークからのプロトタイプベクトルを得ることができる。これらのプロトタイプベクトルを使用して、元々の顔画像及び算出される認識率を分類する。情報処理装置１（LBSOINN）は、定常環境下では、９６．３％の認識率であり、非定常環境下では、９６．５％の認識率である。E-SOINNは、定常環境下では、９０．３％の認識率であり、非定常環境下では、９６％の認識率である。即ち、E-SOINNと比較して、情報処理装置１（LBSOINN）は、E-SOINNよりも十分に高い認識率を有している。定常環境及び非定常環境における共通性はまた、情報処理装置１（LBSOINN）が入力データの入力順序に依存せず、E-SOINNと比較してより優れた安定性を有することを示している。
【０１８４】
E-SOINN及び情報処理装置１（LBSOINN）の安定性を比較するため、E-SOINNと同一の処理を情報処理装置１（LBSOINN）によって実行する。即ち、（１）E-SOINN及び情報処理装置１（LBSOINN）の両方に対して１０００回の学習を実行し、（２）クラスの個数の頻度を記録する。なお、クラスの個数の頻度とは、例えば、１０００回の実験を行い、情報処理装置１（LBSOINN）の学習結果としてクラスの個数を１０とした出力回数が６００回である、又は、クラスの個数を９とした出力回数が９０回であるときに、この６００回や９０回の数値を示す。
【０１８５】
図１８（Ａ）、（Ｂ）は、E-SOINNおよび情報処理装置１（LBSOINN）によるクラスの個数の分布をそれぞれ示す。図において、縦軸はクラスの個数の頻度を示し、横軸はクラスの個数を示す。情報処理装置１（LBSOINN）に対するクラスの個数の分布はE-SOINNのものと比べて十分に大きい。そして、クラスの個数が１０個となる辺りにおいて、情報処理装置１（LBSOINN）の分布はE-SOINNのものと比べて十分に大きい。さらに、定常環境下における情報処理装置１（LBSOINN）に対するクラスの個数の分布は、非定常環境下におけるクラスの分布にとても類似している。上述した全ての実験結果は、E-SOINNと比較して情報処理装置１（LBSOINN）がより優れた安定性を有することを示している。
【０１８６】
次に、２つのテキストデータセット（ＷｅｂＫｂデータセット及びＲ８データセット）を選択して、高次元空間におけるE-SOINN及び情報処理装置１（LBSOINN）の性能を実験する。ＷｅｂＫｂは、１９９７年１月における様々な大学のコンピュータサイエンス部門から、ＣＭＵテキスト学習グループのワールドワイド知識ベースプロジェクトによって収集されたＷＷＷページを含んでいる。その８２８２ページは、生徒、学部、スタッフ、部門、コース、プロジェクトやその他のカテゴリに、人手によって分類されている。本実験では、生徒、学部及びコースのカテゴリのみを選択する。Ｒ８データセットは、１つのトピック及びそのクラス（少なくとも１つの学習及び１つの実験例を有する。）を備えた文書を単に考慮する。ＷｅｂＫｂ及びＲ８の両方ともに、フィルタリング処理（非特許文献：Khaled M. Hammouda and Mohamed S. Kamel, "Efficient Phrase-Based Document Indexing for Web Document Clustering," IEEE Transactions on Knowledge and Data Engineering, Vol. 16, No. 10, pp. 1279-1296, 2004.を参照。）と、stop wordsの削除(removing)、刈り取り（pruning）及び取り出し（stemming）処理（非特許文献：R. Baeza-Yates and B. Ribeiro-Neto, "Modern Information Retrieval,"Addison-Wesley, 1999.を参照。）を事前に行う。
【０１８７】
図１９は、異なる各クラスに対して異なるパーセントを入力したときの精度を示す。パラメータの設定に関して、情報処理装置１（LBSOINN）は、λ＝２５、ａｇｅｍａｘ＝２５、ｃ１＝０．０、ｃ２＝１．０、γ＝１．３、η＝１．００１、θ＝１．３に設定する。また、比較のために、線形関数を使用したサポートベクトルマシーン（ＳＶＭ）の性能についても示す。
【０１８８】
ＷｅｂＫｂデータセットに対して、情報処理装置１（LBSOINN）及びＳＶＭの精度は、それぞれ８１．２１％及び８４．２１％に達する。そして、Ｒ８データセットに対しては、情報処理装置１（LBSOINN）及びＳＶＭの精度は、８９．７１％及び９３．３４％に達する。情報処理装置１（LBSOINN）の精度は、ＳＶＭの精度ほどは良くない。しかしながら、情報処理装置１（LBSOINN）は、オンライン教師なし学習のアプローチに属する。また違いとして、情報処理装置１（LBSOINN）は、限られたデータセットを用いて満足できる精度を得ることができる。この特徴は、情報処理装置１（LBSOINN）を、実世界におけるタスクにより適したものにする。E-SOINNは高次元タスクを扱うことができないために、E-SOINNの性能はとても悪い。この実験は、高次元空間において情報処理装置１（LBSOINN）が十分に実行可能であることを示している。
【０１８９】
以上に、本実施の形態に係る情報処理装置１の構成及び動作、さらに、情報処理装置１に対して実験を行い、その効果を説明した。クラスタリングは最も重要なデータ分析手法の一つである。本実施の形態では、オンラインでの教師なし学習に属する負荷平衡型自己増殖型ニューラルネットワーク（LBSOINN）を提案し、これは、高密度の重複クラスを分離することができる。情報処理装置１（LBSOINN）は、E-SOINNと比較して優れた安定性能を有しており、かつ、E-SOINNが有する全ての利点をも備えている。人口データセット及び実データセットにおける実験により、情報処理装置１（LBSOINN）は、ラベル付けされていないノイズ付き知識をクラスタリングする場合に正確な学習結果を得ることができ、また、高次元空間においても効率的に実行可能なことを確認した。このことは、実世界でのオンライン学習タスクに適していることを示している。
【０１９０】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述した実施の形態では、ノードの負荷平衡化処理において、各サブクラスタにおいて最大のノードの学習時間を有するノードのみを探索する場合を例に説明したが、本発明はこれに限定されず、各サブクラスタにおいて相対的に大きなノードの学習時間を有する複数のノードを探索し、当該探索した複数のノードに関して、以降の負荷平衡化処理を実行するものとしてもよい。
【０１９１】
また、例えば、上述した実施の形態では、ノードの負荷平衡化処理において、最大のノードの学習時間を有するノードを探索し、当該探索したノードの隣接ノードのうちで最大の学習時間を有する隣接ノードを決定する場合を例に説明したが、本発明はこれに限定されず、他の隣接ノード（例えば、当該探索したノードの隣接ノードのうちで２番目に大きな学習時間を有する隣接ノード）を決定し、当該決定した隣接ノードに関して、以降の負荷平衡化処理を実行するものとしてもよい。
【０１９２】
また、例えば、上述した実施の形態では、距離尺度に関して、ユークリッド距離にコサイン距離を組合せる場合を例に説明したが、本発明はこれに限定されず、他の距離尺度（例えば、コサイン距離、マンハッタン距離、フラクショナル距離）を組合せるものとしてもよい。さらに、高次元空間における有効な距離尺度に限定されず、学習しようとする問題に応じた他の距離尺度を組合せるものとしてもよい。
【符号の説明】
【０１９３】
１    情報処理装置
１０    コンピュータ
１１    ＣＰＵ
１２    ＲＯＭ
１３    ＲＡＭ
１４    バス
１５    入出力インターフェイス
１６    入力部
１７    出力部
１８    記憶部
１９    通信部
２０    ドライブ
２０１    磁気ディスク
２０２    光ディスク
２０３    フレキシブルディスク
２０４    半導体メモリ
２１    入力情報取得手段
２２    ノード密度更新判定手段
２３    ノード密度算出手段
２４    勝者ノード探索手段
２５    クラス間ノード挿入判定手段
２６    クラス間ノード挿入手段
２７    辺接続判定手段
２８    辺接続手段
２９    勝者ノード学習時間算出手段
３０    重みベクトル更新手段
３１    老齢辺削除手段
３２    入力数判定手段
３３    負荷平衡化手段
３４    サブクラスタ決定手段
３５    ノイズノード削除手段
３６    学習終了判定手段
３７    クラス決定手段
３８    出力情報表示手段
【図３】
2014164396.tif 000039
【図５】
2014164396.tif 000040
【図２０】
2014164396.tif 000041
【図２１】
2014164396.tif 000042
【図２２】
2014164396.tif 000043
【図２３】
2014164396.tif 000044
【図２４Ａ】
2014164396.tif 000045
【図２４Ｂ】
2014164396.tif 000046
【図２４Ｃ】
2014164396.tif 000047
【図１】
2014164396.tif 000048
【図２Ａ】
2014164396.tif 000049
【図２Ｂ】
2014164396.tif 000050
【図４】
2014164396.tif 000051
【図６】
2014164396.tif 000052
【図７】
2014164396.tif 000053
【図８】
2014164396.tif 000054
【図９】
2014164396.tif 000055
【図１０】
2014164396.tif 000056
【図１１】
2014164396.tif 000057
【図１２Ａ】
2014164396.tif 000058
【図１２Ｂ】
2014164396.tif 000059
【図１２Ｃ】
2014164396.tif 000060
【図１２Ｄ】
2014164396.tif 000061
【図１２Ｅ】
2014164396.tif 000062
【図１２Ｆ】
2014164396.tif 000063
【図１２Ｇ】
2014164396.tif 000064
【図１２Ｈ】
2014164396.tif 000065
【図１２Ｉ】
2014164396.tif 000066
【図１２Ｊ】
2014164396.tif 000067
【図１３】
2014164396.tif 000068
【図１４】
2014164396.tif 000069
【図１５】
2014164396.tif 000070
【図１６】
2014164396.tif 000071
【図１７】
2014164396.tif 000072
【図１８Ａ】
2014164396.tif 000073
【図１８Ｂ】
2014164396.tif 000074
【図１９】
2014164396.tif 000075