(58)【調査した分野】(Int.Cl.,DB名)
前記制御手段は、前記第3の制御で、前記高次のカーネル関数を用いて、サポートベクタマシン学習を行うように、前記サポートベクタマシン学習処理手段を制御した場合には、再度、前記第2の制御と前記第3の制御を行い、
前記制御手段は、前記学習データ群のすべてが分離されるまで、前記第2の制御と第3の制御とを繰りかえし、繰り返す第3の制御においては、一つ前の第3の制御のカーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うように前記サポートベクタマシン学習処理手段を制御することを特徴とする請求項1に記載のパターン認識装置。
前記第1の制御で用いるカーネル関数は、一次のカーネル関数であり、前記第1の制御後に行う前記第3の制御の高次のカーネル関数は二次のカーネル関数であり、その後に繰り返し行う第3の制御の高次のカーネル関数は一つ前の第3の制御のカーネル関数よりも一つ高次のカーネル関数を用いて、サポートベクタマシン学習を行うように前記サポートベクタマシン学習処理手段を制御することを特徴とする請求項2に記載のパターン認識装置。
前記第1ステップのカーネル関数は、一次のカーネル関数であり、前記第1ステップ後に行う前記第3ステップの高次のカーネル関数は二次のカーネル関数であり、その後に繰り返し行う第3ステップの高次のカーネル関数は一つ前の第3ステップのカーネル関数よりも一つ高次のカーネル関数を用いて、サポートベクタマシン学習を行うことを特徴とする請求項6に記載のパターン認識学習方法。
【背景技術】
【0002】
パターン認識手法の一つに、認識対象のデータを特定の種類のパターンに対応づける識別関数を用いる方法がある。識別関数はパターンの種類毎に識別境界によってデータ空間を分割し、分割された領域に属するデータが当該種類のパターンに対応する。例えば、対象データが2次元データの場合には、識別関数が与える識別境界は識別線になり、3次元データの場合には、識別関数が与える識別境界は識別平面になり、一般にn次元データの場合には、識別関数が与える識別境界は識別n次平面(「識別高次平面」ともいう)になる。
【0003】
パターン認識装置は、識別線(3次元以上は識別平面)によって、複数のデータ(パターン)からなるデータ群を他のデータ群から分離し、データ空間上にそのデータ群のみが属する領域を作る。そして、新たに未知のデータを入力すると、その未知のデータが、分離した領域内に存在するかどうかを確認し、領域内に存在する場合、その未知のデータは事前に分離したデータ群に属すると識別する。もし、領域外である場合は、別のデータ群に属すると識別する。
【0004】
図1は、2次元平面上で、データ群Aをデータ群Bとデータ群Cから分離する識別線を表す図である。図中の未知データは、識別線よりデータ群A側の領域に存在するため、データ群Aのデータであると識別される。
【0005】
上述したパターン認識手法において、優れたパターン識別能力を持つサポートベクタマシン(以下、SVMという)がある。
【0006】
SVMは、
図2に示すように、識別境界近傍に位置するデータと識別境界との距離であるマージンを最大化するように識別境界を設定するものである。
【0007】
SVMを開示する関連文献としては、特許文献1に、マルチマージンサポートベクトルマシン(MM−SVM)の開示があり、2以上の互いに平行な分離面を入力空間に生成することにより、入力空間を3以上の領域に分離することの記載がある。
【0008】
また、特許文献2には、サポートベクタマシンを用いて二項分布の最適な性能を提供するために、データの周波数特性を抽出して分類境界を表し、特徴をブースティングして冗長な特徴を除去し、関連する特徴のみを用いることの記載がある。
【0009】
また、特許文献3には、検出対象画像が顔画像候補領域であるか否かを識別するSVM(サポートベクタマシーン)が記載され、顔画像選択の前段の処理として粗い精度で識別を行う高速SVM50Aを用い、後段の処理として精度の高い識別を行う高性能SVM50Bを用いることが記載されている。
【0010】
また、特許文献4には、サポートベクターマシン(SVM)の識別器で多段型学習部を構成し、多段型学習部は、学習データを分割して得られる分割データをそれぞれ入力して初段の学習を複数のサポートベクターマシンに行わせ、初段以降において、前段のサポートベクターマシンから出力されたサポートベクターの再構築(グルーピング)を必要に応じて行い、これらの再構築されたサポートベクターを所定の組数ごとに結合したデータをそれぞれ入力して最終段までの学習をサポートベクターマシンに行わせるという構成をとることの記載がある。
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、SVMを用いたパターン認識においては、SVMのカーネル関数として、線形カーネル関数や非線形カーネル関数等が使われ、一度、カーネル関数を決定したら、同じカーネル関数を用いて、学習及び認識を行っていた。そのため、各学習データ群に対して、最適なカーネル関数が用いられているとは言えず、学習データ群によっては、汎化能力が低いカーネル関数が用いられ識別面が決定されてしまうという課題があった。
【0013】
また、SVMには、分離不能なデータ群に対して、汎化能力を向上するソフトマージンという手法がある。ソフトマージンは、分離不能なデータ群の中間を通るような場所に識別線を配置する方法(
図3参照)であるが、ソフトマージンでは、分離不能な学習データ群を無理やり分離しているような状態となり、識別線の近傍では、識別線が、未知データに対して汎化能力の高い位置に配置されているとは限らないという課題があった。
【0014】
本発明は、パターン認識装置の一手法であるサポートベクターマシン(以下、SVMとする)において、複数の既知のデータ群(以下、全学習データ群とする)を分離することによって、未知データに対する認識能力(汎化能力)を向上させる、パターン認識装置とその学習方法、及びパターン認識学習用プログラム方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明のパターン認識装置は、学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行うサポートベクタマシン学習処理手段と、
前記サポートベクタマシン学習の完了時に、サポートベクタマシン学習で決定された識別関数により前記学習データ群が分離されているか否かを判断する判断手段と、
前記サポートベクタマシン学習を行うように前記サポートベクタマシン学習処理手段を制御する第1の制御と、前記学習データ群が分離されているか否かを判断するように前記判断手段を制御する第2の制御と、分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、前記カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うように、前記サポートベクタマシン学習処理手段を制御する第3の制御とを行う制御手段と、
を備えた、パターン認識装置である。
【0016】
本発明の、パターン認識装置のパターン認識学習方法は、学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行う第1ステップと、
前記サポートベクタマシン学習の完了時に、前記第1ステップのサポートベクタマシン学習で決定された識別関数により前記学習データ群が分離されているか否かを判断する第2ステップと、
分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、前記カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行う第3ステップと、
を備えた、パターン認識装置のパターン認識学習方法である。
【0017】
本発明のパターン認識学習用プログラムは、コンピュータに、
学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行う第1手順と、
前記サポートベクタマシン学習の完了時に、前記第1手順のサポートベクタマシン学習で決定された識別関数により前記学習データ群が分離されているか否かを判断する第2手順と、
分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、前記カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行う第3手順と、
を実行させるためのパターン認識学習用プログラムである。
【発明の効果】
【0018】
本発明によれば、より低次の識別関数で、学習データや入力データを分離することが可能となり、汎化能力の高いサポートベクタマシン(SVM)を構成することが可能となる。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態について図面を用いて詳細に説明する。
【0021】
以下に説明する本発明の実施形態では、SVMのカーネル関数として、数式(1)のような多項式カーネル関数を用いる。多項式カーネル関数は、l=1,p=1の時、線形カーネルとなり、p=2,3,4,5...で高次の多項式カーネル関数となる。
【0023】
本実施形態では、学習データ群に対して、多項式カーネル関数の次数pを1から順次増やすことによってサポートベクタマシン学習を行っていく。こうすることで、より低次の識別関数で、学習データを分離することが可能となり、汎化能力の高いサポートベクタマシン(SVM)を構成することが可能となる。入力データが識別関数で分離されている学習データ群に属するか否かを判断するパターン認識においても、より低次の識別関数から判断していく。
【0024】
図4は本発明の一実施形態のパターン認識装置の構成を示すブロック図である。パターン認識装置100は、データ入力部110とデータ処理部120とデータ出力部130と記憶部140とを備える。
【0025】
データ入力部110は、認識対象のデータ、学習データ、及び必要に応じて各種パラメータを受け取り、必要に応じて記憶部140に記憶する。
【0026】
データ処理部120はパターン認識学習部122とパターン認識部124とを備える。
【0027】
パターン認識学習部122は、学習段階において、学習データについてサポートベクタマシン学習を行い識別関数を取得する。パターン認識学習部122は、学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行うサポートベクタマシン学習処理部と、サポートベクタマシン学習の完了時に、サポートベクタマシン学習で決定された識別関数により学習データ群が分離されているか否かを判断する判断部と、サポートベクタマシン学習処理部及び判断部の動作を制御する制御部とを備えている。制御部は、サポートベクタマシン学習を行うようにサポートベクタマシン学習処理部を制御する第1の制御と、学習データ群が分離されているか否かを判断するように判断部を制御する第2の制御と、分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うように、サポートベクタマシン学習処理部を制御する第3の制御とを行う。制御部は、第3の制御で、高次のカーネル関数を用いて、サポートベクタマシン学習を行うように、サポートベクタマシン学習処理部を制御した場合には、再度、第2の制御と第3の制御を行い、学習データ群のすべてが分離されるまで、第2の制御と第3の制御とを繰りかえし、繰り返す第3の制御においては、一つ前の第3の制御のカーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うようにサポートベクタマシン学習処理部を制御する。
【0028】
パターン認識部124は、データ入力部110で受けた入力データとなる認識対象データについて、記憶部140に記憶された識別関数に関する情報を用いてパターン認識を行い、認識結果をデータ出力部130に送る。パターン認識部124は、パターン認識学習部122により第1の制御のカーネル関数を用いて行ったサポートベクタマシン学習により決定されて第3の制御で固定された識別関数を用いて、入力データ(認識対象データ)が識別関数で分離されている学習データ群に属するか否かを判断する第1の判断を行う第1の判断部と、入力データが識別関数で分離されている学習データ群に属さないと判断された場合に、前記カーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、入力データが識別関数で分離されている学習データ群に属するか否かを判断する第2の判断を行う第2の判断部と、を備えている。パターン認識部124において、入力データがいずれかの学習データ群に属すると判断されるまで、第2の判断を繰りかえし、繰り返す第2の判断においては、一つ前の第2の判断のカーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、入力データが、識別関数で分離されている学習データ群に属するか否かを判断する。
【0029】
データ出力部130は、認識結果を表示器(図示せず)等に送る。
【0030】
図4では、データ処理部120がパターン認識部124を含んでいるが、パターン認識部124を含まない構成とすることもできる。この場合には、パターン認識装置100は、学習によりパターン認識用の識別関数を取得する機能を有するパターン認識学習装置となる。
【0031】
図5に示すように、記憶部140は、結合係数記憶部141、閾値記憶部142、学習データ記憶部143、出力データ記憶部144、正解信号記憶部145、分離順序記憶部146を備える。また、記憶部140は取得した識別関数を記憶するための識別関数記憶部(図示せず)を備える構成とし、パターン認識部124がパターン認識を実行する際に使用するようにしてもよい。
【0032】
本発明の実施の形態におけるパターン認識装置は、例えば、顔画像を認識するために、画像データが学習データとして記憶されているパーソナルコンピュータ上などに構築することが可能である。この場合、データ処理部120はCPU、演算に必要なデータを記憶するRAM、パターン認識学習処理やパターン認識処理を行うためのプログラムを記憶するROMなどから構成でき、記憶部140はRAM、ROMなどから構成できる。
(動作の説明)
本実施形態では、複数の既知のデータ群(以下、学習データ群とする)を分離する問題において、各学習データ群を分離する識別関数は、SVM(サポートベクタマシン)を用いて学習する。
【0033】
まず、学習データ群kに属するi番目の学習データを数式(2)で表す。xは、ベクトルである。yは数式(3)のような正解信号を表す。yは、学習データが正解である場合、つまり、その識別関数によって唯一分離される学習データ群をcで表すと、c=kの場合は、y=1となる。また、不正解である場合、つまり、c=kでない場合は、y=−1となる。学習データ群はデータ入力部110から入力され、学習データ記憶部143に記憶されている。正解信号yは正解信号記憶部145に記憶される。
【0036】
この時、学習データ群kを分離する識別関数は、数式(4)のようになる。w
kは、結合係数、h
kは閾値を表すパラメータである。Φ(・)は、学習データxを写像する関数である。k=1..Kの学習データ群の各々に、数式(4)のような識別関数が存在する。結合係数w
kは結合係数記憶部141に記憶され、閾値を表すパラメータh
kは閾値記憶部142に記憶されている。
【0038】
SVMは、識別関数を学習データから遠ざけることを目的とした学習であるため、SVMの目的関数は、数式(5)のようになる。SVMを学習するということは、制約条件の数式(6)を満たしながら、数式(5)を最小とするwを求めることである。
【0041】
数式(5),(6)を、双対問題に帰着すると、目的関数は、数式(7)のようになる。ここで、α
i(≧0), i=1,…,Iは、ラグランジェ乗数、K(x
c,i, x)は、カーネル関数である。
【0043】
識別関数の数式(4)を双対問題の最適解
を用いて表すと、数式(8)となる。
【0045】
数式(7)で、signは、数式(9)のような関数である。
【0047】
ここまでは、これまで提案されているSVMの学習理論と同じである。
【0048】
本実施形態では、
図6のフローチャートに示すように、まず、複数の既知のデータ群(以下、学習データ群)を分離する問題において、学習処理開始直後はパターン認識学習部122が、
図6のステップS101に示すように、数式(1)の分離順番pを1として得た、数式(10)の1次の多項式カーネル関数を用いて、SVMの学習を行う(ステップS102)。
【0050】
次に、数式(11)で、学習データ群が分離できたかどうかを確認する。数式(11)が0の場合、識別関数f
kは、全学習データ群を分離している。0以外の場合、分離していない。数式(11)にて、|・|は、絶対値を表す。
【0052】
ステップS103で学習データ群を分離できたかどうかを判断し(ステップS103)、分離できた学習データ群の識別関数については、ここで、学習を停止し識別関数を決定し、SVM学習を終了する(ステップS105)。また、その識別関数の分離順番として1を記憶する。分離できた識別関数は、以後の学習で、変更しない。
【0053】
次に、分離していない学習データ群に対して、
図6のステップS104に示すように、数式(1)の分離順番pを2として得た、数式(12)のような2次の多項式カーネル関数を用いて、SVM学習を行い(ステップS102)、再度、学習データ群が分離できたかどうかを数式(11)で確認する(ステップS103)。分離できた学習データ群の識別関数については、ここで、学習を停止し、識別関数を決定し、SVM学習を終了する(ステップS105)。また、分離できた識別関数の分離順番として2を記憶する。分離できた識別関数は、以後の学習で、変更しない。
【0054】
この処理を、3次(数式(13))、4次(数式(14))、・・・、N次(数式(15))の多項式カーネル関数で繰り返し、全学習データ群を分離する。
【0059】
次に、前述の方法で学習したSVMを用いて、与えられた未知データが、どの学習データ群に属するかを判断する、パターン認識部124のSVMの認識処理について、フローチャートを
図7を用いて説明する。
【0060】
ここで、未知データをx’とする。x’は、まず、分離順番1を持つ識別関数群で判定を行う(ステップS201)。つまり、1次の多項式カーネル関数で分離された識別関数群で判定を行う。分離順番1の識別関数を数式(16)に示す。
【0061】
数式(16)の識別関数のxに、未知データx’を代入したときに、識別関数出力値を確認し(ステップS202)、出力が1の識別関数が存在する場合(ステップS203のYes)、未知データx’は、その識別関数で分離されている学習データ群に属すると判断する(ステップS205)。
【0063】
もし、分離順番1を持つ識別関数群で、出力が1の識別関数が存在しない場合は、分離順番2を持つ識別関数群で判定を行う(ステップS204、S202)。つまり、2次の多項式カーネル関数で分離された識別関数群で判定を行う。分離順番2の識別関数を数式(17)に示す。
【0064】
分離順番1の識別関数の時と同様に、数式(17)の識別関数のxに、未知データx’を代入したときに、出力が1の識別関数が存在する場合、未知データx’は、その識別関数で分離されている学習データ群に属すると判断する。
【0066】
以降、分離順番2,3,...,Nの識別関数のxに、未知データx’を代入したときに、出力が1の識別関数が存在する場合、未知データx’は、その識別関数で分離されている学習データ群に属すると判断する。数式(18)に、分離順番Nの識別関数を示す。
【0068】
本実施形態のパターン認識装置によれば、固定されたカーネル関数を持つ識別関数では、分離不能な学習データ群において、識別関数のカーネル関数を徐々に高次にすることによって、学習データ群を分離可能で、かつ、汎化能力の高い識別関数を構成することが可能となる。また、固定されたカーネル関数を持つ識別関数で分離不能な学習データ群において、自動的に分離可能な識別関数を得ることが可能となる。
【0069】
上述した実施形態では、多項式カーネル関数を使用したが、他のカーネル関数、例えば、ラゲール多項式カーネル関数(式(19))でも、n=1から順次数を増やしてラゲール多項式カーネル関数を用いてサポートベクタマシン学習を行うことで、実施可能である。
【0073】
上述した各実施形態では、入力するデータについては、特定しなかったが、顔認証を行う場合、初期処理段階で本実施形態で説明したパターン認識手法を用いて、性別等を分類することによって、その後の処理を簡略化でき、顔認証処理を高速化することが可能となる。
【0074】
また、オブジェクト(物体)認識を行う場合、初期処理段階で本実施形態のパターン認識手法を用いて、形等を分類することによって、その後の処理を簡略化でき、オブジェクト認識処理を高速化することが可能となる。
【0075】
なお、上記のパターン認識学習装置の全部又は一部は、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。また、上記のパターン認識学習方法及びパターン認識方法も、ハードウェア、ソフトウェア又はこれらに組合せにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。ハードウェアで構成する場合、
図4に示す、データ入力部110、データ処理部120、データ出力部130の一部又は全部、データ処理部120のパターン認識学習部122、パターン認識部124を構成する構成部の一部又は全部を、例えば、LSI(Large Scale Integrated circuit)、ASIC(Application Specific Integrated Circuit)、ゲートアレイ、FPGA(Field Programmable Gate Array)等の集積回路(IC)で構成することができる。
【0076】
ソフトウェアで構成する場合、パターン認識装置としてのコンピュータを、プログラムを記憶した、ハードディスク、ROM等の記憶部、液晶ディスプレイ等の表示部、演算に必要なデータを記憶するDRAM、CPU、各部を接続するバスで構成することができる。例えば、
図4に示したデータ処理部120のパターン認識学習部122、パターン認識部124を構成する構成部の一部又は全部の動作をプログラムで記述し、このプログラムをROM等の記憶部に記憶し、演算に必要な情報をDRAMに記憶し、CPUで当該プログラムを動作させることで、本実施の形態に係わるセンター装置の機能をプログラムで実現することができる。
【0077】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0078】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【0079】
上記の実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下の構成には限られない。
【0080】
(付記1)
学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行うサポートベクタマシン学習処理手段と、
前記サポートベクタマシン学習の完了時に、サポートベクタマシン学習で決定された識別関数により前記学習データ群が分離されているか否かを判断する判断手段と、
前記サポートベクタマシン学習を行うように前記サポートベクタマシン学習処理手段を制御する第1の制御と、前記学習データ群が分離されているか否かを判断するように前記判断手段を制御する第2の制御と、分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、前記カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うように、前記サポートベクタマシン学習処理手段を制御する第3の制御と、を行う制御手段と、
を備えた、パターン認識装置。
【0081】
(付記2)
前記制御手段は、前記第3の制御で、前記高次のカーネル関数を用いて、サポートベクタマシン学習を行うように、前記サポートベクタマシン学習処理手段を制御した場合には、再度、前記第2の制御と前記第3の制御を行い、
前記制御手段は、前記学習データ群のすべてが分離されるまで、前記第2の制御と第3の制御とを繰りかえし、繰り返す第3の制御においては、一つ前の第3の制御のカーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うように前記サポートベクタマシン学習処理手段を制御することを特徴とする付記1に記載のパターン認識装置。
【0082】
(付記3)
前記第1の制御で用いるカーネル関数は、一次のカーネル関数であり、前記第1の制御後に行う前記第3の制御の高次のカーネル関数は二次のカーネル関数であり、その後に繰り返し行う第3の制御の高次のカーネル関数は一つ前の第3の制御のカーネル関数よりも一つ高次のカーネル関数を用いて、サポートベクタマシン学習を行うように前記サポートベクタマシン学習処理手段を制御することを特徴とする付記2に記載のパターン認識装置。
【0083】
(付記4)
付記1から3のいずれかに記載のパターン認識装置であって、
前記第1の制御のカーネル関数を用いて行ったサポートベクタマシン学習により決定されて前記第3の制御で固定された識別関数を用いて、入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第1の判断を行う第1の判断手段と、前記入力データが前記識別関数で分離されている学習データ群に属さないと判断された場合に、前記カーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第2の判断を行う第2の判断手段と、を備え、
前記入力データがいずれかの学習データ群に属すると判断されるまで、前記第2の判断を繰りかえし、繰り返す第2の判断においては、一つ前の第2の判断のカーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが、該識別関数で分離されている学習データ群に属するか否かを判断するパターン認識装置。
【0084】
(付記5)
学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行う第1ステップと、
前記サポートベクタマシン学習の完了時に、前記第1ステップのサポートベクタマシン学習で決定された識別関数により前記学習データ群が分離されているか否かを判断する第2ステップと、
分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、前記カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行う第3ステップと、
を備えた、パターン認識装置のパターン認識学習方法。
【0085】
(付記6)
前記第3ステップで、前記高次のカーネル関数を用いて、サポートベクタマシン学習を行った場合には、再度、前記第2ステップ及び前記第3ステップを行い、
前記学習データ群のすべてが分離されるまで、前記第2ステップと前記第3ステップとを繰りかえし、繰り返す第3ステップにおいては、一つ前の第3ステップのカーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うことを特徴とする付記5に記載のパターン認識学習方法。
【0086】
(付記7)
前記第1ステップのカーネル関数は、一次のカーネル関数であり、前記第1ステップ後に行う前記第3ステップの高次のカーネル関数は二次のカーネル関数であり、その後に繰り返し行う第3ステップの高次のカーネル関数は一つ前の第3ステップのカーネル関数よりも一つ高次のカーネル関数を用いて、サポートベクタマシン学習を行うことを特徴とする付記6に記載のパターン認識学習方法。
【0087】
(付記8)
付記5から7のいずれかに記載のパターン認識学習方法により得られた識別関数を用いてパターン認識を行う、パターン認識装置のパターン認識方法であって、
前記第1ステップのカーネル関数を用いて行ったサポートベクタマシン学習により決定されて前記第3ステップで固定された識別関数を用いて、入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第5ステップと、
前記入力データが前記識別関数で分離されている学習データ群に属さないと判断された場合に、前記カーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第6ステップと、
を備え、
前記入力データがいずれかの学習データ群に属すると判断されるまで、前記第6ステップを繰りかえし、繰り返す第6ステップにおいては、一つ前の第6ステップのカーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが、該識別関数で分離されている学習データ群に属するか否かを判断するパターン認識学習方法。
【0088】
(付記9)
コンピュータに、
学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行う第1手順と、
前記サポートベクタマシン学習の完了時に、前記第1手順のサポートベクタマシン学習で決定された識別関数により前記学習データ群が分離されているか否かを判断する第2手順と、
分離されている場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていない場合には、分離されていない学習データ群に関して、前記カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行う第3手順と、
を実行させるためのパターン認識学習用プログラム。
【0089】
(付記10)
前記第3手順で、前記高次のカーネル関数を用いて、サポートベクタマシン学習を行った場合には、再度、前記第2手順及び前記第3手順を行い、
前記学習データ群のすべてが分離されるまで、前記第2手順と前記第3手順とを繰りかえし、繰り返す第3手順においては、一つ前の第3手順のカーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行うことを特徴とする付記9に記載のパターン認識学習用プログラム。
【0090】
(付記11)
前記第1手順のカーネル関数は、一次のカーネル関数であり、前記第1手順後に行う前記第3手順の高次のカーネル関数は二次のカーネル関数であり、その後に繰り返し行う第3手順の高次のカーネル関数は一つ前の第3手順のカーネル関数よりも一つ高次のカーネル関数を用いて、サポートベクタマシン学習を行うことを特徴とする付記10に記載のパターン認識学習用プログラム。
【0091】
(付記12)
付記9から11のいずれかに記載のパターン認識学習用プログラムにより得られた識別関数を用いてパターン認識を行う、パターン認識用プログラムであって、
前記第1手順のカーネル関数を用いて行ったサポートベクタマシン学習により決定されて前記第3手順で固定された識別関数を用いて、入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第5手順と、
前記入力データが前記識別関数で分離されている学習データ群に属さないと判断された場合に、前記カーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが該識別関数で分離されている学習データ群に属するか否かを判断する第6手順と、
を備え、
前記入力データがいずれかの学習データ群に属すると判断されるまで、前記第6手順を繰りかえし、繰り返す第6手順においては、一つ前の第6手順のカーネル関数よりも高次のカーネル関数を用いて行ったサポートベクタマシン学習により決定された識別関数を用いて、前記入力データが、該識別関数で分離されている学習データ群に属するか否かを判断するパターン認識用プログラム。
【解決手段】 学習データ群に対して、カーネル関数によってサポートベクタマシン学習を行い、サポートベクタマシン学習の完了時に、サポートベクタマシン学習で決定された識別関数により学習データ群が分離されているか否かを判断する。分離されていると判断した場合には、分離されている学習データ群に関して、識別関数を固定し、分離されていないと判断した場合には、分離されていない学習データ群に関して、カーネル関数よりも高次のカーネル関数を用いて、サポートベクタマシン学習を行う。