本発明の実施の形態に係る具体的な構成・処理の説明に先立ち、本発明の理解をより容易とするために、本発明に関連する技術(以下、E-SOINNと称する。)の概要を簡単に説明する。
E-SOINNは、入力データの入力順序に学習結果が大きく依存するという問題を有している。図3を参照して、E-SOINNによる学習結果を説明する。図3は、E-SOINNによる処理(特許文献1の図5のS611、S607、S612などの処理を指す。具体的には、明細書の段落0071〜0079に記載の処理を指す。)を実行した後の、ネットワークにおけるノードのノード密度の分布を示している。この例では、サブクラスタ間の重複領域が存在し、また、ノード密度の分布は大きな変動を有している。
図3において、符号A及び符号Bは、E-SOINNによる処理によって生成された2つのサブクラスタをそれぞれ示す。なお、ネットワークにおいて辺によって接続されるノードの集合をクラスタとし、クラスタの部分集合をサブクラスタとする。ここで、サブクラスタとは、同一のサブクラスタラベルが付与されたノードからなる集合である。E-SOINNは、サブクラスタA及びサブクラスタBを統合するために、所定の条件(特許文献1の明細書の段落0076、数(14)、数(15)などにより示される。)を定めている。
E-SOINNは、新たな入力データがネットワークに入力されたときに、その第1勝者ノードがサブクラスタAに属し、かつ、第2勝者ノードがサブクラスタBに属し、さらに、(サブクラスタA及びBの重複領域に入力データが初めて現れたために、)サブクラスタA及びサブクラスタBと、サブクラスタC及びサブクラスタDとが統合されていないという状況下では、明らかに、サブクラスタA及びBを統合する条件をとても容易に満たしてしまう。E-SOINNは、サブクラスタA及びサブクラスタBを統合しようとするが、サブクラスタAはサブクラスタCに本来属すべきであり、サブクラスタBはサブクラスタDに本来属すべきである。従って、この問題は、サブクラスタの統合及び分離の繰り返しを引き起こしてしまう。図4は、3つのガウス分布を有する入力データに対するE-SOINNによる学習結果を示し、3つのガウス分布が互いに重複を有しており、また、複数のサブクラスタへの統合及び分離の乱れが行われている。
以下、自己組織化ニューラルネットワーク(SOINN:Self-Organizing Incremental Neural Network)に関する技術として、本発明に係る技術を、LBSOINN(Load Balance Self-Organizing Incremental Neural Network)と称する。
LBSOINNは、ネットワークにおけるノードの負荷をノード学習時間として扱い、このノード学習時間を使用したノードの負荷の平衡化手法を提案する。LBSOINNは、この負荷平衡化手法によって、ネットワークをより安定化させることができる。このため、LBSOINNを負荷平衡(Load Balance)と称している。また、LBSOINNは、ボロノイテセレーション(Voronoi Tessellation)に基づくサブクラスタ決定手法を使用することによって、クラス間の重複領域を削除する際のネットワーク構造の乱れを回避する。さらに、LBSOINNは、2つのノード間の類似度を示す距離尺度に関して、高次元データをオンライン追加学習するのに適した、新たな距離尺度を導入する。
また、詳細は後述するが、本発明に関する効果を確認するための実験を行い、LBSOINNの有効性を確認した。実験では、人工データセットに加え実世界での例に対してもLBSOINNを適用し、クラスタリングにおけるLBSOINNの有効性を実証した。全ての実験結果から、LBSOINNがE-SOINNよりも優れた安定性を有し、また、高次元空間における良好なパフォーマンスを有していることが示された。
実施の形態1.
以下、図面を参照して本発明の実施の形態について説明する。
図20は、LBSOINNの一例としての、本実施の形態1に係る情報処理装置を実現するためのシステム構成の一例を示す図である。情報処理装置1は、専用コンピュータ、パーソナルコンピュータ(PC)などのコンピュータ10により実現可能である。但し、コンピュータは、物理的に単一である必要はなく、分散処理を実行する場合には、複数であってもよい。図20に示すように、コンピュータ10は、CPU11(Central Processing Unit)、ROM12(Read Only Memory)及びRAM13(Random Access Memory)を有し、これらがバス14を介して相互に接続されている。尚、コンピュータを動作させるためのOSソフトなどは、説明を省略するが、この情報処理装置を構築するコンピュータも当然備えているものとする。
バス14には又、入出力インターフェイス15も接続されている。入出力インターフェイス15には、例えば、キーボード、マウス、センサなどよりなる入力部16、CRT、LCDなどよりなるディスプレイ、並びにヘッドフォンやスピーカなどよりなる出力部17、ハードディスクなどより構成される記憶部18、モデム、ターミナルアダプタなどより構成される通信部19などが接続されている。
CPU11は、ROM12に記憶されている各種プログラム、又は記憶部18からRAM13にロードされた各種プログラムに従って各種の処理、本実施の形態においては、例えば後述するノード密度算出手段23や負荷平衡化手段33などの各手段の処理を実行する。RAM13には又、CPU11が各種の処理を実行する上において必要なデータなども適宜記憶される。
通信部19は、例えば図示しないインターネットを介しての通信処理を行ったり、CPU11から提供されたデータを送信したり、通信相手から受信したデータをCPU11、RAM13、記憶部18に出力したりする。記憶部18はCPU11との間でやり取りし、情報の保存・消去を行う。通信部19は又、他の装置との間で、アナログ信号又はディジタル信号の通信処理を行う。
入出力インターフェイス15はまた、必要に応じてドライブ20が接続され、例えば、磁気ディスク201、光ディスク202、フレキシブルディスク203、又は半導体メモリ204などが適宜装着され、それらから読み出されたコンピュータプログラムが必要に応じて記憶部18にインストールされる。
続いて、本実施形態に係る情報処理装置1における各処理について、その主な処理を図21に示す機能ブロック図を用いて説明する。ハードウェア上は、各処理は実際にはソフトウェアと上記CPU11などのハードウェア資源とが協働して実現している。
情報処理装置1は、n次元ベクトルで記述されるノードが配置される非階層構造のニューラルネットワークを有し、入力情報取得手段21、ノード密度更新判定手段22、ノード密度算出手段23、勝者ノード探索手段24、クラス間ノード挿入判定手段25、クラス間ノード挿入手段26、辺接続判定手段27、辺接続手段28、勝者ノード学習時間算出手段29、重みベクトル更新手段30、老齢辺削除手段31、入力数判定手段32、負荷平衡化手段33、サブクラスタ決定手段34、ノイズノード削除手段35、学習終了判定手段36、クラス決定手段37、出力情報表示手段38を含む。以下、各手段の詳細を説明する。
本実施形態においては、情報処理装置1が有するニューラルネットワークは、入力ベクトルをニューラルネットワークに入力し、入力される入力ベクトルに基づいて、ニューラルネットワークに配置されるノードを自動的に増加させる自己増殖型ニューラルネットワークであり、また、ニューラルネットワークは非階層構造を有するものとして以下説明する。
自己増殖型ニューラルネットワークを用いてノードを自動的に増加させることができるため、入力ベクトル空間からランダムに入力ベクトルが与えられる定常的な環境に限られず、例えば一定期間毎に入力ベクトルの属するクラスが切替えられて、切替後のクラスからランダムに入力ベクトルが与えられる非定常的な環境にも対応することができる。さらにまた、非階層構造を採用することで、他の層での学習を開始するタイミングを指定せずに追加学習を実施することができる。即ち、完全なオンラインでの追加学習を実施することができる。
入力情報取得手段21は、情報処理装置1に入力として与えられる情報として、任意のクラスに属するn次元の入力ベクトルを取得する。そして、取得された入力ベクトルを一時記憶部(例えばRAM13)に格納し、一時記憶部に格納されたニューラルネットワークに対して順次入力する。
ノード密度更新判定手段22は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値について、各距離尺度に基づくノード間の最小距離値及び最大距離値のうちで少なくとも1つの値が変化したか否かを確認し、少なくとも1つの値が変化した場合にはノード密度を更新すると判定し、その結果を一時記憶部に格納する。なお、各距離尺度に基づくノード間の最小距離値及び最大距離値の詳細については後述する。
ノード密度算出手段23は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値、隣接ノードからのノードの平均距離のベクトル、ノードのノード密度のポイント値のベクトル、ノード密度の累積ポイント値のベクトル、ノード密度について、第1の距離算出式及び第2の距離算出式をそれぞれ用いて第1勝者ノードの隣接ノードからの平均距離のベクトルの各成分を算出し、当該算出した第1勝者ノードの隣接ノードからの平均距離のベクトルに基づいて第1勝者ノードのノード密度のポイント値のベクトルを算出し、当該算出した第1勝者ノードのノード密度のポイント値のベクトルに基づいて第1勝者ノードのノード密度の累積ポイント値のベクトルを算出し、当該算出した第1勝者ノードのノード密度の累積ポイント値のベクトルに基づいて第1勝者ノードのノード密度を算出し、その結果を一時記憶部に格納する。なお、第1の距離算出式及び第2の距離算出式、第1勝者ノードのノード密度の算出処理の詳細については後述する。
また、ノード密度算出手段23は、一時記憶部に格納されたノード密度更新判定手段22による判定の結果、ノード密度を更新する場合には、一時記憶部に格納されたノード、ノード密度の累積ポイント値のベクトル、ノードの学習時間、各距離尺度に基づくノード間の最小距離値及び最大距離値について、変化前後におけるユークリッド距離に基づく2つのノード間の最小距離値及び最大距離値と、変化前後における他の距離尺度に基づく2つのノード間の最小距離値及び最大距離値と、に基づいて、ネットワークに存在する全てのノードについて、注目するノードのノード密度の累積ポイント値のベクトルを更新し、当該更新した注目するノードのノード密度の累積ポイント値のベクトルに基づいて注目するノードのノード密度を再び算出し、その結果を一時記憶部に格納する。なお、注目するノードの累積ポイント値のベクトルの算出処理の詳細については後述する。
勝者ノード探索手段24は、一時記憶部に格納される入力ベクトル及びノードについて、入力ベクトルに最も近い距離に位置するノードを第1勝者ノードとし、2番目に近い距離に位置するノードを第2勝者ノードとして探索し、その結果を一時記憶部に格納する。なお、本実施の形態に係る距離尺度の詳細については後述する。
クラス間ノード挿入判定手段25は、一時記憶部に格納された入力ベクトル及びノードについて、入力ベクトルと第1勝者ノード間の距離及び入力ベクトルと第2勝者ノード間の距離に基づいて、クラス間ノード挿入を実行するか否かを判定し、その結果を一時記憶部に格納する。なお、本実施の形態に係るクラス間ノード挿入判定処理の詳細については後述する。
クラス間ノード挿入手段26は、一時記憶部に格納されたクラス間ノード挿入判定手段25による判定結果に応じて、一時記憶部に格納された入力ベクトルについて、入力ベクトルが新たにネットワークに追加するノードであるものと見なし、その入力ベクトルの成分と同一の成分を重みベクトルとして有するクラス間挿入ノードを生成し、生成したクラス間挿入ノードをネットワークに挿入し、その結果を一時記憶部に格納する。
辺接続判定手段27は、一時記憶部に格納されたクラス間ノード挿入判定手段25による判定結果に応じて、一時記憶部に格納されたノード、ノードのサブクラスタラベルについて、ノードのサブクラスタラベルに基づいて、第1勝者ノード及び第2勝者ノードが属するサブクラスタをそれぞれ判定し、その結果を一時記憶部に格納する。ここで、ノードのサブクラスタラベルとは、そのノードが属するサブクラスタを示す。クラスタとは、混合クラスに含まれるノードについて、辺によって接続されるノードの集合を示し、サブクラスタは、同一のサブクラスタラベルが付与されたノードからなるクラスタの部分集合を示す。
また、辺接続判定手段27は、一時記憶部に格納された判定の結果、第1勝者ノード及び第2勝者ノードが互いに異なるサブクラスタに属する場合には、一時記憶部に格納されたノード、ノードの密度、ノードのサブクラスタラベルについて、第1勝者ノード及び第2勝者ノードのノード密度に関して、第1勝者ノードを含むサブクラスタの平均ノード密度を基準とする第1勝者ノードのノード密度の条件、又は、第2勝者ノードを含むサブクラスタの平均ノード密度を基準とする第2勝者ノードのノード密度の条件のうちの少なくとも1つを満たすか否かを更に判定し、その結果を一時記憶部に格納する。なお、辺接続判定手段27による辺接続判定処理の詳細については後述する。
辺接続手段28は、一時記憶部に格納された辺接続判定手段27による判定の結果、第1勝者ノード及び第2勝者ノードの少なくとも1つがいずれのサブクラスタに属していない、又は、同一のサブクラスタに属する場合には、一時記憶部に格納されたノード、ノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を接続し、その結果を一時記憶部に格納する。
また、辺接続手段28は、一時記憶部に格納された辺接続判定手段27による判定の結果、上記の第1勝者及び第2勝者ノードのノード密度の条件のうちの少なくとも1つを満たす場合には、一時記憶部に格納されたノード、ノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を接続し、その結果を一時記憶部に格納する。
また、辺接続手段28は、一時記憶部に格納された辺接続判定手段27による判定の結果、上記の第1勝者及び第2勝者ノードのノード密度の条件のうちの少なくとも1つを満たさない場合には、一時記憶部に格納されたノード、ノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を接続せず(第1勝者ノード及び第2勝者ノード間に辺が存在する場合には辺を削除する)、その結果を一時記憶部に格納する。なお、辺接続手段28による勝者ノード接続処理の詳細については後述する。
勝者ノード学習時間算出手段29は、一時記憶部に格納されたノード、ノードの学習時間について、第1勝者ノードの学習時間を所定の値増加し、その結果を一時記憶部に格納する。なお、本実施形態において、ノードの学習時間の詳細については後述する。
重みベクトル更新手段30は、一時記憶部に格納されたノード、ノードの重みベクトルについて、注目するノードについて注目するノードと辺によって直接的に接続されるノードを隣接ノードとして、第1勝者ノードの重みベクトル及び第1勝者ノードの隣接ノードの重みベクトルをそれぞれ入力ベクトルに更に近づけるように更新し、その結果を一時記憶部に格納する。
老齢辺削除手段31は、一時記憶部に格納されたノード、ノード間の辺、辺の年齢について、第1勝者ノードと直接的に接続される全ての辺の年齢を所定の値増加し、その結果を一時記憶部に格納する。また、老齢辺削除手段31は、一時記憶部に格納された辺について、予め設定され一時記憶部に格納された所定の閾値を超えた年齢を有する辺を削除し、その結果を一時記憶部に格納する。
入力数判定手段32は、一時記憶部に格納された与えられた入力ベクトルの総数について、与えられた入力ベクトルの総数が予め設定され一時記憶部に格納された所定の単位数の倍数であるか否かを判定し、その結果を一時記憶部に格納する。
負荷平衡化手段33は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノードの重みベクトル、ノードの学習時間について、入力ベクトルの総数に応じた所定の周期ごとに、ノードの学習時間の値が相対的に大きくかつ偏っているノードを検出し、当該検出したノード及びその隣接ノードの重みベクトルに基づく重みベクトルを有する新たなノードを生成してネットワークに挿入し、検出したノードの学習時間及び検出したノードの隣接ノードの学習時間をそれぞれ減少し、検出したノード及びその隣接ノード間の辺を削除し、新たに挿入したノード及び検出したノード間と、新たに挿入したノード及び検出したノードのその隣接ノード間と、に辺をそれぞれ接続し、その結果を一時記憶部に格納する。なお、負荷平衡化手段33によるノードの負荷平衡化処理の詳細については後述する。
サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノード密度、ボロノイ領域について、局所的に最大のノード密度を有するノードを頂点として、当該頂点に対してそれぞれ異なるサブクラスタラベルを付与し、当該サブクラスタラベルが付与されなかった全てのノードに対してノード密度が最大の隣接ノードと同一のサブクラスタラベルを付与し、頂点のうちでノード密度が所定の閾値よりも大きな頂点を基準としてボロノイ領域を生成し、当該生成したボロノイ領域において、基準とした頂点を含むサブクラスタと基準とした頂点とは異なる他の頂点を含むサブクラスタとが重複領域を有し、かつ、当該重複領域に位置するノードの平均ノード密度の条件を満たす場合に、基準とした頂点を含むサブクラスタのサブクラスタラベルを、他の頂点を含むサブクラスタのサブクラスタラベルとして付与し、その結果を一時記憶部に格納する。なお、サブクラスタ決定手段34による処理の詳細については後述する。
ノイズノード削除手段35は、一時記憶部に格納されたノード、ノード密度、ノード間の辺、隣接ノードの個数について、注目するノードについて、注目するノードの隣接ノードの個数及びノード密度に基づいて、注目するノードを削除し、その結果を一時記憶部に格納する。
学習終了判定手段36は、情報処理装置1による学習処理を終了するか否かを判定する。
クラス決定手段37は、一時記憶部に格納されたノード、ノード間の辺、ノードのクラスについて、ノード間に生成された辺に基づいて、ノードの属するクラスを決定し、その結果を一時記憶部に格納する。
出力情報表示手段38は、一時記憶部に格納されたノード及びノードのクラスについて、ノードの属するクラスのクラス数、及び各クラスのプロトタイプベクトルを出力する。
次に、本実施の形態に係る情報処理装置1が有する特徴的な構成・処理を説明する。以下では、<1:ノード間の負荷平衡化処理>、<2:サブクラスタの決定処理>、<3:新たな距離尺度の組み合わせの枠組み>、<4:類似度閾値の定義>、<5:新たなノード密度の定義及びその算出処理>、<6:辺接続判定処理及び辺接続処理>の順に説明する。
<1:ノード間の負荷平衡化処理>
E-SOINNは、第1勝者又は第2勝者の類似度閾値による判定のみを単純に使用して、新たな入力ベクトルであるクラス間ノードをネットワークに挿入すべきか否かを決定する。このため、ネットワークの学習を新たに開始しようとしたときにノードの接続構造が既に構築されていた場合には、新たなノードをネットワークに挿入することが困難になる。この構築済みのノードの接続構造は入力データの入力順序に大きく影響されるため、E-SOINNの学習結果は安定しない。また、図2に示したように、この欠点はノードの密度を算出する際には、入力データに対する低い精度をもたらしてしまう。
ノードの接続構造を正確に表現するためには、ノードの個数を十分な数にすることが重要であり、このこと自体はよく知られている。ネットワークのいくつかの領域においてノードの個数が十分でない場合、それらの領域におけるノードの学習時間の値が大きくかつ偏った状況になる。本実施の形態では、この状況をノードの負荷が不均衡な状態にあるものと定義する。本実施の形態では、この負荷の不均衡を解消するために、以下に示すノード間の負荷平衡化処理を導入する。
<1−1:ノード間の負荷平衡化処理(S101〜S107)>
入力ベクトルの入力総数が所定の単位数(λ)の整数倍となった場合、負荷平衡化手段33は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノードの重みベクトル、ノードの学習時間、ノードの密度について、ノードが属するサブクラスタの平均学習時間と比較して当該ノードの学習時間の値が相対的に大きくかつ偏ったノード(負荷が不均衡な状態にあるノード)を検出し、当該検出したノードとその隣接ノードの間に新たなノードを挿入し、当該検出したノードとその隣接ノードの学習時間を減少し、その結果を一時記憶部に格納する。これによって、負荷平衡化手段33は、負荷が不均衡な状態にあるノードについて負荷を平衡化させる。以下、ノードの負荷平衡化処理を具体的に説明する。なお、ノードの学習時間及びノードの密度の詳細については後述する。
S101:負荷平衡化手段33は、一時記憶部に格納されたノード、ノードのサブクラスタラベル、ノードの学習時間について、ノードの学習時間に基づいて、各サブクラスタにおいて相対的に大きなノードの学習時間を有するノードを探索し、その結果を一時記憶部に格納する。負荷平衡化手段33は、例えば、各サブクラスタにおいて最大のノードの学習時間を有するノードqを探索し、その結果を一時記憶部に格納する。さらに、負荷平衡化手段33は、一時記憶部に格納されたノード、ノードの学習時間について、検出したノードqの学習時間が、相対的に大きくかつ偏っているか否かを判定し、その結果を一時記憶部に格納する。負荷平衡化手段33は、例えば、ノードqの学習時間Mq及びノードqが属するサブクラスタの平均学習時間Mcq averageについて、Mq>3Mcq averageが成立するか否か判定し、その結果を一時記憶部に格納する。なお、負荷平衡化手段33は、ノードqが属するサブクラスタに含まれる全てのノードの学習時間を平均することによって、ノードqが属するサブクラスタの平均学習時間Mcq averageを算出し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、Mq>3Mcq averageが成立する場合には、負荷平衡化手段33は、以下のようにして新たなノードを追加し、Mq>3Mcq averageが成立しない場合には、ノードの追加を行わない。
S102:負荷平衡化手段33は、一時記憶部に格納されたノード、ノードの学習時間について、ノードの学習時間に基づいて、ノードqの隣接ノードのうちで、例えば最大の学習時間を有する隣接ノードfを決定し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段33は、一時記憶部に格納される以下の式を満たす隣接ノードfを決定し、その結果を一時記憶部に格納する。ここで、Nqは、ノードqの隣接ノード集合を示す。
S103:負荷平衡化手段33は、一時記憶部に格納されたノードについて、新たなノードrを生成してネットワークに追加し、その結果を一時記憶部に格納する。また、負荷平衡化手段33は、一時記憶部に格納されたノード、ノードの重みベクトルについて、ノードrの重みベクトルWrを、ノードqの重みベクトルWq及び隣接ノードfの重みベクトルWfを用いて補間して算出し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段33は、一時記憶部に格納される以下の式に示す操作及び算出処理を実行し、その結果を一時記憶部に格納する。
S104:負荷平衡化手段33は、一時記憶部に格納されたノード、ノードの学習時間について、ノードrの学習時間Mrを、ノードqの学習時間Mq及び隣接ノードfの学習時間Mfを用いて補間して算出し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段33は、一時記憶部に格納される以下の式に示す算出処理を実行し、その結果を一時記憶部に格納する。ここで、dは入力ベクトルの次元数を示す。
S105:負荷平衡化手段33は、一時記憶部に格納されたノード、ノードの学習時間について、ノードqの学習時間Mq及び隣接ノードfの学習時間Mfを所定の割合それぞれ減少し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段33は、一時記憶部に格納される以下の式に示す算出処理を実行し、その結果を一時記憶部に格納する。ここで、dは入力ベクトルの次元数を示す。
S106:負荷平衡化手段33は、一時記憶部に格納されたノード、ノードの密度について、ノードrの密度hrを、ノードqの密度hq及び隣接ノードfの密度hfを用いて補間して算出し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段33は、一時記憶部に格納される以下の式に示す算出処理を実行し、その結果を一時記憶部に格納する。
S107:負荷平衡化手段33は、一時記憶部に格納されたノード、ノード間の辺について、新たなノードrとノードqを接続する辺と、新たなノードrと隣接ノードfを接続する辺と、を生成し、また、ノードq及び隣接ノードfの間に元々存在する辺を削除し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段33は、一時記憶部に格納される以下の式(8)、式(9)に示す操作を実行し、その結果を一時記憶部に格納する。ここで、Cは辺集合を示し、例えば(r,q)はノードr及びノードq間を接続する辺を示す。
上述したように、情報処理装置1は、ノードが属するサブクラスタの平均学習時間を基準レベルとして採用し、ネットワークにノードを新たに挿入するか否かという追加学習のタスクに適用する。このため、事前の学習結果により得られた知識(ノード及びその接続構造を含むネットワーク)は、新たに入力される入力ベクトルに影響しない。この処理によって、情報処理装置1によるノード接続構造の生成処理は、E-SOINNとは異なったものになる。
情報処理装置1は、ネットワークに入力ベクトルを新たに挿入すべきか否かに関し、第1勝者又は第2勝者の類似度閾値を使用してノードの挿入を行うクラス間ノード挿入処理に加えて、負荷が不均衡な状態にあるノード(即ち、ノードの学習時間の値が相対的に大きくかつ偏ったノード)を検出して、この検出したノードの近くに新たなノードを挿入する負荷平衡化処理を実行する。これによって、ネットワークにおけるノードの負荷を平衡化させることができる。そして、情報処理装置1は、上述したS101〜S107に示す新たなノード挿入と、後述するS507に示すノード挿入と、の両方がクラス間挿入に属する場合、ネットワークにおけるノードの個数を十分なものにすることができ、この結果、入力データの密度分布を正確に反映することができる。従って、入力データの入力順序に影響を受けずに、入力パターンの接続構造を正確に記述することができるため、従来技術に比べてより優れた安定性能を有する。
<2:サブクラスタの決定処理>
入力ベクトルの入力個数が所定の単位数(λ)の整数倍となった場合、上述した負荷平衡化処理に加えて、サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノードの密度、ボロノイ領域について、ボロノイテセレーション(Voronoi Tessellation)に基づくサブクラスタの決定処理を実行し、その結果を一時記憶部に格納する。なお、サブクラスタの決定処理とは、ネットワークに存在するノードに対してサブクラスタラベルを付与することによって、当該ノードが属するサブクラスタを決定する処理である。
上述したように、E-SOINNによる処理はサブクラスタの統合及び分離の繰り返しを引き起こしてしまう。これは、E-SOINNによる処理(特許文献1の図5のS611の処理を指す。具体的には、明細書の段落0071に記載の処理を指す。)の実行後にネットワークに多くのサブクラスタが存在し、さらに、E-SOINNによる処理(特許文献1の図5のS607、S612などの処理を指す。具体的には、明細書の段落0072〜0079に記載の処理を指す。)によって、真のサブクラスタの外縁に位置するサブクラスタが容易に統合されてしまうためである。情報処理装置1は、以下に示すサブクラスタの統合を目的とするサブクラスタ決定処理を導入することによって、E-SOINNが有する問題に対処する。
本実施の形態では、以下の処理についての理解をより容易とするために、"サブクラスタ"という用語に代えて"隆起(tuber)"という用語を使用する。後述するように、本実施の形態では、局所的に最大のノード密度を有するノード及び当該ノードと辺によって接続されるノードからなる集合を記述するために、この隆起という用語を使用する。なお、隆起とは通常、山の盛り上がりを示すが、本実施の形態では、あるクラスに含まれる複数のサブクラスタに関して各サブクラスタが含むノードのノード密度の高低を考慮して、ノード密度の盛り上がりを表現するために隆起という用語を用いる。例えば、図5において、A、B、C、Dはそれぞれ隆起を示す。A及びCはそれぞれ同一のクラスに属し、B及びDはそれぞれ他の同一のクラスに属する。
後述するように、本実施の形態では、サブクラスタ決定処理を、各ボロノイ領域において、ノード密度が高密度の隆起から低密度の隆起へと向けて実行する。図5において、例えば、隆起Aからサブクラスタ決定処理を開始した場合、隆起Bは隆起Aと容易に統合し、その結果、ネットワークもまた乱れてしまう。さらに、隆起のサブクラスタ決定処理は、他の隆起と統合することを回避するように、正確に停止する必要がある。また、図5において、例えば、隆起Cのサブクラスタ決定処理では、隆起Bと統合しないようにする必要がある。
隆起の決定処理を以下に示す。この処理は、分離及び降下平滑化アルゴリズム(SDSA:Separate and Downhill smooth algorithm)とも呼ばれる。なお、以下の処理では、局所的に最大のノード密度を有するノードを、隆起の頂点と称する。言い換えると、隆起の頂点とは、対応する隆起に含まれるノードのうちで最大のノード密度を有するノードを示す。
<2−1:サブクラスタの決定処理(S201〜S205、S301〜S305)>
S201:サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノードの密度について、混合クラスにおける全てのノードについて局所的に最大のノード密度を有するノードを探索し、その探索したノードを隆起の頂点としてノード集合LMに追加し、その結果を一時記憶部に格納する。サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノードのサブクラスタラベル(隆起ラベル)について、探索した頂点全てに対してそれぞれ異なる隆起ラベルを付与し、その結果を一時記憶部に格納する。
S202:サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間を接続する辺、ノードのサブクラスタラベル(隆起ラベル)について、S201において隆起ラベルが付与されなかった全てのノードに対して、ノード密度が最大の隣接ノードと同じ隆起ラベルを付与する。即ち、S201において、各頂点に対してそれぞれ異なる隆起ラベルが付与される。そして、S202において、頂点を除いた他の全てのノードのそれぞれに対して、当該ノードの隣接ノードのうちで最大のノード密度を有するノードの隆起ラベルが付与される。このようにして全てのノードに対して隆起ラベルが付与され、同一の隆起ラベルが付与されたノードからなる集合を隆起(サブクラスタ)として扱うことで、混合クラスを、複数の隆起(サブクラスタ)に分離する。ここで、注目するノードとその隣接ノードが互いに異なる隆起ラベルを有する場合には、その注目するノード及びその隣接ノードは、分布の重複領域に位置する可能性がある。
S203:サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノードの密度について、頂点のノード集合LMにおいてノード密度がβより大きなノードを探索し、探索したノードをノード集合Kに追加し、その結果を一時記憶部に格納する。例えば、サブクラスタ決定手段34は、一時記憶部に格納される以下の式に示す算出処理を実行することによって値βを算出し、その結果を一時記憶部に格納する。ここで、γはユーザーによって予め適当な値が決定されて設定されるパラメータ(1<γ<2)を示し、hmeanは、頂点の集合LMに含まれる全ての頂点のノードの密度の平均値を示し、hmaxはノード集合LMに含まれる頂点のノード密度のうちで最大のノード密度を示す。
S204:サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノードの重みベクトル、ボロノイ領域について、ノード集合Kに基づいて、頂点のノード集合LMについてのボロノイ領域(図6を参照。)を生成し、その結果を一時記憶部に格納する。例えば、サブクラスタ決定手段34は、一時記憶部に格納される以下の式(11)に示す操作を実行し、その結果を一時記憶部に格納する。式(11)に示すボロノイ領域の生成処理では、ノード集合Kに含まれるノードKiをシード(seed)として、このシードに対応するボロノイ領域Viを生成する。即ち、ノード集合Kに含まれるノードKiは、ボロノイ領域Viにおけるi番目のシードとなる。このように、S201〜204に示す処理では、ノード集合LMは全ての頂点を含み、ノード集合Kは全ての頂点のうちでノード密度がβよりも高い頂点を含む。そして、ノード集合Kをボロノイ領域のシードとして使用する。例えば図6において、このようなシードを○(白丸)を用いて示している。
なお、ボロノイ領域は人工知能及び数学の分野における基礎的な知識であり(例えば、http://en.m.wikipedia.org/wiki/Voronoi_diagram を参照。)、上述したボロノイ領域の生成処理は、公知のボロノイ領域生成処理を実行すればよい。このため、ここでは、その詳細な説明を省略する。
S205:サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間の辺、ノードの密度、ノードのサブクラスタラベル(隆起ラベル)、ボロノイ領域について、以下のS301〜S305に示す処理を実行し、S204において生成した全てのボロノイ領域におけるサブクラスタの統合を行うことによってサブクラスタを決定し、その結果を一時記憶部に格納する。ここで、ボロノイ領域においてサブクラスタを決定するとは、各ボロノイ領域に含まれる隆起についてノード密度に関する所定の条件を満足する場合に、各隆起の隆起ラベルをノードKiの隆起ラベルに統合する処理を指す。なお、所定の条件とは、例えば、後述する式(12)又は式(13)のいずれかを満足することを指す。
S301:サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノードのサブクラスタラベル(隆起ラベル)、ボロノイ領域について、ノードに付与された隆起ラベルに基づいて、あるボロノイ領域Viにおいて、当該ボロノイ領域Viに含まれるノードKiの隆起(Ki)とノードjを含む隆起(j)とが重複領域を有するか否かを判定し、その結果を一時記憶部に格納する。なお、ここでは、理解を容易とするため、ノードKiが属する隆起を隆起(Ki)とし、ノードKiに付与された隆起ラベルを隆起ラベル(Ki)とし、ノードjが属する隆起を隆起(j)とし、ノードjに付与された隆起ラベルを隆起ラベル(j)として説明する。また、ここでのノードjとは、頂点の集合LMに含まれるノードであって、且つ、ボロノイ領域Viに含まれるノードを指す。
サブクラスタ決定手段34は、ノードKiの隆起(Ki)とノードjを含む隆起(j)とが重複領域を有するか否かを、例えば、以下のようにして判定する。サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル(隆起ラベル)について、ネットワークに含まれるノード間の辺およびノードに付与された隆起ラベルに基づいて、その一端のノードの隆起ラベルが隆起ラベル(Ki)であり、かつ、他端のノードの隆起ラベルが隆起ラベル(j)である辺が存在するか否かを判定し、判定の結果、そのような辺が存在する場合には、ノードKiの隆起(Ki)とノードjを含む隆起(j)とが重複領域を有するものと判定し、その結果を一時記憶部に格納する。
S302:サブクラスタ決定手段34は、一時記憶部に格納された判定の結果、ノードKiの隆起(Ki)とノードjを含む隆起(j)とが重複領域を有する場合、ノード集合OKiにノードjを追加する。ノード集合OKiとは、ノードKiの隆起(Ki)とノードjを含む隆起(j)とが重複領域を有する場合に、ノードKiの隆起(Ki)に対して統合する可能性のある隆起(j)を格納しておくための集合である。サブクラスタ決定手段34は、ノードKiの隆起(Ki)とノードjを含む隆起(j)とが重複領域を有しない場合には、S301へと処理を進め、他のボロノイ領域Viについて処理を行う。
S303:サブクラスタ決定手段34は、一時記憶部に格納されたノード集合OKiについて、ノード集合OKiが空集合であるか否か判定し、その結果を一時記憶部に格納する。サブクラスタ決定手段34は、一時記憶部に格納された判定の結果、ノード集合OKiが空集合である場合には、S301へと処理を進め他のボロノイ領域Viについて処理を行い、ノード集合OKiが空集合でない場合には、S304へと処理を進める。
S304:サブクラスタ決定手段34は、例えば、ノード集合OKiに含まれるノードjそれぞれについて、一時記憶部に格納される以下の式(12)又は式(13)のいずれか1つを満足するか否かを判定し、その結果を一時記憶部に格納する。サブクラスタ決定手段34は、一時記憶部に格納された判定の結果、以下の式(12)又は式(13)のいずれか1つを満足する場合には、ノードj∈OKiの隆起ラベルとして、ノードKiの隆起ラベル(Ki)を付与する。即ち、サブクラスタ決定手段34は、ノードjの隆起ラベル(j)をノードKiの隆起ラベル隆起(Ki)に変更することによって、ノードjが属する隆起(j)を、ノードKiが属する隆起(Ki)に統合する。
式(12)及び式(13)において、hKiは、ノードKiのノード密度を示す。meanKiは、隆起(Ki)に含まれるノード(ネットワークに含まれるノード)のノード密度の平均ノード密度を示す。hjは、ノードjのノード密度を示す。meanjは、隆起(j)に含まれるノード(ネットワークに含まれるノード)のノード密度の平均ノード密度を示す。
ここで、meanORの定義を説明する。ノード集合OKiに含まれるノードjの隆起(j)について、隆起(Ki)と隆起(j)とが重複領域を有する場合には、隆起ラベル(Ki)であるノードと、隆起ラベル(j)であるノードとを接続する辺が存在する。この辺によって直接的に接続される各ノードを、隆起(Ki)と隆起(j)の重複領域に位置するノードと称する。meanORは、このようなノードのノード密度の平均ノード密度を示す。例えば、図23に例示する場合では、隆起(Ki)と隆起(j)とが2つの辺によって接続されており、これらの隆起は重複領域を有している。そして、これらの辺により接続されるノードとして、隆起(Ki)の2つのノードと、隆起(j)の2つのノードが存在し、これらの4個のノードが隆起(Ki)と隆起(j)の重複領域に位置する。meanORは、これらの4個のノードのノード密度を平均して算出する。
また、θは、ユーザーによって予め適切な値が決定されて設定されるパラメータを示し、その値は[1,2]の範囲内において定められる。また、θは許容度の要素のパラメータであり、1つのクラスにおいて、隆起(Ki)と隆起(j)との間の差異をどの程度許容するのかを決定するために使用される。θが増加するにつれてこの許容度はより小さくなる。
S305:サブクラスタ決定手段34は、一時記憶部に格納されたノード集合OKiを空集合に設定し、ステップS301へと処理を進め、再びステップS301以降の処理を開始する。
S301〜S305の処理の様子を、図24(A)、(B)、(C)を参照して説明する。
図24(A)に示すように、ボロノイ領域V1において、隆起(K1)、隆起(j1)、隆起(j2)、隆起(j3)、隆起(j4)、隆起(j5)、隆起(j6)、隆起(j7)、隆起(j8)が含まれている。図において、各隆起を破線による白抜きの丸を用いて示す。なお、各ノードおよびノード間の辺については図示を省略した。
サブクラスタ決定手段34は、S301において、隆起(K1)と隆起(j1)が重複領域を有しているか否か、・・・、隆起K1と隆起j8が重複領域を有しているか否か、をそれぞれ判定する。サブクラスタ決定手段34は、S302において、隆起(K1)と隆起(j1)が重複領域を有している場合には、隆起(j1)のノードj1を集合OK1に追加し、隆起(K1)と隆起(j2)が重複領域を有している場合には、隆起(j2)のノードj2を集合OK1に追加し、隆起(K1)と隆起(j3)が重複領域を有している場合には、隆起(j3)のノードj3をOK1に追加する。この結果、集合OK1は、ノードj1、j2、j3を含む。
次に、サブクラスタ決定手段34は、S303において、集合OK1が空集合でないために、次のS304へと進む。サブクラスタ決定手段34は、S304において、ノードj1が属する隆起(j1)について式(12)または(13)が成立するか判定し、成立する場合には、ノードK1の隆起ラベル(K1)をノードj1の隆起ラベルとして付与する。また、サブクラスタ決定手段34は、S304において、ノードj2が属する隆起(j2)について式(12)または(13)が成立するか判定し、成立する場合には、ノードK1の隆起ラベル(K1)をノードj2の隆起ラベルとして付与する。また、サブクラスタ決定手段34は、S304において、ノードj3が属する隆起(j3)について式(12)または(13)が成立するか判定し、成立する場合には、ノードK1の隆起ラベル(K1)をノードj3の隆起ラベルとして付与する。この処理の結果、隆起ラベルに基づく各隆起の状態を、図24(B)に示す。
次に、サブクラスタ決定手段34は、S305において、集合OK1を空集合に設定し、ステップ301へと進む。サブクラスタ決定手段34は、S301において、隆起(K1)と隆起(j4)が重複領域を有しているか否か、・・・、隆起(K1)と隆起(j8)が重複領域を有しているか否か、をそれぞれ判定し、S302において、これらの全ての隆起(j4)〜(j8)が隆起(K1)と重複領域を有している場合には、隆起(j4)〜(j8)のノードj4〜j8を集合OK1に追加する。この結果、集合OK1は、ノードj4〜j8を含む。サブクラスタ決定手段34は、S303を経てS304において、ノードj4〜j8がそれぞれ属する隆起(j4)〜(j8)について、式(13)または(13)が成立するかそれぞれ判定し、成立する場合には、ノードK1の隆起ラベル(K1)を、ノードj4〜j8の隆起ラベルとして付与する。この処理の結果、隆起ラベルに基づく各隆起の状態を、図24(C)に示す。このようにして、サブクラスタ決定手段34は、各ボロノイ領域において、ボロノイ領域のシードとした頂点が属する隆起を中心として、他の隆起の統合を繰り返す。
サブクラスタ決定処理は、高いノード密度の隆起から低いノード密度の隆起へと向けて開始すべきである。このため、式(10)の目的は、ノード密度の境界βを探索して、その境界βの密度がどの程度高いかを決定することである。ノード密度がこの境界βよりも高い隆起は、対応するサブクラスタの中心になりやすい。このため、この種の隆起のノードを、頂点のノード集合Kに追加する。なお、本実施の形態では、隆起に含まれるノードのうちで、局所的に最大のノード密度を有するノードのみをノード集合Kに追加することによって、メモリを節約している。さらに、そのノード密度が境界βよりも低い全ての他の隆起は、ノード集合Kにおいて対応するボロノイ領域の要素となる。
そして、サブクラスタ決定処理を、ノード集合Kにおける要素(ノードKi)から開始する。加えて、サブクラスタ決定処理は、同一のボロノイ領域における隆起間においてのみ行う。異なるサブクラスタに属するかもしれない隆起を一緒に統合してしまうことは回避すべきであるため、同一のボロノイ領域における隆起間についてのみサブクラスタ決定処理を行うことはとても重要である。このような目的を実現するために、本実施の形態では、S301〜S305に示した処理を実行する。
S301〜S305に示したサブクラスタ決定処理は、各ボロノイ領域の中心の隆起から開始する。S301〜S305に示したサブクラスタ決定処理は繰り返し処理であり、隆起間に重複領域が存在し、かつ、ノード密度に関する上述した所定の条件を満たす場合に、ボロノイ領域の中心の隆起は、重複領域を有する隆起を統合する。なお、各繰り返し処理において、当初は重複領域を有していなかったいくつかの隆起について、最後の繰り返し処理において、重複領域を有することがある。S301〜S305に示した処理は、異なる方向に向けて山を降りていく処理にとても類似する処理である。
図5は、E-SOINNによって生成された変動を有する分布と、情報処理装置1によって生成されてサブクラスタが統合された分布を概念的に示している。本実施の形態に係るS201〜S205及びS301〜S305の処理によれば、明らかに、異なるサブクラスタに混合クラスを分離するときの乱れを回避することができる。言い換えると、情報処理装置1は、E-SOINNよりも安定であると言える。
<3:新たな距離尺度の組み合わせの枠組み>
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)などのいくつかが提案されている。しかし、オンライン追加学習環境においては、サンプルデータを事前に得ることができない。言い換えると、事前に入力ベクトルの次元数を分析し、どの距離尺度が有効であるかを決定することができない。このため、本実施の形態では、距離尺度の組み合わせの枠組みを提案し、高次元空間において有効な他の距離尺度とユークリッド距離を統合する。これによって、次元の呪いを克服する。この距離尺度の組み合わせの枠組みは、オンライン自己増殖型追加学習タスクに適したものである。
本実施の形態に係る距離尺度の組み合わせの枠組みである距離算出式を、例えば、以下の式(14)に示す。ここで、D(p,q)はノードp及びノードqの間の距離を示す。dは入力ベクトルの次元数を示し、nは距離尺度の個数を示す。ηは、ユーザーによって予め適当な値が決定されて設定されるパラメータである。なお、ηは、実験を経て予め適当な値を決定し、ユーザーによって当該値を設定するものとしてもよいし、入力ベクトルの次元数を変数とする関数を情報処理装置1に設定し、情報処理装置1が、当該関数を用いて入力データの次元数に応じた適当な値を自ら算出して設定するようにしてもよい。
式(14)に示す距離算出式は、第1項部分と、第2項部分を含む。第1項部分は、ユークリッド距離に基づいてノード間の距離を算出する第1の距離算出式の一例である。第2項部分は、ユークリッド距離とは異なる他の距離尺度に基づいてノード間の距離を算出する、複数の距離算出式の一例である。第1項部分及び第2項部分はそれぞれ重み付けがされており、当該重み付けは、パラメータη及びdに応じて設定されている。後述するように、入力ベクトルの次元数dが増加するに従って、第1の距離算出式の重みを減少させるように設定されている。
EUpqは、ノードp及びノードqの間のユークリッド距離に基づく距離を示し、式(15)により算出する。EUmin及びEUmaxは、ネットワークにおける任意の2つのノード間の最小のユークリッド距離及び最大のユークリッド距離をそれぞれ示す。EUmaxの値は減少せずに増加するだけであり、このことは、EUmaxの値が、学習の過程においてそれまでに現れた最大のユークリッド距離であることを示す。また、学習フェーズが続く限り、EUminの値は増加せずに減少するだけであり、このことは、EUminの値が、学習の過程においてそれまでに現れた最小のユークリッド距離であることを示す。
Di pq、Di min、Di maxは、i番目の距離尺度に関するものである。Di pqは、ノードp及びノードqの間のi番目の距離尺度に基づく距離を示す。Di min及びDi maxは、ネットワークにおける任意の2つのノード間のi番目の距離尺度に基づく最小の距離値及び最大の距離値をそれぞれ示す。即ち、これらはEUpq、EUmin、EUmaxとそれぞれ同一の意味合いを有する。
各距離尺度に基づく距離は、互いに異なるスケールである。このため各距離尺度に基づく距離算出式を一つの距離算出式に統合するために、各距離尺度に基づく2つのノード間の最小距離値及び最大距離値を用いて、式(14)に示すようにして2つのノード間の距離を正規化する。
また、式(14)では、入力ベクトルの次元数が増加するに従って、式(14)に示すノード間距離算出式の値に占めるユークリッド距離に基づく距離算出式による値の比率を減少させ、これに対応するように、他の距離尺度に基づく距離算出式による値の比率を増加させる。
従って、このようなノード間距離算出式に示す枠組みによれば、低次元空間におけるユークリッド距離の優位性を得られる上に、高次元空間における学習タスクに対して情報処理装置1を適用させることも可能となる。さらに、この枠組みは入力ベクトルの事前の分析を必要としないために、オンライン追加の自己増殖型学習タスク、あるいは限られた入力ベクトルのサンプルによる実世界の学習タスクに適している。
後述するように、本実施の形態に係る情報処理装置1に対する実験においては、他の距離尺度の一例としてコサイン距離(cosine distance)を採用し、コサイン距離をユークリッド距離に統合する。コサイン距離の定義を以下の式に示す。ここで、θは、重みベクトルWp及び重みベクトルWqの間の角度を示す。
本実施の形態では、式(16)を用いて、式(14)に示した距離尺度の組み合わせを、以下に示すように再定義する。情報処理装置1は、例えば、式(17)に示す新たな距離尺度を用いてノードp及びノードqの間の距離を算出し、その結果を一時記憶部に格納する。
<4:類似度閾値の定義>
クラス間ノード挿入判定手段25は、一時記憶部に格納されたノード及びノードの類似度閾値について、注目するノードについて、隣接ノードが存在する場合には、隣接ノードのうち注目するノードからの距離が最大であるノードまでの距離を類似度閾値として算出し、その結果を一時記憶部に格納し、隣接ノードが存在しない場合には、注目するノードからの距離が最小であるノードまでの距離を類似度閾値として算出し、その結果を一時記憶部に格納する。具体的には、例えば以下のようにして注目するノードの類似度閾値を算出し、その結果を一時記憶部に格納する。なお、クラス間ノード挿入判定手段25は、ネットワークに初めて挿入され一時記憶部に格納されたノードiの類似度閾値Tiについては、予め定める十分大きな値を設定し、その結果を一時記憶部に格納する。
クラス間ノード挿入判定手段25は、一時記憶部に格納されたノードについて、ノードiが第1勝者ノード又は第2勝者ノードとなった場合に、ノードiが隣接ノードを有するか否かを判定し、その結果を一時記憶部に格納する。
クラス間ノード挿入判定手段25は、一時記憶部に格納された判定の結果、ノードiが隣接ノードを有する場合には、一時記憶部に格納された類似度閾値及びノードについて、類似度閾値Tiを隣接ノードへの最大距離とし、その結果を一時記憶部に格納する。即ち、ノードiについて、一時記憶部に格納される以下の式(18)に基づいて類似度閾値Tiを算出し、その結果を一時記憶部に格納する。ここで、jは一時記憶部に格納されたノードiの隣接ノード集合Niに含まれるノードであり、D(i,j)は、式(17)を用いて算出する、ノードi及びノードj間の距離である。
クラス間ノード挿入判定手段25は、一時記憶部に格納された判定の結果、ノードiが隣接ノードを有しない場合には、ノードiからノードiを除いた他の各ノードへの距離を算出し、算出された距離のうち最小の距離を類似度閾値Tiとする。即ち、ノードiについて、一時記憶部に格納される以下の式(19)に基づいて類似度閾値Tiを算出し、その結果を一時記憶部に格納する。
<5:新たなノード密度の定義及びその算出処理>
ノード密度算出手段23は、注目するノードのノード密度を、隣接ノードからのノードの平均距離に基づいて算出する。隣接ノードjからのノードiの平均距離のベクトルdi →は、例えば、以下の式(20)に示すようにして算出することができる。ここで、変数di →は、変数diの上に記号「→(ライトアロー)」が付いていることを示す。また、以下の説明において、記号「→(ライトアロー)」は、ベクトルであることを示す。ここで、ベクトルの要素数は、使用する距離尺度の個数と一致する。本実施の形態では、後述するように、2つの距離尺度を使用するため、ベクトルの要素数は2である。
本実施の形態では、上述したように、新たな距離尺度の組み合わせの枠組みを提案し、ユークリッド距離に加えて他の距離尺度を使用するために、2つのノード間の距離を正規化する。このため、本実施の形態では、以下に説明するように、ノード密度の算出に際して上記式(20)をそのまま採用することに代えて、隣接ノードjからのノードiの平均距離のベクトルdi →を以下の式(23)を使用して算出する。また、本実施の形態では、各距離尺度の正規化のために使用されるノード間の最小距離値及び最大距離値(EUmax、EUmin、Di max、Di min)はネットワークに新たな入力ベクトルが入力されると変化するため、この点についても考慮する。
情報処理装置1では、新たな距離尺度の枠組みを採用する。このため、新たなノードiについて隣接ノードからの平均距離を式(20)に基づいて算出する場合に、以前に挿入した他のノードの平均累積ポイント値を算出する際に使用したEUmax又はDi maxと比べて、EUmax又はDi maxの値が十分に大きくなっている可能性がある(ただし、ここでEUmin及びDi minは変化しないものと仮定する。)。言い換えると、以前に挿入した他のノードの隣接ノードからの平均距離が算出され、新しいノードの隣接ノードからの平均距離が算出されるが、それぞれ異なったスケールにおいて正規化がなされる。
そこで、本実施の形態では、情報処理装置1は、ノード密度の新たな定義及び算出処理を導入し、上述した問題に対応する。この基本的な考えは、各距離尺度に基づくノード間の最小距離値及び最大距離値(EUmax、EUmin、Di max、Di min)のうちで少なくとも1つの値が変化した場合に、ネットワークに存在する全てのノードのノード密度の累積ポイント値を再び算出して更新することである。以下、具体的に説明する。
まず、ノード密度の新たな定義を説明する。ノードiについて、その隣接ノードjからのノードiの平均距離のベクトルdi →を、以下に示すように新しく定義する。
すると、式(21)を変形することによって、以下の式(22)を得る。
最後に、式(22)の表記を簡略化することによって、隣接ノードjからのノードiの平均距離のベクトルdi →を、以下の式に示すように表すことができる。ノード密度算出手段23は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値、隣接ノードからのノードの平均距離のベクトルについて、各距離尺度に基づく注目するノードの隣接ノードからの距離と、各距離尺度に基づくノード間の最小距離値及び最大距離値と、に基づいて注目するノードの隣接ノードからの平均距離のベクトルを算出し、その結果を一時記憶部に格納する。ノード密度算出手段23は、例えば、一時記憶部に格納される以下の式(23)を用いて隣接ノードjからの注目するノードiの平均距離のベクトルdi →を算出し、その結果を一時記憶部に格納する。
上記式(23)に示した隣接ノードjからの注目するノードiの平均距離のベクトルdi →における各要素は、0より大きくかつ1より小さい。このため、ノード密度のポイント値のベクトルpi →の新たな定義を、以下の式(24)に示すように定める。ノード密度算出手段23は、一時記憶部に格納されるノード、隣接ノードからのノードの平均距離のベクトル、ノード密度のポイント値のベクトルについて、注目するノードが第1勝者である場合にのみ隣接ノードからのノードの平均距離のベクトルに応じた値をノード密度のポイント値のベクトルとして算出し、その結果を一時記憶部に格納する。ノード密度算出手段23は、例えば、一時記憶部に格納される以下の式(24)に示す算出処理を実行し、ノード密度のポイント値のベクトルpi →を算出し、その結果を一時記憶部に格納する。
式(24)に示した"ノード密度のポイント値のベクトルpi →"の定義に関して、隣接ノードからのノードiの平均距離が大きく、かつ、その領域におけるノードの個数が少ない場合、ノード密度のポイント値の定義は、E-SOINNの定義とは異なったものになる。情報処理装置1では、このような場合には、低い"ノード密度のポイント値のベクトルpi →"を、ノードiに与える(低いとは、ノード密度のポイント値のベクトルpi →の要素の合計値が小さいことを意味する。)。他方で、隣接ノードからのノードiの平均距離が小さい場合には、その領域におけるノードの個数が多く、その領域におけるノード密度が高いことを意味する。このため、情報処理装置1は、高い"ノード密度のポイント値のベクトルpi →"を、ノードiに与える(高いとは、ノード密度のポイント値のベクトルpi →の要素の合計値が大きいことを意味する。)。
情報処理装置1は、入力ベクトルが1つ入力されてそれに対する1回の学習の繰り返しにおいて、式(24)に示したようにノードiが勝者ノードである場合にのみ、ノードiについての"ノード密度のポイント値のベクトルpi →"のみを算出する。この繰り返しにおいて、勝者ノードでない他のノードの"ノード密度のポイント値のベクトルpi →"は算出せず、その値は全て0である。情報処理装置1は、ノード密度のポイント値のベクトルpi →の定義をE-SOINNとは異なるものにし、式(24)が線形関数であることから、各距離尺度に基づくノード間の最小距離値及び最大距離値(EUmax、EUmin、Di max、Di min)のうちで少なくとも1つの値が変化した場合に、ノード密度を容易に再び算出できるようにする。
ノード密度算出手段25は、一時記憶部に格納されたノード、ノード密度のポイント値のベクトルについて、第1勝者ノードiのノード密度のポイント値のベクトルpi →を、λ及びmに関して累積して合計することによって、第1勝者ノードiのノード密度の累積ポイント値のベクトルsi →を算出し、その結果を一時記憶部に格納する。ノード密度算出手段25は、例えば、一時記憶部に格納される以下の式(25)に示す算出処理を実行し、その結果を一時記憶部に格納する。ここで、連続して与えられる入力ベクトルの入力総数がLTとなるまでの学習区間を、1つの学習区間とする。さらに、この学習区間を、入力ベクトルの入力総数が所定の単位数(λ)となるごとに複数の単位学習区間に分割する。この複数の学習区間の個数をmとする(m=LT/λ)。
そして、ノード密度算出手段25は、一時記憶部に格納されたノード、ノード密度の累積ポイント値のベクトルについて、所定の関数fに対してノードiのノード密度の累積ポイント値のベクトルsi →を入力し、単位入力数Nによって除算して算出し、その結果をノードiのノード密度hiとして一時記憶部に格納する。本実施の形態では、単位入力数Nあたりの平均値hiを、ノードiのノード密度として定義する。従って、ノード密度算出手段25は、例えば、一時記憶部に格納される以下の式(26)に示す算出処理を実行し、ノード密度を算出し、その結果を一時記憶部に格納する。ここで、f(X→)は、ベクトルX→の要素の合計値を算出する関数である。単位入力数Nは、m個の単位学習区間のうちで、ノード密度の累積ポイント値のベクトルsi →の要素が0より大きい場合の単位学習区間の回数として算出する。なお、Nの定義はE-SOINNと同一である(特許文献1の段落0067を参照。)。
次に、ノード密度の更新処理について説明する。ノード密度更新判定手段22は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値について、各距離尺度に基づくノード間の最小距離値及び最大距離値(EUmax、EUmin、Di max、Di min)のうちで少なくとも1つの値が変化したか否かを確認し、少なくとも1つの値が変化した場合にはノード密度を更新すると判定し、その結果を一時記憶部に格納する。
そして、ノード密度算出手段25は、一時記憶部に格納された判定の結果、ノード密度を更新する場合には、一時記憶部に格納されたノード、ノード密度の累積ポイント値のベクトル、ノードの学習時間、各距離尺度に基づくノード間の最小距離値及び最大距離値について、ノード密度の累積ポイント値のベクトル、ノードの学習時間、各距離尺度に基づくノード間の最小距離値及び最大距離値に基づいて、ネットワークに存在する全てのノードについて、ノードiのノード密度の累積ポイント値のベクトルsi →を以下に示すようにして再び算出して更新し、更新したノードiのノード密度の累積ポイント値のベクトルsi →を用いてノードiのノード密度hiを再び算出し、その結果を一時記憶部に格納する。ノード密度算出手段25は、例えば、一時記憶部に格納される以下の式(27)〜(30)に示す算出処理を実行することによって、ネットワークに存在するノードiのノード密度の累積ポイント値のベクトルsi →を算出し、算出したノードiのノード密度の累積ポイント値のベクトルsi →を式(26)に代入して、ノードiのノード密度hiを再び算出し、その結果を一時記憶部に格納する。このようにして、ノード密度算出手段25は、ノードiのノード密度の累積ポイント値のベクトルsi →及びノードiのノード密度hiを再び算出して更新する。
式(27)において、Miはノードiの学習時間を示す。ノードiの学習時間のベクトルMi →を、以下の式(28)に示す。
ノード密度算出手段25は、例えば、一時記憶部に格納される以下の式(29)及び式(30)に示す算出処理を実行することによって、式(27)におけるベクトルk→及びb→を算出し、その結果を一時記憶部に格納する。ここで、EU'max、EU'min、(Di max)'、(Di min)'は、各距離尺度に基づくノード間の最小距離値及び最大距離値についての、変化後の新たな値である。他方で、EUmax、EUmin、Di max、Di minは、変化する以前の値である。変化する以前の値とは、学習処理過程においてネットワークにおけるノード間の距離が変化した結果、EUmax、EUmin、Di max、Di minの値が変化した場合に、変化以前の値を指し、EUmax、EUmin、Di max、Di minをそのまま用いて記述する。一方で、変化後の新しい値とは、EU'max、EU'min、(Di max)'、(Di min)'の値が変化した場合に、変化後の値を指し、以前の値と区別するために、EU'max、EU'min、(Di max)'、(Di min)'を用いて示す。
<6:辺接続判定処理及び辺接続処理(勝者ノード接続処理)>
E-SOINNでは、勝者ノード間の辺接続判定処理及び辺接続処理(特許文献1の図5のS606、S607の処理を指す。具体的には、明細書の段落0072〜0079に記載の処理を指す。)に関して、パラメータαを使用する。このパラメータαは、所定の閾値関数を用いて定義されている(特許文献1の段落0078を参照。)。この所定の閾値関数は、2.0、3.0、0.0、0.5、1.0などのいくつかの整数を必要としており、実際上の応用処理において良好な学習結果を得るためには、これらの整数値を調整する必要がある。しかしながら、ユーザーにとって、そのような調整タスクを行うことは容易ではない。そこで、情報処理装置1では、以下に示す滑らかな関数(soft function)を提案し、区分的関数(piecewise function)である前記所定の閾値関数を置き換える。
辺接続判定手段27は、一時記憶部に格納されたクラス間ノード挿入判定手段25による判定結果に応じて、一時記憶部に格納されたノード、ノードのサブクラスタラベル、ノードの密度について、第1勝者ノード及び第2勝者ノードが属するサブクラスタラベルと、第1勝者ノード及び第2勝者ノードについてのノード密度の条件とに基づいて、第1勝者ノード及び第2勝者ノード間に辺を接続するか否か判定し、その結果を一時記憶部に格納する。
辺接続手段28は、一時記憶部に格納された判定結果に応じて、第1勝者ノード及び第2勝者ノード間の辺の生成及び削除処理を実行し、その結果を一時記憶部に格納する。
辺接続判定手段27は、例えば以下のようにして、辺を接続するか否かを判定し、その結果を一時記憶部に格納する。辺接続手段28は、例えば以下のようにして、辺の生成及び削除処理を実行し、その結果を一時記憶部に格納する。
<辺接続判定処理及び勝者ノード接続処理:S401〜S405>
S401:辺接続判定手段27は、一時記憶部に格納されたノード、ノードのサブクラスタラベル(隆起ラベル)について、ノードのサブクラスタラベル(隆起ラベル)に基づいて、第1勝者ノード及び第2勝者ノードが属するサブクラスタをそれぞれ判定し、その結果を一時記憶部に格納する。
S402:一時記憶部に格納された判定の結果、第1勝者ノード及び第2勝者ノードの少なくとも1つがいずれのサブクラスタにも属していない場合、又は、第1勝者ノード及び第2勝者ノードが同一のサブクラスタに属している場合には、辺接続手段28は、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を生成することによりノード間を接続し、その結果を一時記憶部に格納する。
S403:一時記憶部に格納されたS401における判定の結果、第1勝者ノード及び第2勝者ノードが互いに異なるサブクラスタに属す場合には(例えば、第1勝者ノードがサブクラスタAに属し、かつ、第2勝者ノードがサブクラスタBに属する場合)、辺接続判定手段27は、一時記憶部に格納されたノード、ノード密度について、第1勝者ノード及び第2勝者ノードのノード密度に関して、第1勝者ノードを含むサブクラスタの平均ノード密度を基準とする第1勝者ノードについてのノード密度の条件、又は、第2勝者ノードを含むサブクラスタの平均ノード密度を基準とする第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たすか否かを判定し、その結果を一時記憶部に格納する。
S404:一時記憶部に格納されたS403における判定の結果、辺を接続する必要があると判定した場合には、辺接続手段28は、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を生成しノード間を接続する。これによって、サブクラスタA及びBが統合される。
S405:一時記憶部に格納されたS403における判定の結果、辺を接続する必要がないと判定した場合には、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノード及び第2勝者ノード間を辺によって接続しない。なお、ノード間が辺によって既に接続されていた場合には、辺接続手段28は、一時記憶部に格納されたノード及びノード間の辺について、一時記憶部に格納された第1勝者ノード及び第2勝者ノード間の辺を削除し、その結果を一時記憶部に格納する。
ここで、S403における辺接続判定手段27による判定処理について詳細に説明する。
辺接続判定手段27は、例えば、以下の式(31)又は式(32)の少なくとも1つを満足する場合、第1勝者ノード及び第2勝者ノード間に辺を接続するものと判定し、そうでない場合、第1勝者ノード及び第2勝者ノード間に辺を接続しないと判定し、その結果を一時記憶部に格納する。
式(31)及び式(32)において、hwinnerは第1勝者ノードのノード密度を示し、hsecondwinnerは第2勝者ノードのノード密度を示す。min(hwinner,hsecondwinner)は、第1勝者ノードのノード密度hwinner及び第2勝者ノードのノード密度hsecondwinnerのうちの最小のノード密度を示す。hAは、サブクラスタAに含まれるノードのうちで最大のノード密度を有するノードのノード密度を示し、meanAは、サブクラスタAに含まれる全てのノードから算出するサブクラスタAの平均ノード密度を示す。hBは、サブクラスタBに含まれるノードのうちで最大のノード密度を有するノードのノード密度を示し、meanBは、サブクラスタBに含まれる全てのノードから算出するサブクラスタBの平均ノード密度を示す。θは、式(12)において用いたパラメータと同一のパラメータである。
式(31)に示す第1勝者ノードについてのノード密度の条件は、第1勝者ノードのノード密度及び第2勝者ノードのノード密度のうちの最小のノード密度が、第1勝者ノードを含むサブクラスタAの平均ノード密度meanAを基準として、サブクラスタAの平均ノード密度meanAに対する最大ノード密度hAの比率に応じて算出する閾値よりも大きいか否かを判定する条件である。また、式(32)に示す第2勝者ノードについてのノード密度の条件は、第1勝者ノードのノード密度及び第2勝者ノードのノード密度のうちの最小のノード密度が、第2勝者ノードを含むサブクラスタBの平均ノード密度meanBを基準として、サブクラスタBの平均ノード密度meanBに対する最大ノード密度hBの比率に応じて算出する閾値よりも大きいか否かを判定する条件である。
<全体処理フロー:S501〜S519>
続いて、本実施形態に係る情報処理装置における全体処理フローについて、図22のフローチャートを用いて説明する。図22は、本実施形態に係る情報処理装置による学習処理の処理概要を示すフローチャートである。
S501:入力情報取得手段21は、2つの入力ベクトルをランダムに取得し、ノード集合Aをそれらに対応する2つのノードのみを含む集合として初期化し、その結果を一時記憶部に格納する。また、入力情報取得手段21は、辺集合C⊂A×Aを空集合として初期化し、その結果を一時記憶部に格納する。
S502:入力情報取得手段21は、新しい入力ベクトルε∈Rnを入力し、その結果を一時記憶部に格納する。
S503:ノード密度更新判定手段22は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値について、各距離尺度に基づくノード間の最小距離値及び最大距離値(EUmax、EUmin、Di max、Di min)のうちで少なくとも1つの値が変化したか否かを確認し、少なくとも1つの値が変化した場合にはノード密度を更新すると判定し、その結果を一時記憶部に格納する。なお、各距離尺度に基づくノード間の最小距離値及び最大距離値(EUmax、EUmin、Di max、Di min)は、学習開始時点において初期値として0が予め設定される。
S504:ノード密度算出手段23は、一時記憶部に格納された判定の結果、ノード密度を更新する場合には、一時記憶部に格納されたノード、ノード密度の累積ポイント値のベクトル、ノードの学習時間、各距離尺度に基づくノード間の最小距離値及び最大距離値について、ノード密度の累積ポイント値のベクトル、ノードの学習時間、各距離尺度に基づくノード間の最小距離値及び最大距離値に基づいて、ノード集合Aに含まれるノードi∈Aのノード密度の累積ポイント値のベクトルsi →を再び算出して更新し、更新したノードiのノード密度の累積ポイント値のベクトルsi →を用いてノードiのノード密度hiを再び算出し、その結果を一時記憶部に格納する。ノード密度算出手段23は、例えば、一時記憶部に格納される上述した式(27)〜(30)及び式(26)に示す算出処理を実行することによって、ノードiのノード密度の累積ポイント値のベクトルsi →及びノードiのノード密度hiを再び算出して更新する。
なお、一時記憶部に格納された判定の結果、ノード密度を更新しない場合には、S504におけるノード密度算出手段23による処理は行わずに、情報処理装置1は、S505へと処理を進める。
S505:勝者ノード探索手段24は、一時記憶部に格納された入力ベクトル及びノードについて、入力ベクトルεに最も距離が近い第1勝者ノードa1及び2番目に近い第2勝者ノードa2を探索し、その結果を一時記憶部に格納する。勝者ノード探索手段24は、探索処理として、例えば、a1=mina∈AD(ε,a),a2=mina∈A\{a1}D(ε,a)に示す処理を実行し、その結果を一時記憶部に格納する。ここで、勝者ノード探索手段24は、上述した式(17)に示した新たな距離尺度を用いて入力ベクトルε及びノードaの間の距離D(ε,a)を算出し、その結果を一時記憶部に格納する。
S506:クラス間ノード挿入判定手段25は、一時記憶部に格納された入力ベクトル、ノード、ノードの類似度閾値について、入力ベクトルεと第1勝者ノードa1間の距離が第1勝者ノードa1の類似度閾値Ta1より大きいか否か、及び、入力ベクトルεと第2勝者ノードa2間の距離が第2勝者ノードa2の類似度閾値Ta2より大きいか否かを判定し、その結果を一時記憶部に格納する。ここで、クラス間ノード挿入判定手段25は、上述した式(18)又は式(19)を用いて第1勝者ノードa1の類似度閾値Ta1及び第2勝者ノードa2の類似度閾値Ta2を算出し、その結果を一時記憶部に格納する。さらに、クラス間ノード挿入判定手段25は、入力ベクトルεと第1勝者ノードa1間の距離が第1勝者ノードa1の類似度閾値Ta1より大きい、又は、入力ベクトルεと第2勝者ノードa2間の距離が第2勝者ノードa2の類似度閾値Ta2より大きい場合には、クラス間ノード挿入を実行すると判定し、そうでない場合には、クラス間ノード挿入を実行しないと判定し、その結果を一時記憶部に格納する。
S507:一時記憶部に格納されたS506における判定の結果、クラス間ノード挿入を実行する場合には、クラス間ノード挿入手段26は、一時記憶部に格納された入力ベクトル及びノードについて、入力ベクトルεはネットワークへの新たなノードとなるため、入力ベクトルεの成分と同一の成分を重みベクトルとして有するクラス間挿入ノードを生成し、生成したクラス間挿入ノードをノード集合Aに追加し、その結果を一時記憶部に格納する。そして、情報処理装置1は、S502へと処理を進めて、再び入力ベクトルの入力を行う。
S508:一方、一時記憶部に格納されたS506における判定の結果、クラス間ノード挿入を実行しない場合には、辺接続判定手段27は、一時記憶部に格納されたノード、ノードのサブクラスタラベルについて、ノードのサブクラスタラベルに基づいて、第1勝者ノードa1及び第2勝者ノードa2が属するサブクラスタをそれぞれ判定し、その結果を一時記憶部に格納する。辺接続判定手段27は、例えば、上述したS401に示した辺接続判定処理を行う。
また、辺接続判定手段27は、一時記憶部に格納されたS508における判定の結果、第1勝者ノード及び第2勝者ノードが互いに異なるサブクラスタに属する場合には、一時記憶部に格納されたノード、ノードの密度について、第1勝者ノードa1及び第2勝者ノードa2のノード密度に関して、第1勝者ノードa1を含むサブクラスタの平均ノード密度を基準とする第1勝者ノードについてのノード密度の条件、又は、第2勝者ノードa2を含むサブクラスタの平均ノード密度を基準とする第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たすか否かを判定し、その結果を一時記憶部に格納する。例えば、上述したS403に示した辺接続判定処理を行う。
S509:一時記憶部に格納されたS508における判定の結果、第1勝者ノード及び第2勝者ノードの少なくとも1つがいずれのサブクラスタにも属していない、又は、同一のサブクラスタに属する場合には、辺接続手段28は、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノードa1及び第2勝者ノードa2間に辺を接続し、その結果を一時記憶部に格納する。辺接続手段28は、例えば、上述したS402に示した勝者ノード接続処理を行う。そして、辺接続手段28は、一時記憶部に格納された辺及び辺の年齢について、新しく生成された辺、及び、既にノード間に辺が生成されていた場合にはその辺について、辺の年齢を0に設定しその結果を一時記憶部に格納する。
また、辺接続手段28は、一時記憶部に格納されたS508における判定の結果、上記の第1勝者ノード及び第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たす場合には、一時記憶部に格納されたノード、ノード間の辺について、第1勝者ノードa1及び第2勝者ノードa2間に辺を接続し、その結果を一時記憶部に格納する。辺接続手段28は、例えば、上述したS404に示した勝者ノード接続処理を行う。
辺接続手段28は、一時記憶部に格納されたS508における判定の結果、上記の第1勝者ノード及び第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たさない場合には、一時記憶部に格納されたノード、ノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を接続しない(第1勝者ノード及び第2勝者ノード間に辺が存在する場合には辺を削除する)、その結果を一時記憶部に格納する。辺接続手段28は、例えば、上述したS405に示した勝者ノード接続処理を行う。
S510:ノード密度算出手段23は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値、隣接ノードからのノードの平均距離のベクトル、ノードのノード密度のポイント値のベクトル、ノード密度の累積ポイント値のベクトル、ノード密度について、第1勝者ノードa1をノードiとして、各距離尺度に基づく隣接ノードからのノードiの距離と、各距離尺度に基づくノード間の最小距離値及び最大距離値と、に基づいてノードiについての隣接ノードからの平均距離のベクトルdi →を算出し、当該算出した隣接ノードからの平均距離のベクトルdi →に基づいて第1勝者ノードa1のノード密度のポイント値のベクトルpi →を算出し、当該算出した第1勝者ノードa1のノード密度のポイント値のベクトルpi →に基づいてノード密度の累積ポイント値のベクトルsi →を算出し、当該算出した第1勝者ノードa1のノード密度の累積ポイント値のベクトルsi →に基づいて第1勝者ノードa1のノード密度hiを算出し、その結果を一時記憶部に格納する。ノード密度算出手段23は、例えば、一時記憶部に格納される上述した式(24)〜(26)に示す算出処理を実行することによって、ノードiのノード密度の累積ポイント値のベクトルsi →及びノードiのノード密度hiを算出する。
S511:勝者ノード学習時間算出手段29は、一時記憶部に格納された第1勝者ノードa1の学習時間Ma1を所定の値増加し、その結果を一時記憶部に格納する。勝者ノード学習時間算出手段29は、例えば、Ma1(t+1)=Ma1(t)+1という処理を実行することによって、第1勝者ノードa1の学習時間Ma1を1増加し、その結果を一時記憶部に格納する。
S512:重みベクトル更新手段30は、一時記憶部に格納されたノード及びノードの重みベクトルについて、第1勝者ノードa1及びその隣接ノードの重みベクトルをそれぞれ入力ベクトルεに更に近づけるように更新し、その結果を一時記憶部に格納する。重みベクトル更新手段30は、例えば以下の式(33)及び式(34)を用いて、第1勝者ノードa1の重みベクトルWa1についての更新量ΔWa1及び第1勝者ノードa1の隣接ノードjの重みベクトルWs1についての更新量ΔWjを算出し、更新量ΔWa1を第1勝者ノードa1の重みベクトルWa1に加算し、更新量ΔWjを隣接ノードjの重みベクトルWs1に加算して、この結果を一時記憶部に格納する。式(33)及び式(34)において、Ms1は、第1勝者ノードa1の学習時間を示す。なお、ここでの重みベクトルの変化方法はE-SOINNと同様である(特許文献1の段落0063を参照。)。
S513:老齢辺削除手段31は、一時記憶部に格納されたノード、ノード間の辺、辺の年齢について、第1勝者ノードa1と直接的に接続される全ての辺の年齢を所定の値増加し、その結果を一時記憶部に格納する。老齢辺削除手段31は、例えば、第1勝者ノードa1と直接的に接続される全ての辺の年齢を1増加し、その結果を一時記憶部に格納する。老齢辺削除手段31は、一時記憶部に格納された辺について、予め設定され一時記憶部に格納された所定の閾値agemaxを超えた年齢を有する辺を削除し、その結果を一時記憶部に格納する。ここで、パラメータagemaxは実験により予め適当な値を算出し一時記憶部に格納される。
S514:入力数判定手段32は、一時記憶部に格納された与えられた入力ベクトルεの総数について、入力された入力ベクトルεの総数が予め設定され一時記憶部に格納された所定の単位数(λ)の倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力ベクトルの総数が所定の単位数でない場合にはS502へと戻り、次の入力ベクトルεを処理する。入力ベクトルεの総数が所定の単位数となった場合には以下のS515以降に示す処理を実行する。なお、パラメータλは実験により予め適当な値を算出し一時記憶部に格納される。
なお、S515〜S517に示す処理は、情報処理装置1に対して入力された入力ベクトルの総数が所定の単位数となるごとに実行される。即ち、入力ベクトルの総数が所定の数(λ)となるまでの単位学習区間を一周期とすると、S515〜S517に示す処理は、入力ベクトルの総数に応じた所定の周期ごとに定期的に実行される。
S515:負荷平衡化手段33は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノードの重みベクトル、ノードの学習時間、ノードの密度について、学習時間の値が大きくかつ偏ったノードをノードの学習時間に基づいて検出し、当該検出したノードとその隣接ノードの間に新たなノードを挿入してノード集合Aに追加する。当該検出したノード及びその隣接ノードについてのノードの学習時間をそれぞれ減少し、その結果を一時記憶部に格納する。負荷平衡化手段33は、例えば、上述したS101〜S107に示したノード間の負荷平衡化処理を実行し、その結果を一時記憶部に格納する。これによって、負荷平衡化手段33は、負荷が不均衡な状態にあるノードについてその負荷を平衡化させる。
S516:サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間の辺、ノード密度、ノードのサブクラスタラベルについて、ノード集合Aに含まれるノードから局所的に最大のノード密度を有するノードを頂点として探索し、当該探索した頂点に対してそれぞれ異なるサブクラスタラベル(隆起ラベル)を付与し、当該サブクラスタラベル(隆起ラベル)が付与されなかった全てのノードに対してノード密度が最大の隣接ノードと同一のサブクラスタラベル(隆起ラベル)を付与し、その結果を一時記憶部に格納する。また、サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間の辺、ノード密度について、頂点のうちでノード密度が所定の閾値よりも大きな頂点を基準としてボロノイ領域を生成し、その結果を一時記憶部に格納する。さらに、サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間の辺、ノード密度、ボロノイ領域について、生成したボロノイ領域において、基準とした頂点を含むサブクラスタと基準とした頂点とは異なる他の頂点を含むサブクラスタとが重複領域を有し、かつ、当該重複領域に位置するノードの平均ノード密度の条件を満たす場合に、基準とした頂点を含むサブクラスタのサブクラスタラベルを、他の頂点を含むサブクラスタのサブクラスタラベルとして付与し、その結果を一時記憶部に格納する。サブクラスタ決定手段34は、例えば、上述したS201〜S205、S301〜S305に示したサブクラスタ決定処理を実行し、その結果を一時記憶部に格納する。
S517:ノイズノード削除手段35は、一時記憶部に格納されたノード集合Aに含まれる全てのノードaについて、ノイズノードと見なしたノードを削除し、その結果を一時記憶部に格納する。ノイズノード削除手段35は、一時記憶部に格納されたノード、ノード間の辺、隣接ノードの個数、ノード密度について、例えば、以下のS601〜S604に示す処理を実行し、注目するノードaの隣接ノードの個数及びノード密度に基づいて、注目するノードを削除し、その結果を一時記憶部に格納する。
S601:ノイズノード削除手段35は、一時記憶部に格納されたノード、ノード間の辺、隣接ノードの個数について、注目するノードaの隣接ノードの個数を算出し、その結果を一時記憶部に格納する。そして、ノイズノード削除手段35は、一時記憶部に格納された隣接ノードの個数に応じて、以下のS602〜S604のいずれかの処理を実行する。なお、以下の処理において使用されるパラメータc1及びc2は、予め適当な値が設定され一時記憶部に格納される。
S602:一時記憶部に格納された隣接ノード数が2の場合、ノイズノード削除手段35は、一時記憶部に格納される例えば式(35)が成立するか否かを判定し、その結果を一時記憶部に格納する。ここで、haは、ノードaのノード密度を示し、NAは、ノード集合Aに含まれるノードの個数を示す。一時記憶部に格納された判定結果について式(35)が成立する場合には、ノイズノード削除手段35は、一時記憶部に格納されたノードについて、該当するノードaを削除し、その結果を一時記憶部に格納する。
S603:一時記憶部に格納された隣接ノード数が1の場合、ノイズノード削除手段35は、ノードaのノード密度haについて、一時記憶部に格納される例えば式(36)が成立するか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定結果について式(36)が成立する場合には、ノイズノード削除手段35は、一時記憶部に格納されたノードについて、該当するノードaを削除し、その結果を一時記憶部に格納する。
S604:一時記憶部に格納された隣接ノード数が0の場合(隣接ノードを有しない場合)、ノイズノード削除手段35は、一時記憶部に格納されたノードについて、該当するノードaを削除し、その結果を一時記憶部に格納する。
S518:学習終了判定手段36は、情報処理装置1による学習処理を終了するか否かを判定する。例えば、学習終了判定手段36は、一時記憶部に格納された与えられた入力ベクトルεの総数について、与えられた入力ベクトルεの総数が予め設定され一時記憶部に格納された所定の数LTの倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力ベクトルの総数がLTの倍数でない場合にはS502へと戻り、次の入力ベクトルεを処理する。一方、入力ベクトルεの総数がLTの倍数となった場合には以下の処理を実行する。なお、学習終了判定の方法はこれに限定されず、ユーザーによって学習終了の指示が与えられるものとしてもよい。
S519:クラス決定手段37は、一時記憶部に格納されたノード、ノード間の辺、ノードのクラスについて、ノード間に生成された辺に基づいて、各ノードが属するクラスを決定し、その結果を一時記憶部に格納する。そして、出力情報表示手段38は、一時記憶部に格納されたノード及びノードのクラスについて、ノードの属するクラスのクラス数、及び各クラスのプロトタイプベクトルを出力する。以上の処理を終了した後、学習を停止する。
クラス決定手段37は、一時記憶部に格納されたノード、ノード間の辺、ノードのクラスについて、例えば以下のS701〜S704に示す処理を実行して各ノードが属するクラスを決定し、その結果を一時記憶部に格納する。
S701:一時記憶部に格納されたノード及びノードのクラスについて、すべてのノードをどのクラスにも属していない状態にし、その結果を一時記憶部に格納する。
S702:一時記憶部に格納されたノード及びノードのクラスについて、いずれのクラスにも属していないノードからノードiをランダムに選択して新しいクラスラベルを付与し、その結果を一時記憶部に格納する。
S703:一時記憶部に格納されたノード、ノード間の辺、ノードのクラスについて、ノードiと「パス」によって接続しているノードをすべて探索し、当該探索したノードにノードiと同じクラスラベルを付与し、その結果を一時記憶部に格納する。
S704:一時記憶部に格納されたノード及びノードのクラスについて、いずれのクラスにも属していないノードが存在する場合にはS702へと進み、全てのノードに対してクラスラベルを付与し終えるまでの間、処理を続ける。
S703において、任意の2つのノードa及びノードbとが「パス」によって接続されるとは、ノードa及びノードb間において、いくつかの辺を通して2つのノードが接続されることを示す。即ち、ノード集合Aに含まれるノードa、ノードb、ノードxi(i=1,2,・・・,n)に対して、ノードa及びノードx1間の辺を示す(a,x1)、ノードx1及びノードx2間の辺を示す(x1,x2)、・・・、ノードxn及びノードb間の辺を示す(xn,b)という辺の連続が存在する場合に、ノードa及びノードb間とがパスによって接続されると呼ぶ。
<実験結果>
続いて、本実施の形態に係る情報処理装置1の有効性を確認するため、3つの人工データセット及び3つの実世界データセットを用いて実験を行う。情報処理装置1(LBSOINN)をE-SOINNと比較するために、いくつかの実験では同一のデータセットを選択した。また、同一の人工データセットI(図1)を情報処理装置1(LBSOINN)及びE-SOINNに適用してノードの学習時間を比較し、さらに、カーネル密度推定(KDE:kernel density estimation)を使用して、ノード間の接続構造に関するノードの密度を推定する。
図7は、E-SOINN及び情報処理装置1(LBSOINN)におけるノードの学習時間を示す。図において、縦軸はノードの学習時間を示し、横軸はノードの個数を示す。E-SOINNによるノードの個数は、ネットワークのいくつかの領域において十分ではなく、それらの領域におけるノードの学習時間は長くかつ偏っている。一方で、E-SOINNとは異なり、情報処理装置1(LBSOINN)におけるノードの学習時間の分布は平衡していることが分かる。
図8は人工データセットIのノードの密度分布を示す。図9は、E-SOINNにおけるノードの密度の推定結果を示し、図10は、情報処理装置1(LBSOINN)におけるノードの密度の推定結果を示す。図8、9、10において、x軸及びy軸はノードが配置される2次元空間を示し、z軸はノード密度を示す。明らかに、E-SOINNは、入力パターンに対する良好な精度を得ていないことが分かる。しかし、E-SOINNでは、ノード密度を使用してクラス間の重複領域を探索するために、入力パターンの接続構造を正確に表現することはとても重要である。これに対して、図10に示したように、情報処理装置1(LBSOINN)では、入力パターンの接続構造を正確に記述することができるため、E-SOINNに比べてより優れた安定性能を有する。
図11に、人工データセットIIを示す。人工データセットIIでは、ノードの密度に関して高密度の重複領域を有する3つのガウス分布を含む。人工データセットIIを使用して、定常環境におけるE-SOINN及び情報処理装置1(LBSOINN)の安定性についての実験を行う。実験では、データセットから入力パターンをランダムに選択して、入力パターンに対して10%のノイズを追加する。パラメータの設定に関して、E-SOINNでは、λ=200、agemax=50、c1=0.001、c2=1.0に設定する。情報処理装置1(LBSOINN)では、λ、agemax、c1、c2についてはE-SOINNと同じ値を設定し、γ=1.3、η=1.001、θ=1.3に設定する。
図12(A)〜(J)は、定常環境において時系列にネットワークを学習したときの、人工データセットIIに対する学習結果を示す。図12(A)〜(E)は、100000回、200000回、300000回、400000回、500000回の繰り返しにおけるE-SOINNの学習結果をそれぞれ示す。図12(F)〜(J)は、100000回、200000回、300000回、400000回、500000回の繰り返しにおける情報処理装置1(LBSOINN)の学習結果をそれぞれ示す。明らかに、E-SOINNは、異なるクラスが常に一緒に接続されてしまうために、ノードの接続構造が乱れておりかつ不安定である。
情報処理装置1(LBSOINN)は、上述したサブクラスタ決定手法を使用して、ネットワークに存在する過度に局所的に最大となるノードの発生を回避する。これによって、情報処理装置1(LBSOINN)は、混合クラスをサブクラスタに分割してしまうことによるノードの接続構造の乱れを回避する。人工データセットIIに対する実験は、E-SOINNと比較して情報処理装置1(LBSOINN)がより優れた安定性を有し、かつ、ノード密度が高密度の重複領域を正確に分離できることを示している。後述するように、AT&T画像データセットを使用して、非定常的な学習環境下において、実世界のデータセットによってまた、E-SOINNと比較して情報処理装置1(LBSOINN)がより優れた安定性を有することを確認する。
図13に、E-SOINNの評価において使用された、他の人工データセットを示す。この人工データセットは、2つのガウス分布、2つのリング形状分布、正弦関数分布を含んでいる。入力分布は、入力サンプル数の合計の10%に達するランダムノイズを含んでいる。パラメータの設定に関して、情報処理装置1(LBSOINN)は、λ=100、agemax=100、c1=0.001、c2=1.0、γ=1.3、η=1.001、θ=1.3に設定する。図14及び図15は、定常環境下及び非定常環境下での情報処理装置1(LBSOINN)によるクラスタリング結果をそれぞれ描写する。図14及び図15の類似性から、情報処理装置1(LBSOINN)は入力データの入力順序に依存していないこと、即ち、E-SOINNと比較してよりも優れた安定性を有することを示している。
実世界での実験の一つとして、情報処理装置1(LBSOINN)をE-SOINNと比較するために、E-SOINNにおいて使用されたデータセットと同一のAT&T画像データセットを選択する。この画像データセットは、40の異なるクラスと、クラスごとの10の異なる画像を含んでいる。これらのクラスは異なる年齢及び人種に関するものである。いくつかのクラスに対して、異なるタイミングで画像が取得されている。顔の表現(開いた/閉じた目、微笑む/微笑んでいない)及び顔の詳細(メガネあり/メガネなし)にはバリエーションがある。全ての画像は、クラスを有する黒色の均一な背景の下で、直立して正面の位置(ある程度の側面の動きに対する耐性を有する。)から撮られている。このデータセットから10クラスを選択し(図16)、最近傍補間法(nearest-neighbor interpolation)を使用して、データセットにおける画像を92×112から23×28へとサンプリングし直す。そして、ガウス法(Gaussian method)を使用することによって、Width=4、σ=2であるガウシアンを用いて画像を平滑化して、特徴ベクトルを得る(図17)。
定常及び非定常環境下におけるE-SOINN及び情報処理装置1(LBSOINN)の性能を実験する。LBSOINNのパラメータは、λ=25、agemax=25、c1=0.0、c2=1.0、γ=1.3、η=1.001、θ=1.3に設定する。学習を経て、ネットワークからのプロトタイプベクトルを得ることができる。これらのプロトタイプベクトルを使用して、元々の顔画像及び算出される認識率を分類する。情報処理装置1(LBSOINN)は、定常環境下では、96.3%の認識率であり、非定常環境下では、96.5%の認識率である。E-SOINNは、定常環境下では、90.3%の認識率であり、非定常環境下では、96%の認識率である。即ち、E-SOINNと比較して、情報処理装置1(LBSOINN)は、E-SOINNよりも十分に高い認識率を有している。定常環境及び非定常環境における共通性はまた、情報処理装置1(LBSOINN)が入力データの入力順序に依存せず、E-SOINNと比較してより優れた安定性を有することを示している。
E-SOINN及び情報処理装置1(LBSOINN)の安定性を比較するため、E-SOINNと同一の処理を情報処理装置1(LBSOINN)によって実行する。即ち、(1)E-SOINN及び情報処理装置1(LBSOINN)の両方に対して1000回の学習を実行し、(2)クラスの個数の頻度を記録する。なお、クラスの個数の頻度とは、例えば、1000回の実験を行い、情報処理装置1(LBSOINN)の学習結果としてクラスの個数を10とした出力回数が600回である、又は、クラスの個数を9とした出力回数が90回であるときに、この600回や90回の数値を示す。
図18(A)、(B)は、E-SOINNおよび情報処理装置1(LBSOINN)によるクラスの個数の分布をそれぞれ示す。図において、縦軸はクラスの個数の頻度を示し、横軸はクラスの個数を示す。情報処理装置1(LBSOINN)に対するクラスの個数の分布はE-SOINNのものと比べて十分に大きい。そして、クラスの個数が10個となる辺りにおいて、情報処理装置1(LBSOINN)の分布はE-SOINNのものと比べて十分に大きい。さらに、定常環境下における情報処理装置1(LBSOINN)に対するクラスの個数の分布は、非定常環境下におけるクラスの分布にとても類似している。上述した全ての実験結果は、E-SOINNと比較して情報処理装置1(LBSOINN)がより優れた安定性を有することを示している。
次に、2つのテキストデータセット(WebKbデータセット及びR8データセット)を選択して、高次元空間におけるE-SOINN及び情報処理装置1(LBSOINN)の性能を実験する。WebKbは、1997年1月における様々な大学のコンピュータサイエンス部門から、CMUテキスト学習グループのワールドワイド知識ベースプロジェクトによって収集されたWWWページを含んでいる。その8282ページは、生徒、学部、スタッフ、部門、コース、プロジェクトやその他のカテゴリに、人手によって分類されている。本実験では、生徒、学部及びコースのカテゴリのみを選択する。R8データセットは、1つのトピック及びそのクラス(少なくとも1つの学習及び1つの実験例を有する。)を備えた文書を単に考慮する。WebKb及びR8の両方ともに、フィルタリング処理(非特許文献: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.を参照。)を事前に行う。
図19は、異なる各クラスに対して異なるパーセントを入力したときの精度を示す。パラメータの設定に関して、情報処理装置1(LBSOINN)は、λ=25、agemax=25、c1=0.0、c2=1.0、γ=1.3、η=1.001、θ=1.3に設定する。また、比較のために、線形関数を使用したサポートベクトルマシーン(SVM)の性能についても示す。
WebKbデータセットに対して、情報処理装置1(LBSOINN)及びSVMの精度は、それぞれ81.21%及び84.21%に達する。そして、R8データセットに対しては、情報処理装置1(LBSOINN)及びSVMの精度は、89.71%及び93.34%に達する。情報処理装置1(LBSOINN)の精度は、SVMの精度ほどは良くない。しかしながら、情報処理装置1(LBSOINN)は、オンライン教師なし学習のアプローチに属する。また違いとして、情報処理装置1(LBSOINN)は、限られたデータセットを用いて満足できる精度を得ることができる。この特徴は、情報処理装置1(LBSOINN)を、実世界におけるタスクにより適したものにする。E-SOINNは高次元タスクを扱うことができないために、E-SOINNの性能はとても悪い。この実験は、高次元空間において情報処理装置1(LBSOINN)が十分に実行可能であることを示している。
以上に、本実施の形態に係る情報処理装置1の構成及び動作、さらに、情報処理装置1に対して実験を行い、その効果を説明した。クラスタリングは最も重要なデータ分析手法の一つである。本実施の形態では、オンラインでの教師なし学習に属する負荷平衡型自己増殖型ニューラルネットワーク(LBSOINN)を提案し、これは、高密度の重複クラスを分離することができる。情報処理装置1(LBSOINN)は、E-SOINNと比較して優れた安定性能を有しており、かつ、E-SOINNが有する全ての利点をも備えている。人口データセット及び実データセットにおける実験により、情報処理装置1(LBSOINN)は、ラベル付けされていないノイズ付き知識をクラスタリングする場合に正確な学習結果を得ることができ、また、高次元空間においても効率的に実行可能なことを確認した。このことは、実世界でのオンライン学習タスクに適していることを示している。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述した実施の形態では、ノードの負荷平衡化処理において、各サブクラスタにおいて最大のノードの学習時間を有するノードのみを探索する場合を例に説明したが、本発明はこれに限定されず、各サブクラスタにおいて相対的に大きなノードの学習時間を有する複数のノードを探索し、当該探索した複数のノードに関して、以降の負荷平衡化処理を実行するものとしてもよい。
また、例えば、上述した実施の形態では、ノードの負荷平衡化処理において、最大のノードの学習時間を有するノードを探索し、当該探索したノードの隣接ノードのうちで最大の学習時間を有する隣接ノードを決定する場合を例に説明したが、本発明はこれに限定されず、他の隣接ノード(例えば、当該探索したノードの隣接ノードのうちで2番目に大きな学習時間を有する隣接ノード)を決定し、当該決定した隣接ノードに関して、以降の負荷平衡化処理を実行するものとしてもよい。
また、例えば、上述した実施の形態では、距離尺度に関して、ユークリッド距離にコサイン距離を組合せる場合を例に説明したが、本発明はこれに限定されず、他の距離尺度(例えば、コサイン距離、マンハッタン距離、フラクショナル距離)を組合せるものとしてもよい。さらに、高次元空間における有効な距離尺度に限定されず、学習しようとする問題に応じた他の距離尺度を組合せるものとしてもよい。