(57)【特許請求の範囲】
【請求項１】
複数の学習データを入力する学習データ入力工程と、
少なくとも１つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する分析工程と、
前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する更新工程と、
更新後の前記学習カーネルパラメータにより定まる高次特徴空間における線形部分空間を決定する決定工程と、
入力データを入力する入力データ入力工程と、
前記入力データに対して少なくとも１つの入力カーネルパラメータを設定する設定工程と、
前記入力カーネルパラメータと更新後の前記学習カーネルパラメータとに基づいて、前記入力データを前記線形部分空間におけるデータ表現に変換する変換工程とを有することを特徴とするデータ変換方法。
【請求項２】
前記学習カーネルパラメータの更新が収束したか否かを判定する判定工程を更に有し、
前記判定工程において収束したと判定されるまで、前記分析工程と前記更新工程とを再帰的に実行することを特徴とする請求項１に記載のデータ変換方法。
【請求項３】
前記カーネル関数は、前記少なくとも１つのカーネルパラメータをθとし、前記学習データの任意のデータｘｉ及びｘｊの前記高次特徴空間への写像後のデータをφ（ｘｉ）及びφ（ｘｊ）とするとき、それらの内積φ（ｘｉ）Ｔφ（ｘｊ）がＫ（ｘｉ、ｘｊ；σ）となる関数であることを特徴とする請求項１に記載のデータ変換方法。
【請求項４】
前記カーネル関数は、少なくとも１つの前記学習カーネルパラメータをσ、少なくとも１つの前記入力カーネルパラメータをσ’として、前記学習データの任意のデータｘ及びｙの前記高次特徴空間への写像後のデータφ（ｘ）及びφ（ｙ）の内積φ（ｘ）Ｔφ（ｙ）が、Ｋ（ｘ、ｙ；σ、σ’）となる関数であることを特徴とする請求項１に記載のデータ変換方法。
【請求項５】
前記分析工程では、前記高次特徴空間に写像された任意の２つの前記学習用データに対する内積を用いて分析可能な分布の情報を抽出することを特徴とする請求項１に記載のデータ変換方法。
【請求項６】
前記抽出する分布の情報は、前記高次特徴空間に写像された全ての前記学習用データそれぞれを中心とする、前記学習データ近傍の局所的な密度であることを特徴とする請求項５に記載のデータ変換方法。
【請求項７】
前記分析工程では、前記局所的な密度を、前記学習用データを中心とする前記高次特徴空間内の所定の個数の学習用データを内包する超球の半径を算出することにより求めることを特徴とする請求項６に記載のデータ変換方法。
【請求項８】
前記分析工程では、前記局所的な密度を、前記学習データを中心とする、前記高次特徴空間での所定の半径の超球内に含まれる前記学習データの個数を算出することにより求めることを特徴とする請求項６に記載のデータ変換方法。
【請求項９】
前記分析工程では、前記抽出する分布の情報を、前記高次特徴空間に写像された前記学習データの統計量から求めることを特徴とする請求項５に記載のデータ変換方法。
【請求項１０】
前記統計量から求められる分布の情報は、クラス内分散とクラス間分散との比であることを特徴とする請求項９に記載のデータ変換方法。
【請求項１１】
前記分析工程では、前記クラス内分散とクラス間分散との比を、前記高次特徴空間において、前記クラス内分散とクラス間分散との比が最大となる線形部分空間において求めることを特徴とする請求項１０に記載のデータ変換方法。
【請求項１２】
前記分析工程では、前記クラス内分散とクラス間分散との比が最大となる線形部分空間を、前記高次特徴空間に写像された前記学習データに対して判別分析を実施することにより求めることを特徴とする請求項１１に記載のデータ変換方法。
【請求項１３】
前記更新工程では、前記高次特徴空間における前記学習データの近傍の局所的な密度が一定になるように、前記学習カーネルパラメータを更新することを特徴とする請求項６に記載のデータ変換方法。
【請求項１４】
前記更新工程では、前記高次特徴空間における前記学習データ近傍の局所的な密度と比例するように、前記学習カーネルパラメータを更新することを特徴とする請求項６に記載のデータ変換方法。
【請求項１５】
前記更新工程では、前記クラス内分散とクラス間分散との比が最大となる線形部分空間において求めた前記クラス内分散とクラス間分散との比が極大値となるように、前記学習カーネルパラメータを更新することを特徴とする請求項１１に記載のデータ変換方法。
【請求項１６】
前記分析工程では、前記クラス内分散とクラス間分散との比が最大となる線形部分空間を、前記高次特徴空間内の前記学習データに対して判別分析を実施することにより求めることを特徴とする請求項１５に記載のデータ変換方法。
【請求項１７】
前記更新工程では、前記クラス内分散とクラス間分散との比が最大となる線形部分空間において求めた前記クラス内分散とクラス間分散との比の、前記学習カーネルパラメータによる偏微分係数に比例した値を求め、該値を加えることで前記カーネルパラメータを更新することを特徴とする請求項１５に記載のデータ変換方法。
【請求項１８】
前記判定工程では、前記学習カーネルパラメータの更新の前後での値の差を判定することを特徴とする請求項２に記載のデータ変換方法。
【請求項１９】
前記決定工程では、前記高次特徴空間に写像された前記学習用データの分散が大きくなるような線形部分空間を求めることを特徴とする請求項１に記載のデータ変換方法。
【請求項２０】
前記決定工程では、前記高次特徴空間内の前記学習用データに対して主成分分析を実施することを特徴とする請求項１９に記載のデータ変換方法。
【請求項２１】
前記決定工程では、前記高次特徴空間に写像された前記学習用データのクラス内分散とクラス間分散との比が大きくなるような線形部分空間を求めることを特徴とする請求項１に記載のデータ変換方法。
【請求項２２】
前記決定工程では、前記高次特徴空間内の前記学習データに対して判別分析を実施することを特徴とする請求項２１に記載のデータ変換方法。
【請求項２３】
前記少なくとも１つの入力カーネルパラメータを設定する工程は、予め定められた値を設定する工程であることを特徴とする請求項１に記載のデータ変換方法。
【請求項２４】
前記設定工程では、更新後の前記学習カーネルパラメータの平均の値を設定することを特徴とする請求項１に記載のデータ変換方法。
【請求項２５】
前記設定工程は、
前記入力カーネルパラメータの初期値を設定する工程と、
更新後の前記学習カーネルパラメータと前記入力カーネルパラメータとにより定まる高次特徴空間への非線形写像により、前記学習データと前記入力データを、前記高次特徴空間に写像した時の、前記学習データと前記入力データとの前記高次特徴空間における分布を分析する工程と、
前記学習データと前記入力データとの前記高次特徴空間における分布の分析結果に基づいて、前記入力カーネルパラメータを更新する工程と、
更新後の前記入力カーネルパラメータを設定する工程とを有することを特徴とする請求項１に記載のデータ変換方法。
【請求項２６】
前記入力カーネルパラメータの更新が収束したか否かを判定する判定工程を更に有し、
前記判定工程において収束したと判定されるまで、前記学習データと前記入力データとの分布を分析する工程と、前記入力カーネルパラメータを更新する工程とを再帰的に実行することを特徴とする請求項２５に記載のデータ変換方法。
【請求項２７】
前記入力カーネルパラメータを更新する工程では、前記入力カーネルパラメータのみを更新することを特徴とする請求項２５に記載のデータ変換方法。
【請求項２８】
前記入力カーネルパラメータの更新が収束したか否かを、前記学習カーネルパラメータの更新が収束したか否かと同様に判定することを特徴とする請求項２６に記載のデータ変換方法。
【請求項２９】
前記線形部分空間は、少なくとも１つの前記高次特徴空間に写像した前記学習データの重み付き線形結合ベクトルが基底ベクトルとなる空間であり、
前記入力データを少なくとも１つの前記基底ベクトルに写像することにより、前記線形部分空間において前記入力データを表現するデータへ変換することを特徴とする請求項１に記載のデータ変換方法。
【請求項３０】
複数の学習データを入力する学習データ入力工程と、
少なくとも１つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する分析工程と、
前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する更新工程と、
更新後の前記学習カーネルパラメータにより定まる高次特徴空間おいて、前記高次特徴空間に写像した前記学習データの少なくとも１つの重み付き線形結合ベクトルを基底ベクトルとする線形部分空間へ、データ集合を変換する変換工程とを有することを特徴とするデータ変換方法。
【請求項３１】
前記更新後のカーネルパラメータ及び少なくとも１つの基底ベクトルを入力する工程と、
入力データを入力する工程と、
前記入力データに対応する少なくとも１つの入力カーネルパラメータを設定する工程と、
前記少なくとも１つの入力カーネルパラメータと、前記更新後のカーネルパラメータと、前記少なくとも１つの基底ベクトルとを用いて、前記少なくとも１つの基底ベクトルが張る空間におけるデータ表現に、前記入力データを変換することを特徴とする請求項３０に記載のデータ変換方法。
【請求項３２】
請求項１に記載のデータ変換方法により変換されたデータ表現に基づいて、前記入力データが何れのクラスに属するのかを識別することを特徴とするパターン識別方法。
【請求項３３】
前記決定工程では、前記高次特徴空間に写像された前記学習データのマージンが大きくなるような１次元の線形部分空間を求めることを特徴とする請求項３２に記載のパターン識別方法。
【請求項３４】
前記決定工程では、前記高次特徴空間内の前記学習データに対して、最適超平面識別法を実施することにより求められる超平面上に原点を有する、前記超平面の法線方向と一致する１次元部分空間を求めることを特徴とする請求項３３に記載のパターン識別方法。
【請求項３５】
複数の学習データを入力する学習データ入力工程と、
少なくとも１つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する分析工程と、
前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する更新工程と、
前記高次特徴空間における前記線形部分空間を張る少なくとも１つの基底ベクトルを、前記更新後のカーネルパラメータにより定まる高次特徴空間おける、前記高次特徴空間に写像した前記学習データの重み付き線形結合ベクトルとして求める工程と、
前記学習データを前記線形部分空間へ写像した結果に基づいて、前記学習データのクラス分布を表現するデータを生成する工程とを有することを特徴とするデータ変換方法。
【請求項３６】
前記更新後のカーネルパラメータ、少なくとも１つの基底ベクトル、及び学習データのクラス分布を表現するデータを入力する工程と、
入力データを入力する工程と、
前記入力データに対応する少なくとも１つの入力カーネルパラメータを設定する工程と、
前記入力カーネルパラメータと、前記入力した、更新後のカーネルパラメータと、前記少なくとも１つの基底ベクトルとに基づいて、前記少なくとも１つの基底ベクトルが張る空間における表現に、前記入力データを変換する工程と、
前記学習データのクラス分布を表現するデータと、前記少なくとも１つの基底ベクトルが張る空間において表現された前記入力データとを比較することにより、前記入力データが何れのクラスに属するのかを識別する識別工程とを有することを特徴とする請求項３５に記載のデータ変換方法。
【請求項３７】
複数の学習データを入力する手段と、
少なくとも１つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する手段と、
前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する手段と、
更新後の前記学習カーネルパラメータにより定まる高次特徴空間における線形部分空間を決定する手段と、
入力データを入力する手段と、
前記入力データに対して少なくとも１つの入力カーネルパラメータを設定する手段と、
前記入力カーネルパラメータと更新後の前記学習カーネルパラメータとに基づいて、前記入力データを前記線形部分空間におけるデータ表現に変換する手段とを有することを特徴とするデータ変換装置。
【請求項３８】
複数の学習データを入力する手段と、
カーネルパラメータの初期値を設定する手段と、
前記カーネルパラメータにより定まる高次特徴空間への非線形写像により、前記学習用データを、前記高次特徴空間に写像した時の、前記学習データの前記高次特徴空間における分布を分析する手段と、
前記分布の分析結果に基づいて、前記カーネルパラメータを更新する手段と、
更新後の前記カーネルパラメータにより定まる高次特徴空間おいて、少なくとも１つの、前記高次特徴空間に写像した前記学習用データの重み付き線形結合ベクトルを基底ベクトルとする、前記高次特徴空間の線形部分空間を、前記線形部分空間として表現する手段を有することを特徴とするデータ表現装置。
【請求項３９】
複数の学習データを入力する手段と、
少なくとも１つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する手段と、
前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する手段と、
前記高次特徴空間における前記線形部分空間を張る少なくとも１つの基底ベクトルを、更新後の前記学習カーネルパラメータにより定まる高次特徴空間おける、前記高次特徴空間に写像した前記学習用データの重み付き線形結合ベクトルとして求める手段と、
前記学習データを前記線形部分空間へ写像した結果に基づいて、学習データのクラス分布を生成する手段とを有することを特徴とするデータ変換装置。
【請求項４０】
請求項１乃至３６に記載の方法をコンピュータに実行させるためのコンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非線形な分布のパターン集合に対する高効率なデータ表現を生成するデータ変換方法に関するものである。また、識別すべきパターンに対する、データ取得環境の差異や、データ取得時に付加されるノイズに起因する、種々のパターンの変動にロバストなパターン識別方法に関するものである。
【背景技術】
【０００２】
非線形な分布のパターン集合に対応するため、カーネル法と呼ばれる手法を用いて、線形の手法を非線形に拡張する手法が多く提案されている。例えば、非特許文献１のカーネル非線形主成分分析（ＫＰＣＡ）では、線形の主成分分析（ＰＣＡ）を、カーネル法を用いて拡張し、非線形なＰＣＡを実現している。
【０００３】
また、線形のパターン識別方法である非特許文献２のOptimal Hyperplane Classifier（最適超平面識別法）を、カーネル法を用いて非線形への拡張を可能にすることが提案されている。例えば、非特許文献３のサポートベクターマシン（ＳＶＭ）や、非特許文型１の手法を用いて、非特許文献４の部分空間法を非線形に拡張した、特許文献１のカーネル非線形部分空間法なども提案されている。
【０００４】
一般的に、非線形な分布のパターン集合に対応するためには、パターン集合を非線形な変換φにより高次特徴空間に写像し、写像後の高次特徴空間において線形の手法を適用する。カーネル法では、この高次特徴空間における演算、具体的には２つの写像されたパターンφ（ｘ）、φ（ｙ）の内積φ（ｘ）Ｔφ（ｙ）を、カーネル関数Ｋ（ｘ、ｙ）を用いて、φ（ｘ）Ｔφ（ｙ）＝Ｋ（ｘ、ｙ）とする。これにより、場合によっては演算不可能である非線形な変換を陰に実現し、高次特徴空間において線形の手法が適用可能となる。
【０００５】
カーネル関数としては、ガウシアンカーネルＫ（ｘ、ｙ）＝ｅｘｐ（−｜ｘ−ｙ｜２／２σ２）や、多項式カーネルＫ（ｘ、ｙ）＝（１−ｘＴｙ）ｐといったものが用いられることが多い。これに対し、非特許文献５では、カーネル関数にコンフォーマル変換を加えることで、ＳＶＭの性能を向上させる手法を提案している。
【０００６】
また、上記従来のカーネル法では、カーネル関数が正定値対称であるものに限られていた。これに対し、非特許文献６の可変カーネル関数を用いたＳＶＭや、非特許文献７の非対称カーネルＳＶＭでは、カーネル法の理論を拡張している。すなわち、カーネル関数のカーネルパラメータ（例えば上記ガウシアンカーネルのσ）に自由度を持たせることを可能にし、性能を向上させる手法が提案されている。
【０００７】
このように、線形の手法を非線形に拡張するカーネル法において、カーネル関数を工夫することで、性能を向上させる手法が多く提案されている。特に、非特許文献６、７のように、カーネル関数の性質を決定付けるカーネルパラメータに自由度を持たせるといった手法は、カーネル法の表現力を増大させることができ、大きく性能を向上させられる可能性がある。この自由度を持ったカーネルパラメータの設定は、性能の向上に大きく寄与するが、この設定方法に明確な基準は無く、現状では何らかのヒューリスティックな手法で設定している。
【特許文献１】特開２０００−９０２７４号公報
【非特許文献１】Bernhard Scholkopf, Alexander Smola, Klaus-Robert Muller, “Nonlinear Component Analysis as a Kernel Eigenvalue Problem”, Neural Computation, Vol. 10, pp. 1299-1319, 1998
【非特許文献２】Vladimir N. Vapnik, A. Lerner, “Pattern Recognition using Generalized Portrait Method”, Automation and Remote Control, 24, pp. 774-780, 1963
【非特許文献３】Vladimir N. Vapnik, “The Nature of Statistical Learning Theory”, Springer Verlag, August 1995
【非特許文献４】S. Watanabe, N. Pakvasa, “Subspace Method of Pattern Recognition”, Proceedings of 1st International Joint Conference of Pattern Recognition, pp. 25-32, 1973
【非特許文献５】S. Amari, S. Wu, “Improving Support Vector Machine Classifiers by Modifying Kernel Function”, Neural Networks, Vol. 12, pp783-789, July 1999
【非特許文献６】津田 宏治, “可変カーネル関数を用いたＳｕｐｐｏｒｔ Ｖｅｃｔｏｒ Ｍａｃｈｉｎｅ”, 信学技法 PRMU 98-175, pp. 195-202, December 1998
【非特許文献７】柳 森, 山下 幸彦, “カーネル理論の拡張と非対称カーネルサポートベクターマシン”, 第７回情報論的学習理論ワークショップ, S18, November 2004
【非特許文献８】G. Baudat, F. Anouar, “Generalized Discriminant Analysis Using Kernel Approach”, Neural Computation, Vol. 12, No. 10, pp2387-2404, October 2000
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、このような点に鑑みなされたものであり、カーネルパラメータに自由度を持たせたカーネル法において、カーネルパラメータを設定する手法を提供することを目的とする。
【０００９】
また、それを用いた、非線形な分布のパターン集合に対する高効率なデータ表現へのデータ変換方法、及び、種々のパターンの変動にロバストなパターンの識別方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明によれば、データ変換方法に、複数の学習データを入力する学習データ入力工程と、少なくとも１つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する分析工程と、前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する更新工程と、更新後の前記学習カーネルパラメータにより定まる高次特徴空間における線形部分空間を決定する決定工程と、入力データを入力する入力データ入力工程と、前記入力データに対して少なくとも１つの入力カーネルパラメータを設定する設定工程と、前記入力カーネルパラメータと更新後の前記学習カーネルパラメータとに基づいて、前記入力データを前記線形部分空間におけるデータ表現に変換する変換工程とを備える。
【００１１】
また、本発明の他の態様によれば、データ変換方法に、複数の学習データを入力する学習データ入力工程と、少なくとも１つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する分析工程と、前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する更新工程と、更新後の前記学習カーネルパラメータにより定まる高次特徴空間おいて、前記高次特徴空間に写像した前記学習データの少なくとも１つの重み付き線形結合ベクトルを基底ベクトルとする線形部分空間へ、データ集合を変換する変換工程とをとを備える。
【００１２】
また、本発明の他の態様によれば、データ変換方法に、複数の学習データを入力する学習データ入力工程と、少なくとも１つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する分析工程と、前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する更新工程と、前記高次特徴空間における前記線形部分空間を張る少なくとも１つの基底ベクトルを、前記更新後のカーネルパラメータにより定まる高次特徴空間おける、前記高次特徴空間に写像した前記学習データの重み付き線形結合ベクトルとして求める工程と、前記学習データを前記線形部分空間へ写像した結果に基づいて、前記学習データのクラス分布を表現するデータを生成する工程とを備える。
【００１３】
また、本発明の他の態様によれば、データ変換装置に、複数の学習データを入力する手段と、少なくとも１つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する手段と、前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する手段と、更新後の前記学習カーネルパラメータにより定まる高次特徴空間における線形部分空間を決定する手段と、入力データを入力する手段と、前記入力データに対して少なくとも１つの入力カーネルパラメータを設定する手段と、前記入力カーネルパラメータと更新後の前記学習カーネルパラメータとに基づいて、前記入力データを前記線形部分空間におけるデータ表現に変換する手段とを備える。
【００１４】
また、本発明の他の態様によれば、データ変換装置に、複数の学習データを入力する手段と、カーネルパラメータの初期値を設定する手段と、前記カーネルパラメータにより定まる高次特徴空間への非線形写像により、前記学習用データを、前記高次特徴空間に写像した時の、前記学習データの前記高次特徴空間における分布を分析する手段と、前記分布の分析結果に基づいて、前記カーネルパラメータを更新する手段と、前記更新後カーネルパラメータにより定まる高次特徴空間おいて、少なくとも１つの、前記高次特徴空間に写像した前記学習用データの重み付き線形結合ベクトルを基底ベクトルとする、前記高次特徴空間の線形部分空間を、前記線形部分空間として表現する手段とを備える。
【００１５】
また、本発明の他の態様によれば、データ変換装置に、複数の学習データを入力する手段と、少なくとも１つの学習カーネルパラメータを有するカーネル関数により定まる高次特徴空間への非線形写像により、前記学習データを写像した時の分布を分析する手段と、前記分布の分析結果に基づいて、前記学習カーネルパラメータを更新する手段と、前記高次特徴空間における前記線形部分空間を張る少なくとも１つの基底ベクトルを、更新後の前記学習カーネルパラメータにより定まる高次特徴空間おける、前記高次特徴空間に写像した前記学習用データの重み付き線形結合ベクトルとして求める手段と、前記学習データを前記線形部分空間へ写像した結果に基づいて、学習データのクラス分布を生成する手段とを備える。
【発明の効果】
【００１６】
本発明によれば、非線形な分布のパターン集合に対する高効率なデータ表現を実現でき、種々のパターンの変動にロバストなパターンの識別を実現することができる。
【発明を実施するための最良の形態】
【００１７】
以下、添付図面を参照しながら、本発明の実施形態を説明する。
【００１８】
（第１の実施の形態）
本発明の第１の実施形態として、学習用のパターン集合からパラメータを決定し、未知のパターンを、決定したパラメータを用いて表現するデータ表現へ変換する例を示す。
【００１９】
本実施形態におけるパターン集合としては、縦横２０×２０画素の、人物の顔を切り出したグレースケール画像を用いる。縦横２０×２０のグレースケール画像は、各画素値を、ラスタスキャン的に要素として並べた、２０×２０＝４００次元のベクトルと見なせる。この場合、１つのパターンは、４００次元空間内の１つの点となる。
【００２０】
一般に、例えば“人物の顔”といった特定のクラスであるパターンの集合は、４００次元の空間に比べてより低次元の、一般的に多様体と呼ばれる超曲面を形成する。つまり、“人物の顔”を表現するには、４００次元は冗長であり、より低い次元の空間で表現可能である。この冗長性を削減するための最も一般的な手法として、ＰＣＡを用いた手法がある。しかし、“人物の顔”のように、例えば顔の向きの変動等、本質的に非線形な変動を含むパターンの集合に対して、パターン分布が正規分布であることを仮定しているＰＣＡでは、充分な冗長性削減を期待できない。
【００２１】
そこで、非特許文献１で提案されているＫＰＣＡでは、カーネル法を用いて、通常のＰＣＡを非線形化し、これにより、非線形な分布のパターン集合に対して、より良い冗長性削減性能を実現している。
【００２２】
しかし、カーネル法を用いた非線形化では、カーネル関数の性質を決定するカーネルパラメータの設定は、その性能に大きく寄与するのに関わらず、ヒューリスティックな設定方法が用いられることが一般的であり、明確な設定基準が無い。そこで本実施形態では、カーネル法によって陰に実現される非線形写像の写像先である高次特徴空間における学習用パターン集合の分布に基づいて、カーネルパラメータを決定し、これを用いて冗長性を削減したデータ表現を実現する。
【００２３】
本実施形態では、高次特徴空間における学習パターン集合の分布が均一になるような、カーネルパラメータを決定方法の例を示す。そして、通常のＫＰＣＡと同様に、この高次特徴空間において学習パターン集合の分散が大きくなるような、高次特徴空間の線形部分空間を求め、この求めた空間におけるデータの表現を行う。これにより、例えば本実施形態のように、人物の顔画像を、学習データの分布が均一となる高次特徴空間の、学習データの分散が大きくなるような線形部分空間上で表現することが可能になり、高効率なデータ表現が可能になる。
【００２４】
具体的には、例えば、この人物の顔画像が誰であるのか、若しくは、それがどのような顔向きであるのかといった分析において有効なデータ表現を可能とする。
【００２５】
第１の実施形態は、学習モードの処理とデータ表現モードの処理との２つのブロックに大別できる。図１に、第１の実施形態における、学習モードの処理ブロック１０、及びデータ表現モードの処理ブロック１１を示す。学習モードでの処理は、複数の人物の顔画像データを入力し、各データに対応するカーネルパラメータ、及び、通常のＫＰＣＡにおいて、固有値分解により求められる線形結合パラメータセットを求める処理に対応する。一方、データ表現モードでの処理は、未知の人物の顔画像データを入力し、学習モードで用いた複数の顔画像データと、学習モードで求めたカーネルパラメータ、線形結合パラメータを用いて、未知の人物の顔画像データを、冗長性を削減して表現する。
【００２６】
第１の実施形態の、学習モードにおける処理のフローを図２に、データ表現モードにおける処理のフローを図３に示す。以下、まず、第１の実施形態の学習モードにおける処理について、図１における、学習モードの処理ブロック１０の部分、及び図２を用いて説明する。その後、データ表現モードにおける処理について、図１の、データ表現モードの処理ブロック１１の部分、及び図３を用いて説明する。
【００２７】
ステップＳ２０において、学習データ入力部１００は、人物の顔画像データを入力する。入力するデータは、上述の通り、２０×２０画素のグレースケール画像である。ここで、この入力データの、２０×２０画素の各画素値を、ラスタスキャン的に並べた４００次元のベクトルをｘとする。これを、以下では学習データと記載する。学習モードでの処理では、この学習データ入力部１００において、学習データを複数入力し、それらを学習データ保持部１０１に保持しておく。
【００２８】
ここで、入力した学習データの数をＮとする。この時、入力した人物の顔画像の、ｉ番目（１≦ｉ≦Ｎ）の入力データである４００次元のベクトルを、ｘｉとする。以下では、ｘｉをｉ番目の学習データと記載する。
【００２９】
ステップＳ２１において、初期カーネルパラメータ設定部１０２は、初期のカーネルパラメータを設定し、それをカーネルパラメータ保持部１０３に保持する。本実施形態では、各学習データそれぞれに対応したカーネルパラメータ（学習カーネルパラメータ）を用い、ｉ番目の学習データｘｉに対応するカーネルパラメータσｉとする。そして本実施形態では、このカーネルパラメータを用いて、ｉ番目とｊ番目の学習データｘｉ、ｘｊに対応するカーネル関数Ｋ（ｘｉ、ｘｊ）を、Ｋ（ｘｉ、ｘｊ）＝ｅｘｐ｛−｜ｘｉ−ｘｊ｜２／（σｉ２＋σｊ２）｝と定義する。つまり、カーネル法により陰に実現される高次特徴空間への非線形写像による、ｉ番目とｊ番目の学習データｘｉ、ｘｊの写像後の内積が、Ｋ（ｘｉ、ｘｊ）＝ｅｘｐ｛−｜ｘｉ−ｘｊ｜２／（σｉ２＋σｊ２）｝となる。
【００３０】
初期カーネルパラメータ設定部１０２で設定する初期のカーネルパラメータは、適当な初期値σ０を、全ての学習データの、対応するカーネルパラメータとする。つまり、σｎ＝σ０（ｎ＝１、２、・・・、Ｎ）とする。初期値σ０は、適当な値で構わないが、学習データ間のユークリッド距離オーダーの値にしておくことが好ましい。
【００３１】
本実施形態では、簡単のため、全ての初期のカーネルパラメータを同一の値に設定したが、これに限るものではなく、例えばそれぞれの値をランダムに設定するようにしても良い。この場合であっても、ランダムに設定する値は、学習データ間のユークリッド距離オーダーの値にしておくことが好ましい。
【００３２】
本実施形態で用いるカーネル関数は、１つの学習データに、１つのカーネルパラメータとしたが、これに限るものではない。複数のカーネルパラメータによって表現されるようなカーネル関数を用いるならば、それに対応して、１つの学習データに、複数のカーネルパラメータを用いるようにしても良い。また、本実施形態では、各学習データに独立にカーネルパラメータが存在するが、後述の第２の実施形態のように、全学習データで共通のカーネルパラメータを用いるような場合にも適用可能である。
【００３３】
続いて、ステップＳ２２において、特徴空間分布分析部１０４は、現在のカーネルパラメータにより定まるカーネル関数が陰に実現する高次特徴空間への非線形写像による、学習データの写像後の、高次特徴空間における分布を分析する。通常、この高次特徴空間内の分布を直接的に分析するのは困難である。しかし、カーネル法を用いることにより、高次特徴空間に写像された２つのデータの内積は、カーネル関数を用いることによって求めることができる。
【００３４】
そこで、この特徴空間分布分析部１０４では、高次特徴空間内での内積を用いて分析可能な分布の情報を分析結果として抽出する。本実施形態では、この高次特徴空間に写像された学習データの分布を示す情報として、写像された各学習データそれぞれに対して、その学習データを中心とする、局所的な領域での学習データ密度を抽出する。具体的には、高次特徴空間に写像された、１つの学習データに注目し、その学習データの位置を中心として、高次特徴空間に写像された、自身を除くｋ個の学習データを含むような超球を考え、この超球の半径を求める。求めた超球の半径は、学習データ近傍の密度の情報として扱うことができ、この半径が大きければ近傍の密度は低く、半径が小さければ近傍の密度は高いとみなすことできる。
【００３５】
ｉ番目の学習データｘｉに対する前述の超球の半径をｒｉとし、以下、このｒｉを求める手法について説明する。まず、カーネル関数が陰に実現する高次特徴空間への非線形写像より、ｉ番目の学習データｘｉが、高次特徴空間内のベクトルφ（ｘｉ）に写像されるとする。ｋ個の学習データを含む超球の半径ｒｉは、φ（ｘｉ）と、任意のｊ番目（ｊ≠ｉ）の学習データｘｊを写像したφ（ｘｊ）とのユークリッド距離ｄｉｊ＝｜φ（ｘｉ）−φ（ｘｊ）｜が判れば求めることができる。前述のように、学習データは全部でＮ個であるので、まず、Ｎ−１個の、ｊ≠ｉである全てのｊについて、このｄｉｊを求める。そして、求めたＮ−１個の距離｛ｄｉｊ｝（ｊ＝１、２、・・・、Ｎ：ｊ≠ｉ）の内、小さい方からｋ番目の値が、求めるｋ個の学習データを含む超球の半径ｒｉとなる。
【００３６】
このユークリッド距離ｄｉｊは、ｄｉｊ＝（｜φ（ｘｉ）−φ（ｘｊ）｜２）１／２であるので、｛φ（ｘｉ）Ｔφ（ｘｉ）−２φ（ｘｉ）Ｔφ（ｘｊ）＋φ（ｘｊ）Ｔφ（ｘｊ）｝１／２と変形できる。ここで、カーネル関数により、φ（ｘｉ）Ｔφ（ｘｊ）＝Ｋ（ｘｉ、ｘｊ）とできることを利用すると、ｄｉｊ＝｛Ｋ（ｘｉ、ｘｉ）−２Ｋ（ｘｉ、ｘｉ）＋Ｋ（ｘｊ、ｘｉ）｝１／２となり、ｄｉｊを簡単に求めることができる。本実施形態では、前述のように、Ｋ（ｘｉ、ｘｊ）＝ｅｘｐ｛−｜ｘｉ−ｘｊ｜２／（σｉ２＋σｊ２）｝である。よって、ｄｉｊ＝［ｅｘｐ｛−｜ｘｉ−ｘｉ｜２／（σｉ２＋σｉ２）｝−２ｅｘｐ｛−｜ｘｉ−ｘｊ｜２／（σｉ２＋σｊ２）｝＋ｅｘｐ｛−｜ｘｊ−ｘｊ｜２／（σｊ２＋σｊ２）｝］１／２＝［２−２ｅｘｐ｛−｜ｘｉ−ｘｊ｜２／（σｉ２＋σｊ２）｝］１／２である。
【００３７】
特徴空間分布分析部１０４では、上記説明した手法により、ｉ＝１からＮまでの、Ｎ個全ての学習データについて、超球の半径ｒｉを求める。この処理で用いるｋの値、つまり、何個の学習データを含む超球を考えるかについては、入力した学習データ数にも依存するが、凡そ数個から数十程度の値にすればよい。また、本実施形態では、ｋ個の学習データを内包する超球の半径を、局所的な密度としてみなすようにしている。しかし、注目している学習データを中心とする、所定の半径の超球を考え、その中に含まれる学習データの数を、密度の情報として用いても良い。また分布の情報として平均や分散などの統計量を求めてもよい。
【００３８】
次に、ステップＳ２３で、更新カーネルパラメータ算出部１０５は、まず、各学習データそれぞれについて求めた上記超球の半径と、各学習データに対応して保持されたカーネルパラメータを用いて、更新カーネルパラメータを算出する。算出した更新カーネルパラメータは、新たなカーネルパラメータとして、カーネルパラメータ保持部１０３に保持する。そして、ステップＳ２４で、算出した更新カーネルパラメータが、収束しているか否かを判定する。
【００３９】
以下、まずステップＳ２３の、更新カーネルパラメータの算出処理の詳細について説明し、その後、ステップＳ２４の更新カーネルパラメータ収束判定処理の詳細について説明する。
【００４０】
更新カーネルパラメータは、本実施形態では、やはり各学習データそれぞれについて算出する。具体的には、ｉ番目の学習データに対応する更新カーネルパラメータσ’ｉを、先に求めた超球の半径ｒｉと、現在のカーネルパラメータσｉ（更新前カーネルパラメータ）とを用いて、σ’ｉ＝σｉ・ｒｉ／γとして求める。ここで、γは正の定数であり、詳細については後述するが、高次特徴空間でのそれぞれの学習データを中心とする局所的な密度を決めるパラメータである。上記手法により、全ての学習データについて、更新カーネルパラメータを求め、それらを、カーネルパラメータ保持部１０３に保持されていた、それぞれの更新前カーネルパラメータと置き換える。
【００４１】
更新カーネルパラメータ収束判定処理では、全ての学習データに対する更新カーネルパラメータが収束しているか、具体的には、更新前後で、カーネルパラメータがほとんど変化していないかどうかを判定する。本実施形態では、ｉ番目の学習データに対応する、更新カーネルパラメータσ’ｉと、更新前のカーネルパラメータσｉを用いて、次の条件式、｜１−σｉ／σ’ｉ｜＜εを、全ての学習データが満たすかどうかを判定する。
【００４２】
εは、限りなく０に近い正のパラメータであり、例えば、１０−１０といった数値である。全ての学習データについて、上記の条件式による判定を行い、全てが条件を満たす場合に、更新カーネルパラメータが収束したと判定する。本実施形態のカーネル関数を用いた場合、上記更新式σ’ｉ＝σｉ・ｒｉ／γにより、更新カーネルパラメータが収束する、つまり、上記条件式を満たすカーネルパラメータが得られることは、実験的に確認できている。
【００４３】
上記条件は、更新カーネルパラメータを算出する式σ’ｉ＝σｉ・ｒｉ／γからも明らかなように、高次特徴空間における前述の超球の半径ｒｉがγになったことを示す。つまり、全学習データが上記の条件を満たしたならば、この高次特徴空間では、写像された任意の学習データを中心とする半径γの超球内に、自身を除くｋ個（特徴空間分布分析部１０４で用いた定数）の学習データが存在することになる。即ち、高次特徴空間に写像された学習データそれぞれを中心とする局所的な領域での、学習データの密度が一定になったといえる。
【００４４】
この密度は、パラメータγの設定により制御可能であり、高次特徴空間における、局所的な学習データ近傍の密度を、所望の密度に設定可能である。換言すれば、γの設定により、半径γの超球の体積をＶ（γ）とした時、学習データ近傍の局所的な密度が、一定の値ｋ／Ｖ（γ）になるような、非線形の写像を構築できることになる。このγの値は、問題設定やｋの値、用いるカーネル関数に依存する。本実施形態で用いるカーネル関数の場合、高次特徴空間における任意の学習データ間の距離は、２１／２以下であるので、２１／２以下の適当な正の数（例えば、０．３等）にすればよい。
【００４５】
本実施形態では、ｉ番目の学習データに対応する更新カーネルパラメータを、σ’ｉ＝σｉ・ｒｉ／γとして求めたが、これに限るものではなく、例えば、σ’ｉ＝ρ・ｒｉ等というように求めても良い。この例の場合、非線形写像後の高次特徴空間における自身を中心とする局所的な密度が小さい（超球の半径が大きい）程、その学習データに対応する更新カーネルパラメータが大きくなる。更新カーネルパラメータが大きくなると、本実施形態のカーネル関数を用いた場合、その学習データは、高次特徴空間において、その他の学習データの近くに写像されるため、局所的な密度が大きくなる。
【００４６】
このため、更新カーネルパラメータは増減を繰り返し、更新カーネルパラメータと、高次特徴空間における局所的な密度の均衡が取れた時に、更新カーネルパラメータが収束することになる。この場合は、更新カーネルパラメータ算出式からも明らかなように、高次特徴空間における、各学習データを中心とした局所的な密度と、それに対するカーネルパラメータが比例するようになる。このように、本実施形態は、高次特徴空間の分布に応じて更新カーネルパラメータを求めるようなものであれば、様々な更新方法にも適用可能である。用いる更新方法と、カーネル関数の組合せによっては、上記条件式を満たすように、更新カーネルパラメータが収束しない場合もある。その場合は、高次特徴空間における学習データの分布に関する条件等を用いて、その条件を満たすまで更新を繰り返すといったようにすれば良い。そのため、問題設定に応じて、適当な更新方法、収束したと判定する条件を選択すればよい。
【００４７】
ステップＳ２４により更新カーネルパラメータが収束したと判定された場合、次の中心化グラム行列算出部１０６での処理に移行する。収束したと判定されなかった場合は、特徴空間分布分析部１０４での処理（ステップＳ２２）に戻り、更新された新たなカーネルパラメータを用いて、上記の処理を、更新カーネルパラメータが収束したと判定されるまで繰り返す。この分岐は、図２のステップＳ２５に対応する。このようなループ構造により、更新カーネルパラメータが収束するまで、更新された新たなカーネルパラメータを用いて、前述の超球の半径を再度求め、それに基づいて、更新カーネルパラメータを求める処理を繰り返す。
【００４８】
上記説明したように、このような再帰的な処理により、更新カーネルパラメータが収束したと判定された際には、高次特徴空間での各学習データを中心とする局所的な密度が一定のｋ／Ｖ（γ）になる。そのため、高次特徴空間での各学習データを中心とする局所的な密度が一定となるような非線形写像を実現するためのカーネルパラメータを求めることができる。
【００４９】
次に、中心化グラム行列算出部１０６での処理について説明する。ここまでの処理により、図２のステップＳ２４において、更新カーネルパラメータが収束したと判定された後のカーネルパラメータが、カーネルパラメータ保持部１０３に保持されている。つまり、写像先である高次特徴空間で、各学習データを中心とする近傍の密度が一定となるような非線形写像を陰に実現するための、各学習データそれぞれのカーネルパラメータが得られ、カーネルパラメータ保持部１０３に保持されている。
【００５０】
ステップＳ２６では、中心化グラム行列算出部１０６が、これらの各学習データそれぞれのカーネルパラメータと、学習データ保持部１０１に保持された学習データを用いて、通常のＫＰＣＡと同様に中心化グラム行列Ｋ’を算出する。中心化グラム行列Ｋ’は、学習データ数がＮ個であるので、Ｎ次の実対称行列であり、そのｉ行ｊ列の成分Ｋ’（ｉ、ｊ）は、
【００５１】
【数１】
0004995027.tif 000002
【００５２】
と表される。ここで、Ｋ（ｘｉ、ｘｊ）は、上記説明したカーネル関数である。本実施形態では、カーネル関数Ｋ（ｘｉ、ｘｉ）は、Ｋ（ｘｉ、ｘｉ）＝ｅｘｐ｛−｜ｘｉ−ｘｊ｜２／（σｉ２＋σｊ２）｝である。よって、中心化グラム行列Ｋ’のｉ行ｊ列の成分Ｋ’（ｉ、ｊ）は、
【００５３】
【数２】
0004995027.tif 000003
【００５４】
となる。中心化グラム行列算出部１０６では、１からＮの全てのｉ、ｊの組合せについて上記Ｋ’（ｉ、ｊ）を求め、それを保持しておく。
【００５５】
最後にステップＳ２７において、固有値・固有ベクトル算出部１０７が、通常のＫＰＣＡと同様に、中心化グラム行列算出部１０６で求めた中心化グラム行列Ｋ’を用い、高次特徴空間に写像された学習データの線形結合パラメータを算出する。そして、ここで得られた学習データの線形結合パラメータを、線形結合パラメータ保持部１０８に記録することにより、学習モードでの処理が終了となる。
【００５６】
具体的には、まず中心化グラム行列算出部１０６で求めた中心化グラム行列Ｋ’に対し固有値分解を行う。本実施形態のカーネル関数を用いた場合、必ずしも中心化グラム行列Ｋ’が、半正定値性を満たすとは限らない。しかしながら、中心化グラム行列Ｋ’は、実対称行列なので、一般的なヤコビ法等を用いて、簡単に実数の固有値・固有ベクトルを得られる。
【００５７】
正の固有値がＭ個得られた（Ｍ≦Ｎ）として、この正の固有値を、大きいほうから順に並べたものを、λ１、λ２、・・・λＭとし、各固有値に対応する固有ベクトルを、α’１、α’２、・・・、α’Ｍとする。この固有ベクトルは、中心化グラム行列Ｋ’がＮ次正方行列であるので、Ｎ次元のベクトルである。
【００５８】
そして、通常のＫＰＣＡと同様に、これらの固有ベクトルの大きさが、対応する固有値の平方根の逆数になるように正規化を行う。つまり、ｍ番目（ｍ≦Ｍ）の固有値をλｍ、固有ベクトルをα’ｍ、とした時、正規化した正規化固有ベクトルαｍを、αｍ＝１／（λ１／２｜α’ｍ｜）・α’ｍというように求める。
【００５９】
Ｍ個全ての正規化固有ベクトルのセット｛αｍ｝（ｍ＝１、２、・・・、Ｍ）を上記の式により求める。これを、高次特徴空間に写像された学習データの線形結合ベクトルであるパラメータ（以下では、簡単に線形結合パラメータと記載する）として記録して保持しておく。この線形結合パラメータは、データ表現モードでの処理に用いられる。
【００６０】
以上、学習データ入力部１００から固有値・固有ベクトル算出部１０７までによる、学習データ入力ステップ２０から固有値・固有ベクトル算出ステップ２７までの処理が、学習モードでの処理となる。上記、学習モードでの処理により、学習データ保持部１０１にＮ個の学習データが保持され、それぞれに対応するカーネルパラメータが、カーネルパラメータ保持部１０３に保持される。
【００６１】
さらに、固有値・固有ベクトル算出部１０７で求めた、線形結合パラメータ｛αｍ｝（ｍ＝１、２、・・・、Ｍ）が、線形結合パラメータ保持部１０８に保持されることになる。以降で説明する、本実施形態のデータ表現モードでの処理では、これらのデータ（Ｎ個の学習データ、Ｎ個のカーネルパラメータ、線形結合パラメータ）を用いて、入力されたデータの新たな空間での表現を行う。
【００６２】
続いて、本実施形態のデータ表現モードおける処理について、データ表現モードの処理部の構成を示す、図１の、データ表現モードの処理ブロック１１の部分と、処理のフローを示す図３を用いて説明する。
【００６３】
まず、ステップＳ３０において、写像パラメータ入力部１１０は、学習モードで用いたのと同一のＮ個の学習データを入力する。また、学習モードで求めた、それぞれに対応するＮ個のカーネルパラメータ、及び線形結合パラメータ｛αｍ｝（ｍ＝１、２、・・・、Ｍ）を入力する。
【００６４】
Ｎ個の学習データは、学習データ保持部１０１に保持されたものを入力し、カーネルパラメータは、カーネルパラメータ保持部１０３に保持されたものを入力する。そして、線形結合パラメータは、線形結合パラメータ保持部１０８に保持されているものを入力する。
【００６５】
次に、ステップＳ３１において、未知データ入力部１１１において、データ表現を行う対象である、縦横２０×２０画素の、人物の顔を切り出したグレースケール画像データを１つ入力する。ここで入力したデータを、以下では、入力データと記載する。そして、このデータも、学習モードでの処理と同様に、この画像の各画素値をラスタスキャン的に並べた４００次元のベクトルを生成する。ここで得られたこのベクトルを、入力データｙとする。
【００６６】
次に、ステップＳ３２において、未知カーネルパラメータ決定部１１２が、入力データ入力に対応する入力カーネルパラメータσｙを算出する。以下では、この入力データに対応する入力カーネルパラメータσｙを、未知カーネルパラメータσｙと記載する。未知カーネルパラメータσｙの算出は、基本的に、学習モードにおいて、各学習データに対してカーネルパラメータを求めた手法と同様である。
【００６７】
つまり、高次特徴空間の分布を分析し、それに基づいて、更新未知カーネルパラメータσ’ｙを算出し、未知カーネルパラメータ更新することを、更新未知カーネルパラメータσ’ｙが収束するまで、再帰的に繰り返し実行して求める。ただし、前述の学習モードでは、全ての学習データに対応するカーネルパラメータ、つまり、複数のカーネルパラメータを更新した。しかし、データ表現モードでは、学習モードで得られたカーネルパラメータは固定し、未知カーネルパラメータのみ更新を行う。以下、具体的な更新方法について説明する。
【００６８】
まず、未知カーネルパラメータσｙの初期値を設定する。この初期値は適当な値で構わないが、凡そ、学習データに対応するカーネルパラメータ程度のオーダーの値であることが望ましい。そこで、本実施形態では、写像パラメータ入力部１１０で入力した、Ｎ個のカーネルパラメータの平均値を、σｙの初期値として設定する。
【００６９】
次に、現在の未知カーネルパラメータσｙにより定まるカーネル関数によって、陰に実現される高次特徴空間への非線形写像により、入力データｙを写像したφ（ｙ）と、学習データを写像したものとの距離を、全ての学習データに対して求める。具体的には、φ（ｙ）とｉ番目の学習データｘｉを高次特徴空間に写像したφ（ｘｉ）との距離ｄｙｉは、カーネル関数Ｋ（ｙ、ｘｉ）を用いてｄｙｉ＝｛Ｋ（ｙ、ｘｉ）−２Ｋ（ｙ、ｘｉ）＋Ｋ（ｘｉ、ｘｉ）｝１／２と求められる。ここで、本実施形態では、Ｋ（ｙ、ｘｉ）＝ｅｘｐ｛−｜ｙ−ｘｉ｜２／（σｙ２＋σｉ２）｝である。よって、ｄｙｉ＝［２−２ｅｘｐ｛−｜ｙ−ｘｉ｜２／（σｙ２＋σｉ２）｝］１／２となる。求めた全ての学習データに対する距離｛ｄｙｎ｝（ｎ＝１、２、・・・、Ｎ）の内、ｋ番目に小さい距離は、学習モードで述べたのと同様の、ｋ個の学習データを内包する超球の半径ｒｙとなる。
【００７０】
続いて、更新未知カーネルパラメータσ’ｙを、学習モードでの更新カーネルパラメータ算出処理と同様に、σ’ｙ＝σｙ・ｒｙ／γというように求め、これを新たな未知カーネルパラメータとする。そして、更新未知カーネルパラメータσ’ｙが収束した、つまり、学習モードでの収束判定と同様に、次の条件式｜１−σｙ／σ’ｙ｜＜εを満たした場合、更新未知カーネルパラメータが収束したと判定する。収束したと判定されなかった場合は、上記分析、及び更新の処理を再帰的に実行し、収束したと判定されるまで繰り返す。
【００７１】
上記処理により、収束したと判定された時点の未知カーネルパラメータが、求める未知カーネルパラメータσｙとなる。上記処理において用いるｋ、γ、εといった定数は、学習モードの時のそれと同じ値に設定しておけばよい。本実施形態では、このように、新たな入力データに対して、適応的にカーネルパラメータを求めるようにしている。
【００７２】
しかし、これに限るものではなく、例えば簡単のため、σｙを初期値のまま、つまり、学習データに対応するカーネルパラメータの平均値にしてしまうようにすることも可能である。ただし、このようにした場合、処理の手間は省けるが、適切なカーネルパラメータが設定されるとは限らないので、注意が必要である。また、通常の、ＫＰＣＡの応用のように、学習データ自体の分析が目的であれば、入力データが未知ではなく、学習モードで用いた学習データの内の１つであることが明らかな場合もあり得る。そうであれば、学習モードで求めた、その学習データに対応するカーネルパラメータをσｙに用いればよい。
【００７３】
ここまでの処理により、Ｎ個の学習データ、Ｎ個のカーネルパラメータ、線形結合パラメータ、及び、１つの入力データ、１つの未知カーネルパラメータが得られている。そして、次の写像結果算出部１１３において、これらのデータを用い、入力データを、新たな空間に写像したベクトルとして表現する処理を行う。
【００７４】
ここで、この新たな空間は、本実施形態では、非線形写像後の学習データ近傍の局所的な密度が一定となるような高次特徴空間において、学習データの分散が大きくなる、高次特徴空間内の、ｈ（≦Ｍ）次元の線形部分空間である。ｈは、Ｍ以下、つまり、固有値・固有ベクトル算出ステップＳ２７において求めた、正である固有値の個数以下である。この値に関する説明も含めて、以下に、ここでの処理の詳細について説明する。
【００７５】
まず、写像結果算出部１１３における具体的な処理について説明する。ここで算出する、入力データを、新たな空間に写像したベクトル~ｙは、最大でＭ次元のベクトルである。以下、この新たな空間に写像したベクトル~ｙを、再表現ベクトル~ｙと記載する。この再表現ベクトル~ｙのｍ番目の要素~ｙｍは、入力した線形結合パラメータ｛αｍ｝（ｍ＝１、２、・・・、Ｍ）のｍ番目のベクトルのｉ番目の要素をαｍ、ｉとした時、次の式により求めることができる。
【００７６】
【数３】
0004995027.tif 000004
【００７７】
この~ｙｍを、ｍ＝１から、所望の次元ｈ（≦Ｍ）まで求めることにより、再表現ベクトルを~ｙ求めることができる。ここでの処理は、図３の写像結果算出ステップＳ３３に対応する。
【００７８】
ここで用いるｈの値については、用途に応じて適当な値に設定すればよく、例えば、この再表現ベクトル~ｙを、入力データの可視化を目的として用いるならば、ｈは３以下（３次元以上は可視化できない）とすればよい。また、この再表現ベクトル~ｙを、例えば、パターン識別のための特徴抽出後のデータとして用いるならば、Ｍ次元まで全部用いるというようにしても良い。
【００７９】
また、固有値・固有ベクトル算出ステップＳ２７において求めた正の固有値の総和をλｓｕｍとした時、１〜ｈ番目までの固有値の総和が、λｓｕｍの所定割合（例えば９５％等）までとなるような次元までを用いるようにしても良い。パターン識別のための特徴抽出として、本手法を利用するためには、学習データも、入力データと同様に、新たな空間に写像したベクトルとして表現してやる必要がある。その場合、ｊ番目の学習データｘｊの再表現ベクトルを~ｘｊとし、このｍ番目の要素を~ｘｊ、ｍとした時、~ｙｍを求める時と同様に、以下の式で求めることができる。
【００８０】
【数４】
0004995027.tif 000005
【００８１】
このように、任意の学習データも、入力データと同様に、新たな空間に写像したｈ次元のベクトルとして表現することが可能である。そのため、例えば最も単純なパターン識別方法の１つである最近傍法であれば、これらの再表現ベクトルを予め算出して保持しておき、これらと、入力データの再表現ベクトルを比較することによって、パターン識別が可能になる。
【００８２】
そして最後に、ステップＳ３４で、写像結果出力部１１４において、このようにして求めた再表現ベクトルを外部に出力することで、データ表現モードでの処理が終了する。
【００８３】
以上の処理により、データ表現モードでの処理である、入力されたデータを、学習データ近傍の局所的な密度が一定となる高次特徴空間内において、学習データの分散が大きくなるような新たな空間において表現することが可能になる。これにより、例えば、学習データについても、上記式により、新たな空間で表現すれば、入力した未知の人物の顔画像が、新たな空間において、学習データとどのような関係にあるのかを求めることができる。このようにすることにより、入力した未知の人物の顔画像が、誰の顔画像であるのか、誰と似ているか、どのような顔向きであるのか、といったような情報を分析することが可能になる。
【００８４】
本実施形態では、未知の入力データを入力し、それを新たな空間でのベクトルとして表現する手法をして説明したが、上記のパターン識別方法の例のように、本手法も、通常のＫＰＣＡと同様に、様々な手法に適用可能である。例えば、先にも述べたが、学習データ自体の分析という用途にも適用可能であり、学習データの再表現ベクトル同士を比較することで、他の学習データとの関係等を分析するような用途に用いることができる。例えば具体的には、再表現ベクトルに対して、ｋ−平均法等のクラスタリングを行い、学習データの人物の顔画像をクラスタリングするような用途にも適用可能である。
【００８５】
このように、本実施形態のデータ表現方法では、まず、学習データごとのカーネルパラメータの初期値を設定する。本実施形態では、１つの学習データにつき、１つのカーネルパラメータを有する。そして、カーネルパラメータにより定まる、カーネル法により陰に実現される、高次特徴空間への非線形写像により、高次特徴空間へ写像された学習データの分布を分析する。
【００８６】
ここで分析する分布は、高次特徴空間における任意の２つの学習データに対する内積を用いて分析可能な分布である。次いで、この分布が所望の分布になるように、分布を分析した結果に基づいて、カーネルパラメータを更新する。そして、このカーネルパラメータの更新が収束するまで、高次特徴空間における分布の分析と、それに基づくカーネルパラメータの更新を再帰的に実行する。
【００８７】
これにより、高次特徴空間における学習データの分布が、所望の分布となるような、非線形写像を実現するためのカーネルパラメータを設定することができる。本実施形態では、分析する分布として、高次特徴空間における、各学習データを中心とする局所的な学習データの密度を用い、この密度が、一定になるように、カーネルパラメータを設定した。続いて、通常のＫＰＣＡと同様に、この高次特徴空間において、学習データの分散が大きくなるような、高次特徴空間内の線形部分空間を求める。
【００８８】
そして、上記求めたカーネルパラメータ等を用いて、このようにして求めた高次特徴空間内の線形部分空間で、入力データを表現する。これにより、学習データが所望の分布になるような高次特徴空間において、学習データの分散が最大になるような、高次特徴空間内の線形部分空間上で、入力データを表現することが可能になる。
【００８９】
本実施形態では、上述のように、学習データの分布が均一な（無相関というわけではない）高次特徴空間において、学習データの分散が大きくなる、高次特徴空間の線形部分空間上で、入力データを表現する。つまり、学習データがうまく分布するような高次特徴空間の線形部分空間上で、入力データを表現することができる。このため、例えば、入力データが、学習データに対してどのような関係にあるのかを分析することが可能になるので、入力データの分析といった用途に用いることができる。
【００９０】
以上、第１の実施形態は、学習用のパターン集合から、本発明のデータ表現方法におけるパラメータを決定し、未知のパターンを、決定したパラメータを用いて表現するデータ変換方法の例として説明した。
【００９１】
（第２の実施の形態）
本発明の第２の実施形態は、学習用のパターン集合から、本発明のパターン識別方法におけるパラメータを決定し、決定したパラメータを用いて、未知のパターンが、何れのクラスに属するかを識別するパターン識別方法の例を示す。
【００９２】
第１の実施形態では、カーネルパラメータにより定まる、カーネル関数によって陰に実現される高次特徴空間に写像した学習データ近傍の局所的な密度が一定になるように、カーネルパラメータを設定した。そして、それを用いてデータ表現を行う方法を示した。データの高効率な表現という目的であれば、上記基準によりカーネルパラメータを設定してもよい。
【００９３】
しかし、パターン識別のための特徴抽出という観点で考えた場合、第１の実施形態では、データが何れのクラスに属するかという情報は用いておらず、データの分類を効率的に表すという点では最適であるとは言えない。そこで本実施形態では、高次特徴空間に写像された学習用パターンのクラス分布の分析において、クラス分離度を抽出し、それに基づきカーネルパラメータを再帰的に更新する。これにより、クラス分離度の高い高次特徴空間への非線形写像を実現するカーネルパラメータを設定する。
【００９４】
本実施形態では、クラス分離度として、線形判別分析（ＬＤＡ）等で用いられる、クラス内分散とクラス間分散との比（＝クラス間分散／クラス内分散）を用いる。具体的には、ＬＤＡをカーネル法により非線形に拡張した、非特許文献８のカーネル非線形判別分析（ＫＬＤＡ）を用いる。まず、高次特徴空間に写像された学習用データのクラス内分散とクラス間分散との比が最大となる、高次特徴空間における線形部分空間を求める。そして、この線形部分空間におけるクラス内分散とクラス間分散との比を求め、これが極大値となるように、カーネルパラメータを更新する。そして、第１の実施形態と同様に、このカーネルパラメータの更新を、カーネルパラメータの更新が収束するまで再帰的に繰り返す。これにより、クラス内分散とクラス間分散との比が（ＫＬＤＡによって求めた線形部分空間において）大きくなるような、高次特徴空間への非線形写像を実現するカーネルパラメータを設定することができる。
【００９５】
そして、こうして得られたカーネルパラメータを用い、非特許文献３のＳＶＭの学習を実行することによって、パターン識別規則を構築する。未知データに対するパターン識別においては、上記得られたカーネルパラメータと、ＳＶＭの学習により得られたパターン識別規則に基づいて、未知データが何れのクラスに属するのかを判定する。
【００９６】
このように、第２の実施形態は、まず、カーネルパラメータの更新基準が第１の実施形態と異なる。また第１の実施形態では、得られたカーネルパラメータにより定まる高次特徴空間に写像された、学習用データの分散が大きくなるような線形部分空間を求めた。これに対し、本実施形態では、ＳＶＭの学習を用いることにより、学習用データのマージンが最大となる、高次特徴空間内の識別超平面を求める。
【００９７】
このことは、原点がこの識別超平面上であり、識別超平面の法線ベクトルと方向が一致する、高次特徴空間内の、１次元線形部分空間を求めていることと対応する。つまり、本実施形態は、第１の実施形態でのカーネルパラメータの更新における基準と、高次特徴空間の線形部分空間を求める方法が異なる。以下、本実施形態の説明では、第１の実施形態との差異については詳細に説明し、第１の実施形態と同様の部分に関しては説明を省略する。
【００９８】
第２の実施形態も、第１の実施形態と同様に、学習モードの処理と、パターン識別モードの処理の、２つのブロックに大別できる。第２の実施形態におけるパターン集合は、第１の実施形態と同様に、縦横２０×２０画素の、人物の顔を切り出したグレースケール画像を用いる。ただし、第１の実施形態とは異なり、これらの学習用データそれぞれに、それが誰の顔画像であるのかを示すラベルが付与されているものとする。
【００９９】
本実施形態では、簡単のため、学習データとして用いる顔画像は、それぞれ複数枚の、Ａ氏とＢ氏の２人の顔画像とする。ここで、Ａ氏の顔画像をクラスＡ、Ｂ氏の顔画像をクラスＢのデータと記載する。これらのデータを用いて、クラスＡのデータと、クラスＢのデータを識別する２クラス識別規則を構築する。これが、学習モードでの処理である。そして、Ａ氏であるのか、Ｂ氏であるのかが未知の、Ａ氏かＢ氏何れか一方の顔画像を入力し、構築した２クラス識別規則により、それが何れの顔画像であるのかを識別する。これが、パターン識別モードでの処理である。
【０１００】
このように、本実施形態のパターン識別方法は、２クラス識別問題に対応する方法として説明する。しかし、本実施形態では、簡単のため、２クラス識別問題を設定したが、これに限るものではない。例えば、Ａ氏とそれ以外、Ｂ氏とそれ以外、Ｃ氏とそれ以外・・というように、クラス数分の２クラス識別規則を用意する等すれば、多クラス識別問題にも対応可能である。
【０１０１】
図４に、第２の実施形態における、学習モードの処理ブロック４０、及び、パターン識別モードの処理ブロック４１を示す。学習モードにおける処理は、上述のように、それぞれ複数枚の、Ａ氏とＢ氏の２人の顔画像を入力し、カーネルパラメータ、及び、ＳＶＭの学習により求められる線形結合パラメータセットを求める処理に対応する。
【０１０２】
一方、パターン識別モードでの処理は、まず、Ａ氏であるのか、Ｂ氏であるのかが未知の、Ａ氏かＢ氏何れか一方の顔画像データを入力する。そして、学習モードで用いたそれぞれ複数枚の、Ａ氏とＢ氏の２人の顔画像データと、学習モードで求めたカーネルパラメータ、線形結合パラメータを用いて、未知の人物の顔画像データが、Ａ氏、Ｂ氏の何れであるかを識別する。
【０１０３】
第２の実施形態の、学習モードにおける処理のフローを図５に、パターン識別モードにおける処理のフローを図６に示す。以下、まず、第２の実施形態の学習モードにおける処理について、図４における、学習モードの処理ブロック４０の部分、及び図５を用いて説明し、その後、パターン識別モードにおける処理について、図１の、パターン識別モードの処理ブロック４１の部分、及び図６を用いて説明する。
【０１０４】
本実施形態の学習モードでは、第１の実施形態と同様に、まず、データ入力部４００において、顔画像データを複数入力する。上述の通り、ここで入力する顔画像データは、それぞれ複数枚の、Ａ氏とＢ氏の２人の何れであるかが明らかな顔画像データである。ここで入力したＡ氏の顔画像データの数をＮＡ、Ｂ氏の顔画像データの数をＮＢとし、両方を合わせた数をＮＡ＋ＮＢをＮとする。
【０１０５】
ここでも、第１の実施形態と同様に、入力した顔画像データを、２０×２０画素の各画素値を、ラスタスキャン的に並べた４００次元のベクトルとする。本実施形態では、Ａ氏のｉ番目の顔画像データをベクトルとしたものを、Ａ氏のｉ番目の学習データｘ（Ａ）ｉと記載し、Ｂ氏のｉ番目の顔画像データの場合は、Ｂ氏のｉ番目の学習データｘ（Ｂ）ｉと記載する。
【０１０６】
また単に、ｉ番目の学習データｘｉと表記した場合、Ａ氏、Ｂ氏両方のデータを連番で表記したものとして、１≦ｉ≦ＮＡならば、ｉ番目のＡ氏の学習データ、ＮＡ＜ｉ≦Ｎならば、ｉ−ＮＡ番目のＢ氏の学習データを意味する。そして、入力した学習データを、学習データ保持部４０１に保持しておく。ここでの処理は、図５の学習データ入力ステップＳ５０に対応する。
【０１０７】
初期カーネルパラメータ設定部４０２では、初期のカーネルパラメータを設定し、それをカーネルパラメータ保持部４０３に保持する。第１の実施形態では、各学習データそれぞれに対応したカーネルパラメータを用いたが、本実施形態では、全学習データにおいて共通の１つのカーネルパラメータσを用いる。
【０１０８】
そして本実施形態では、このカーネルパラメータを用いて、任意の２つの学習データｘ、ｘ’に対応するカーネル関数Ｋ（ｘ、ｘ’）を、Ｋ（ｘ、ｘ’）＝ｅｘｐ｛−｜ｘ−ｘ’｜２／（２σ２）｝と定義する。つまり、カーネル法により陰に実現される高次特徴空間への非線形写像による、任意の２つの学習データｘ、ｘ’の写像後の内積が、Ｋ（ｘ、ｘ’）＝ｅｘｐ｛−｜ｘ−ｘ’｜２／（２σ２）｝となる。
【０１０９】
初期カーネルパラメータ設定部１０２で設定する初期のカーネルパラメータは、第１の実施形態と同様に、適当な初期値σ０とする。初期値σ０は、適当な値で構わないが、学習データ間のユークリッド距離オーダーの値にしておくことが好ましい。そこで例えば、全学習データ間の、ユークリッド距離の平均というような値にすればよい。ここでの処理は、図５の初期カーネルパラメータ設定ステップ５１に対応する。
【０１１０】
続いて、特徴空間分布分析部４０４においても、第１の実施形態と同様に、現在のカーネルパラメータにより定まるカーネル関数が陰に実現する高次特徴空間への非線形写像による、学習データ保持部４０１に保持された学習データの写像後の、高次特徴空間における分布を分析する。本実施形態では、高次特徴空間内での内積を用いて分析可能な分布の情報として、クラス内分散とクラス間分散との比を抽出する。
【０１１１】
具体的には、まず前述のように、非特許文献８のＫＬＤＡを用いて、高次特徴空間に写像された学習用データのクラス内分散とクラス間分散との比が最大となるような、高次特徴空間における線形部分空間を求める。ＫＬＤＡの詳細は、非特許文献８に詳細に記載されているので、説明を省略する。本実施形態では、２クラスのＫＬＤＡを用いるため、この高次特徴空間における線形部分空間は、１次元の線形部分空間になる。
【０１１２】
つまりこれにより、高次特徴空間に写像された、Ａ氏、Ｂ氏の顔画像である、クラスＡ、Ｂのデータ集合が、それぞれまとまり（クラス内分散が小さい）、且つ、それらの平均が離れる（クラス間分散が大きい）。このような、高次特徴空間内の１次元線形部分空間を求めることができる。ＫＬＤＡにより求まるＮ（＝ＮＡ＋ＮＢ）次元ベクトルである線形結合パラメータβのｉ番目の要素をβｉとする。この時、この１次元の線形部分空間を張る基底ベクトルｖは、この高次特徴空間に写像されたｉ番目の学習データφ（ｘｉ）を用いて、
【０１１３】
【数５】
0004995027.tif 000006
【０１１４】
と表される。このＫＬＤＡにより求まる線形結合パラメータβは、本実施形態の、後のＳＶＭ学習実行処理部４０６での処理において求めるとは線形結合パラメータ異なるものである。後述するものは、第１の実施形態で求めた線形結合パラメータ（第１の実施の形態で、｛αｍ｝（ｍ＝１、２、・・・、Ｍ）と表記したもの）と同様である。混同を避けるため、以降はこのβをＫＬＤＡパラメータと記載する。本実施形態で用いる２クラスのＫＬＤＡでは、クラス内分散とクラス間分散との比を表す以下に示す評価式を用い、これを最大化するＫＬＤＡパラメータβを求める。
【０１１５】
【数６】
0004995027.tif 000007
【０１１６】
ここで、上式のＫＢ、及び、ＫＷは共にＮ次の実対称行列であり、それぞれのｉ行ｊ列の成分ＫＢ（ｉ、ｊ）及びＫＷ（ｉ、ｊ）は以下のように表される。
【０１１７】
【数７】
0004995027.tif 000008
【０１１８】
【数８】
0004995027.tif 000009
【０１１９】
ＫＬＤＡでは、前述の評価式をＫＬＤＡパラメータβの関数とみなして、この評価式を最大にするＫＬＤＡパラメータβを求める。これに対して本実施形態では、更新カーネルパラメータ算出部４０５において、ＫＬＤＡによって得られたＫＬＤＡパラメータβを固定する。そして、前記評価式を、カーネルパラメータσの関数とみなして、この評価式の値を大きくするσの値を求めて更新する。
【０１２０】
前述の評価式を、σの関数として表現するためには、上式を用いて変形すればよい。その結果は、非常に複雑な式となる。しかし、上式は、展開してみると、カーネル関数の、積の項の線形和で構成されていることがわかる。つまり、いずれも、適当な係数群｛ξｔ｝を用いて、Σξｔ・Ｋ（○、○）Ｋ（○、○）（○は任意の学習データ）と展開できる。そのため、前述の評価式の分母、分子とも、カーネル関数の、積の項の線形和という構成となる。
【０１２１】
そこで、１からＮまでの自然数である独立な４つのパラメータｉ、ｊ、ｍ、ｎに対して、Ｎ４個の実数からなる、適当な２つの係数列、ａ（ｉ、ｊ、ｍ、ｎ）、ｂ（ｉ、ｊ、ｍ、ｎ）をうまく選んでやる。これにより、前記評価式は、以下のように変形できる。
【０１２２】
【数９】
0004995027.tif 000010
【０１２３】
適切な２つの係数列、ａ（ｉ、ｊ、ｍ、ｎ）、ｂ（ｉ、ｊ、ｍ、ｎ）は、数式ベースで解析的に求めようとすると、非常に煩雑になる。しかし、単純な線形演算のみであるので、計算機を用いて恒等式を解くことにより、簡単に求めることができる。さて、本実施形態で用いるカーネル関数は、前述のように、Ｋ（ｘ、ｘ’）＝ｅｘｐ｛−｜ｘ−ｘ’｜２／（２σ２）｝である。そこで、これを用いて、上式は、カーネルパラメータσの関数Ｊ（σ）として、次のように書き表すことができる。
【０１２４】
【数１０】
0004995027.tif 000011
【０１２５】
ここで更に、ｃ（ｉ、ｊ、ｍ、ｎ）＝｜ｘｉ−ｘｉ｜２＋｜ｘｉ−ｘｉ｜２と置くと、
【０１２６】
【数１１】
0004995027.tif 000012
【０１２７】
となる。この式に示したσの関数として表された評価式は、クラス内分散とクラス間分散との比の式であり、特徴空間分布分析部４０４では、この式により表されるクラス内分散とクラス間分散との比を抽出する。つまり、まずＫＬＤＡによりＫＬＤＡパラメータβを求め、次いで恒等式を解くことにより、式内の、ａ（ｉ、ｊ、ｍ、ｎ）、ｂ（ｉ、ｊ、ｍ、ｎ）を求める。そして最後にｃ（ｉ、ｊ、ｍ、ｎ）を求める処理を行う。ここでの処理は、図５の特徴空間分布分析ステップＳ５２に対応する。
【０１２８】
次に、更新カーネルパラメータ算出部４０５では、まず、カーネルパラメータσの関数であるＪ（σ）のσにおける偏微分係数∂Ｊ（σ）／∂σ｜σを求める。その際、特徴空間分布分析部４０４で求めた、３つのＮ４個の係数列、ａ（ｉ、ｊ、ｍ、ｎ）、ｂ（ｉ、ｊ、ｍ、ｎ）、及びｃ（ｉ、ｊ、ｍ、ｎ）を用いる。そして、この偏微分係数∂Ｊ（σ）／∂σ｜σに基づいて、更新カーネルパラメータを求め、求めた更新カーネルパラメータを、新たなカーネルパラメータとして、カーネルパラメータ保持部４０３に保持する。
【０１２９】
その後は、第１の実施形態と同様に、算出した更新カーネルパラメータが、収束しているか否かを判定し、収束したと判定されるまで、再帰的に上記処理を繰り返す。前半部の、更新カーネルパラメータを求めて保持する処理は、図５の更新カーネルパラメータ算出ステップＳ５３に対応する。また後半部の、この収束判定処理、及び、結果に基づく分岐は、図５の更新カーネルパラメータ収束判定ステップＳ５４、及び収束判定分岐ステップＳ５５に対応する。後半部については、第１の実施形態のステップＳ２４及びＳ２５と同様であるので説明を省略し、更新カーネルパラメータ算出ステップＳ５３の処理の詳細について説明する。
【０１３０】
更新カーネルパラメータ算出ステップＳ５３において求める、現在のカーネルパラメータσにおける偏微分係数∂Ｊ（σ）／∂σ｜σの算出には、Ｊ（σ）をσで偏微分した偏導関数∂Ｊ（σ）／∂σを用いる。この偏導関数∂Ｊ（σ）／∂σは、次のように表される。
【０１３１】
【数１２】
0004995027.tif 000013
【０１３２】
係数列ａ（ｉ、ｊ、ｍ、ｎ）、ｂ（ｉ、ｊ、ｍ、ｎ）、ｃ（ｉ、ｊ、ｍ、ｎ）は、上式中では、簡単に、ａ、ｂ、ｃと表記した。これにより、現在のカーネルパラメータσにおける偏微分係数∂Ｊ（σ）／∂σ｜σは、上記式のσに、現在のカーネルパラメータの値を代入することにより求めることができる。∂Ｊ（σ）／∂σ｜σを求めるために、この式を展開して整理してもよいが、非常に煩雑になる。そこで、それは避け、この計算は単純な線形演算であるので、計算機を用いて、このままの形で計算してしまえばよい。
【０１３３】
そして、このようにして求めた、現在のカーネルパラメータσにおける偏微分係数∂Ｊ（σ）／∂σ｜σを用いて、更新カーネルパラメータσ’は、σ’＝σ＋η（∂Ｊ（σ）／∂σ｜σ）と求める。ηは正の定数であり、更新の速度を決めるパラメータである。この値は、大きすぎると、更新カーネルパラメータが振動し、収束の判定がされない可能性がある。しかし、これが小さすぎると、収束の判定がなされるまでに、多くの回数の更新を必要とする。そのためこのηは、更新カーネルパラメータが振動しない程度の値で、収束の判定がなされるまでの処理にかかる時間が許される程度に小さい値にするのがよく、問題に応じて、実験的に求めてやればよい。
【０１３４】
∂Ｊ（σ）／∂σ｜σは、関数Ｊ（σ）のσにおける傾きであるので、更新カーネルパラメータσ’は、現在のカーネルパラメータから、Ｊ（σ）の極大方向へ、その傾きに比例した量だけ変化させたものになる。このような更新を行うことにより、Ｊ（σ）が極大値に近づくような更新カーネルパラメータσ’の値を求めることが可能になる。つまり、いわゆる最急勾配法（ηが正であるので、山登り法とも言う）を用いてσ’の値を求めることになる。
【０１３５】
また、本実施形態では用いていないが、このような更新式において一般的な慣性項を付加してもよい。この場合、１ステップ前に求めた偏微分係数∂Ｊ（σ）／∂σ｜＾σを記録しておく。そして、今回のステップの更新カーネルパラメータσ’を、σ’＝σ＋η（∂Ｊ（σ）／∂σ｜σ）＋τ（∂Ｊ（σ）／∂σ｜＾σ）と求めるようにすればよい。τは慣性項係数であり、１より小さい正の定数である。τの値は、１に近いほど、慣性項の影響が大きくなるので、求める効果に応じて、実験的に決定するようにすればよい。
【０１３６】
以上の処理により、更新カーネルパラメータσ’を求めることができ、この更新カーネルパラメータσ’を新たなカーネルパラメータとして、カーネルパラメータ保持部４０３に保持する。そして、第１の実施形態と同様に、更新カーネルパラメータが収束したと判定されるまで、上記説明した、ＫＬＤＡ、カーネルパラメータ更新を再帰的に実行し、更新カーネルパラメータが収束した後のカーネルパラメータを得る。
【０１３７】
本実施形態では、このカーネルパラメータの更新に、いわゆる最急勾配法を用いているので、更新式に用いているηの値を適切に設定することにより、更新カーネルパラメータは収束する。このような処理により、カーネルパラメータσにより定まる高次特徴空間への写像の内、クラス内分散とクラス間分散との比を最大とする１次元部分空間で、この比が極大値となるようなカーネルパラメータσを設定可能になる。
【０１３８】
つまり、高次特徴空間内に写像された、クラスＡとクラスＢのデータを、クラス分離度が高まるような１次元部分空間に写像することを考える。その際に、更にその時のクラス分離度が高くなるような高次元特徴空間への写像を陰に実現できるカーネルパラメータを得ることができる。これにより、クラスＡとクラスＢの分離度が、（高次特徴空間内の１次元部分空間において）高まるような高次特徴空間への非線形写像が実現できる。そして、この高次特徴空間において識別規則を構築することで、クラスＡとクラスＢの弁別性能が高い識別規則を構築することができる。
【０１３９】
続いて、ＳＶＭ学習実行部４０６において、学習データ保持部４０１に保持された学習データと、今までの処理により得られたカーネルパラメータσを用いて、ＳＶＭの学習を実行する。その結果、Ｎ次元ベクトルである線形結合パラメータαとバイアス値δを求める。そして、この線形結合パラメータαと、バイアス値δを、線形結合パラメータ保持部４０７に記録して保持することで、本実施形態の学習モードでの処理が終了となる。ここでの処理は、図５のＳＶＭ学習実行ステップ５６に対応する。この線形結合パラメータαと、バイアス値δは、パターン識別モードでの処理に用いられる。
【０１４０】
第１の実施形態では、カーネルパラメータが収束した後に、それにより定まる高次特徴空間において、学習データの分散が大きくなるような線形部分空間を求めた。これに対し、本実施形態では、この高次特徴空間に写像された学習データのマージンが最大となる超平面を求め、この超平面と法線方向が一致し、且つ、原点がこの超平面上である１次元の線形部分空間を求める。上記ＳＶＭの学習を実行することにより得られた、線形結合パラメータαが、超平面の法線ベクトルに対応する。また、バイアス値δは、この１次元線形部分空間の原点を、超平面上にシフトするための要素である。
【０１４１】
ＳＶＭの詳細や、マージン最大化基準に基づいて超平面を求める方法（最適超平面識別法の学習法）は、非特許文献２や、非特許文献３に詳細に記載されているので、説明を省略する。ちなみに、ＳＶＭの学習で用いる学習データのクラスラベルは、クラスＡのデータを１、クラスＢのデータを−１とした。ＳＶＭの学習により求めた１次元の部分空間を張る基底ベクトルνは、線形結合パラメータαの、ｉ番目の要素をαｉとした時、この高次特徴空間に写像されたｉ番目の学習データφ（ｘｉ）を用いて、
【０１４２】
【数１３】
0004995027.tif 000014
【０１４３】
と表される。新たな４００次元ベクトルのデータｘを、この１次元部分空間に写像するには、原点のシフトを考慮し、ｘを高次特徴空間に非線形写像したφ（ｘ）と、この基底ベクトルνとの内積を求め、それをバイアス値δを用いてシフトすればよい。よって、
【０１４４】
【数１４】
0004995027.tif 000015
【０１４５】
と求められる。この式は、カーネル関数を用いることにより簡単に演算できる。本実施形態では、カーネル関数Ｋ（ｘ、ｘ’）は、上記処理で得られたカーネルパラメータσを用いて、Ｋ（ｘ、ｘ’）＝ｅｘｐ｛−｜ｘ−ｘ’｜２／（２σ２）｝である。よって、
【０１４６】
【数１５】
0004995027.tif 000016
【０１４７】
となる。ＳＶＭでは、入力されたデータｘに対する、この式１５により求められる値が、０以上であれば、ｘはクラスラベル１のデータ、負であれば、クラスラベル−１のデータであると判定される。
【０１４８】
本実施形態では、Ａ氏の顔画像のクラスである、クラスＡのクラスラベルを１、Ｂ氏の顔画像のクラスである、クラスＢのクラスラベルを−１とした。そのため、入力データに対するこの値が０以上であれば、入力データはＡ氏の顔画像、負であればＢ氏の顔画像であると判定するような識別規則を構成したといえる。
【０１４９】
以上、学習データ入力部４００からＳＶＭ学習実行部４０６までによる、学習データ入力ステップ５０からＳＶＭ学習実行ステップ５６までの処理が、学習モードでの処理となる。上記学習モードでの処理により、学習データ保持部４０１にＮ個の学習データが保持され、クラス分離度が大きくなる基準で設定したカーネルパラメータが、カーネルパラメータ保持部４０３に保持される。さらに、ＳＶＭ学習実行部４０６で求めた、線形結合パラメータα、及び、バイアス値δが、線形結合パラメータ保持部４０７に保持されることになる。
【０１５０】
以降で説明する、本実施形態のパターン識別モードでの処理では、これらのデータ（Ｎ個の学習データ、カーネルパラメータ、線形結合パラメータ、バイアス値）を用いる。それにより、入力されたＡ氏かＢ氏の何れかの顔画像データが、何れの顔画像であるのかを識別する処理を実現する。
【０１５１】
本実施形態の、パターン識別モードおける処理について、パターン識別モードの処理部の構成を示す、図４のパターン識別モードの処理ブロック４１の部分と、処理のフローを示す図６を用いて説明する。
【０１５２】
まず、写像パラメータ入力部４１０において、学習モードで用いたのと同一の、Ｎ個の学習データと、学習モードで求めた、カーネルパラメータσ、及び、線形結合パラメータα、バイアス値δを入力する。Ｎ個の学習データは、学習データ保持部４０１に保持されたものを入力し、カーネルパラメータは、カーネルパラメータ保持部４０３に保持されたものを入力する。そして、線形結合パラメータとバイアス値は、線形結合パラメータ保持部４０７に保持されているものを入力する。ここでの処理は、図６の、写像パラメータ入力ステップ６０に対応する。
【０１５３】
次に、未知データ入力部４１１において、パターン識別を行う対象である、縦横２０×２０画素の、Ａ氏かＢ氏の何れかの顔を切り出したグレースケール画像データを１つ入力する。ここで入力したデータを、以下では、入力データと記載する。そして、このデータも、学習モードでの処理と同様に、この画像の各画素値をラスタスキャン的に並べた４００次元のベクトルを生成する。ここで得られたこのベクトルを、入力データｙとする。この処理は、図６の未知データ入力ステップＳ６１に対応する。
【０１５４】
ここまでの処理は、第１の実施形態と同様である。第１の実施形態では、この後に、未知の学習データに対応するカーネルパラメータを設定した。しかし、本実施形態では、第１の実施形態と異なり、各データに独立なカーネルパラメータが存在しない。そのため、第１の実施形態では存在した、未知の学習データに対応するカーネルパラメータを設定する処理は省略可能であり、写像パラメータ入力部４１０において入力したカーネルパラメータを用いるようにすればよい。
【０１５５】
ここまでの処理により、Ｎ個の学習データ、カーネルパラメータ、線形結合パラメータ、バイアス値、及び、１つの入力データが得られている。そして、次の写像結果算出部４１２において、これらのデータを用い、入力データを、学習モードでのカーネルパラメータの設定及びＳＶＭの学習により求めた、高次特徴空間内の１次元線形部分空間に写像し、写像後の値ｚを求める。この値は、上記説明した式と同じ式により求めることができ、パターン識別モードでの表記に基づき上式を書き換えると、
【０１５６】
【数１６】
0004995027.tif 000017
【０１５７】
となる。この式で用いられているｘｉ等のパラメータは、写像パラメータ入力部４１０において入力したものであり、学習モードでの表記と同一のものである。ここでの処理は、図６の写像結果算出ステップ６２に対応する。
【０１５８】
そして最後に、識別結果出力部４１３において、写像結果算出部４１２で求めた写像後の値ｚに基づいて、入力データがＡ氏と、Ｂ氏の何れの顔画像であるかという識別結果を出力する。本実施形態でのパターン識別規則は、ＳＶＭの学習を用いて構築したものである。ここでは、上記説明したように、ｚが０以上であればクラスラベル１、即ちＡ氏の顔画像であると判定し、ｚが負であればクラスラベル−１である、Ｂ氏の顔画像であるという識別結果を出力する。
【０１５９】
以上の処理により、パターン識別モードでは、入力されたＡ氏かＢ氏の何れかの顔画像データを、クラス分離度が高くなる高次特徴空間内における、マージンを最大化するような１次元部分空間に写像した結果に基づいて、識別可能になる。これにより、クラス分離という観点において、より良い性能を発揮する可能性が高い高次特徴空間での、マージン最大化に基づいた識別規則による識別が可能となるため、より良いクラス識別性能が得られる可能性が高くなる。
【０１６０】
本実施形態では、Ａ氏かＢ氏の何れかのみを対象としたが、例えば、Ａ氏とそれ以外という２クラス問題にも適用可能であることは明らかである。そして例えば、前述のように、このような１対それ以外というような２クラス識別を多数組み合わせることによって、多クラスの識別問題に適用することも可能である。
【０１６１】
また、本実施形態では、写像後の値に対して０を識別の境界としたが、これに限るものではない。例えば、学習データに偏りがあるような場合や、どちらか一方のクラスと判定される可能性を下げたいといったような場合は、０以外を識別の境界として設定しても構わない。この場合、この境界の値は求める性能に応じて実験的に決めてやればよい。
【０１６２】
このように、本実施形態のパターン識別方法では、まず、カーネルパラメータの初期値を設定する。そして、カーネルパラメータにより定まる、カーネル法により陰に実現される、高次特徴空間への非線形写像により、高次特徴空間へ写像された学習データの分布を分析する。ここで分析する分布は、やはり第１の実施形態と同様に、高次特徴空間における任意の２つの学習データに対する内積を用いて分析可能な分布である。次いで、この分布が所望の分布になるように、分布を分析した結果に基づいて、カーネルパラメータを更新する。そして、このカーネルパラメータの更新が収束するまで、高次特徴空間における分布の分析と、それに基づくカーネルパラメータの更新を再帰的に実行する。
【０１６３】
これにより、高次特徴空間における学習データの分布が、所望の分布となるような、非線形写像を実現するためのカーネルパラメータを設定することができる。本実施形態では、分析する分布として、高次特徴空間における、学習データのクラス分離度、具体的には、クラス内分散とクラス間分散との比を用い、このクラス内分散とクラス間分散との比が、大きくなるように、カーネルパラメータを設定した。続いて、ＳＶＭの学習を用いて、この高次特徴空間において、学習データのマージンを最大化するような、超平面に対応する、高次特徴空間内の１次元線形部分空間を求める。そして、上記求めたカーネルパラメータ等を用いて、このようにして求めた高次特徴空間内の１次元線形部分空間に、入力データを写像して、その値に基づいてクラスの識別を行う。
【０１６４】
これにより、学習データが所望の分布になるような高次特徴空間において、学習データのマージンが最大になるような、高次特徴空間内の１次元線形部分空間上に入力データを写像することが可能になり、より良い識別性能を実現できる可能性が高くなる。
【０１６５】
本実施形態では、カーネルパラメータとして、全てのデータに共通の１つのカーネルパラメータを用いたが、これに限るものではない。例えば第１の実施形態と同様に、全てのデータそれぞれが、独立にカーネルパラメータを持つような場合に適用可能である。このような場合、パターン識別モードで入力するデータに対しても、カーネルパラメータを設定しなければならない。場合によっては、第１の実施形態のように、比較的簡単に求めることができるので、その場合は、入力データごとに求めて設定すればよい。
【０１６６】
本実施形態での、更新後のカーネルパラメータを求める処理は、第１の実施形態のそれと比較して、非常に処理負荷が高いため、入力データごとに求めるには不向きである。このような場合には、例えば、予め求めてあった、学習データそれぞれのカーネルパラメータの平均等を、設定してしまっても構わない。また、第１の実施形態のように、全てのデータそれぞれがカーネルパラメータを持っているような例の場合、本実施形態で用いるＳＶＭの学習がうまくいかない可能性がある。そのような場合は、非特許文献６や、非特許文献７のような、拡張されたＳＶＭを用いるようにすれば良い。拡張されたＳＶＭの詳細は、非特許文献６や、非特許文献７に詳細に記載されているので、説明を省略する。
【０１６７】
また本実施形態では、ＳＶＭの学習を用いて、カーネルパラメータが設定された後の、高次特徴空間内の１次元線形部分空間を求めたが、これに限るものではない。例えば、カーネルパラメータ更新時に用いたのと同じ、ＫＬＤＡを、カーネルパラメータが設定された後に実行しても良い。
【０１６８】
ＫＬＤＡを用いた場合、ＳＶＭの学習とは異なり、この１次元部分空間上での、識別の境界を決める値は決まらない。そこで、例えば、この１次元部分空間に写像した学習データの、各クラスの平均の中点位置を、識別の境界を決める値として用いたり、別のテストデータを用いて、求める性能となる値を実験的に求めたりすれば良い。またＫＬＤＡは、そのまま多クラスの場合にも応用できる。この場合、２クラスでは１次元の部分空間が得られるが、多クラスの場合、クラス数をＣとすると、Ｃ−１次元の部分空間が得られる。そこで、このＣ−１次元の部分空間に学習データを写像して記録しておき、実際のパターン識別時には、入力データを同じＣ−１次元の部分空間に写像して、その空間上で、例えば最近傍法等を用いてパターン識別を実行する等すれば良い。
【０１６９】
以上、第２の実施形態は、学習用のパターン集合から、本発明のパターン識別方法におけるパラメータを決定し、決定したパラメータを用いて、未知のパターンが何れのクラスに属するかを識別するパターン識別方法の例として説明した。
【０１７０】
上記説明した、第１、及び第２の実施形態のデータ表現方法もしくはパターン識別方法の例では、人物の顔を切り出したグレースケール画像を入力データとして用いた。しかし、本発明はこれに限るものではなく、その他のカテゴリの画像データや、音声データに対しても適用可能であることは明らかである。また、例えばＷｅｂコンテンツ等の一般的なデータであっても、何らかの方法で、多次元のベクトルとして表現可能なデータであれば、本発明は適用可能である。
【０１７１】
また、第１、及び第２の実施形態では、カーネル関数として、いわゆるガウシアンカーネルタイプのものを用いたが、その他のカーネル関数を用いることも可能である。この場合、カーネルパラメータの更新方法や、収束判定条件等を適切に定めてやれば、データの分布が、高次特徴空間において所望の分布となるようなカーネルパラメータを求めることができる。また、第１、及び第２の実施形態では、代表的なカーネル法として、ＫＰＣＡ、ＫＬＤＡ、ＳＶＭに対して本発明を適用した。しかし、これに限るものでなく、その他のカーネル法においても、所望の分布である高次特徴空間になるように、カーネルパラメータを設定する方法のフレームワークとして適用可能である。
【０１７２】
以上、本発明に係る実施形態を説明したが、本発明は、コンピュータプログラムによっても実現できることは明らかである。また、通常コンピュータプログラムは、ＣＤＲＯＭ等のコンピュータ読み取り可能な記憶媒体に記憶されており、それをコンピュータが有する記憶媒体ドライブ装置にセットし、システムにコピーもしくはインストールすることで実行可能になる。そのため、本発明はかかるコンピュータ可読記憶媒体をもその範疇とするのは明らかである。
【０１７３】
なお本発明は、記憶媒体から読出されたプログラムをＣＰＵが実行することによって、前述した実施形態の各機能が実現される場合も含まれる。
【０１７４】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ、ＤＶＤ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１７５】
さらに、画像入力装置、情報蓄積機器、またこれらが複合または接続された装置において、両方またはいずれかの装置に備わるＣＰＵなどが実際の処理の一部または全部を行うことで前述した実施形態の機能が実現される場合も含まれる。
【０１７６】
上記画像入力装置としては、ビデオカメラ、デジタルカメラ、監視カメラなど各種ＣＣＤを利用したカメラやスキャナ、アナログ画像入力装置からＡＤ変換によりデジタル画像に変換された画像入力装置が利用できる。上記情報蓄積機器としては、外部ハードディスク、ビデオレコーダなどが利用できる。
【図面の簡単な説明】
【０１７７】
【図１】第１の実施形態におけるデータ処理装置の機能構成を示すブロック図である。
【図２】第１の実施形態における学習モードの処理手順を示すフローチャートである。
【図３】第１の実施形態におけるデータ表現モードの処理手順を示すフローチャートである。
【図４】第２の実施形態におけるパターン識別装置の機能構成を示すブロック図である。
【図５】第２の実施形態における学習モードの処理手順を示すフローチャートである。
【図６】第２の実施形態におけるパターン識別モードの処理手順を示すフローチャートである。
【図１】
0004995027.tif 000018
【図２】
0004995027.tif 000019
【図３】
0004995027.tif 000020
【図４】
0004995027.tif 000021
【図５】
0004995027.tif 000022
【図６】
0004995027.tif 000023