(57)【要約】【課題】最適な成分数の混合モデルを構成できるようにする。【解決手段】入力データサンプル取得部１１は、いずれも多次元である第１のデータサンプル、および第２のデータサンプルを取得する。初期ガウス混合モデル生成部１２は、第１のデータサンプルに基づいて、混合モデル関数を生成する。ガウス混合モデル関数適合度計算部１３は、第２のデータサンプルを用いて、混合モデル関数の適合度を計算する。ガウス混合モデル更新部１５は、混合モデル関数適合度に基づいて、混合モデル関数により表現されている混合モデルに混合されているモデルの成分数を調整するように混合モデル関数を更新する。本発明は、ガウス混合モデル算出装置に適用することができる。【選択図】図１
2011034177.tif 000002
【特許請求の範囲】
【請求項１】
モデルの混合成分数を適応的に調整し、混合モデルを表現する混合モデル関数を設定する情報処理装置であって、
いずれも多次元である第１のデータサンプル、および第２のデータサンプルを取得する取得手段と、
前記第１のデータサンプルに基づいて、混合モデル関数を生成する混合モデル関数生成手段と、
前記第２のデータサンプルを用いて、前記混合モデル関数の適合度を計算する混合モデル関数適合度計算手段と、
前記混合モデル関数適合度に基づいて、前記混合モデル関数により表現されている混合モデルに混合されているモデルの成分数を調整するように混合モデル関数を更新する混合モデル関数更新手段と
を含む情報処理装置。
【請求項２】
前記混合モデル関数更新手段により更新された混合モデル関数の適合度と、更新前の混合モデル関数の適合度との比較により更新された混合モデル関数の適合度が許容範囲内であるか否かを判定する適合度判定手段をさらに含み、
前記適合度判定手段により適合度が許容範囲内ではない場合、前記混合モデル関数更新手段は、前記混合モデル関数を更新する
請求項１に記載の情報処理装置。
【請求項３】
前記混合モデル関数生成手段は、前記第１のデータサンプルに対する混合モデル関数に加えて、前記第２のデータサンプルに対する混合モデル関数を生成し、
前記混合モデル関数適合度計算手段は、前記第１のデータサンプルおよび前記第２のデータサンプルのそれぞれの混合モデル関数の尤度に基づいて、前記適合度を計算する
請求項１に記載の情報処理装置。
【請求項４】
前記混合モデル関数更新手段は、前記混合モデル関数により表現されている混合モデルに混合されているモデルのうち、固有値の最も大きなモデルを構成するデータを分割することにより、成分数を調整するように混合モデル関数を更新する
請求項１に記載の情報処理装置。
【請求項５】
前記第１のデータサンプルのうち、前記混合モデル関数により表現されている混合モデルに混合されているモデルであって、固有値の最も大きなモデルを構成する各データと、前記固有値の最も大きなモデルを構成する各データの固有ベクトルとの内積によりデータ内積を算出するデータ内積算出手段と、
前記第１のデータサンプルのうち、前記混合モデル関数により表現されている混合モデルに混合されているモデルであって、固有値の最も大きなモデルを構成する各データにより求められる平均ベクトルと、前記固有値の最も大きなモデルを構成する各データの固有ベクトルとの内積により平均内積を算出する平均内積算出手段とをさらに含み、
前記混合モデル関数更新手段は、
前記データ内積と前記平均内積との大小関係により前記データを分割することで、前記固有値の最も大きなモデルを構成する各データを２分割することで、成分数を調整するように混合モデル関数を更新する
請求項４に記載の情報処理装置。
【請求項６】
前記混合モデル関数適合度計算手段は、前記適合度を混合モデル関数を構成する成分毎のモデル関数で計算し、
前記混合モデル関数更新部は、成分ごとの適合度のうち、適合度の低い成分のモデル関数について調整する
請求項１に記載の情報処理装置。
【請求項７】
モデルの混合成分数を適応的に調整し、混合モデルを表現する混合モデル関数を設定する情報処理装置の情報処理方法であって、
いずれも多次元である第１のデータサンプル、および第２のデータサンプルを取得する取得ステップと、
前記第１のデータサンプルに基づいて、混合モデル関数を生成する混合モデル関数生成ステップと、
前記第２のデータサンプルを用いて、前記混合モデル関数の適合度を計算する混合モデル関数適合度計算ステップと、
前記混合モデル関数適合度に基づいて、前記混合モデル関数により表現されている混合モデルに混合されているモデルの成分数を調整するように混合モデル関数を更新する混合モデル関数更新ステップと
を含む情報処理方法。
【請求項８】
モデルの混合成分数を適応的に調整し、混合モデルを表現する混合モデル関数を設定する情報処理装置を制御するコンピュータに、
いずれも多次元である第１のデータサンプル、および第２のデータサンプルを取得する取得ステップと、
前記第１のデータサンプルに基づいて、混合モデル関数を生成する混合モデル関数生成ステップと、
前記第２のデータサンプルを用いて、前記混合モデル関数の適合度を計算する混合モデル関数適合度計算ステップと、
前記混合モデル関数適合度に基づいて、前記混合モデル関数により表現されている混合モデルに混合されているモデルの成分数を調整するように混合モデル関数を更新する混合モデル関数更新ステップと
を含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理方法、並びにプログラムに関し、特に、ガウス混合モデルによりデータを分類する際に設定されるガウス混合モデルに含まれるモデルの混合数を最適なものにできるようにした情報処理装置および情報処理方法、並びにプログラムに関する。
【背景技術】
【０００２】
一般に、与えられた訓練データに基づいて、数学的なモデルを構築し、新しいデータが与えられた時に、そのモデルに基づいて、その新しいデータを分類できるようにする処理を教師付き学習処理と呼んでいる。
【０００３】
この教師付き学習処理を構築するモデルは、新たなデータを分類する際に、訓練データに対して誤差が少ないことが好ましいのは当然である。そこで、例えば、モデルとしてガウス混合モデルを扱うような場合、混合するガウス関数の個数を増やせば、誤差は低減させることが可能となる。
【０００４】
ここで、この混合するモデル（ガウス関数）の個数については、訓練データに対してガウス混合モデルの混合成分数が最適値よりも少ないとフィッティング・エラーが大きくなる可能性が高くなる。逆に、混合成分数が最適値よりも多い場合、オーバフィッティングとなって新しいデータに対する汎化性能が悪くなる。
【０００５】
したがって、訓練データに対して許容範囲内のフィッティング・エラーを持ち、適当な汎化性能を備えたガウス混合モデルを構築するアルゴリズムであることが望ましい。
【０００６】
ガウス混合モデルの構築においてはEM(Expectation-Maximization)法を用いて計算する例が知られている(非特許文献１参照)。この場合、入力パラメータとして固定のガウス混合成分数を事前に与えることで、混合モデルを調整することができる。
【０００７】
また、簡易な方法として、二分木量子化法(Binary Tree quantization)がある(非特許文献２参照)。この方法では、サンプルデータに対応する１つの成分からなるガウス混合モデルが初期モデルとして与えられ、サンプルデータが複数のクラスタへと分割されることで、ガウス混合モデルが更新される。すなわち、混合モデルの成分とクラスタは１対１に対応し、最大の固有値を持つクラスタが二分されて、ガウス関数が計算され、これが所定の個数になるまで繰り返される。
【０００８】
一方で、確率モデルの良否を判定する方法に最小記述長(Minimum Description Length)が知られている(非特許文献３参照）。この計算法では、識別規則の訓練サンプル集合に対する誤識別を記述するのに必要なビット長と、モデル(識別規則)自身の複雑さを記述するビット長の和が評価されることにより、モデルの良否が判断される。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Pattern Recognition and Machine Learning (Information Science and Statistics), Springer, ISBN 0387310738
【００１０】
【非特許文献２】ORCHARD, M. T., AND BOUMAN, C. A. 1991. Color Quantizationof Images. IEEE Transactions on Signal Processing 39, 12,2677-2690.
【００１１】
【非特許文献３】J. Rissanen, Modelling by Shortest Data Description, Automatica,Vol. 14, pp.465.471, 1978
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、非特許文献１に記載の方法ではフィッティング・エラーや汎化性能を保つようにガウス関数の個数を注意深く選択しておかなければならない。また、この方法では、E(Expectation)-stepとM(Maximization)-stepという２つのステップでガウス関数の適合度が計算され、ガウス関数の更新が繰り返されてガウス混合モデルが構築される。このため、初期値の選択によって構築されるガウス混合モデルが変動したり、収束するまでに相当数の繰り返し計算が必要とされる。
【００１３】
また、非特許文献２，３に記載の方法では、モデルの評価が事後的に行われることにより、最適な成分数を知る指標となるが、入力サンプルデータだけから最適な個数を知ることはできない。
【００１４】
本発明はこのような状況に鑑みてなされたものであり、特に、２つのクラスタのサンプルデータから高精度の混合モデルを高速に構成できるようにするものである。
【課題を解決するための手段】
【００１５】
本発明の一側面の情報処理装置は、モデルの混合成分数を適応的に調整し、混合モデルを表現する混合モデル関数を設定する情報処理装置であって、いずれも多次元である第１のデータサンプル、および第２のデータサンプルを取得する取得手段と、前記第１のデータサンプルに基づいて、混合モデル関数を生成する混合モデル関数生成手段と、前記第２のデータサンプルを用いて、前記混合モデル関数の適合度を計算する混合モデル関数適合度計算手段と、前記混合モデル関数適合度に基づいて、前記混合モデル関数により表現されている混合モデルに混合されているモデルの成分数を調整するように混合モデル関数を更新する混合モデル関数更新手段とを含む。
【００１６】
前記混合モデル関数更新手段により更新された混合モデル関数の適合度と、更新前の混合モデル関数の適合度との比較により更新された混合モデル関数の適合度が許容範囲内であるか否かを判定する適合度判定手段をさらに含ませるようにすることができ、前記適合度判定手段により適合度が許容範囲内ではない場合、前記混合モデル関数更新手段は、前記混合モデル関数を更新させるようにすることができる。
【００１７】
前記混合モデル関数生成手段には、前記第１のデータサンプルに対する混合モデル関数に加えて、前記第２のデータサンプルに対する混合モデル関数を生成させ、前記混合モデル関数適合度計算手段は、前記第１のデータサンプルおよび前記第２のデータサンプルのそれぞれの混合モデル関数の尤度に基づいて、前記適合度を計算させるようにすることができる。
【００１８】
前記混合モデル関数更新手段には、前記混合モデル関数により表現されている混合モデルに混合されているモデルのうち、固有値の最も大きなモデルを構成するデータを分割することにより、成分数を調整するように混合モデル関数を更新させるようにすることができる。
【００１９】
前記第１のデータサンプルのうち、前記混合モデル関数により表現されている混合モデルに混合されているモデルであって、固有値の最も大きなモデルを構成する各データと、前記固有値の最も大きなモデルを構成する各データの固有ベクトルとの内積によりデータ内積を算出するデータ内積算出手段と、前記第１のデータサンプルのうち、前記混合モデル関数により表現されている混合モデルに混合されているモデルであって、固有値の最も大きなモデルを構成する各データにより求められる平均ベクトルと、前記固有値の最も大きなモデルを構成する各データの固有ベクトルとの内積により平均内積を算出する平均内積算出手段とをさらに含ませるようにすることができ、前記混合モデル関数更新手段には、前記データ内積と前記平均内積との大小関係により前記データを分割することで、前記固有値の最も大きなモデルを構成する各データを２分割することで、成分数を調整するように混合モデル関数を更新させるようにすることができる。
【００２０】
前記混合モデル関数適合度計算手段は、前記適合度を混合モデル関数を構成する成分毎のモデル関数で計算させ、前記混合モデル関数更新部には、成分ごとの適合度のうち、適合度の低い成分のモデル関数について調整させるようにすることができる。
【００２１】
本発明の一側面の情報処理方法は、モデルの混合成分数を適応的に調整し、混合モデルを表現する混合モデル関数を設定する情報処理装置の情報処理方法であって、いずれも多次元である第１のデータサンプル、および第２のデータサンプルを取得する取得ステップと、前記第１のデータサンプルに基づいて、混合モデル関数を生成する混合モデル関数生成ステップと、前記第２のデータサンプルを用いて、前記混合モデル関数の適合度を計算する混合モデル関数適合度計算ステップと、前記混合モデル関数適合度に基づいて、前記混合モデル関数により表現されている混合モデルに混合されているモデルの成分数を調整するように混合モデル関数を更新する混合モデル関数更新ステップとを含む。
【００２２】
本発明の一側面のプログラムは、モデルの混合成分数を適応的に調整し、混合モデルを表現する混合モデル関数を設定する情報処理装置を制御するコンピュータに、いずれも多次元である第１のデータサンプル、および第２のデータサンプルを取得する取得ステップと、前記第１のデータサンプルに基づいて、混合モデル関数を生成する混合モデル関数生成ステップと、前記第２のデータサンプルを用いて、前記混合モデル関数の適合度を計算する混合モデル関数適合度計算ステップと、前記混合モデル関数適合度に基づいて、前記混合モデル関数により表現されている混合モデルに混合されているモデルの成分数を調整するように混合モデル関数を更新する混合モデル関数更新ステップとを含む処理をコンピュータに実行させる。
【００２３】
本発明の一側面においては、いずれも多次元である第１のデータサンプル、および第２のデータサンプルが取得され、前記第１のデータサンプルに基づいて、混合モデル関数が生成され、前記第２のデータサンプルが用いられて、前記混合モデル関数の適合度が計算され、前記混合モデル関数適合度に基づいて、前記混合モデル関数により表現されている混合モデルに混合されているモデルの成分数が調整されるように混合モデル関数が更新される。
【発明の効果】
【００２４】
本発明によれば、２つのクラスタのサンプルデータから最適な成分数の混合モデルを構成することが可能となる。
【図面の簡単な説明】
【００２５】
【図１】本発明を適用したガウス混合モデル算出装置の一実施の形態の構成例を示す図である。
【図２】図１のガウス混合モデル更新部の構成例を示す図である。
【図３】ガウス混合モデル生成処理を説明するフローチャートである。
【図４】ガウス混合モデル更新処理を説明するフローチャートである。
【図５】ガウス混合モデル更新処理を説明する図である。
【図６】汎用のパーソナルコンピュータの構成例を示す図である。
【発明を実施するための最良の形態】
【００２６】
［ガウス混合モデル算出装置の構成例］
図１は本発明を適用した一実施の形態の構成例を示すガウス混合モデル算出装置である。
図１のガウス混合モデル算出装置１は、２つのクラスの入力データサンプルに対して、最適な混合成分数（モデル数）に調整して、ガウス混合モデルを表現する関数を生成するものである。ガウス混合モデルを表現する関数は、混合成分に対応するモデル毎に設定されるガウス関数が、モデル数分だけ線形結合されることにより構成されるものである。
【００２７】
そこで、以降においては、ガウス混合モデル関数については、単にガウス混合モデルとも称するものとし、混合成分である各モデルを表現するガウス関数についても単にモデルとも称するものとする。したがって、ガウス混合モデルが生成されるとは、ガウス混合モデル関数を特定するパラメータが設定され、ガウス混合モデル関数が確定されることである。また、このガウス混合モデル関数を特定するパラメータは、例えば、共分散行列、平均ベクトル、固有値、および固有ベクトルであり、以降において、これらをガウスパラメータと称するものとする。
【００２８】
ガウス混合モデル算出装置１は、入力データサンプル取得部１１、初期ガウス混合モデル生成部１２、ガウス混合モデル適合度計算部１３、適合度判定部１４、ガウス混合モデル更新部１５、および出力部１６を備えている。
【００２９】
入力データサンプル取得部１１は、求めたい混合モデルの入力データとなる第１のデータサンプルとそれとは別のクラスに分類したいデータとなる第２のデータサンプルを取得し、初期ガウス混合モデル生成部１２に供給する。この第１のデータサンプル、および第２のデータサンプルとしては、例えば、オブジェクト画像（前景画像）および背景画像からなるデータサンプルとすることができる。尚、以降においては、第１のデータサンプルとしてオブジェクト画像を、第２のデータサンプルとして背景画像をそれぞれ用いた場合における処理について説明していくが、当然のことながら、それ以外のデータであってもよいものである。
【００３０】
初期ガウス混合モデル生成部１２は、平均ベクトル算出部２１、および共分散行列生成部２２を備えている。初期ガウス混合モデル生成部１２は、平均ベクトル算出部２１を制御して、入力データサンプル取得部１１より供給されてきた第１のデータサンプルを１のクラスタとして、平均ベクトルを算出させる。また、初期ガウス混合モデル生成部１２は、共分散行列生成部２２を制御して、入力データサンプル取得部１１より供給されてきた第１のデータサンプルを１のクラスタとして、共分散行列を算出させる。そして、初期ガウス混合モデル生成部１２は、算出された平均ベクトルおよび共分散行列に基づいて、第１のデータサンプルの初期的なガウス混合モデルｐ（ｘ）を生成する。さらに、初期ガウス混合モデル生成部１２は、生成したガウス混合モデルｐ（ｘ）、第１のデータサンプル、および第２のデータサンプル、並びにクラスタ群の情報をガウス混合モデル適合度計算部１３に供給する。
【００３１】
尚、以降において、このガウス混合モデルの関数ｐ（ｘ）を単にガウス混合モデルｐ（ｘ）とも称するものとする。
【００３２】
ガウス混合モデル適合度計算部１３は、初期ガウス混合モデル生成部１２またはガウス混合モデル更新部１５より供給されてきたガウス混合モデルの適合度を計算して、その適合度と共に第１および第２のデータサンプルを適合度判定部１４へ供給する。このとき、ガウス混合モデル適合度計算部１３は、第１のデータサンプル、および第２のデータサンプル、並びにクラスタ群の情報も合わせて適合度判定部１４に供給する。
【００３３】
適合度判定部１４は、ガウス混合モデル適合度計算部１３より供給された今現在の適合度ｅｔを記憶すると共に、ガウス混合モデルが更新される前の適合度ｅ（ｔ−１）との差分絶対値を求め閾値と比較して、ガウス混合モデルの更新の要否を判定する。そして、ガウス混合モデルの更新前後で、適合度ｅｔに変化がない場合、適合度判定部１４は、そのときのガウス混合モデルｐ（ｘ）を出力部１６に出力する。また、ガウス混合モデルの更新前後で適合度ｅｔに変化があり、ガウス混合モデルｐ（ｘ）に更新が必要な場合、適合度判定部１４は、ガウス混合モデル更新部１５にガウス混合モデルｐ（ｘ）を供給すると共に、ガウス混合モデルｐ（ｘ）の更新を指示する。このとき、適合度判定部１４は、第１のデータサンプル、および第２のデータサンプル、並びにクラスタ群の情報も合わせてガウス混合モデル更新部１５に供給する。
【００３４】
ガウス混合モデル更新部１５は、適合度判定部１４より供給されたガウス混合モデルｐ（ｘ）およびクラスタ群のそれぞれから、特定の１つのモデルに対応するガウス関数、およびクラスタを選択する。さらに、ガウス混合モデル更新部１５は、選択したガウス関数、およびクラスタをそれぞれ２つに分離し、選択したガウス関数、およびクラスタと置換することで、ガウス混合モデルを更新する。そして、ガウス混合モデル更新部１５は、更新されたガウス混合モデルとクラスタ群をガウス混合モデル適合度計算部１３に提供する。
【００３５】
より詳細には、まず、ガウス混合モデル更新部１５は、所定の条件でモデルを構成するガウス関数Ｎｍ（ｘ）の１つを選択し、そのガウス関数Ｎｍ（ｘ）に対応するクラスタを２分割する。ここで、ｍは、選択されたモデルを識別する係数である。さらに、ガウス混合モデル更新部１５は、２分割されたクラスタのそれぞれについてガウス関数Ｎｍ１（ｘ），Ｎｍ２（ｘ）を新たに求め、選択されたガウス関数を２つのガウス関数で置換することで、ガウス混合モデルｐ（ｔ＋１）（ｘ）を更新する。そして、ガウス混合モデル更新部１５は、このときガウス関数に関するクラスタも２分割して更新する。ここで、ｍ１，ｍ２は、それぞれモデルｍで表現されるクラスタが２分割されたときの、それぞれのクラスタを識別する係数である。
【００３６】
［ガウス混合モデル更新部について］
次に、図２を参照して、ガウス混合モデル更新部１５の構成例について説明する。
【００３７】
ガウス混合モデル更新部１５は、固有値固有ベクトル生成部３１、分割クラスタ選択部３２、クラスタ分割部３３、およびガウスパラメータ計算部３４を備えている。
【００３８】
固有値固有ベクトル生成部３１は、共分散行列生成部４１、固有値生成部４２、固有ベクトル生成部４３、および平均ベクトル生成部４４を備えている。
【００３９】
固有値固有ベクトル生成部３１は、共分散行列生成部４１を制御して、適合度判定部１４より供給されたクラスタ単位で共分散行列を生成させる。固有値固有ベクトル生成部３１は、固有値生成部４２、および固有ベクトル生成部４３を制御して、クラスタ毎の共分散行列より固有値、および固有ベクトルを生成させる。また、固有値固有ベクトル生成部３１は、平均ベクトル生成部４４を制御して、第１のデータサンプルについて、クラスタ毎の平均ベクトルを生成させる。
【００４０】
固有値固有ベクトル生成部３１は、クラスタ毎に共分散行列、平均ベクトル、固有値、および固有ベクトルを計算して分割クラスタ選択部３２へ供給する。このとき、固有値固有ベクトル生成部３１は、多次元の場合、Ｄ次元の数だけ固有値が求まるので、それらのうち最大のものを選択して各クラスタの固有値とする。
【００４１】
分割クラスタ選択部３２は、固有値固有ベクトル生成部３１から供給された固有値のうち最大値を持つものを選択し、その固有値に対応するクラスタを選択して、クラスタとそのクラスタに対応する固有ベクトルおよび平均ベクトルをクラスタ分割部３３に提供する。
【００４２】
クラスタ分割部３３は、データ内積演算部５１、平均内積算出部５２、および内積比較部５３を備えている。クラスタ分割部３３は、分割クラスタ選択部３２から提供されたクラスタ、平均ベクトル、および固有ベクトルから、クラスタを構成するサンプルデータを２分割して２つのクラスタへ分離し、ガウスパラメータ計算部３４に出力する。
【００４３】
ガウスパラメータ計算部３４は、クラスタ分割部３３から供給された２つのクラスタのそれぞれのガウスパラメータ（μ、Σ）と重みＧを計算して、更新されたガウス混合モデルとクラスタ群を出力する。ここで、μは平均ベクトルであり、Σは共分散行列である。重みＧは、例えば、クラスタ毎のサンプルデータ数の全データサンプル数に対する割合を計算して用いる。
【００４４】
出力部１６は、適合度判定部１４より供給されたガウス混合モデルを処理結果として出力する。
【００４５】
［ガウス混合モデル生成処理について］
次に、図３のフローチャートを参照して、ガウス混合モデル生成処理について説明する。
【００４６】
ステップＳ１において、入力データサンプル取得部１１は、第１のデータサンプルとしてオブジェクトの画像のサンプルデータを取得し、第２のデータサンプルとして、オブジェクト以外のものからなる画像、すなわち、背景画像のサンプルデータを取得する。そして、入力データサンプル取得部１１は、取得したオブジェクトの画像のサンプルデータと、背景画像のサンプルデータとを初期ガウス混合モデル生成部１２に供給する。
【００４７】
ステップＳ２において、初期ガウス混合モデル生成部１２は、平均ベクトル算出部２１を制御して、入力データサンプル取得部１１より供給されてきた第１のデータサンプルを１のクラスタとして、平均ベクトルを算出させる。また、初期ガウス混合モデル生成部１２は、共分散行列生成部２２を制御して、入力データサンプル取得部１１より供給されてきた第１のデータサンプルを１のクラスタとして、共分散行列を算出させる。そして、初期ガウス混合モデル生成部１２は、算出された平均ベクトルおよび共分散行列に基づいて、第１のデータサンプルのガウス混合モデルｐ（ｘ）を生成する。
【００４８】
ここで、ガウス混合モデルの関数ｐ（ｘ）は、以下の式（１）で示されるように、Ｄ次元のデータｘが与えられたときに、その尤度を表す関数である。より具体的には、ガウス混合モデルの関数ｐ（ｘ）は、Ｋ個のＤ次元ガウス関数Ｎ（ｘ｜μk，Σｋ）（係数ｋ：ｋ＝１，２，・・・Ｋ）に重みＧｋを乗じたものの総和である。
【００４９】
【数１】
2011034177.tif 000003
【００５０】
ここで、ガウス関数Ｎ（ｘ）は、以下の式（２）で示されるように、係数ｋで分類されるＤ次元のデータxが与えられたときに、平均ベクトルμｋと、その共分散行列Σｋの逆行列Σｋ-1と共分散行列Σｋの行列式｜Σｋ｜を使って、係数ｋで分類されるＤ次元のデータxのガウスモデルの尤度を表す関数である。
【００５１】
【数２】
2011034177.tif 000004
【００５２】
ステップＳ３において、ガウス混合モデル適合度計算部１３は、図示せぬ適合度繰り返しカウンタｔを初期化する。
【００５３】
ステップＳ４において、ガウス混合モデル適合度計算部１３は、初期ガウス混合モデル生成部１２、またはガウス混合モデル更新部１５より供給されてきたガウス混合モデルｐ（ｘ）に、第１のサンプルデータを与えたときの尤度と、第２のサンプルデータを与えたときの尤度とから適合度ｅｔを計算して、その適合度ｅｔを適合度判定部１４へ供給する。より詳細には、ガウス混合モデル適合度計算部１３は、以下の式（３）を用いて、適合度ｅｔを求める。
【００５４】
【数３】
2011034177.tif 000005
【００５５】
すなわち、適合度ｅｔは、第１のデータサンプルｘｉでガウス混合モデルを適用したときの第１の尤度の合計値と、第２のデータサンプルｙｊでガウス混合モデルを適用したときの第２の尤度の合計値との割合からなる指標である。したがって、この適合度ｅｔは、どの程度正しくデータサンプルを分類できるかを示す指標である。ここで、カウンタｔはガウス混合モデルｐ（ｘ）の更新を繰り返した回数を示すインデックスである。
【００５６】
ステップＳ５において、適合度判定部１４は、今現在の適合度と直前の適合度との差分絶対値を求め、ステップＳ６において、所定の閾値との比較により適合度が収束し、ガウス混合モデルｐ（ｘ）の更新が必要ないか否かを判定する。
【００５７】
より詳細には、適合度判定部１４は、式（４）で示されるように、現在のガウス混合モデルｐｔ（ｘ）の適合度ｅｔと直前の適合度ｅ(ｔ-１)との変化量（｜ｅｔ−ｅ(ｔ-１)｜）が、所定の閾値より小さいか否かにより、十分にガウス混合モデルが収束したか否かを判定する。
【００５８】
【数４】
2011034177.tif 000006
【００５９】
尚、最初の処理においては、直前の適合度が存在しないため、計算の便宜上、例えば、適合度の最低値などを直前の適合度として設定する。
【００６０】
ステップＳ６において、変化量が、所定の閾値よりも小さくない場合、処理は、ステップＳ７に進む。ステップＳ７において、適合度判定部１４は、ガウス混合モデルｐｔ（ｘ）と共に、ガウス混合モデル更新部１５に対してガウス混合モデルｐｔ（ｘ）をガウス混合モデルｐ（ｔ＋１）（ｘ）に更新させる。このとき、適合度判定部１４は、ガウス混合モデルｐｔ（ｘ）を記憶する。これに応じて、ガウス混合モデル更新部１５は、ガウス混合モデル更新処理を実行して、現状の、すなわち、カウンタｔに対応するｔ回目のガウス混合モデルｐｔ（ｘ）を更新して、ガウス混合モデルｐ（ｔ＋１）（ｘ）とする。
【００６１】
［ガウス混合モデル更新処理について］
ここで、図４のフローチャートを参照して、ガウス混合モデル更新処理について説明する。
【００６２】
ステップＳ２１において、固有値固有ベクトル生成部３１は、共分散行列生成部４１を制御して、全てのクラスタについて共分散行列を生成させる。
【００６３】
ステップＳ２２において、固有値固有ベクトル生成部３１は、固有値生成部４２を制御して、クラスタ毎に共分散行列から固有値を生成させる。さらに、固有値固有ベクトル生成部３１は、固有ベクトル生成部４３を制御して、生成された固有値に基づいて、クラスタ毎に固有ベクトルを生成させる。
【００６４】
ステップＳ２３において、固有値固有ベクトル生成部３１は、平均ベクトル生成部４４を制御して、クラスタ毎に共分散行列の平均ベクトルを生成させる。
【００６５】
ステップＳ２４において、固有値固有ベクトル生成部３１は、クラスタ毎に求められた共分散行列、固有値、固有ベクトル、および平均ベクトルを分割クラスタ選択部３２に供給する。分割クラスタ選択部３２は、クラスタ毎に求められた共分散行列、固有値、固有ベクトル、および平均ベクトルのうち、固有値が最も大きなクラスタの共分散行列、固有値、固有ベクトル、および平均ベクトルを選択する。そして、固有値固有ベクトル生成部３１は、選択した固有値が最も大きなクラスタの共分散行列、固有値、固有ベクトル、および平均ベクトルを抽出し、選択されたクラスタのサンプルデータと共に分割クラスタ選択部３２に供給する。
【００６６】
ステップＳ２５において、クラスタ分割部３３は、平均内積算出部５２を制御して、平均ベクトルμと、固有ベクトルｅｉｇの内積である平均内積ｅｉｇ・μを算出させる。この平均ベクトルμ、固有ベクトルｅｉｇ、および平均内積ｅｉｇ・μは、図５の左上部で示されるような関係となる。すなわち、平均内積ｅｉｇ・μは、点線の楕円で示される、固有値が最大であるとして選択されたクラスタの中の平均ベクトルμの、固有ベクトルｅｉｇに対して平行移動された点線方向の成分が、固有ベクトルに対して何倍であるのかを示す。
【００６７】
ステップＳ２６において、クラスタ分割部３３は、分割クラスタ選択部３２より供給されてきたクラスタのサンプルデータのうち、未処理のサンプルデータを処理対象のデータｘｉに設定する。
【００６８】
ステップＳ２７において、クラスタ分割部３３は、データ内積算出部５１を制御して、データｘｉと、固有ベクトルｅｉｇの内積であるデータ内積ｅｉｇ・ｘｉを算出させる。このデータｘｉ、固有ベクトルｅｉｇ、およびデータ内積ｅｉｇ・ｘｉは、図５の左上部で示されるような関係となる。すなわち、データ内積ｅｉｇ・ｘｉは、点線の楕円で示される、固有値が最大であるとして選択されたクラスタの中のデータｘｉで示されるベクトルの、固有ベクトルｅｉｇに対して平行移動された点線方向の成分が、固有ベクトルに対して何倍であるのかを示す。
【００６９】
ステップＳ２８において、クラスタ分割部３３は、内積比較部５３を制御して、データ内積と、平均内積との大小関係を以下の式（５）を演算することにより比較する。
【００７０】
【数５】
2011034177.tif 000007
【００７１】
ステップＳ２９において、クラスタ分割部３３は、内積比較部５３の比較結果に基づいて、データ内積が平均内積よりも大きいか否かを判定し、例えば、データ内積が平均内積よりも大きい場合、ステップＳ３０において、そのデータｘｉを第１のクラスタに分類し、処理は、ステップＳ３２に進む。
【００７２】
一方、ステップＳ２９において、データ内積が平均内積よりも大きくない場合、ステップＳ３１において、クラスタ分割部３３は、そのデータｘｉを第２のクラスタに分類する。
【００７３】
ステップＳ３２において、クラスタ分割部３３は、未処理のデータが存在するか否かを判定し、未処理のデータが存在すると判定された場合、処理は、ステップＳ２６に戻る。すなわち、未処理のデータがないと判定されるまで、ステップＳ２６乃至Ｓ３２の処理が繰り返される。そして、ステップＳ３２において、未処理のデータがないと判定された場合、処理は、ステップＳ３３に進む。
【００７４】
概念としては、図５の左上部で示されるように、クラスタを構成するサンプルデータのうち平均ベクトルμの終点位置を通り固有ベクトルｅｉｇと直交する直線Ｌよりも原点に近い位置のデータ内積は、平均内積の方がよりも小さく、データは第２のクラスタとなる。逆に、直線Ｌよりも原点から遠いサンプルデータについては、データ内積が平均内積よりも大きくなるので、第１クラスタとなる。この結果、選択されたクラスタは、図５の右下部で示されるように、直線Ｌにより分割されて、それぞれ原点位置より遠い範囲のデータが第１のクラスタに分割され、残りの原点に近い範囲が第２のクラスタに分割される。
【００７５】
ステップＳ３３において、クラスタ分割部３３は、求められた第１のクラスタと第２のクラスタとをガウスパラメータ計算部３４に供給する。
【００７６】
ステップＳ３４において、ガウスパラメータ計算部３４は、第１のクラスタと第２のクラスタとのサンプルデータに基づいて、ガウス関数を生成し、それらのガウスパラメータを計算する。
【００７７】
ステップＳ３５において、ガウスパラメータ計算部３４は、求められた２つのクラスタのガウスパラメータによりガウス混合モデルを更新する。すなわち、ガウスパラメータ計算部３４は、固有値が最大となるクラスタとして選択されたクラスタに代えて、そのクラスタが２分割された２つのクラスタのガウスモデルを混合し、ガウス混合モデルを更新する。
【００７８】
ステップＳ３６において、ガウスパラメータ計算部３４は、更新されたガウス混合モデルをガウス混合モデル適合度計算部１３に供給する。
【００７９】
すなわち、ガウス混合モデル更新処理においては、クラスタ単位で固有値が求められ、最大値となるクラスタについて、サンプルデータが２分割され、さらに、２分割されたクラスタのそれぞれのガウスモデルにより、ガウス混合モデルが更新される。各クラスタの固有値は、クラスタにおけるデータのばらつきの大きさを示し、固有ベクトルは、ばらつきの方向を示すものである。従って、固有値が最も大きなクラスタを、固有ベクトルの方向に対して２分割して新たなクラスタを設定し、それぞれのガウスモデルを計算し、置換することで、ガウス混合モデルを構成する要素となるガウスモデルを最適化していくことができる。
【００８０】
ここで、図３のフローチャートに戻る。
【００８１】
ステップＳ７において、ガウス混合モデル更新処理が実行されると、ステップＳ８において、ガウス混合モデル適合度計算部１３は、図示せぬ適合度繰り返しカウンタｔを１インクリメントし、処理は、ステップＳ４に戻る。
【００８２】
ステップＳ４において、ガウス混合モデル適合度計算部１３は、更新されたガウス混合モデルｐ（ｘ）に、第１のサンプルデータを与えたときの尤度と、第２のサンプルデータを与えたときの尤度とから上述した式（３）を計算することで適合度ｅ（ｔ＋１）を計算して、その適合度ｅ（ｔ＋１）を適合度判定部１４へ供給する。
【００８３】
ステップＳ５において、適合度判定部１４は、今現在の適合度ｅ（ｔ＋１）と直前の適合度ｅｔとの差分絶対値を求め、所定の閾値との比較により適合度が収束し、ガウス混合モデルｐ（ｘ）の更新が必要ないか否かを判定する。今現在の適合度と直前の適合度との差分が所定の閾値よりも小さくない場合、差分が所定の閾値よりも小さくなるまで、ステップＳ４乃至Ｓ８の処理が繰り返される。ステップＳ４乃至Ｓ８の処理が繰り返される度に、すなわち、更新が繰り返される度に、クラスタが１個増えることになるので、適合度は、クラスタが１個増える毎に求められることになる。そして、ステップＳ６において、今現在の適合度と直前の適合度との差分が所定の閾値よりも小さくなり、これ以上多くの成分数とする必要がない、すなわち、これ以上多くのクラスタからなるガウス混合モデルとする必要がない場合、処理は、ステップＳ９に進む。
【００８４】
ステップＳ９において、適合度判定部１４は、そのときのガウス混合モデルを構成する関数を出力部１６に出力する。出力部１６は、ガウス混合モデルを構成する関数を出力する。
【００８５】
以上の処理により、固有値が大きなクラスタについては順次クラスタを分割してガウス関数の個数を増やしながらガウス混合モデルを設定できるので、フィッティングエラーを防止できるようにすることが可能となる。
【００８６】
また、第１のサンプルデータと、それ以外の第２のサンプルデータとのそれぞれの尤度からガウス混合モデルの適合度を設定し、ガウス関数を増やすごとに、直前の適合度との差分絶対値から適合度の変化が小さくなるときガウス関数の付加を停止させるようにした。この結果、過剰にガウス関数を増やさずに、すなわち、汎化性能をある程度維持しつつ、混合性分数を増やしていくことが可能となる。
【００８７】
いずれにおいても、結果として、最適なガウス混合モデルを高速に、設定することが可能となる。
【００８８】
尚、以上においては、適合度を直前のものと比較して収束したか否かを判定する構成となっていたが、適合度は程度の値となればよいものであるので、今現在の適合度そのものが所定の閾値よりも小さいか否かにより判定するようにしてもよい。
【００８９】
また、ガウスモデルの成分数、すなわち、クラスタ数に制限を設けることが目的であるので、適合度の判定とは別に、成分数の上限値や下限値を与え、ガウス混合モデルの更新の要否を判定するようにしても良い。
【００９０】
さらに、以上においては、２つのクラスの問題を例として説明してきたが、それ以上の多クラスのデータを受信する方法にも適用することができる。すなわち、入力データサンプル取得部１１は多クラスの入力データサンプルを受信して、第１のデータサンプルとそれ以外のデータサンプルを第２のデータサンプルとして同じ手順で処理するようにしてもよいものである。
【００９１】
また、本実施例では２クラスのデータサンプルから１つのガウス混合モデルを生成する方法を提示しているが、２つの混合モデルを同時に求めても良い。
【００９２】
すなわち、第１のデータサンプルと第２のデータサンプルを入れ替えるだけで、同じ手順で２つの混合モデルを求めることが可能である。
【００９３】
さらに、２つの混合モデルから計算する２つの適合度の組を適合度判定部１４でバッファしておいて、ガウス混合モデルの更新の要否を判定しても良い。この場合、式（３）で表される適合度の値が大きい方の混合モデルを選択し、その１つの混合モデルだけを更新するという処理にしてもよい。また、それぞれの適合度から、ガウス混合モデルの更新の要否を判断するのではなく、２つの適合度の合計と閾値との比較から、一括してガウス混合モデルの更新の要否を判定するようにしてもよい。
【００９４】
また、本実施例では、ガウス混合モデル更新部１５は、いわゆる二分木量子化法でガウス混合モデルを更新しているが、これを上述したEM法に基づいた手法により更新するようにしてもよい。すなわち、この場合、収束までの時間がかかるが、成分数を増加させて、ガウス混合モデルを計算することで、より精度の高いガウス混合モデルを設定することができる。
【００９５】
さらに、以上においては、固有値が最大となるクラスタを分割すべきクラスタに選択するようにしてきたが、ガウス混合モデルの成分であるガウス関数ごとの適合度によって分割するべきクラスタを選択するようにしてもよい。すなわち、ガウス混合モデルのガウス関数ごとに適合度を求めておいて、より適合度の悪いガウス関数を優先して分割および更新することでガウス混合モデルの精度を上げることができる。この手法により、多少入力データサンプルの分布からずれたガウス混合モデルができたとしても、分離性能をよりよく向上させることが可能となる。
【００９６】
また、入力データサンプル取得部１１において、受信した２クラスのデータサンプルを副標本してガウス混合モデルの計算を行うようにしてもよい。すなわち、データサンプルを副標本することで処理するデータ量が減り処理の高速化や省メモリ化を実現することができる。
【００９７】
さらに、式（３）で示されるような適合度計算ではなく、最小記述長(MDL)(非特許文献３参照)やAIC(Akaike's Information Criteria)( Akaike, Hirotugu (1974). "A new look at the statistical model identification". IEEE Transactions on Automatic Control 19 (6): 716?723. doi:10.1109/TAC.1974.1100705. MR0423716参照)]といったよく知られた評価方法で適合度を計算しても良く、さらに判定精度を向上させることが可能となる。
【００９８】
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【００９９】
図６は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)１００１を内蔵している。CPU１００１にはバス１００４を介して、入出力インタフェース１００５が接続されている。バス１００４には、ROM(Read Only Memory)１００２およびRAM(Random Access Memory)１００３が接続されている。
【０１００】
入出力インタフェース１００５には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部１００６、処理操作画面や処理結果の画像を表示デバイスに出力する出力部１００７、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部１００８、LAN（Local Area Network）アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部１００９が接続されている。また、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ(Mini Disc)を含む）、もしくは半導体メモリなどのリムーバブルメディア１０１１に対してデータを読み書きするドライブ１０１０が接続されている。
【０１０１】
CPU１００１は、ROM１００２に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア１０１１から読み出されて記憶部１００８にインストールされ、記憶部１００８からRAM１００３にロードされたプログラムに従って各種の処理を実行する。RAM１００３にはまた、CPU１００１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１０２】
尚、本明細書において、処理工程を記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【符号の説明】
【０１０３】
１１  入力データサンプル取得部，  １２  初期ガウス混合モデル生成部，  １３  ガウス混合モデル適合度計算部，  １４  適合度判定部，  １５  ガウス混合モデル更新部，  １６  出力部，  ２１  平均ベクトル算出部，  ２２  共分散行列生成部，  ３１  固有値固有ベクトル生成部，  ３２  分割クラスタ選択部，  ３３  クラスタ分割部，  ３４  ガウスパラメータ計算部３４
【図１】
2011034177.tif 000008
【図２】
2011034177.tif 000009
【図３】
2011034177.tif 000010
【図４】
2011034177.tif 000011
【図５】
2011034177.tif 000012
【図６】
2011034177.tif 000013