説明

演算装置及びプログラム

【課題】パターン認識装置に好適な次元削減行列Aを算出することのできる演算装置を提供する。
【解決手段】情報処理装置は、パターン認識装置にて認識するクラス毎に、当該クラスに属するパターンの特徴ベクトルのサンプルを取得すると共に、クラス内分散を定義付ける値mとして、実数値の入力を受け付けるための入力画面を表示装置に表示し、ユーザインタフェースから、値mを取得する(S130)。そして、取得したサンプルの一群に基づいて、各クラスの平均ベクトルμi及び全クラスの平均ベクトルμ0を算出する(S140,S150)と共に、クラス間共分散行列B及び各クラスの共分散行列Wiを算出し(S160,S170)、これらの値に基づき、クラスの総数をL、第iクラスの事前確率をPiとする評価関数J(A,m)が最大となる次元削減行列Aを求める。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パターン認識装置に用いる次元削減行列を算出する演算装置及びプログラムに関する。
【背景技術】
【0002】
従来より、パターン認識装置としては、入力されたパターンの特徴を抽出して、特徴ベクトルを生成し、更に、この特徴ベクトルを低次元化して、パターン認識に有効な特徴ベクトル(又はスカラー量)を求め、当該低次元化後の値を、予めデータベースに登録された各クラスの基準値(プロトタイプ)と照合して一致度を評価することにより、入力されたパターンを複数のクラスのいずれかに分類し、パターン認識を実現するものが知られている。
【0003】
入力されたパターンを装置により認識する際には、上述したように、パターンから様々な特徴量を抽出し、これらを要素として特徴ベクトルを生成するのであるが、高次元の特徴ベクトルで、パターン認識を行う場合には、情報量が多すぎて、パターン認識に、非常に長い時間を要する。また、認識に不要な情報が含まれている特徴ベクトルを用いて、パターン認識を行う場合には、パターンの認識精度が劣化する可能性がある。一方、認識に必要な情報が含まれていない特徴ベクトルを用いて、パターン認識を行っても、当然のことながら、良好なパターン認識結果を得ることができない。
【0004】
このため、従来では、まず、高次元の特徴ベクトルを生成し、この特徴ベクトルを低次元空間に写像したときに、特徴ベクトルが低次元空間上でクラス毎に分離し、同クラスの特徴ベクトルが特定領域に集中するような次元削減行列を求め、求めた次元削減行列を特徴ベクトルを作用させることにより、特徴ベクトルを低次元化して、低次元化後の値がパターンの特徴を良好に表すようにしている。
【0005】
このような次元削減法によって、特徴ベクトルを低次元化すれば、低次元空間において、各クラスの特徴ベクトルが分離し、同一クラスの特徴ベクトルが類似する値を示すので、特徴ベクトルがいずれのクラスに属するものであるのかを、効率的且つ精度よく判定することができる。
【0006】
具体的に、次元削減法としては、従来、線形判別分析法や不等分散判別分析法を用いたものが知られている。
線形判別分析法による次元削減では、まず、クラス毎に、クラスに属するパターンの特徴ベクトルを、サンプルとして複数個用意する。そして、これらのサンプル群から、各クラスの平均ベクトルμiを求めると共に、全クラスの平均ベクトルμ0を求める。
【0007】
【数1】

但し、μiは、第iクラスの平均ベクトルを表し、iは、クラスの総数をLとして、値1から値Lまでの整数値を採るものとする。また、Nは、全クラスのサンプル数、Niは、第iクラスのサンプル数、Xijは、第iクラスの第j(j=1,2,…,Ni)サンプルのベクトル値を表すものとする。
【0008】
【数2】

尚、x1,…,xdは、d次元の特徴ベクトルの各要素の値を表し、上付き文字Tは、転置を表す。
【0009】
そして、これら平均ベクトルμ0及びクラス毎の平均ベクトルμiを用いて、クラス間共分散行列Bを求めると共に、各クラスの共分散行列Wiを求める。
【0010】
【数3】

但し、Piは、第iクラスの事前確率であり、Pi=Ni/Nとすることができる。また、Wiは、第iクラスの共分散行列を表すものとする。
【0011】
上述したようにして、クラス間共分散行列B及び各クラスの共分散行列Wiを求めた後には、クラス内共分散行列Wを、各クラスの共分散行列Wiの算術平均とし、評価空間(低次元空間)でのクラス間分散とクラス内分散との比|B|/|W|が最大となる次元削減行列Aを求める。具体的には、評価関数J(A)を次のように定義し、評価関数J(A)が最大となる次元削減行列Aを求める。
【0012】
【数4】

例えば、d次元の特徴ベクトルXijを、d’次元の空間に写像して低次元化する場合には、次元削減行列Aとして、評価関数J(A)が最大となるd行d’列の行列を求める(例えば、非特許文献1参照)。
【0013】
クラス間分散は、クラス間のばらつきの程度を表し、クラス内分散は、クラス内のサンプルのばらつきの程度を表すものである。このため、上述のようにして行列Aを求めれば、特徴ベクトルが低次元空間上でクラス毎に分離し、同クラスの特徴ベクトルが低次元空間上で特定領域に集中するような次元削減行列Aを求めることができる。従来の線形判別分析法による次元削減では、このようにして、パターン認識に最適な次元削減行列Aを求めている。
【0014】
一方、不等分散判別分析法による次元削減では、クラス内共分散行列Wを、各クラスの共分散行列Wiの幾何平均として、評価空間(低次元空間)でのクラス間分散とクラス内分散との比|B|/|W|が最大となる次元削減行列Aを求める。具体的には、評価関数J(A)を次のように定義して、評価関数J(A)が最大となる次元削減行列Aを求める(例えば、非特許文献2参照)。
【0015】
【数5】

このようにして、従来の不等分散判別分析法を用いた次元削減では、パターン認識に最適な次元削減行列Aを求めている。
【非特許文献1】フクナガケイノスケ(Keinosuke Fukunaga)著,「統計パターン認識(Introduction to Statistical Pattern Recognition)」,第2版,(米国),アカデミックプレス(Academic Press),1990年,p.441−p.459
【非特許文献2】サオン(Saon)外3名,「最尤識別特徴空間(Maximum likelihood discriminant feature space)」,音響・音声・信号処理国際会議(International Conference on Acoustics, Speech, and Signal Processing),2000年,p.129−p.132
【発明の開示】
【発明が解決しようとする課題】
【0016】
しかしながら、従来の次元削減法では、パターン認識を精度よく実現するのに十分に、適切な次元削減行列Aを求めることができない場合があった。即ち、従来の手法では、パターン認識を精度よく実現するのに十分に、特徴ベクトルが低次元空間上でクラス毎に分離し、同クラスの特徴ベクトルが低次元空間上で特定領域に集中するような次元削減行列Aを求めることができない場合があった。
【0017】
例えば、2次元の特徴ベクトルを1次元に削減する場合であって、パターンのクラスが3種類ある場合には、図5(a)下段に示すように、3種類の各クラスの特徴ベクトルが、1次元空間上で、クラス毎に、重複しない領域に集中するのが好ましいが、線形判別分析法による次元削減では、特徴ベクトルの1次元空間上の分布が、図5(b)に示すように、異なるクラス間で重複する領域の多い分布となってしまう場合があった。
【0018】
また、このような性質を有する特徴ベクトルの集合に対しては、不等分散判別分析法によって次元削減行列Aを求めても、特徴ベクトルの1次元空間上の分布が、線形判別分析法と同様に、異なるクラス間で重複する領域の多い分布になってしまう場合があった(図5(c)参照)。このように、従来手法では、特徴ベクトルを適切に次元削減できずに、パターン認識の精度が十分に得られない場合があった。
【0019】
本発明は、こうした問題に鑑みなされたものであり、パターン認識に適切な次元削減行列Aを算出することのできる演算装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0020】
かかる目的を達成するためになされた本発明は、外部から入力された認識対象パターンの特徴ベクトルに、予め定められた次元削減行列を作用させて、特徴ベクトルを低次元空間に写像し、当該特徴ベクトルの次元削減後の値に基づき、入力されたパターンを、予め定められた複数のクラスのいずれかに分類するパターン認識装置に用いる上記次元削減行列を算出するに当たって、クラス内分散を、一般化平均により定義し、次の評価関数J1(A,m)又は評価関数J2(A,m)により、次元削減行列Aを求めるようにしたものである。
【0021】
【数6】

具体的に、本発明の演算装置は、パターン認識装置にて分類する上記複数のクラスについて、各クラス毎に、クラスに属するパターンの特徴ベクトルを、複数個、サンプルとして取得するサンプル取得手段を備える。そして、演算装置は、サンプル取得手段が取得した各クラスのサンプル群に基づき、クラス間分散算出手段にて、クラス間共分散行列Bを求める。尚、クラス間分散算出手段は、次式に従って、クラス間共分散行列Bを求める構成にすることができる。
【0022】
【数7】

ここで、μiは、第iクラスの平均ベクトル、μ0は、全クラスの平均ベクトルである。また、iは、クラスの総数をLとして、値1から値Lまでの整数値を採る。その他、Nは、全クラスのサンプル数、Niは、第iクラスのサンプル数、Xijは、第iクラスの第j(j=1,2,…,Ni)サンプルのベクトル値を表す。また、x1,…,xdは、d次元の特徴ベクトルの各要素の値を表し、上付き文字Tは、転置である。
【0023】
【数8】

また、本発明の演算装置は、サンプル取得手段が取得した各クラスのサンプル群に基づき、クラス分散算出手段により、各クラスの共分散行列Wiを算出する。但し、Wiは、第iクラスの共分散行列を表す。
【0024】
【数9】

