(58)【調査した分野】(Int.Cl.,DB名)
各サンプルにつき特徴ベクトルと多クラス内のいずれかの所属クラスとが与えられた学習用データを用いて、2クラス識別器の組み合わせにより最適な又は準最適な多クラス識別器を構築する多クラス識別器構築装置であって、
各2クラス識別器の識別性能を有用性として推定する有用性推定部と、
前記推定された有用性が高いと判定される2クラス識別器を含む組み合わせの中から、最適な又は準最適な多クラス識別器を探索して構築する識別器構築部と、を備え、
前記有用性推定部は、前記学習用データにおける各サンプルの特徴ベクトルの分布に基づき、クラス同士の距離を推定し、当該距離が離れているクラスを共通のクラスとして扱うような2クラス識別器ほど、その有用性が低いものとして推定することを特徴とする多クラス識別器構築装置。
前記有用性推定部は、前記その他の2クラス識別器の各々につき、当該2クラス識別器を構築するに際してnクラス{C1, C2, …, Cn}の中で区別するのに用いるクラス数kの小さい側から順次候補を列挙すると共にその有用性を推定し、有用性の高いと判定される2クラス識別器のみを選別し、前記識別器構築部における探索の対象とさせることを特徴とする請求項2または3に記載の多クラス識別器構築装置。
前記有用性推定部は、前記クラス数kの大きくなる方向へと前記推定された有用性に基づく枝刈りを実施しながらビームサーチによって、有用性の高いと判定される2クラス識別器のみを選別し、前記識別器構築部における探索の対象とさせることを特徴とする請求項4に記載の多クラス識別器構築装置。
前記有用性推定部は、前記ビームサーチを、前記クラス数kがnに到達したこと、または、当該大きくなる方向へ変化させるクラス数kにおける2クラス識別器の候補のうち、前記枝刈りの対象とはならなかった個数が所定値を超えたこと、によって終了し、当該終了した際のクラス数kにおいて前記枝刈りの対象とはならなかった2クラス識別器を、前記識別器構築部における探索の対象とさせることを特徴とする請求項5に記載の多クラス識別器構築装置。
【発明を実施するための形態】
【0014】
図1は、一実施形態に係る多クラス識別器構築装置の機能ブロック図である。多クラス識別器構築装置10は、有用性推定部11及び識別器構築部12を備える。各部11,12の概要は以下の通りである。
【0015】
有用性推定部11は、多クラス識別器を構築するための学習用データを読み込み、最終的に構築する多クラス識別器における組み合わせを構成する候補としての2クラス識別器の各々につきその有用性を推定して、有用性が高いと判定される2クラス識別器を求め、その結果を識別器構築部12に渡す。
【0016】
ここで、学習用データは、複数M個の各サンプルi(i=1, 2 , …, M)につき、n個のクラスのいずれに属するかがラベルC[i]∈{C1, C2, …, Cn}として与えられると共に、SVM等の2クラス識別器を適用するための特徴ベクトルF[i]が抽出されたものである。
【0017】
本発明においては、多クラス識別器構築装置10によって最終的に構築されるnクラスを識別する多クラス識別器を、次のような組み合わせによる構成とする。すなわち、各クラスCi(i=1, 2, …, n)であるか否かを識別する識別器をそれぞれ識別器Miとすると、nクラス識別問題におけるいわば基本的な2クラス識別器群としての識別器群{Mi|i=1, 2, …, n}と、当該基本構成としての識別器群{Mi|i=1, 2, …, n}に対してさらに追加的な情報を与えるその他の2クラス識別器(例えばクラスC1又はC2であるかそれ以外かの識別器)と、の組み合わせによって多クラス識別器を構築する。
【0018】
識別器構築部12は、基本構成の識別器群{Mi|i=1, 2, …, n}に対して追加する、有用性推定部11により推定された有用性が高い2クラス識別器の各組み合わせにつき、学習用データを用いて実際に学習を行うことで、最適な又は準最適な多クラス識別器を構築し、多クラス識別器構築装置10による出力となす。ここで、全数探索により最適な組み合わせとしての多クラス識別器を学習により構築してもよいし、前述の非特許文献3の手法により全数探索を避けて、準最適な組み合わせとしての多クラス識別器を学習により構築してもよい。
【0019】
本発明においては、上記のように基本構成の識別器群{Mi|i=1, 2, …, n}に対してその他の2クラス識別器を追加したものとして、最終的に求める多クラス識別器を構築する。ここで、追加されるその他の2クラス識別器のそれぞれが識別性能の高いものであれば、当該追加した結果構築される多クラス識別器も識別性能が高いことが期待される。
【0020】
そこで、追加すべき2クラス識別器として、識別性能が高いものを見つけることが望まれる。しかし、追加されるその他の2クラス識別器は、nクラス{C1, C2, …, Cn}の全部または一部を2クラスに分ける任意の設定ごとに存在するので、特にクラス数nが大きい場合、その種類が膨大に存在することとなる。
【0021】
仮に、当該膨大に存在する2クラス識別器をそれぞれ実際に逐一学習して構築し、それぞれの識別性能を比較することで高い識別性能のものを見つけ出すとすると、過大な計算負荷を要する。さらに、基本構成の識別器群{Mi|i=1, 2, …, n}と追加した2クラス識別器とによって多クラス識別器を構築する際にも、学習が必要(
図2等を参照して説明する「統合識別器」の学習が必要)であるので、最適な多クラス識別器を見つけるためにはさらに計算負荷を要する。
【0022】
上記のような計算負荷上の課題に対して、本発明においては後述する手法により、有用性推定部11が、追加すべき候補としての2クラス識別器を学習により実際に逐一構築することなく、その識別性能の高さを有用性という形で推定することができる。そして、当該有用性が高い2クラス識別器のみを追加対象として予め絞り込んだうえで、識別器構築部12が多クラス識別器を構築して最適ないし準最適なものを決定する。従って、有用性という情報による絞り込みを経ずに各組み合わせの多クラス識別器を逐一的に学習して構築する従来技術に比べて、計算負荷を抑制することが可能となる。
【0023】
ここで、本発明において2クラス識別器の組み合わせで構築される多クラス識別器の詳細について説明する。
【0024】
図2は、2クラス識別器の組み合わせにより多クラス識別器を構築した1つの例を示す図である。ここでは学習用データにおいてクラス数n=4であり、{A, B, C, D}の4つのクラスがラベルとして付与されている場合の例が示されている。
【0025】
図2では、当該n=4の4クラス{A, B, C, D}を識別するための最も基本的な組み合わせP1として、入力データがクラスA〜Dに該当する確率をそれぞれ出力する識別器1A〜1Dで構成された組み合わせP1での前段識別器群100-P1と、当該組み合わせP1での統合識別器200-P1と、を備えて組み合わせP1による多クラス識別器300-P1が構成されている。
【0026】
当該多クラス識別器300-P1に対して特徴ベクトルの形で入力される入力データは、図示するように、まず、前段識別器群100-P1において識別器1A〜1DによりクラスA〜Dに該当する確率がそれぞれ求められる。そして、当該求められたクラスA〜Dに該当する確率はそれぞれ、統合識別器200-P1に入力され、最終結果として、入力データがクラスA〜Dのいずれに該当するかという識別結果が得られる。
【0027】
ここで、このような多クラス識別器300-P1を実際に学習用データを用いて構築する際は、前段識別器群100-P1に含まれる2クラスの識別器1A〜1Dと、対応する統合識別器200-P1と、の5個の識別器をそれぞれ同じ学習用データを用いた学習により構築する必要がある。
【0028】
識別器1Aの構築においては、まず、学習用データのうちクラスAに属するサンプルを正例とし、その他のクラス、すなわち、クラスB,C,Dのいずれかに属するサンプルを負例として、当該識別器の種類に応じた周知手法により学習を行う。さらに、前述の非特許文献1に開示された手法によりシグモイド関数等へのフィッティングを実施することで、当該学習された識別器の出力をクラスAに該当するか否かという形式(2値出力の形式)から、クラスAに該当する確率の形式で与えるようにして、識別器1Aが構築される。識別器1B〜1Dの構築も同学習用データによって同様に行う。
【0029】
統合識別器200-P1の構築は、同学習用データの各サンプルにつき、上記構築された前段識別器群100-P1の各識別器1A〜1Dに入力して得られたそれぞれの出力と、ラベルとして与えられている各サンプルがクラス{A, B, C, D}のいずれに属するかの情報と、を用いて学習することによって構築される。具体的には、前述の非特許文献2、あるいは以下の非特許文献4に開示された手法によって、統合識別器200-P1を構築することができる。
【0030】
[非特許文献4] E. L. Allwein, R. E. Schapire, and Y. Singer. Reducing multiclass to binary: A unifying approach for margin classifiers. Journal of Machine Learning Research, 1:113-141, 2000.
【0031】
以上、
図2の例では、クラス数n=4の4クラス{A, B, C, D}を識別するための最も基本的な2クラス識別器の組み合わせP1で構築された多クラス識別器300-P1を説明した。このような2クラス識別器の組み合わせは多数存在する。例えば、
図3は、
図2と同様のn=4の4クラス{A, B, C, D}の学習用データのもとで、さらに識別性能を向上させるべく、組み合わせP1に対して別の識別器を追加した組み合わせP2によって、
図2とは別の多クラス識別器300-P2を構築した例である。
【0032】
図3に示すように、組み合わせP2は、
図2で用いた基本的な2クラスの識別器1A〜1Dからなる組み合わせP1にさらに、その他の2クラス識別器として2クラスの識別器2AC及び識別器2ABを追加したものである。識別器2ACは、入力データがクラスA又はCに該当する確率を出力し、識別器2ABは、入力データがクラスA又はBに該当する確率を出力する。そして、全体的な構成は
図2と同様であり、組み合わせP2の各識別器1A〜1D,2AC,2ABを含んで構成される前段識別器群100-P2と、当該各識別器の出力する確率を受け取って入力データが{A, B, C, D}のいずれのクラスに属するかを出力する統合識別器200-P2と、を備えて多クラス識別器300-P2が構成される。
【0033】
多クラス識別器300-P2を学習で構築する際も、
図2の場合と同様に、構成される各識別器1A〜1D,2AC,2AB及び300-P2をそれぞれ共通の学習用データを用いて学習によって構築することとなる。ここで、識別器1A〜1Dの学習による構築は
図2で説明した通りである。
【0034】
一方、識別器2ACの学習による構築も同様であり、例えば次の通りである。すなわち、学習用データにおいてクラスA又はCに属するサンプルを正例とし、それ以外、すなわちクラスB又はDに属するサンプル(あるいは、クラスB又はDのいずれかに属するサンプル)を負例とし、学習によって構築され、さらに、出力を確率の形式で与えるようにシグモイド関数等でフィッティングされて得られる。識別器2ABの構築も同様である。
【0035】
そして、統合識別器200-P2も、学習用データの各サンプルに対する以上構築された前段識別器群100-P2の出力と、学習用データにおいて各サンプルに付与された所属クラスのラベルと、を用いて学習することで、
図2の統合識別器200-P1と同様に構築することができる。
【0036】
図4は、以上の
図2,3の個別例を一般化して、2クラス識別器の組み合わせPiにより構成される多クラス識別器300-Piを示す図である。組み合わせPiは合計N[i]個の2クラス識別器1, 2, …, N[i]からなり、これら組み合わせPiの識別器1, 2, …, N[i]を含んだ前段識別器群100-Piと、対応する統合識別器200-Piと、を備えて多クラス識別器300-Piが構築される。
【0037】
組み合わせPiの各識別器1, 2, …, N[i]はそれぞれ、学習用データにおけるn個のクラスの全て又は任意の一部をどのように2分割するかの設定によって定まり、当該設定に従って
図2,3で説明したのと同様にして学習により構築し、さらに、出力を確率の形式で与えるようにして構築することができる。例えば、
図2,3の例のようにn=4で{A, B, C, D}のクラスであれば、4クラス全てを2分割する設定として「Aであるかそれ以外か」、「A又はBであるかそれ以外か」、「A,B又はCであるかそれ以外か」等が可能である。また、4クラス{A, B, C, D}の任意の一部を2分割する設定として、{A, B}を分割する「Aであるか、あるいはBであるか」の設定や、{A, B, C}を分割する「A又はBであるか、あるいはCであるか」の設定等が可能である。
【0038】
そして、統合識別器200-Piは、
図2,3の場合と同様に、学習用データの各サンプルに対する構築された前段識別器群100-Piの出力と、各サンプルにラベルとして付与されている所属クラスと、を用いて学習によって構築することができる。
【0039】
ここで、
図1の各部の説明に戻り、以下、有用性推定部11及び識別器構築部12の処理の詳細をそれぞれ説明する。
【0040】
図5は、本発明において有用性推定部11が有用性を推定する原理を説明するための図である。
図5では、
図2,3等の説明と同様に、n=4の4クラス{A, B, C, D}からなる学習用データの各サンプルの特徴ベクトルの特徴空間内における分布が概念的に示されている。ここで、各特徴ベクトルの位置を「○」で表し、右側の凡例欄に示すように所属クラス{A, B, C, D}の区別を「○」内に描くテクスチャの区別で表している。なお、点線は各サンプルのクラス区別の理解補助のために示してあり、特徴空間におけるクラス境界を意味するものではない。
【0041】
図5では、クラスA,B間、クラスB,D間、クラスD,C間及びクラスC,A間は概ね隣接して互いに近い距離にあり、これに対してクラスA,D間及びクラスB,C間は距離が大きく離れているという関係にある、各クラスの特徴ベクトルの分布が示されている。2クラス識別器の識別性能の有用性を推定する原理は次の通りであり、学習用データの各クラスの特徴ベクトルの分布に関連する次のような傾向に基づくものである。
【0042】
すなわち、nクラス{C1, C2, …, Cn}の学習用データにおいて、特徴空間上で離れて分布するようなクラスCi, Cjを、2クラス識別器の識別する共通のクラスとして扱うような2クラス識別器は、一般に学習が困難(学習のための計算負荷が過大)であり、且つ学習して構築されても識別性能が低いものとなってしまうという傾向である。また逆に、nクラスの学習用データにおいて、特徴空間上で離れて分布するようなクラスCi, Cjは、2クラス識別器の識別する共通のクラスとして扱わないような2クラス識別器は、学習が容易であり且つ学習して構築されると識別性能が高いという傾向がある。
【0043】
図5の例では、特徴空間上で互いに離れて分布するクラスA,D同士あるいはクラスB,C同士を共通のクラスとして扱うような2クラス識別器、すなわち、例えば「クラスA又はDに属するか、あるいはそれ以外か、すなわち、クラスB又はCに属するか」を識別するような2クラス識別器等は学習が困難であり、構築したとしてもその識別性能は低い。逆に、離れて分布するクラスを共通のクラスとして扱わないような2クラス識別器、すなわち、例えば「クラスA又はBに属するか、あるいはそれ以外か、すなわち、クラスC又はDに属するか」を識別する2クラス識別器や、「クラスA又はCに属するか、あるいはそれ以外か、すなわち、クラスB又はDに属するか」を識別する2クラス識別器等は、学習が容易であり且つ構築されると識別性能が高いものとなる。
【0044】
従って、有用性推定部11では、以上のような原理に基づき、nクラス{C1, C2, …, Cn}の学習用データにおいて、特徴空間上で離れて分布するようなクラスCi, Cj同士を共通のクラスとして扱うことがないような2クラス識別器が高い有用性を持つという基準により、2クラス識別器の有用性を算出する。この際、実際に各2クラス識別器を逐一学習して構築することなく有用性を算出することで、多大な計算コストを払うことなく有用性の高い2クラス識別器を見つけ出し、その結果を実際に学習して構築を行う識別器構築部12へと渡す。これは具体的には以下のようにして実現される。
【0045】
図6は、一実施形態に係る有用性推定部11の有用性推定処理のフローチャートである。ステップS1では、nクラスの学習用データを用いて初期識別器群及び対応する多クラス識別器の構築を行ってから、ステップS2へ進む。
【0046】
当該初期識別器群は、前述の基本構成の識別器群{Mi|i=1, 2, …, n}とすればよい。すなわち、
図2,3等で説明したのと同様に、初期識別器群を構成する各々の2クラス識別器Miを、学習用データにおいてクラスCiのサンプルを正例とし、それ以外のサンプルを負例として学習により構築したうえで、クラスCiに属する確率を出力するようにさせる。そして、対応する多クラス識別器は、当該初期識別器群{Mi|i=1, 2, …, n}(=組み合わせPi
[初期識別器群]とする)によって
図4の一般構成における前段識別器群100-Pi
[初期識別器群]を構成して、対応する統合識別器200-Pi
[初期識別器群]を学習により構築したうえで、
図4に示す構成の多クラス識別器300-Pi
[初期識別器群]として構築する。
【0047】
なお、このように多クラス識別器300-Pi
[初期識別器群]は実際に学習して構築する必要があるが、以下説明するように、当該構築された多クラス識別器300-Pi
[初期識別器群]を用いることにより、基本構成の識別器群{Mi|i=1, 2, …, n}以外のその他の膨大に存在する2クラス識別器の有用性を、実際に学習して逐一構築することなく算出することが可能となる。
【0048】
ステップS2では、当該構築した初期識別器群{Mi|i=1, 2, …, n}による多クラス識別器300-Pi
[初期識別器群]を学習用データの各サンプルに対して適用してその評価結果を求めることにより、以下の式(1)の混同行列(Confusion Matrix)V={N(i,j)}を算出して、ステップS3へ進む。
【0050】
ここで、混同行列Vのi行j列成分の値N(i,j)は、学習用データ内においてクラスCiのラベルが付与されているサンプルのうち、構築した多クラス識別器300-Pi
[初期識別器群]の適用結果がクラスCj(j=1, 2, …, n)となった個数である。
【0051】
ステップS3では、上記混同行列Vを参照して有用性を算出しながら、有用性の高い2クラス識別器の探索を行い、フローは終了する。ここで、当該混同行列Vの参照により、膨大に存在する2クラス識別器のそれぞれについて実際に学習用データを用いて逐一学習を行うことなく、有用性が算出可能となる。
【0052】
図7は、当該ステップS3における探索処理のフローチャートである。なお、当該フローの全体構造は、扱うクラス数kを増加させる方向へと適宜枝刈りを施しながら探索を実施するビームサーチ法となっている。そして、枝刈りの際のスコアとして、有用性が利用されることとなる。
【0053】
図8は、
図7のフローによる探索を、
図5のn=4の4クラス{A, B, C, D}からなる学習用データの場合について適用した例を示す図である。
図8に示す例では、[1]の矢印に示すような扱うクラス数kを増加させる方向へと探索が行われており、当該扱うクラス数k=2, 3, 4の場合の探索対象がそれぞれ[2], [3], [4]として示され、[5]に探索が完了して得られた結果が示されている。以下、適宜当該
図8の例を参照しながら、
図7の各ステップを説明する。
【0054】
ステップS11では、探索対象の2クラス識別器において扱うクラス数kを初期値の2に設定してから、ステップS12へ進む。
【0055】
ステップS12では、kクラスを2クラスに分ける2クラス識別器で可能なものを全て列挙してから、ステップS13へと進む。ここで、k=2(初期値)の場合、学習用データにおけるnクラス{C1, C2, …, Cn}の中から、k=2クラスを識別器による識別対象を特定するために選び、そのような選択で可能なものを全て列挙する。すなわち、クラスCiであるか又はクラスCjであるかの識別を行う2クラス識別器「Ci|Cj」(以降、このような表記を用いることとする)を全て列挙する。周知のように、このような2クラス識別器Ci|Cjは、n個の中から2個を選ぶ組み合わせ総数n(n-1)/2通りだけ存在する。
【0056】
図8の例では、n=4であり4クラス{A, B, C, D}が存在するので、当該k=2(初期値)の場合の2クラス識別器は4(4-1)/2=6通り存在するが、当該6通りの2クラス識別器を列挙したものが[2]に示されている。ここで前述の表記に従い、例えば2クラス識別器「A|B」は、入力データがクラスAに属するか、それともクラスBに属するかを識別する識別器である。なお、仮に当該識別器「A|B」を実際に学習で構築するとした場合には、Aを正例、Bを負例として用いればよい。
【0057】
また、ステップS12にて、k≧3の場合、すなわち、kが初期値より後の値である場合は、当該
図7のフローの直近のステップS13、すなわち、(k-1)回目のステップS13において枝刈りを受けて残った一連の2クラス識別器の各々に、さらに学習用データにおけるnクラス{C1, C2, …, Cn}の中から識別に用いられていなかった1クラスを追加した2クラス識別器を可能な限り列挙することとなる。
【0058】
図8の例では、[2]に示されたk=2に対応する6個の2クラス識別器に対して、それぞれ識別に用いられていなかった1クラスを追加して、k=3クラスの中で2クラス識別を行うようにした2クラス識別器を可能な限り列挙したのが[3]である。例えば、[2]に示すk=2の識別器「A|B」に新たな1クラスを追加して得られるk=3の2クラス識別器が、「A|B」から線をつなぐ形で[3]に示された4個の2クラス識別器「A|B, C」、「A,C|B」及び「A|B, D」及び「B|A, D」である。また同様に例えば、[3]に示すk=3の2クラス識別器「A,C|B」に新たな1クラスを追加して得られる[4]に示されたk=4の2クラス識別器が、線をつないで示された「A, C, D|B」及び「A,C|B, D」である。
【0059】
このように、
図8では、kを増加させる際に、用いるクラス数「k-1」における2クラス識別器と、当該2クラス識別器に対して新たな1クラスを区別対象として追加して得られる用いるクラス数「k」の識別器と、の間に線を設けている。このような枝構造が、後述するように枝刈りの対象となる。
【0060】
図8に示すように、当該線による対応関係は必ずしも1対1ではなく、例えば用いるクラス数k=3の識別器「A,C|B」は、k=2の識別器「A|B」の「A」の側に「C」を追加したものであり、同時に「B|C」の「C」の側に「A」を追加したものでもある。なお、当該k=3の識別器「A, C|B」は、「A又はCであるか、あるいは、Bであるか」を識別するものであり、仮に実際に学習により構築するとした場合は、「A又はC」のサンプルを正例として、「B」のサンプルを負例として、構築することができる。k≧4の任意の識別器についても同様である。
【0061】
ステップS13では、ステップS12にて列挙された当該用いるクラス数kの一連の2クラス識別器の各々につき、前述のステップS2(
図6)にて式(1)より算出した混同行列Vを参照することによりその有用性を算出して、有用性が高い閾値条件を満たす上位に該当する2クラス識別器のみを以降の探索対象として残し、当該上位に該当しなかったものは枝刈りの対象として、すなわち、削除して以降の探索対象からは除外して、ステップS14へ進む。
【0062】
なお、当該ステップS13において上位に該当するか否かを判定するための、有用性が高い閾値条件については、有用性が高い順番に並べた際の上位の所定数としてもよいし、有用性の値に対して判定用閾値を設けて、当該閾値を超える全てのものを上位に該当するとしてもよい。
【0063】
ステップS13にて、用いるクラス数k=2の場合の識別器「Ci|Cj」の有用性U[Ci|Cj]は、混同行列Vを参照して、以下の式(2),(3)で計算することができる。
【0065】
ここで、式(3)で定義されるE[Ci|Cj]は、前述の
図6のステップS1にて構築した初期識別器群{Mi|i=1, 2, …, n}による多クラス識別器300-Pi
[初期識別器群]の適用結果において、クラスCiとクラスCjとを誤判定する割合を表している。
【0066】
すなわち、式(3)の第1項目の分子は、学習用データ内においてクラスCiのラベルが付与されているサンプルのうち、多クラス識別器300-Pi
[初期識別器群]の適用結果がクラスCjとなり、誤った結果となった個数であり、その分母は学習用データ内においてクラスCiのラベルが付与されているサンプルの総数である。従って、式(3)の第1項目の意味するものは、本来はクラスCiであるサンプルがクラスCjに誤判定される割合である。同様に、式(2)の第2項目の意味するものは、本来はクラスCjであるサンプルがクラスCiに誤判定される割合である。
【0067】
従って、式(3)の誤判定率E[Ci|Cj]は、クラスCiとクラスCjとを誤判定する割合を数値化したものである。そして、当該式(3)の誤判定率の符号を逆転したものとして式(2)により定義される有用性U[Ci|Cj]により、本発明においてはクラスCi,Cj間の誤判定が多いほど、対応する識別器Ci|Cjの有用性U[Ci|Cj]は逆に低いものとして定義する。この理由は次の通りである。
【0068】
一般に、特徴空間上で距離が遠く離れたクラスCi,Cj同士を互いに識別する場合は、誤判定は少ない。また同様にして逆に、互いに誤判定されることが多いようなクラスCi,Cjは、特徴空間上で距離が互いに近いこととなる。こうして、
図5で説明したような、追加対象として好ましい2クラス識別器を選別する基準としての、クラス同士が特徴空間上において近いか遠いかという位置関係を、混同行列Vより算出可能な誤判定率を介して推定することができる。
【0069】
本発明においては
図5における説明のように、互いに近いクラスCi,Cj同士を共通のクラスとして識別するような2クラス識別器が、追加対象として好ましいものと判断するが、そのように互いに近いクラスCi,Cjを共通クラスとして扱うのではなく逆に互いに異なるクラスとして識別しようとした場合には、誤判定率が大きくなる。従って、式(2)のように、識別器Ci|Cjの誤判定率E[Ci|Cj]が大きいということは、クラスCi,Cjは互いに近い距離にあるものであり、従って高精度な識別器を得るためにはクラスCi,Cjは共通のクラスとして扱うべきであり、そのように扱っていない識別器Ci|Cjはその有用性U[Ci|Cj]が低いものとして定義する。
【0070】
以上、式(2), (3)では区別のために用いるクラス数k=2の場合の各2クラス識別器の有用性について説明したが、k≧3の場合も全く同様に、誤判定率を算出したうえで、その符号を逆転したものとして各2クラス識別器の有用性を推定することができる。例えば、k=3の場合については、以下の式(4),(5)により、2クラス識別器「Ci
1,Ci
2|Cj」(クラスCi
1又はCi
2であるか、あるいはクラスCjであるかを識別する2クラス識別器)の有用性U[Ci
1,Ci
2|Cj]を推定することができる。すなわち(5)に示すような、クラスCi
1又はCi
2であるか、あるいはクラスCjであるかが多クラス識別器300-Pi
[初期識別器群]によって誤判定される割合E[Ci
1,Ci
2|Cj]の符号を逆転したものとして、(4)に示すような有用性U[Ci
1,Ci
2|Cj]を算出できる。
【0072】
なお、以上の式(2)〜(5)の例では、2クラス識別器「C
[一般]」についてその誤判定率E[C
[一般]]の符号を逆転したものとして有用性U[C
[一般]]を定めたが、任意の減少関数あるいは単調減少関数fによって、有用性U[C
[一般]]=f(E[C
[一般]])として定めるようにしてもよい。符号を逆転したのは当該関数fの1例である。
【0073】
以上、ステップS13の枝刈りの実例を
図8を参照して説明する。
図8では、算出された有用性が上位所定数に該当せず、枝刈りの対象と判定された識別器が点線で囲う形で示されている。一方、枝刈りの対象とはならなかった識別器は実線で囲う形で示されている。
【0074】
図8では例えば、[2]に示すk=2の段階では6個の識別器は全て枝刈りの対象とはなっていない。[3]に示すk=3の段階では、4個の識別器「A|B,C」、「A|D,C」、「B,C|D」及び「B|A,D」が枝刈りの対象となっている。これは、
図5でクラス{A, B, C, D}のサンプルの特徴ベクトルの分布を示した通り、「クラスA及びD」と「クラスB及びC」とは互いに遠く離れて分布しており、これらを共通のクラスに属するものとして構築した2クラス識別器は識別性能が低いので、有用性が低いと算出された結果である。例えば識別器「A|B,C」は、共通のクラスとするべきではない「クラスB及びC」を共通のクラスとして扱うものであるので、有用性が低い。そして、[4]に示すk=4の段階でも同様にして、実線で示す2個の識別器「A,C|D,B」及び「A,B|C,D」が枝刈りの対象からは逃れ、その他の識別器は枝刈りの対象となっている。
【0075】
ステップS14では、当該フローの終了判定を条件を満たすか否かを判断し、終了に該当する場合にはステップS15へ進み、該当しない場合にはステップS16へと進む。ステップS16では、扱うクラス数kの値を1だけ増分(プログラミング分野の慣例表記により「k++」)してから、ステップS12へと戻る。
【0076】
ここで、ステップS14における終了判定の条件は、以下の(1)または(2)とすることができる。
(1)当該時点における扱うクラス数kの値が、「k=n」である、すなわち、学習用データにおけるクラス数nに到達したこと
(2)当該時点の直近のステップS13において、枝刈り対象と判定されずに残った2クラス識別器の個数が所定閾値を超えており、多いと判定されること
【0077】
ステップS15では、当該フローによる探索結果を出力して、フローを終了する。探索結果としては、直近のステップS13において枝刈り対象と判定されずに残った、扱うクラス数kの一連の2クラス識別器を採用することができる。
【0078】
図8の例では、n=4クラスの学習用データを対象としており、k=n=4に到達した時点でステップS14における終了判定の条件(1)が満たされてステップS15へと至り、当該k=4の時点において枝刈り対象とならずに残った2個の2クラス識別器「A,C|B,D」及び「A,B|C,D」(共に図中、灰色で表記してある)が、[5]に示すように探索結果となる。
【0079】
以上、有用性推定部11の処理を説明した。識別器構築部12では、有用性推定部11によって得られた追加対象としての一連の有用性の高い2クラス識別器と、基本構成としての初期識別器群{Mi|i=1, 2, …, n}と、の組み合わせの中から、最適な又は準最適な多クラス識別器を探索して構築し、多クラス識別器構築装置10による出力となす。当該探索は前述のように、全数探索により最適なものを見つけてもよいし、組み合わせの数が多い場合であれば前述の非特許文献3の手法により準最適なものを見つけるようにしてもよい。
【0080】
図8の例であれば、基本構成としての初期識別器群{1A, 1B, 1C, 1D}(
図2に図示)と、追加対象としての識別器「A,C|B,D」及び「A,B|C,D」の組み合わせの中から、最適な多クラス識別器が探索され構築される。従って、最終的に構築される多クラス識別器は、追加構成として「A,C|B,D」及び「A,B|C,D」の片方か両方かの3通りのいずれかと、基本構成としての初期識別器群{1A, 1B, 1C, 1D}と、を
図4で示す前段識別器群として有する多クラス識別器となる。
【0081】
以下、本発明における補足的事項(1)〜(4)を説明する。
【0082】
(1)
図7のステップS15の別の実施形態として、次のようにしてもよい。すなわち、探索結果として、直近のステップS13において枝刈り対象と判定されずに残った、扱うクラス数kの一連の2クラス識別器の中でさらに、有用性が上位のもののみに絞り込むようにしてもよい。上位判定には、所定の閾値条件を利用すればよい。
【0083】
あるいは、当該クラス数kよりも小さいクラス数k-1以前の候補で、枝刈り対象と判定されずに残ったものをも含めて、探索結果としてもよい。この場合、クラス数kごとに算出された有用性に重みを付与して、kの値が異なる候補同士で有用性の比較を実施し、有用性が上位のもののみに絞り込めばよい。ただし、一般には扱うクラス数kの値が大きいような2クラス識別器ほど、高精度に識別を実施しうると考えられるので、当該付与する重みは、kの値が大きいほど有用性を増大させるような重みとすることが好ましい。
【0084】
(2)本発明において構築される多クラス識別器を構成する2クラス識別器としては、非特許文献4に紹介されているように、サポートベクトルマシン、AdaBoost、線形回帰、ロジスティック回帰、決定木などが利用可能である。
【0085】
(3)
図1の多クラス識別器構築装置10は、CPU(中央演算装置)、メモリ及び各種の入出力インタフェースといった周知のハードウェアで構成されるコンピュータによって実現することが可能である。この場合、CPUが命令を読み込み、多クラス識別器構築装置10の各部を実現するための所定の命令を実行することとなる。この際必要となるデータはメモリに格納しておき、適宜参照すればよい。本発明は、コンピュータをこのように多クラス識別器構築装置10として機能させるプログラムとしても提供可能である。また、本発明は、多クラス識別器構築装置10の動作方法としても提供可能である。
【0086】
(4)本発明により構築された多クラス識別器は、種々の分野で利用可能である。例えば、文書のカテゴリ分類に利用することができる。この場合、文書からは周知手法により文書ベクトル等の特徴ベクトルを抽出しておく。学習用データにおいては、多クラスの各カテゴリ(例えば、「ニュース」、「スポーツ」又は「音楽」の3カテゴリなど)のいずれに該当するかをラベルとして予め付与しておく。