説明

パターン認識方法、装置及びプログラム

【課題】大次元の入力変数(特徴量)を有するパターンの識別を高速に実現することのできる方法、装置およびプログラムを提供する。
【解決手段】この方法を適法可能な装置1は、識別対象となる入力変数を入力する入力部2と、この入力変数からパターンの識別に使用する特徴量を選別するコンピュータ3の入力データ処理部31bとを備え、この入力データ処理部31bは、特徴量を予め削減するプリセレクション部31b1と、前記特徴量をさらに一度に追加するブロック追加・削除部31b2とを備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パターン認識方法、装置及びプログラムに関するものである。
【背景技術】
【0002】
パターン認識とは、データをあらかじめ与えられたいくつかのクラスのうちの1つに分類する処理である。パターン認識において入力変数を特徴量という。そのパターン認識問題に対して優れた汎化能力(認識能力)を示す識別器の1つにサポートベクトルマシン(以下、SVMという。)がある(例えば特許文献1や非特許文献1,2を参照)。SVMは入力を高次元特徴空間に写像することによって線形分離可能にし、この空間上で分離超平面と各クラスの最近傍ベクトルとの距離で定義されるマージンが最大となるように最適分離超平面を決める。
【0003】
しかし、冗長な特徴量が多く含まれていると計算量の増加や、汎化能力の低下といった問題が起こる。この問題を解決するために、冗長な特徴量を削減する特徴選択を行う。特徴選択には、識別器を使わずに相互情報量などを用いて特徴量の良し悪しを判断するフィルター(filter)法や、識別器を用いて特徴量を評価し、それを基準として特徴量の良し悪しを判断するラッパー(wrapper)法がある。フィルター法は識別器を使わないので計算コストは小さくなるが、汎化性に欠ける。ラッパー法は識別器を使うので計算コストは大きくなるが、汎化能力の高い特徴量集合を選ぶことができる。
【0004】
また特徴選択の手法として順方向選択と逆方向選択とがある(例えば非特許文献2,3を参照)。順方向選択は空集合に特徴量を1つ追加し、認識率が特徴選択の終了条件である閾値を上回るまで特徴量を1つずつ追加する。逆方向選択では初期特徴量集合から特徴量を1つ削除し、閾値を下回るまで特徴量を1つずつ削除する。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来手法では、特徴量を1つずつ追加または削除するので時間がかかってしまうといった問題があった。一方、本発明者は、関数近似問題では入力変数を一度に追加または削除するブロック追加・削除や、関数近似用線形計画サポートベクトルマシンを用いて入力データにかかる重みを計算し、重みの値が小さい入力変数を不必要な入力変数としてあらかじめ削除するプリセレクションを行ってからブロック追加・削除を行う手法を提案しているところ、かかる手法をパターン認識に適用することは困難であった。その主な理由は以下に示すとおりである。
【0006】
(1)関数近似の出力は連続量であって目標値との誤差でよさを判定し、この誤差が小さければよいとするが、パターン認識では与えられたクラスのどれに属するかの出力(離散量)をし、そのよさは通常は認識率で評価して認識率が高ければよいとする。
【0007】
(2)関数近似では通常出力は1個であるが、パターン認識では複数個のクラスのどれに属するかを判定するために出力は複数であり、しかも与えられた入力に対して出力の最も高いクラスにその入力が属すると判定する。
【0008】
(3)関数近似での出力は連続量のため、変数を減らしたときに誤差が同じになることを考えなくてもよいが、パターン認識では変数を減らしたときも、認識率が100%で変わらないときがあり、このときに順序付けを導入することが必要である。
【0009】
本発明は、かかる事情に鑑みてなされたものであって、その目的とするところは、関数近似問題における上記手法をパターン認識に適用するように工夫することで、大次元の入力変数(特徴量)を有するパターンの識別を高速に実現することのできる方法、装置およびプログラムを提供することである。
【課題を解決するための手段】
【0010】
本発明(方法)は、入力装置が、識別対象となる入力変数を入力する入力工程と、演算装置が、サポートベクトルマシンを用いて、この入力変数からパターンの識別に使用する特徴量を選別する選別工程とを備えたパターン認識方法であって、前記選別工程は、前記演算装置が、前記サポートベクトルマシンを用いて、前記入力変数からなる初期の特徴量集合における認識率を計算し、この計算された認識率に基づいて、該特徴量集合から特徴量を一度に削除するブロック追加・削除工程を備えたことを特徴とするものである。
【0011】
本発明(方法)によれば、前記選別工程は、前記演算装置が、前記サポートベクトルマシンを用いて、前記入力変数からなる初期の特徴量集合における認識率を計算し、この計算された認識率に基づいて、該特徴量集合から特徴量を一度に削除するブロック追加・削除工程を備えたので、特徴量を1つずつ追加または削除するので時間がかかってしまうという不具合を、前記関数近似問題で用いたそれらの手法をパターン認識に適用して解消することができる。これにより、特徴量を迅速に削除して、大次元の特徴量を有するパターンの識別を高速に実現することができるようになる。
【0012】
請求項2記載の発明のように、前記ブロック追加・削除工程は、前記演算装置が、前記初期の特徴量集合の認識率を閾値としておき、空集合に一時的に特徴量を1つ追加したときの該空集合の認識率を計算して、認識率の高い順に特徴量を順位付けたランキングを生成し、ランキングの上位の特徴量を前記空集合に追加したときの該空集合の認識率が前記閾値よりも大きいときに、特徴量の追加が成功したとして、該特徴量のみを前記特徴量集合に残し、その他の特徴量を該特徴量集合から削除するものであることが好ましい。
【0013】
請求項2記載の発明によれば、前記ブロック追加・削除工程は、前記演算装置が、前記初期の特徴量集合の認識率を閾値としておき、空集合に一時的に特徴量を1つ追加したときの該空集合の認識率を計算して、認識率の高い順に特徴量を順位付けたランキングを生成し、ランキングの上位の特徴量を前記空集合に追加したときの該空集合の認識率が前記閾値よりも大きいときに、特徴量の追加が成功したとして、該特徴量のみを前記特徴量集合に残し、その他の特徴量を該特徴量集合から削除するものであるので、特徴量を迅速に削除することができる。
【0014】
請求項3記載の発明のように、前記閾値は固定値であることが好ましい。
【0015】
請求項3記載の発明によれば、前記閾値は固定値であるので、簡単な構成となる。
【0016】
請求項4記載の発明のように、前記閾値は前記認識率に基づいて更新可能であることが好ましい。
【0017】
請求項4記載の発明によれば、前記閾値は前記認識率に基づいて更新可能であるので、特徴量を追加・削除していくときに認識率の計算の精度が閾値を上回れば、そのつど閾値を更新して、より有用な特徴量を選択することができる。
【0018】
ところで、通常のサポートベクトルマシンでは、2次計画問題を解くことによって学習を行うが、この学習に時間がかかるという問題がある。これに対して、最小自乗サポートベクトルマシンでは、線形連立方程式を解くことによって学習を行うので、通常のサポートベクトルマシンに比べて学習時間を短縮することができる。そこで、請求項5記載の発明のように、前記サポートベクトルマシンとして、最小自乗サポートベクトルマシンを備えており、前記演算装置は、この最小自乗サポートベクトルマシンで前記認識率を計算するものであることが好ましい。
【0019】
請求項5記載の発明によれば、前記サポートベクトルマシンとして、最小自乗サポートベクトルマシンを備えており、前記演算装置は、この最小自乗サポートベクトルマシンで前記認識率を計算するものであるので、学習時間を短縮して、特徴量をより迅速に削除することができる。
【0020】
また、データの次元数が大きいときには、1つずつ特徴量を追加・削除していては時間がかかるので、事前に多くの特徴量を削除するプリセレクションの必要性がある。さらに、線形計画サポートベクトルマシンでは、重みがゼロになれば、対応する入力データの次元は識別と無関係になるので、そのような次元を不必要な次元として削除することができる。そこで、請求項6記載の発明のように、前記サポートベクトルマシンとして、線形計画サポートベクトルマシンをも備えており、前記選別工程は、前記演算装置が、前記ブロック追加・削除工程を実行する前に、前記初期の特徴量集合を用いて、前記線形計画サポートベクトルマシンを学習させることにより、該特徴量集合に対応する重みを計算し、この重みの大きさに基づいて特徴量を前記初期の特徴量集合から予め削除しておくプリセレクション工程を備えることが好ましい。
【0021】
請求項6記載の発明によれば、前記サポートベクトルマシンとして、線形計画サポートベクトルマシンをも備えており、前記選別工程は、前記演算装置が、前記ブロック追加・削除工程を実行する前に、前記初期の特徴量集合を用いて、前記線形計画サポートベクトルマシンを学習させることにより、該特徴量集合に対応する重みを計算し、この重みの大きさに基づいて特徴量を前記初期の特徴量集合から予め削除しておくプリセレクション工程を備えたので、データ数が少なくて、高次元のデータに対して、より多くの特徴量を削減できる。
【0022】
一方、サポートベクトルマシンを学習するために変数をワーキング集合と固定集合とに分けて、ワーキング集合を繰り返して解く分割法があり、そこでのサポートベクトルマシンの学習は制約条件を満たすようにして行うことで最終解を得るのが通常であるが、この最終解を得るためには途中段階では必ずしも制約条件を満たす必要性がない。そこで、請求項7記載の発明のように、前記演算装置が、前記ブロック追加・削除工程で、入力変数をワーキング集合と固定集合とに分けて、ワーキング集合を繰り返して解く分割法の最適化問題において途中段階では制約条件を満たさないことを許すように前記サポートベクトルマシンを学習させることが好ましい。なお、本手法は、前記最小自乗サポートベクトルマシンに置き換わるものである。
【0023】
請求項7記載の発明によれば、前記演算装置が、前記ブロック追加・削除工程で、入力変数をワーキング集合と固定集合とに分けて、ワーキング集合を繰り返して解く分割法の最適化問題において途中段階では制約条件を満たさないことを許すように前記サポートベクトルマシンを学習させるので、分割法を用いて、より迅速に最終解を得ることができる。
【0024】
また、前記学習において最適化問題を解く主問題を用いることがあるが、このときには特徴空間を直接扱うこととなり、写像関数が線形以外ではその最適化問題を解くのが難しくなる。そこで、請求項8記載の発明のように、前記演算装置が、前記ブロック追加・削除工程で、前記最適化問題にラグランジェ乗数を適用した双対問題を用いて前記サポートベクトルマシンを学習させることが好ましい。
【0025】
請求項8記載の発明によれば、前記演算装置が、前記ブロック追加・削除工程で、前記最適化問題にラグランジェ乗数を適用した双対問題を用いて前記サポートベクトルマシンを学習させるので、特徴空間を直接扱うことがなくなる。したがって、写像関数が線形以外であっても、その最適化問題を容易に解くことができて、より安定した収束と、より早い学習とが可能となる。
【0026】
請求項9記載の発明のように、前記演算装置が、前記ブロック追加・削除工程で、前記双対問題を用いて前記サポートベクトルマシンを学習させる際に、初期変数集合から出発して解を求め、この解の中で正となる変数を残し、正しく分離されている変数、前記および零または負になる変数を削除し、さらに正しく分離されていない変数、あるいはマージンが不足している変数を追加して解を求めることを、同じ解が求まるまで繰り返すことが好ましい。
【0027】
請求項9記載の発明によれば、前記演算装置が、前記ブロック追加・削除工程で、前記双対問題を用いて前記サポートベクトルマシンを学習させる際に、初期変数集合から出発して解を求め、この解の中で正となる変数を残し、正しく分離されている変数、前記および零または負になる変数を削除し、さらに正しく分離されていない変数、あるいはマージンが不足している変数を追加して解を求めることを、同じ解が求まるまで繰り返すので、より安定した収束と、より早い学習とが可能となる。
【0028】
ただし、途中段階で制約を満たさないで双対問題を解いた場合には、制約を満たした条件で解く場合のように確実に収束しないことがある。そこで、請求項10記載の発明のように、前記演算装置は、前記ブロック追加・削除工程で、前記繰り返し数が設定回数を超える、あるいは違反数が増加あるいは振動すると、制約を満たすように変数の修正量を制限して、前記サポートベクトルマシンを学習させることが好ましい。
【0029】
請求項10記載の発明によれば、前記演算装置が、前記ブロック追加・削除工程で、前記繰り返し数が設定回数を超える、あるいは違反数が増加あるいは振動すると、制約を満たすように変数の修正量を制限して、前記サポートベクトルマシンを学習させるものであるので、例えば10回の繰り返し数を超えると、制約を満たすように変数の修正量を制限することで、確実に収束させることができる。
【0030】
請求項11記載の発明は、識別対象となる入力変数を入力するための入力手段と、サポートベクトルマシンを用いて、この入力変数からパターンの識別に使用する特徴量を選別する選別手段とを備えたパターン認識装置であって、前記選別手段は、前記サポートベクトルマシンを用いて、前記入力変数からなる初期の特徴量集合における認識率を計算し、この計算された認識率に基づいて、該特徴量集合から特徴量を一度に削除するブロック追加・削除手段を備えたことを特徴とするものである。
【0031】
請求項11記載の発明(装置)によれば、前記選別手段は、前記サポートベクトルマシンを用いて、前記入力変数からなる初期の特徴量集合における認識率を計算し、この計算された認識率に基づいて、該特徴量集合から特徴量を一度に削除するブロック追加・削除手段を備えたので、本発明(方法)と同様の作用効果を奏する。
【0032】
請求項12記載の発明は、入力装置により入力された入力変数からパターンの識別に使用する特徴量を選別するに際し、サポートベクトルマシンを用いて、前記入力変数からなる初期の特徴量集合における認識率を計算し、この計算された認識率に基づいて、前記特徴量集合から特徴量を一度に削除するブロック追加・削除機能をコンピュータに実現させることを特徴とするパターン認識プログラムに係るものである。
【0033】
請求項12記載の発明(プログラム)によれば、入力装置により入力された入力変数からパターンの識別に使用する特徴量を選別するに際し、サポートベクトルマシンを用いて、前記入力変数からなる初期の特徴量集合における認識率を計算し、この計算された認識率に基づいて、前記特徴量集合から特徴量を一度に削除するブロック追加・削除機能をコンピュータに実現させるので、本発明(方法)と同様の作用効果を奏する。
【発明の効果】
【0034】
本発明(方法)によれば、前記選別工程は、前記演算装置が、前記サポートベクトルマシンを用いて、前記入力変数からなる初期の特徴量集合における認識率を計算し、この計算された認識率に基づいて、該特徴量集合から特徴量を一度に削除するブロック追加・削除工程を備えたので、特徴量を1つずつ追加または削除するので時間がかかってしまうという不具合を、前記関数近似問題で用いたそれらの手法をパターン認識に適用して解消することができる。これにより、特徴量を迅速に削除して、大次元の特徴量を有するパターンの識別を高速に実現することができるようになる。
【0035】
請求項11記載の発明(装置)によれば、前記選別手段は、前記サポートベクトルマシンを用いて、前記入力変数からなる初期の特徴量集合における認識率を計算し、この計算された認識率に基づいて、該特徴量集合から特徴量を一度に削除するブロック追加・削除手段を備えたので、本発明(方法)と同様の作用効果を奏する。
【0036】
請求項12記載の発明(プログラム)によれば、入力装置により入力された入力変数からパターンの識別に使用する特徴量を選別するに際し、サポートベクトルマシンを用いて、前記入力変数からなる初期の特徴量集合における認識率を計算し、この計算された認識率に基づいて、前記特徴量集合から特徴量を一度に削除するブロック追加・削除機能をコンピュータに実現させるので、本発明(方法)と同様の作用効果を奏する。
【図面の簡単な説明】
【0037】
【図1】本発明の実施形態1に係るパターン認識方法を適用可能な装置の全体構成を示すブロック図である。
【図2】本実施形態1に係るパターン認識方法を適用可能な装置の概略動作を示すフローチャートである。
【図3】本実施形態1に係るパターン認識方法のアルゴリズム(1)を示すフローチャートである。
【図4】本実施形態1に係るパターン認識方法のアルゴリズム(2)を示すフローチャートである。
【図5】本実施形態2に係るパターン認識方法の学習アルゴリズム(1)を示すフローチャートである。
【図6】本実施形態2に係るパターン認識方法の学習アルゴリズム(2)を示すフローチャートである。
【発明を実施するための形態】
【0038】
(実施形態1)
図1は本発明の実施形態1に係るパターン認識方法を適用可能な装置(以下、「本装置」という。)1の全体構成を示すブロック図である。図1に示すように、本装置1は、コンピュータ(演算装置に相当する。)3を備えている。
【0039】
例えばコンピュータ3は、各種演算等を実行するCPU(Central processing unit)31と、各種基本プログラム等を予め記憶しておくROM(Read−only memory)32と、各種応用プログラム、各種データ等を一時的に記憶するRAM(Random−access memory)33とを備えたパーソナルコンピュータであり、これにキーボードやマウスやCD/DVDドライブなどの入力部(入力装置、入力手段に相当する。)2と、CRTや液晶やプリンタなどの表示部4とがそれぞれ電気的に接続されている。
【0040】
そして、前記RAM33に記憶しておいたパターン認識プログラムを含む各種プログラム等を前記CPU31に読み込んで実行することで、学習部31aと、入力データ処理部(選別手段に相当する。)31bと、パターン認識部31cがそれぞれ構築されるようになっている。
【0041】
学習部31aは、学習データを用いてSVMを学習させるものである。入力データ処理部31bは、識別対象である入力変数からパターンの識別に使用する特徴量を選別するものであって、前記入力変数を前記学習したSVMに代入したときの値が閾値を越えたときに、当該入力変数を特徴量として選別するものである。そして、入力データ処理部31bは、プリセレクション部31b1と、前記特徴量を一度に削除するブロック追加・削除部(ブロック追加・削除手段に相当する。)31b2を備えている。この入力データ処理部31bのブロック追加・削除部31b2がパターン認識プログラムのブロック追加・削除機能を、コンピュータ3に実現させるものである。パターン認識部31は、前記選別された特徴量に基づいてパターンの識別を行うものである。
【0042】
本装置1の動作について説明する。図2は本装置1の概略動作を示すフローチャートである。なお、コンピュータ3には、入力部2から必要な学習データなどをあらかじめ入力しているもとする。
【0043】
図2において、まず学習部31aは学習データを用いてSVMを学習させる(ステップS100)。次いで入力部2から識別対象となる入力変数を入力すると、入力データ処理部31bはこの入力変数からパターンの識別に使用する特徴量を選別するが、その際にプリセレクション部31b1で特徴量を予め削除した上で、さらにブロック追加・削除部31b1で前記特徴量を一度に削除する(ステップS200:入力工程、選別工程、プリセレクション工程、ブロック追加・削除工程)。そして、パターン認識部31cは、この選別された特徴量に基づいてパターンの認識を行い、その識別結果を表示部4で表示させる(ステップS300)。各ステップの具体的なアルゴリズムについては後述する。
【0044】
以下、本発明の理解の便宜上、基本的なSVMについて簡単に説明したうえで、パターン認識において認識率を求めるときに使う最小自乗サポートベクトルマシン(以下、LS−SVMという。)、多クラス問題、クロスバリデーション、特徴選択、順方向選択、逆方向選択についてそれぞれ説明する。
【0045】
(SVM)
M個のm次元教師データx(i=1,・・・,M)がクラス1またはクラス2に属しており、クラス1ならy=1、クラス2ならy=―1とする。この教師データxを、写像関数g(x)を用いて、m次元入力空間からl次元空間(l>m)に写像することによって線形分離性能を高める。このとき決定関数は次式のようになる。
【0046】
【数1】

ただし、wはl次元重みベクトル、bはバイアス項である。D(x)>0ならクラス1、D(x)<0ならクラス2に分類される。D(x)=0となる場合は分離不可能であるが、線形分離可能の条件ならD(x)=0となるデータは存在しない。よって次式を考える。
【0047】
【数2】

この式(数2)は次式に変換できる。
【0048】
【数3】

このとき次式
【数4】

がデータx(i=1,・・・,M)を分離する分離超平面である。c=0のとき分離超平面はc=1と、c=−1の2つの超平面の中央となる。
【0049】
分離超平面から最も近いデータまでの距離をマージンと呼び、超平面D(x)=1と、D(x)=−1がそれぞれ少なくとも1つの教師データを含むと仮定すると、超平面D(x)=0は、−1<c<1について最大マージンを持つ。特徴空間上のある点g(x)とD(x)=0との距離は|D(x)|/‖w‖で与えられるので、マージンδは、
【数5】

と定義される。
【0050】
しかし、線形分離不可能な場合に許容解が常に存在するように、xに対して非負のスラック変数ξを用いて前記式(数3)を次のように変換する。
【0051】
【数6】

前記式(数1)を得るためにSVMは以下の最適化問題を解く。
【0052】
【数7】

ただし、Cはマージンパラメータといい、マージンの最大化と誤認識の最小化とのトレードオフを決めるものである。p=1のときをL1−SVM、p=2のときをL2−SVMと呼ぶ。
【0053】
(LS−SVM)
SVMでは、2次元計画問題を解くことによって学習を行うが学習に時間がかかる。そこで、線形連立方程式を解くことによって学習を行うLS−SVMについて述べる。
【0054】
LS−SVMの最適化問題は以下のようにSVMの制約条件の不等式を等式にしたものとなる。
【0055】
【数8】

