(57)【特許請求の範囲】
【請求項１】
各クラスに属するデータの特徴を示す特徴ベクトルの損失をクラスごとに計算する損失計算手段と、
クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算する損失差計算手段と、
前記損失計算手段がクラスごとに計算した損失の総和と、前記各クラス間の損失の差の総和とに基づいて、認識辞書を作成する認識辞書作成手段と、
前記認識辞書を用いてデータのパターンを識別するパターン識別手段とを備え、
前記認識辞書作成手段は、入力された特徴ベクトルをもとに、前記損失計算手段が計算したクラスごとの損失の総和と、前記損失差計算手段が計算した各クラス間の損失の差の総和との和が最小になるように認識辞書を修正し、
パターン識別手段は、修正された認識辞書を用いてデータのパターンを識別する
ことを特徴とするパターン認識装置。
【請求項２】
損失計算手段は、特徴ベクトルが属するクラスが識別誤りである度合いを示す危険度の総和をもとにクラスごとの損失を計算する
請求項１記載のパターン認識装置。
【請求項３】
損失計算手段は、各クラスの損失をカーネル関数を用いて計算し、
パターン識別手段は、前記カーネル関数に基づいて作成された認識辞書を用いてデータのパターンを識別する
請求項１または請求項２に記載のパターン認識装置。
【請求項４】
認識対象になるデータとして入力されたデータから特徴ベクトルを抽出する特徴ベクトル抽出手段を備え、
損失計算手段は、前記特徴ベクトル抽出手段が抽出した特徴ベクトルの損失をクラスごとに計算し、
パターン識別手段は、前記特徴ベクトル抽出手段が抽出した特徴ベクトルのパターンを認識辞書を用いて識別する
請求項１から請求項３のうちのいずれか１項に記載のパターン認識装置。
【請求項５】
データのパターンを認識するパターン認識装置が用いる認識辞書を作成する認識辞書作成装置であって、
各クラスに属するデータの特徴を示す特徴ベクトルの損失をクラスごとに計算する損失計算手段と、
クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算する損失差計算手段と、
前記損失計算手段がクラスごとに計算した損失の総和と、前記各クラス間の損失の差の総和とに基づいて、認識辞書を作成する認識辞書作成手段とを備え、
前記認識辞書作成手段は、入力された特徴ベクトルをもとに、前記損失計算手段が計算したクラスごとの損失の総和と、前記損失差計算手段が計算した各クラス間の損失の差の総和との和が最小になるように認識辞書を修正する
ことを特徴とする認識辞書作成装置。
【請求項６】
損失計算手段は、特徴ベクトルが属するクラスが識別誤りである度合いを示す危険度の総和をもとにクラスごとの損失を計算する
請求項５記載の認識辞書作成装置。
【請求項７】
各クラスに属するデータの特徴を示す特徴ベクトルの損失をクラスごとに計算し、
クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算し、
クラスごとに計算された損失の総和と、前記クラス間の損失の差の総和とに基づいて、認識辞書を作成し、
入力された特徴ベクトルをもとに、クラスごとに計算された損失の総和と、前記クラス間の損失の差の総和との和が最小になるように認識辞書を修正し、
修正された認識辞書を用いてデータのパターンを識別する
ことを特徴とするパターン認識方法。
【請求項８】
データのパターンを認識するパターン認識装置が用いる認識辞書を作成する認識辞書作成方法であって、
各クラスに属するデータの特徴を示す特徴ベクトルの損失をクラスごとに計算し、
クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算し、
クラスごとに計算された損失の総和と、前記各クラス間の損失の差の総和とに基づいて、認識辞書を作成し、
入力された特徴ベクトルをもとに、クラスごとに計算された損失の総和と、前記各クラス間の損失の差の総和との和が最小になるように認識辞書を修正する
ことを特徴とする認識辞書作成方法。
【請求項９】
コンピュータに、
各クラスに属するデータの特徴を示す特徴ベクトルの損失をクラスごとに計算する損失計算処理、
クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算する損失差計算処理、
前記損失計算処理でクラスごとに計算した損失の総和と、前記各クラス間の損失の差の総和とに基づいて、認識辞書を作成する認識辞書作成処理、および、
前記認識辞書を用いてデータのパターンを識別するパターン識別処理を実行させ、
前記認識辞書作成処理で、入力された特徴ベクトルをもとに、前記損失計算処理で計算したクラスごとの損失の総和と、前記損失差計算処理で計算した各クラス間の損失の差の総和との和が最小になるように認識辞書を修正させ、
パターン識別処理で、修正された認識辞書を用いてデータのパターンを識別させる
ことを特徴とするパターン認識プログラム。
【請求項１０】
データのパターンを認識するパターン認識装置が用いる認識辞書を作成するコンピュータに適用される認識辞書作成プログラムであって、
前記コンピュータに、
各クラスに属するデータの特徴を示す特徴ベクトルの損失をクラスごとに計算する損失計算処理、
クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算する損失差計算処理、および、
前記損失計算処理でクラスごとに計算した損失の総和と、前記各クラス間の損失の差の総和とに基づいて、認識辞書を作成する認識辞書作成処理を実行させ、
前記認識辞書作成処理で、入力された特徴ベクトルをもとに、前記損失計算処理で計算したクラスごとの損失の総和と、前記損失差計算処理で計算した各クラス間の損失の差の総和との和が最小になるように認識辞書を修正させる
ことを特徴とする認識辞書作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力されるデータのパターンを認識するパターン認識装置、パターン認識方法、パターン認識用プログラム、及び、これらのパターン認識に用いられる認識辞書を作成する認識辞書作成装置、認識辞書作成方法及び認識辞書作成プログラムに関する。
【背景技術】
【０００２】
入力データを２つのグループに分類する一般的な方法として、特許文献１及び非特許文献１に記載された技術が知られている。【０００３】
特許文献１に記載されたソフトマージン分類システムは、トレーニングセット内のすべてのデータベクトルにおける重量ベクトルおよびバイアスを含むパラメータを決定し、複数の制約をもとに各データベクトルにおけるスラック変数の最小非負数を決定する。また、特許文献１に記載されたソフトマージン分類システムは、費用関数の最小値を複数の制約を満たすように決定する。【０００４】
また、非特許文献１に記載された方法は、入力データを線形分離できない場合に、パターンを有限もしくは無限次元の特徴空間へ写像し、特徴空間上で線形分離を行うものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−８７５７２号公報（段落０００９）
【非特許文献】
【０００６】
【非特許文献１】C. Cortes and V.N. Vapnik, "Support vector Networks," Machine Learning, vol.20, pp.273-297, 1995
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１及び非特許文献１記載の分類方法を用いた一般的なパターン認識装置について説明する。図１７は、一般的なパターン認識装置を示す説明図である。図１７に示すパターン認識装置は、データ入力部２０１と、特徴抽出部２０２と、認識辞書作成部２０３と、識別部２０６と、結果出力部２０８とを備えている。また、認識辞書作成部２０３は、損失計算部２０４と、マージン計算部２０５とを含む。【０００８】
学習と呼ばれる認識辞書を作成する段階において、データ入力部２０１から入力されたデータを特徴抽出部２０２がｄ次元の特徴ベクトルに変換し、認識辞書作成部２０３が認識辞書２０７を作成する。データを認識する段階においては、データ入力部２０１から入力されたデータを特徴抽出部２０２がｄ次元の特徴ベクトルに変換し、識別部２０６が認識辞書２０７を用いてデータを識別後、結果出力部２０８が識別結果を出力する。【０００９】
なお、認識辞書作成部２０３は、損失計算部２０４が計算した損失と、マージン計算部２０５が計算したマージンの逆数とを足し合わせた評価関数が最小になるように認識辞書２０７を作成する。【００１０】
図１８は、線形分離可能なデータから認識辞書を作成する処理を示す説明図である。まず、データ集合が線形分離可能な場合について図１８を用いて説明する。図１８に示す黒丸（以下「●」と記す。）は、負のクラスに属するデータを示し、白丸（以下、「○」と記す。）は、正のクラスに属するデータを示す。一般的なパターン認識装置では、負のデータと正のデータの間のマージンが最大になる平行なマージン境界（すなわち、実線３０２及び実線３０３）を求め、これらから等距離にある破線３０１を識別境界とする認識辞書を作成する。【００１１】
次に、データ集合が線形分離不可能な場合について図１９を用いて説明する。図１９は、線形分離不可能なデータから認識辞書を作成する処理を示す説明図である。図１８に示す内容と同様、実線４０２及び実線４０３は平行なマージン境界であり、破線４０１はこれらから等距離にある識別境界である。しかし、図１８に示す場合と異なり、四角で囲ったデータ４０６，４０７がデータの集合に含まれるため、線形分離することはできない。【００１２】
このようにデータ集合が線形分離不可能な場合、一般的なパターン認識装置では、認識辞書作成部２０３が「●」で示すデータのマージン境界（すなわち、実線４０２）からの逸脱量４０４と、「○」で示すデータのマージン境界（すなわち、実線４０３）からの逸脱量４０５との総和を損失として計算する。そして、認識辞書作成部２０３は、この損失をなるべく少なく、かつマージンをなるべく大きくするようなマージン境界及び識別境界を有するように認識辞書を作成する。このとき、認識辞書作成部２０３は、式１で定義される値Ｌを最小化する識別境界を求める。【００１３】
【数１】
0005621787.tif 000002
【００１４】
なお、式１に示す係数Ｃは、マージンと損失のバランスを決定するパラメータであり、その値は、交差検定法などにより試行錯誤的に決定される。【００１５】
しかし、一般的なパターン認識装置を用いて入力データを各グループに分類する方法では、学習に用いるデータがノイズを含む場合やデータ数が少ない場合、未学習の新たなデータに対する識別精度が低下してしまうという問題がある。これについて、図２０及び図２１を用いて、説明する。図２０は、線形分離不可能なデータの集合を示す説明図である。【００１６】
図２０に示すデータ５０４は、ノイズによって本来の分布から離れた位置に存在しているデータ、もしくは、データ数が少ないために分布から離れているように見えるデータである。この場合、一般的なパターン認識装置は、データ間のマージンを最大化する実線５０２及び実線５０３から等しい位置に識別境界（破線５０１）を設定する。【００１７】
ここで、図２０に示すデータ集合に未学習の新たなデータが追加された場合について説明する。図２１は、図２０に示すデータ集合に未学習の新たなデータが追加された場合を示す説明図である。図２１に示す破線６０２の位置に識別境界が設定されれば、「○」で示すデータの誤り数が１、「●」で示すデータの誤り数が１になり、誤りの総数は２になる。しかし、一般的なパターン認識装置が用いる方法では、破線６０１の位置に識別境界が設定されるため、「○」で示すデータの誤り数が３（すなわち、誤りの総数が３）になってしまい、識別精度が低下してしまうという問題がある。このように、学習に用いるデータがノイズを含む場合や、データ数が少ない場合であっても、未学習の新たなデータに対して、高い識別精度を実現できることが望ましい。【００１８】
そこで、本発明は、学習に用いるデータがノイズを含む場合や、データ数が少ない場合であっても、未学習の新たなデータに対して、高い識別精度でパターン認識を行うことができるパターン認識装置、パターン認識方法、パターン認識用プログラム、及び、これらのパターン認識に用いられる認識辞書を作成する認識辞書作成装置、認識辞書作成方法及び認識辞書作成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明によるパターン認識装置は、各クラスに属するデータの特徴を示す特徴ベクトルの損失をクラスごとに計算する損失計算手段と、クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算する損失差計算手段と、損失計算手段がクラスごとに計算した損失の総和と、各クラス間の損失の差の総和とに基づいて、認識辞書を作成する認識辞書作成手段と、認識辞書を用いてデータのパターンを識別するパターン識別手段とを備え、認識辞書作成手段が、入力された特徴ベクトルをもとに、損失計算手段が計算したクラスごとの損失の総和と、損失差計算手段が計算した各クラス間の損失の差の総和との和が最小になるように認識辞書を修正し、パターン識別手段が、修正された認識辞書を用いてデータのパターンを識別することを特徴とする。【００２０】
本発明による認識辞書作成装置は、データのパターンを認識するパターン認識装置が用いる認識辞書を作成する認識辞書作成装置であって、各クラスに属するデータの特徴を示す特徴ベクトルの損失をクラスごとに計算する損失計算手段と、クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算する損失差計算手段と、損失計算手段がクラスごとに計算した損失の総和と、各クラス間の損失の差の総和とに基づいて、認識辞書を作成する認識辞書作成手段とを備え、認識辞書作成手段が、入力された特徴ベクトルをもとに、損失計算手段が計算したクラスごとの損失の総和と、損失差計算手段が計算した各クラス間の損失の差の総和との和が最小になるように認識辞書を修正することを特徴とする。【００２１】
本発明によるパターン認識方法は、各クラスに属するデータの特徴を示す特徴ベクトルの損失をクラスごとに計算し、クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算し、クラスごとに計算された損失の総和と、クラス間の損失の差の総和とに基づいて、認識辞書を作成し、入力された特徴ベクトルをもとに、クラスごとに計算された損失の総和と、クラス間の損失の差の総和との和が最小になるように認識辞書を修正し、修正された認識辞書を用いてデータのパターンを識別することを特徴とする。【００２２】
本発明による認識辞書作成方法は、データのパターンを認識するパターン認識装置が用いる認識辞書を作成する認識辞書作成方法であって、各クラスに属するデータの特徴を示す特徴ベクトルの損失をクラスごとに計算し、クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算し、クラスごとに計算された損失の総和と、各クラス間の損失の差の総和とに基づいて、認識辞書を作成し、入力された特徴ベクトルをもとに、クラスごとに計算された損失の総和と、各クラス間の損失の差の総和との和が最小になるように認識辞書を修正することを特徴とする。【００２３】
本発明によるパターン認識プログラムは、コンピュータに、各クラスに属するデータの特徴を示す特徴ベクトルの損失をクラスごとに計算する損失計算処理、クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算する損失差計算処理、損失計算処理でクラスごとに計算した損失の総和と、各クラス間の損失の差の総和とに基づいて、認識辞書を作成する認識辞書作成処理、および、認識辞書を用いてデータのパターンを識別するパターン識別処理を実行させ、認識辞書作成処理で、入力された特徴ベクトルをもとに、損失計算処理で計算したクラスごとの損失の総和と、損失差計算処理で計算した各クラス間の損失の差の総和との和が最小になるように認識辞書を修正させ、パターン識別処理で、修正された認識辞書を用いてデータのパターンを識別させることを特徴とする。【００２４】
本発明による認識辞書作成プログラムは、データのパターンを認識するパターン認識装置が用いる認識辞書を作成するコンピュータに適用される認識辞書作成プログラムであって、コンピュータに、各クラスに属するデータの特徴を示す特徴ベクトルの損失をクラスごとに計算する損失計算処理、クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算する損失差計算処理、および、損失計算処理でクラスごとに計算した損失の総和と、各クラス間の損失の差の総和とに基づいて、認識辞書を作成する認識辞書作成処理を実行させ、認識辞書作成処理で、入力された特徴ベクトルをもとに、損失計算処理で計算したクラスごとの損失の総和と、損失差計算処理で計算した各クラス間の損失の差の総和との和が最小になるように認識辞書を修正させることを特徴とする。
【発明の効果】
【００２５】
本発明によれば、学習に用いるデータがノイズを含む場合や、データ数が少ない場合であっても、未学習の新たなデータに対して、高い識別精度でパターン認識を行うことができる。
【図面の簡単な説明】
【００２６】
【図１】本発明によるパターン認識装置の一実施形態を示すブロック図である。
【図２】認識辞書を作成する処理の例を示すフローチャートである。
【図３】認識辞書を用いた認識処理の例を示すフローチャートである。
【図４】識別境界を決定する動作の例を示す説明図である。
【図５】識別境界を決定する動作の例を示す説明図である。
【図６】識別境界を決定する動作の例を示す説明図である。
【図７】識別境界を決定する動作の例を示す説明図である。
【図８】識別境界を決定する動作の例を示す説明図である。
【図９】識別境界を決定する動作の例を示す説明図である。
【図１０】認識辞書を作成する処理の例を示すフローチャートである。
【図１１】クラス１の連続損失を計算する処理の例を示すフローチャートである。
【図１２】クラス２の連続損失を計算する処理の例を示すフローチャートである。
【図１３】評価値を計算する処理の例を示すフローチャートである。
【図１４】１つの入力データに対して行われる識別処理の例を示すフローチャートである。
【図１５】本発明によるパターン認識装置の最小構成の例を示すブロック図である。
【図１６】本発明による認識辞書作成装置の最小構成の例を示すブロック図である。
【図１７】一般的なパターン認識装置を示す説明図である。
【図１８】線形分離可能なデータから認識辞書を作成する処理を示す説明図である。
【図１９】線形分離不可能なデータから認識辞書を作成する処理を示す説明図である。
【図２０】線形分離不可能なデータの集合を示す説明図である。
【図２１】データ集合に未学習の新たなデータが追加された場合を示す説明図である。
【発明を実施するための形態】
【００２７】
以下、本発明の実施形態を図面を参照して説明する。
【００２８】
図１は、本発明によるパターン認識装置の一実施形態を示すブロック図である。本発明におけるパターン認識装置は、データ入力部１０１と、特徴抽出部１０２と、認識辞書作成部１０３と、識別部１０６と、結果出力部１０８とを備えている。また、認識辞書作成部１０３は、連続損失計算部１０４と、損失差計算部１０５と、認識辞書決定部１０９とを含む。
【００２９】
データ入力部１０１は、パターン認識装置に入力された認識対象のデータを特徴抽出部１０２に通知する。認識対象のデータとしては、例えば、カメラで撮影された画像データなどが挙げられる。
【００３０】
特徴抽出部１０２は、データ入力部１０１から通知されたデータをもとにｄ個の特徴値（以下、ｄ次元特徴ベクトルと記すこともある。）を抽出する。特徴抽出部１０２が行う抽出処理の一例として、画像データを白黒濃淡画像に変換した後、画像全体を縦１０×横１０の領域に分割し、各領域内で画像の輝度値の平均を求めることで、１００次元の特徴ベクトルを得る方法が挙げられる。ただし、特徴抽出部１０２が多次元の特徴ベクトルを抽出する方法は、上述の方法に限定されない。入力されたデータから多次元の特徴ベクトルを抽出する方法は広く知られているため、詳細な説明は省略する。
【００３１】
認識辞書作成部１０３は、「学習」と呼ばれる認識辞書１０７を作成する段階において、特徴抽出部１０２が抽出したｄ次元特徴ベクトルを連続損失計算部１０４及び損失差計算部１０５に入力し、その計算結果に基づき認識辞書１０７を作成する。
【００３２】
連続損失計算部１０４は、ｄ次元特徴ベクトルをもとにクラスごとの損失を計算する。そして、連続損失計算部１０４は、計算したクラスごとの損失の総和を計算する。なお、以下の説明では、一般的な方法で計算される損失と区別するため、連続損失計算部１０４が計算する損失を連続損失と記す。
【００３３】
損失差計算部１０５は、ｄ次元特徴ベクトルをもとに一のクラスの損失と他のクラスの損失との差分を計算する。そして、損失差計算部１０５は、クラス間の全差分の総和を計算する。
【００３４】
認識辞書決定部１０９は、連続損失計算部１０４が計算した連続損失の総和と、損失差計算部１０５が計算したクラス間の損失の差の総和とをもとに、作成する認識辞書を決定する。
【００３５】
識別部１０６は、データを認識する段階において、特徴抽出部１０２が抽出したｄ次元特徴ベクトルと、認識辞書１０７とを用いてデータパターンの識別処理を行い、識別結果を結果出力部１０８に通知する。例えば、識別部１０６は、入力されたデータのパターンを識別して、データの属するクラスを認識してもよい。なお、ｄ次元特徴ベクトルと認識辞書を用いた識別方法は広く知られているため、詳細な説明は省略する。
【００３６】
結果出力部１０８は、識別部１０６から受け取った識別結果を出力する。
【００３７】
次に、認識辞書作成部１０３の動作について、以下詳細に説明する。認識辞書作成部１０３における連続損失計算部１０４は、ｋ番目のクラスに対する連続損失を、以下に例示する式２にしたがって計算する。
【００３８】
【数２】
0005621787.tif 000003
【００３９】
式２におけるＰｋは、ｋ番目のクラスに関する事前確率、Ｎｋはｋ番目のクラスに属する特徴ベクトルの数、ベクトルｘｋｎはｋ番目のクラスに属するｎ番目の特徴ベクトル、ベクトルαは認識辞書１０７として使用される識別器パラメータである。
【００４０】
ここで、事前確率とは、正解が分かっているデータに関する存在確率、もしくは、出現頻度を示す。例えば、全データの数をＮとしたとき、そのデータの中にクラスｋのデータが含まれている割合がクラスｋの事前確率になる。事前確率には所望の値として、例えば、統計的に既に分かっている値を予め設定すればよい。例えば、全特徴ベクトル数がＮ、クラス数がＫの場合、クラスｋの事前確率をＰｋ＝Ｎｋ／Ｎと設定してもよい。ただし、Ｎ＝Ｎ１＋・・・＋ＮＫである。なお、この場合の事前確率Ｐｋは、クラスｋに属すると正解付けされた学習データの、全学習データに対する割合である。
【００４１】
また、識別器パラメータは、利用する識別器に応じて定義される識別に関わるパラメータである。例えば、識別関数にカーネル関数が用いられる場合、式２に例示するパラメータαとして、各カーネル関数を重み付けする際に用いられる係数を用いてもよい。
【００４２】
また、式２に例示する関数ｒ（以下、ｒ（・）と記すこともある。）は、引数として与えられる特徴ベクトルが識別誤りになる度合いを示す危険度を表し、識別誤りの危険度が高いほど高い値を返す関数である。例えば、ｋ番目のクラスと特徴ベクトルｘとの類似度を計算する識別関数ｇｋ（以下、ｇｋ（・）と記すこともある。）を以下に示す関数とする。
【００４３】
【数３】
0005621787.tif 000004
【００４４】
すなわち、識別関数ｇｋは、ｋ番目のクラスに属する度合いが高くなるほど算出する値が大きくなる関数である。また、ベクトルｘｋｎに対する認識が最も誤りやすいクラスをｊ番目のクラスとし、ｊ番目のクラスと特徴ベクトルｘとの類似度を計算する識別関数ｇｊ（以下、ｇｊ（・）と記すこともある。）を以下に示す関数とする。
【００４５】
【数４】
0005621787.tif 000005
【００４６】
このとき、連続損失計算部１０４は、以下に例示する式３〜式６を用いて特徴ベクトルｘが識別誤りになる危険度を計算する。
【００４７】
【数５】
0005621787.tif 000006
【００４８】
【数６】
0005621787.tif 000007
【００４９】
【数７】
0005621787.tif 000008
【００５０】
【数８】
0005621787.tif 000009
【００５１】
なお、関数ｆ（以下、ｆ（・）と記すこともある。）は任意の単調増加関数であり、例えば、以下に例示する式７のように定義される。
【００５２】
【数９】
0005621787.tif 000010
【００５３】
ここで、β及びξはハイパーパラメータであり、所望の値が設定される。β及びξに対しては、一般的な識別器において値を設定する方法と同様の方法を用いて値を設定すればよい。このように、連続損失計算部１０４は、クラスｋに属する入力ベクトルｘがどの程度間違えやすいかを表す危険度の総和を計算することによりクラスｋに対する連続損失を計算する。
【００５４】
なお、上記説明では、連続損失計算部１０４が、ｋ番目のクラスと特徴ベクトルｘとの類似度を計算する識別関数ｇｋを用いて危険度を算出する場合について説明した。ただし、危険度を計算する際に用いる識別関数ｇｋは、ｋ番目のクラスと特徴ベクトルｘとの類似度を計算する関数に限定されない。
【００５５】
例えば、連続損失計算部１０４は、ｋ番目のクラスと特徴ベクトルｘとの距離を計算する識別関数を用いて危険度を計算してもよい。なお、この場合には、識別関数により算出される出力値が小さい（すなわち、距離が近い）ほど、対象のクラスに属する度合いが高くなる。そのため、連続損失計算部１０４は、式３から式６に例示するｇｋ（・）とｇｊ（・）とを入れ替えた式を用いて危険度を計算すればよい。
【００５６】
次に、連続損失計算部１０４は、クラスごとに計算した連続損失の総和を計算する。すなわち、クラス数をＫとすると、連続損失計算部１０４は、以下に例示する式８を用いて連続損失の総和を計算する。
【００５７】
【数１０】
0005621787.tif 000011
【００５８】
次に、損失差計算部１０５は、クラス間の損失の差の総和を計算する。例えば、損失差計算部１０５は、ｊ番目のクラスとｋ番目のクラスの損失の差の総和を、以下に例示する式９を用いて計算する。
【００５９】
【数１１】
0005621787.tif 000012
【００６０】
次に、認識辞書決定部１０９は、連続損失計算部１０４が計算した連続損失の総和と、損失差計算部１０５が計算したクラス間の損失の差の総和との重み付き線形和が最小になる識別器パラメータαを決定する。例えば、認識辞書決定部１０９は、連続損失計算部１０４が式８を用いて計算した連続損失と、損失差計算部１０５が式９を用いて計算したクラス間の損失の差の総和との重み付き線形和が最小になる識別器パラメータαを決定する。このとき、認識辞書決定部１０９は、以下に例示する式１０により算出される値Ｌ（α）が最小になるように識別器パラメータαを決定してもよい。
【００６１】
【数１２】
0005621787.tif 000013
【００６２】
ここで、λはハイパーパラメータである。認識辞書決定部１０９は、例えば、クロスバリデーションによってＬ（α）が最小になる識別器パラメータαを決定してもよい。
【００６３】
識別部１０６は、このように決定された識別器パラメータαを用いて入力されたデータの識別処理を行う。したがって、認識辞書決定部１０９が識別器パラメータαを決定することは、入力されるデータの識別処理に用いられる認識辞書を作成することを意味する。
【００６４】
また、新たなデータが入力されると、認識辞書決定部１０９は、上記方法により、入力された新たなデータをもとに、評価値Ｌ（α）が最小になるように識別器パラメータαを修正する。このことから、認識辞書決定部１０９は、入力されたデータをもとに、評価値Ｌ（α）が最小になるように認識辞書を修正しているとも言える。
【００６５】
データ入力部１０１と、特徴抽出部１０２と、認識辞書作成部１０３（より詳しくは、連続損失計算部１０４と、損失差計算部１０５と、認識辞書決定部１０９）と、識別部１０６と、結果出力部１０８とは、プログラム（パターン認識プログラム）に従って動作するコンピュータのＣＰＵによって実現される。例えば、プログラムは、パターン認識装置の記憶部（図示せず）に記憶され、ＣＰＵは、そのプログラムを読み込み、プログラムに従って、データ入力部１０１、特徴抽出部１０２、認識辞書作成部１０３（より詳しくは、連続損失計算部１０４、損失差計算部１０５及び認識辞書決定部１０９）、識別部１０６及び結果出力部１０８として動作してもよい。また、データ入力部１０１と、特徴抽出部１０２と、認識辞書作成部１０３（より詳しくは、連続損失計算部１０４と、損失差計算部１０５と、認識辞書決定部１０９）と、識別部１０６と、結果出力部１０８とは、それぞれが専用のハードウェアで実現されていてもよい。
【００６６】
また、認識辞書作成部１０３（より詳しくは、連続損失計算部１０４と、損失差計算部１０５と、認識辞書決定部１０９）が、一つの装置（認識辞書作成装置）として動作してもよい。
【００６７】
次に、動作について説明する。まず、認識辞書を作成する段階の処理について説明する。図２は、認識辞書を作成する処理の例を示すフローチャートである。以下の説明では、評価関数として式１０を用いるものとする。また、以下の説明では、認識辞書を作成することを学習すると記すこともある。
【００６８】
まず、学習用（すなわち、認識辞書を作成する際に用いる）データセットを用いて、認識辞書の初期化を行う（ステップＳ７０１）。具体的には、認識辞書作成部１０３は、識別器パラメータαの初期値を設定し、パターン認識装置を学習に使用できる状態にしておく。また、認識辞書作成部１０３は、後述の処理で比較対象になる変数Ｌに対し、十分大きな値を設定しておく。
【００６９】
次に、データ入力部１０１は、入力データを読み込み（ステップＳ７０２）、特徴抽出部１０２に通知する。特徴抽出部１０２は、入力データから特徴抽出を行うことでｄ次元の特徴ベクトルに変換する（ステップＳ７０３）。認識辞書決定部１０９は、認識辞書である識別器パラメータαを、式１０で定義される評価関数Ｌ（α）の値が減少するように修正する（ステップＳ７０４及びステップＳ７０５）。具体的には、認識辞書決定部１０９は、連続損失計算部１０４が計算した連続損失の総和と、損失差計算部１０５が計算したクラス間の損失の差の総和との重み付き線形和が最小になるように識別器パラメータαを修正する。
【００７０】
認識辞書決定部１０９は、評価関数Ｌ（α）の値と変数Ｌの値とを比較する。そして、評価関数Ｌ（α）の値と変数Ｌの値との差が十分小さい（すなわち、一定の値に収束している）場合（ステップＳ７０６におけるＹｅｓ）、認識辞書決定部１０９は、このときのαを識別器パラメータとして決定して処理を終了する。一方、評価関数Ｌ（α）の値と変数Ｌの値との差が十分小さいといえない（すなわち、一定の値に収束していない）場合（ステップＳ７０６におけるＮｏ）、認識辞書決定部１０９は、このときのＬ（α）の値を変数Ｌに代入し、ステップＳ７０４以降の処理が繰り返される。
【００７１】
次に、データを認識する段階の処理について説明する。図３は、認識辞書を用いた認識処理の例を示すフローチャートである。まず、識別部１０６は、認識辞書の初期化を行う（ステップＳ８０１）。具体的には、識別部１０６は、認識辞書作成部１０３が作成した認識辞書を使用できる状態にする。次に、データ入力部１０１は、入力データを読み込み（ステップＳ８０２）、特徴抽出部１０２に通知する。特徴抽出部１０２は、入力データから特徴抽出を行うことでｄ次元の特徴ベクトルに変換する（ステップＳ８０３）。識別部１０６は、認識辞書を用いて変換された特徴ベクトルの識別処理を行い（ステップＳ８０４）、識別結果を結果出力部１０８に通知する。そして、結果出力部１０８は、識別部１０６から受け取った識別結果を出力する（ステップＳ８０５）。
【００７２】
識別部１０６は、入力データの読み込みが終了しているか否か判定する（ステップＳ８０６）。入力データの読み込みが終了していない場合（ステップＳ８０６におけるＮｏ）、ステップＳ８０２以降の処理が繰り返される。一方、入力データの読み込みが終了している場合（ステップＳ８０６におけるＹｅｓ）、識別部１０６は、処理を終了する。
【００７３】
以上のように、本実施形態によれば、連続損失計算部１０４が、各クラスに属するデータの特徴を示す特徴ベクトルの連続損失をクラスごとに計算する。さらに、損失差計算部１０５が、クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算する。そして、認識辞書決定部１０９が、クラスごとに計算された損失の総和と、クラス間の損失の差の総和とに基づいて、認識辞書を作成する。さらに、認識辞書決定部１０９が、入力された特徴ベクトルをもとに、クラスごとに計算された損失の総和と、クラス間の損失の差の総和との和が最小になるように認識辞書を修正する。そして、識別部１０６が、修正された認識辞書を用いてデータのパターンを識別する。そのため、学習に用いるデータがノイズを含む場合や、データ数が少ない場合であっても、未学習の新たなデータに対して、高い識別精度でパターン認識を行うことができる。
【００７４】
すなわち、本実施形態では、連続損失を小さくするとともにクラス間の損失の差が小さくなるように認識辞書を決定するため、学習に用いるデータがノイズを含む場合やデータ数が少ない場合でも、未学習の新たなデータに対して高い識別精度を実現することができる。この効果について、以下、具体例を用いて詳しく説明する。以下の具体例では、説明を容易にするため、クラス数が２つの場合について説明する。クラス数が２つの場合、上述の式１０は、以下の式１１のように定義することができる。
【００７５】
【数１３】
0005621787.tif 000014
【００７６】
図４及び図５は、図１８に示す状態のデータに対して識別境界を決定する動作の例を示す説明図である。以下の説明では、図中の黒丸（以下、「●」と記す。）をクラス１に属するデータ、白丸（以下、「○」と記す。）をクラス２に属するデータであるとする。図４に示す破線９０１は、識別器が設定する識別境界を示す。実線９０２は、破線９０１からクラス１寄りに、ある一定距離ξの位置に設定されたマージン境界を示す。また、図４において網掛けで示した領域に含まれる「●」のデータの連続損失の総和が、クラス１の連続損失Ｌ１（α）になる。
【００７７】
同様に、図５に示す破線１００１は、図４における破線９０１と同じ位置に設定される識別境界を示し、実線１００２は、破線１００１からクラス２寄りに、同じく一定距離ξの位置に設定されたマージン境界を示す。また、図５において網掛けで示した領域に含まれる「○」のデータの連続損失の総和が、クラス２の連続損失Ｌ２（α）になる。
【００７８】
図４及び図５に示すように、クラス１の連続損失Ｌ１（α）は、「●」で示すクラス１のデータから識別境界が遠ざかるほど小さな値になる。また、クラス２の連続損失Ｌ２（α）は、「○」で示すクラス２のデータから識別境界が遠ざかるほど小さな値になる。
【００７９】
説明を簡略にするため、式２、式３、式７及び式１１を用いる場合について以下説明する。ここで、式２における事前確率の値をＰｋ＝Ｎｋとし、式７におけるβの値を十分大きな値に設定する。この場合、クラス１の連続損失Ｌ１（α）は、図４における網掛け領域に含まれる「●」の数、クラス２の連続損失Ｌ２（α）は、図５における網掛け領域に含まれる「○」の数にほぼ等しくなる。
【００８０】
ここで、式１１の右辺第１項及び第２項を最小化するαを求めることは、これら（すなわち、連続損失）の総和を最小化する識別境界を求めることを意味する。また、式１１の右辺第３項を最小化するαを求めることは、図４における網掛け領域に含まれる「●」の数と、図５における網掛け領域に含まれる「○」の数が等しくなる識別境界を求めることを意味する。したがって、式１１におけるλの値が十分大きい場合は、図４における網掛け領域に含まれる「●」の数と、図５における網掛け領域に含まれる「○」の数が等しくなる条件の下で、これらの総和を最小化する識別境界を求めることになる。
【００８１】
図６及び図７は、図２０に示す状態のデータに対して識別境界を決定する動作の例を示す説明図である。図６及び図７に示す例では、「○」で示すクラス２のデータのすぐ近くに、「●」で示すクラス１のデータが追加されている。このような場合であっても、図６における網掛け領域に含まれる「●」の数と、図７における網掛け領域に含まれる「○」の数が等しくなる条件の下で、これらの総和を最小化する識別境界が決定される。すなわち、図６に示す破線１１０１、もしくは、図７に示す破線１２０１の位置に識別境界が設定されことになる。
【００８２】
したがって、例えば、図２１に例示するように新たなデータが入力された場合であっても、一般的なパターン認識装置で求められる識別境界よりも、より識別精度の高い識別境界を決定することができる。すなわち、より高い識別精度を実現することができる。
【００８３】
さらに、本実施形態によれば、識別境界とマージン境界との距離ξを小さくすることで、一般的なパターン認識装置によって決定される識別境界と同様の識別境界を得ることもできる。このことについて、図８及び図９を用いて以下説明する。図８及び図９は、図２０に示す状態のデータに対して識別境界を決定する他の動作の例を示す説明図である。
【００８４】
距離ξの値を小さくした場合、図８における網掛け領域に含まれる「●」の数、及び、図９における網掛け領域に含まれる「○」の数が少なくなる。そのため、識別境界付近に存在するデータに強く依存した位置に識別境界（図８における破線１３０１、もしくは、図９における破線１４０１）が設定されることになり、一般的なパターン認識装置で決定される識別境界（例えば、図２１に示す破線６０１）と同様の結果を得ることができる。
【実施例】
【００８５】
以下、具体的な実施例により本発明を説明するが、本発明の範囲は以下に説明する内容に限定されない。以下の説明では、クラス数を２とし、各クラスの識別関数としてカーネル識別関数を用いるものとする。すなわち、クラスｋの識別関数は、以下に例示する式１２のように定義される。【００８６】
【数１４】
0005621787.tif 000015
【００８７】
ここで、ベクトルｘｋｉは、クラスｋに属する学習データであり、αｋｉは識別器パラメータである。また、Ｋはカーネル関数（以下、Ｋ（・）と記すこともある。）であり、以下に例示する式１３のように定義されるガウシアン型のカーネル関数などが用いられる。【００８８】
【数１５】
0005621787.tif 000016
【００８９】
ここで、γ（ただし、γ＞０）は、ガウシアンカーネルの大きさを規定するパラメータであり、γには予め所望の値を設定しておく。また、本実施例では、ｋ番目のクラスに対する連続損失を算出する式として式２及び式６を用いるものとする。また、評価関数として式１１を用いるものとする。【００９０】
本実施例では、初めに、認識辞書を作成する段階の処理について説明する。まず、学習用に複数の入力データを準備し、各入力データをｄ次元の特徴ベクトル（以降、入力ベクトルと記す。）に変換しておく。以下、説明を簡略化するため、説明を簡単にするために、クラス１に属する入力ベクトルを（ｘ［１］,ｘ［２］, ・・・，ｘ［Ｎ１］）、クラス２に属する入力ベクトルを（ｘ［Ｎ１＋１］,ｘ［Ｎ１＋２］, ・・・，ｘ［Ｎ１＋Ｎ２］）と表記する。【００９１】
また、式２の事前確率Ｐｋには、所望の値を設定しておく。例えば、クラス１の事前確率Ｐ１を、Ｐ１＝Ｎ１／Ｎと設定し、クラス２の事前確率Ｐ２を、Ｐ２＝Ｎ２／Ｎと設定する。ただし、Ｎは入力ベクトルの総数であり、Ｎ＝Ｎ１＋Ｎ２を満たす。【００９２】
さらに、クラス１に関する認識辞書として、（α［１］,α［２］，・・・，α［Ｎ１］）を、クラス２に関する認識辞書として（α［Ｎ１＋１］,α２［Ｎ１＋２］，・・・，α２［Ｎ１＋Ｎ２］）をそれぞれ準備し、全ての値に１を設定しておく。また、パラメータ値の変更量を示す微小な値εを準備し、このεの値として、例えば、０．０１を設定しておく。【００９３】
図１０は、本実施例で認識辞書を作成する処理の例を示すフローチャートである。初め、変数Ｌｎｅｗ及びＬｏｌｄに、十分大きな値を設定し（ステップＳ１５０１）、さらに、変数ｉに１を設定しておく（ステップＳ１５０２）。認識辞書作成部１０３は、ｉ番目のパラメータα［ｉ］の値を変数α’に保存し、α［ｉ］をεだけ減少させた後、式１１の評価値Ｌ（α）を計算し、変数Ｌ’に保存する（ステップＳ１５０３）。変数Ｌ’の値が変数Ｌｎｅｗより小さくない場合（ステップＳ１５０４におけるＮｏ）、ステップＳ１５０６に進む。一方、変数Ｌ’の値が変数Ｌｎｅｗより小さい場合（ステップＳ１５０４におけるＹｅｓ）、ステップＳ１５０５に進む。ステップＳ１５０５において、認識辞書作成部１０３は、変数Ｌ’の値を変数Ｌｎｅｗに保存するとともに、変数ｉの値を変数ｊに保存しておく（ステップＳ１５０５）。【００９４】
次に、認識辞書作成部１０３は、変数α’に保存されていた値をα［ｉ］に戻す（ステップＳ１５０６）。変数ｉの値がパラメータの総数Ｎ１＋Ｎ２より小さい場合（ステップＳ１５０７におけるＹｅｓ）、認識辞書作成部１０３は、ｉの値を１だけ増やし（Ｓ１５０８）、その後、Ｓ１５０３に戻って以降の処理を繰り返す。一方、ステップＳ１５０７において、変数ｉの値がパラメータの総数Ｎ１＋Ｎ２より小さくない場合（ステップＳ１５０７におけるＮｏ）、ステップＳ１５０９に進む。【００９５】
変数Ｌｎｅｗの値がＬｏｌｄより小さくない場合（ステップＳ１５０９におけるＮｏ）、処理を終了する。一方、変数Ｌｎｅｗの値がＬｏｌｄより小さい場合（ステップＳ１５０９におけるＹｅｓ）、ステップＳ１５１０に進む。ステップＳ１５１０において、認識辞書作成部１０３は、ＬｏｌｄにＬｎｅｗの値を保存し、ｊ番目のパラメータα［ｊ］の値をεだけ減少するよう変更する（ステップＳ１５１０）。そして、ステップＳ１５０２に戻り、以降の処理を繰り返す。【００９６】
ここで、ステップＳ１５０３において評価値Ｌ（α）を計算する処理について説明する。評価値Ｌ（α）の値は、式１１に例示するように、クラス１とクラス２それぞれの連続損失Ｌ１（α）及びＬ２（α）の値を計算することで得られる。【００９７】
まず、クラス１の連続損失Ｌ１（α）を求める処理を、フローチャートを用いて説明する。図１１は、クラス１の連続損失を計算する処理の例を示すフローチャートである。【００９８】
まず、認識辞書作成部１０３は、変数Ｌ１の値を０、変数ｎの値を１に設定する（ステップＳ１６０１）。さらに、認識辞書作成部１０３は、変数ｉの値を１に、変数Ｇ１の値を０にそれぞれ設定する（ステップＳ１６０２）。次に、認識辞書作成部１０３は、入力ベクトルｘ［ｎ］とｘ［ｉ］を用いて式１３に例示するカーネル関数の値を計算し、計算結果にｉ番目のパラメータα［ｉ］を乗じた値を変数Ｇ１に加算する（ステップＳ１６０３）。【００９９】
ここで、変数ｉの値がＮ１より小さい場合（ステップＳ１６０４におけるＹｅｓ）、認識辞書作成部１０３は、変数ｉの値を１だけ増加させ（ステップＳ１６０５）、ステップＳ１６０３に戻って以降の処理を繰り返す。一方、変数ｉの値がＮ１より小さくない場合（ステップＳ１６０４におけるＮｏ）、ステップＳ１６０６に進む。ステップＳ１６０６において、認識辞書作成部１０３は、ｉの値をＮ１＋１に、Ｇ２の値を０にそれぞれ設定する（ステップＳ１６０６）。【０１００】
次に、認識辞書作成部１０３は、入力ベクトルｘ［ｎ］とｘ［ｉ］を用いて式１３に例示するカーネル関数の値を計算し、計算結果にｉ番目のパラメータα［ｉ］を乗じた値を変数Ｇ２に加算する（ステップＳ１６０７）。ここで、変数ｉの値がＮ１＋Ｎ２より小さい場合（ステップＳ１６０８におけるＹｅｓ）、認識辞書作成部１０３は、変数ｉの値を１だけ増加させ（ステップＳ１６０９）、ステップＳ１６０７に戻って以降の処理を繰り返す。一方、変数ｉの値がＮ１＋Ｎ２より小さくない場合（ステップＳ１６０８におけるＮｏ）、ステップＳ１６１０に進む。【０１０１】
変数Ｇ１に設定された値は、クラス１の識別関数の値であり、変数Ｇ２に設定された値は、クラス２の識別関数の値である。そこで、認識辞書作成部１０３は、式６にしたがって、クラス１に属する入力ベクトルｘ［ｎ］に関する連続損失を求める（ステップＳ１６１０）。変数ｎの値がＮ１より小さい場合（ステップＳ１６１１におけるＹｅｓ）、認識辞書作成部１０３は、変数ｎの値を１だけ増加させ（ステップＳ１６１２）、ステップＳ１６０２に戻って以降の処理を繰り返す。一方、変数ｎの値がＮ１より小さくない場合（ステップＳ１６１１におけるＮｏ）、ステップＳ１６１３に進む。【０１０２】
認識辞書作成部１０３は、式２にしたがって、所望の値に設定された事前確率Ｐ１を変数Ｌ１に乗じた値を計算し、さらに、計算結果をクラス１の入力ベクトル数Ｎ１で割った値を変数Ｌ１に設定する（Ｓ１６１３）。その後、処理を終了する。【０１０３】
次に、クラス２の連続損失Ｌ２（α）を求める処理を、フローチャートを用いて説明する。図１２は、クラス２の連続損失を計算する処理の例を示すフローチャートである。【０１０４】
まず、認識辞書作成部１０３は、変数Ｌ２の値を０、変数ｎの値をＮ１＋１に設定する（ステップＳ１７０１）。さらに、認識辞書作成部１０３は、変数ｉの値を１に、変数Ｇ１の値を０にそれぞれ設定する（ステップＳ１７０２）。次に、認識辞書作成部１０３は、入力ベクトルｘ［ｎ］とｘ［ｉ］を用いて式１３に例示するカーネル関数の値を計算し、計算結果にｉ番目のパラメータα［ｉ］を乗じた値を変数Ｇ１に加算する（ステップＳ１７０３）。【０１０５】
ここで、変数ｉの値がＮ１より小さい場合（ステップＳ１７０４におけるＹｅｓ）、認識辞書作成部１０３は、変数ｉの値を１だけ増加させ（ステップＳ１７０５）、ステップＳ１７０３に戻って以降の処理を繰り返す。一方、変数ｉの値がＮ１より小さくない場合（ステップＳ１７０４におけるＮｏ）、ステップＳ１７０６に進む。ステップＳ１７０６において、認識辞書作成部１０３は、ｉの値をＮ１＋１に、Ｇ２の値を０にそれぞれ設定する（ステップＳ１７０６）。【０１０６】
次に、認識辞書作成部１０３は、入力ベクトルｘ［ｎ］とｘ［ｉ］を用いて式１３に例示するカーネル関数の値を計算し、計算結果にｉ番目のパラメータα［ｉ］を乗じた値を変数Ｇ２に加算する（ステップＳ１７０７）。ここで、変数ｉの値がＮ１＋Ｎ２より小さい場合（ステップＳ１７０８におけるＹｅｓ）、認識辞書作成部１０３は、変数ｉの値を１だけ増加させ（ステップＳ１７０９）、ステップＳ１７０７に戻って以降の処理を繰り返す。一方、変数ｉの値がＮ１＋Ｎ２より小さくない場合（ステップＳ１７０８におけるＮｏ）、ステップＳ１７１０に進む。【０１０７】
クラス１の場合と同様、変数Ｇ１に設定された値は、クラス１の識別関数の値であり、変数Ｇ２に設定された値は、クラス２の識別関数の値である。そこで、認識辞書作成部１０３は、式６にしたがって、クラス２に属する入力ベクトルｘ［ｎ］に関する連続損失を求める（ステップＳ１７１０）。変数ｎの値がＮ１＋Ｎ２より小さい場合（ステップＳ１７１１におけるＹｅｓ）、認識辞書作成部１０３は、変数ｎの値を１だけ増加させ（ステップＳ１７１２）、ステップＳ１７０２に戻って以降の処理を繰り返す。一方、変数ｎの値がＮ１＋Ｎ２より小さくない場合（ステップＳ１７１１におけるＮｏ）、ステップＳ１７１３に進む。【０１０８】
認識辞書作成部１０３は、式２にしたがって、所望の値に設定された事前確率Ｐ２を変数Ｌ２に乗じた値を計算し、さらに、計算結果をクラス２の入力ベクトル数Ｎ２で割った値を変数Ｌ２に設定する（Ｓ１７１３）。その後、処理を終了する。【０１０９】
次に、評価値Ｌ（α）を求める処理を、フローチャートを用いて説明する。図１３は、評価値を計算する処理の例を示すフローチャートである。以下の説明では、式１１にしたがって評価値Ｌ（α）を求める場合について説明する。【０１１０】
まず、認識辞書作成部１０３は、上述の処理で算出された変数Ｌ１と変数Ｌ２とを加算した値を変数Ｌに設定する（ステップＳ１８０１）。また、認識辞書作成部１０３は、上述の処理で算出された変数Ｌ１と変数Ｌ２の差の二乗に所望の値λを乗じた値を、変数Ｌ’に設定する（ステップＳ１８０２）。そして、認識辞書作成部１０３は、ステップＳ１８０１において変数Ｌに設定した値と、ステップＳ１８０２において変数Ｌ’に設定した値とを加算した値を変数Ｌに設定し（ステップＳ１８０３）、処理を終了する。このようにして得られたＬの値が、図１０におけるステップＳ１５０３で評価値Ｌ（α）として用いられる。【０１１１】
以上、認識辞書を作成する段階の処理について説明した、次に、認識辞書を用いてデータを認識する段階の処理について説明する。なお、ここでは、入力データが既定の特徴抽出によりｄ次元の特徴ベクトルｘに変換されているものとする。以降、このように変換された特徴ベクトルを、入力ベクトルと記す。【０１１２】
図１４は、１つの入力データに対して行われる識別処理の例を示すフローチャートである。まず、識別部１０６は、変数ｉの値を１、変数Ｇ１の値を０に設定する（ステップＳ１９０１）。次に、識別部１０６は、入力ベクトルｘとｘ［ｉ］を用いて式１３に例示するカーネル関数の値を計算し、計算結果にｉ番目のパラメータα［ｉ］を乗じた値を変数Ｇ１に加算する（ステップＳ１９０２）。【０１１３】
ここで、変数ｉの値がＮ１より小さい場合（ステップＳ１９０３におけるＹｅｓ）、識別部１０６は、変数ｉの値を１だけ増加させ（ステップＳ１９０４）、ステップＳ１９０２に戻って以降の処理を繰り返す。一方、変数ｉの値がＮ１より小さくない場合（ステップＳ１９０３におけるＮｏ）、ステップＳ１９０５に進む。ステップＳ１９０５において、識別部１０６は、ｉの値をＮ１＋１に、Ｇ２の値を０にそれぞれ設定する（ステップＳ１９０５）。【０１１４】
次に、識別部１０６は、入力ベクトルｘとｘ［ｉ］を用いて式１３に例示するカーネル関数の値を計算し、計算結果にｉ番目のパラメータα［ｉ］を乗じた値を変数Ｇ２に加算する（ステップＳ１９０６）。ここで、変数ｉの値がＮ１＋Ｎ２より小さい場合（ステップＳ１９０７におけるＹｅｓ）、識別部１０６は、変数ｉの値を１だけ増加させ（ステップＳ１９０８）、ステップＳ１９０６に戻って以降の処理を繰り返す。一方、変数ｉの値がＮ１＋Ｎ２より小さくない場合（ステップＳ１９０７におけるＮｏ）、ステップＳ１９０９に進む。【０１１５】
最後に、識別部１０６は、変数Ｇ１の値から変数Ｇ２の値を減じた値（すなわち、Ｇ１−Ｇ２の値）を出力し、入力ベクトルの属するクラスを識別して処理を終了する（ステップＳ１９０９）。ここで、出力値が正の場合、入力ベクトルｘは、クラス１に属すると識別される。一方、出力値が正でない場合、入力ベクトルｘは、クラス２に属すると認識される。【０１１６】
なお、本実施例では、クラス数が２の場合について説明した。ただし、クラス数は２つに限られず、３つ以上であってもよい。また、本実施例では、識別器が式１３で定義されるカーネル関数を用いる場合について説明した。ただし、識別器が用いる関数は、カーネル関数に限定されない。【０１１７】
次に、本発明によるパターン認識装置の最小構成の例を説明する。図１５は、本発明によるパターン認識装置の最小構成の例を示すブロック図である。本発明によるパターン認識装置は、各クラスに属するデータの特徴を示す特徴ベクトルの損失（例えば、連続損失）をクラスごとに計算する（例えば、式８を用いて計算する）損失計算手段８１（例えば、連続損失計算部１０４）と、クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算する（例えば、式９を用いて計算する）損失差計算手段８２（例えば、損失差計算部１０５）と、損失計算手段８１がクラスごとに計算した損失の総和（例えば、式８を用いて計算された連続損失の総和）と、各クラス間の損失の差の総和（例えば、式９を用いて計算されたクラス間の損失の差の総和）とに基づいて、認識辞書を作成する（例えば、識別器パラメータαを決定する）認識辞書作成手段８３（例えば、認識辞書決定部１０９）と、認識辞書を用いてデータのパターンを識別するパターン識別手段８４（例えば、識別部１０６）とを備えている。【０１１８】
認識辞書作成手段８３は、入力された特徴ベクトルをもとに、損失計算手段８１が計算したクラスごとの損失の総和と、損失差計算手段８２が計算した各クラス間の損失の差の総和との和（例えば、式１０で定義される評価関数の評価値Ｌ（α））が最小になるように認識辞書を修正し、パターン識別手段８４は、修正された認識辞書を用いてデータのパターンを識別する。【０１１９】
そのような構成により、学習に用いるデータがノイズを含む場合や、データ数が少ない場合であっても、未学習の新たなデータに対して、高い識別精度でパターン認識を行うことができる。【０１２０】
次に、本発明による認識辞書作成装置の最小構成の例を説明する。図１６は、本発明による認識辞書作成装置の最小構成の例を示すブロック図である。本発明による認識辞書作成装置は、データのパターンを認識するパターン認識装置が用いる認識辞書を作成する認識辞書作成装置であって、各クラスに属するデータの特徴を示す特徴ベクトルの損失（例えば、連続損失）をクラスごとに計算する（例えば、式８を用いて計算する）損失計算手段９１（例えば、連続損失計算部１０４）と、クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算する（例えば、式９を用いて計算する）損失差計算手段９２（例えば、損失差計算部１０５）と、損失計算手段９１がクラスごとに計算した損失の総和（例えば、式８を用いて計算された連続損失の総和）と、各クラス間の損失の差の総和（例えば、式９を用いて計算されたクラス間の損失の差の総和）とに基づいて、認識辞書を作成する（例えば、識別器パラメータαを決定する）認識辞書作成手段９３（例えば、認識辞書決定部１０９）とを備えている。【０１２１】
認識辞書作成手段９３は、入力された特徴ベクトルをもとに、損失計算手段９１が計算したクラスごとの損失の総和と、損失差計算手段９２が計算した各クラス間の損失の差の総和との和（例えば、式１０で定義される評価関数の評価値Ｌ（α））が最小になるように認識辞書を修正する。【０１２２】
このような構成により作成される認識辞書を用いてパターン認識を行うため、学習に用いるデータがノイズを含む場合や、データ数が少ない場合であっても、未学習の新たなデータに対して、高い識別精度でパターン認識を行うことができる。【０１２３】
なお、少なくとも以下に示すようなパターン認識装置及び認識辞書作成装置も、上記に示すいずれかの実施形態に開示されている。【０１２４】
（１）各クラスに属するデータの特徴を示す特徴ベクトルの損失（例えば、連続損失）をクラスごとに計算する（例えば、式８を用いて計算する）損失計算手段（例えば、連続損失計算部１０４）と、クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算する（例えば、式９を用いて計算する）損失差計算手段（例えば、損失差計算部１０５）と、損失計算手段がクラスごとに計算した損失の総和（例えば、式８を用いて計算された連続損失の総和）と、各クラス間の損失の差の総和（例えば、式９を用いて計算されたクラス間の損失の差の総和）とに基づいて、認識辞書を作成する（例えば、識別器パラメータαを決定する）認識辞書作成手段（例えば、認識辞書決定部１０９）と、認識辞書を用いてデータのパターンを識別するパターン識別手段（例えば、識別部１０６）とを備え、認識辞書作成手段が、入力された特徴ベクトルをもとに、損失計算手段が計算したクラスごとの損失の総和と、損失差計算手段が計算した各クラス間の損失の差の総和との和（例えば、式１０で定義される評価関数の評価値Ｌ（α））が最小になるように認識辞書を修正し、パターン識別手段が、修正された認識辞書を用いてデータのパターンを識別するパターン認識装置。【０１２５】
（２）損失計算手段が、特徴ベクトルが属するクラスが識別誤りである度合いを示す危険度（例えば、式３〜式６及び式７により算出される危険度）の総和（例えば、式２により算出される危険度の総和）をもとにクラスごとの損失を計算するパターン認識装置。【０１２６】
（３）損失計算手段が、各クラスの損失をカーネル関数を用いて計算（例えば、式１２及び式１３を用いて計算）し、パターン識別手段が、カーネル関数に基づいて作成された認識辞書を用いてデータのパターンを識別するパターン認識装置。【０１２７】
（４）認識対象になるデータとして入力されたデータから特徴ベクトルを抽出する特徴ベクトル抽出手段（例えば、特徴抽出部１０２）を備え、損失計算手段が、特徴ベクトル抽出手段が抽出した特徴ベクトルの損失をクラスごとに計算し、パターン識別手段が、特徴ベクトル抽出手段が抽出した特徴ベクトルのパターンを認識辞書を用いて識別するパターン認識装置。【０１２８】
（５）データのパターンを認識するパターン認識装置が用いる認識辞書を作成する認識辞書作成装置であって、各クラスに属するデータの特徴を示す特徴ベクトルの損失（例えば、連続損失）をクラスごとに計算する（例えば、式８を用いて計算する）損失計算手段（例えば、連続損失計算部１０４）と、クラスごとに計算された損失をもとに、各クラス間の損失の差の総和を計算する（例えば、式９を用いて計算する）損失差計算手段（例えば、損失差計算部１０５）と、損失計算手段がクラスごとに計算した損失の総和（例えば、式８を用いて計算された連続損失の総和）と、各クラス間の損失の差の総和（例えば、式９を用いて計算されたクラス間の損失の差の総和）とに基づいて、認識辞書を作成する（例えば、識別器パラメータαを決定する）認識辞書作成手段（例えば、認識辞書決定部１０９）とを備え、認識辞書作成手段は、入力された特徴ベクトルをもとに、損失計算手段が計算したクラスごとの損失の総和と、損失差計算手段が計算した各クラス間の損失の差の総和との和（例えば、式１０で定義される評価関数の評価値Ｌ（α））が最小になるように認識辞書を修正する認識辞書作成装置。【０１２９】
（６）損失計算手段が、特徴ベクトルが属するクラスが識別誤りである度合いを示す危険度（例えば、式３〜式６及び式７により算出される危険度）の総和（例えば、式２により算出される危険度の総和）をもとにクラスごとの損失を計算する認識辞書作成装置。【０１３０】
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１３１】
この出願は、２０１０年１月１４日に出願された日本特許出願２０１０−５４４７を基礎とする優先権を主張し、その開示の全てをここに取り込む。【０１３２】
（付記１）認識対象になるデータとして入力されたデータから特徴ベクトルを抽出し、抽出された特徴ベクトルの損失をクラスごとに計算し、抽出された特徴ベクトルのパターンを認識辞書を用いて識別するパターン認識方法。【０１３３】
（付記２）コンピュータに、認識対象になるデータとして入力されたデータから特徴ベクトルを抽出する特徴ベクトル抽出処理を実行させ、損失計算処理で、前記特徴ベクトル抽出処理で抽出した特徴ベクトルの損失をクラスごとに計算させ、パターン識別処理で、前記特徴ベクトル抽出処理で抽出した特徴ベクトルのパターンを認識辞書を用いて識別させるパターン認識プログラム。
【産業上の利用可能性】
【０１３４】
本発明は、入力されるデータのパターンを認識するパターン認識装置に好適に適用される。例えば、本発明によるパターン認識装置は、画像認識などに好適に適用される。
【符号の説明】
【０１３５】
１０１  データ入力部
１０２  特徴抽出部
１０３  認識辞書作成部
１０４  連続損失計算部
１０５  損失差計算部
１０６  識別部
１０７  認識辞書
１０８  結果出力部
１０９  認識辞書決定部
【図１】
0005621787.tif 000017
【図２】
0005621787.tif 000018
【図３】
0005621787.tif 000019
【図４】
0005621787.tif 000020
【図５】
0005621787.tif 000021
【図６】
0005621787.tif 000022
【図７】
0005621787.tif 000023
【図８】
0005621787.tif 000024
【図９】
0005621787.tif 000025
【図１０】
0005621787.tif 000026
【図１１】
0005621787.tif 000027
【図１２】
0005621787.tif 000028
【図１３】
0005621787.tif 000029
【図１４】
0005621787.tif 000030
【図１５】
0005621787.tif 000031
【図１６】
0005621787.tif 000032
【図１７】
0005621787.tif 000033
【図１８】
0005621787.tif 000034
【図１９】
0005621787.tif 000035
【図２０】
0005621787.tif 000036
【図２１】
0005621787.tif 000037