この他、本発明の演算装置は、クラス内分散を定義付ける値mとして、実数値の入力を受け付ける入力受付手段を備え、この入力受付手段により、当該演算装置のユーザが所望するクラス内分散の定義情報(値m)を取得する。
【0025】
そして、演算装置は、入力受付手段を通じて入力された値mと、クラス間分散算出手段により算出されたクラス間共分散行列Bと、クラス分散算出手段により算出された各クラスの共分散行列Wiとに基づき、式(1)で定義される評価関数J1(A,m)又は式(2)で定義される評価関数J2(A,m)が最大になる次元削減行列Aを、行列算出手段により算出する。尚、Piは、第iクラスの事前確率であり、Pi=Ni/Nとすることができる。
【0026】
本発明の演算装置は、このようにして、次元削減行列Aを求め、求めた次元削減行列Aを、出力手段により、外部に出力する。
このように構成された演算装置では、m=1が入力された場合、クラス内分散を、算術平均により定義することになるため、線形判別分析法と同手法で、次元削減行列Aを求めることとなり、m=0が入力された場合には、クラス内分散を、幾何平均により定義することになるため、周知の不等分散判別分析法と同手法で次元削減行列Aを求めることとなる。一方、mが0,1以外の値で入力された場合には、新規な手法で次元削減行列Aを求めることになる。
【0027】
本発明者は、線形判別分析法及び不等分散判別分析法によっては適切な次元削減行列Aが求められない問題について考察したところ、クラス内分散を一般化平均により定義することにより、線形判別分析法及び不等分散判別分析法によっては適切な次元削減行列Aが求められない問題を解消することができることに気がついた。例えば、線形判別分析法や不等分散判別分析法によっては、適切な次元削減行列Aを求めることができない図5(b)(c)のような場合であっても、パラメータmを、例えば、m=10などのm=0,1以外の値に設定して、式(1)の評価関数J1(A,m)又は式(2)の評価関数J2(A,m)に従い、評価関数が最大となる次元削減行列Aを求めれば、図5(a)下段のようなパターン認識に適切な分布を得ることができるのである。
【0028】
本発明者は、このような事実から、演算装置を、外部からパラメータmの値を取得し、式(1)の評価関数J1(A,m)又は式(2)の評価関数J2(A,m)に従って次元削減行列Aを算出し、この次元削減行列Aを出力する構成にしたのである。このような演算装置を用いれば、パターン認識装置の設計者は、パラメータmの値として複数の値を演算装置に入力し、これにより複数の次元削減行列Aを演算装置から得て、これらの次元削減行列Aをサンプルに作用させたときのサンプルの低次元空間での分布を、評価することにより、パターン認識に最適な次元削減行列Aを求めることができる。
【0029】
従って、本発明の演算装置を用いれば、従来よりも好適なパターン認識装置を構成することができる。
尚、上記演算装置は、行列算出手段により算出された次元削減行列Aを、サンプル取得手段が取得した各サンプルに作用させて、各サンプルの次元削減後の値を算出する低次元化手段を備え、出力手段にて、上記算出された次元削減行列A及び低次元化手段の算出結果を表す情報を、出力する構成にされるとよい(請求項2)。ここで「低次元化手段の算出結果を表す情報」としては、低次元化手段により求められた各サンプルの次元削減後の値そのものや、その統計情報(低次元空間での各サンプルの分布を表す情報等)を挙げることができる。
【0030】
このように演算装置を構成すれば、パターン認識装置の設計者は、別途、次元削減行列Aをサンプルに作用させて、各サンプルを次元削減する作業をしなくても、パターン認識に最適な次元削減行列を設定するのに必要な情報を、演算装置から得ることができる。従って、本発明によれば、パターン認識装置を設計する際の次元削減行列Aの決定を、効率的に行うことができる。
【0031】
また、具体的に、出力手段は、低次元化手段により求められた各サンプルの次元削減後の値を、次元削減行列Aと共に記述したデータファイルを出力する構成にされてもよいし、低次元空間での各サンプルの分布をグラフ化してなる画像を、表示装置を通じて画面に出力する構成にされてもよい。
【0032】
この他、演算装置には、各サンプルの次元削減後の値に基づき、行列算出手段が算出した次元削減行列Aの良否を評価する評価手段を設けると好ましい(請求項3)。例えば、出力手段を通じ、評価手段の評価結果をユーザに向けて出力するように演算装置を構成すれば、ユーザに、適切な次元削減行列Aを用いて、パターン認識装置を構築させることができる。
【0033】
また、評価手段は、低次元化手段により算出された各サンプルの次元削減後の値から求められる各クラスの共分散行列Wi’(但し、Wi’は、次元削減後の第iクラスの共分散行列を表す。)及び平均ベクトルμi’(但し、μi’は、次元削減後の第iクラスに属するサンプルの平均ベクトルを表す。)に基づき、重み付け係数をs、第iクラスの事前確率をPiとした式
【0034】
【数10】

に従って、行列算出手段が算出した次元削減行列Aによる次元削減後の第iクラス及び第kクラスのサンプル群の重なり具合を表すチェルノフ上限CBikを、クラスの組合せ毎に算出し、算出したチェルノフ上限CBikに基づき、行列算出手段が算出した次元削減行列Aの良否を評価する構成にすることができる(請求項4)。尚、チェルノフ上限は、一般に「チェルノフ限界」とも呼ばれる。
【0035】
上記チェルノフ上限CBikは、値が小さい程、第iクラス及び第kクラスのサンプル群の重なり具合が小さいことを表す。従って、チェルノフ上限CBikが小さい次元削減行列Aほど高く評価すれば、次元削減行列Aの良否を適切に評価することができる。
【0036】
この他、評価手段は、チェルノフ上限CBikの総和CB
【0037】
【数11】