これらの2つの式(数8)の最適化問題を直接解くと特徴空間の変数を扱わなければならないので、非負のラグランジェ乗数αを導入し、次のような無制約の目的関数とする。
【0056】
【数9】

この式(数9)の最適解は勾配が0となるときに得られる。したがって、同式(数9)をw,b,α,ξで偏微分し、それぞれが0となるとすると、以下のような最適条件が得られる。
【0057】
【数10】

これら4つの式(数10)をまとめると以下のように表せる。
【0058】
【数11】

ここで、lはM次元のベクトルであって、
【数12】

であり、g(x)g(x’)はカーネル関数を用いてH(x,x’)と表される。またここで用いるカーネル関数はRBFカーネルであり、以下のように定義される。
【0059】
【数13】

ここでγは傾きを制御する正の整数である。αとbは以下のようになる。
【0060】
【数14】

このようにして、LS−SVMでは最適化問題をl次の連立方程式を解くことによって解が得られることが分かる。
【0061】
(多クラス問題)
実際のパターン認識問題では、多クラスになることが多いため、2クラス問題から多クラス問題への拡張が必須となる。そこで、2クラス問題から多クラス問題に拡張するための手法の1つであるペアワイズを用いたペアワイズSVMについて説明する。
【0062】
このペアワイズSVMでは、クラスのペアの全ての組み合わせについて決定関数を求める。1つのクラスのペアについての決定関数を決める際に、対応する2クラスの教師データを用いる。よって、nクラス問題に対し決定関数の数はn(n−1)/2個となる。クラスiのjに対する決定関数を以下のように定義する。
【0063】
【数15】

ただし、wijはl次元ベクトル、g(x)は写像関数、bijはバイアス項を表しており、またDij(x)=−Dji(x)となる。クラスiの領域は次式で表され、
【数16】

オーバーラップしない。そして、xがRに含まれれば、xをクラスiに分類し、xがRに含まれなければxを投票で分類する。すなわち、入力データxに対して次式を求める。
【0064】
【数17】

ここで、
【数18】

このとき、xは次式で分類される。
【0065】
【数19】

もしD(x)=n−1かつD(x)<n−1(i≠k)であれば、xはクラスiに分類される。しかしどのD(x)のn−1でないとき、この式は複数のiについて成立する。このときxは未分類領域である。未分類領域はファジィメンバーシップ関数を導入することにより解消できる(例えば非特許文献2)。またここではペアワイズSVMについて説明したが、1対多SVM、同時定式化SVM等(例えば非特許文献2)を適用することも可能である。
【0066】
(クロスバリデーション)
SVMを学習させるためには、マージンパラメータCやRBFカーネルのパラメータγなどの値を設定しなければならない。最適なパラメータの組み合わせを決定するためにk分割クロスバリデーションを用いる。このk分割クロスバリデーションでは教師データをほぼ均一なk個の部分集合に分割し、k−1個の部分集合で学習し、残りの1つでテストする。学習k回繰り返し、テストに使用したk個の部分集合に対する全体の認識率を計算する。そして一番認識率の高かったパラメータの組み合わせを決定する。SVMでは教師データでの学習に基づいてテストデータにおける汎化能力をみるので、k分割クロスバリデーションを行うときも教師データを分割して教師データとテストデータに分けたほうが、信頼性の高いパラメータを選ぶことができる。
【0067】
(特徴選択)
特徴量の削減はパターン認識において重要な課題である。なぜなら冗長な特徴量が多いと次のような問題が起こる。1つめは特徴量の増加に対して指数関数的に増加する計算量の増加である。2つめは本来有用でない特徴量も学習に使用してしまうことによる汎化能力の低下である。3つめは冗長な特徴量も有用な特徴量として学習に使用されてしまうことによる汎化能力の低下である。
【0068】
このような問題を解決するために特徴選択が行われる。特徴選択はある評価基準に基づいて不要な特徴量を選び出して削除することである。特徴選択の代表的な手法としてフィルター法とラッパー法があることは既に説明したとおりである。ここでは、フィルター法に比べて計算コストは大きくなるものの、汎化性が大きくなるラッパー法を用いることとする。ただし、フィルター法に対しても同様に発明の特徴選択法を適用することが可能である。引き続き、パターン認識で用いられている特徴選択の手法である順方向選択と逆方向選択とについて説明する。
【0069】
(順方向選択)
ここでは認識率を基準とした順方向選択について説明する。まず特徴量の数をmとし、初期特徴量集合をIとし、Iにおける認識率をRとしてこれを特徴選択の終了条件の閾値とする。空集合Iにi番目(i=1,・・・,m)の特徴量を一時的に追加する。そのときの認識率をRiaddとする。ただし、iaddはi番目の特徴量を追加することを表す。R1addからRmaddの中で一番値が大きかったものをRkadd(k=1,・・・,m)として、
【数20】

を満たせば特徴選択を終了する。この式(数20)を満たさなければ精度が上がるまで同様の手順を繰り返す。
【0070】
(逆方向選択)
ここでは認識率を基準とした逆方向選択について説明する。まず特徴量の数をmとし、初期特徴量集合をIとし、Iにおける認識率をRとしてこれを特徴選択の終了条件の閾値とする。Iから一時的にi番目(i=1,・・・,m)の特徴量を削減し、そのときの認識率をRmdelとする。ただし、idelはi番目の特徴量を削減することを表す。R1delからRmdelの中で一番値が大きかったのをRkdelと(k=1,・・・,m)として、
【数21】

を満たせば、k番目を削除する。閾値を上回る限り同様の手順を繰り返す。
【0071】
以下、本発明の特徴をなす、閾値設定方式、2クラスのブロック追加・削除による特徴選択、2クラスの線形計画サポートベクトルマシン(以下、LP−SVMという。)を用いたブロック追加・削除による特徴選択および多クラスへの拡張について説明する。ブロック追加・削除による特徴選択は、順方向選択や逆方向選択のように特徴量を1つずつ追加・削徐していては時間がかかるので、ブロック追加・削除で特徴量を一度に追加・削除する手法である。この方法は順方向選択や逆方向選択等の認識率で高速に特徴量を選択することが目的である。また、LP−SVMを用いたブロック追加・削除による特徴選択は、データの次元数が非常に多いと、順方向選択や逆方向選択のように特徴量を1つずつ追加・削除して評価していては時間がかかるので、事前に不要な特徴量をまとめて削除してからブロック追加・削除を行う手法である。ただし、評価基準となる認識率は前記LS−SVMで求めてもよいし、後で述べる学習を高速化したL2−SVMで求めてもよい。
【0072】
(閾値設定方式)
ここでは特徴選択の終了条件を特徴選択後の認識率が設定した閾値よりも悪くなることとしている。閾値の設定方式として閾値固定方式と閾値更新方式を用いる。閾値固定方式は閾値を最初に設定した値のまま最後まで固定して特徴選択を行う方式である。閾値更新方式は特徴量を追加・削除したときに精度が閾値を上回れば、その都度閾値を更新しながら特徴選択を行っていく方式である。その都度閾値を更新する閾値更新方式の方がより有用な特徴量を選択できる。
【0073】
(2クラスのブロック追加・削除による特徴選択)
順方向選択や逆方向選択では、特徴量を1ずつ追加・削除していくが、これでは不要な特徴量が多いとき時間がかかる。そこで特徴量を一度に追加・削除するブロック追加・削除を用いる。本手法は、高速で特徴選択を行いなおかつ初期特徴量集合と同等の精度を得るのが目的である。
【0074】
そして、閾値固定方式では、まず初期特徴量集合をIとして、Iにおけるバリデーションセットの認識率Rを閾値Tとする。ただしmは初期特徴量集合の次元数である。空集合Iに一時的にi番目の特徴量を1つ追加し、そのときの認識率Riaddを計算し、追加候補集合を作成し、認識率の高い順に特徴量を順位づけたランキング(variable ranking)を生成する。なお、認識率が同じでランキングができないときは、前記式(数5)のマージンの大きい順にランキングを行う。このランキングの上位2個(k=0,・・・,A)を空集合に追加する。ここで、Aは追加候補数を制限するユーザパラメータである。追加したときの認識率R2kと閾値Tを比較し、
【数22】

となれば、そのときの特徴量を追加する。
【0075】
k=Aまで(数22)式を満たさないとき、R20,R21,・・・,R2Aの中で認識率の最も高いときの特徴量集合を空集合に追加する。次に新たな追加候補を選択するために、一時的追加を行う。そのときの特徴量集合にi番目の特徴量を追加し、そのときの認識率を基にして新たなランキングを構成し、先ほどと同様にして特徴量の追加判定を行う。先ほどと同様に、認識率が同じでランキングができないときは、前記式(数5)のマージンの大きい順にランキングを行う。追加が成功すれば、そのときの特徴量集合からブロック削除を行い、余分な特徴量を削除する。もし、追加したときに前回の認識率を下回れば追加失敗として、初期特徴量集合からのブロック削除に切り替える。追加失敗が続くと特徴量選択の効率が落ちるので、1回の失敗で追加を終了する。
【0076】
一方、閾値更新方式では、追加時に精度が向上する場合に閾値をそのときの認識率に更新することで、精度の高い特徴量集合を求める。
【0077】
図3は本実施形態1に係るパターン認識方法のアルゴリズム(1)を示すフローチャートであって、前記図2におけるステップS200を具体化するものである。なお、この図3における閾値固定方式と閾値更新方式との違いはステップS3a,S3bと、ステップS7a,S7bとだけであるので、以下では、その部分のみ場合分けをして説明する。
【0078】
ステップS1:初期特徴量集合をIとし、Iにおけるバリデーションセットの認識率をRとし、これを閾値Tとする。ただしmは初期特徴量集合の次元数である。
【0079】
ステップS2:空集合Iにi番目(i=1,・・・,m)の特徴量を追加し、追加したときの認識率をRiaddとする。これは空集合にi番目の特徴量を追加した集合における認識率である。
【0080】
ステップS3:Riadd(i=I,・・・,m)を大きい順に特徴量を順位づけたランキングを生成する。その上位2個(k=0,・・・,A)の特徴量を空集合に追加していく。
【0081】
ステップS3a(閾値固定方式の場合):追加したときの認識率が閾値Tを上回れば追加成功としてその特徴量集合のままステップS4へ進み、k=Aまで成功しない場合はk=Aまで追加していったなかで一番高かった認識率Rmax(k=0,・・・,A)を求め、追加前の特徴量集合における認識率を上回れば、その2個を追加してステップS2に戻る。上回らなければ初期特徴量集合に戻してステップS4へ進む。
【0082】
ステップS3b(閾値更新方式の場合):上記閾値固定方式と同じようにRmaxを求め、追加前の特徴量集合における認識率を上回れば、2個を追加してステップS2に戻る。上回らない場合、追加前の特徴量集合における認識率が閾値Tを上回れば閾値を追加前の特徴量集合における認識率に更新してステップS4に進む。満たさなければ初期特徴量集合に戻してステップS4へ進む。
【0083】
ステップS4:この時点での特徴量集合をIとし、Iにおける認識率をRとし、閾値更新方式ではこれを新たに閾値Tとする。ただしjはこの時点での次元数である。
【0084】
ステップS5:Iからi番目(i=0、…、j)の特徴量を削除し、そのときの認識率をRidelとする。
【0085】
ステップS6,S6a:Ridel(i=0,・・・,j)のなかで閾値を上回ったものの中でランキングを生成し、なければ特徴選択を終了する。
【0086】
ステップS7:Iからランキングにある特徴量をすべて削除し認識率を求める。
【0087】
ステップS7a(閾値固定方式の場合):閾値を上回れば削除後の特徴量集合でステップS5へ進み、閾値を上回らなければステップS8へ進む。
【0088】
ステップS7b(閾値更新方式の場合):閾値を上回れば閾値を更新して削除後の特徴量集合でステップS5へ進み、閾値を上回らなければステップS8へ進む。
【0089】
ステップS8:Iからランキングの上位半分を削除し、閾値を上回ればその削除後の特徴量集合でステップS5へ進み、満たされなければ、満たすまで削除候補を上位半分にしていく。なお、ランキングが生成されたため、このステップでは1個は必ず削除される。
【0090】
(2クラスのLP−SVMを用いたブロック追加・削除による特徴選択)
データの次元数が大きいとき、1つずつ特徴量を追加、削除していては時間がかかるので、事前に多くの特徴量を削除するプリセレクションの必要性がある。本手法ではLP―SVMによる特徴選択をプリセレクションとして用いる。LP−SVMはLI−SVMの目的関数の‖w‖=w+w+…+wを‖w‖=|ω|+|ω|+…+|ω|に置き換えることによって線形計画問題として定式化できる。いわゆる単体法で解くためには、変数が非負である必要があるためω=ω−ω、b=b−bとして次式の線形計画問題とする。
【0091】
【数23】

LP−SVMでは、Mをデータ数、mを次元数とすると目的関数の変数がN=2m+M+2となり、制約条件の数はM本となるので、少なくともN−M個の変数は0になる。重みベクトルが0になれば対応する入力データの次元は識別とは無関係になる。このような次元を不必要な次元として削除する。次元数が多いとN−Mの値が大きくなる。よって、データ数が少なくて高次元のデータに対して、多くの特徴量を削除できる。
【0092】
そして、閾値固定方式では、初めに初期特徴量集合Iを用いてバリデーションセットの認識率Rを閾値Tとする。ここでmは初期特徴量集合の次元数である。次にLP−SVMの学習によって各特徴量に対応する重みの値|ω|を求め、最大値のμ%以下の値を持つ特徴量をすべて特徴量集合から削除する。ここでμはユーザパラメータである。
【0093】
プリセレクション後の特徴量の数をjLPとしたとき、このときの認識率RjLPと閾値Tと比較して、
【数24】

