【文献】
藤村浩司 外3名,AdaBoost音素識別器によるNベストリスコアリングの検討,日本音響学会 2011年 春季研究発表会講演論文集CD−ROM,2011年 3月 2日,p.13-14
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、この発明にかかるパターン識別装置の好適な実施形態を詳細に説明する。
【0008】
(第1の実施形態)
従来技術の問題についてさらに説明する。AdaBoostを応用した手法として、最初に、粗い識別器で、顔領域を抽出し、次に正面用、左向き用、および、右向き用に学習しておいた識別器で識別をかけることによって高精度に顔領域を識別する手法が知られている。しかし、この手法は、入力パターンから推測されるサブクラスに対して適用されるものであり、予め入力パターンと共にサブクラス属性が与えられるケースについては考慮されていない。
【0009】
図1は、音声認識における音素の識別にサブクラスを考慮する場合の例を示す図である。音素の識別では、
図1のように前後の音素コンテキストによって音素の特徴が変化する。このため、音素コンテキストをサブクラスとし、このサブクラスを考慮し識別を行う。
【0010】
図1では、“u”という音素が入力パターンとして入力された場合の例が示されている。“草”を意味する日本語の音声に対応する音素列“kkusa”と、“無害”を意味する日本語の音声に対応する音素列“mugai”が入力された場合とでは、音素“u”の前後の音素(音素コンテキスト)によって“u”の特徴が変化する。このため、音素が“u”に属することを示すクラスは、複数のサブクラスS1、S2、S3に分割される。なお
図1のクラスおよびサブクラスの分割方法は一例であり、これに限られるものではない。
【0011】
識別対象の音素(
図1の例では“u”)は、音素コンテキストに応じていずれかのサブクラスに分類される。なお、以下では音素コンテキストを音素のサブクラス属性(属性情報)ともいう。
図1の例では、前の音素が“kk”であることを示すサブクラス属性A1、および、後の音素が“sh”であることを示すサブクラス属性A2を有する場合、入力パターン(音素“u”)はサブクラスS1に分類される。
【0012】
音声認識システムでは、前後の音素コンテキストは、認識時に既知の情報として入力パターンに付随して与えられることが多い。前後の音素コンテキストによりサブクラスに分類し、AdaBoostなどの手法を適用したと仮定した場合の識別処理について
図2を用いて説明する。
図2は、従来手法を適用した場合の識別処理の一例を示す図である。AdaBoostなどを適用する場合、何らかの方法で音素コンテキストを予めクラスタリングし、サブクラスを決定した後、各サブクラスに対して独立に識別器を学習する。認識時には、付随する音素コンテキストから入力パターンの属するサブクラスを決定し、決定したサブクラスに紐付けられた識別器を適用する。
【0013】
例えば、サブクラス1であることが決定された場合、以降の識別処理では、サブクラス1弱識別器11〜14を含むサブクラス1強識別器が使用される。同様に、サブクラス2であることが決定された場合、以降の識別処理では、サブクラス2弱識別器21〜24を含むサブクラス2強識別器が使用される。また、サブクラス3であることが決定された場合、以降の識別処理では、サブクラス3弱識別器31〜34を含むサブクラス3強識別器が使用される。なお、弱識別ステップの数は4に限られるものではない。
【0014】
このように、従来の手法では、入力パターンに付随するサブクラス属性を利用するにはサブクラス毎に識別器を用意する必要があった。また1つの識別器(強識別器)ではサブクラス属性を考慮した識別を行うことができなかった。
【0015】
第1の実施形態のパターン識別装置は、複数の弱識別器をカスケード接続して識別を行う。各弱識別器は、サブクラス群とそれぞれのサブクラスに割り当てられた識別器を持つ。本実施形態のパターン識別装置は、入力パターンに付随するサブクラス属性から、いずれのサブクラスに分類されるかを決定し、決定したサブクラスに割り当てられた弱識別器を使用する。
【0016】
図3は、本実施形態の識別処理の一例を示す図である。
図3に示すように、本実施形態では、複数の弱識別ステップごとに、サブクラス属性からサブクラスを決定する。
図3では、サブクラスX、Y、Zの3ステップそれぞれで、サブクラスが決定される。なお、ステップ数は3に限られるものではない。サブクラスX、Y、Zが決定された後、サブクラスX、Y、Zそれぞれに対応する弱識別器であるサブクラスX弱識別器41、サブクラスY弱識別器42、サブクラスZ弱識別器43が使用される。これにより、弱識別器を連結した1つの識別器(強識別器)でサブクラス属性を考慮した高精度な識別を行うことが可能となる。
【0017】
次に、第1の実施形態のパターン識別装置を音声認識装置100に適用した例について説明する。なお、適用可能な装置は音声認識装置に限られるものではない。例えば画像認識装置などのように、パターン識別機能を利用する装置であれば、従来から用いられているあらゆる装置に適用できる。
【0018】
図4は、第1の実施形態の音声認識装置100の機能構成の一例を示すブロック図である。音声認識装置100は、音声入力部101と、認識処理部110と、出力部102と、記憶部121と、を備えている。
【0019】
記憶部121は、音声認識処理で参照される各種情報を記憶する。記憶部121は、例えば、音素辞書および単語辞書などを記憶する。記憶部121は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0020】
音声入力部101は、認識対象とする音声を入力する。音声入力部101は、例えば、音声入力用マイクなどから音声信号を入力する。
【0021】
認識処理部110は、入力された音声に対して音声認識処理を実行する。認識処理部110は、候補生成部111と、識別部112と、候補選択部113と、を備えている。
【0022】
候補生成部111は、入力された音声(音声信号)を受取り、音声認識処理を実行して認識結果の候補である認識候補を生成する。例えば、候補生成部111は、音素辞書や単語辞書を用いて、入力された音声に対して確からしい音素列候補群を生成する。候補生成部111による候補生成処理は、従来から利用されているHMM方式の音声認識処理と同様の方式で実現できる。
【0023】
識別部112は、パターン識別装置に相当する構成部である。識別部112は、生成された音素列候補に含まれる各音素が、指定されたクラスに属するか否かを識別する。識別部112の詳細については後述する。
【0024】
候補選択部113は、識別部112による識別結果に基づき、音素列候補から1の候補を選択する。出力部102は、選択された候補を音声認識結果として出力する。
【0025】
図5は、識別部112の詳細な機能構成の一例を示すブロック図である。識別部112は、ルール記憶部521と、弱識別器記憶部522と、出力記憶部523と、受付部501と、決定部502と、実行部503と、算出部504と、判定部505と、を備えている。
【0026】
受付部501、決定部502、実行部503、算出部504、および、判定部505は、例えば、CPU(Central Processing Unit)などの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、IC(Integrated Circuit)などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
【0027】
ルール記憶部521は、サブクラス決定ルールを記憶する。サブクラス決定ルールは、サブクラス属性に応じて入力パターンを複数のサブクラスのいずれに分類するかを決定するルールである。例えば、前の音素が“u”であるか否かによって2つのサブクラスに分類するルールをサブクラス決定ルールとすることができる。サブクラス決定ルールは、弱識別器を用いる識別処理(弱識別ステップ)ごとに定められていてもよい。
【0028】
弱識別器記憶部522は、事前の学習等により得られた弱識別器と、弱識別器の信頼度と、を記憶する。弱識別器は、サブクラスに紐付けられて弱識別器記憶部522に記憶される。
【0029】
出力記憶部523は、算出部504の出力結果を記憶する。
【0030】
なお、ルール記憶部521、弱識別器記憶部522、および、出力記憶部523の一部または全部は、
図4の記憶部121により実現してもよい。
【0031】
受付部501は、例えば候補生成部111から入力される、入力パターン(音素)と入力パターンの属性情報(サブクラス属性)とを受け付ける。
【0032】
決定部502は、入力パターンに付随するサブクラス属性を用いて、入力パターンのサブクラスを決定する。決定部502は、例えば、ルール記憶部521に保存してあるサブクラス決定ルールとサブクラス属性とを用いて、入力パターンのサブクラスを決定する。
【0033】
実行部503は、決定されたサブクラスに割り当てられた弱識別器を用いて、入力パターンがクラスに属するか否かを識別し、識別の結果(弱識別結果)と弱識別器の信頼度を出力する。例えば実行部503は、まず決定されたサブクラスに紐付けられた弱識別器および当該識別器の信頼度を弱識別器記憶部522から読み出す。実行部503は、読み出した弱識別器を用いて、入力パターンに対して識別を実行し、弱識別結果と、読み出した弱識別器の信頼度と、を出力する。
【0034】
算出部504は、弱識別結果および信頼度に基づく評価値を積算した積算値(スコア)を算出する。積算値は、例えば出力記憶部523に記憶される。
【0035】
判定部505は、識別処理の終了条件が満たされたか否かを判定し、終了条件が満たされていない場合は、識別処理を継続する。識別処理では、上記の決定部502、実行部503、および、算出部504による処理が繰り返される。終了条件が満たされた場合は、判定部505は、識別処理を終了し、終了したときの積算値(出力記憶部523に保存されている出力結果)を出力する。
【0036】
次に、このように構成された音声認識装置100による識別処理について
図6を用いて説明する。
図6は、第1の実施形態における識別処理の一例を示すフローチャートである。
【0037】
以下では、音声波形から得られる一般的な音声特徴量MFCC(Mel Frequency Cepstral Coefficient)12次元を入力パターンとする。また、前後の音素コンテキストをサブクラス属性として使用する。例えば、“あ(a)”、“い(i)”、“う(u)”、“え(e)”、“お(o)”という音素があったとする。“うえあ(uea)”という単語の中の”e”という音素が“e”であるか否かというような音素識別を行うときは、“e”の前のコンテキストが“u”となり、後ろのコンテキストが“a”となる。
【0038】
入力パターンやサブクラス属性はこれらに限定されるものではなく、どのように抽出された入力パターンでもよいし、入力パターンを何れかのサブクラスに決定できるようなサブクラス属性であればどのようなものでもよい。
【0039】
以下ではクラス識別問題として、入力パターンが音素“a”であるか否かを識別する2クラス問題を例に説明する。入力パターン“a”のサブクラス属性は前のコンテキストが“u”、後ろのコンテキストが“o”であるとする。なお、本実施形態は2クラス識別に限定されるものではなく、多クラス識別においても拡張可能である。
【0040】
受付部501は、入力パターンと、当該入力パターンのサブクラス属性との入力を受付ける(ステップS101)。例えば、入力パターン“a”、および、サブクラス属性“u”(前のコンテキスト)、“o”(後ろのコンテキスト)を受付ける。
【0041】
決定部502は、N(N>0)回目の弱識別ステップそれぞれで、受付けられたサブクラス属性(前のコンテキスト“u”、後ろのコンテキスト“o”)に対して、N回目の弱識別ステップに対応するサブクラス決定ルールを適用する。サブクラス決定ルールとしては、例えば、前のコンテキストが音素p(p∈{“a”、“i”、“u”、“e”、“o”})であるか否か、後ろのコンテキストが音素pであるか否かを決定するルールを適用できる。なおサブクラス決定ルールはこのようなルールに限定されるものではない。サブクラス属性を用いてサブクラスに分割し得るルールであればどのようなルールであってもよい。また、サブクラス属性と入力パターンの値とを用いてサブクラスに分割してもよい。例えば、入力パターンが特徴量ベクトルであったとすると、「特徴量ベクトルの第1成分が閾値(例えば5)以下、かつ、サブクラス属性(前のコンテキスト)が“a”である」などのルールを用いてもよい。
【0042】
ここで、N回目の弱識別ステップに紐付けされているサブクラス決定ルールが、前の音素コンテキストが“u”であるか否かという2つのサブクラスに分類されるルールであるとする。この場合、入力パターン“a”は、前が“u”の音素コンテキストを持っているので、前が“u”であるというサブクラスに分類(決定)される(ステップS102)。
【0043】
実行部503は、決定されたサブクラス(前の音素コンテキストが“u”であるというサブクラス)に紐付けられた弱識別器を弱識別器記憶部522から読み出す(ステップS103)。実行部503は、読み出した弱識別器による識別処理を実行する(ステップS104)。実行部503は、識別処理の結果(弱識別結果)と弱識別器の信頼度とを出力する。弱識別器による識別処理では、例えばMFCCの予め定められた次元の値が予め定められた閾値よりも大きいか否かが判定される。
【0044】
この動作は一般的にDecision Stumpと呼ばれる手法と同様である。ここで、入力パターンをxとし、N回目の弱識別ステップの“u”であるというサブクラスに紐付けられた弱識別器をh
N0(x)とし、“u”でないというサブクラスに紐付けられた弱識別器をh
N1(x)とする。弱識別器h
N0(x)が、MFCCの1次元目(MFCC(1))が閾値30より大きければこの入力パターンは“a”であると定められているときに、弱識別器h
N0(x)は、以下の(1)式のように動作する。
if MFCC(1)≦30
h
N0(x)=−1
else
h
N0(x)=1
・・・(1)
【0045】
算出部504は、実行部503によって得られた弱識別結果と弱識別器の信頼度とを用いてスコアを算出する(ステップS105)。算出部504は、スコアを積算し、出力記憶部523に保存する。このときスコアS
Nは、予め弱識別器に紐付けされている信頼度α
N0(>0)を用いて、以下の(2)式により算出される。
S
N=α
N0h
N0(x) ・・・(2)
【0046】
算出部504は、スコアS
Nを積算してN回目までの積算値である積算スコアT
sNを、以下の(3)式により求める。なお、T
s0は0とする。
T
sN=T
sN−1+S
N ・・・(3)
【0047】
判定部505は、識別処理の終了条件を満たすか否かを判定する(ステップS106)。例えば、判定部505は、Nが予め決められた回数まで到達したか否かを判定する。終了条件を満たさない場合(ステップS106:No)、ステップS102に戻り、次の弱識別ステップが繰り返される。終了条件を満たす場合(ステップS106:Yes)、判定部505は、出力記憶部523に保存してある積算スコア(識別結果)を出力して識別処理を終了する(ステップS107)。
【0048】
上記例では、積算スコアT
sNの値が0より大きければ、結果として入力パターンは“a”であると識別される。また、積算スコアT
sNの値が0以下であれば“a”でないと識別される。
【0049】
これまでは、基本的なDecision StumpによるAdaBoostと同様の手法を適用した弱識別器、および、スコア算出方法について説明した。適用可能な手法はこれに限定されるものではない。例えば、Real−AdaBoost、および、Gentle Boostなどを含む、AdaBoostの発展系のBoosting手法などにも適用することが可能である。また弱識別器として入力パターンの共起性などを考慮する手法(例えば、輝度勾配方向共起ヒストグラム(CoHOG(Co-occurrence Histograms of Oriented Gradients))なども適用することができる。また全ステップがサブクラスを考慮した弱識別ステップである必要はなく、一部がサブクラスを考慮しない従来の弱識別ステップ(従来のAdaBoost)でもよい。
【0050】
このように、第1の実施形態のパターン識別装置では、弱識別器毎にサブクラスを考慮した識別器を用いるため、単一の識別器で、サブクラスを使った、より高精度な識別が可能となる。
【0051】
(第2の実施形態)
第2の実施形態では、第1の実施形態のパターン識別装置で用いる識別器を学習する学習装置について説明する。
図7は、第2の実施形態の学習装置200の機能構成例を示すブロック図である。学習装置200は、学習データ記憶部221と、ルール記憶部222と、弱識別器記憶部223、224と、分割部201と、探索部202と、ルール選択部203と、更新部204と、判定部205と、を備えている。
【0052】
学習データ記憶部221は、クラスラベルと入力パターンとサブクラス属性と重みとを含む学習データを記憶する。ルール記憶部222は、学習データを、複数のサブクラスのいずれに属するかによって複数の学習データ(以下、サブクラスデータという)へ分割する分割ルールを記憶する。分割ルールは、例えば、“前の音素コンテキストがuであるか否か”、“後ろの音素コンテキストがiであるか否か“などによって、学習データを2つのサブクラスデータに分割するルールである。分割ルールは、このようなルールに限定されるものではなく、学習データを複数のサブクラスデータに分割し得るルールであれば何でもよい。また、サブクラス属性と入力パターンの値とを用いて学習データをサブクラスデータに分割するルールを用いてもよい。
【0053】
弱識別器記憶部223は、探索部202で算出された分割ルールと、探索部202により探索された弱識別器と、を記憶する。弱識別器記憶部224は、ルール選択部203により選択された分割ルールに対応する弱識別器を記憶する。
【0054】
分割部201は、学習データ記憶部221に記憶されている学習データを、ルール記憶部222に記憶されている分割ルールによってサブクラスデータに分割する。
【0055】
探索部202は、分割により得られたサブクラスデータそれぞれに対して、複数の弱識別器のうち、適合度が高い弱識別器を探索する。
【0056】
ルール選択部203は、探索された弱識別器の信頼度を算出し、複数の分割ルールから、信頼度が高い弱識別器に対応する分割ルールを選択する。例えば、ルール選択部203は、弱識別器記憶部223に記憶された分割ルールの中で最も信頼度の高い分割ルールを選択する。ルール選択部203は、選択した分割ルールと、選択した分割ルールに付随する弱識別器と、信頼度と、を弱識別器記憶部224に記憶する。
【0057】
更新部204は、弱識別器記憶部224に保存された分割ルールと、当該分割ルールに付随する弱識別器と、信頼度と、を用いて学習データの重みを更新する。
【0058】
判定部205は、弱識別器の探索を終了するか否かの判定を行う。
【0059】
分割部201、探索部202、ルール選択部203、更新部204、および、判定部205は、例えば、CPU(Central Processing Unit)などの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、IC(Integrated Circuit)などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
【0060】
次に、このように構成された学習装置200による学習処理について
図8を用いて説明する。
図8は、第2の実施形態における学習処理の一例を示すフローチャートである。
【0061】
第2の実施形態では第1の実施形態と同様に、学習データ記憶部221に保存してある入力パターン(学習データ)は、音声波形から得られる音声特徴量MFCC12次元とする。また、前後の音素コンテキストをサブクラス属性として使用する。第1の実施形態と同様に、本実施形態の入力パターンやサブクラス属性はこれらに限定されるものではなく、どのように抽出された入力パターンでもよいし、入力パターンを何れかのサブクラスに決定できるようなサブクラス属性であれば何でもよい。
【0062】
以下では、入力パターンが音素“a”であるか否かを識別する2クラス識別器の学習を行う例を説明する。本実施形態は2クラス識別に限定されるものではなく、多クラス識別にも拡張可能である。
【0063】
学習データ記憶部221は、複数の学習データを保存している。各学習データは、例えば、“a”か”aではない”というクラスラベルを持つとともに、“前の音素コンテキストがu”、“後ろの音素コンテキストがi“というような前後の音素コンテキストをサブクラス属性として持つ、MFCC12次元のベクトルデータである。また、各学習データはそれぞれ重み係数を持つ。N回目における各データの重み係数は、(N−1)回目の学習処理の中で更新部204によって決定される。
【0064】
N=1回目に関しては、“a”のクラスラベルを持つ学習データに対する重みは、“a”のクラスラベルを持った学習データの総数の逆数を2で割った値(初期データ重み)を用いる。また、“aではない”のクラスラベルを持つデータに対する重みは、“aではない”のクラスラベルを持った学習データの総数の逆数を2で割ったもの用いる。
【0065】
なお、重みの初期値(初期データ重み)はこれに限定されるものではない。例えば、予め、強調したいデータなどに対して大きい重みを付けるなどをして意図的に初期データの重みを変化させてもよい。
【0066】
N(N>0)回目の弱識別器学習ステップそれぞれで、分割部201は、ルール記憶部222から分割ルールを1つ取り出す(ステップS201)。以下では分割ルールとして、“前の音素コンテキストがuであるか否か”、“後ろの音素コンテキストがeであるか否か”、“前の音素コンテキストがaであるか否か”という分割ルールを用いる例を説明する。
【0067】
分割部201は、取り出した分割ルール(例えば、“前の音素コンテキストがuであるか否か”という分割ルールd)によって学習データを複数のサブクラスデータに分割する(ステップS202)。2クラス識別の場合は、学習データは2つのサブクラスデータに分割される。
【0068】
探索部202は、分割ルールdによって得られる各サブクラスデータに対して適合度の高い弱識別器を算出する(ステップS203)。各サブクラスデータに対して弱識別器を算出する手法は、従来のAdaBoostの弱識別器算出方法とほぼ同じである。以下に、従来のAdaBoostの学習方法について説明する。
【0069】
N個の学習データ(x1、y1)、・・・、(xi,yi)、・・・、(xN、yN)(1≦i≦N)が存在するものとする。ここでxiは何らかの特徴をもつデータであり、yi∈(1、−1)はxiが属するクラスラベルである。一般的にはAdaBoostによって検出する対象を1のクラスラベルとし、その他を−1のクラスラベルとする。このとき、以下のステップA1〜A2によりAdaBoostの学習処理を実行する。
【0070】
ステップA1:学習データの重みDo(i)を以下の(4)式で初期化する。
【数1】
【0071】
ステップA2:重みを考慮したt回目の学習データの重み分布Dtにおいて、学習データに対する誤り率ε
t(以下の(5)式)が最小になるように弱識別器h
t(x)を学習する。
【数2】
【0072】
ステップA3:信頼度α
tをε
tから算出する(以下の(6)式)。
【数3】
【0073】
ステップA4:学習データの重みを更新する(以下の(7)式)。
【数4】
【0074】
ステップA5:学習データの重みが1になるよう正規化処理を行う(以下の(8)式)。
【数5】
【0075】
ステップA2〜ステップA5をT回繰り返し、弱識別器および信頼度をT個求める。最終的な強識別器H(x)は、選択されたT個の弱識別器の信頼度を重みとした重み付き和となる(以下の(9)式)。
【数6】
【0076】
このようにして、H(x)>0ならば、入力xは検出対象であり、それ以外ならば入力xは検出対象ではないことを識別する識別関数が導かれる。
【0077】
従来のAdaBoostでは、重みを考慮したN回目の学習データ重み分布D
Nにおいて、誤り率ε
N((5)式)が最小になるように弱識別器h
N(x)を学習した。本実施形態では、分割ルールd(前の音素コンテキストが“u”であるか、など)によって学習重み分布(学習データ)を分割して得られるサブクラス重み分布D
Nd0、D
Nd1(サブクラスデータ)に対して、誤り率ε
Nd0、ε
Nd1が最小となる弱識別器h
Nd0(x)、h
Nd1(x)を求める。
【0078】
最適な弱識別器は、Decision Stumpと同様の方法で求めることができる。例えば、MFCCの12次元を順々に探索し、“a”か“aではない”というクラス識別率が最も高くなる次元と閾値を探索することにより求められる。
【0079】
閾値に関しては、学習データ記憶部221に記憶されている学習データの値を全探索することで最適な閾値を得る。探索部202は、算出された弱識別器(例えば、最適な次元、および、閾値とその閾値に対して大きいほうか小さいほうのいずれが“a”であると識別されるかを示す情報)を、N回目の弱識別器学習ステップにおける該当分割ルールdに紐付けて弱識別器記憶部223に保存する。
【0080】
このようにして、各分割ルールによって定められるサブクラス(サブクラスデータ)に対して最適な弱識別器が求められる。
【0081】
探索部202は、すべての分割ルールを処理したか否かを判定する(ステップS204)。すべての分割ルールを処理していない場合(ステップS204:No)、分割部201は、次の分割ルールを読み出して処理を繰り返す。なお、すべての分割ルールの探索を探索部202による探索の打ち切りの条件とするのではなく、各サブクラスデータに対する弱識別器の適合度などによって探索を打ち切ってもよい。
【0082】
すべての分割ルールを処理した場合(ステップS204:Yes)、ルール選択部203は、最適な分割ルールを弱識別器記憶部223から選択する(ステップS205)。弱識別器記憶部223には、N回目の弱識別器学習ステップにおいて、すべての分割ルールに紐付けられた各サブクラスの弱識別器が保存されている。ルール選択部203は、これらの弱識別器を各サブクラスデータに適用し、全学習データ重み分布D
Nにおいて、誤り率ε
N((5)式)が最小になるような分割ルールを選択する。
【0083】
ルール選択部203は、選択された分割ルールと、信頼度α
Nとを弱識別器記憶部224に保存する(ステップS206)。信頼度α
Nは、選択された分割ルールに紐付けされた弱識別器と、誤り率ε
Nとを用いて(6)式から得られる。ルール選択部203は、その後、弱識別器記憶部223に保存されているデータを消去する。
【0084】
なお、弱識別器記憶部224に保存する信頼度は、全学習データ重み分布D
Nにおける誤り率ε
Nから得られる単一の信頼度α
Nに限定されるものではない。例えば、サブクラス重み分布D
Nd0、D
Nd1に対する誤り率ε
Ndo、ε
Nd1から(6)式を用いて得られる複数の信頼度α
Nd0、α
Nd1等を保存して用いてもよい。
【0085】
次に、更新部204は、弱識別器記憶部224に保存してある分割ルールと、当該分割ルールに紐付けされた弱識別器と、信頼度と、から学習データに対する重み(重み係数)を算出する。更新部204は、算出した重み係数で、学習データ記憶部221に記憶されている学習データの重み係数を更新する(ステップS207)。更新部204は、例えば、弱識別器記憶部224に保存してある弱識別器と信頼度α
Nと学習データ記憶部221に保存してあるクラスラベルとを用いて、(7)式および(8)式より、学習データ重み分布D
N+1を求める。
【0086】
判定部205は、終了条件を満たすか否かを判定する(ステップS208)。例えば、判定部205は、予め定められた回数の弱識別器学習ステップが終了したかを終了条件とする、終了条件を満たさない場合(ステップS208:No)、ステップS201に戻り処理が繰り返される。終了条件を満たす場合(ステップS208:Yes)、学習処理が終了する。
【0087】
このような学習処理により、サブクラスを考慮した識別器を学習することが可能となる。本実施形態では基本的なDecision StumpによるAdaBoostを用いた弱識別器学習の説明を行ったが、適用可能な手法はこれに限定されるものではない。Real−AdaBoostや、Gentle Boostなどを含む、AdaBoostの発展系のBoosting手法などを適用してもよい。また弱識別器として入力パターンの共起性などを考慮する手法(例えば、輝度勾配方向共起ヒストグラム)なども適用することができる。また全ステップの学習でサブクラスを考慮する必要はなく、一部がサブクラスを考慮しない従来の学習手法(従来のAdaBoost)でもよい。
【0088】
以上説明したとおり、第1から第2の実施形態によれば、サブクラスを使った、より高精度な識別が可能となる。
【0089】
次に、第1または第2の実施形態にかかる装置(パターン識別装置、学習装置)のハードウェア構成について
図9を用いて説明する。
図9は、第1または第2の実施形態にかかる装置のハードウェア構成を示す説明図である。
【0090】
第1または第2の実施形態にかかる装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM(Random Access Memory)53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
【0091】
第1または第2の実施形態にかかる装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
【0092】
第1または第2の実施形態にかかる装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0093】
さらに、第1または第2の実施形態にかかる装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1または第2の実施形態にかかる装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0094】
第1または第2の実施形態にかかる装置で実行されるプログラムは、コンピュータを上述した装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【0095】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。