を行列算出手段が算出した次元削減行列Aの良否を表す評価値CBとして算出する構成にすることができる(請求項5)。このように評価手段を構成した場合には、評価値CBが小さい程、その次元削減行列Aが、パターン認識装置に適切であることを表す。従って、次元削減行列Aと共に評価値CBをユーザに報知したりすることで、ユーザに、適切な次元削減行列Aを用いて、パターン認識装置を構築させることができる。
【0038】
尚、具体的に、入力受付手段は、クラス内分散を定義付ける値mとして、複数の値を取得可能な構成にされ、行列算出手段は、入力受付手段が取得した値m毎に、評価関数J1(A,m)又は前記評価関数J2(A,m)が最大になる次元削減行列Aを、算出する構成にされ、評価手段は、入力受付手段が取得した値m毎に、行列算出手段が算出した次元削減行列Aの良否を評価する構成にされるとよい。また、出力手段は、評価手段の評価結果に従って、行列算出手段が算出した複数の次元削減行列Aの内、評価が最良の次元削減行列Aを選択的に、出力する構成にされるとよい(請求項6)。
【0039】
このような構成の演算装置によれば、ユーザから入力された複数の値mの内、最良な値mに対応する次元削減行列Aを選択的に、ユーザに報知することができて、ユーザに、認識精度の高いパターン認識装置を構築させることができる。
【0040】
この他、本発明の演算装置が有する各手段としての機能は、プログラムによりコンピュータに実現させることができる。また、本発明の演算装置としての機能を、コンピュータに実現させるためのプログラムは、例えば、CD−ROM等のコンピュータ読取可能な記録媒体に記録して提供することができる。
【発明を実施するための最良の形態】
【0041】
以下に本発明の実施例について、図面と共に説明する。但し、本発明は、以下に説明する実施例に限定されるものではなく、種々の態様を採りうる。
[第一実施例]
図1は、第一実施例の情報処理装置1の構成を表すブロック図である。図1に示すように、本実施例の情報処理装置1は、各種演算処理を行うCPU11と、ブートプログラム等を記憶するROM13と、プログラム実行時に作業領域として使用されるRAM15と、ハードディスク装置(HDD)17と、キーボードやポインティングデバイス等で構成されるユーザインタフェース19と、液晶ディスプレイ等で構成される表示装置21と、記録メディア(磁気ディスクや光ディスク等)に記録されたデータを読み取るためのドライブ装置23と、を備える。
【0042】
ハードディスク装置17には、オペレーティングシステムや各種アプリケーションソフトウェアが記憶されており、本実施例の情報処理装置1は、起動すると、ハードディスク装置17にインストールされた上記オペレーティングシステムに従って動作し、ユーザインタフェース19から入力される指令信号に従って、各種アプリケーションソフトウェアを実行する。
【0043】
具体的に、本実施例の情報処理装置1には、次元削減行列Aを設計するためのツールが、ハードディスク装置17に、アプリケーションソフトウェアとしてインストールされており、CPU11は、ユーザインタフェース19を通じて、上記ツールの実行指令が入力されると、ハードディスク装置17にインストールされた上記ツールに従って、次元削減行列演算処理を実行する(図3参照)。
【0044】
尚、上記ツールは、外部から入力された認識対象パターンの特徴ベクトルXに、予め設定された次元削減行列Aを作用させて、特徴ベクトルXを低次元空間Syに写像し、特徴ベクトルXの次元削減後の値Yに基づき、パターンを、予め定められた複数のクラスのいずれかに分類するパターン認識装置に設定する次元削減行列Aを算出するためのものである。
【0045】
この種のパターン認識装置としては、マイクロフォンから入力されたユーザの発声音のパターンを認識対象パターンとして、その発声音パターンから、音声の特徴を抽出し、特徴ベクトルXを生成するパターン認識装置や、カメラから入力された被写体の画像パターンを認識対象パターンとして、その画像パターンから、画像の特徴を抽出し、特徴ベクトルXを生成するパターン認識装置が知られている。図2は、この種のパターン認識装置50の基本構成を表すブロック図である。
【0046】
図2に示すように、パターン認識装置50は、ベクトル生成部51と、次元削減部53と、パターン認識部55と、を備え、ベクトル生成部51にて、認識対象パターンから、所定次元(ここではd次元とする)の特徴ベクトルX=(x1,x2,…,xdTを生成する。そして、この特徴ベクトルXを、次元削減部53にて、予め設定された次元削減行列Aに従い次元削減する。
【0047】
そして、この次元削減後の値Y=AT・Xに基づき、パターン認識部55にて、認識対象パターンを、予め定められた複数のクラスのいずれかに分類する。例えば、パターン認識部55は、次元削減後の値Yが、第iクラスの領域にある場合、入力された認識対象パターンを、第iクラスのパターンであると認識する。
【0048】
本実施例は、このような構成のパターン認識装置50に設定する次元削減行列Aを算出するためのものであり、具体的に、図3に示すようにして、次元削減行列演算処理を実行する。図3は、CPU11が実行する次元削減行列演算処理を表すフローチャートである。その他、図4(a)は、次元削減行列演算処理の実行時に、ハードディスク装置17から読み出される特徴ベクトルXのサンプルが記述されたデータファイル(以下、「サンプルデータファイル」という。)の構成を表す説明図である。
【0049】
次元削減行列処理を実行すると、CPU11は、まず、表示装置21に、ファイル選択画面を表示し、ユーザに、読出対象とするサンプルデータファイルを指定させる(S110)。そして、ユーザインタフェース19を通じ、サンプルデータファイルが指定されると、ハードディスク装置17から、指定されたデータファイルを読み出す(S120)。
【0050】
図4(a)に示すように、サンプルデータファイルは、パターン認識装置50が分類するクラスの総数L、特徴ベクトルXの次元d、写像先の次元d’の情報が記述された構成にされ、更に、各クラス毎に、クラスに属するパターンの特徴ベクトルX=(x1,x2,…,xdTのサンプルが、クラスの識別番号c(c=1,2,…,L)に関連付けられて、複数個記述された構成にされている。以下、第iクラスの第jサンプルの特徴ベクトルXを、特に、Xijと表現する。
【0051】
即ち、S120において、CPU11は、サンプルデータファイルに記録された、これらの値L,d,d’,Xijを全て読み出す処理を行う。尚、このようなサンプルデータファイルは、予め、文書作成ソフト等を通じてユーザの操作により生成され、ハードディスク装置17に記録される。
【0052】
また、S120での処理を終えると、CPU11は、クラス内分散を定義付ける値mとして、実数値の入力を受け付けるための入力画面を表示装置21に表示し、ユーザインタフェース19を通じて、値mの情報を取得する(S130)。
【0053】
そして、この処理を終えると、CPU11は、サンプルデータファイルから読み出した値L,d,Xijに従って、各クラスの平均ベクトルμiを算出する(S140)。尚、μiは、第iクラスの平均ベクトルを表し、iは、値1から値Lまでの整数値を採る。また、Niは、サンプルデータファイルに記述された第iクラスのサンプルの総数を表す。
【0054】
【数12】

また、この処理を終えると、CPU11は、S140で算出された各クラスの平均ベクトルμ1,μ2,…,μLに基づいて、全クラスの平均ベクトルμ0を算出する(S150)。尚、Nは、全クラスのサンプル数であり、Ni(i=1,2,…,L)の総和である。
【0055】
【数13】

その後、CPU11は、次式に従って、クラス間共分散行列Bを算出する(S160)。但し、Piは、第iクラスの事前確率であり、Pi=Ni/Nである。
【0056】
【数14】

また、このようにしてS160での処理を終えると、CPU11は、S170に移行し、各クラスの共分散行列Wiを算出する。但し、Wiは、第iクラスの共分散行列を表す。
【0057】
【数15】

また、S170での処理を終えると、CPU11は、S180に移行し、次式に示す評価関数J(A,m)が最大となるd行d’列の次元削減行列Aを求める。
【0058】
【数16】

例えば、S180では、行列Aの要素の値を走査して、評価関数J(A,m)が極大値を採る行列Aを求める。尚、m=0である場合には、具体的に、次の評価関数J(A,0)に従って、評価関数J(A,0)が最大となるd行d’列の次元削減行列Aを求める。
【0059】
【数17】

また、S180での処理を終えると、CPU11は、求めた次元削減行列Aを、各サンプルXijに作用させて、各サンプル毎に、サンプルを低次元空間Syに写像したときの値Yijを求める(S190)。
【0060】
【数18】

その後、CPU11は、上記算出した次元削減行列A、この次元削減行列Aの算出時に用いたパラメータmの値、及び、次元削減後の値Yijを、記述してなるデータファイルを生成し、これをハードディスク装置17における上記サンプルデータファイルの読出先ディレクトリに書き込む(S200)。尚、図4(b)は、S200においてハードディスク装置17に出力するデータファイルの構成を表す説明図である。このデータファイルには、CPU11の動作により、値Yijに関連付けて、次元削減前のオリジナルの特徴ベクトルXij及び当該特徴ベクトルXijが属するクラスの値cも記述される。
【0061】
また、S200での処理を終えると、CPU11は、上記算出した次元削減行列Aを表示装置21の画面上に表示すると共に、各サンプルXijを低次元空間Syに写像したときの値Yijの分布を表すグラフを、表示装置21の画面上に表示する(S205)。
【0062】
具体的に、d’=1である場合には、値Yijがスカラー量であるので、横軸に、1次元空間Syの座標を採り、縦軸に、その座標に写像されたサンプルの個数を採って、1次元空間Syの各座標に写像されるサンプルの個数をクラス毎にグラフ表示する。例えば、図5(a)下段に示す構成のグラフを表示する。また、d’=2である場合には、値Yijが2次元のベクトルであるので、xy平面に、2次元空間Syの座標を取り、z軸に、その座標(x,y)に写像されたサンプルの個数を採って、2次元空間Syの各座標に写像されるサンプルの個数をグラフ表示する。
【0063】
その後、CPU11は、再演算の実行指令がユーザインタフェース19を通じて入力されているか否かを判断し(S210)、再演算の実行指令が入力されている場合には(S210でYes)、S130に移行し、改めて値mの入力を受け付ける。また、ユーザインタフェース19を通じて値mが入力された後には、S140に移行し、この新規な値mを用いて、S140以降の処理を実行する。
【0064】
一方、再演算の実行指令が入力されていないと判断すると(S210でNo)、CPU11は、当該ツールの終了指令が入力されるか、再演算の実行指令が入力されるまで待機し、当該ツールの終了指令が入力されると(S220でYes)、当該次元削減行列演算処理を終了する。
【0065】
以上に説明した本実施例の情報処理装置1では、m=1が入力された場合、クラス内分散を、算術平均により定義することになるため、線形判別分析法と同手法で、次元削減行列Aを求めることになる。また、m=0が入力された場合には、クラス内分散を、幾何平均により定義することになるため、周知の不等分散判別分析法と同手法で次元削減行列Aを求めることになる。一方、mが0,1以外の値で入力された場合には、新規な手法で次元削減行列Aを求めることになる。
【0066】
上述したように、クラス内分散を一般化平均で定義すれば、線形判別分析法や不等分散判別分析法によっては、適切な次元削減行列Aを求めることができない場合であっても、適切な次元削減行列Aを求めることができる(図5参照)。即ち、特徴ベクトル(サンプル)Xijを低次元空間Syに写像したときに、特徴ベクトルXijが低次元空間Sy上でクラス毎に分離し、同クラスの特徴ベクトルが特定領域に集中する図5(a)に示すような適切な次元削減行列Aを求めることができる。
【0067】
従って、本実施例のツールを用いれば、従来よりもパターン認識性能に優れた好適なパターン認識装置を構成することができる。
具体的に、パターン認識装置50に設定する次元削減行列Aの決定に当たっては、当該ツールを用いて、パラメータmの値を走査しながら、当該値mで求めた次元削減行列Aにより各サンプルXijを低次元空間Syに写像したときの分布を、出力されたデータファイルの内容や表示装置21に表示されたグラフに基づいて、評価する作業を行えばよい。このような作業を経て、本実施例では、最適な次元削減行列Aを求めることができる。
【0068】
また、本実施例では、演算結果をデータファイルとして出力するだけでなく、各サンプルXijを低次元空間Syに写像したときの値Yijの分布を表すグラフを、表示装置21の画面上に表示出力するので、ユーザは、最適な次元削減行列Aを求める作業を、効率的に行うことができる。
【0069】
ところで、上記実施例では、分子をクラス間共分散行列Bで定義した評価関数J(A,m)に従って次元削減行列Aを求めたが、S180では、分子を全共分散行列で定義してなる次の評価関数J(A,m)に従って、次元削減行列Aを求めても良い。
【0070】
【数19】

評価関数J(A,m)を、上式で定義して次元削減行列Aを求めても、上記実施例と同様の効果を得ることができる。
【0071】
この他、上述した情報処理装置1は、図6に示す内容の次元削減行列演算処理を実行する構成にされてもよい(第二実施例)。
[第二実施例]
続いて、第二実施例について説明する。図6は、第二実施例の情報処理装置1が、CPU11にて実行する次元削減行列演算処理を表すフローチャートである。但し、第二実施例の情報処理装置1は、CPU11にて実行する次元削減行列演算処理の内容が異なる程度であり、その他の構成については、基本的に第一実施例と同一構成であるので、以下では、第一実施例の情報処理装置1と同一構成の説明を、適宜省略する。
【0072】
図6に示す次元削減行列演算処理を実行すると、CPU11は、まず、表示装置21に、ファイル選択画面を表示し、ユーザに、読出対象とするサンプルデータファイルを指定させる(S310)。そして、ユーザインタフェース19を通じ、サンプルデータファイルが指定されると、ハードディスク装置17から、指定されたデータファイルを読み出す(S320)。尚、本実施例のサンプルデータファイルも、第一実施例と同一構成であり、予め、文書作成ソフト等を通じてユーザの操作により生成され、ハードディスク装置17に記録されるものとする。
【0073】
即ち、S320において、CPU11は、サンプルデータファイルに記録された値L,d,d’,Xijを読み出す処理を行う。
また、S320での処理を終えると、CPU11は、クラス内分散を定義付ける値として、実数値の入力を受け付けるための入力画面を表示装置21に表示し、ユーザインタフェース19を通じて、その値を取得する(S330)。但し、ここで表示する入力画面は、第一実施例とは異なり、クラス内分散を定義付ける値として、複数の値m[1],m[2],…,m[M]を入力可能な構成にされている。
【0074】
即ち、S330では、ユーザから指定された複数の値m[1],m[2],…を、ユーザインタフェース19を通じて取得する。尚、S330では、予め定めたM個の値をユーザに入力させてもよいし、最大個数をM個として、任意の個数の値をユーザに入力させてもよい。ここでは、ユーザから取得した値mの数を、ME個とする。
【0075】
また、この処理を終えると、CPU11は、S140での処理と同様に、サンプルデータファイルから読み出した値L,d,Xijに従って、各クラスの平均ベクトルμiを算出すると共に(S340)、S150での処理と同様に、S340で算出した各クラスの平均ベクトルμ1,μ2,…,μLに基づき、全クラスの平均ベクトルμ0を算出する(S350)。その後、S160での処理と同様に、クラス間共分散行列Bを算出し(S360)、S170での処理と同様に、各クラスの共分散行列Wiを算出する(S370)。
【0076】
また、S370での処理を終えると、CPU11は、パラメータr=1に設定する(S373)と共に、S377に移行し、パラメータm(クラス内分散を定義付ける値m)を、ユーザから指定された値m[r]に設定する(m←m[r])。
【0077】
また、S377での処理を終えると、CPU11は、S380に移行し、S180での処理と同様に、評価関数J(A,m)が最大となるd行d’列の次元削減行列Aを求める(S380)。特に、ここでは、評価関数J(A,m[r])が最大となるd行d’列の次元削減行列をArと表記する。
【0078】
そして、求めた次元削減行列Arを、S190での処理と同様に、各サンプルXijに作用させて、サンプル毎に、サンプルを低次元空間Syに写像したときの値Yij[r]を求める(S390)。尚、ここで用いる記号[r]は、値m[r]を用いて算出した値であることを明確にするためのサフィックスである。
【0079】
また、この処理を終えると、CPU11は、S400に移行し、図7に示す行列評価処理を実行する。図7は、CPU11がS400で実行する行列評価処理を表すフローチャートである。
【0080】
行列評価処理を開始すると、CPU11は、まず、各サンプルの次元削減後の値Yij[r]から、次元削減後の各クラスの平均ベクトルμi[r](i=1,2,…,L)を算出する(S510)。
【0081】
【数20】

また、この処理を終えると、S520に移行して、次元削減後の各クラスの共分散行列Wi[r](i=1,2,…,L)を算出する。
【0082】
【数21】

その後、CPU11は、S525に移行して、パラメータiを値1に設定し(i=1)、k=i+1,i+2,…,Lについて、次式に従い値Wik[r]を算出する(S530)。
【0083】
【数22】

但し、ここで用いるパラメータsは、0<s<1の範囲で値を採る重み付け係数であり、例えば,s=0.5に設定される。
【0084】
また、この処理を終えると、CPU11は、S540に移行し、k=i+1,i+2,…,Lについて、次式に従い、次元削減後の第iクラスのサンプル群と第kクラスのサンプル群との間の乖離度ηik[r]を算出する(S540)。
【0085】
【数23】

その後、次式に従い、次元削減後の第iクラスのサンプル群と第kクラスのサンプル群との間の重なり具合を表すチェルノフ上限CBik[r]を、k=i+1,i+2,…,Lについて算出する(S550)。尚、Piは、第iクラスの事前確率である。
【0086】
【数24】

即ち、本実施例では、クラス間の重なりを測る指標として、チェルノフ上限を用いる。チェルノフ上限は、ベイズ誤差の上限であることが知られている。ユーザにより指定された値m[1],…,m[ME]から、次元削減行列Aに採用するのに最適な定義(値m)を選択するには、このチェルノフ上限CBikが小さくなる値m[1],…,m[ME]を選択すればよいことになる。本実施例では、ユーザにより指定された値m[1],…,m[ME]の中から、次元削減行列Aに採用するのに最適な定義(値m)を選択するために、ここで、チェルノフ上限CBik[r]を上述のようにして算出する。尚、s=0.5のとき、チェルノフ上限は、バタチャリヤ上限と呼ばれる。
【0087】
S550での処理を終えると、CPU11は、不等式i<L−1が成立しているか否かを判断し、パラメータiが値(L−1)より小さく上記不等式が成立している場合には(S560でYes)、S565に移行して、パラメータiを1加算した値に更新し(i←i+1)、S530に移行する。その後、更新後のパラメータiの値を用いて、S530〜S560の処理を実行する。
【0088】
そして、パラメータiの値が(L−1)となり、不等式i<L−1が成立しなくなると(S560でNo)、S570に移行し、次式に従って、各クラスの組合せ毎のチェルノフ上限CBik[r]の総和CB[r]を算出する。
【0089】
【数25】

周知のようにチェルノフ上限は、2クラス間の問題しか取り扱うことができないため、本実施例では、上述のように総和CB[r]を算出し、第1クラスから第Lクラスまでの各クラス間の重なり具合を数値化する。そして、本実施例では、この総和CB[r]を、次元削減行列Arの良否に関する評価値として取り扱う。具体的には、総和CB[r]が小さい程、次元削減行列Arが良であると取り扱う。
【0090】
なぜなら、総和CB[r]が小さい程、各クラスのサンプル群の重なりが小さく、特徴ベクトルXijが低次元空間Sy上でクラス毎に適切に分離し、同クラスの特徴ベクトルが特定領域に集中していることになるためである。CPU11は、このような特徴を有する総和CB[r](以下、評価値CB[r]とも言う。)を算出すると、当該行列評価処理を終了する。
【0091】
また、S400で行列評価処理を終えると、CPU11は、ユーザから指定された複数の値m[1],…,m[ME]の全てについて次元削減行列Arを算出し行列評価処理を実行したか否かを判断する(S410)。即ち、r≧MEであるか否かを判断する。そして、値m[1],…,m[ME]の全てについて次元削減行列Arを算出し行列評価処理を実行していないと判断すると(S410でNo)、S415に移行し、パラメータrを、1加算した値に更新する(r←r+1)。その後、S377に移行し、値mをm[r]に更新し、m[r]について、S380以降の処理を実行する。
【0092】
そして、ユーザから指定された複数の値m[1],…,m[ME]の全てについて次元削減行列Arを算出し行列評価処理を実行したと判断すると(S410でYes)、CPU11は、S420に移行し、r=1,2,…,MEの夫々に対応する評価値CB[r]の中から、最小値をとる評価値CB[r]を検出し、最小の評価値CB[r]をとるパラメータrの値を特定する。ここでは、特定した最小の評価値CB[r]をとるパラメータrの値を特に、rminと表記する。
【0093】
また、S420での処理を終えると、CPU11は、S430に移行し、最小の評価値CB[rmin]をとる次元削減行列Ar、及び、この次元削減行列Arの算出時に用いたパラメータmの値m[rmin]、及び、次元削減後の値Yij[rmin]、及び、評価値CB[rmin]を、記述してなるデータファイルを生成し、これをハードディスク装置17における上記サンプルデータファイルの読出先ディレクトリに書き込む。尚、ここで、書き込むデータファイルの様式は、S200で書き込むデータファイルの様式と概ね同様であり(図4(b)参照)、高々、評価値CB[rmin]が付加される程度のものである。
【0094】
また、S430での処理を終えると、CPU11は、S435に移行し、上記データファイルに記述した最小の評価値CB[rmin]をとる次元削減行列Arを、表示装置21の画面上に表示すると共に、この次元削減行列Arを用いて各サンプルXijを低次元空間Syに写像したときの値Yij[rmin]の分布を表すグラフを、S205での処理と同様に、表示装置21の画面上に表示する。
【0095】
その後、CPU11は、再演算の実行指令がユーザインタフェース19を通じて入力されているか否かを判断し(S440)、再演算の実行指令が入力されている場合には(S440でYes)、S330に移行する。一方、再演算の実行指令が入力されていないと判断すると(S440でNo)、当該ツールの終了指令が入力されるか、再演算の実行指令が入力されるまで待機し、当該ツールの終了指令が入力されると(S450でYes)、当該次元削減行列演算処理を終了する。
【0096】
以上、第二実施例の情報処理装置1の構成について説明したが、本実施例によれば、チェルノフ上限により、次元削減後の各クラスのサンプル群の重なり具合を数値化して、ユーザから指定された複数の値m[1],…,m[ME]の内、次元削減後の各クラスのサンプル群の重なり具合が最も小さい値m[rmin]を、クラス内分散を定義付ける最適値として採用し、その値m[rmin]を用いて評価関数J[A,m[rmin]]で算出された次元削減行列Aを、選択的に、データファイル及び表示装置21に出力する。
【0097】
従って、本実施例によれば、第一実施例とは異なりS205で表示されるグラフを目視して、最適な次元削減行列Aを探し出す必要がなく、ユーザは、簡単に、最適な次元削減行列Aを求めることができる。
【0098】
よって、本実施例によれば、ユーザは、簡単に高性能なパターン認識装置を構成することができる。
[特許請求の範囲との対応関係]
尚、本発明のサンプル取得手段は、CPU11が実行するS120,S320の処理により実現され、クラス間分散算出手段は、S160,S360の処理により実現されている。また、クラス分散算出手段は、S170,S370の処理により実現され、入力受付手段は、S130,S330の処理により実現されている。この他、行列算出手段は、S180,S380の処理により実現され、低次元化手段は、S190,S390の処理により実現され、評価手段は、S400の処理により実現され、出力手段は、S200,S205,S430,S435の処理により実現されている。
【図面の簡単な説明】
【0099】
【図1】情報処理装置1の構成を表すブロック図である。
【図2】パターン認識装置50の基本構成を表すブロック図である。
【図3】CPU11が実行する次元削減行列演算処理を表すフローチャートである。
【図4】サンプルデータファイルの構成(a)及び出力データファイルの構成(b)を表す説明図である。
【図5】次元削減後の特徴ベクトルの分布を説明した説明図である。
【図6】CPU11が実行する第二実施例の次元削減行列演算処理を表すフローチャートである。
【図7】CPU11が実行する行列評価処理を表すフローチャートである。
【符号の説明】
【0100】
1…情報処理装置、11…CPU、13…ROM、15…RAM、17…ハードディスク装置、19…ユーザインタフェース、21…表示装置、23…ドライブ装置、50…パターン認識装置、51…ベクトル生成部、53…次元削減部、55…パターン認識部

【特許請求の範囲】
【請求項1】
外部から入力された認識対象パターンの特徴ベクトルに、予め定められた次元削減行列を作用させて、前記特徴ベクトルを低次元空間に写像し、前記特徴ベクトルの次元削減後の値に基づき、前記パターンを、予め定められた複数のクラスのいずれかに分類するパターン認識装置
に用いる前記次元削減行列を算出するための演算装置であって、
前記複数のクラスについて、各クラス毎に、クラスに属するパターンの特徴ベクトルを、複数個、サンプルとして取得するサンプル取得手段と、
前記サンプル取得手段が取得した各クラスのサンプル群に基づき、クラス間共分散行列Bを算出するクラス間分散算出手段と、
前記サンプル取得手段が取得した各クラスのサンプル群に基づき、前記各クラスの共分散行列Wi(但し、Wiは、第iクラスの共分散行列を表し、iは、クラスの総数をLとして、値1から値Lまでの整数値を採るものとする。)を算出するクラス分散算出手段と、
クラス内分散を定義付ける値mとして、実数値の入力を受け付ける入力受付手段と、
前記入力受付手段を通じて入力された値mと、前記クラス間分散算出手段により算出されたクラス間共分散行列Bと、前記クラス分散算出手段により算出された各クラスの共分散行列Wiとに基づき、第iクラスの事前確率をPiとした評価関数J1(A,m)又は評価関数J2(A,m)
【数1】

が最大になる次元削減行列Aを、算出する行列算出手段と、
前記行列算出手段により算出された次元削減行列Aを、出力する出力手段と、
を備えることを特徴とする演算装置。
【請求項2】
前記行列算出手段により算出された次元削減行列Aを、前記サンプル取得手段が取得した各サンプルに作用させて、前記各サンプルの次元削減後の値を算出する低次元化手段
を備え、
前記出力手段は、前記行列算出手段により算出された次元削減行列A及び前記低次元化手段の算出結果を表す情報を、出力する構成にされていることを特徴とする請求項1記載の演算装置。
【請求項3】
前記行列算出手段により算出された次元削減行列Aを、前記サンプル取得手段が取得した各サンプルに作用させて、前記各サンプルの次元削減後の値を算出する低次元化手段と、
前記低次元化手段により算出された前記各サンプルの次元削減後の値に基づき、前記行列算出手段が算出した次元削減行列Aの良否を評価する評価手段と、
を備えることを特徴とする請求項1記載の演算装置。
【請求項4】
前記評価手段は、前記低次元化手段により算出された各サンプルの次元削減後の値から求められる各クラスの共分散行列Wi’(但し、Wi’は、次元削減後の第iクラスの共分散行列を表す。)及び平均ベクトルμi’(但し、μi’は、次元削減後の第iクラスに属するサンプルの平均ベクトルを表す。)に基づき、重み付け係数をs、第iクラスの事前確率をPiとした次式
【数2】

に従って、前記行列算出手段が算出した次元削減行列Aによる次元削減後の第iクラス及び第kクラスのサンプル群の重なり具合を表すチェルノフ上限CBikを、クラスの組合せ毎に算出し、
算出したチェルノフ上限CBikに基づき、前記行列算出手段が算出した次元削減行列Aの良否を評価する構成にされていること
を特徴とする請求項3記載の演算装置。
【請求項5】
前記評価手段は、前記各クラスの組合せ毎のチェルノフ上限CBikの総和CB
【数3】

を前記行列算出手段が算出した次元削減行列Aの良否を表す評価値CBとして算出する構成にされていること
を特徴とする請求項4記載の演算装置。
【請求項6】
前記入力受付手段は、前記クラス内分散を定義付ける値mとして、複数の値を取得可能な構成にされ、
前記行列算出手段は、前記入力受付手段が取得した値m毎に、前記評価関数J1(A,m)又は前記評価関数J2(A,m)が最大になる次元削減行列Aを、算出する構成にされ、
前記評価手段は、前記入力受付手段が取得した値m毎に、前記行列算出手段が算出した次元削減行列Aの良否を評価する構成にされ、
更に、
前記出力手段は、前記評価手段の評価結果に従って、前記行列算出手段が算出した複数の次元削減行列Aの内、評価が最良の次元削減行列Aを選択的に、出力する構成にされていること
を特徴とする請求項3〜請求項5のいずれかに記載の演算装置。
【請求項7】
請求項1〜請求項6のいずれかに記載の演算装置としての機能を、コンピュータに実現させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate