説明

データ変換方法及び装置、パターン識別方法及び装置、プログラム

【課題】 非線形な分布のパターン集合に対する高効率なデータ表現を実現し、種々のパターンの変動にロバストなパターンの識別を実現する。
【解決手段】 複数の学習データを入力し、少なくとも1つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析し、分析結果に基づいて前記学習カーネルパラメータを更新し、更新後の前記学習カーネルパラメータにより定まる高次特徴空間における線形部分空間を決定する。入力データに対して少なくとも1つの入力カーネルパラメータを設定し、前記入力カーネルパラメータと更新後の前記学習カーネルパラメータとに基づいて、前記入力データを前記線形部分空間におけるデータ表現に変換する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、非線形な分布のパターン集合に対する高効率なデータ表現を生成するデータ変換方法に関するものである。また、識別すべきパターンに対する、データ取得環境の差異や、データ取得時に付加されるノイズに起因する、種々のパターンの変動にロバストなパターン識別方法に関するものである。
【背景技術】
【0002】
非線形な分布のパターン集合に対応するため、カーネル法と呼ばれる手法を用いて、線形の手法を非線形に拡張する手法が多く提案されている。例えば、非特許文献1のカーネル非線形主成分分析(KPCA)では、線形の主成分分析(PCA)を、カーネル法を用いて拡張し、非線形なPCAを実現している。
【0003】
また、線形のパターン識別方法である非特許文献2のOptimal Hyperplane Classifier(最適超平面識別法)を、カーネル法を用いて非線形への拡張を可能にすることが提案されている。例えば、非特許文献3のサポートベクターマシン(SVM)や、非特許文型1の手法を用いて、非特許文献4の部分空間法を非線形に拡張した、特許文献1のカーネル非線形部分空間法なども提案されている。
【0004】
一般的に、非線形な分布のパターン集合に対応するためには、パターン集合を非線形な変換φにより高次特徴空間に写像し、写像後の高次特徴空間において線形の手法を適用する。カーネル法では、この高次特徴空間における演算、具体的には2つの写像されたパターンφ(x)、φ(y)の内積φ(x)φ(y)を、カーネル関数K(x、y)を用いて、φ(x)φ(y)=K(x、y)とする。これにより、場合によっては演算不可能である非線形な変換を陰に実現し、高次特徴空間において線形の手法が適用可能となる。
【0005】
カーネル関数としては、ガウシアンカーネルK(x、y)=exp(−|x−y|/2σ)や、多項式カーネルK(x、y)=(1−xy)といったものが用いられることが多い。これに対し、非特許文献5では、カーネル関数にコンフォーマル変換を加えることで、SVMの性能を向上させる手法を提案している。
【0006】
また、上記従来のカーネル法では、カーネル関数が正定値対称であるものに限られていた。これに対し、非特許文献6の可変カーネル関数を用いたSVMや、非特許文献7の非対称カーネルSVMでは、カーネル法の理論を拡張している。すなわち、カーネル関数のカーネルパラメータ(例えば上記ガウシアンカーネルのσ)に自由度を持たせることを可能にし、性能を向上させる手法が提案されている。
【0007】
このように、線形の手法を非線形に拡張するカーネル法において、カーネル関数を工夫することで、性能を向上させる手法が多く提案されている。特に、非特許文献6、7のように、カーネル関数の性質を決定付けるカーネルパラメータに自由度を持たせるといった手法は、カーネル法の表現力を増大させることができ、大きく性能を向上させられる可能性がある。この自由度を持ったカーネルパラメータの設定は、性能の向上に大きく寄与するが、この設定方法に明確な基準は無く、現状では何らかのヒューリスティックな手法で設定している。
【特許文献1】特開2000−90274号公報
【非特許文献1】Bernhard Scholkopf, Alexander Smola, Klaus-Robert Muller, “Nonlinear Component Analysis as a Kernel Eigenvalue Problem”, Neural Computation, Vol. 10, pp. 1299-1319, 1998
【非特許文献2】Vladimir N. Vapnik, A. Lerner, “Pattern Recognition using Generalized Portrait Method”, Automation and Remote Control, 24, pp. 774-780, 1963
【非特許文献3】Vladimir N. Vapnik, “The Nature of Statistical Learning Theory”, Springer Verlag, August 1995
【非特許文献4】S. Watanabe, N. Pakvasa, “Subspace Method of Pattern Recognition”, Proceedings of 1st International Joint Conference of Pattern Recognition, pp. 25-32, 1973
【非特許文献5】S. Amari, S. Wu, “Improving Support Vector Machine Classifiers by Modifying Kernel Function”, Neural Networks, Vol. 12, pp783-789, July 1999
【非特許文献6】津田 宏治, “可変カーネル関数を用いたSupport Vector Machine”, 信学技法 PRMU 98-175, pp. 195-202, December 1998
【非特許文献7】柳 森, 山下 幸彦, “カーネル理論の拡張と非対称カーネルサポートベクターマシン”, 第7回情報論的学習理論ワークショップ, S18, November 2004
【非特許文献8】G. Baudat, F. Anouar, “Generalized Discriminant Analysis Using Kernel Approach”, Neural Computation, Vol. 12, No. 10, pp2387-2404, October 2000
【発明の開示】
【発明が解決しようとする課題】
【0008】
本発明は、このような点に鑑みなされたものであり、カーネルパラメータに自由度を持たせたカーネル法において、カーネルパラメータを設定する手法を提供することを目的とする。
【0009】
また、それを用いた、非線形な分布のパターン集合に対する高効率なデータ表現へのデータ変換方法、及び、種々のパターンの変動にロバストなパターンの識別方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明によれば、データ変換方法に、複数の学習データを入力する学習データ入力工程と、少なくとも1つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する分析工程と、前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する更新工程と、更新後の前記学習カーネルパラメータにより定まる高次特徴空間における線形部分空間を決定する決定工程と、入力データを入力する入力データ入力工程と、前記入力データに対して少なくとも1つの入力カーネルパラメータを設定する設定工程と、前記入力カーネルパラメータと更新後の前記学習カーネルパラメータとに基づいて、前記入力データを前記線形部分空間におけるデータ表現に変換する変換工程とを備える。
【0011】
また、本発明の他の態様によれば、データ変換方法に、複数の学習データを入力する学習データ入力工程と、少なくとも1つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する分析工程と、前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する更新工程と、更新後の前記学習カーネルパラメータにより定まる高次特徴空間おいて、前記高次特徴空間に写像した前記学習データの少なくとも1つの重み付き線形結合ベクトルを基底ベクトルとする線形部分空間へ、データ集合を変換する変換工程とをとを備える。
【0012】
また、本発明の他の態様によれば、データ変換方法に、複数の学習データを入力する学習データ入力工程と、少なくとも1つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する分析工程と、前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する更新工程と、前記高次特徴空間における前記線形部分空間を張る少なくとも1つの基底ベクトルを、前記更新後のカーネルパラメータにより定まる高次特徴空間おける、前記高次特徴空間に写像した前記学習データの重み付き線形結合ベクトルとして求める工程と、前記学習データを前記線形部分空間へ写像した結果に基づいて、前記学習データのクラス分布を表現するデータを生成する工程とを備える。
【0013】
また、本発明の他の態様によれば、データ変換装置に、複数の学習データを入力する手段と、少なくとも1つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する手段と、前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する手段と、更新後の前記学習カーネルパラメータにより定まる高次特徴空間における線形部分空間を決定する手段と、入力データを入力する手段と、前記入力データに対して少なくとも1つの入力カーネルパラメータを設定する手段と、前記入力カーネルパラメータと更新後の前記学習カーネルパラメータとに基づいて、前記入力データを前記線形部分空間におけるデータ表現に変換する手段とを備える。
【0014】
また、本発明の他の態様によれば、データ変換装置に、複数の学習データを入力する手段と、前記カーネルパラメータの初期値を設定する手段と、前記カーネルパラメータにより定まる高次特徴空間への非線形写像により、前記学習用データを、前記高次特徴空間に写像した時の、前記学習データの前記高次特徴空間における分布を分析する手段と、前記分布の分析結果に基づいて、前記カーネルパラメータを更新する手段と、前記更新後カーネルパラメータにより定まる高次特徴空間おいて、少なくとも1つの、前記高次特徴空間に写像した前記学習用データの重み付き線形結合ベクトルを基底ベクトルとする、前記高次特徴空間の線形部分空間を、前記線形部分空間として表現する手段とを備える。
【0015】
また、本発明の他の態様によれば、データ変換装置に、複数の学習データを入力する手段と、少なくとも1つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する手段と、前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する手段と、前記高次特徴空間における前記線形部分空間を張る少なくとも1つの基底ベクトルを、更新後の前記学習カーネルパラメータにより定まる高次特徴空間おける、前記高次特徴空間に写像した前記学習用データの重み付き線形結合ベクトルとして求める手段と、前記学習データを前記線形部分空間へ写像した結果に基づいて、学習データのクラス分布を生成する手段とを備える。
【発明の効果】
【0016】
本発明によれば、非線形な分布のパターン集合に対する高効率なデータ表現を実現でき、種々のパターンの変動にロバストなパターンの識別を実現することができる。
【発明を実施するための最良の形態】
【0017】
以下、添付図面を参照しながら、本発明の実施形態を説明する。
【0018】
(第1の実施の形態)
本発明の第1の実施形態として、学習用のパターン集合からパラメータを決定し、未知のパターンを、決定したパラメータを用いて表現するデータ表現へ変換する例を示す。
【0019】
本実施形態におけるパターン集合としては、縦横20×20画素の、人物の顔を切り出したグレースケール画像を用いる。縦横20×20のグレースケール画像は、各画素値を、ラスタスキャン的に要素として並べた、20×20=400次元のベクトルと見なせる。この場合、1つのパターンは、400次元空間内の1つの点となる。
【0020】
一般に、例えば“人物の顔”といった特定のクラスであるパターンの集合は、400次元の空間に比べてより低次元の、一般的に多様体と呼ばれる超曲面を形成する。つまり、“人物の顔”を表現するには、400次元は冗長であり、より低い次元の空間で表現可能である。この冗長性を削減するための最も一般的な手法として、PCAを用いた手法がある。しかし、“人物の顔”のように、例えば顔の向きの変動等、本質的に非線形な変動を含むパターンの集合に対して、パターン分布が正規分布であることを仮定しているPCAでは、充分な冗長性削減を期待できない。
【0021】
そこで、非特許文献1で提案されているKPCAでは、カーネル法を用いて、通常のPCAを非線形化し、これにより、非線形な分布のパターン集合に対して、より良い冗長性削減性能を実現している。
【0022】
しかし、カーネル法を用いた非線形化では、カーネル関数の性質を決定するカーネルパラメータの設定は、その性能に大きく寄与するのに関わらず、ヒューリスティックな設定方法が用いられることが一般的であり、明確な設定基準が無い。そこで本実施形態では、カーネル法によって陰に実現される非線形写像の写像先である高次特徴空間における学習用パターン集合の分布に基づいて、カーネルパラメータを決定し、これを用いて冗長性を削減したデータ表現を実現する。
【0023】
本実施形態では、高次特徴空間における学習パターン集合の分布が均一になるような、カーネルパラメータを決定方法の例を示す。そして、通常のKPCAと同様に、この高次特徴空間において学習パターン集合の分散が大きくなるような、高次特徴空間の線形部分空間を求め、この求めた空間におけるデータの表現を行う。これにより、例えば本実施形態のように、人物の顔画像を、学習データの分布が均一となる高次特徴空間の、学習データの分散が大きくなるような線形部分空間上で表現することが可能になり、高効率なデータ表現が可能になる。
【0024】
具体的には、例えば、この人物の顔画像が誰であるのか、若しくは、それがどのような顔向きであるのかといった分析において有効なデータ表現を可能とする。
【0025】
第1の実施形態は、学習モードの処理とデータ表現モードの処理との2つのブロックに大別できる。図1に、第1の実施形態における、学習モードの処理ブロック10、及びデータ表現モードの処理ブロック11を示す。学習モードでの処理は、複数の人物の顔画像データを入力し、各データに対応するカーネルパラメータ、及び、通常のKPCAにおいて、固有値分解により求められる線形結合パラメータセットを求める処理に対応する。一方、データ表現モードでの処理は、未知の人物の顔画像データを入力し、学習モードで用いた複数の顔画像データと、学習モードで求めたカーネルパラメータ、線形結合パラメータを用いて、未知の人物の顔画像データを、冗長性を削減して表現する。
【0026】
第1の実施形態の、学習モードにおける処理のフローを図2に、データ表現モードにおける処理のフローを図3に示す。以下、まず、第1の実施形態の学習モードにおける処理について、図1における、学習モードの処理ブロック10の部分、及び図2を用いて説明する。その後、データ表現モードにおける処理について、図1の、データ表現モードの処理ブロック11の部分、及び図3を用いて説明する。
【0027】
ステップS20において、学習データ入力部100は、人物の顔画像データを入力する。入力するデータは、上述の通り、20×20画素のグレースケール画像である。ここで、この入力データの、20×20画素の各画素値を、ラスタスキャン的に並べた400次元のベクトルをxとする。これを、以下では学習データと記載する。学習モードでの処理では、この学習データ入力部100において、学習データを複数入力し、それらを学習データ保持部101に保持しておく。
【0028】
ここで、入力した学習データの数をNとする。この時、入力した人物の顔画像の、i番目(1≦i≦N)の入力データである400次元のベクトルを、xとする。以下では、xをi番目の学習データと記載する。
【0029】
ステップS21において、初期カーネルパラメータ設定部102は、初期のカーネルパラメータを設定し、それをカーネルパラメータ保持部103に保持する。本実施形態では、各学習データそれぞれに対応したカーネルパラメータ(学習カーネルパラメータ)を用い、i番目の学習データxに対応するカーネルパラメータσとする。そして本実施形態では、このカーネルパラメータを用いて、i番目とj番目の学習データx、xに対応するカーネル関数K(x、x)を、K(x、x)=exp{−|x−x/(σ+σ)}と定義する。つまり、カーネル法により陰に実現される高次特徴空間への非線形写像による、i番目とj番目の学習データx、xの写像後の内積が、K(x、x)=exp{−|x−x/(σ+σ)}となる。
【0030】
初期カーネルパラメータ設定部102で設定する初期のカーネルパラメータは、適当な初期値σを、全ての学習データの、対応するカーネルパラメータとする。つまり、σ=σ(n=1、2、・・・、N)とする。初期値σは、適当な値で構わないが、学習データ間のユークリッド距離オーダーの値にしておくことが好ましい。
【0031】
本実施形態では、簡単のため、全ての初期のカーネルパラメータを同一の値に設定したが、これに限るものではなく、例えばそれぞれの値をランダムに設定するようにしても良い。この場合であっても、ランダムに設定する値は、学習データ間のユークリッド距離オーダーの値にしておくことが好ましい。
【0032】
本実施形態で用いるカーネル関数は、1つの学習データに、1つのカーネルパラメータとしたが、これに限るものではない。複数のカーネルパラメータによって表現されるようなカーネル関数を用いるならば、それに対応して、1つの学習データに、複数のカーネルパラメータを用いるようにしても良い。また、本実施形態では、各学習データに独立にカーネルパラメータが存在するが、後述の第2の実施形態のように、全学習データで共通のカーネルパラメータを用いるような場合にも適用可能である。
【0033】
続いて、ステップS22において、特徴空間分布分析部104は、現在のカーネルパラメータにより定まるカーネル関数が陰に実現する高次特徴空間への非線形写像による、学習データの写像後の、高次特徴空間における分布を分析する。通常、この高次特徴空間内の分布を直接的に分析するのは困難である。しかし、カーネル法を用いることにより、高次特徴空間に写像された2つのデータの内積は、カーネル関数を用いることによって求めることができる。
【0034】
そこで、この特徴空間分布分析部104では、高次特徴空間内での内積を用いて分析可能な分布の情報を分析結果として抽出する。本実施形態では、この高次特徴空間に写像された学習データの分布を示す情報として、写像された各学習データそれぞれに対して、その学習データを中心とする、局所的な領域での学習データ密度を抽出する。具体的には、高次特徴空間に写像された、1つの学習データに注目し、その学習データの位置を中心として、高次特徴空間に写像された、自身を除くk個の学習データを含むような超球を考え、この超球の半径を求める。求めた超球の半径は、学習データ近傍の密度の情報として扱うことができ、この半径が大きければ近傍の密度は低く、半径が小さければ近傍の密度は高いとみなすことできる。
【0035】
i番目の学習データxに対する前述の超球の半径をrとし、以下、このrを求める手法について説明する。まず、カーネル関数が陰に実現する高次特徴空間への非線形写像より、i番目の学習データxが、高次特徴空間内のベクトルφ(x)に写像されるとする。k個の学習データを含む超球の半径rは、φ(x)と、任意のj番目(j≠i)の学習データxを写像したφ(x)とのユークリッド距離dij=|φ(x)−φ(x)|が判れば求めることができる。前述のように、学習データは全部でN個であるので、まず、N−1個の、j≠iである全てのjについて、このdijを求める。そして、求めたN−1個の距離{dij}(j=1、2、・・・、N:j≠i)の内、小さい方からk番目の値が、求めるk個の学習データを含む超球の半径rとなる。
【0036】
このユークリッド距離dijは、dij=(|φ(x)−φ(x)|1/2であるので、{φ(xφ(x)−2φ(xφ(x)+φ(xφ(x)}1/2と変形できる。ここで、カーネル関数により、φ(xφ(x)=K(x、x)とできることを利用すると、dij={K(x、x)−2K(x、x)+K(x、x)}1/2となり、dijを簡単に求めることができる。本実施形態では、前述のように、K(x、x)=exp{−|x−x/(σ+σ)}である。よって、dij=[exp{−|x−x/(σ+σ)}−2exp{−|x−x/(σ+σ)}+exp{−|x−x/(σ+σ)}]1/2=[2−2exp{−|x−x/(σ+σ)}]1/2である。
【0037】
特徴空間分布分析部104では、上記説明した手法により、i=1からNまでの、N個全ての学習データについて、超球の半径rを求める。この処理で用いるkの値、つまり、何個の学習データを含む超球を考えるかについては、入力した学習データ数にも依存するが、凡そ数個から数十程度の値にすればよい。また、本実施形態では、k個の学習データを内包する超球の半径を、局所的な密度としてみなすようにしている。しかし、注目している学習データを中心とする、所定の半径の超球を考え、その中に含まれる学習データの数を、密度の情報として用いても良い。また分布の情報として平均や分散などの統計量を求めてもよい。
【0038】
次に、ステップS23で、更新カーネルパラメータ算出部105は、まず、各学習データそれぞれについて求めた上記超球の半径と、各学習データに対応して保持されたカーネルパラメータを用いて、更新カーネルパラメータを算出する。算出した更新カーネルパラメータは、新たなカーネルパラメータとして、カーネルパラメータ保持部103に保持する。そして、ステップS24で、算出した更新カーネルパラメータが、収束しているか否かを判定する。
【0039】
以下、まずステップS23の、更新カーネルパラメータの算出処理の詳細について説明し、その後、ステップS24の更新カーネルパラメータ収束判定処理の詳細について説明する。
【0040】
更新カーネルパラメータは、本実施形態では、やはり各学習データそれぞれについて算出する。具体的には、i番目の学習データに対応する更新カーネルパラメータσ’を、先に求めた超球の半径rと、現在のカーネルパラメータσ(更新前カーネルパラメータ)とを用いて、σ’=σ・r/γとして求める。ここで、γは正の定数であり、詳細については後述するが、高次特徴空間でのそれぞれの学習データを中心とする局所的な密度を決めるパラメータである。上記手法により、全ての学習データについて、更新カーネルパラメータを求め、それらを、カーネルパラメータ保持部103に保持されていた、それぞれの更新前カーネルパラメータと置き換える。
【0041】
更新カーネルパラメータ収束判定処理では、全ての学習データに対する更新カーネルパラメータが収束しているか、具体的には、更新前後で、カーネルパラメータがほとんど変化していないかどうかを判定する。本実施形態では、i番目の学習データに対応する、更新カーネルパラメータσ’と、更新前のカーネルパラメータσを用いて、次の条件式、|1−σ/σ’|<εを、全ての学習データが満たすかどうかを判定する。
【0042】
εは、限りなく0に近い正のパラメータであり、例えば、10−10といった数値である。全ての学習データについて、上記の条件式による判定を行い、全てが条件を満たす場合に、更新カーネルパラメータが収束したと判定する。本実施形態のカーネル関数を用いた場合、上記更新式σ’=σ・r/γにより、更新カーネルパラメータが収束する、つまり、上記条件式を満たすカーネルパラメータが得られることは、実験的に確認できている。
【0043】
上記条件は、更新カーネルパラメータを算出する式σ’=σ・r/γからも明らかなように、高次特徴空間における前述の超球の半径rがγになったことを示す。つまり、全学習データが上記の条件を満たしたならば、この高次特徴空間では、写像された任意の学習データを中心とする半径γの超球内に、自身を除くk個(特徴空間分布分析部104で用いた定数)の学習データが存在することになる。即ち、高次特徴空間に写像された学習データそれぞれを中心とする局所的な領域での、学習データの密度が一定になったといえる。
【0044】
この密度は、パラメータγの設定により制御可能であり、高次特徴空間における、局所的な学習データ近傍の密度を、所望の密度に設定可能である。換言すれば、γの設定により、半径γの超球の体積をV(γ)とした時、学習データ近傍の局所的な密度が、一定の値k/V(γ)になるような、非線形の写像を構築できることになる。このγの値は、問題設定やkの値、用いるカーネル関数に依存する。本実施形態で用いるカーネル関数の場合、高次特徴空間における任意の学習データ間の距離は、21/2以下であるので、21/2以下の適当な正の数(例えば、0.3等)にすればよい。
【0045】
本実施形態では、i番目の学習データに対応する更新カーネルパラメータを、σ’=σ・r/γとして求めたが、これに限るものではなく、例えば、σ’=ρ・r等というように求めても良い。この例の場合、非線形写像後の高次特徴空間における自身を中心とする局所的な密度が小さい(超球の半径が大きい)程、その学習データに対応する更新カーネルパラメータが大きくなる。更新カーネルパラメータが大きくなると、本実施形態のカーネル関数を用いた場合、その学習データは、高次特徴空間において、その他の学習データの近くに写像されるため、局所的な密度が大きくなる。
【0046】
このため、更新カーネルパラメータは増減を繰り返し、更新カーネルパラメータと、高次特徴空間における局所的な密度の均衡が取れた時に、更新カーネルパラメータが収束することになる。この場合は、更新カーネルパラメータ算出式からも明らかなように、高次特徴空間における、各学習データを中心とした局所的な密度と、それに対するカーネルパラメータが比例するようになる。このように、本実施形態は、高次特徴空間の分布に応じて更新カーネルパラメータを求めるようなものであれば、様々な更新方法にも適用可能である。用いる更新方法と、カーネル関数の組合せによっては、上記条件式を満たすように、更新カーネルパラメータが収束しない場合もある。その場合は、高次特徴空間における学習データの分布に関する条件等を用いて、その条件を満たすまで更新を繰り返すといったようにすれば良い。そのため、問題設定に応じて、適当な更新方法、収束したと判定する条件を選択すればよい。
【0047】
ステップS24により更新カーネルパラメータが収束したと判定された場合、次の中心化グラム行列算出部106での処理に移行する。収束したと判定されなかった場合は、特徴空間分布分析部104での処理(ステップS22)に戻り、更新された新たなカーネルパラメータを用いて、上記の処理を、更新カーネルパラメータが収束したと判定されるまで繰り返す。この分岐は、図2のステップS25に対応する。このようなループ構造により、更新カーネルパラメータが収束するまで、更新された新たなカーネルパラメータを用いて、前述の超球の半径を再度求め、それに基づいて、更新カーネルパラメータを求める処理を繰り返す。
【0048】
上記説明したように、このような再帰的な処理により、更新カーネルパラメータが収束したと判定された際には、高次特徴空間での各学習データを中心とする局所的な密度が一定のk/V(γ)になる。そのため、高次特徴空間での各学習データを中心とする局所的な密度が一定となるような非線形写像を実現するためのカーネルパラメータを求めることができる。
【0049】
次に、中心化グラム行列算出部106での処理について説明する。ここまでの処理により、図2のステップS24において、更新カーネルパラメータが収束したと判定された後のカーネルパラメータが、カーネルパラメータ保持部103に保持されている。つまり、写像先である高次特徴空間で、各学習データを中心とする近傍の密度が一定となるような非線形写像を陰に実現するための、各学習データそれぞれのカーネルパラメータが得られ、カーネルパラメータ保持部103に保持されている。
【0050】
ステップS26では、中心化グラム行列算出部106が、これらの各学習データそれぞれのカーネルパラメータと、学習データ保持部101に保持された学習データを用いて、通常のKPCAと同様に中心化グラム行列K’を算出する。中心化グラム行列K’は、学習データ数がN個であるので、N次の実対称行列であり、そのi行j列の成分K’(i、j)は、
【0051】
【数1】

【0052】
と表される。ここで、K(x、x)は、上記説明したカーネル関数である。本実施形態では、カーネル関数K(x、x)は、K(x、x)=exp{−|x−x/(σ+σ)}である。よって、中心化グラム行列K’のi行j列の成分K’(i、j)は、
【0053】
【数2】

【0054】
となる。中心化グラム行列算出部106では、1からNの全てのi、jの組合せについて上記K’(i、j)を求め、それを保持しておく。
【0055】
最後にステップS27において、固有値・固有ベクトル算出部107が、通常のKPCAと同様に、中心化グラム行列算出部106で求めた中心化グラム行列K’を用い、高次特徴空間に写像された学習データの線形結合パラメータを算出する。そして、ここで得られた学習データの線形結合パラメータを、線形結合パラメータ保持部108に記録することにより、学習モードでの処理が終了となる。
【0056】
具体的には、まず中心化グラム行列算出部106で求めた中心化グラム行列K’に対し固有値分解を行う。本実施形態のカーネル関数を用いた場合、必ずしも中心化グラム行列K’が、半正定値性を満たすとは限らない。しかしながら、中心化グラム行列K’は、実対称行列なので、一般的なヤコビ法等を用いて、簡単に実数の固有値・固有ベクトルを得られる。
【0057】
正の固有値がM個得られた(M≦N)として、この正の固有値を、大きいほうから順に並べたものを、λ、λ、・・・λとし、各固有値に対応する固有ベクトルを、α’、α’、・・・、α’とする。この固有ベクトルは、中心化グラム行列K’がN次正方行列であるので、N次元のベクトルである。
【0058】
そして、通常のKPCAと同様に、これらの固有ベクトルの大きさが、対応する固有値の平方根の逆数になるように正規化を行う。つまり、m番目(m≦M)の固有値をλ、固有ベクトルをα’、とした時、正規化した正規化固有ベクトルαを、α=1/(λ1/2|α’|)・α’というように求める。
【0059】
M個全ての正規化固有ベクトルのセット{α}(m=1、2、・・・、M)を上記の式により求める。これを、高次特徴空間に写像された学習データの線形結合ベクトルであるパラメータ(以下では、簡単に線形結合パラメータと記載する)として記録して保持しておく。この線形結合パラメータは、データ表現モードでの処理に用いられる。
【0060】
以上、学習データ入力部100から固有値・固有ベクトル算出部107までによる、学習データ入力ステップ20から固有値・固有ベクトル算出ステップ27までの処理が、学習モードでの処理となる。上記、学習モードでの処理により、学習データ保持部101にN個の学習データが保持され、それぞれに対応するカーネルパラメータが、カーネルパラメータ保持部103に保持される。
【0061】
さらに、固有値・固有ベクトル算出部107で求めた、線形結合パラメータ{α}(m=1、2、・・・、M)が、線形結合パラメータ保持部108に保持されることになる。以降で説明する、本実施形態のデータ表現モードでの処理では、これらのデータ(N個の学習データ、N個のカーネルパラメータ、線形結合パラメータ)を用いて、入力されたデータの新たな空間での表現を行う。
【0062】
続いて、本実施形態のデータ表現モードおける処理について、データ表現モードの処理部の構成を示す、図1の、データ表現モードの処理ブロック11の部分と、処理のフローを示す図3を用いて説明する。
【0063】
まず、ステップS30において、写像パラメータ入力部110は、学習モードで用いたのと同一のN個の学習データを入力する。また、学習モードで求めた、それぞれに対応するN個のカーネルパラメータ、及び線形結合パラメータ{α}(m=1、2、・・・、M)を入力する。
【0064】
N個の学習データは、学習データ保持部101に保持されたものを入力し、カーネルパラメータは、カーネルパラメータ保持部103に保持されたものを入力する。そして、線形結合パラメータは、線形結合パラメータ保持部108に保持されているものを入力する。
【0065】
次に、ステップS31において、未知データ入力部111において、データ表現を行う対象である、縦横20×20画素の、人物の顔を切り出したグレースケール画像データを1つ入力する。ここで入力したデータを、以下では、入力データと記載する。そして、このデータも、学習モードでの処理と同様に、この画像の各画素値をラスタスキャン的に並べた400次元のベクトルを生成する。ここで得られたこのベクトルを、入力データyとする。
【0066】
次に、ステップS32において、未知カーネルパラメータ決定部112が、入力データ入力に対応する入力カーネルパラメータσを算出する。以下では、この入力データに対応する入力カーネルパラメータσを、未知カーネルパラメータσと記載する。未知カーネルパラメータσの算出は、基本的に、学習モードにおいて、各学習データに対してカーネルパラメータを求めた手法と同様である。
【0067】
つまり、高次特徴空間の分布を分析し、それに基づいて、更新未知カーネルパラメータσ’を算出し、未知カーネルパラメータ更新することを、更新未知カーネルパラメータσ’が収束するまで、再帰的に繰り返し実行して求める。ただし、前述の学習モードでは、全ての学習データに対応するカーネルパラメータ、つまり、複数のカーネルパラメータを更新した。しかし、データ表現モードでは、学習モードで得られたカーネルパラメータは固定し、未知カーネルパラメータのみ更新を行う。以下、具体的な更新方法について説明する。
【0068】
まず、未知カーネルパラメータσの初期値を設定する。この初期値は適当な値で構わないが、凡そ、学習データに対応するカーネルパラメータ程度のオーダーの値であることが望ましい。そこで、本実施形態では、写像パラメータ入力部110で入力した、N個のカーネルパラメータの平均値を、σの初期値として設定する。
【0069】
次に、現在の未知カーネルパラメータσにより定まるカーネル関数によって、陰に実現される高次特徴空間への非線形写像により、入力データyを写像したφ(y)と、学習データを写像したものとの距離を、全ての学習データに対して求める。具体的には、φ(y)とi番目の学習データxを高次特徴空間に写像したφ(x)との距離dyiは、カーネル関数K(y、x)を用いてdyi={K(y、x)−2K(y、x)+K(x、x)}1/2と求められる。ここで、本実施形態では、K(y、x)=exp{−|y−x/(σ+σ)}である。よって、dyi=[2−2exp{−|y−x/(σ+σ)}]1/2となる。求めた全ての学習データに対する距離{dyn}(n=1、2、・・・、N)の内、k番目に小さい距離は、学習モードで述べたのと同様の、k個の学習データを内包する超球の半径rとなる。
【0070】
続いて、更新未知カーネルパラメータσ’を、学習モードでの更新カーネルパラメータ算出処理と同様に、σ’=σ・r/γというように求め、これを新たな未知カーネルパラメータとする。そして、更新未知カーネルパラメータσ’が収束した、つまり、学習モードでの収束判定と同様に、次の条件式|1−σ/σ’|<εを満たした場合、更新未知カーネルパラメータが収束したと判定する。収束したと判定されなかった場合は、上記分析、及び更新の処理を再帰的に実行し、収束したと判定されるまで繰り返す。
【0071】
上記処理により、収束したと判定された時点の未知カーネルパラメータが、求める未知カーネルパラメータσとなる。上記処理において用いるk、γ、εといった定数は、学習モードの時のそれと同じ値に設定しておけばよい。本実施形態では、このように、新たな入力データに対して、適応的にカーネルパラメータを求めるようにしている。
【0072】
しかし、これに限るものではなく、例えば簡単のため、σを初期値のまま、つまり、学習データに対応するカーネルパラメータの平均値にしてしまうようにすることも可能である。ただし、このようにした場合、処理の手間は省けるが、適切なカーネルパラメータが設定されるとは限らないので、注意が必要である。また、通常の、KPCAの応用のように、学習データ自体の分析が目的であれば、入力データが未知ではなく、学習モードで用いた学習データの内の1つであることが明らかな場合もあり得る。そうであれば、学習モードで求めた、その学習データに対応するカーネルパラメータをσに用いればよい。
【0073】
ここまでの処理により、N個の学習データ、N個のカーネルパラメータ、線形結合パラメータ、及び、1つの入力データ、1つの未知カーネルパラメータが得られている。そして、次の写像結果算出部113において、これらのデータを用い、入力データを、新たな空間に写像したベクトルとして表現する処理を行う。
【0074】
ここで、この新たな空間は、本実施形態では、非線形写像後の学習データ近傍の局所的な密度が一定となるような高次特徴空間において、学習データの分散が大きくなる、高次特徴空間内の、h(≦M)次元の線形部分空間である。hは、M以下、つまり、固有値・固有ベクトル算出ステップS27において求めた、正である固有値の個数以下である。この値に関する説明も含めて、以下に、ここでの処理の詳細について説明する。
【0075】
まず、写像結果算出部113における具体的な処理について説明する。ここで算出する、入力データを、新たな空間に写像したベクトル~yは、最大でM次元のベクトルである。以下、この新たな空間に写像したベクトル~yを、再表現ベクトル~yと記載する。この再表現ベクトル~yのm番目の要素~yは、入力した線形結合パラメータ{α}(m=1、2、・・・、M)のm番目のベクトルのi番目の要素をαm、iとした時、次の式により求めることができる。
【0076】
【数3】

【0077】
この~yを、m=1から、所望の次元h(≦M)まで求めることにより、再表現ベクトルを~y求めることができる。ここでの処理は、図3の写像結果算出ステップS33に対応する。
【0078】
ここで用いるhの値については、用途に応じて適当な値に設定すればよく、例えば、この再表現ベクトル~yを、入力データの可視化を目的として用いるならば、hは3以下(3次元以上は可視化できない)とすればよい。また、この再表現ベクトル~yを、例えば、パターン識別のための特徴抽出後のデータとして用いるならば、M次元まで全部用いるというようにしても良い。
【0079】
また、固有値・固有ベクトル算出ステップS27において求めた正の固有値の総和をλsumとした時、1〜h番目までの固有値の総和が、λsumの所定割合(例えば95%等)までとなるような次元までを用いるようにしても良い。パターン識別のための特徴抽出として、本手法を利用するためには、学習データも、入力データと同様に、新たな空間に写像したベクトルとして表現してやる必要がある。その場合、j番目の学習データxの再表現ベクトルを~xとし、このm番目の要素を~xj、mとした時、~yを求める時と同様に、以下の式で求めることができる。
【0080】
【数4】

【0081】
このように、任意の学習データも、入力データと同様に、新たな空間に写像したh次元のベクトルとして表現することが可能である。そのため、例えば最も単純なパターン識別方法の1つである最近傍法であれば、これらの再表現ベクトルを予め算出して保持しておき、これらと、入力データの再表現ベクトルを比較することによって、パターン識別が可能になる。
【0082】
そして最後に、ステップS34で、写像結果出力部114において、このようにして求めた再表現ベクトルを外部に出力することで、データ表現モードでの処理が終了する。
【0083】
以上の処理により、データ表現モードでの処理である、入力されたデータを、学習データ近傍の局所的な密度が一定となる高次特徴空間内において、学習データの分散が大きくなるような新たな空間において表現することが可能になる。これにより、例えば、学習データについても、上記式により、新たな空間で表現すれば、入力した未知の人物の顔画像が、新たな空間において、学習データとどのような関係にあるのかを求めることができる。このようにすることにより、入力した未知の人物の顔画像が、誰の顔画像であるのか、誰と似ているか、どのような顔向きであるのか、といったような情報を分析することが可能になる。
【0084】
本実施形態では、未知の入力データを入力し、それを新たな空間でのベクトルとして表現する手法をして説明したが、上記のパターン識別方法の例のように、本手法も、通常のKPCAと同様に、様々な手法に適用可能である。例えば、先にも述べたが、学習データ自体の分析という用途にも適用可能であり、学習データの再表現ベクトル同士を比較することで、他の学習データとの関係等を分析するような用途に用いることができる。例えば具体的には、再表現ベクトルに対して、k−平均法等のクラスタリングを行い、学習データの人物の顔画像をクラスタリングするような用途にも適用可能である。
【0085】
このように、本実施形態のデータ表現方法では、まず、学習データごとのカーネルパラメータの初期値を設定する。本実施形態では、1つの学習データにつき、1つのカーネルパラメータを有する。そして、カーネルパラメータにより定まる、カーネル法により陰に実現される、高次特徴空間への非線形写像により、高次特徴空間へ写像された学習データの分布を分析する。
【0086】
ここで分析する分布は、高次特徴空間における任意の2つの学習データに対する内積を用いて分析可能な分布である。次いで、この分布が所望の分布になるように、分布を分析した結果に基づいて、カーネルパラメータを更新する。そして、このカーネルパラメータの更新が収束するまで、高次特徴空間における分布の分析と、それに基づくカーネルパラメータの更新を再帰的に実行する。
【0087】
これにより、高次特徴空間における学習データの分布が、所望の分布となるような、非線形写像を実現するためのカーネルパラメータを設定することができる。本実施形態では、分析する分布として、高次特徴空間における、各学習データを中心とする局所的な学習データの密度を用い、この密度が、一定になるように、カーネルパラメータを設定した。続いて、通常のKPCAと同様に、この高次特徴空間において、学習データの分散が大きくなるような、高次特徴空間内の線形部分空間を求める。
【0088】
そして、上記求めたカーネルパラメータ等を用いて、このようにして求めた高次特徴空間内の線形部分空間で、入力データを表現する。これにより、学習データが所望の分布になるような高次特徴空間において、学習データの分散が最大になるような、高次特徴空間内の線形部分空間上で、入力データを表現することが可能になる。
【0089】
本実施形態では、上述のように、学習データの分布が均一な(無相関というわけではない)高次特徴空間において、学習データの分散が大きくなる、高次特徴空間の線形部分空間上で、入力データを表現する。つまり、学習データがうまく分布するような高次特徴空間の線形部分空間上で、入力データを表現することができる。このため、例えば、入力データが、学習データに対してどのような関係にあるのかを分析することが可能になるので、入力データの分析といった用途に用いることができる。
【0090】
以上、第1の実施形態は、学習用のパターン集合から、本発明のデータ表現方法におけるパラメータを決定し、未知のパターンを、決定したパラメータを用いて表現するデータ変換方法の例として説明した。
【0091】
(第2の実施の形態)
本発明の第2の実施形態は、学習用のパターン集合から、本発明のパターン識別方法におけるパラメータを決定し、決定したパラメータを用いて、未知のパターンが、何れのクラスに属するかを識別するパターン識別方法の例を示す。
【0092】
第1の実施形態では、カーネルパラメータにより定まる、カーネル関数によって陰に実現される高次特徴空間に写像した学習データ近傍の局所的な密度が一定になるように、カーネルパラメータを設定した。そして、それを用いてデータ表現を行う方法を示した。データの高効率な表現という目的であれば、上記基準によりカーネルパラメータを設定してもよい。
【0093】
しかし、パターン識別のための特徴抽出という観点で考えた場合、第1の実施形態では、データが何れのクラスに属するかという情報は用いておらず、データの分類を効率的に表すという点では最適であるとは言えない。そこで本実施形態では、高次特徴空間に写像された学習用パターンのクラス分布の分析において、クラス分離度を抽出し、それに基づきカーネルパラメータを再帰的に更新する。これにより、クラス分離度の高い高次特徴空間への非線形写像を実現するカーネルパラメータを設定する。
【0094】
本実施形態では、クラス分離度として、線形判別分析(LDA)等で用いられる、クラス内分散とクラス間分散との比(=クラス間分散/クラス内分散)を用いる。具体的には、LDAをカーネル法により非線形に拡張した、非特許文献8のカーネル非線形判別分析(KLDA)を用いる。まず、高次特徴空間に写像された学習用データのクラス内分散とクラス間分散との比が最大となる、高次特徴空間における線形部分空間を求める。そして、この線形部分空間におけるクラス内分散とクラス間分散との比を求め、これが極大値となるように、カーネルパラメータを更新する。そして、第1の実施形態と同様に、このカーネルパラメータの更新を、カーネルパラメータの更新が収束するまで再帰的に繰り返す。これにより、クラス内分散とクラス間分散との比が(KLDAによって求めた線形部分空間において)大きくなるような、高次特徴空間への非線形写像を実現するカーネルパラメータを設定することができる。
【0095】
そして、こうして得られたカーネルパラメータを用い、非特許文献3のSVMの学習を実行することによって、パターン識別規則を構築する。未知データに対するパターン識別においては、上記得られたカーネルパラメータと、SVMの学習により得られたパターン識別規則に基づいて、未知データが何れのクラスに属するのかを判定する。
【0096】
このように、第2の実施形態は、まず、カーネルパラメータの更新基準が第1の実施形態と異なる。また第1の実施形態では、得られたカーネルパラメータにより定まる高次特徴空間に写像された、学習用データの分散が大きくなるような線形部分空間を求めた。これに対し、本実施形態では、SVMの学習を用いることにより、学習用データのマージンが最大となる、高次特徴空間内の識別超平面を求める。
【0097】
このことは、原点がこの識別超平面上であり、識別超平面の法線ベクトルと方向が一致する、高次特徴空間内の、1次元線形部分空間を求めていることと対応する。つまり、本実施形態は、第1の実施形態でのカーネルパラメータの更新における基準と、高次特徴空間の線形部分空間を求める方法が異なる。以下、本実施形態の説明では、第1の実施形態との差異については詳細に説明し、第1の実施形態と同様の部分に関しては説明を省略する。
【0098】
第2の実施形態も、第1の実施形態と同様に、学習モードの処理と、パターン識別モードの処理の、2つのブロックに大別できる。第2の実施形態におけるパターン集合は、第1の実施形態と同様に、縦横20×20画素の、人物の顔を切り出したグレースケール画像を用いる。ただし、第1の実施形態とは異なり、これらの学習用データそれぞれに、それが誰の顔画像であるのかを示すラベルが付与されているものとする。
【0099】
本実施形態では、簡単のため、学習データとして用いる顔画像は、それぞれ複数枚の、A氏とB氏の2人の顔画像とする。ここで、A氏の顔画像をクラスA、B氏の顔画像をクラスBのデータと記載する。これらのデータを用いて、クラスAのデータと、クラスBのデータを識別する2クラス識別規則を構築する。これが、学習モードでの処理である。そして、A氏であるのか、B氏であるのかが未知の、A氏かB氏何れか一方の顔画像を入力し、構築した2クラス識別規則により、それが何れの顔画像であるのかを識別する。これが、パターン識別モードでの処理である。
【0100】
このように、本実施形態のパターン識別方法は、2クラス識別問題に対応する方法として説明する。しかし、本実施形態では、簡単のため、2クラス識別問題を設定したが、これに限るものではない。例えば、A氏とそれ以外、B氏とそれ以外、C氏とそれ以外・・というように、クラス数分の2クラス識別規則を用意する等すれば、多クラス識別問題にも対応可能である。
【0101】
図4に、第2の実施形態における、学習モードの処理ブロック40、及び、パターン識別モードの処理ブロック41を示す。学習モードにおける処理は、上述のように、それぞれ複数枚の、A氏とB氏の2人の顔画像を入力し、カーネルパラメータ、及び、SVMの学習により求められる線形結合パラメータセットを求める処理に対応する。
【0102】
一方、パターン識別モードでの処理は、まず、A氏であるのか、B氏であるのかが未知の、A氏かB氏何れか一方の顔画像データを入力する。そして、学習モードで用いたそれぞれ複数枚の、A氏とB氏の2人の顔画像データと、学習モードで求めたカーネルパラメータ、線形結合パラメータを用いて、未知の人物の顔画像データが、A氏、B氏の何れであるかを識別する。
【0103】
第2の実施形態の、学習モードにおける処理のフローを図5に、パターン識別モードにおける処理のフローを図6に示す。以下、まず、第2の実施形態の学習モードにおける処理について、図4における、学習モードの処理ブロック40の部分、及び図5を用いて説明し、その後、パターン識別モードにおける処理について、図1の、パターン識別モードの処理ブロック41の部分、及び図6を用いて説明する。
【0104】
本実施形態の学習モードでは、第1の実施形態と同様に、まず、データ入力部400において、顔画像データを複数入力する。上述の通り、ここで入力する顔画像データは、それぞれ複数枚の、A氏とB氏の2人の何れであるかが明らかな顔画像データである。ここで入力したA氏の顔画像データの数をN、B氏の顔画像データの数をNとし、両方を合わせた数をN+NをNとする。
【0105】
ここでも、第1の実施形態と同様に、入力した顔画像データを、20×20画素の各画素値を、ラスタスキャン的に並べた400次元のベクトルとする。本実施形態では、A氏のi番目の顔画像データをベクトルとしたものを、A氏のi番目の学習データx(A)と記載し、B氏のi番目の顔画像データの場合は、B氏のi番目の学習データx(B)と記載する。
【0106】
また単に、i番目の学習データxと表記した場合、A氏、B氏両方のデータを連番で表記したものとして、1≦i≦Nならば、i番目のA氏の学習データ、N<i≦Nならば、i−N番目のB氏の学習データを意味する。そして、入力した学習データを、学習データ保持部401に保持しておく。ここでの処理は、図5の学習データ入力ステップS50に対応する。
【0107】
初期カーネルパラメータ設定部402では、初期のカーネルパラメータを設定し、それをカーネルパラメータ保持部403に保持する。第1の実施形態では、各学習データそれぞれに対応したカーネルパラメータを用いたが、本実施形態では、全学習データにおいて共通の1つのカーネルパラメータσを用いる。
【0108】
そして本実施形態では、このカーネルパラメータを用いて、任意の2つの学習データx、x’に対応するカーネル関数K(x、x’)を、K(x、x’)=exp{−|x−x’|/(2σ)}と定義する。つまり、カーネル法により陰に実現される高次特徴空間への非線形写像による、任意の2つの学習データx、x’の写像後の内積が、K(x、x’)=exp{−|x−x’|/(2σ)}となる。
【0109】
初期カーネルパラメータ設定部102で設定する初期のカーネルパラメータは、第1の実施形態と同様に、適当な初期値σとする。初期値σは、適当な値で構わないが、学習データ間のユークリッド距離オーダーの値にしておくことが好ましい。そこで例えば、全学習データ間の、ユークリッド距離の平均というような値にすればよい。ここでの処理は、図5の初期カーネルパラメータ設定ステップ51に対応する。
【0110】
続いて、特徴空間分布分析部404においても、第1の実施形態と同様に、現在のカーネルパラメータにより定まるカーネル関数が陰に実現する高次特徴空間への非線形写像による、学習データ保持部401に保持された学習データの写像後の、高次特徴空間における分布を分析する。本実施形態では、高次特徴空間内での内積を用いて分析可能な分布の情報として、クラス内分散とクラス間分散との比を抽出する。
【0111】
具体的には、まず前述のように、非特許文献8のKLDAを用いて、高次特徴空間に写像された学習用データのクラス内分散とクラス間分散との比が最大となるような、高次特徴空間における線形部分空間を求める。KLDAの詳細は、非特許文献8に詳細に記載されているので、説明を省略する。本実施形態では、2クラスのKLDAを用いるため、この高次特徴空間における線形部分空間は、1次元の線形部分空間になる。
【0112】
つまりこれにより、高次特徴空間に写像された、A氏、B氏の顔画像である、クラスA、Bのデータ集合が、それぞれまとまり(クラス内分散が小さい)、且つ、それらの平均が離れる(クラス間分散が大きい)。このような、高次特徴空間内の1次元線形部分空間を求めることができる。KLDAにより求まるN(=N+N)次元ベクトルである線形結合パラメータβのi番目の要素をβとする。この時、この1次元の線形部分空間を張る基底ベクトルvは、この高次特徴空間に写像されたi番目の学習データφ(x)を用いて、
【0113】
【数5】

【0114】
と表される。このKLDAにより求まる線形結合パラメータβは、本実施形態の、後のSVM学習実行処理部406での処理において求めるとは線形結合パラメータ異なるものである。後述するものは、第1の実施形態で求めた線形結合パラメータ(第1の実施の形態で、{α}(m=1、2、・・・、M)と表記したもの)と同様である。混同を避けるため、以降はこのβをKLDAパラメータと記載する。本実施形態で用いる2クラスのKLDAでは、クラス内分散とクラス間分散との比を表す以下に示す評価式を用い、これを最大化するKLDAパラメータβを求める。
【0115】
【数6】

【0116】
ここで、上式のK、及び、Kは共にN次の実対称行列であり、それぞれのi行j列の成分K(i、j)及びK(i、j)は以下のように表される。
【0117】
【数7】

【0118】
【数8】

【0119】
KLDAでは、前述の評価式をKLDAパラメータβの関数とみなして、この評価式を最大にするKLDAパラメータβを求める。これに対して本実施形態では、更新カーネルパラメータ算出部405において、KLDAによって得られたKLDAパラメータβを固定する。そして、前記評価式を、カーネルパラメータσの関数とみなして、この評価式の値を大きくするσの値を求めて更新する。
【0120】
前述の評価式を、σの関数として表現するためには、上式を用いて変形すればよい。その結果は、非常に複雑な式となる。しかし、上式は、展開してみると、カーネル関数の、積の項の線形和で構成されていることがわかる。つまり、いずれも、適当な係数群{ξ}を用いて、Σξ・K(○、○)K(○、○)(○は任意の学習データ)と展開できる。そのため、前述の評価式の分母、分子とも、カーネル関数の、積の項の線形和という構成となる。
【0121】
そこで、1からNまでの自然数である独立な4つのパラメータi、j、m、nに対して、N個の実数からなる、適当な2つの係数列、a(i、j、m、n)、b(i、j、m、n)をうまく選んでやる。これにより、前記評価式は、以下のように変形できる。
【0122】
【数9】

【0123】
適切な2つの係数列、a(i、j、m、n)、b(i、j、m、n)は、数式ベースで解析的に求めようとすると、非常に煩雑になる。しかし、単純な線形演算のみであるので、計算機を用いて恒等式を解くことにより、簡単に求めることができる。さて、本実施形態で用いるカーネル関数は、前述のように、K(x、x’)=exp{−|x−x’|/(2σ)}である。そこで、これを用いて、上式は、カーネルパラメータσの関数J(σ)として、次のように書き表すことができる。
【0124】
【数10】

【0125】
ここで更に、c(i、j、m、n)=|x−x+|x−xと置くと、
【0126】
【数11】

【0127】
となる。この式に示したσの関数として表された評価式は、クラス内分散とクラス間分散との比の式であり、特徴空間分布分析部404では、この式により表されるクラス内分散とクラス間分散との比を抽出する。つまり、まずKLDAによりKLDAパラメータβを求め、次いで恒等式を解くことにより、式内の、a(i、j、m、n)、b(i、j、m、n)を求める。そして最後にc(i、j、m、n)を求める処理を行う。ここでの処理は、図5の特徴空間分布分析ステップS52に対応する。
【0128】
次に、更新カーネルパラメータ算出部405では、まず、カーネルパラメータσの関数であるJ(σ)のσにおける偏微分係数∂J(σ)/∂σ|σを求める。その際、特徴空間分布分析部404で求めた、3つのN個の係数列、a(i、j、m、n)、b(i、j、m、n)、及びc(i、j、m、n)を用いる。そして、この偏微分係数∂J(σ)/∂σ|σに基づいて、更新カーネルパラメータを求め、求めた更新カーネルパラメータを、新たなカーネルパラメータとして、カーネルパラメータ保持部403に保持する。
【0129】
その後は、第1の実施形態と同様に、算出した更新カーネルパラメータが、収束しているか否かを判定し、収束したと判定されるまで、再帰的に上記処理を繰り返す。前半部の、更新カーネルパラメータを求めて保持する処理は、図5の更新カーネルパラメータ算出ステップS53に対応する。また後半部の、この収束判定処理、及び、結果に基づく分岐は、図5の更新カーネルパラメータ収束判定ステップS54、及び収束判定分岐ステップS55に対応する。後半部については、第1の実施形態のステップS24及びS25と同様であるので説明を省略し、更新カーネルパラメータ算出ステップS53の処理の詳細について説明する。
【0130】
更新カーネルパラメータ算出ステップS53において求める、現在のカーネルパラメータσにおける偏微分係数∂J(σ)/∂σ|σの算出には、J(σ)をσで偏微分した偏導関数∂J(σ)/∂σを用いる。この偏導関数∂J(σ)/∂σは、次のように表される。
【0131】
【数12】

【0132】
係数列a(i、j、m、n)、b(i、j、m、n)、c(i、j、m、n)は、上式中では、簡単に、a、b、cと表記した。これにより、現在のカーネルパラメータσにおける偏微分係数∂J(σ)/∂σ|σは、上記式のσに、現在のカーネルパラメータの値を代入することにより求めることができる。∂J(σ)/∂σ|σを求めるために、この式を展開して整理してもよいが、非常に煩雑になる。そこで、それは避け、この計算は単純な線形演算であるので、計算機を用いて、このままの形で計算してしまえばよい。
【0133】
そして、このようにして求めた、現在のカーネルパラメータσにおける偏微分係数∂J(σ)/∂σ|σを用いて、更新カーネルパラメータσ’は、σ’=σ+η(∂J(σ)/∂σ|σ)と求める。ηは正の定数であり、更新の速度を決めるパラメータである。この値は、大きすぎると、更新カーネルパラメータが振動し、収束の判定がされない可能性がある。しかし、これが小さすぎると、収束の判定がなされるまでに、多くの回数の更新を必要とする。そのためこのηは、更新カーネルパラメータが振動しない程度の値で、収束の判定がなされるまでの処理にかかる時間が許される程度に小さい値にするのがよく、問題に応じて、実験的に求めてやればよい。
【0134】
∂J(σ)/∂σ|σは、関数J(σ)のσにおける傾きであるので、更新カーネルパラメータσ’は、現在のカーネルパラメータから、J(σ)の極大方向へ、その傾きに比例した量だけ変化させたものになる。このような更新を行うことにより、J(σ)が極大値に近づくような更新カーネルパラメータσ’の値を求めることが可能になる。つまり、いわゆる最急勾配法(ηが正であるので、山登り法とも言う)を用いてσ’の値を求めることになる。
【0135】
また、本実施形態では用いていないが、このような更新式において一般的な慣性項を付加してもよい。この場合、1ステップ前に求めた偏微分係数∂J(σ)/∂σ|^σを記録しておく。そして、今回のステップの更新カーネルパラメータσ’を、σ’=σ+η(∂J(σ)/∂σ|σ)+τ(∂J(σ)/∂σ|^σ)と求めるようにすればよい。τは慣性項係数であり、1より小さい正の定数である。τの値は、1に近いほど、慣性項の影響が大きくなるので、求める効果に応じて、実験的に決定するようにすればよい。
【0136】
以上の処理により、更新カーネルパラメータσ’を求めることができ、この更新カーネルパラメータσ’を新たなカーネルパラメータとして、カーネルパラメータ保持部403に保持する。そして、第1の実施形態と同様に、更新カーネルパラメータが収束したと判定されるまで、上記説明した、KLDA、カーネルパラメータ更新を再帰的に実行し、更新カーネルパラメータが収束した後のカーネルパラメータを得る。
【0137】
本実施形態では、このカーネルパラメータの更新に、いわゆる最急勾配法を用いているので、更新式に用いているηの値を適切に設定することにより、更新カーネルパラメータは収束する。このような処理により、カーネルパラメータσにより定まる高次特徴空間への写像の内、クラス内分散とクラス間分散との比を最大とする1次元部分空間で、この比が極大値となるようなカーネルパラメータσを設定可能になる。
【0138】
つまり、高次特徴空間内に写像された、クラスAとクラスBのデータを、クラス分離度が高まるような1次元部分空間に写像することを考える。その際に、更にその時のクラス分離度が高くなるような高次元特徴空間への写像を陰に実現できるカーネルパラメータを得ることができる。これにより、クラスAとクラスBの分離度が、(高次特徴空間内の1次元部分空間において)高まるような高次特徴空間への非線形写像が実現できる。そして、この高次特徴空間において識別規則を構築することで、クラスAとクラスBの弁別性能が高い識別規則を構築することができる。
【0139】
続いて、SVM学習実行部406において、学習データ保持部401に保持された学習データと、今までの処理により得られたカーネルパラメータσを用いて、SVMの学習を実行する。その結果、N次元ベクトルである線形結合パラメータαとバイアス値δを求める。そして、この線形結合パラメータαと、バイアス値δを、線形結合パラメータ保持部407に記録して保持することで、本実施形態の学習モードでの処理が終了となる。ここでの処理は、図5のSVM学習実行ステップ56に対応する。この線形結合パラメータαと、バイアス値δは、パターン識別モードでの処理に用いられる。
【0140】
第1の実施形態では、カーネルパラメータが収束した後に、それにより定まる高次特徴空間において、学習データの分散が大きくなるような線形部分空間を求めた。これに対し、本実施形態では、この高次特徴空間に写像された学習データのマージンが最大となる超平面を求め、この超平面と法線方向が一致し、且つ、原点がこの超平面上である1次元の線形部分空間を求める。上記SVMの学習を実行することにより得られた、線形結合パラメータαが、超平面の法線ベクトルに対応する。また、バイアス値δは、この1次元線形部分空間の原点を、超平面上にシフトするための要素である。
【0141】
SVMの詳細や、マージン最大化基準に基づいて超平面を求める方法(最適超平面識別法の学習法)は、非特許文献2や、非特許文献3に詳細に記載されているので、説明を省略する。ちなみに、SVMの学習で用いる学習データのクラスラベルは、クラスAのデータを1、クラスBのデータを−1とした。SVMの学習により求めた1次元の部分空間を張る基底ベクトルνは、線形結合パラメータαの、i番目の要素をαとした時、この高次特徴空間に写像されたi番目の学習データφ(x)を用いて、
【0142】
【数13】

【0143】
と表される。新たな400次元ベクトルのデータxを、この1次元部分空間に写像するには、原点のシフトを考慮し、xを高次特徴空間に非線形写像したφ(x)と、この基底ベクトルνとの内積を求め、それをバイアス値δを用いてシフトすればよい。よって、
【0144】
【数14】

【0145】
と求められる。この式は、カーネル関数を用いることにより簡単に演算できる。本実施形態では、カーネル関数K(x、x’)は、上記処理で得られたカーネルパラメータσを用いて、K(x、x’)=exp{−|x−x’|/(2σ)}である。よって、
【0146】
【数15】

【0147】
となる。SVMでは、入力されたデータxに対する、この式15により求められる値が、0以上であれば、xはクラスラベル1のデータ、負であれば、クラスラベル−1のデータであると判定される。
【0148】
本実施形態では、A氏の顔画像のクラスである、クラスAのクラスラベルを1、B氏の顔画像のクラスである、クラスBのクラスラベルを−1とした。そのため、入力データに対するこの値が0以上であれば、入力データはA氏の顔画像、負であればB氏の顔画像であると判定するような識別規則を構成したといえる。
【0149】
以上、学習データ入力部400からSVM学習実行部406までによる、学習データ入力ステップ50からSVM学習実行ステップ56までの処理が、学習モードでの処理となる。上記学習モードでの処理により、学習データ保持部401にN個の学習データが保持され、クラス分離度が大きくなる基準で設定したカーネルパラメータが、カーネルパラメータ保持部403に保持される。さらに、SVM学習実行部406で求めた、線形結合パラメータα、及び、バイアス値δが、線形結合パラメータ保持部407に保持されることになる。
【0150】
以降で説明する、本実施形態のパターン識別モードでの処理では、これらのデータ(N個の学習データ、カーネルパラメータ、線形結合パラメータ、バイアス値)を用いる。それにより、入力されたA氏かB氏の何れかの顔画像データが、何れの顔画像であるのかを識別する処理を実現する。
【0151】
本実施形態の、パターン識別モードおける処理について、パターン識別モードの処理部の構成を示す、図4のパターン識別モードの処理ブロック41の部分と、処理のフローを示す図6を用いて説明する。
【0152】
まず、写像パラメータ入力部410において、学習モードで用いたのと同一の、N個の学習データと、学習モードで求めた、カーネルパラメータσ、及び、線形結合パラメータα、バイアス値δを入力する。N個の学習データは、学習データ保持部401に保持されたものを入力し、カーネルパラメータは、カーネルパラメータ保持部403に保持されたものを入力する。そして、線形結合パラメータとバイアス値は、線形結合パラメータ保持部407に保持されているものを入力する。ここでの処理は、図6の、写像パラメータ入力ステップ60に対応する。
【0153】
次に、未知データ入力部411において、パターン識別を行う対象である、縦横20×20画素の、A氏かB氏の何れかの顔を切り出したグレースケール画像データを1つ入力する。ここで入力したデータを、以下では、入力データと記載する。そして、このデータも、学習モードでの処理と同様に、この画像の各画素値をラスタスキャン的に並べた400次元のベクトルを生成する。ここで得られたこのベクトルを、入力データyとする。この処理は、図6の未知データ入力ステップS61に対応する。
【0154】
ここまでの処理は、第1の実施形態と同様である。第1の実施形態では、この後に、未知の学習データに対応するカーネルパラメータを設定した。しかし、本実施形態では、第1の実施形態と異なり、各データに独立なカーネルパラメータが存在しない。そのため、第1の実施形態では存在した、未知の学習データに対応するカーネルパラメータを設定する処理は省略可能であり、写像パラメータ入力部410において入力したカーネルパラメータを用いるようにすればよい。
【0155】
ここまでの処理により、N個の学習データ、カーネルパラメータ、線形結合パラメータ、バイアス値、及び、1つの入力データが得られている。そして、次の写像結果算出部412において、これらのデータを用い、入力データを、学習モードでのカーネルパラメータの設定及びSVMの学習により求めた、高次特徴空間内の1次元線形部分空間に写像し、写像後の値zを求める。この値は、上記説明した式と同じ式により求めることができ、パターン識別モードでの表記に基づき上式を書き換えると、
【0156】
【数16】

【0157】
となる。この式で用いられているx等のパラメータは、写像パラメータ入力部410において入力したものであり、学習モードでの表記と同一のものである。ここでの処理は、図6の写像結果算出ステップ62に対応する。
【0158】
そして最後に、識別結果出力部413において、写像結果算出部412で求めた写像後の値zに基づいて、入力データがA氏と、B氏の何れの顔画像であるかという識別結果を出力する。本実施形態でのパターン識別規則は、SVMの学習を用いて構築したものである。ここでは、上記説明したように、zが0以上であればクラスラベル1、即ちA氏の顔画像であると判定し、zが負であればクラスラベル−1である、B氏の顔画像であるという識別結果を出力する。
【0159】
以上の処理により、パターン識別モードでは、入力されたA氏かB氏の何れかの顔画像データを、クラス分離度が高くなる高次特徴空間内における、マージンを最大化するような1次元部分空間に写像した結果に基づいて、識別可能になる。これにより、クラス分離という観点において、より良い性能を発揮する可能性が高い高次特徴空間での、マージン最大化に基づいた識別規則による識別が可能となるため、より良いクラス識別性能が得られる可能性が高くなる。
【0160】
本実施形態では、A氏かB氏の何れかのみを対象としたが、例えば、A氏とそれ以外という2クラス問題にも適用可能であることは明らかである。そして例えば、前述のように、このような1対それ以外というような2クラス識別を多数組み合わせることによって、多クラスの識別問題に適用することも可能である。
【0161】
また、本実施形態では、写像後の値に対して0を識別の境界としたが、これに限るものではない。例えば、学習データに偏りがあるような場合や、どちらか一方のクラスと判定される可能性を下げたいといったような場合は、0以外を識別の境界として設定しても構わない。この場合、この境界の値は求める性能に応じて実験的に決めてやればよい。
【0162】
このように、本実施形態のパターン識別方法では、まず、カーネルパラメータの初期値を設定する。そして、カーネルパラメータにより定まる、カーネル法により陰に実現される、高次特徴空間への非線形写像により、高次特徴空間へ写像された学習データの分布を分析する。ここで分析する分布は、やはり第1の実施形態と同様に、高次特徴空間における任意の2つの学習データに対する内積を用いて分析可能な分布である。次いで、この分布が所望の分布になるように、分布を分析した結果に基づいて、カーネルパラメータを更新する。そして、このカーネルパラメータの更新が収束するまで、高次特徴空間における分布の分析と、それに基づくカーネルパラメータの更新を再帰的に実行する。
【0163】
これにより、高次特徴空間における学習データの分布が、所望の分布となるような、非線形写像を実現するためのカーネルパラメータを設定することができる。本実施形態では、分析する分布として、高次特徴空間における、学習データのクラス分離度、具体的には、クラス内分散とクラス間分散との比を用い、このクラス内分散とクラス間分散との比が、大きくなるように、カーネルパラメータを設定した。続いて、SVMの学習を用いて、この高次特徴空間において、学習データのマージンを最大化するような、超平面に対応する、高次特徴空間内の1次元線形部分空間を求める。そして、上記求めたカーネルパラメータ等を用いて、このようにして求めた高次特徴空間内の1次元線形部分空間に、入力データを写像して、その値に基づいてクラスの識別を行う。
【0164】
これにより、学習データが所望の分布になるような高次特徴空間において、学習データのマージンが最大になるような、高次特徴空間内の1次元線形部分空間上に入力データを写像することが可能になり、より良い識別性能を実現できる可能性が高くなる。
【0165】
本実施形態では、カーネルパラメータとして、全てのデータに共通の1つのカーネルパラメータを用いたが、これに限るものではない。例えば第1の実施形態と同様に、全てのデータそれぞれが、独立にカーネルパラメータを持つような場合に適用可能である。このような場合、パターン識別モードで入力するデータに対しても、カーネルパラメータを設定しなければならない。場合によっては、第1の実施形態のように、比較的簡単に求めることができるので、その場合は、入力データごとに求めて設定すればよい。
【0166】
本実施形態での、更新後のカーネルパラメータを求める処理は、第1の実施形態のそれと比較して、非常に処理負荷が高いため、入力データごとに求めるには不向きである。このような場合には、例えば、予め求めてあった、学習データそれぞれのカーネルパラメータの平均等を、設定してしまっても構わない。また、第1の実施形態のように、全てのデータそれぞれがカーネルパラメータを持っているような例の場合、本実施形態で用いるSVMの学習がうまくいかない可能性がある。そのような場合は、非特許文献6や、非特許文献7のような、拡張されたSVMを用いるようにすれば良い。拡張されたSVMの詳細は、非特許文献6や、非特許文献7に詳細に記載されているので、説明を省略する。
【0167】
また本実施形態では、SVMの学習を用いて、カーネルパラメータが設定された後の、高次特徴空間内の1次元線形部分空間を求めたが、これに限るものではない。例えば、カーネルパラメータ更新時に用いたのと同じ、KLDAを、カーネルパラメータが設定された後に実行しても良い。
【0168】
KLDAを用いた場合、SVMの学習とは異なり、この1次元部分空間上での、識別の境界を決める値は決まらない。そこで、例えば、この1次元部分空間に写像した学習データの、各クラスの平均の中点位置を、識別の境界を決める値として用いたり、別のテストデータを用いて、求める性能となる値を実験的に求めたりすれば良い。またKLDAは、そのまま多クラスの場合にも応用できる。この場合、2クラスでは1次元の部分空間が得られるが、多クラスの場合、クラス数をCとすると、C−1次元の部分空間が得られる。そこで、このC−1次元の部分空間に学習データを写像して記録しておき、実際のパターン識別時には、入力データを同じC−1次元の部分空間に写像して、その空間上で、例えば最近傍法等を用いてパターン識別を実行する等すれば良い。
【0169】
以上、第2の実施形態は、学習用のパターン集合から、本発明のパターン識別方法におけるパラメータを決定し、決定したパラメータを用いて、未知のパターンが何れのクラスに属するかを識別するパターン識別方法の例として説明した。
【0170】
上記説明した、第1、及び第2の実施形態のデータ表現方法もしくはパターン識別方法の例では、人物の顔を切り出したグレースケール画像を入力データとして用いた。しかし、本発明はこれに限るものではなく、その他のカテゴリの画像データや、音声データに対しても適用可能であることは明らかである。また、例えばWebコンテンツ等の一般的なデータであっても、何らかの方法で、多次元のベクトルとして表現可能なデータであれば、本発明は適用可能である。
【0171】
また、第1、及び第2の実施形態では、カーネル関数として、いわゆるガウシアンカーネルタイプのものを用いたが、その他のカーネル関数を用いることも可能である。この場合、カーネルパラメータの更新方法や、収束判定条件等を適切に定めてやれば、データの分布が、高次特徴空間において所望の分布となるようなカーネルパラメータを求めることができる。また、第1、及び第2の実施形態では、代表的なカーネル法として、KPCA、KLDA、SVMに対して本発明を適用した。しかし、これに限るものでなく、その他のカーネル法においても、所望の分布である高次特徴空間になるように、カーネルパラメータを設定する方法のフレームワークとして適用可能である。
【0172】
以上、本発明に係る実施形態を説明したが、本発明は、コンピュータプログラムによっても実現できることは明らかである。また、通常コンピュータプログラムは、CDROM等のコンピュータ読み取り可能な記憶媒体に記憶されており、それをコンピュータが有する記憶媒体ドライブ装置にセットし、システムにコピーもしくはインストールすることで実行可能になる。そのため、本発明はかかるコンピュータ可読記憶媒体をもその範疇とするのは明らかである。
【0173】
なお本発明は、記憶媒体から読出されたプログラムをCPUが実行することによって、前述した実施形態の各機能が実現される場合も含まれる。
【0174】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク,ハードディスク,光ディスク,光磁気ディスク,CD、DVD,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0175】
さらに、画像入力装置、情報蓄積機器、またこれらが複合または接続された装置において、両方またはいずれかの装置に備わるCPUなどが実際の処理の一部または全部を行うことで前述した実施形態の機能が実現される場合も含まれる。
【0176】
上記画像入力装置としては、ビデオカメラ、デジタルカメラ、監視カメラなど各種CCDを利用したカメラやスキャナ、アナログ画像入力装置からAD変換によりデジタル画像に変換された画像入力装置が利用できる。上記情報蓄積機器としては、外部ハードディスク、ビデオレコーダなどが利用できる。
【図面の簡単な説明】
【0177】
【図1】第1の実施形態におけるデータ処理装置の機能構成を示すブロック図である。
【図2】第1の実施形態における学習モードの処理手順を示すフローチャートである。
【図3】第1の実施形態におけるデータ表現モードの処理手順を示すフローチャートである。
【図4】第2の実施形態におけるパターン識別装置の機能構成を示すブロック図である。
【図5】第2の実施形態における学習モードの処理手順を示すフローチャートである。
【図6】第2の実施形態におけるパターン識別モードの処理手順を示すフローチャートである。

【特許請求の範囲】
【請求項1】
複数の学習データを入力する学習データ入力工程と、
少なくとも1つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する分析工程と、
前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する更新工程と、
更新後の前記学習カーネルパラメータにより定まる高次特徴空間における線形部分空間を決定する決定工程と、
入力データを入力する入力データ入力工程と、
前記入力データに対して少なくとも1つの入力カーネルパラメータを設定する設定工程と、
前記入力カーネルパラメータと更新後の前記学習カーネルパラメータとに基づいて、前記入力データを前記線形部分空間におけるデータ表現に変換する変換工程とを有することを特徴とするデータ変換方法。
【請求項2】
前記学習カーネルパラメータの更新が収束したか否かを判定する判定工程を更に有し、
前記判定工程において収束したと判定されるまで、前記分析工程と前記更新工程とを再帰的に実行することを特徴とする請求項1に記載のデータ変換方法。
【請求項3】
前記カーネル関数は、前記少なくとも1つのカーネルパラメータをθとし、前記学習データの任意のデータxi及びxjの前記高次特徴空間への写像後のデータをφ(xi)及びφ(xj)とするとき、それらの内積φ(xi)Tφ(xj)がK(xi、xj;σ)となる関数であることを特徴とする請求項1に記載のデータ変換方法。
【請求項4】
前記カーネル関数は、少なくとも1つの前記学習カーネルパラメータをσ、少なくとも1つの前記入力カーネルパラメータをσ’として、前記学習データの任意のデータx及びyの前記高次特徴空間への写像後のデータφ(x)及びφ(y)の内積φ(x)φ(y)が、K(x、y;σ、σ’)となる関数であることを特徴とする請求項1に記載のデータ変換方法。
【請求項5】
前記分析工程では、前記高次特徴空間に写像された任意の2つの前記学習用データに対する内積を用いて分析可能な分布の情報を抽出することを特徴とする請求項1に記載のデータ変換方法。
【請求項6】
前記抽出する分布の情報は、前記高次特徴空間に写像された全ての前記学習用データそれぞれを中心とする、前記学習データ近傍の局所的な密度であることを特徴とする請求項5に記載のデータ変換方法。
【請求項7】
前記分析工程では、前記局所的な密度を、前記学習用データを中心とする前記高次特徴空間内の所定の個数の学習用データを内包する超球の半径を算出することにより求めることを特徴とする請求項6に記載のデータ変換方法。
【請求項8】
前記分析工程では、前記局所的な密度を、前記学習データを中心とする、前記高次特徴空間での所定の半径の超球内に含まれる前記学習データの個数を算出することにより求めることを特徴とする請求項6に記載のデータ変換方法。
【請求項9】
前記分析工程では、前記抽出する分布の情報を、前記高次特徴空間に写像された前記学習データの統計量から求めることを特徴とする請求項5に記載のデータ変換方法。
【請求項10】
前記統計量から求められる分布の情報は、クラス内分散とクラス間分散との比であることを特徴とする請求項9に記載のデータ変換方法。
【請求項11】
前記分析工程では、前記クラス内分散とクラス間分散との比を、前記高次特徴空間において、前記クラス内分散とクラス間分散との比が最大となる線形部分空間において求めることを特徴とする請求項10に記載のデータ変換方法。
【請求項12】
前記分析工程では、前記クラス内分散とクラス間分散との比が最大となる線形部分空間を、前記高次特徴空間に写像された前記学習データに対して判別分析を実施することにより求めることを特徴とする請求項11に記載のデータ変換方法。
【請求項13】
前記更新工程では、前記高次特徴空間における前記学習データの近傍の局所的な密度が一定になるように、前記学習カーネルパラメータを更新することを特徴とする請求項6に記載のデータ変換方法。
【請求項14】
前記更新工程では、前記高次特徴空間における前記学習データ近傍の局所的な密度と比例するように、前記学習カーネルパラメータを更新することを特徴とする請求項6に記載のデータ変換方法。
【請求項15】
前記更新工程では、前記クラス内分散とクラス間分散との比が最大となる線形部分空間において求めた前記クラス内分散とクラス間分散との比が極大値となるように、前記学習カーネルパラメータを更新することを特徴とする請求項11に記載のデータ変換方法。
【請求項16】
前記分析工程では、前記クラス内分散とクラス間分散との比が最大となる線形部分空間を、前記高次特徴空間内の前記学習データに対して判別分析を実施することにより求めることを特徴とする請求項15に記載のデータ変換方法。
【請求項17】
前記更新工程では、前記クラス内分散とクラス間分散との比が最大となる線形部分空間において求めた前記クラス内分散とクラス間分散との比の、前記学習カーネルパラメータによる偏微分係数に比例した値を求め、該値を加えることで前記カーネルパラメータを更新することを特徴とする請求項15に記載のデータ変換方法。
【請求項18】
前記判定工程では、前記学習カーネルパラメータの更新の前後での値の差を判定することを特徴とする請求項2に記載のデータ変換方法。
【請求項19】
前記決定工程では、前記高次特徴空間に写像された前記学習用データの分散が大きくなるような線形部分空間を求めることを特徴とする請求項1に記載のデータ変換方法。
【請求項20】
前記決定工程では、前記高次特徴空間内の前記学習用データに対して主成分分析を実施することを特徴とする請求項19に記載のデータ変換方法。
【請求項21】
前記決定工程では、前記高次特徴空間に写像された前記学習用データのクラス内分散とクラス間分散との比が大きくなるような線形部分空間を求めることを特徴とする請求項1に記載のデータ変換方法。
【請求項22】
前記決定工程では、前記高次特徴空間内の前記学習データに対して判別分析を実施することを特徴とする請求項21に記載のデータ変換方法。
【請求項23】
前記少なくとも1つの入力カーネルパラメータを設定する工程は、予め定められた値を設定する工程であることを特徴とする請求項1に記載のデータ変換方法。
【請求項24】
前記設定工程では、更新後の前記学習カーネルパラメータの平均の値を設定することを特徴とする請求項1に記載のデータ変換方法。
【請求項25】
前記設定工程は、
前記入力カーネルパラメータの初期値を設定する工程と、
更新後の前記学習カーネルパラメータと前記入力カーネルパラメータとにより定まる高次特徴空間への非線形写像により、前記学習データと前記入力データを、前記高次特徴空間に写像した時の、前記学習データと前記入力データとの前記高次特徴空間における分布を分析する工程と、
前記学習データと前記入力データとの前記高次特徴空間における分布の分析結果に基づいて、前記入力カーネルパラメータを更新する工程と、
更新後の前記入力カーネルパラメータを設定する工程とを有することを特徴とする請求項1に記載のデータ変換方法。
【請求項26】
前記入力カーネルパラメータの更新が収束したか否かを判定する判定工程を更に有し、
前記判定工程において収束したと判定されるまで、前記学習データと前記入力データとの分布を分析する工程と、前記入力カーネルパラメータを更新する工程とを再帰的に実行することを特徴とする請求項25に記載のデータ変換方法。
【請求項27】
前記入力カーネルパラメータを更新する工程では、前記入力カーネルパラメータのみを更新することを特徴とする請求項25に記載のデータ変換方法。
【請求項28】
前記入力カーネルパラメータの更新が収束したか否かを、前記学習カーネルパラメータの更新が収束したか否かと同様に判定することを特徴とする請求項26に記載のデータ変換方法。
【請求項29】
前記線形部分空間は、少なくとも1つの前記高次特徴空間に写像した前記学習データの重み付き線形結合ベクトルが基底ベクトルとなる空間であり、
前記入力データを少なくとも1つの前記基底ベクトルに写像することにより、前記線形部分空間において前記入力データを表現するデータへ変換することを特徴とする請求項1に記載のデータ変換方法。
【請求項30】
複数の学習データを入力する学習データ入力工程と、
少なくとも1つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する分析工程と、
前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する更新工程と、
更新後の前記学習カーネルパラメータにより定まる高次特徴空間おいて、前記高次特徴空間に写像した前記学習データの少なくとも1つの重み付き線形結合ベクトルを基底ベクトルとする線形部分空間へ、データ集合を変換する変換工程とを有することを特徴とするデータ変換方法。
【請求項31】
前記更新後のカーネルパラメータ及び少なくとも1つの基底ベクトルを入力する工程と、
入力データを入力する工程と、
前記入力データに対応する少なくとも1つの入力カーネルパラメータを設定する工程と、
前記少なくとも1つの入力カーネルパラメータと、前記更新後のカーネルパラメータと、前記少なくとも1つの基底ベクトルとを用いて、前記少なくとも1つの基底ベクトルが張る空間におけるデータ表現に、前記入力データを変換することを特徴とする請求項30に記載のデータ変換方法。
【請求項32】
請求項1に記載のデータ変換方法により変換されたデータ表現に基づいて、前記入力データが何れのクラスに属するのかを識別することを特徴とするパターン識別方法。
【請求項33】
前記決定工程では、前記高次特徴空間に写像された前記学習データのマージンが大きくなるような1次元の線形部分空間を求めることを特徴とする請求項32に記載のパターン識別方法。
【請求項34】
前記決定工程では、前記高次特徴空間内の前記学習データに対して、最適超平面識別法を実施することにより求められる超平面上に原点を有する、前記超平面の法線方向と一致する1次元部分空間を求めることを特徴とする請求項33に記載のパターン識別方法。
【請求項35】
複数の学習データを入力する学習データ入力工程と、
少なくとも1つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する分析工程と、
前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する更新工程と、
前記高次特徴空間における前記線形部分空間を張る少なくとも1つの基底ベクトルを、前記更新後のカーネルパラメータにより定まる高次特徴空間おける、前記高次特徴空間に写像した前記学習データの重み付き線形結合ベクトルとして求める工程と、
前記学習データを前記線形部分空間へ写像した結果に基づいて、前記学習データのクラス分布を表現するデータを生成する工程とを有することを特徴とするデータ変換方法。
【請求項36】
前記更新後のカーネルパラメータ、少なくとも1つの基底ベクトル、及び学習データのクラス分布を表現するデータを入力する工程と、
入力データを入力する工程と、
前記入力データに対応する少なくとも1つの入力カーネルパラメータを設定する工程と、
前記入力カーネルパラメータと、前記入力した、更新後のカーネルパラメータと、前記少なくとも1つの基底ベクトルとに基づいて、前記少なくとも1つの基底ベクトルが張る空間における表現に、前記入力データを変換する工程と、
前記学習データのクラス分布を表現するデータと、前記少なくとも1つの基底ベクトルが張る空間において表現された前記入力データとを比較することにより、前記入力データが何れのクラスに属するのかを識別する識別工程とを有することを特徴とする請求項35に記載のデータ変換方法。
【請求項37】
複数の学習データを入力する手段と、
少なくとも1つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する手段と、
前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する手段と、
更新後の前記学習カーネルパラメータにより定まる高次特徴空間における線形部分空間を決定する手段と、
入力データを入力する手段と、
前記入力データに対して少なくとも1つの入力カーネルパラメータを設定する手段と、
前記入力カーネルパラメータと更新後の前記学習カーネルパラメータとに基づいて、前記入力データを前記線形部分空間におけるデータ表現に変換する手段とを有することを特徴とするデータ変換装置。
【請求項38】
複数の学習データを入力する手段と、
前記カーネルパラメータの初期値を設定する手段と、
前記カーネルパラメータにより定まる高次特徴空間への非線形写像により、前記学習用データを、前記高次特徴空間に写像した時の、前記学習データの前記高次特徴空間における分布を分析する手段と、
前記分布の分析結果に基づいて、前記カーネルパラメータを更新する手段と、
更新後の前記カーネルパラメータにより定まる高次特徴空間おいて、少なくとも1つの、前記高次特徴空間に写像した前記学習用データの重み付き線形結合ベクトルを基底ベクトルとする、前記高次特徴空間の線形部分空間を、前記線形部分空間として表現する手段を有することを特徴とするデータ表現装置。
【請求項39】
複数の学習データを入力する手段と、
少なくとも1つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する手段と、
前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する手段と、
前記高次特徴空間における前記線形部分空間を張る少なくとも1つの基底ベクトルを、更新後の前記学習カーネルパラメータにより定まる高次特徴空間おける、前記高次特徴空間に写像した前記学習用データの重み付き線形結合ベクトルとして求める手段と、
前記学習データを前記線形部分空間へ写像した結果に基づいて、学習データのクラス分布を生成する手段とを有することを特徴とするデータ変換装置。
【請求項40】
請求項1乃至36に記載の方法をコンピュータに実行させるためのコンピュータ読み取り可能なプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate