(57)【要約】【課題】「ａとｂを異なるクラスタに属するように判定する」、あるいは「ａとｃを同じクラスタに属するように判定する」、と言った簡易な分類要求に従ったクラスタリング方法および装置を提供する。【解決手段】二つのベクトルの距離を求める際に、各ベクトルの構成要素、すなわち各軸における値に、軸ごとに決められた補正値を乗算した値を用いて計算するようにする。  また、ある二つのベクトルを同じクラスタに属すると判定すべき、という簡易な分類要求があった場合、ある軸の前述の補正値を小さくするようにする。また、ある二つのベクトルを異なるクラスタに属すると判定すべき、という簡易な分類要求があった場合、ある軸の前述の補正値を大きくするようにする。  これにより、簡易な分類要求に従ったクラスタリングが可能となる。【選択図】図１
2007219928.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力ベクトルに対して、前記入力ベクトル間の距離が所定の値よりも小さい前記入力ベクトルを同一のクラスタに分類するクラスタリング方法において、
前記入力ベクトルの各成分に分類のための補正値を乗じて、前記入力ベクトル間の距離を算出すること、
を特徴とするクラスタリング方法。
【請求項２】
請求項１記載のクラスタリング方法において、
同じクラスタに属させたい２つの入力ベクトル、又は、異なるクラスタに属させたい２つの入力ベクトルに対して、前記２つの入力ベクトルを基に前記入力ベクトルの各成分のいずれかに乗じる分類のための補正値を修正する、
ことを特徴とするクラスタリング方法。
【請求項３】
請求項２記載のクラスタリング方法において、
同じクラスタに属させたい２つの入力ベクトル、又は、異なるクラスタに属させたい２つの入力ベクトルに対して、前記２つの入力ベクトルの各成分の中で成分間の距離が最大の成分に対して、前記入力ベクトルの各成分に乗じる分類のための補正値を修正する、
ことを特徴とするクラスタリング方法。
【請求項４】
請求項１記載のクラスタリング方法において、
前記クラスタをプロトタイプベクトルとして表し、
前記入力ベクトル及び前記プロトタイプベクトルの各成分に分類のための補正値を乗じて、前記プロトタイプベクトル間の距離、又は、前記プロトタイプベクトルと前記入力ベクトルとの間の距離を算出する、
ことを特徴とするクラスタリング方法。
【請求項５】
複数の入力ベクトルに対して、前記入力ベクトル間の距離が所定の値よりも小さい前記入力ベクトルを同一のクラスタに分類するクラスタリング装置において、
前記入力ベクトルの各成分に分類のための補正値を乗じて、前記入力ベクトル間の距離を算出する第一の算出手段を有することを特徴とするクラスタリング装置。
【請求項６】
請求項５記載のクラスタリング装置において、
同じクラスタに属させたい２つの入力ベクトル、又は、異なるクラスタに属させたい２つの入力ベクトルに対して、前記２つの入力ベクトルを基に前記入力ベクトルの各成分のいずれかに乗じる分類のための補正値を修正する第一の補正値修正手段を有することを特徴とするクラスタリング装置。
【請求項７】
請求項５記載のクラスタリング装置において、
同じクラスタに属させたい２つの入力ベクトル、又は、異なるクラスタに属させたい２つの入力ベクトルに対して、前記２つの入力ベクトルの各成分の中で成分間の距離が最大の成分に対して、前記入力ベクトルの各成分に乗じる分類のための補正値を修正する第二の補正値修正手段を有することを特徴とするクラスタリング装置。
【請求項８】
請求項５記載のクラスタリング装置において、
前記クラスタをプロトタイプベクトルとして表し、前記入力ベクトル及び前記プロトタイプベクトルの各成分に分類のための補正値を乗じて、前記プロトタイプベクトル間の距離、又は、前記プロトタイプベクトルと前記入力ベクトルとの間の距離を算出する第二の算出手段を有することを特徴とするクラスタリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の入力ベクトルに対して、類似したベクトル同士を同一クラスタに分類する判別機を得るクラスタリング方法であり、あらかじめどのようなクラスタが存在するか、あるいはどのベクトルがどのクラスタに属するか、といった教師信号が無く、ベクトルの入力に従ってクラスタリングを実行しながら判定の方法を逐次変更していく、教師なしオンラインクラスタリング方法であって、簡易な分類要求に対して適応するクラスタリング方法および装置に関する。
【背景技術】
【０００２】
従来の技術として、教師なしオンラインクラスタリングアルゴリズムとしては、ＡＲＴ（ＡＤＡＰＴＩＶＥ  ＲＥＳＯＮＡＮＣＥ  ＴＨＥＯＲＹ）に基づくアルゴリズムがあった（ＡＲＴについては、例えば非特許文献１の５６５−５６８頁を参照）。以下に本発明の説明に必要な範囲でＡＲＴの概要を述べる。
【０００３】
まず二つのベクトルｘとｙの距離をｄ（ｘ，ｙ）で表す。ｄ（ｘ，ｙ）の定義としては、ベクトル間のユークリッド距離や内角差、内角差にベクトル長の比を掛けた値（標準ベクトル距離）などが用いられる。ここではユークリッド距離を用いる方法に関して述べる。また、各クラスタはプロトタイプベクトルと呼ばれる代表ベクトルを持つ。ＡＲＴでは各入力ベクトルｘに対して順番に以下を行う判別機を維持更新する。
【０００４】
もしクラスタがまだ一つも生成されていないか、全てのクラスタのプロトタイプベクトルｒについて、ｄ（ｘ，ｒ）がある閾値を超えた場合、新規のクラスタを生成してそのプロトタイプベクトルをｘとするとともに、ｘが属するクラスタとして該新規生成クラスタの番号を提示する。この時用いた閾値をクラスタ半径と呼ぶ。
【０００５】
ここで、ＡＲＴの用語では「クラスタ半径」のことを警戒パラメタと呼ぶが、分かりやすい説明のためにクラスタ半径として表現を変えている。また、一般には警戒パラメタを下回った場合に新規クラスタを生成する、という方法の方が有名だが、やはり分かりやすい説明のためにｄ（ｘ，ｒ）がクラスタ半径を超えた場合に新規クラスタを生成することとして説明する。
【０００６】
もしｄ（ｘ，ｒ）があるクラスタ半径以下となるようなプロトタイプベクトルｒを持つクラスタが存在する場合、ｘはその中で最もｄ（ｘ，ｒ）の小さいクラスタに属するものと判定し、ｘが属するクラスタとして該クラスタの番号を提示するとともに、該クラスタのプロトタイプベクトルをｘに少し近づける。ここでプロトタイプベクトルｒをｘに少し近づけるとは、ある学習率η（Ｏ≦η≦１）があって、新しいｒをｒＮＥＷ＝ｒ＋ηｘとすることである。
【０００７】
このように、ＡＲＴはクラスタ半径を決めることで実行可能であるが、入力列とクラスタ半径と学習率が決まるとクラスタリング結果が決まってしまうため、実行を開始したＡＲＴによるクラスタリング結果が有効なものでない場合に、クラスタリング結果を修正することができない。
【０００８】
そこでＡＲＴを階層的に用いることで様々なレベルのクラスタリングを同時に行い、適当なクラスタリング結果を利用する方法が提案されてきた。例えば非特許文献２で提案されているａｒｂｏＡＲＴでは、まず一番下位の層で通常の入力ベクトルに対してクラスタ半径をある程度小さな値に設定してＡＲＴを実行し、その結果生成されたクラスタのプロトタイプベクトルを次の層の入力とし、クラスタ半径を少し大きくしてＡＲＴを実行し、これを繰り返す。
【０００９】
ここで、原文では「クラスタ半径」を大きな値に設定し、以下のステップで徐々に小さくしているが、前述の通りここでは説明の理解を助けるために逆の表現で説明する。また、原文では二つのベクトルの距離をベクトル間の内角で説明しているが、ここでは理解の簡単のためユークリッド距離で説明する。いずれもＡＲＴの本質としては同じことである。
【００１０】
図９にａｒｂｏＡＲＴによるクラスタリングの例を示す。今、第Ｎ層でクラスタ半径をαとし、図中の丸で示した１〜８の入力ベクトルに対してＡＲＴを実行した結果が図９の最下段に示すようになったとする。つまり、１〜３、４と５、６と７、及び８が同一クラスタに属すると判定されたこととする。
【００１１】
次に第Ｎ＋１層では、第Ｎ層で生成された各クラスタのプロトタイプベクトルを入力とし、クラスタ半径をα＋βとしてＡＲＴを実行する。ここでβはあらかじめ決められた定数である。その結果が図９の中段に示すように、１〜５、及び６〜８が同一クラスタに属すると判定されたこととする。
【００１２】
最後に第Ｎ＋２層では、第Ｎ＋１層で生成された各クラスタのプロトタイプベクトルを入力とし、クラスタ半径を（α＋β）＋β＝α＋２βとしてＡＲＴを実行する。その結果が図９の上段に示すように、全ての入力が同一クラスタと判定されたものとする。
【００１３】
この結果をデンドログラムと呼ばれる木構造にまとめると図１０のようになる。すなわち、左側に入力を縦に並べ、各層で同一クラスタに属すると判定された入力同士を線で結んでいくことで、各層でのクラスタリング結果を概観することができる。このようなデンドログラムを見ることで、最適なクラスタリングの階層を確認し、簡易な分類要求を満たすクラスクリングに対応したクラスタ半径を決定することが可能となり、有効なクラスタリングを実行する判別機を得ることができる。
【００１４】
前述の従来技術では、元々のＡＲＴでクラスタ半径が決まるとクラスタリング結果が決まってしまいユーザにとって好ましいクラスタリングが得られないかもしれないという問題点を解決している。
【００１５】
しかしながら、クラスタ半径の増減だけでユーザにとって好ましいクラスタリングが必ずしも得られるとは限らない。特に各ベクトルの軸ごとに値の振れ幅の大きさがばらばらであるような場合、その幅が大きい軸にクラスタリング結果が強く影響される可能性があり、その場合振れ幅の小さい軸に強く依存したクラスタリングが実行できない可能性がある。
【００１６】
例えば図１１の上段のような８つの３次元ベクトルのクラスタリングを考える。なお、図１１の一番上のアルファベットは各ベクトルのＩＤを表している。今、これらベクトルにおいて、「ａとｂを異なるクラスタに分類する」、または「ａとｃを同じクラスタに分類する」、という簡易な分類要求を考える。ここでａとｂのベクトルのユークリッド距離は約０．３３２、ａとｃは約３．９０である。従ってａとｂのベクトルを異なるクラスタとするため、クラスタ半径を０．３３２より小さくしてしまうと、ａとｃのベクトルを同じクラスタと判定することができなくなる。
【００１７】
実際、図１１の下段に学習率を０．１、クラスタ半径を０．３３及び３．９１とした場合に各ベクトルが属すると判定されるクラスタ番号を載せている。このようにａとｂを異なるクラスタに、あるいはａとｃを同じクラスタに、それぞれ個別に判定することは可能である。
【００１８】
しかし例えばクラスタ半径を０．３３より大きくするとａとｂは同じクラスタに属すると判断され、クラスタ半径を３．９１より小さくするとａとｃは異なるクラスタに属すると判断されるため、両者の分類要求を同時に満たすクラスタリングは実行できない。
【非特許文献１】Ｒｉｃｈａｒｄ  Ｏ．Ｄｕｄａ、Ｐｅｔｅｒ  Ｅ．Ｈａｒｔ、Ｄａｖｉｄ  Ｇ．  Ｓｔｏｒｋ、監訳：尾上守夫．パターン認識．新技術コミュニケーションズ、２００１．
【非特許文献２】石原茂和、石原恵子、長町三生．感性工学データ解析のための自己組織化ニューラルネットワークを用いた階層的クラスタリング手法の開発．信学論、Ｖｏｌ．Ｊ８２−Ａ、Ｎｏ．１、ｐｐ．１７９−１８９、１９９９．
【発明の開示】
【発明が解決しようとする課題】
【００１９】
本発明は、このような事情に鑑みてなされたもので、その目的は、「ａとｂを異なるクラスタに属するように判定する」、あるいは「ａとｃを同じクラスタに属するように判定する」、と言った簡易な分類要求に従ったクラスタリング方法および装置を提供することにある。
【課題を解決するための手段】
【００２０】
この発明は上述した課題を解決するためになされたもので、請求項１に記載の発明は、複数の入力ベクトルに対して、前記入力ベクトル間の距離が所定の値よりも小さい前記入力ベクトルを同一のクラスタに分類するクラスタリング方法において、前記入力ベクトルの各成分に分類のための補正値を乗じて、前記入力ベクトル間の距離を算出すること、を特徴とする。
【００２１】
請求項２に記載の発明は、請求項１記載のクラスタリング方法において、同じクラスタに属させたい２つの入力ベクトル、又は、異なるクラスタに属させたい２つの入力ベクトルに対して、前記２つの入力ベクトルを基に前記入力ベクトルの各成分のいずれかに乗じる分類のための補正値を修正する、ことを特徴とする。
【００２２】
請求項３に記載の発明は、請求項２記載のクラスタリング方法において、同じクラスタに属させたい２つの入力ベクトル、又は、異なるクラスタに属させたい２つの入力ベクトルに対して、前記２つの入力ベクトルの各成分の中で成分間の距離が最大の成分に対して、前記入力ベクトルの各成分に乗じる分類のための補正値を修正する、ことを特徴とする。
【００２３】
請求項４に記載の発明は、請求項１記載のクラスタリング方法において、前記クラスタをプロトタイプベクトルとして表し、前記入力ベクトル及び前記プロトタイプベクトルの各成分に分類のための補正値を乗じて、前記プロトタイプベクトル間の距離、又は、前記プロトタイプベクトルと前記入力ベクトルとの間の距離を算出する、ことを特徴とする。
【００２４】
請求項５に記載の発明は、複数の入力ベクトルに対して、前記入力ベクトル間の距離が所定の値よりも小さい前記入力ベクトルを同一のクラスタに分類するクラスタリング装置において、前記入力ベクトルの各成分に分類のための補正値を乗じて、前記入力ベクトル間の距離を算出する第一の算出手段を有することを特徴とする。
【００２５】
請求項６に記載の発明は、請求項５記載のクラスタリング装置において、同じクラスタに属させたい２つの入力ベクトル、又は、異なるクラスタに属させたい２つの入力ベクトルに対して、前記２つの入力ベクトルを基に前記入力ベクトルの各成分のいずれかに乗じる分類のための補正値を修正する第一の補正値修正手段を有することを特徴とする。
【００２６】
請求項７に記載の発明は、請求項５記載のクラスタリング装置において、同じクラスタに属させたい２つの入力ベクトル、又は、異なるクラスタに属させたい２つの入力ベクトルに対して、前記２つの入力ベクトルの各成分の中で成分間の距離が最大の成分に対して、前記入力ベクトルの各成分に乗じる分類のための補正値を修正する第二の補正値修正手段を有することを特徴とする。
【００２７】
請求項８に記載の発明は、請求項５記載のクラスタリング装置において、前記クラスタをプロトタイプベクトルとして表し、前記入力ベクトル及び前記プロトタイプベクトルの各成分に分類のための補正値を乗じて、前記プロトタイプベクトル間の距離、又は、前記プロトタイプベクトルと前記入力ベクトルとの間の距離を算出する第二の算出手段を有することを特徴とする。
【発明の効果】
【００２８】
この発明によれば、二つのベクトルの距離を計算する際に、ある軸の補正値を任意に大きくすることで、それらのベクトルのユークリッド（ＥＵＣＬＩＤ）距離を任意の値に大きくするという動作をする。このようにすることで、前述の補正値を該二つのベクトルのユークリッド距離がクラスタ半径を超えるまで大きくすることができ、ある二つのベクトルを異なるクラスタに属するように判定するという簡易な分類要求に応えることができる、という効果を奏する。
【００２９】
また、本発明によれば、二つのベクトルの距離を計算する際に、ある軸の補正値を任意に小さくし、これをいくつかの軸に対して何度も繰り返すことで、それらのベクトルのユークリッド距離を０以上の任意の値に小さくするという動作をする。このようにすることで、前述の補正値を該二つのベクトル間のユークリッド距離がクラスタ半径以下になるまで小さくすることができ、ある二つのベクトルを同じクラスタに属するように判定するという簡易な分類要求に応えることができる、という効果を生じる。
【００３０】
また、本発明によれば、更に、上記の二つの場合に選択される軸は異なりうるため、ある二つのベクトルを異なるクラスタに属するように判定するという簡易な分類要求と、別の二つのベクトルを同じクラスタに属するように判定するという簡易な分類要求とを同時に満たす補正値を計算することも可能である（場合がある）、という効果を奏する。
【発明を実施するための最良の形態】
【００３１】
まず、本発明の具体的なシステム構成に関する実施方法を述べた後で、本発明の実行方法を示し、該実行方法を用いて前述の例をクラスタリングした一例としての結果を示す。
【００３２】
本発明においては、ＡＲＴで二つのベクトルの距離を計算する際に、各ベクトルの要素に各軸ごとに異なりうる補正値を掛けた上で計算を行う。このような軸ごとの補正値を対角成分として持つ対角行列を変形行列と呼び、補正値を掛けた上で計算したベクトルの距離を、変形行列に基づく距離と呼ぶ。変形行列の初期化手順としては、例えば全ての対角要素を１にする、あるいは入力ベクトルの次元をｄとした時、全ての対角要素を１／√ｄとすれば良い。
【００３３】
以下、図面を参照して、本発明の実施の形態について説明する。本発明の第一の実施の形態の一例としては、図１に示すとおり、ＡＲＴを実行するＡＲＴ実行プロセス１、および、入力ベクトルファイル２と、簡易な分類要求ファイル３と、クラスタ番号／プロトタイプベクトル対応表ファイル４と、パラメタ管理表ファイル５とクラスタ番号ファイル６との５つのファイルから構成される。入力ベクトルファイル２と簡易な分類要求ファイル３は他のプロセスや他のＰＣ上のプログラムが適宜更新して、新規のベクトルや要求を追記する。なお、パラメタ管理表ファイル５の内容については、以降で逐次説明する。
【００３４】
ＡＲＴ実行プロセス１は入力ベクトルファイル２から入力ベクトルを読み出し、ＡＲＴを実行する。すなわち、クラスタ番号／プロトタイプベクトル対応表ファイル４、及びパラメタ管理表ファイル５の変形行列とクラスタ半径と学習率を読んで、該変形行列に基づく既存のクラスタの各プロトタイプベクトルと該入力ベクトルとの距離の中で、該クラスタ半径以下の距離があれば、該入力ベクトルにはその中で距離が最も小さいプロトタイプベクトルに対応するクラスタ番号をクラスタ番号ファイル６に追記し、該プロトタイプベクトルを学習率だけ該入力ベクトルに近づけた値を新しいプロトタイプベクトルとして、クラスタ番号／プロトタイプベクトル対応表ファイル４に上書きする。
【００３５】
次に、ＡＲＴを実行している途中で、簡易な分類要求があったとする。このような要求の受け付けは、ＡＲＴの実行プロセスに割り込みをかけたり、ＡＲＴの実行プロセスが定期的に簡易な分類要求ファイル３を監視して、そこに要求が追記されているかどうかをチェックすることで実現できる。
【００３６】
次に、分離手順のフローチャートを図２に示す。もし簡易な分類要求の内容が、「ある二つのベクトルを異なるクラスタに属するように判定する」という内容の場合（ステップＳ２１）、まず変形行列に該二つのベクトルを掛けた結果生成されるベクトルの差ベクトルを計算し（ステップＳ２２）、該差ベクトルにおいて、絶対値が最も大きい要素を第ｉ番目の要素とする（ステップＳ２３）。次に該二つのベクトルの現在の変形行列に基づく距離が、クラスタ半径に「ある１より大きい数値であるδ」を乗じた値より大きくなるまで、以下で述べるように変形行列の変形を続け（ステップＳ２４、Ｓ２５）、該求めた変形行列をパラメタ管理表ファイル５の変形行列に上書きする（ステップＳ２６）。
【００３７】
変形行列の変形手順は、前述の絶対値が最も大きい要素を第ｉ番目の要素とした時、変形行列のｉ行ｉ列の要素をＮ倍して新しい変形行列とする（ステップＳ２５）、という手順である。ただしＮは１より大きい定数である。
【００３８】
なおステップＳ２３の別の手順としては、絶対値が最も大きい要素を第ｉ番目の要素とする代わりに、絶対値が最も小さい要素を第ｉ番目の要素とする、あるいはランダムに第ｉ番目の要素を選んで、変形行列のｉ行ｉ列の要素をＮ倍して新しい変形行列とする、という手順も有効である。ただし絶対値が最も大きい要素を第ｉ番目の要素として選ぶ場合は、変形行列の変形手順を高速に収束させることができる。
【００３９】
また、ステップＳ２５の別の手順としては、変形行列のｉ行ｉ列の要素をＮ倍する代わりに、変形行列Ｔのｉ行ｉ列の要素をｘ倍した新しい変形行列をＴ（ｉ，ｘ）とした時、[式１]を満たすｘを計算して、ｘ倍することとしても良い。ここであるベクトル[式２]に対して[式３]である。この場合は手順の中で要素を何度もＮ倍する必要がなく、手順の高速化が期待できる。
【００４０】
【数１】
2007219928.tif 000003
【００４１】
次に、統合手順のフローチャートを図３に示す。もし簡易な分類要求の内容が、「ある二つのベクトルを同じクラスタに属するように判定する」という内容の場合（ステップＳ３１）、まず該二つのベクトルの現在の変形行列に基づく距離が、クラスタ半径にある「１より小さい数値であるε」を乗じた値より小さくなるまで、以下で述べるように変形行列の変形を続け（ステップＳ３２、３３、３４、３５）、該求めた変形行列をパラメタ管理表ファイル５の変形行列に上書きする（ステップＳ３６）。
【００４２】
変形行列の変形手順は、まず現在の変形行列に該二つのベクトルを掛けた結果生成されるベクトルの差ベクトルを計算し（ステップＳ３３）、該差ベクトルにおいて、絶対値が最も大きい要素を第ｉ番目の要素とする（ステップＳ３４）。次に変形行列のｉ行ｉ列の要素を１／Ｍ倍して新しい変形行列とする（ステップＳ３５）。ただしＭは１より大きい定数である。
【００４３】
なおステップＳ３４の別の手順としては、絶対値が最も大きい要素を第ｉ番目の要素とする代わりに、ランダムに第ｉ番目の要素を選んでも良い。ただし絶対値が最も大きい要素を第ｉ番目の要素として選ぶ場合は、変形行列の変形手順を高速に収束させることができる。
【００４４】
また、ステップＳ３５の別の手順としては、変形行列のｉ行ｉ列の要素を１／Ｍ倍する代わりに、変形行列Ｔのｉ行ｉ列の要素をｘ倍した新しい変形行列をＴ（ｉ，ｘ）とした時、[式４]を満たすｘを計算して、ｘ倍することとしても良い。この場合は手順の中で要素を何度も１／Ｍ倍する必要がなく、手順の高速化が期待できる。
【００４５】
【数２】
2007219928.tif 000004
【００４６】
以下本発明の第一の実行の形態に基づき、前述の図１１の上段に示したような入力ベクトルに対し、ａとｂを異なるクラスタに、あるいはａとｃを同じクラスタに、それぞれ属するように判定する、本発明によるクラスタリング方法について述べる。ここで、ＡＲＴの学習率は０．１、クラスタ半径は０．３、上述のＮ＝Ｍ＝２、δ＝１．１、ε＝０．９としている。また、以降、小数点４桁を四捨五入して表現するが、初期状態における変形行列は全ての対角要素が０．５７７３である対角行列とする。
【００４７】
もしａとｂを異なるクラスタに属するように判定するような簡易な分類要求があった場合、本発明のアルゴリズムを実行すると、変形行列は３回の更新を経て[式５]となる。
すなわち、１番目の軸を３回２倍している。この変形行列を使って前述の入力ベクトルをクラスタリングした結果は図４の下段の左から１列目のようになり、ａとｂのベクトルがそれぞれ異なる０番と１番のクラスタに属している。
【００４８】
【数３】
2007219928.tif 000005
【００４９】
もしａとｃを同じクラスタに属するように判定するような簡易な分類要求があった場合、本発明のアルゴリズムを実行すると、変形行列は４回の更新を経て[式６]となる。すなわち、３番目の軸を４回１／２倍している。この変形行列を使って前述の入力ベクトルをクラスタリングした結果は図４の下段の左から２列目のようになり、ａとｃのベクトルが同じ０番のクラスタに属している。
【００５０】
次に、もしａとｂを異なるクラスタに、ａとｃを同じクラスタに属するように同時に判定するような簡易な分類要求があった場合、本発明のアルゴリズムを実行すると、まず変形行列の３回の更新を経て[式７]とした後で、５回の更新を経て[式８]となる。すなわち、１番目の輔を３回２倍した後で、１番目の輔を１回、３番目の軸を４回１／２倍している。この変形行列を使って前述の入力ベクトルをクラスタリングした結果は図４の下段の左から３列目のようになり、ａとｂのベクトルがそれぞれ異なる０番と１番のクラスタに属しており、ｃのベクトルはａと同じ０番のクラスタに属している。
【００５１】
【数４】
2007219928.tif 000006
【００５２】
このように、本発明を用いれば、従来技術では実現できなかった、簡易な分類要求に従ったクラスタリングを実行可能である。
【００５３】
第一の実施の形態では簡易な分類要求を受け、それに基づいて更新した変形行列を用いてＡＲＴで距離を計算することで、もし上記分類要求で示された二つのベクトルが最初の二つの入力ベクトルとして入力されれば確実に分類要求を満たすことができる。
しかし、そうでない場合は必ずしも要求を満たしているとは限らず、できるだけその要求を満たすようなベストエフォート（最善方式）の方法であると言える。
【００５４】
そこで、更新した変形行列を用いて実際にＡＲＴを実行し、分類要求を満たしているかどうかを確認する手順を考慮したものが第二の実施の形態である。
これを実現するため第二の実施の形態では、それまでに入力されたベクトルの履歴（入力ベクトル列）と簡易な分類要求の履歴を保持しておき、また変形行列の履歴も保持してどのような変形行列の更新については既に要求を満たさないことを確認したか、を管理する。
またどのように変形行列を更新しても簡易な分類要求を満たさないことが分かった場合には、実施不可能な分類要求一覧７に書き出して示す。
【００５５】
次に本発明の一例としての第二の実施の形態を説明する。本発明の第二の実施の形態においては、図５に示すとおり、第一の実施の形態の構成に、実施不可能な分類要求一覧７、簡易な分類要求の履歴８、変形行列の履歴９、および入力ベクトル列１０がファイルとして追加される。
【００５６】
ここで簡易な分類要求の履歴８と変形行列の履歴９の例を図６に示す。
ＡＲＴ実行プロセス１は入力ベクトルファイル２から入力ベクトルを一つずつ読み出し、ＡＲＴを実行する点については第一の実行の形態と同じである。ただし読み出した入力ベクトルを入力ベクトル列ファイル１０に逐一記録しておく。今、ＡＲＴを実行している途中で簡易な分類要求３へ要求の追加があったとする。
【００５７】
この場合、まず現在の変形行列の履歴９を「直前の変形行列の履歴」としてコピーしておく。次に、該分類要求がｊ＋１番目の要求だったものとする。
【００５８】
今、以下の説明のために、ｘ番目の分類要求を「ｐｘとｑｘを異なるクラスタに属するように判定する」、あるいは、「ｐｘとｑｘを同じクラスタに属するように判定する」という要求とし、該要求によって生成された変形行列をＴｘと表す。
また、ｘ番目の要求が、「ｐｘとｑｘを異なるクラスタに属するように判定する」という要求だった場合「ｘ番目の要求は分離要求である」と表す。
また、「ｘ番目の要求がｐｘとｑｘを同じクラスタに属するように判定する」という要求だった場合「ｘ番目の要求は統合要求である」と表す。
【００５９】
すなわち、該ｊ＋１番目の要求は、ｐｊ＋１とｑｊ＋１に関する、「統合要求」あるいは「分離要求」であり、直前のｊ番目の統合あるいは分離要求によって生成された現在の変形行列はＴｊである。
【００６０】
次に、図７および図８を用いて、第二の実施の形態における、処理の流れを説明する。
まず変数ｋにｊを代人する（ステップＳ７０２）。次に、次のような手順Ａを実行する。
すなわち手順Ａとは、クラスタ半径をｒ、あるｉについて、変形行列Ｔのｉ行ｉ列の要素をｘ倍した新しい変形行列をＴ（ｉ，ｘ）とした時、全てのｉについて、「ｋ＋１番目の要求が分離要求の場合」は方程式[式９]を満たすｘｉを計算し（図７のステップＳ７０３）、「ｋ＋１番目の要求が統合要求の場合」は方程式[式１０]を満たすｘｉを計算する（図８のステップ８０３）。
そして、変形行列の履歴９のＴｋのリストに対して、全てのｉとｘｉの組を登録する（図７のステップＳ７０４、または、図８のＳ８０４）手順である。
ここでδは１より大きい定数であり、εは１より小さい定数である。
【００６１】
【数５】
2007219928.tif 000007
【００６２】
ここでは説明のため、図７の手順Ａには「ｋ＋１番目の要求が統合要求の場合」を記載し、図８の手順Ａには「ｋ＋１番目の要求が統合要求の場合」の場合を記載している。
【００６３】
ただし、「統合要求」の場合はあるｉに対しては該方程式の解が存在しない場合があり、その場合は該ｉはＴｋのリストに対して登録はしない。また、もしすべてのｉに対して解が存在しない場合は（ステップＳ８０５でｎｏ）、あるｉに対して該方程式を満たすｘｉが出現するまで、ランダムに選んだｉに対してＴｋ（ｉ，０）を新しいＴｋとして（ステップＳ８０６、Ｓ８０７、Ｓ８０８）該方程式を再度計算する。
【００６４】
手順Ａを実行した後は、次のような手順Ｂを実行する。すなわち手順Ｂとは、ｉをランダムに選択し（ステップＳ７０５）、Ｔｋのリストからｉとｘｉとの組を削除する（ステップＳ７０６）手続きである。
【００６５】
次に、もしｋがｊと一致しなかったら、Ｔｋ（ｉ，ｘｉ）をＴｋ＋１として変形行列の履歴９に登録し（ステップＳ７０７）、ｋを１増やして（ステップＳ７０８）手順Ａに戻る。もしｋがｊと一致したら、手順Ｂで選んだｉにこついて、Ｔｊ（ｉ，ｘｉ）を用いて入力ベクトル列１０に対してＡＲＴを実行する（ステップＳ７０９）。
【００６６】
その結果ｊ＋１番目の要求が「分離要求」の場合は、「ｐｊ＋１とｑｊ＋１が異なるクラスタに属するように」判定されたら、Ｔｊ（ｉ，ｘｉ）をＴｊ＋１として変形行列の履歴９に登録する（ステップＳ７１０）。
または、ｋ＋１番目の要求が「統合要求」の場合は、「ｐｊ＋１とｑｊ＋１が同じクラスタに属するように」判定されたら、Ｔｊ（ｉ，ｘｉ）をＴｊ＋１として変形行列の履歴９に登録する（ステップＳ７１０）。
また同時に、最初に記録した「直前の変形行列の履歴」を削除して終了する。
【００６７】
もしｊ＋１番目の要求が「分離要求」で「ｐｊ＋１とｑｊ＋１が異なるクラスタに属するように判定されない」場合で、Ｔｊのリストに要素が残っていたら、手順Ｂから再実行する（Ａ７１）。
または、ｊ＋１番目の要求が「統合要求」で「ｐｊ＋１とｑｊ＋１が同じクラスタに属するように判定されない」場合で、Ｔｊのリストに要素が残っていたら、手順Ｂから再実行する（Ａ７１）。
【００６８】
もしＴｊのリストに要素が残っていない場合、次の手順Ｃを実行する（Ａ７２）。すなわち手順Ｃとは、まずｋを１小さくし（ステップＳ７１１）、次にＴｋのリストに要素が残っていたら、ｉをランダムに選択し（ステップＳ７１２）、Ｔｋのリストからｉとｘｉの組を削除し（ステップＳ７１３）、Ｔｋ＋１としてＴｋ（ｉ，ｘｉ）を変形行列の履歴９に登録して（ステップＳ７１４）、手順Ａに戻る（Ａ７３）、手順である。
【００６９】
手順Ｃ中、もしＴｋのリストに要素が残っていない場合で、ｋが０であれば、該ｊ＋１番目の要求は実施不可能として、実施不可能な分類要求一覧７に追記するとともに、現在の変形行列の履歴９を最初に記録した「直前の変形行列の履歴」で上書きして終了する（ステップＳ７１５）。もしＴｋのリストに要素が残っていない場合で、ｋが０であれば、手順Ｃに戻る（Ａ７４）。
【００７０】
なお、第二の実施の形態のステップＳ７０５、７１２または８０６において、ｉをランダムに選ぶ代わりに、ｘｉの値が最も小さいｉを選んでも良い。また、ｐｋとｑｋの要素を見比べて、差が最も大きい軸を選んでも良い。
【００７１】
また、第二の実施の形態において、Ｔｊ（ｉ，ｘｉ）を用いて入力ベクトル列１０に対してＡＲＴを実行（ステップＳ７０９）した後ｊ＋１番目の要求を満たすかどうかを調べる代わりに、簡易な分類要求の履歴８中の全ての要求を満たすかどうかを調べても良い。
【００７２】
また、第一及び第二の実施の形態において、簡易な分類要求の内容として、「二つのベクトルｐとｑを異なるクラスタに属するように判定する」あるいは「二つのベクトルｐとｑを同じクラスクに属するように判定する」とする代わりに、あるクラスタｃに属するベクトルｐをｃとは別のクラスタに属するように判定する、あるいは、あるクラスタｃに属さないベクトルｐをｃに属するように判定する、という内容であっても良い。
その場合、各実施の形態で二つのベクトルｐとｑに関して実行した処理を、ベクトルｐ及びクラスタｃのプロトタイプベクトルｃｐに対して実行すれば良い。
【００７３】
以下に、本発明によるクラスタリング方法および装置を適用した、具体的な一例を説明する。
まず、様々なセンサ（温湿度計、照度計、音量計、加速度計（人間の動きや椅子・引き出しなどのモノの動きの情報）、ＧＰＳ（位置情報）、など）が取得したセンサ値を各ベクトルの要素とする入力ベクトルとし、センサ値の組み合わせをクラスタリングする。このようなセンサ値の組み合わせはコンテキストを表していると考えられる。
また、各センサと同時刻・同じ場所で撮影された画像（インターバル撮影するカメラを携帯したり、街中の環境カメラの映像を入手することを想定）をセンサ値の組み合わせ（コンテキスト）と関連付けておく。
そして、クラスタリング結果に基づき、各クラスタに属するセンサ値の組み合わせ（コンテキスト）に関連付けられた画像をユーザに提示することで、ユーザは同一コンテキストで発生した画像を整理して閲覧することができ、見たい画像を簡単に探すことができる。
【００７４】
しかしユーザがどのようなセンサ値をどれくらい重視してコンテキストを分類して見たいかという要求は閲覧のたびに変わってくる。
例えば冬の外出中に人と会って話をしたときの画像が見たい場合は、温度と音量を重視してクラスタリングした結果が有効だろうし、旅行中の移動の様子をダイジェストで見たいならＧＰＳの位置情報を重視したクラスタリングが有効だろう。
【００７５】
そこで、本発明によるクラスタリング方法および装置を用いれば、ユーザは適切にクラスタリングされていない画像を見つけたら、この画像とこの画像は同じコンテキスト、あるいはこの画像とこの画像は異なるコンテキスト、というような簡単な指示をすることで、指示した以外の画像も適切にクラスタリングすることができ、快適に画像の閲覧を行うことができる。
【００７６】
ここで、従来のクラスタリングでは、クラスタリングされた後で、「この画像とこの画像は同じコンテキスト」、あるいは「この画像とこの画像は異なるコンテキスト」と指示を出すことは不可能であった。
希望のクラスタリングを得るには、予めクラスタリングに入るコンテキストを指定してクラスタリングを行う必要があった。
本発明によれば、クラスタリングを行った後でも、「この画像とこの画像は同じコンテキスト」あるいは「この画像とこの画像は異なるコンテキスト」と指示を出すことが可能であり、要求に応じてクラスタリングがされる点が重要となる。
【００７７】
なお、説明において、入力ベクトル２、簡易な分類要求３、クラスタ番号／プロとタイプベクトル対応表４、パラメタ管理表５、クラスタ番号６などをファイルとして説明してきたが、これらはファイルに限られるものではなく、コンピュータ上で処理される変数や構造体などのデータでもよい。
また、入力ベクトル２は、センサなどから出力されるデータそのものでもよい。また、分類要求３は、人が入力する分類希望でもよく、その場合、分類を入力するための装置からの入力となる。
【００７８】
なお、説明において、オンラインクラスタリングを用いて説明をしたが、本発明によるクラスタリング方法および装置は、ベクトルの数が無制限のオンラインクラスタリングに限られるものではなく、例えば、ベクトルの数が予め有限と決められているバッチ型のクラスタリングにおいても適応可能である。
【００７９】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【００８０】
本発明は、分類を行うクラスタリング装置に用いて好適である。
【図面の簡単な説明】
【００８１】
【図１】この発明の第一の実施の形態によるクラスタリング方法および装置の構成を示すブロック図である。
【図２】第一の実施の形態による分離手順の流れを示すフローチャートである。
【図３】第一の実施の形態による結合手順の流れを示すフローチャートである。
【図４】第一の実施の形態によるクラスタリングと変形行列を説明する説明図である。
【図５】この発明の第二の実施の形態によるクラスタリング方法および装置の構成を示すブロック図である。
【図６】簡易な分類要求の履歴８と変形行列の履歴９の例を示す説明図である。
【図７】第二の実施の形態による流れを示す第一のフローチャートである。
【図８】第二の実施の形態による流れを示す第二のフローチャートである。
【図９】クラスタリングを説明するための説明図である。
【図１０】クラスタリングにおけるデンドログラムを説明するための説明図である。
【図１１】好ましいクラスタリングができない場合の例を示す説明図である。
【符号の説明】
【００８２】
１  ＡＲＴ実行プロセス
２  入力ベクトル
３  簡易な分類要求
４  クラスタ番号／プロトタイプベクトル対応表
５  パラメタ管理表
６  クラスタ番号
７  実施不可能な分類要求一覧
８  簡易な分類要求の履歴
９  変形行列の履歴
１０  入力ベクトル列
【図１】
2007219928.tif 000008
【図２】
2007219928.tif 000009
【図３】
2007219928.tif 000010
【図４】
2007219928.tif 000011
【図５】
2007219928.tif 000012
【図６】
2007219928.tif 000013
【図７】
2007219928.tif 000014
【図８】
2007219928.tif 000015
【図９】
2007219928.tif 000016
【図１０】
2007219928.tif 000017
【図１１】
2007219928.tif 000018