となれば、さらに削除できる特徴量を探すためにブロック削除を行う。精度が低下したら、削除時の特徴量集合に有用な特徴量を追加する。追加候補となるのは追加したときにLP−SVMでの学習後の特徴量集合の認識率RjLPより精度を向上させるものである。これらの特徴量でランキングを構成し、ブロック追加・削除を行う。
【0094】
一方、閾値更新方式では、プリセレクション後の認識率が閾値よりも小さくなっていれば、それを新たな閾値とする。また、ブロック追加を行う際も追加前より精度が向上していれば、そのときの認識率を閾値にする。
【0095】
図4は本実施形態1に係るパターン認識方法のアルゴリズム(2)を示すフローチャートであって、これも前記図2におけるステップS200を具体化するものである。なお、図4における閾値固定方式と閾値更新方式との違いはステップS13a,S13b、ステップS15a,S15b、ステップS19a,S19bだけであるので、以下では、それらの部分だけ場合分けをして説明する。
【0096】
ステップS11:初期特徴量集合をIとし、Iにおけるバリデーションセットの認識率をRとし、これを閾値Tとする。ただしmは初期特徴量集合の次元数である。
【0097】
ステップS12:初期特徴量集合Iを用いて、LP−SVMで学習し、重みω(i=1,・・・,m)を求める。求めた重みの絶対値の最大値|ωmaxを求めて、|ω|≦μ|ωmaxとなる特徴量をIから削除する(ステップS12)。ただしμはユーザパラメータである。
【0098】
ステップS13:削除後に認識率を求め、閾値Tと比較する。
【0099】
ステップS13a(閾値固定方式の場合):閾値を上回れば削除成功となり削除後の特徴量集合でステップS16へ進む。
【0100】
ステップS13b(閾値更新方式の場合):閾値を上回れば閾値を更新して削除後の特徴量集合でステップS16へ進む。上回らなければ削除後の特徴量集合でステップS14へ進む。
【0101】
ステップS14:削除後の特徴量集合に削除された特徴の中からi番目(i=1,・・・,n)の特徴量を追加し、追加したときの認識率をRiaddとする。
【0102】
ステップS15:Riadd(i=1,・・・,n)を大きい順に特徴量を順位づけたランキングを生成する上位2個(k=0,・・・,A)の特徴量を追加していく。
【0103】
ステップS15a(閾値固定方式の場合):追加したときの認識率が閾値Tを上回れば追加成功としてその特徴量集合のままステップS14へ進む。k=Aまで成功しない場合はk=Aまで追加したなかで一番高かった認識率Rmax(k=0,・・・,A)を求め、追加前の特徴量集合における認識率を上回れば、その2個を追加してその集合でステップS12に戻る。上回らなければ初期特徴量集合に戻してステップS16へ進む。
【0104】
ステップS15b(閾値更新方式の場合):前記閾値固定方式と同じように認識率Rmaxを求め、追加前の特徴量集合における認識率を上回れば、その2個を追加してその集合でステップS14へ進む。上回らない場合、追加前の特徴量集合における認識率が閾値Tを上回れば閾値を追加前の特徴量集合における認識率に更新してステップS16へ進み、満たさなければ初期特徴量集合に戻してステップS16へ進む。
【0105】
ステップS16:この時点での特徴量集合をIとし、Iにおける認識率をRとし、これを閾値Tとする。ただしjはこの時点での特徴量集合の次元数である。
【0106】
ステップS17:Iからi番目(i=0,・・・,j)の特徴量を削除し、そのときの認識率をRidelとする。
【0107】
ステップS18,S18a:Ridel(i=0,・・・,j)のなかで閾値を上回ったものの中でランキングを生成する。もし閾値を上回るものがなければ処理を終了する。
【0108】
ステップS19:Iからランキングにある特徴量をすべて削除し認識率を求める。
【0109】
ステップS19a(閾値固定方式の場合):閾値を上回れば削除後の特徴量集合でステップS17へ進み、閾値を上回らなければステップS20へ進む。
【0110】
ステップS19b(閾値更新方式の場合):閾値を上回れば閾値を更新して削除後の特徴量集合でステップS17へ進み、閾値を上回らなければステップS20へ進む。
【0111】
ステップ20:Iからランキングの上位半分を削除し、閾値を上回ればその削除後の特徴量集合でステップS17へ進む。満たされなければ、満たすまで削除候補を上位半分にしていく。
【0112】
(多クラスへの拡張)
多クラスの場合も2クラスの場合と同様の流れでブロック追加・削除による特徴選択を行う。例えばブロック削除の削除候補を選ぶ際、まず一時的に特徴量集合から特徴量を1つ削除し、ペアワイズ方式を用いて認識率を計算し、削除した際に閾値を上回った特徴量すべて削除する。異なる点は認識率を求めるのにペアワイズ方式を用いることだけである。ただし、認識率によるランキングで順序付けられないときにマージンを用いるときは、各ペアのクラスに対応するマージンの平均値、最大値、あるいは最小値をとるようにする。
【0113】
以下、本装置1を用いたシミュレーション結果について説明する。なお、ここでは2クラスと多クラスのベンチマークデータとUCIベンチマークデータ、2クラスの高次元データのマイクロアレイデータを用いて実験を行い、特徴選択前と特徴選択後で認識率を比較した結果を示すものとする。
【0114】
(実験方法)
2クラスおよび多クラスのベンチマークデータとUCIベンチマークデータはブロック追加・削除で実験を行い、マイクロアレイデータは高次元データであるのでLP−SVMでプリセレクションを行ってからブロック追加・削除を行う。LS−SVMのマージンパラメータとRBFカーネルのパラメータ、LP−SVMのマージンパラメータ、プリセレクションに使用するμは5分割クロスバリデーションで1ファイルごとに決定している。
【0115】
LS−SVMのマージンパラメータC、RBFカーネルのパラメータγは、C={1,10,50,100,500,1000,5000,10000,50000,100000}、γ={0.0001,0.001,0.01,0.1,0.5,1.0,5.0,10,15}から最適なパラメータの組み合わせを選択する。またLP−SVMのマージンパラメータCとμはC={10,10000}μ={0,0.05,0.1,0.15,0.2}から最適なパラメータの組み合わせを選択する。
【0116】
特徴選択途中の認識率を求める際はマージンパラメータのみをクロスバリデーションで決定し、C={1,10,50,100,500,1000,5000,10000,50000,100000}から最適なパラメータを選択する。(表1)にはIDAの2クラスベンチマークデータ、(表2)には多クラスベンチマークデータ、(表3)にはマイクロアレイデータ、(表4)にはUCIベンチマークデータについて記す。
【0117】
各表の“Inputs”はデータの次元数、“Train”は教師データ数、“Test”はテストデータ数、“Class”はクラス数を表す。ただしマイクロアレイデータ、UCIベンチマークデータはすべて2クラスである。またUCIベンチマークデータは教師データのみである。実験結果は2クラスベンチークデータのImageとSplice以外は100ファイル、Image、Spliceとマイクロアレイデータは20ファイルの平均である。なおシミュレーションにおけるコンピュータ3としては、Intel Core(TM)2Duo 3.18GHz 1.99GB RAMを使用した。
【0118】
【表1】

【表2】

【表3】

【表4】

(2クラスベンチマークデータでの実験結果)
2クラスベンチマークデータを用いた、閾値固定方式と閾値更新方式での実験結果を(表5)に示す。実験結果の表の“Data”は用いたデータセット、“Before”と“After”は特徴選択の前と後の結果を表す。“Val”はバリデーションセットのテストデータの認識率、“Test”はテストデータの認識率、“Deleted”は削除次元数、“Time”は特徴選択にかかった時間である。2行になっているのは、上段が閾値固定方式での実験結果、下段が閾値更新方式での実験結果を表しているからである。特徴線選択前の結果はどちらも変わらないので1段になっている。特徴選択後にテストデータの認識率がよくなった場合は*で表している。
【0119】
(表5)より、バリデーションセットのテストデータの認識率は全データで特徴選択後の方がよくなっている。これはバリデーションセットのテストデータの認識率が向上するように特徴量を選んでいるからである。F.Solar,Image,Splice,Titanicに関してはテストデータでも認識率の向上がみられ、他のデータでも認識率が大幅に低下したデータはなくほぼ同等の認識率が得られたので、特徴選択の効果が出ているといえる。BananaはDeletedが0なのでどの特徴量を削除しても認識率が向上しなかったことを示している。時間の標準偏差が大きいデータがいくつかみられるが、ブロック削除を行う際、削除候補となる特徴量の数の違いによってブロック削除を繰り返す回数に違いが生じることが原因と考えられる。
【0120】
また閾値固定方式と閾値更新方式を比べたところほとんどのデータで閾値更新方式の方が認識率がよくなっており、時間も早くなっているので、閾値を更新する方が有用な特徴量を高速に選ぶことができるといえる。しかし、次元数が最も多いSpliceだけは閾値更新方式の方が時間がかかる結果となった。これはブロック削除を行う際に閾値を更新した方が削除候補となる特徴量の数が少なく、ブロック追加を繰り返す回数が多くなるということが考えられる。
【0121】
【表5】

(マイクロアレイデータでの実験結果)
マイクロアレイデータを用いた、閾値固定方式と閾値更新方式での実験結果を(表6)に示す。同表より、バリデーションセットのテストデータの認識率は全データで特徴選択後の方がよくなっており、テストデータの認識率もB.cancer1とB.cancer2以外のデータでは特徴選択前と後とではほぼ同等の認識率を得ている。特にGolubは認識率が向上した。特徴選択後の特徴量の数は全データで2から3個程度である。よって、数個の特徴量でも特徴選択前と同等のも認識率を得ることができるといえる。
【0122】
しかし、B.cancer1とB.cancer2では大幅に認識率が低下している。これは両方のデータがともにテストデータ数が8なので1つの認識を誤ると12.5%も認識率が低下することが原因と考えられる。Vantveer以外で特徴選択後のテストデータの認識率の標準偏差が大きくなった。これはテストデータ数が少なく、1つの誤認識で認識率が大幅に低下してしまい、20ファイル中数ファイルでそのようなことが起こったことが原因と考えられる。Sporadic以外で時間の標準偏差が非常に大きくなっている。これはプリセレクションを行った際、いくつかのファイルで精度が低下してブロック追加を行ったため余分に時間がかかってしまったことと、2クラスベンチマークデータ同様ブロック削除を繰り返す回数の違いが原因と考えられる。
【0123】
また閾値固定方式と閾値更新方式を比べたところ、Sporadic、Vantveer以外のデータは閾値更新方式の方が認識率が良くなっており、より有用な特徴量を選んでくる閾値更新方式の特徴が表れているが、Sporadic、Vantveerは閾値固定方式の方が認識率が良くなった。時間に関してはAlon、Sporadic、Vantveerは閾値固定方式の方が早いがB.cancer1、B.cancer2、Golub、Iizukaは閾値更新方式の方が速かった。閾値を更新した方が選んでくる特徴量は多少少ないが、ブロック削除で削除候補となる特徴量も少なくなり、次元数が多いとブロック削除を繰り返す回数が多くなるので、どちらがよいとはいえない。
【0124】
【表6】

(多クラスベンチマークデータでの実験結果)
多クラスベンチマークデータを用いた、閾値固定方式と閾値更新方式での実験結果を(表7)に示す。同表より、バリデーションセットのテストデータの認識率は2クラスベンチマークデータとマイクロアレイデータ同様全データ特徴選択後の方がよくなっており、テストデータの認識率も全データ特徴選択前と後とでほぼ同等の認識率が得られている。IrisとBlood cellは削除された特徴量が0なのでどの特徴量を削除しても認識率が向上しなかったことを表す。Thyroidは特徴選択前と同等の認識率を得るのに3つの特徴量しか必要とせず、しかもテストデータの認識率が向上する結果となった。
【0125】
閾値固定方式と閾値更新方式を比べたところ、全データ認識率が変わらないという結果となった。これは、多クラスベンチマークデータは特徴選択をする前から非常に高い認識率が出ているので、特徴量を削除しても認識率がそれほど向上しないことが原因と考えられる。また、時間に関しては全データとも閾値更新方式の方が速かった。よって多クラスベンチマークデータに関しては閾値更新方式の方が有用な特徴量を高速に選択できるといえる。
【0126】
【表7】

(UCIベンチマークデータでの実験結果)
UCIベンチマークデータを用いたときの閾値固定方式と閾値更新方式での実験結果を(表8)に示す。UCIベンチマークデータは教師データのみ用いるのであって、“Tra”は教師データの認識率である。同表より、Primaindiansは特徴選択後大幅に識別力が低下してしまっている。Bupaliverは削除数が0なので、特徴量を削減しても認識率が向上しなくなったことを示す。
【0127】
閾値固定方式と閾値作成新方式を比べたところ、認識率はPimaindiansでは閾値更新方式の方が高かったが、他の2つでは変わらなかった。時間においてはBupaliverは変わらなかったが、他の2つでは閾値更新方式の方が速かった。よって、UCIベンチマークデータでは閾値更新方式の方が有用な特徴量を高速に選択できるといえる。
【0128】
【表8】

以上説明したように、本実施形態1では、パターン認識におけるブロック追加・削除による特徴選択と、LP−SVMを用いたブロック追加・削除による特徴選択を説明した。ブロック追加・削除は特徴量を1つずつ追加・削除する順方向選択や逆方向選択と違い、追加・削除したときに精度が上がる特徴量を一度に追加・削除するので高速な特徴選択が可能である。また、ブロック追加・削除を行う前にLP−SVMを用いて、各データにかかる重みを計算し、重みが0に近い特徴量をあらかじめ削除することによって、次元数の多いデータに対して高速に特徴選択を行うことができる。
【0129】
2クラスベンチマークデータと多クラスベンチャーマークデータはブロック追加・削除による特徴選択、マイクロアレイデータはLP−SVMを用いたブロック追加・削除による特徴選択を用いた。特徴選択の終了条件である閾値はバリデーションセットのテストデータの認識率を用い、閾屋を固定しないまま特徴選択を行う閾値固定方式と精度が上がるたびに閾値を更新する閾値更新方式で実験を行った。
【0130】
2クラスベンチマークデータと多クラスベンチマークを用いたシミュレーション実験より、本手法が初期特徴量集合と同等の精度を保ちながら有用な特徴量を選択できていることが示された。また閾値固定方式より閾値更新方式の方がより有用な特徴量を高速に選択できることが示された。マイクロアレイデータを用いたシミュレーション実験では、殆どのデータでベンチマークデータ同様有用な特徴量を選択できていたが、テストデータ数が少ないこともあり、一部のデータで認識率が非常に低下した。また閾値固定方式と閾値更新方式を比較したところ、時間にしてはどちらが優れているかは判断できなかったが、閾値更新方式の方が、有用な特徴量を確保できた。
【0131】
(実施形態2)
この実施形態2では、前記装置1における学習部31aおよびブロック追加・削除部31b2におけるLP−SVMのかわりに用いることができるL2−SVMの学習について説明するが、これも本発明の特徴をなすものである。SVMの学習において、次の最適化問題を解く。
【0132】
【数25】

ただしwは重みベクトル、φ(x)は多次元入力ベクトルxを特徴空間に写像する関数、bはバイアス項、(x,y)(i=1,・・・,M)はM個の教師データ対でxがクラス1に属するときにy=1で、xがクラス2に属するときにy=−1である。Cはマージンの最大化と教師データに対する誤認識のトレードオフを決定するマージンパラメータ、ξはxに対する非負のスラック変数でL1−SVMのときp=1で、L2−SVMのときp=2とする。y(wφ(x)+b)をxに対するマージンという。
【0133】
これら2つの式(数25)のままでは、特徴空間を直接扱うことになり、写像関数が線形以外は解くのは難しい。このためにラグランジェ乗数αを導入することでL1−SVMに対して次の双対問題を得た。
【0134】
【数26】

そして、L2−SVMに対しては、
【数27】

なる双対問題を得た。ただしK(x,x’)は、カーネル方程式であり、K(x,x’)=φ(x)φ(x‘)、i=jでδij=1、i≠jで0である。
【0135】
ここでは、多項式カーネルであるK(x,x’)=(x,x’+1)と、RBFカーネルであるK(x,x’)=exp(−γ‖x−x’‖)を使用する。ただし、dは正の整数であり、γは傾きを制御するための正のパラメータである。L1−SVMに対するKKT条件が次式で与えられる。
【0136】
【数28】

【0137】
前記2つの式(数26)の解に対して、もしα>0であれば、xはサポートベクトルという。特にα=Cであれば、xは上限に達したサポートベクトル、0<α<Cであれば、xは上限に達していないサポートベクトルという。L2−SVMに対するKKT条件が次式で与えられる。
【0138】
【数29】

ここで、α=Cξである。
【0139】
(主問題におけるSVMの学習)
前記2つの式(数25)で与えられた最適化問題は、次の拘束なしの最適化問題に変換される。
【0140】
【数30】

ただし、wは次式で表すものと仮定する。
【0141】
【数31】

ここで、β(i=1,・・・,m)は定数である。この式(数31)を前記式(数30)に代入して、次式が得られる。
【0142】
【数32】

L1−SVMに対する最適解を与えるデータに関連するインデックスの1セットを定義する。
【0143】
【数33】

ただしD(x)は決定方程式であり、D(x)=wφ(x)+bで与えられる。L2−SVMに対しては、
【数34】

を定義する。ただしα=Cξであるから、等号は含まない。
【0144】
学習データをSに関連するデータに限定するような解が得られるか否かを考える。前記式(数32)は次式とされる。
【0145】
【数35】

