JP2007219928A - クラスタリング方法および装置 - Google Patents
クラスタリング方法および装置 Download PDFInfo
- Publication number
- JP2007219928A JP2007219928A JP2006040992A JP2006040992A JP2007219928A JP 2007219928 A JP2007219928 A JP 2007219928A JP 2006040992 A JP2006040992 A JP 2006040992A JP 2006040992 A JP2006040992 A JP 2006040992A JP 2007219928 A JP2007219928 A JP 2007219928A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- vectors
- input
- clustering
- cluster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】「aとbを異なるクラスタに属するように判定する」、あるいは「aとcを同じクラスタに属するように判定する」、と言った簡易な分類要求に従ったクラスタリング方法および装置を提供する。
【解決手段】二つのベクトルの距離を求める際に、各ベクトルの構成要素、すなわち各軸における値に、軸ごとに決められた補正値を乗算した値を用いて計算するようにする。
また、ある二つのベクトルを同じクラスタに属すると判定すべき、という簡易な分類要求があった場合、ある軸の前述の補正値を小さくするようにする。また、ある二つのベクトルを異なるクラスタに属すると判定すべき、という簡易な分類要求があった場合、ある軸の前述の補正値を大きくするようにする。
これにより、簡易な分類要求に従ったクラスタリングが可能となる。
【選択図】図1
【解決手段】二つのベクトルの距離を求める際に、各ベクトルの構成要素、すなわち各軸における値に、軸ごとに決められた補正値を乗算した値を用いて計算するようにする。
また、ある二つのベクトルを同じクラスタに属すると判定すべき、という簡易な分類要求があった場合、ある軸の前述の補正値を小さくするようにする。また、ある二つのベクトルを異なるクラスタに属すると判定すべき、という簡易な分類要求があった場合、ある軸の前述の補正値を大きくするようにする。
これにより、簡易な分類要求に従ったクラスタリングが可能となる。
【選択図】図1
Description
本発明は、複数の入力ベクトルに対して、類似したベクトル同士を同一クラスタに分類する判別機を得るクラスタリング方法であり、あらかじめどのようなクラスタが存在するか、あるいはどのベクトルがどのクラスタに属するか、といった教師信号が無く、ベクトルの入力に従ってクラスタリングを実行しながら判定の方法を逐次変更していく、教師なしオンラインクラスタリング方法であって、簡易な分類要求に対して適応するクラスタリング方法および装置に関する。
従来の技術として、教師なしオンラインクラスタリングアルゴリズムとしては、ART(ADAPTIVE RESONANCE THEORY)に基づくアルゴリズムがあった(ARTについては、例えば非特許文献1の565−568頁を参照)。以下に本発明の説明に必要な範囲でARTの概要を述べる。
まず二つのベクトルxとyの距離をd(x,y)で表す。d(x,y)の定義としては、ベクトル間のユークリッド距離や内角差、内角差にベクトル長の比を掛けた値(標準ベクトル距離)などが用いられる。ここではユークリッド距離を用いる方法に関して述べる。また、各クラスタはプロトタイプベクトルと呼ばれる代表ベクトルを持つ。ARTでは各入力ベクトルxに対して順番に以下を行う判別機を維持更新する。
もしクラスタがまだ一つも生成されていないか、全てのクラスタのプロトタイプベクトルrについて、d(x,r)がある閾値を超えた場合、新規のクラスタを生成してそのプロトタイプベクトルをxとするとともに、xが属するクラスタとして該新規生成クラスタの番号を提示する。この時用いた閾値をクラスタ半径と呼ぶ。
ここで、ARTの用語では「クラスタ半径」のことを警戒パラメタと呼ぶが、分かりやすい説明のためにクラスタ半径として表現を変えている。また、一般には警戒パラメタを下回った場合に新規クラスタを生成する、という方法の方が有名だが、やはり分かりやすい説明のためにd(x,r)がクラスタ半径を超えた場合に新規クラスタを生成することとして説明する。
もしd(x,r)があるクラスタ半径以下となるようなプロトタイプベクトルrを持つクラスタが存在する場合、xはその中で最もd(x,r)の小さいクラスタに属するものと判定し、xが属するクラスタとして該クラスタの番号を提示するとともに、該クラスタのプロトタイプベクトルをxに少し近づける。ここでプロトタイプベクトルrをxに少し近づけるとは、ある学習率η(O≦η≦1)があって、新しいrをrNEW=r+ηxとすることである。
このように、ARTはクラスタ半径を決めることで実行可能であるが、入力列とクラスタ半径と学習率が決まるとクラスタリング結果が決まってしまうため、実行を開始したARTによるクラスタリング結果が有効なものでない場合に、クラスタリング結果を修正することができない。
そこでARTを階層的に用いることで様々なレベルのクラスタリングを同時に行い、適当なクラスタリング結果を利用する方法が提案されてきた。例えば非特許文献2で提案されているarboARTでは、まず一番下位の層で通常の入力ベクトルに対してクラスタ半径をある程度小さな値に設定してARTを実行し、その結果生成されたクラスタのプロトタイプベクトルを次の層の入力とし、クラスタ半径を少し大きくしてARTを実行し、これを繰り返す。
ここで、原文では「クラスタ半径」を大きな値に設定し、以下のステップで徐々に小さくしているが、前述の通りここでは説明の理解を助けるために逆の表現で説明する。また、原文では二つのベクトルの距離をベクトル間の内角で説明しているが、ここでは理解の簡単のためユークリッド距離で説明する。いずれもARTの本質としては同じことである。
図9にarboARTによるクラスタリングの例を示す。今、第N層でクラスタ半径をαとし、図中の丸で示した1〜8の入力ベクトルに対してARTを実行した結果が図9の最下段に示すようになったとする。つまり、1〜3、4と5、6と7、及び8が同一クラスタに属すると判定されたこととする。
次に第N+1層では、第N層で生成された各クラスタのプロトタイプベクトルを入力とし、クラスタ半径をα+βとしてARTを実行する。ここでβはあらかじめ決められた定数である。その結果が図9の中段に示すように、1〜5、及び6〜8が同一クラスタに属すると判定されたこととする。
最後に第N+2層では、第N+1層で生成された各クラスタのプロトタイプベクトルを入力とし、クラスタ半径を(α+β)+β=α+2βとしてARTを実行する。その結果が図9の上段に示すように、全ての入力が同一クラスタと判定されたものとする。
この結果をデンドログラムと呼ばれる木構造にまとめると図10のようになる。すなわち、左側に入力を縦に並べ、各層で同一クラスタに属すると判定された入力同士を線で結んでいくことで、各層でのクラスタリング結果を概観することができる。このようなデンドログラムを見ることで、最適なクラスタリングの階層を確認し、簡易な分類要求を満たすクラスクリングに対応したクラスタ半径を決定することが可能となり、有効なクラスタリングを実行する判別機を得ることができる。
前述の従来技術では、元々のARTでクラスタ半径が決まるとクラスタリング結果が決まってしまいユーザにとって好ましいクラスタリングが得られないかもしれないという問題点を解決している。
しかしながら、クラスタ半径の増減だけでユーザにとって好ましいクラスタリングが必ずしも得られるとは限らない。特に各ベクトルの軸ごとに値の振れ幅の大きさがばらばらであるような場合、その幅が大きい軸にクラスタリング結果が強く影響される可能性があり、その場合振れ幅の小さい軸に強く依存したクラスタリングが実行できない可能性がある。
例えば図11の上段のような8つの3次元ベクトルのクラスタリングを考える。なお、図11の一番上のアルファベットは各ベクトルのIDを表している。今、これらベクトルにおいて、「aとbを異なるクラスタに分類する」、または「aとcを同じクラスタに分類する」、という簡易な分類要求を考える。ここでaとbのベクトルのユークリッド距離は約0.332、aとcは約3.90である。従ってaとbのベクトルを異なるクラスタとするため、クラスタ半径を0.332より小さくしてしまうと、aとcのベクトルを同じクラスタと判定することができなくなる。
実際、図11の下段に学習率を0.1、クラスタ半径を0.33及び3.91とした場合に各ベクトルが属すると判定されるクラスタ番号を載せている。このようにaとbを異なるクラスタに、あるいはaとcを同じクラスタに、それぞれ個別に判定することは可能である。
しかし例えばクラスタ半径を0.33より大きくするとaとbは同じクラスタに属すると判断され、クラスタ半径を3.91より小さくするとaとcは異なるクラスタに属すると判断されるため、両者の分類要求を同時に満たすクラスタリングは実行できない。
Richard O.Duda、Peter E.Hart、David G. Stork、監訳:尾上守夫.パターン認識.新技術コミュニケーションズ、2001. 石原茂和、石原恵子、長町三生.感性工学データ解析のための自己組織化ニューラルネットワークを用いた階層的クラスタリング手法の開発.信学論、Vol.J82−A、No.1、pp.179−189、1999.
Richard O.Duda、Peter E.Hart、David G. Stork、監訳:尾上守夫.パターン認識.新技術コミュニケーションズ、2001. 石原茂和、石原恵子、長町三生.感性工学データ解析のための自己組織化ニューラルネットワークを用いた階層的クラスタリング手法の開発.信学論、Vol.J82−A、No.1、pp.179−189、1999.
本発明は、このような事情に鑑みてなされたもので、その目的は、「aとbを異なるクラスタに属するように判定する」、あるいは「aとcを同じクラスタに属するように判定する」、と言った簡易な分類要求に従ったクラスタリング方法および装置を提供することにある。
この発明は上述した課題を解決するためになされたもので、請求項1に記載の発明は、複数の入力ベクトルに対して、前記入力ベクトル間の距離が所定の値よりも小さい前記入力ベクトルを同一のクラスタに分類するクラスタリング方法において、前記入力ベクトルの各成分に分類のための補正値を乗じて、前記入力ベクトル間の距離を算出すること、を特徴とする。
請求項2に記載の発明は、請求項1記載のクラスタリング方法において、同じクラスタに属させたい2つの入力ベクトル、又は、異なるクラスタに属させたい2つの入力ベクトルに対して、前記2つの入力ベクトルを基に前記入力ベクトルの各成分のいずれかに乗じる分類のための補正値を修正する、ことを特徴とする。
請求項3に記載の発明は、請求項2記載のクラスタリング方法において、同じクラスタに属させたい2つの入力ベクトル、又は、異なるクラスタに属させたい2つの入力ベクトルに対して、前記2つの入力ベクトルの各成分の中で成分間の距離が最大の成分に対して、前記入力ベクトルの各成分に乗じる分類のための補正値を修正する、ことを特徴とする。
請求項4に記載の発明は、請求項1記載のクラスタリング方法において、前記クラスタをプロトタイプベクトルとして表し、前記入力ベクトル及び前記プロトタイプベクトルの各成分に分類のための補正値を乗じて、前記プロトタイプベクトル間の距離、又は、前記プロトタイプベクトルと前記入力ベクトルとの間の距離を算出する、ことを特徴とする。
請求項5に記載の発明は、複数の入力ベクトルに対して、前記入力ベクトル間の距離が所定の値よりも小さい前記入力ベクトルを同一のクラスタに分類するクラスタリング装置において、前記入力ベクトルの各成分に分類のための補正値を乗じて、前記入力ベクトル間の距離を算出する第一の算出手段を有することを特徴とする。
請求項6に記載の発明は、請求項5記載のクラスタリング装置において、同じクラスタに属させたい2つの入力ベクトル、又は、異なるクラスタに属させたい2つの入力ベクトルに対して、前記2つの入力ベクトルを基に前記入力ベクトルの各成分のいずれかに乗じる分類のための補正値を修正する第一の補正値修正手段を有することを特徴とする。
請求項7に記載の発明は、請求項5記載のクラスタリング装置において、同じクラスタに属させたい2つの入力ベクトル、又は、異なるクラスタに属させたい2つの入力ベクトルに対して、前記2つの入力ベクトルの各成分の中で成分間の距離が最大の成分に対して、前記入力ベクトルの各成分に乗じる分類のための補正値を修正する第二の補正値修正手段を有することを特徴とする。
請求項8に記載の発明は、請求項5記載のクラスタリング装置において、前記クラスタをプロトタイプベクトルとして表し、前記入力ベクトル及び前記プロトタイプベクトルの各成分に分類のための補正値を乗じて、前記プロトタイプベクトル間の距離、又は、前記プロトタイプベクトルと前記入力ベクトルとの間の距離を算出する第二の算出手段を有することを特徴とする。
この発明によれば、二つのベクトルの距離を計算する際に、ある軸の補正値を任意に大きくすることで、それらのベクトルのユークリッド(EUCLID)距離を任意の値に大きくするという動作をする。このようにすることで、前述の補正値を該二つのベクトルのユークリッド距離がクラスタ半径を超えるまで大きくすることができ、ある二つのベクトルを異なるクラスタに属するように判定するという簡易な分類要求に応えることができる、という効果を奏する。
また、本発明によれば、二つのベクトルの距離を計算する際に、ある軸の補正値を任意に小さくし、これをいくつかの軸に対して何度も繰り返すことで、それらのベクトルのユークリッド距離を0以上の任意の値に小さくするという動作をする。このようにすることで、前述の補正値を該二つのベクトル間のユークリッド距離がクラスタ半径以下になるまで小さくすることができ、ある二つのベクトルを同じクラスタに属するように判定するという簡易な分類要求に応えることができる、という効果を生じる。
また、本発明によれば、更に、上記の二つの場合に選択される軸は異なりうるため、ある二つのベクトルを異なるクラスタに属するように判定するという簡易な分類要求と、別の二つのベクトルを同じクラスタに属するように判定するという簡易な分類要求とを同時に満たす補正値を計算することも可能である(場合がある)、という効果を奏する。
まず、本発明の具体的なシステム構成に関する実施方法を述べた後で、本発明の実行方法を示し、該実行方法を用いて前述の例をクラスタリングした一例としての結果を示す。
本発明においては、ARTで二つのベクトルの距離を計算する際に、各ベクトルの要素に各軸ごとに異なりうる補正値を掛けた上で計算を行う。このような軸ごとの補正値を対角成分として持つ対角行列を変形行列と呼び、補正値を掛けた上で計算したベクトルの距離を、変形行列に基づく距離と呼ぶ。変形行列の初期化手順としては、例えば全ての対角要素を1にする、あるいは入力ベクトルの次元をdとした時、全ての対角要素を1/√dとすれば良い。
以下、図面を参照して、本発明の実施の形態について説明する。本発明の第一の実施の形態の一例としては、図1に示すとおり、ARTを実行するART実行プロセス1、および、入力ベクトルファイル2と、簡易な分類要求ファイル3と、クラスタ番号/プロトタイプベクトル対応表ファイル4と、パラメタ管理表ファイル5とクラスタ番号ファイル6との5つのファイルから構成される。入力ベクトルファイル2と簡易な分類要求ファイル3は他のプロセスや他のPC上のプログラムが適宜更新して、新規のベクトルや要求を追記する。なお、パラメタ管理表ファイル5の内容については、以降で逐次説明する。
ART実行プロセス1は入力ベクトルファイル2から入力ベクトルを読み出し、ARTを実行する。すなわち、クラスタ番号/プロトタイプベクトル対応表ファイル4、及びパラメタ管理表ファイル5の変形行列とクラスタ半径と学習率を読んで、該変形行列に基づく既存のクラスタの各プロトタイプベクトルと該入力ベクトルとの距離の中で、該クラスタ半径以下の距離があれば、該入力ベクトルにはその中で距離が最も小さいプロトタイプベクトルに対応するクラスタ番号をクラスタ番号ファイル6に追記し、該プロトタイプベクトルを学習率だけ該入力ベクトルに近づけた値を新しいプロトタイプベクトルとして、クラスタ番号/プロトタイプベクトル対応表ファイル4に上書きする。
次に、ARTを実行している途中で、簡易な分類要求があったとする。このような要求の受け付けは、ARTの実行プロセスに割り込みをかけたり、ARTの実行プロセスが定期的に簡易な分類要求ファイル3を監視して、そこに要求が追記されているかどうかをチェックすることで実現できる。
次に、分離手順のフローチャートを図2に示す。もし簡易な分類要求の内容が、「ある二つのベクトルを異なるクラスタに属するように判定する」という内容の場合(ステップS21)、まず変形行列に該二つのベクトルを掛けた結果生成されるベクトルの差ベクトルを計算し(ステップS22)、該差ベクトルにおいて、絶対値が最も大きい要素を第i番目の要素とする(ステップS23)。次に該二つのベクトルの現在の変形行列に基づく距離が、クラスタ半径に「ある1より大きい数値であるδ」を乗じた値より大きくなるまで、以下で述べるように変形行列の変形を続け(ステップS24、S25)、該求めた変形行列をパラメタ管理表ファイル5の変形行列に上書きする(ステップS26)。
変形行列の変形手順は、前述の絶対値が最も大きい要素を第i番目の要素とした時、変形行列のi行i列の要素をN倍して新しい変形行列とする(ステップS25)、という手順である。ただしNは1より大きい定数である。
なおステップS23の別の手順としては、絶対値が最も大きい要素を第i番目の要素とする代わりに、絶対値が最も小さい要素を第i番目の要素とする、あるいはランダムに第i番目の要素を選んで、変形行列のi行i列の要素をN倍して新しい変形行列とする、という手順も有効である。ただし絶対値が最も大きい要素を第i番目の要素として選ぶ場合は、変形行列の変形手順を高速に収束させることができる。
また、ステップS25の別の手順としては、変形行列のi行i列の要素をN倍する代わりに、変形行列Tのi行i列の要素をx倍した新しい変形行列をT(i,x)とした時、[式1]を満たすxを計算して、x倍することとしても良い。ここであるベクトル[式2]に対して[式3]である。この場合は手順の中で要素を何度もN倍する必要がなく、手順の高速化が期待できる。
次に、統合手順のフローチャートを図3に示す。もし簡易な分類要求の内容が、「ある二つのベクトルを同じクラスタに属するように判定する」という内容の場合(ステップS31)、まず該二つのベクトルの現在の変形行列に基づく距離が、クラスタ半径にある「1より小さい数値であるε」を乗じた値より小さくなるまで、以下で述べるように変形行列の変形を続け(ステップS32、33、34、35)、該求めた変形行列をパラメタ管理表ファイル5の変形行列に上書きする(ステップS36)。
変形行列の変形手順は、まず現在の変形行列に該二つのベクトルを掛けた結果生成されるベクトルの差ベクトルを計算し(ステップS33)、該差ベクトルにおいて、絶対値が最も大きい要素を第i番目の要素とする(ステップS34)。次に変形行列のi行i列の要素を1/M倍して新しい変形行列とする(ステップS35)。ただしMは1より大きい定数である。
なおステップS34の別の手順としては、絶対値が最も大きい要素を第i番目の要素とする代わりに、ランダムに第i番目の要素を選んでも良い。ただし絶対値が最も大きい要素を第i番目の要素として選ぶ場合は、変形行列の変形手順を高速に収束させることができる。
また、ステップS35の別の手順としては、変形行列のi行i列の要素を1/M倍する代わりに、変形行列Tのi行i列の要素をx倍した新しい変形行列をT(i,x)とした時、[式4]を満たすxを計算して、x倍することとしても良い。この場合は手順の中で要素を何度も1/M倍する必要がなく、手順の高速化が期待できる。
以下本発明の第一の実行の形態に基づき、前述の図11の上段に示したような入力ベクトルに対し、aとbを異なるクラスタに、あるいはaとcを同じクラスタに、それぞれ属するように判定する、本発明によるクラスタリング方法について述べる。ここで、ARTの学習率は0.1、クラスタ半径は0.3、上述のN=M=2、δ=1.1、ε=0.9としている。また、以降、小数点4桁を四捨五入して表現するが、初期状態における変形行列は全ての対角要素が0.5773である対角行列とする。
もしaとbを異なるクラスタに属するように判定するような簡易な分類要求があった場合、本発明のアルゴリズムを実行すると、変形行列は3回の更新を経て[式5]となる。
すなわち、1番目の軸を3回2倍している。この変形行列を使って前述の入力ベクトルをクラスタリングした結果は図4の下段の左から1列目のようになり、aとbのベクトルがそれぞれ異なる0番と1番のクラスタに属している。
すなわち、1番目の軸を3回2倍している。この変形行列を使って前述の入力ベクトルをクラスタリングした結果は図4の下段の左から1列目のようになり、aとbのベクトルがそれぞれ異なる0番と1番のクラスタに属している。
もしaとcを同じクラスタに属するように判定するような簡易な分類要求があった場合、本発明のアルゴリズムを実行すると、変形行列は4回の更新を経て[式6]となる。すなわち、3番目の軸を4回1/2倍している。この変形行列を使って前述の入力ベクトルをクラスタリングした結果は図4の下段の左から2列目のようになり、aとcのベクトルが同じ0番のクラスタに属している。
次に、もしaとbを異なるクラスタに、aとcを同じクラスタに属するように同時に判定するような簡易な分類要求があった場合、本発明のアルゴリズムを実行すると、まず変形行列の3回の更新を経て[式7]とした後で、5回の更新を経て[式8]となる。すなわち、1番目の輔を3回2倍した後で、1番目の輔を1回、3番目の軸を4回1/2倍している。この変形行列を使って前述の入力ベクトルをクラスタリングした結果は図4の下段の左から3列目のようになり、aとbのベクトルがそれぞれ異なる0番と1番のクラスタに属しており、cのベクトルはaと同じ0番のクラスタに属している。
このように、本発明を用いれば、従来技術では実現できなかった、簡易な分類要求に従ったクラスタリングを実行可能である。
第一の実施の形態では簡易な分類要求を受け、それに基づいて更新した変形行列を用いてARTで距離を計算することで、もし上記分類要求で示された二つのベクトルが最初の二つの入力ベクトルとして入力されれば確実に分類要求を満たすことができる。
しかし、そうでない場合は必ずしも要求を満たしているとは限らず、できるだけその要求を満たすようなベストエフォート(最善方式)の方法であると言える。
しかし、そうでない場合は必ずしも要求を満たしているとは限らず、できるだけその要求を満たすようなベストエフォート(最善方式)の方法であると言える。
そこで、更新した変形行列を用いて実際にARTを実行し、分類要求を満たしているかどうかを確認する手順を考慮したものが第二の実施の形態である。
これを実現するため第二の実施の形態では、それまでに入力されたベクトルの履歴(入力ベクトル列)と簡易な分類要求の履歴を保持しておき、また変形行列の履歴も保持してどのような変形行列の更新については既に要求を満たさないことを確認したか、を管理する。
またどのように変形行列を更新しても簡易な分類要求を満たさないことが分かった場合には、実施不可能な分類要求一覧7に書き出して示す。
これを実現するため第二の実施の形態では、それまでに入力されたベクトルの履歴(入力ベクトル列)と簡易な分類要求の履歴を保持しておき、また変形行列の履歴も保持してどのような変形行列の更新については既に要求を満たさないことを確認したか、を管理する。
またどのように変形行列を更新しても簡易な分類要求を満たさないことが分かった場合には、実施不可能な分類要求一覧7に書き出して示す。
次に本発明の一例としての第二の実施の形態を説明する。本発明の第二の実施の形態においては、図5に示すとおり、第一の実施の形態の構成に、実施不可能な分類要求一覧7、簡易な分類要求の履歴8、変形行列の履歴9、および入力ベクトル列10がファイルとして追加される。
ここで簡易な分類要求の履歴8と変形行列の履歴9の例を図6に示す。
ART実行プロセス1は入力ベクトルファイル2から入力ベクトルを一つずつ読み出し、ARTを実行する点については第一の実行の形態と同じである。ただし読み出した入力ベクトルを入力ベクトル列ファイル10に逐一記録しておく。今、ARTを実行している途中で簡易な分類要求3へ要求の追加があったとする。
ART実行プロセス1は入力ベクトルファイル2から入力ベクトルを一つずつ読み出し、ARTを実行する点については第一の実行の形態と同じである。ただし読み出した入力ベクトルを入力ベクトル列ファイル10に逐一記録しておく。今、ARTを実行している途中で簡易な分類要求3へ要求の追加があったとする。
この場合、まず現在の変形行列の履歴9を「直前の変形行列の履歴」としてコピーしておく。次に、該分類要求がj+1番目の要求だったものとする。
今、以下の説明のために、x番目の分類要求を「pxとqxを異なるクラスタに属するように判定する」、あるいは、「pxとqxを同じクラスタに属するように判定する」という要求とし、該要求によって生成された変形行列をTxと表す。
また、x番目の要求が、「pxとqxを異なるクラスタに属するように判定する」という要求だった場合「x番目の要求は分離要求である」と表す。
また、「x番目の要求がpxとqxを同じクラスタに属するように判定する」という要求だった場合「x番目の要求は統合要求である」と表す。
また、x番目の要求が、「pxとqxを異なるクラスタに属するように判定する」という要求だった場合「x番目の要求は分離要求である」と表す。
また、「x番目の要求がpxとqxを同じクラスタに属するように判定する」という要求だった場合「x番目の要求は統合要求である」と表す。
すなわち、該j+1番目の要求は、pj+1とqj+1に関する、「統合要求」あるいは「分離要求」であり、直前のj番目の統合あるいは分離要求によって生成された現在の変形行列はTjである。
次に、図7および図8を用いて、第二の実施の形態における、処理の流れを説明する。
まず変数kにjを代人する(ステップS702)。次に、次のような手順Aを実行する。
すなわち手順Aとは、クラスタ半径をr、あるiについて、変形行列Tのi行i列の要素をx倍した新しい変形行列をT(i,x)とした時、全てのiについて、「k+1番目の要求が分離要求の場合」は方程式[式9]を満たすxiを計算し(図7のステップS703)、「k+1番目の要求が統合要求の場合」は方程式[式10]を満たすxiを計算する(図8のステップ803)。
そして、変形行列の履歴9のTkのリストに対して、全てのiとxiの組を登録する(図7のステップS704、または、図8のS804)手順である。
ここでδは1より大きい定数であり、εは1より小さい定数である。
まず変数kにjを代人する(ステップS702)。次に、次のような手順Aを実行する。
すなわち手順Aとは、クラスタ半径をr、あるiについて、変形行列Tのi行i列の要素をx倍した新しい変形行列をT(i,x)とした時、全てのiについて、「k+1番目の要求が分離要求の場合」は方程式[式9]を満たすxiを計算し(図7のステップS703)、「k+1番目の要求が統合要求の場合」は方程式[式10]を満たすxiを計算する(図8のステップ803)。
そして、変形行列の履歴9のTkのリストに対して、全てのiとxiの組を登録する(図7のステップS704、または、図8のS804)手順である。
ここでδは1より大きい定数であり、εは1より小さい定数である。
ここでは説明のため、図7の手順Aには「k+1番目の要求が統合要求の場合」を記載し、図8の手順Aには「k+1番目の要求が統合要求の場合」の場合を記載している。
ただし、「統合要求」の場合はあるiに対しては該方程式の解が存在しない場合があり、その場合は該iはTkのリストに対して登録はしない。また、もしすべてのiに対して解が存在しない場合は(ステップS805でno)、あるiに対して該方程式を満たすxiが出現するまで、ランダムに選んだiに対してTk(i,0)を新しいTkとして(ステップS806、S807、S808)該方程式を再度計算する。
手順Aを実行した後は、次のような手順Bを実行する。すなわち手順Bとは、iをランダムに選択し(ステップS705)、Tkのリストからiとxiとの組を削除する(ステップS706)手続きである。
次に、もしkがjと一致しなかったら、Tk(i,xi)をTk+1として変形行列の履歴9に登録し(ステップS707)、kを1増やして(ステップS708)手順Aに戻る。もしkがjと一致したら、手順Bで選んだiにこついて、Tj(i,xi)を用いて入力ベクトル列10に対してARTを実行する(ステップS709)。
その結果j+1番目の要求が「分離要求」の場合は、「pj+1とqj+1が異なるクラスタに属するように」判定されたら、Tj(i,xi)をTj+1として変形行列の履歴9に登録する(ステップS710)。
または、k+1番目の要求が「統合要求」の場合は、「pj+1とqj+1が同じクラスタに属するように」判定されたら、Tj(i,xi)をTj+1として変形行列の履歴9に登録する(ステップS710)。
また同時に、最初に記録した「直前の変形行列の履歴」を削除して終了する。
または、k+1番目の要求が「統合要求」の場合は、「pj+1とqj+1が同じクラスタに属するように」判定されたら、Tj(i,xi)をTj+1として変形行列の履歴9に登録する(ステップS710)。
また同時に、最初に記録した「直前の変形行列の履歴」を削除して終了する。
もしj+1番目の要求が「分離要求」で「pj+1とqj+1が異なるクラスタに属するように判定されない」場合で、Tjのリストに要素が残っていたら、手順Bから再実行する(A71)。
または、j+1番目の要求が「統合要求」で「pj+1とqj+1が同じクラスタに属するように判定されない」場合で、Tjのリストに要素が残っていたら、手順Bから再実行する(A71)。
または、j+1番目の要求が「統合要求」で「pj+1とqj+1が同じクラスタに属するように判定されない」場合で、Tjのリストに要素が残っていたら、手順Bから再実行する(A71)。
もしTjのリストに要素が残っていない場合、次の手順Cを実行する(A72)。すなわち手順Cとは、まずkを1小さくし(ステップS711)、次にTkのリストに要素が残っていたら、iをランダムに選択し(ステップS712)、Tkのリストからiとxiの組を削除し(ステップS713)、Tk+1としてTk(i,xi)を変形行列の履歴9に登録して(ステップS714)、手順Aに戻る(A73)、手順である。
手順C中、もしTkのリストに要素が残っていない場合で、kが0であれば、該j+1番目の要求は実施不可能として、実施不可能な分類要求一覧7に追記するとともに、現在の変形行列の履歴9を最初に記録した「直前の変形行列の履歴」で上書きして終了する(ステップS715)。もしTkのリストに要素が残っていない場合で、kが0であれば、手順Cに戻る(A74)。
なお、第二の実施の形態のステップS705、712または806において、iをランダムに選ぶ代わりに、xiの値が最も小さいiを選んでも良い。また、pkとqkの要素を見比べて、差が最も大きい軸を選んでも良い。
また、第二の実施の形態において、Tj(i,xi)を用いて入力ベクトル列10に対してARTを実行(ステップS709)した後j+1番目の要求を満たすかどうかを調べる代わりに、簡易な分類要求の履歴8中の全ての要求を満たすかどうかを調べても良い。
また、第一及び第二の実施の形態において、簡易な分類要求の内容として、「二つのベクトルpとqを異なるクラスタに属するように判定する」あるいは「二つのベクトルpとqを同じクラスクに属するように判定する」とする代わりに、あるクラスタcに属するベクトルpをcとは別のクラスタに属するように判定する、あるいは、あるクラスタcに属さないベクトルpをcに属するように判定する、という内容であっても良い。
その場合、各実施の形態で二つのベクトルpとqに関して実行した処理を、ベクトルp及びクラスタcのプロトタイプベクトルcpに対して実行すれば良い。
その場合、各実施の形態で二つのベクトルpとqに関して実行した処理を、ベクトルp及びクラスタcのプロトタイプベクトルcpに対して実行すれば良い。
以下に、本発明によるクラスタリング方法および装置を適用した、具体的な一例を説明する。
まず、様々なセンサ(温湿度計、照度計、音量計、加速度計(人間の動きや椅子・引き出しなどのモノの動きの情報)、GPS(位置情報)、など)が取得したセンサ値を各ベクトルの要素とする入力ベクトルとし、センサ値の組み合わせをクラスタリングする。このようなセンサ値の組み合わせはコンテキストを表していると考えられる。
また、各センサと同時刻・同じ場所で撮影された画像(インターバル撮影するカメラを携帯したり、街中の環境カメラの映像を入手することを想定)をセンサ値の組み合わせ(コンテキスト)と関連付けておく。
そして、クラスタリング結果に基づき、各クラスタに属するセンサ値の組み合わせ(コンテキスト)に関連付けられた画像をユーザに提示することで、ユーザは同一コンテキストで発生した画像を整理して閲覧することができ、見たい画像を簡単に探すことができる。
まず、様々なセンサ(温湿度計、照度計、音量計、加速度計(人間の動きや椅子・引き出しなどのモノの動きの情報)、GPS(位置情報)、など)が取得したセンサ値を各ベクトルの要素とする入力ベクトルとし、センサ値の組み合わせをクラスタリングする。このようなセンサ値の組み合わせはコンテキストを表していると考えられる。
また、各センサと同時刻・同じ場所で撮影された画像(インターバル撮影するカメラを携帯したり、街中の環境カメラの映像を入手することを想定)をセンサ値の組み合わせ(コンテキスト)と関連付けておく。
そして、クラスタリング結果に基づき、各クラスタに属するセンサ値の組み合わせ(コンテキスト)に関連付けられた画像をユーザに提示することで、ユーザは同一コンテキストで発生した画像を整理して閲覧することができ、見たい画像を簡単に探すことができる。
しかしユーザがどのようなセンサ値をどれくらい重視してコンテキストを分類して見たいかという要求は閲覧のたびに変わってくる。
例えば冬の外出中に人と会って話をしたときの画像が見たい場合は、温度と音量を重視してクラスタリングした結果が有効だろうし、旅行中の移動の様子をダイジェストで見たいならGPSの位置情報を重視したクラスタリングが有効だろう。
例えば冬の外出中に人と会って話をしたときの画像が見たい場合は、温度と音量を重視してクラスタリングした結果が有効だろうし、旅行中の移動の様子をダイジェストで見たいならGPSの位置情報を重視したクラスタリングが有効だろう。
そこで、本発明によるクラスタリング方法および装置を用いれば、ユーザは適切にクラスタリングされていない画像を見つけたら、この画像とこの画像は同じコンテキスト、あるいはこの画像とこの画像は異なるコンテキスト、というような簡単な指示をすることで、指示した以外の画像も適切にクラスタリングすることができ、快適に画像の閲覧を行うことができる。
ここで、従来のクラスタリングでは、クラスタリングされた後で、「この画像とこの画像は同じコンテキスト」、あるいは「この画像とこの画像は異なるコンテキスト」と指示を出すことは不可能であった。
希望のクラスタリングを得るには、予めクラスタリングに入るコンテキストを指定してクラスタリングを行う必要があった。
本発明によれば、クラスタリングを行った後でも、「この画像とこの画像は同じコンテキスト」あるいは「この画像とこの画像は異なるコンテキスト」と指示を出すことが可能であり、要求に応じてクラスタリングがされる点が重要となる。
希望のクラスタリングを得るには、予めクラスタリングに入るコンテキストを指定してクラスタリングを行う必要があった。
本発明によれば、クラスタリングを行った後でも、「この画像とこの画像は同じコンテキスト」あるいは「この画像とこの画像は異なるコンテキスト」と指示を出すことが可能であり、要求に応じてクラスタリングがされる点が重要となる。
なお、説明において、入力ベクトル2、簡易な分類要求3、クラスタ番号/プロとタイプベクトル対応表4、パラメタ管理表5、クラスタ番号6などをファイルとして説明してきたが、これらはファイルに限られるものではなく、コンピュータ上で処理される変数や構造体などのデータでもよい。
また、入力ベクトル2は、センサなどから出力されるデータそのものでもよい。また、分類要求3は、人が入力する分類希望でもよく、その場合、分類を入力するための装置からの入力となる。
また、入力ベクトル2は、センサなどから出力されるデータそのものでもよい。また、分類要求3は、人が入力する分類希望でもよく、その場合、分類を入力するための装置からの入力となる。
なお、説明において、オンラインクラスタリングを用いて説明をしたが、本発明によるクラスタリング方法および装置は、ベクトルの数が無制限のオンラインクラスタリングに限られるものではなく、例えば、ベクトルの数が予め有限と決められているバッチ型のクラスタリングにおいても適応可能である。
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
本発明は、分類を行うクラスタリング装置に用いて好適である。
1 ART実行プロセス
2 入力ベクトル
3 簡易な分類要求
4 クラスタ番号/プロトタイプベクトル対応表
5 パラメタ管理表
6 クラスタ番号
7 実施不可能な分類要求一覧
8 簡易な分類要求の履歴
9 変形行列の履歴
10 入力ベクトル列
2 入力ベクトル
3 簡易な分類要求
4 クラスタ番号/プロトタイプベクトル対応表
5 パラメタ管理表
6 クラスタ番号
7 実施不可能な分類要求一覧
8 簡易な分類要求の履歴
9 変形行列の履歴
10 入力ベクトル列
Claims (8)
- 複数の入力ベクトルに対して、前記入力ベクトル間の距離が所定の値よりも小さい前記入力ベクトルを同一のクラスタに分類するクラスタリング方法において、
前記入力ベクトルの各成分に分類のための補正値を乗じて、前記入力ベクトル間の距離を算出すること、
を特徴とするクラスタリング方法。 - 請求項1記載のクラスタリング方法において、
同じクラスタに属させたい2つの入力ベクトル、又は、異なるクラスタに属させたい2つの入力ベクトルに対して、前記2つの入力ベクトルを基に前記入力ベクトルの各成分のいずれかに乗じる分類のための補正値を修正する、
ことを特徴とするクラスタリング方法。 - 請求項2記載のクラスタリング方法において、
同じクラスタに属させたい2つの入力ベクトル、又は、異なるクラスタに属させたい2つの入力ベクトルに対して、前記2つの入力ベクトルの各成分の中で成分間の距離が最大の成分に対して、前記入力ベクトルの各成分に乗じる分類のための補正値を修正する、
ことを特徴とするクラスタリング方法。 - 請求項1記載のクラスタリング方法において、
前記クラスタをプロトタイプベクトルとして表し、
前記入力ベクトル及び前記プロトタイプベクトルの各成分に分類のための補正値を乗じて、前記プロトタイプベクトル間の距離、又は、前記プロトタイプベクトルと前記入力ベクトルとの間の距離を算出する、
ことを特徴とするクラスタリング方法。 - 複数の入力ベクトルに対して、前記入力ベクトル間の距離が所定の値よりも小さい前記入力ベクトルを同一のクラスタに分類するクラスタリング装置において、
前記入力ベクトルの各成分に分類のための補正値を乗じて、前記入力ベクトル間の距離を算出する第一の算出手段を有することを特徴とするクラスタリング装置。 - 請求項5記載のクラスタリング装置において、
同じクラスタに属させたい2つの入力ベクトル、又は、異なるクラスタに属させたい2つの入力ベクトルに対して、前記2つの入力ベクトルを基に前記入力ベクトルの各成分のいずれかに乗じる分類のための補正値を修正する第一の補正値修正手段を有することを特徴とするクラスタリング装置。 - 請求項5記載のクラスタリング装置において、
同じクラスタに属させたい2つの入力ベクトル、又は、異なるクラスタに属させたい2つの入力ベクトルに対して、前記2つの入力ベクトルの各成分の中で成分間の距離が最大の成分に対して、前記入力ベクトルの各成分に乗じる分類のための補正値を修正する第二の補正値修正手段を有することを特徴とするクラスタリング装置。 - 請求項5記載のクラスタリング装置において、
前記クラスタをプロトタイプベクトルとして表し、前記入力ベクトル及び前記プロトタイプベクトルの各成分に分類のための補正値を乗じて、前記プロトタイプベクトル間の距離、又は、前記プロトタイプベクトルと前記入力ベクトルとの間の距離を算出する第二の算出手段を有することを特徴とするクラスタリング装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006040992A JP2007219928A (ja) | 2006-02-17 | 2006-02-17 | クラスタリング方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006040992A JP2007219928A (ja) | 2006-02-17 | 2006-02-17 | クラスタリング方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007219928A true JP2007219928A (ja) | 2007-08-30 |
Family
ID=38497148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006040992A Pending JP2007219928A (ja) | 2006-02-17 | 2006-02-17 | クラスタリング方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007219928A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5643430B2 (ja) * | 2011-06-28 | 2014-12-17 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 主観的な階層クラスタリングにおける特徴量ごとの重みを求める情報処理装置、方法、およびプログラム |
US8972407B2 (en) | 2007-05-30 | 2015-03-03 | International Business Machines Corporation | Information processing method for determining weight of each feature in subjective hierarchical clustering |
JP2017516695A (ja) * | 2014-02-21 | 2017-06-22 | シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft | 複数のプログラムファンクションを選択する方法、1つのプログラムファンクションを選択する方法、対応する装置および対応する車両、船舶または航空機 |
-
2006
- 2006-02-17 JP JP2006040992A patent/JP2007219928A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8972407B2 (en) | 2007-05-30 | 2015-03-03 | International Business Machines Corporation | Information processing method for determining weight of each feature in subjective hierarchical clustering |
JP5643430B2 (ja) * | 2011-06-28 | 2014-12-17 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 主観的な階層クラスタリングにおける特徴量ごとの重みを求める情報処理装置、方法、およびプログラム |
US8918396B2 (en) | 2011-06-28 | 2014-12-23 | International Business Machines Corporation | Information processing apparatus, method and program for determining weight of each feature in subjective hierarchical clustering |
JP2017516695A (ja) * | 2014-02-21 | 2017-06-22 | シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft | 複数のプログラムファンクションを選択する方法、1つのプログラムファンクションを選択する方法、対応する装置および対応する車両、船舶または航空機 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Feature selection for neural networks using group lasso regularization | |
Tercan et al. | Continual learning of neural networks for quality prediction in production using memory aware synapses and weight transfer | |
US20160283842A1 (en) | Neural network and method of neural network training | |
Bai et al. | Modified genetic optimization-based locally weighted learning identification modeling of ship maneuvering with full scale trial | |
US20160012330A1 (en) | Neural network and method of neural network training | |
Villmann et al. | Magnification control in self-organizing maps and neural gas | |
Guerra et al. | Multi-step ahead nonlinear identification of Lorenz’s chaotic system using radial basis neural network with learning by clustering and particle swarm optimization | |
JP6775469B2 (ja) | Odトラヒック予測装置、方法、及びプログラム | |
CN108921342B (zh) | 一种物流客户流失预测方法、介质和系统 | |
Yang et al. | A surrogate-assisted particle swarm optimization algorithm based on efficient global optimization for expensive black-box problems | |
JP2018010626A (ja) | 情報処理装置、情報処理方法 | |
Tognetti et al. | Dynamic output feedback controller design for uncertain Takagi–Sugeno fuzzy systems: A premise variable selection approach | |
JP2007219928A (ja) | クラスタリング方法および装置 | |
JP6915371B2 (ja) | 制御装置、制御プログラム、学習データ作成方法、及び学習方法 | |
CN110020214B (zh) | 一种融合知识的社交网络流式事件检测系统 | |
WO2021059527A1 (ja) | 学習装置、学習方法、及び、記録媒体 | |
EP3614314A1 (en) | Method and apparatus for generating chemical structure using neural network | |
KR102619200B1 (ko) | 인공지능 기반 환경설비 자동제어를 위한 뉴럴 네트워크 모델 생성 방법 및 컴퓨터 프로그램 | |
JP2006318232A (ja) | 解析用メッシュ修正装置 | |
CN115392594A (zh) | 一种基于神经网络和特征筛选的用电负荷模型训练方法 | |
JP5458791B2 (ja) | 連想記憶装置、連想記憶方法、及びプログラム | |
KR102527605B1 (ko) | 다중 아날로그 제어 변수 생성을 위한 다중 뉴럴 네트워크 구성 방법 | |
CN108960406B (zh) | 一种基于bfo小波神经网络的mems陀螺随机误差预测方法 | |
CN113408652A (zh) | 基于群表示特征的半监督学习图像分类方法 | |
Zhong et al. | An effective and efficient broad-based ensemble learning model for moderate-large scale image recognition |