(57)【特許請求の範囲】
【請求項１】
学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行うサポートベクタマシン学習処理手段と、
前記サポートベクタマシン学習の完了時に、サポートベクタマシン学習で決定された識別関数により前記学習データ群が分離されているか否かを判断する判断手段と、
前記サポートベクタマシン学習を行うように前記サポートベクタマシン学習処理手段を制御する第１の制御と、前記学習データ群が分離されているか否かを判断するように前記判断手段を制御する第２の制御と、分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、前記カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うように、前記サポートベクタマシン学習処理手段を制御する第３の制御と、を行う制御手段と、
を備えた、パターン認識装置。
【請求項２】
前記制御手段は、前記第３の制御で、前記高次のカーネル関数を用いて、サポートベクタマシン学習を行うように、前記サポートベクタマシン学習処理手段を制御した場合には、再度、前記第２の制御と前記第３の制御を行い、
前記制御手段は、前記学習データ群のすべてが分離されるまで、前記第２の制御と第３の制御とを繰りかえし、繰り返す第３の制御においては、一つ前の第３の制御のカーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うように前記サポートベクタマシン学習処理手段を制御することを特徴とする請求項１に記載のパターン認識装置。
【請求項３】
前記第１の制御で用いるカーネル関数は、一次のカーネル関数であり、前記第１の制御後に行う前記第３の制御の高次のカーネル関数は二次のカーネル関数であり、その後に繰り返し行う第３の制御の高次のカーネル関数は一つ前の第３の制御のカーネル関数よりも一つ高次のカーネル関数を用いて、サポートベクタマシン学習を行うように前記サポートベクタマシン学習処理手段を制御することを特徴とする請求項２に記載のパターン認識装置。
【請求項４】
請求項１から３のいずれかに記載のパターン認識装置であって、
前記第１の制御のカーネル関数を用いて行ったサポートベクタマシン学習により決定されて前記第３の制御で固定された識別関数を用いて、入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第１の判断を行う第１の判断手段と、前記入力データが前記識別関数で分離されている学習データ群に属さないと判断された場合に、前記カーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第２の判断を行う第２の判断手段と、を備え、
前記入力データがいずれかの学習データ群に属すると判断されるまで、前記第２の判断を繰りかえし、繰り返す第２の判断においては、一つ前の第２の判断のカーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが、該識別関数で分離されている学習データ群に属するか否かを判断するパターン認識装置。
【請求項５】
学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行う第１ステップと、
前記サポートベクタマシン学習の完了時に、前記第１ステップのサポートベクタマシン学習で決定された識別関数により前記学習データ群が分離されているか否かを判断する第２ステップと、
分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、前記カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行う第３ステップと、
を備えた、パターン認識装置のパターン認識学習方法。
【請求項６】
前記第３ステップで、前記高次のカーネル関数を用いて、サポートベクタマシン学習を行った場合には、再度、前記第２ステップ及び前記第３ステップを行い、
前記学習データ群のすべてが分離されるまで、前記第２ステップと前記第３ステップとを繰りかえし、繰り返す第３ステップにおいては、一つ前の第３ステップのカーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うことを特徴とする請求項５に記載のパターン認識学習方法。
【請求項７】
前記第１ステップのカーネル関数は、一次のカーネル関数であり、前記第１ステップ後に行う前記第３ステップの高次のカーネル関数は二次のカーネル関数であり、その後に繰り返し行う第３ステップの高次のカーネル関数は一つ前の第３ステップのカーネル関数よりも一つ高次のカーネル関数を用いて、サポートベクタマシン学習を行うことを特徴とする請求項６に記載のパターン認識学習方法。
【請求項８】
請求項５から７のいずれかに記載のパターン認識学習方法により得られた識別関数を用いてパターン認識を行う、パターン認識装置のパターン認識方法であって、
前記第１ステップのカーネル関数を用いて行ったサポートベクタマシン学習により決定されて前記第３ステップで固定された識別関数を用いて、入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第５ステップと、
前記入力データが前記識別関数で分離されている学習データ群に属さないと判断された場合に、前記カーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第６ステップと、
を備え、
前記入力データがいずれかの学習データ群に属すると判断されるまで、前記第６ステップを繰りかえし、繰り返す第６ステップにおいては、一つ前の第６ステップのカーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが、該識別関数で分離されている学習データ群に属するか否かを判断するパターン認識方法。
【請求項９】
コンピュータに、
学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行う第１手順と、
前記サポートベクタマシン学習の完了時に、前記第１手順のサポートベクタマシン学習で決定された識別関数により前記学習データ群が分離されているか否かを判断する第２手順と、
分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、前記カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行う第３手順と、
を実行させるためのパターン認識学習用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パターン認識装置とその学習方法、及びパターン認識学習用プログラムに関わり、特に、カーネル関数によってサポートベクタマシン学習を行うパターン認識装置とその学習方法、及びパターン認識学習用プログラムに関する。
【背景技術】
【０００２】
パターン認識手法の一つに、認識対象のデータを特定の種類のパターンに対応づける識別関数を用いる方法がある。識別関数はパターンの種類毎に識別境界によってデータ空間を分割し、分割された領域に属するデータが当該種類のパターンに対応する。例えば、対象データが２次元データの場合には、識別関数が与える識別境界は識別線になり、３次元データの場合には、識別関数が与える識別境界は識別平面になり、一般にｎ次元データの場合には、識別関数が与える識別境界は識別ｎ次平面（「識別高次平面」ともいう）になる。
【０００３】
パターン認識装置は、識別線（３次元以上は識別平面）によって、複数のデータ（パターン）からなるデータ群を他のデータ群から分離し、データ空間上にそのデータ群のみが属する領域を作る。そして、新たに未知のデータを入力すると、その未知のデータが、分離した領域内に存在するかどうかを確認し、領域内に存在する場合、その未知のデータは事前に分離したデータ群に属すると識別する。もし、領域外である場合は、別のデータ群に属すると識別する。
【０００４】
図１は、２次元平面上で、データ群Ａをデータ群Ｂとデータ群Ｃから分離する識別線を表す図である。図中の未知データは、識別線よりデータ群Ａ側の領域に存在するため、データ群Ａのデータであると識別される。
【０００５】
上述したパターン認識手法において、優れたパターン識別能力を持つサポートベクタマシン（以下、ＳＶＭという）がある。
【０００６】
ＳＶＭは、図２に示すように、識別境界近傍に位置するデータと識別境界との距離であるマージンを最大化するように識別境界を設定するものである。
【０００７】
ＳＶＭを開示する関連文献としては、特許文献１に、マルチマージンサポートベクトルマシン（ＭＭ−ＳＶＭ）の開示があり、２以上の互いに平行な分離面を入力空間に生成することにより、入力空間を３以上の領域に分離することの記載がある。
【０００８】
また、特許文献２には、サポートベクタマシンを用いて二項分布の最適な性能を提供するために、データの周波数特性を抽出して分類境界を表し、特徴をブースティングして冗長な特徴を除去し、関連する特徴のみを用いることの記載がある。
【０００９】
また、特許文献３には、検出対象画像が顔画像候補領域であるか否かを識別するＳＶＭ（サポートベクタマシーン）が記載され、顔画像選択の前段の処理として粗い精度で識別を行う高速ＳＶＭ５０Ａを用い、後段の処理として精度の高い識別を行う高性能ＳＶＭ５０Ｂを用いることが記載されている。
【００１０】
また、特許文献４には、サポートベクターマシン（ＳＶＭ）の識別器で多段型学習部を構成し、多段型学習部は、学習データを分割して得られる分割データをそれぞれ入力して初段の学習を複数のサポートベクターマシンに行わせ、初段以降において、前段のサポートベクターマシンから出力されたサポートベクターの再構築（グルーピング）を必要に応じて行い、これらの再構築されたサポートベクターを所定の組数ごとに結合したデータをそれぞれ入力して最終段までの学習をサポートベクターマシンに行わせるという構成をとることの記載がある。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００７−５２５０７号公報（要約等）
【特許文献２】特開２０１２−２１６１９１号公報（要約、段落００１８等）
【特許文献３】特開２００６−０４８３２２号公報（段落００２１、００３７等）
【特許文献４】特開２０１３−１６７９６４号公報（段落００１２、００１３等）
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、ＳＶＭを用いたパターン認識においては、ＳＶＭのカーネル関数として、線形カーネル関数や非線形カーネル関数等が使われ、一度、カーネル関数を決定したら、同じカーネル関数を用いて、学習及び認識を行っていた。そのため、各学習データ群に対して、最適なカーネル関数が用いられているとは言えず、学習データ群によっては、汎化能力が低いカーネル関数が用いられ識別面が決定されてしまうという課題があった。
【００１３】
また、ＳＶＭには、分離不能なデータ群に対して、汎化能力を向上するソフトマージンという手法がある。ソフトマージンは、分離不能なデータ群の中間を通るような場所に識別線を配置する方法（図３参照）であるが、ソフトマージンでは、分離不能な学習データ群を無理やり分離しているような状態となり、識別線の近傍では、識別線が、未知データに対して汎化能力の高い位置に配置されているとは限らないという課題があった。
【００１４】
本発明は、パターン認識装置の一手法であるサポートベクターマシン（以下、ＳＶＭとする）において、複数の既知のデータ群（以下、全学習データ群とする）を分離することによって、未知データに対する認識能力（汎化能力）を向上させる、パターン認識装置とその学習方法、及びパターン認識学習用プログラム方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明のパターン認識装置は、学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行うサポートベクタマシン学習処理手段と、
前記サポートベクタマシン学習の完了時に、サポートベクタマシン学習で決定された識別関数により前記学習データ群が分離されているか否かを判断する判断手段と、
前記サポートベクタマシン学習を行うように前記サポートベクタマシン学習処理手段を制御する第１の制御と、前記学習データ群が分離されているか否かを判断するように前記判断手段を制御する第２の制御と、分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、前記カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うように、前記サポートベクタマシン学習処理手段を制御する第３の制御とを行う制御手段と、
を備えた、パターン認識装置である。
【００１６】
本発明の、パターン認識装置のパターン認識学習方法は、学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行う第１ステップと、
前記サポートベクタマシン学習の完了時に、前記第１ステップのサポートベクタマシン学習で決定された識別関数により前記学習データ群が分離されているか否かを判断する第２ステップと、
分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、前記カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行う第３ステップと、
を備えた、パターン認識装置のパターン認識学習方法である。
【００１７】
本発明のパターン認識学習用プログラムは、コンピュータに、
学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行う第１手順と、
前記サポートベクタマシン学習の完了時に、前記第１手順のサポートベクタマシン学習で決定された識別関数により前記学習データ群が分離されているか否かを判断する第２手順と、
分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、前記カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行う第３手順と、
を実行させるためのパターン認識学習用プログラムである。
【発明の効果】
【００１８】
本発明によれば、より低次の識別関数で、学習データや入力データを分離することが可能となり、汎化能力の高いサポートベクタマシン（ＳＶＭ）を構成することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】２次元平面上で、データ群Ａをデータ群Ｂとデータ群Ｃから分離する識別線を表す図である。
【図２】識別境界近傍に位置するデータと識別境界との距離であるマージンを最大化するように識別境界を設定することを説明する図である。
【図３】ソフトマージンにより、分離不能なデータ群の中間を通るような場所に識別線を配置することを説明する図である。
【図４】本発明の一実施形態のパターン認識装置の構成を示すブロック図である。
【図５】記憶部の構成を示すブロック図である。
【図６】多項式カーネル関数を用いて、ＳＶＭの学習を行う場合の処理を示すフローチャートである。
【図７】学習したＳＶＭを用いて、与えられた未知データが、どの学習データ群に属するかを判断するＳＶＭの認識処理を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について図面を用いて詳細に説明する。
【００２１】
以下に説明する本発明の実施形態では、ＳＶＭのカーネル関数として、数式（１）のような多項式カーネル関数を用いる。多項式カーネル関数は、ｌ＝１，ｐ＝１の時、線形カーネルとなり、ｐ＝２，３，４，５．．．で高次の多項式カーネル関数となる。
【００２２】
【数１】
0005936159.tif 000002
【００２３】
本実施形態では、学習データ群に対して、多項式カーネル関数の次数ｐを１から順次増やすことによってサポートベクタマシン学習を行っていく。こうすることで、より低次の識別関数で、学習データを分離することが可能となり、汎化能力の高いサポートベクタマシン（ＳＶＭ）を構成することが可能となる。入力データが識別関数で分離されている学習データ群に属するか否かを判断するパターン認識においても、より低次の識別関数から判断していく。
【００２４】
図４は本発明の一実施形態のパターン認識装置の構成を示すブロック図である。パターン認識装置１００は、データ入力部１１０とデータ処理部１２０とデータ出力部１３０と記憶部１４０とを備える。
【００２５】
データ入力部１１０は、認識対象のデータ、学習データ、及び必要に応じて各種パラメータを受け取り、必要に応じて記憶部１４０に記憶する。
【００２６】
データ処理部１２０はパターン認識学習部１２２とパターン認識部１２４とを備える。
【００２７】
パターン認識学習部１２２は、学習段階において、学習データについてサポートベクタマシン学習を行い識別関数を取得する。パターン認識学習部１２２は、学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行うサポートベクタマシン学習処理部と、サポートベクタマシン学習の完了時に、サポートベクタマシン学習で決定された識別関数により学習データ群が分離されているか否かを判断する判断部と、サポートベクタマシン学習処理部及び判断部の動作を制御する制御部とを備えている。制御部は、サポートベクタマシン学習を行うようにサポートベクタマシン学習処理部を制御する第１の制御と、学習データ群が分離されているか否かを判断するように判断部を制御する第２の制御と、分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うように、サポートベクタマシン学習処理部を制御する第３の制御とを行う。制御部は、第３の制御で、高次のカーネル関数を用いて、サポートベクタマシン学習を行うように、サポートベクタマシン学習処理部を制御した場合には、再度、第２の制御と第３の制御を行い、学習データ群のすべてが分離されるまで、第２の制御と第３の制御とを繰りかえし、繰り返す第３の制御においては、一つ前の第３の制御のカーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うようにサポートベクタマシン学習処理部を制御する。
【００２８】
パターン認識部１２４は、データ入力部１１０で受けた入力データとなる認識対象データについて、記憶部１４０に記憶された識別関数に関する情報を用いてパターン認識を行い、認識結果をデータ出力部１３０に送る。パターン認識部１２４は、パターン認識学習部１２２により第１の制御のカーネル関数を用いて行ったサポートベクタマシン学習により決定されて第３の制御で固定された識別関数を用いて、入力データ（認識対象データ）が識別関数で分離されている学習データ群に属するか否かを判断する第１の判断を行う第１の判断部と、入力データが識別関数で分離されている学習データ群に属さないと判断された場合に、前記カーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、入力データが識別関数で分離されている学習データ群に属するか否かを判断する第２の判断を行う第２の判断部と、を備えている。パターン認識部１２４において、入力データがいずれかの学習データ群に属すると判断されるまで、第２の判断を繰りかえし、繰り返す第２の判断においては、一つ前の第２の判断のカーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、入力データが、識別関数で分離されている学習データ群に属するか否かを判断する。
【００２９】
データ出力部１３０は、認識結果を表示器（図示せず）等に送る。
【００３０】
図４では、データ処理部１２０がパターン認識部１２４を含んでいるが、パターン認識部１２４を含まない構成とすることもできる。この場合には、パターン認識装置１００は、学習によりパターン認識用の識別関数を取得する機能を有するパターン認識学習装置となる。
【００３１】
図５に示すように、記憶部１４０は、結合係数記憶部１４１、閾値記憶部１４２、学習データ記憶部１４３、出力データ記憶部１４４、正解信号記憶部１４５、分離順序記憶部１４６を備える。また、記憶部１４０は取得した識別関数を記憶するための識別関数記憶部（図示せず）を備える構成とし、パターン認識部１２４がパターン認識を実行する際に使用するようにしてもよい。
【００３２】
本発明の実施の形態におけるパターン認識装置は、例えば、顔画像を認識するために、画像データが学習データとして記憶されているパーソナルコンピュータ上などに構築することが可能である。この場合、データ処理部１２０はＣＰＵ、演算に必要なデータを記憶するＲＡＭ、パターン認識学習処理やパターン認識処理を行うためのプログラムを記憶するＲＯＭなどから構成でき、記憶部１４０はＲＡＭ、ＲＯＭなどから構成できる。
（動作の説明）
本実施形態では、複数の既知のデータ群（以下、学習データ群とする）を分離する問題において、各学習データ群を分離する識別関数は、ＳＶＭ（サポートベクタマシン）を用いて学習する。
【００３３】
まず、学習データ群ｋに属するｉ番目の学習データを数式（２）で表す。ｘは、ベクトルである。ｙは数式（３）のような正解信号を表す。ｙは、学習データが正解である場合、つまり、その識別関数によって唯一分離される学習データ群をｃで表すと、ｃ＝ｋの場合は、ｙ＝１となる。また、不正解である場合、つまり、ｃ=ｋでない場合は、ｙ＝−１となる。学習データ群はデータ入力部１１０から入力され、学習データ記憶部１４３に記憶されている。正解信号ｙは正解信号記憶部１４５に記憶される。
【００３４】
【数２】
0005936159.tif 000003
【００３５】
【数３】
0005936159.tif 000004
【００３６】
この時、学習データ群ｋを分離する識別関数は、数式（４）のようになる。ｗｋは、結合係数、ｈｋは閾値を表すパラメータである。Φ(・)は、学習データｘを写像する関数である。ｋ＝１．．Ｋの学習データ群の各々に、数式（４）のような識別関数が存在する。結合係数ｗｋは結合係数記憶部１４１に記憶され、閾値を表すパラメータｈｋは閾値記憶部１４２に記憶されている。
【００３７】
【数４】
0005936159.tif 000005
【００３８】
ＳＶＭは、識別関数を学習データから遠ざけることを目的とした学習であるため、ＳＶＭの目的関数は、数式（５）のようになる。ＳＶＭを学習するということは、制約条件の数式（６）を満たしながら、数式（５）を最小とするｗを求めることである。
【００３９】
【数５】
0005936159.tif 000006
【００４０】
【数６】
0005936159.tif 000007
【００４１】
数式（５），（６）を、双対問題に帰着すると、目的関数は、数式（７）のようになる。ここで、αｉ(≧０), i=1,…,Iは、ラグランジェ乗数、K(xc,i, x)は、カーネル関数である。
【００４２】
【数７】
0005936159.tif 000008
【００４３】
識別関数の数式（４）を双対問題の最適解
0005936159.tif 000009
を用いて表すと、数式（８）となる。
【００４４】
【数８】
0005936159.tif 000010
【００４５】
数式（７）で、ｓｉｇｎは、数式（９）のような関数である。
【００４６】
【数９】
0005936159.tif 000011
【００４７】
ここまでは、これまで提案されているＳＶＭの学習理論と同じである。
【００４８】
本実施形態では、図６のフローチャートに示すように、まず、複数の既知のデータ群（以下、学習データ群）を分離する問題において、学習処理開始直後はパターン認識学習部１２２が、図６のステップＳ１０１に示すように、数式（１）の分離順番ｐを１として得た、数式（１０）の１次の多項式カーネル関数を用いて、ＳＶＭの学習を行う（ステップＳ１０２）。
【００４９】
【数１０】
0005936159.tif 000012
【００５０】
次に、数式（１１）で、学習データ群が分離できたかどうかを確認する。数式（１１）が０の場合、識別関数ｆｋは、全学習データ群を分離している。０以外の場合、分離していない。数式（１１）にて、|・|は、絶対値を表す。
【００５１】
【数１１】
0005936159.tif 000013
【００５２】
ステップＳ１０３で学習データ群を分離できたかどうかを判断し（ステップＳ１０３）、分離できた学習データ群の識別関数については、ここで、学習を停止し識別関数を決定し、ＳＶＭ学習を終了する（ステップＳ１０５）。また、その識別関数の分離順番として１を記憶する。分離できた識別関数は、以後の学習で、変更しない。
【００５３】
次に、分離していない学習データ群に対して、図６のステップＳ１０４に示すように、数式（１）の分離順番ｐを２として得た、数式（１２）のような２次の多項式カーネル関数を用いて、ＳＶＭ学習を行い（ステップＳ１０２）、再度、学習データ群が分離できたかどうかを数式（１１）で確認する（ステップＳ１０３）。分離できた学習データ群の識別関数については、ここで、学習を停止し、識別関数を決定し、ＳＶＭ学習を終了する（ステップＳ１０５）。また、分離できた識別関数の分離順番として２を記憶する。分離できた識別関数は、以後の学習で、変更しない。
【００５４】
この処理を、３次（数式（１３））、４次（数式（１４））、・・・、Ｎ次（数式（１５））の多項式カーネル関数で繰り返し、全学習データ群を分離する。
【００５５】
【数１２】
0005936159.tif 000014
【００５６】
【数１３】
0005936159.tif 000015
【００５７】
【数１４】
0005936159.tif 000016
【００５８】
【数１５】
0005936159.tif 000017
【００５９】
次に、前述の方法で学習したＳＶＭを用いて、与えられた未知データが、どの学習データ群に属するかを判断する、パターン認識部１２４のＳＶＭの認識処理について、フローチャートを図７を用いて説明する。
【００６０】
ここで、未知データをｘ’とする。ｘ’は、まず、分離順番１を持つ識別関数群で判定を行う(ステップＳ２０１)。つまり、１次の多項式カーネル関数で分離された識別関数群で判定を行う。分離順番１の識別関数を数式（１６）に示す。
【００６１】
数式（１６）の識別関数のｘに、未知データｘ’を代入したときに、識別関数出力値を確認し（ステップＳ２０２）、出力が１の識別関数が存在する場合（ステップＳ２０３のＹｅｓ）、未知データｘ’は、その識別関数で分離されている学習データ群に属すると判断する（ステップＳ２０５）。
【００６２】
【数１６】
0005936159.tif 000018
【００６３】
もし、分離順番１を持つ識別関数群で、出力が１の識別関数が存在しない場合は、分離順番２を持つ識別関数群で判定を行う（ステップＳ２０４、Ｓ２０２）。つまり、２次の多項式カーネル関数で分離された識別関数群で判定を行う。分離順番２の識別関数を数式（１７）に示す。
【００６４】
分離順番１の識別関数の時と同様に、数式（１７）の識別関数のｘに、未知データｘ’を代入したときに、出力が１の識別関数が存在する場合、未知データｘ’は、その識別関数で分離されている学習データ群に属すると判断する。
【００６５】
【数１７】
0005936159.tif 000019
【００６６】
以降、分離順番２，３，．．．，Ｎの識別関数のｘに、未知データｘ’を代入したときに、出力が１の識別関数が存在する場合、未知データｘ’は、その識別関数で分離されている学習データ群に属すると判断する。数式（１８）に、分離順番Ｎの識別関数を示す。
【００６７】
【数１８】
0005936159.tif 000020
【００６８】
本実施形態のパターン認識装置によれば、固定されたカーネル関数を持つ識別関数では、分離不能な学習データ群において、識別関数のカーネル関数を徐々に高次にすることによって、学習データ群を分離可能で、かつ、汎化能力の高い識別関数を構成することが可能となる。また、固定されたカーネル関数を持つ識別関数で分離不能な学習データ群において、自動的に分離可能な識別関数を得ることが可能となる。
【００６９】
上述した実施形態では、多項式カーネル関数を使用したが、他のカーネル関数、例えば、ラゲール多項式カーネル関数(式（１９）)でも、ｎ＝１から順次数を増やしてラゲール多項式カーネル関数を用いてサポートベクタマシン学習を行うことで、実施可能である。
【００７０】
【数１９】
0005936159.tif 000021
【００７１】
ここで、
【００７２】
【数２０】
0005936159.tif 000022
【００７３】
上述した各実施形態では、入力するデータについては、特定しなかったが、顔認証を行う場合、初期処理段階で本実施形態で説明したパターン認識手法を用いて、性別等を分類することによって、その後の処理を簡略化でき、顔認証処理を高速化することが可能となる。
【００７４】
また、オブジェクト（物体）認識を行う場合、初期処理段階で本実施形態のパターン認識手法を用いて、形等を分類することによって、その後の処理を簡略化でき、オブジェクト認識処理を高速化することが可能となる。
【００７５】
なお、上記のパターン認識学習装置の全部又は一部は、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。また、上記のパターン認識学習方法及びパターン認識方法も、ハードウェア、ソフトウェア又はこれらに組合せにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。ハードウェアで構成する場合、図４に示す、データ入力部１１０、データ処理部１２０、データ出力部１３０の一部又は全部、データ処理部１２０のパターン認識学習部１２２、パターン認識部１２４を構成する構成部の一部又は全部を、例えば、ＬＳＩ(Large Scale Integrated circuit)、ＡＳＩＣ(Application Specific Integrated Circuit)、ゲートアレイ、ＦＰＧＡ(Field Programmable Gate Array)等の集積回路（ＩＣ）で構成することができる。
【００７６】
ソフトウェアで構成する場合、パターン認識装置としてのコンピュータを、プログラムを記憶した、ハードディスク、ＲＯＭ等の記憶部、液晶ディスプレイ等の表示部、演算に必要なデータを記憶するＤＲＡＭ、ＣＰＵ、各部を接続するバスで構成することができる。例えば、図４に示したデータ処理部１２０のパターン認識学習部１２２、パターン認識部１２４を構成する構成部の一部又は全部の動作をプログラムで記述し、このプログラムをＲＯＭ等の記憶部に記憶し、演算に必要な情報をＤＲＡＭに記憶し、ＣＰＵで当該プログラムを動作させることで、本実施の形態に係わるセンター装置の機能をプログラムで実現することができる。
【００７７】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００７８】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【００７９】
上記の実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下の構成には限られない。
【００８０】
（付記１）
学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行うサポートベクタマシン学習処理手段と、
前記サポートベクタマシン学習の完了時に、サポートベクタマシン学習で決定された識別関数により前記学習データ群が分離されているか否かを判断する判断手段と、
前記サポートベクタマシン学習を行うように前記サポートベクタマシン学習処理手段を制御する第１の制御と、前記学習データ群が分離されているか否かを判断するように前記判断手段を制御する第２の制御と、分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、前記カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うように、前記サポートベクタマシン学習処理手段を制御する第３の制御と、を行う制御手段と、
を備えた、パターン認識装置。
【００８１】
（付記２）
前記制御手段は、前記第３の制御で、前記高次のカーネル関数を用いて、サポートベクタマシン学習を行うように、前記サポートベクタマシン学習処理手段を制御した場合には、再度、前記第２の制御と前記第３の制御を行い、
前記制御手段は、前記学習データ群のすべてが分離されるまで、前記第２の制御と第３の制御とを繰りかえし、繰り返す第３の制御においては、一つ前の第３の制御のカーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うように前記サポートベクタマシン学習処理手段を制御することを特徴とする付記１に記載のパターン認識装置。
【００８２】
（付記３）
前記第１の制御で用いるカーネル関数は、一次のカーネル関数であり、前記第１の制御後に行う前記第３の制御の高次のカーネル関数は二次のカーネル関数であり、その後に繰り返し行う第３の制御の高次のカーネル関数は一つ前の第３の制御のカーネル関数よりも一つ高次のカーネル関数を用いて、サポートベクタマシン学習を行うように前記サポートベクタマシン学習処理手段を制御することを特徴とする付記２に記載のパターン認識装置。
【００８３】
（付記４）
付記１から３のいずれかに記載のパターン認識装置であって、
前記第１の制御のカーネル関数を用いて行ったサポートベクタマシン学習により決定されて前記第３の制御で固定された識別関数を用いて、入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第１の判断を行う第１の判断手段と、前記入力データが前記識別関数で分離されている学習データ群に属さないと判断された場合に、前記カーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第２の判断を行う第２の判断手段と、を備え、
前記入力データがいずれかの学習データ群に属すると判断されるまで、前記第２の判断を繰りかえし、繰り返す第２の判断においては、一つ前の第２の判断のカーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが、該識別関数で分離されている学習データ群に属するか否かを判断するパターン認識装置。
【００８４】
（付記５）
学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行う第１ステップと、
前記サポートベクタマシン学習の完了時に、前記第１ステップのサポートベクタマシン学習で決定された識別関数により前記学習データ群が分離されているか否かを判断する第２ステップと、
分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、前記カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行う第３ステップと、
を備えた、パターン認識装置のパターン認識学習方法。
【００８５】
（付記６）
前記第３ステップで、前記高次のカーネル関数を用いて、サポートベクタマシン学習を行った場合には、再度、前記第２ステップ及び前記第３ステップを行い、
前記学習データ群のすべてが分離されるまで、前記第２ステップと前記第３ステップとを繰りかえし、繰り返す第３ステップにおいては、一つ前の第３ステップのカーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うことを特徴とする付記５に記載のパターン認識学習方法。
【００８６】
（付記７）
前記第１ステップのカーネル関数は、一次のカーネル関数であり、前記第１ステップ後に行う前記第３ステップの高次のカーネル関数は二次のカーネル関数であり、その後に繰り返し行う第３ステップの高次のカーネル関数は一つ前の第３ステップのカーネル関数よりも一つ高次のカーネル関数を用いて、サポートベクタマシン学習を行うことを特徴とする付記６に記載のパターン認識学習方法。
【００８７】
（付記８）
付記５から７のいずれかに記載のパターン認識学習方法により得られた識別関数を用いてパターン認識を行う、パターン認識装置のパターン認識方法であって、
前記第１ステップのカーネル関数を用いて行ったサポートベクタマシン学習により決定されて前記第３ステップで固定された識別関数を用いて、入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第５ステップと、
前記入力データが前記識別関数で分離されている学習データ群に属さないと判断された場合に、前記カーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第６ステップと、
を備え、
前記入力データがいずれかの学習データ群に属すると判断されるまで、前記第６ステップを繰りかえし、繰り返す第６ステップにおいては、一つ前の第６ステップのカーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが、該識別関数で分離されている学習データ群に属するか否かを判断するパターン認識学習方法。
【００８８】
（付記９）
コンピュータに、
学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行う第１手順と、
前記サポートベクタマシン学習の完了時に、前記第１手順のサポートベクタマシン学習で決定された識別関数により前記学習データ群が分離されているか否かを判断する第２手順と、
分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、前記カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行う第３手順と、
を実行させるためのパターン認識学習用プログラム。
【００８９】
（付記１０）
前記第３手順で、前記高次のカーネル関数を用いて、サポートベクタマシン学習を行った場合には、再度、前記第２手順及び前記第３手順を行い、
前記学習データ群のすべてが分離されるまで、前記第２手順と前記第３手順とを繰りかえし、繰り返す第３手順においては、一つ前の第３手順のカーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うことを特徴とする付記９に記載のパターン認識学習用プログラム。
【００９０】
（付記１１）
前記第１手順のカーネル関数は、一次のカーネル関数であり、前記第１手順後に行う前記第３手順の高次のカーネル関数は二次のカーネル関数であり、その後に繰り返し行う第３手順の高次のカーネル関数は一つ前の第３手順のカーネル関数よりも一つ高次のカーネル関数を用いて、サポートベクタマシン学習を行うことを特徴とする付記１０に記載のパターン認識学習用プログラム。
【００９１】
（付記１２）
付記９から１１のいずれかに記載のパターン認識学習用プログラムにより得られた識別関数を用いてパターン認識を行う、パターン認識用プログラムであって、
前記第１手順のカーネル関数を用いて行ったサポートベクタマシン学習により決定されて前記第３手順で固定された識別関数を用いて、入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第５手順と、
前記入力データが前記識別関数で分離されている学習データ群に属さないと判断された場合に、前記カーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第６手順と、
を備え、
前記入力データがいずれかの学習データ群に属すると判断されるまで、前記第６手順を繰りかえし、繰り返す第６手順においては、一つ前の第６手順のカーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが、該識別関数で分離されている学習データ群に属するか否かを判断するパターン認識用プログラム。
【産業上の利用可能性】
【００９２】
本発明は、パターン認識装置とその学習方法、及びパターン認識学習用プログラムに用いられ、特に、オブジェクト認識スキャナ付きＰＯＳ、顔認証装置に好適に用いられる。
【符号の説明】
【００９３】
１００  パターン認識装置
１１０  データ入力部
１２０  データ処理部
１２２  パターン認識学習部
１２４  パターン認識部
１３０  データ出力部  
１４０  記憶部
【要約】
【課題】  より低次の識別関数で、学習データや入力データを分離することを可能とする。
【解決手段】  学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行い、サポートベクタマシン学習の完了時に、サポートベクタマシン学習で決定された識別関数により学習データ群が分離されているか否かを判断する。分離されていると判断した場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていないと判断した場合には、分離されていない学習データ群に関して、カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行う。
【選択図】図４【図１】
0005936159.tif 000023
【図２】
0005936159.tif 000024
【図３】
0005936159.tif 000025
【図４】
0005936159.tif 000026
【図５】
0005936159.tif 000027
【図６】
0005936159.tif 000028
【図７】
0005936159.tif 000029