L1−SVM(p=1)に対して、KKT条件の2つの式(数28)から、上限に達していないサポートベクトルx(i∈S)に関連するスラック変数ξは0である。しかし、この式(数35)において、スラック変数の合計は最小化される。このようにして、各拘束は必ずしも0になるわけでない。加えて、bに対する二次項がないから、bはこの公式によって決定されない。それゆえ、前記式(数35)を解くことで、解を得ることはできない。この問題を解くために、チャペルはフーバーのロス関数を使用しており、そこでは線形ロスが二次ロスと組み合わさっている(非特許文献4参照)。しかし、この方式はL1−SVMに対する概略解を与えるから、主問題においてL1−SVMを解くものと考えていないことは明らかである。
【0146】
L2−SVMに対して、前記式(数34)から、サポートベクトルx(i∈S)に対応したξは正の値である。このとき前記式(数32)は、i∈Sという制約でもって、(数35)と等しい。β’=(βT,b)Tとすると、ここで、β={β|i∈S}である。
【0147】
すると、式(数35)は、
【数36】

となる。ここで、Kは(|S|+1)×(|S|+1)のマトリックスである。cは(|S|+1)次元ベクトルである。
【0148】
すると、
【数37】

となる。∂Q/∂β’=0を解くと、最適解は次のようになる。
【0149】
【数38】

ここで、Kは正定である。もしKが特異であれば、通常は小さな値が対角の各要素に追加される。しかし、これがサポートベクトルの数を増加するから、ワーキングセットからマトリックスの特異性を引き起こすデータを削除する。
【0150】
以下、主問題と双対問題とにおける学習SVMの比較を行う。
【0151】
(主問題における学習)
この主問題SVMの学習方式では、前記チャペルの方式と異なり、少ないチャンキングデータ(分割したデータ)でもって学習を開始する。そして、小さな値をKの対角の各要素に追加する代わりに、コレスキー分解法によりKを分解したときの関連した列と行を削除することで、Kの特異性を回避する。ここでは、可変サイズのチャンキングアルゴリズムを使用する。すなわち、初期のワーキングセットに対して前記式(数38)を解き、ワーキングセットから、ゼロスラック変数(関連するマージンが1以上である)を含むデータを削除する。ワーキングセットに、正のスラック変数(関連するマージンが1未満である)を含むデータを追加する。そして同式(数38)を解く。そして、同じワーキングセットが得られるまで上記過程を繰り返す。チャンクサイズをhとする。ここで、hは正の整数である。図5は本実施形態2に係るパターン認識方法の学習アルゴリズム(1)を示すフローチャートであって、前記図2におけるステップS100を具体化するものである。
【0152】
ステップS21:h学習データをワーキングセットにセットして、次のステップS22に進む。
【0153】
ステップS22:ここでは、コレスキー分解法によりワーキングセットに対して前記式(数38)を解く。もし対角要素が予め定められた値よりも小さければ、関連する列と行とを削除する。次のデータサンプルを用いて列と行とを書き直し、コレスキー分解することにより、β’を得る。
【0154】
ステップS23:ワーキングセットからゼロスラック変数(すなわち、yD(x)≧1を満たすxである。)を含むデータを削除する。
【0155】
ステップS24:ワーキングセットに最も違反したものから最大でh個のデータを追加する。すなわち最小のyD(x)から順に、yD(x)<1を満たすxを追加する。
【0156】
ステップS25:もし得られたワーキングセットが先に記載したものと同じであるとすると、学習を止める。その他はステップS22に進む。
【0157】
(双対問題における学習)
主問題SVMと同様に、双対問題SVMを学習させる。この考えは、1つの変数に対してそれを解くことで、前記式(数27)の後段に示す同等の拘束を削除し、それを同式(数27)の前段に代入するものである。それから、問題は、正の拘束を含む最大化された問題に限定される。正の拘束を含むことを考えないサブ問題を解き、ワーキングセットから負の変数を削除する。他の過程は主問題SVMのそれと同じである。インデックスセットSに対して前記2つの式(数27)を解くことを考える。α(s∈S)に対する同式(数27)の後段における等価制約を解くことで、次式を得る。
【0158】
【数39】

この式(数39)を前記式(数27)の後段に代入して、次の最適化問題を得る。
【0159】
【数40】

ここに、α={α|i∈S}、α’={α|i≠s,i∈S}、cは(|S|−1)次元ベクトルである。Kは(|S|−1)×(|S|−1)の正の有限マトリックスである。
【0160】
すると、
【数41】

図6は本実施形態2に係るパターン認識方法の学習アルゴリズム(2)を示すフローチャートであって、これも前記図2におけるステップS100を具体化するものである。なお、図5と同様のステップは、同一番号を付すものとする。
【0161】
ステップS21:h学習データをワーキングセットにセットして、ステップS22aへ進む。
【0162】
ステップS22a:ここではαに対してKα’=cを解き、前記式(数39)を用いてαを得る。次式よりbを決定する。
【0163】
【数42】

【0164】
ステップS23:ワーキングセットから、yD(x)>1を満たすxと同様の負の変数を含むデータを削除する。そして、ワーキングセットに最も違反したものから最大でh個のデータを追加する。すなわち最小のyD(x)から順に、yD(x)<1を満たすxを追加する。
【0165】
ステップS24:もし得られたワーキングセットが、先に記載したものと同じであると学習を止める。その他はステップS22aに進む。
【0166】
ステップS22aにおいて負のαがあるにもかかわらず、前記式(数29)における最初の方程式は満たされている。線形方程式を解くことで、αが得られるからである。このようにして、いかなるi(∈S)が同じ値を与える。Kα’=cを解き、後述する負の変数を削除するときに、正の制約を無視するので、上記アルゴリズムの収束性は保障されていない。
【0167】
双対問題SVMと主問題SVMとの差異は、次に要約するとおりである。
(1)双対問題SVMに対するマトリックスKは、正定である。一方、主問題SVMに対するそれは、準正定である。式(数37)と、式(数41)を比較して、双対問題SVMに対するKとcは、主問題SVMよりも要するカーネル方程式が少なくて済む。よって、双対問題SVMはより安定、より少ない計算時間を与える。
【0168】
(2)主問題SVMに対して特徴空間に写像されたサポートベクトルは、標本特徴空間を張る一次独立なデータとして解釈される。このような線形カーネルに対しては、線形の主問題SVMに対するサポートベクトルの数は、多くても入力変数の数である。そして、どのデータも標本特徴空間を張る限り、サポートベクトルとなりうる。
【0169】
(3)プラットが開発したSMOのような分解の技術に基づく従来の学習方法とは異なり、主問題・双対問題SVMとに対する学習は、単調な収束を保障しない。或いは収束しない。これは、先に記載したように、目標関数は単調であることを保障しないからである。これを避けるためには、各繰り返し計算においてKKT条件を違反するデータの数を監視して、違反数が増加する、あるいは振動する場合、変数の修正幅を制約条件を満たす範囲に制約すればよい。これにより、単調性が保証される。
【0170】
次いで、性能評価を行う。ここでは(表9)(そのリストは、多くの入力、クラス、学習データ、テストデータを使用している。)に示したようなベンチマーク データセットを用いて、主問題SVMのそれを含む提案した双対問題SVMの性能評価をした。同表は、五重のクロスデバリデーションによって決定されるL2−SVMに対するパラメータ値をも示している。例えばd4とγ10は、カーネルが次元4を含む多項式カーネルと、γ=10を含むRBFカーネルとを意味する。そして、C10は、マージンパラメータの値が10であることを意味する。すべてのSVMに対して多クラスの未分類領域の解消にファジィメンバーシップ関数を使用した。そして、パーソナルコンピュータ(3GHz,2GBメモリ,ウインドウズXP オペレーティングシステム)を使用して学習時間を測定した。従来例におけるように、カーネルマトリックスと等価なサイズのキャッシュメモリを用意した。
【0171】
【表9】

(表10)はUSPSデータセットに対する主問題・双対問題SVMの性能に基づくチャンクサイズの効果を示す。同表において、“Chunk”,“SVs”,“Iterations”,“Kernels”,“Rec.”,“Time”は、それぞれ、チャンクサイズ、決定関数当たりのサポートベクトルの平均数、繰り返し数、カーネルのアクセス数、テスト(学習)データセットの認識率、そして学習時間を示す。ここでカーネルのアクセス数はカーネル値が必要になった回数で、カーネル値がキャッシュメモリにあるときは、キャッシュメモリの内容が読み出され、カーネル値がキャッシュメモリにないときはカーネル値を計算することを意味する。
【0172】
“SVs”,“Iterations”,“Kernels”,“Rec.”,“Time”欄に対しては、よりよい値が双対問題と主問題との間の太字で示している。同表より、双対問題SVMに対するサポートベクトルの数は5ケースについて同じであるが、主問題SVMに対しては、チャンクサイズが増加するにつれて徐々に増加している。主問題SVMに対する繰り返し数がより小さいにもかかわらず、カーネルアクセス数はより小さく、学習時間は双対問題SVMよりも短い。これは、主問題SVMに対する繰り返し当たりの計算負荷が先に記述したように大きいことを意味する。主問題SVMに対して、たとえ対角要素に小さい値を追加したとしても結果は変化していない。
【0173】
【表10】

マトリックスが特異になるケースの性能試験を行った。(表11)は線形カーネルでC=100の場合の血球細胞のデータセットに対する結果を示す。主問題SVMに対して、主問題としての0.00001を対角要素に追加したときの結果をも含めた。“SVs”欄における( )内の数字は、ワーキングセットの学習後のサイズを示す。このようにして、例えば、50のチャンクサイズに対して、497のデータ間で15のデータのみがサポートベクトルであり、残りのデータはマトリックスの特異性ゆえに削除された。
【0174】
同表より、双対問題SVMの学習は、すべてのチャンクサイズに対して最も早かった。追加したものを含む主問題SVMに対する結果を比較すると、追加した主問題SVMに対する学習はより早いが、解は異なりサポートベクトルの数は、チャンクサイズの数が増加するにつれて増加した。この結果は、小さな正の値の対角要素への追加はマトリックスの特異性を回避する策としてはよくないことを明らかに示す。
【0175】
(表12)はベンチマーク データセットを用いたときの主問題・双対問題SVMに対する結果をリストにしている。50のチャンクサイズをすべてのケースにセットした。甲状腺のデータセットに対して、双対問題SVMの学習はとても遅かった。そして、主問題SVMに対して、ワーキングセットのサイズはかなり変動した。そして、学習は10,000回以内の繰り返し数では収束しながった。ひらがな−13とひらがな−15のデータセットを除き、双対問題SVMはより早く、ひらがな−50のデータセットを除き、双対問題SVMに対するサポートベクトルの数はより小さいものであった。
【0176】
【表11】

実験より、安定した収束と早い学習という点から、双対問題SVMが主問題SVMよりもよいことが明らかになった。
【0177】
以上説明したように、本実施形態2では、双対問題の形式によるSVM(双対問題SVM)に対する学習方法を説明した。すなわち、初期のワーキングセットから始まって、ニュートン法による双対問題の形式で表されたサブ問題を解いた。もし関連したラグランジェ乗数が非正であるとすると、ゼロスラック変数を含むデータの場合と同様に、データを削除し、正のスラック変数を含むデータを加え、同じワーキングセットが得られるまで、サブ問題を解くことを繰り返した。
【0178】
マトリックスの正定性の点から、主問題SVMよりも双対問題SVMが有利であることを明らかにした。コンピュータでの実験により、双対問題SVMの学習が主問題SVMのそれよりも早くなり、通常はサポートベクトルの数はより小さいものとなったことを示している。また、主問題SVMの対角要素に小さな値を追加することは、サポートベクトルの数がより大きくなり、チャンクサイズの変化に対して異なる解を与えることをも示している。
【0179】
ところで、双対問題SVMを用いた場合に収束しにくいことがある。その場合には、繰り返し計算の回数が設定値を超えた段階、あるいはKKT違反数増加あるいは振動する段階で制約を満たす範囲に変数の修正量を制限することにより、確実に収束させることができる。
【0180】
【表12】

【0181】
なお、上記実施形態1,2では、カーネルとして、RBFカーネルや多項式カーネルを用いているが、その他のカーネル(例えば線形カーネルなど。)を用いてもよい。
【符号の説明】
【0182】
1 パターン認識装置
2 入力部(入力装置、入力手段に相当する。)
3 パーソナルコンピュータ(演算装置に相当する。)
31 CPU
31a 学習部
31b 入力データ処理部(選別手段に相当する。)
31b1 プリセレクション部
31b2 ブロック追加・削除部(ブロック追加・削除手段に相当する。)
31c パターン認識部
32 ROM
33 RAM
4 表示部
【先行技術文献】
【特許文献】
【0183】
【特許文献1】特開2005−339186号公報
【非特許文献】
【0184】
【非特許文献1】V.Vapnik,Statistical Learning Theory,John.Wiley&Sons,1996
【非特許文献2】S.Abe,Support Vector Machines for Pattern Classification,Springer,London,2005
【非特許文献3】A.W.Whitney,“A Direct Method of Nonparametric Measurement Selection,”IEEE Trans.Computers,vol.20,no.9,pp.1100−1103,1971
【非特許文献4】O.Chapelle,Training a support vector machine in primal,Large−Scale Kernel Machines,pp.29−50.MIT Press,2007

【特許請求の範囲】
【請求項1】
入力装置が、識別対象となる入力変数を入力する入力工程と、演算装置が、サポートベクトルマシンを用いて、この入力変数からパターンの識別に使用する特徴量を選別する選別工程とを備えたパターン認識方法であって、
前記選別工程は、前記演算装置が、前記サポートベクトルマシンを用いて、前記入力変数からなる初期の特徴量集合における認識率を計算し、この計算された認識率に基づいて、該特徴量集合から特徴量を一度に削除するブロック追加・削除工程を備えたことを特徴とするパターン認識方法。
【請求項2】
前記ブロック追加・削除工程は、前記演算装置が、前記初期の特徴量集合の認識率を閾値としておき、空集合に一時的に特徴量を1つ追加したときの該空集合の認識率を計算して、認識率の高い順に特徴量を順位付けたランキングを生成し、ランキングの上位の特徴量を前記空集合に追加したときの該空集合の認識率が前記閾値よりも大きいときに、特徴量の追加が成功したとして、該特徴量のみを前記特徴量集合に残し、その他の特徴量を該特徴量集合から削除するものであることを特徴とする請求項1記載のパターン認識方法。
【請求項3】
前記閾値は固定値であることを特徴とする請求項1又は2記載のパターン認識方法。
【請求項4】
前記閾値は前記認識率に基づいて更新可能であることを特徴とする請求項1又は2記載のパターン認識方法。
【請求項5】
前記サポートベクトルマシンとして、最小自乗サポートベクトルマシンを備えており、
前記演算装置は、この最小自乗サポートベクトルマシンで前記認識率を計算することを特徴とする請求項1〜4のいずれか1項に記載のパターン認識方法。
【請求項6】
前記サポートベクトルマシンとして、線形計画サポートベクトルマシンをも備えており、
前記選別工程は、前記演算装置が、前記ブロック追加・削除工程を実行する前に、前記初期の特徴量集合を用いて、前記線形計画サポートベクトルマシンを学習させることにより、該特徴量集合に対応する重みを計算し、この重みの大きさに基づいて特徴量を前記初期の特徴量集合から予め削除しておくプリセレクション工程を備えたことを特徴とする請求項5記載のパターン認識方法。
【請求項7】
前記演算装置が、前記ブロック追加・削除工程で、入力変数をワーキング集合と固定集合とに分けて、ワーキング集合を繰り返して解く分割法の最適化問題において途中段階では制約条件を満たさないことを許すように前記サポートベクトルマシンを学習させることを特徴とする請求項1〜4のいずれか1項に記載のパターン認識方法。
【請求項8】
前記演算装置が、前記ブロック追加・削除工程で、前記最適化問題にラグランジェ乗数を適用した双対問題を用いて前記サポートベクトルマシンを学習させることを特徴とする請求項7記載のパターン認識方法。
【請求項9】
前記演算装置は、前記ブロック追加・削除工程で、前記双対問題を用いて前記サポートベクトルマシンを学習させる際に、初期変数集合から出発して解を求め、この解の中で正となる変数を残し、正しく分離されている変数、および零または負になる変数を削除し、さらに正しく分離されていない変数、あるいはマージンが不足している変数を追加して解を求めることを、同じ解が求まるまで繰り返すことを特徴とする請求項8記載のパターン認識方法。
【請求項10】
前記演算装置は、前記ブロック追加・削除工程で、前記繰り返し数が設定回数を超える、あるいは違反数が増加あるいは振動すると、制約を満たすように変数の修正量を制限して、前記サポートベクトルマシンを学習させることを特徴とする請求項9記載のパターン認識方法。
【請求項11】
識別対象となる入力変数を入力するための入力手段と、サポートベクトルマシンを用いて、この入力変数からパターンの識別に使用する特徴量を選別する選別手段とを備えたパターン認識装置であって、
前記選別手段は、前記サポートベクトルマシンを用いて、前記入力変数からなる初期の特徴量集合における認識率を計算し、この計算された認識率に基づいて、該特徴量集合から特徴量を一度に削除するブロック追加・削除手段を備えたことを特徴とするパターン認識装置。
【請求項12】
入力装置により入力された入力変数からパターンの識別に使用する特徴量を選別するに際し、サポートベクトルマシンを用いて、前記入力変数からなる初期の特徴量集合における認識率を計算し、この計算された認識率に基づいて、前記特徴量集合から特徴量を一度に削除するブロック追加・削除機能をコンピュータに実現させることを特徴とするパターン認識プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−43988(P2011−43988A)
【公開日】平成23年3月3日(2011.3.3)
【国際特許分類】
【出願番号】特願2009−191739(P2009−191739)
【出願日】平成21年8月21日(2009.8.21)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 「ブロック追加・削除による特徴量の選択」の卒業論文とそのパワーポイントで発表
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ウィンドウズ
【出願人】(504150450)国立大学法人神戸大学 (421)
【Fターム(参考)】