(57)【要約】【課題】2クラス識別器を組み合わせた多クラス識別器を構築するに際して、最適組み合わせないし準最適組み合わせの探索対象となる各組み合わせにつき、逐一学習することなく計算量を削減することが可能な多クラス識別器構築装置を提供する。【解決手段】学習用データには、予め各サンプルにつき特徴ベクトルと多クラス内のいずれかの所属クラスとが与えられている。有用性推定部11は、各2クラス識別器の識別性能を有用性として推定する。識別器構築部12は、推定された有用性が高いと判定される2クラス識別器を含む組み合わせの中から、最適な又は準最適な多クラス識別器を探索して構築する。有用性推定では、学習用データにおける各サンプルの特徴ベクトルの分布に基づき、クラス同士の距離を推定し、当該距離が離れているクラスを共通のクラスとして扱うような2クラス識別器ほど、その有用性が低いものとして推定する。【選択図】図１
2015204043.tif 000002
【特許請求の範囲】
【請求項１】
各サンプルにつき特徴ベクトルと多クラス内のいずれかの所属クラスとが与えられた学習用データを用いて、2クラス識別器の組み合わせにより最適な又は準最適な多クラス識別器を構築する多クラス識別器構築装置であって、
各2クラス識別器の識別性能を有用性として推定する有用性推定部と、
前記推定された有用性が高いと判定される2クラス識別器を含む組み合わせの中から、最適な又は準最適な多クラス識別器を探索して構築する識別器構築部と、を備え、
前記有用性推定部は、前記学習用データにおける各サンプルの特徴ベクトルの分布に基づき、クラス同士の距離を推定し、当該距離が離れているクラスを共通のクラスとして扱うような2クラス識別器ほど、その有用性が低いものとして推定することを特徴とする多クラス識別器構築装置。
【請求項２】
前記学習用データの各サンプルにはnクラス{C1, C2, …, Cn}のいずれかの所属クラスが与えられ、
前記識別器構築部は、各クラスCi(i=1, 2, … , n)であるか否かを識別する2クラス識別器をMiとして、初期識別器群{Mi|i=1, 2, … ,n}と、その他の2クラス識別器の組み合わせと、の中から、最適な又は準最適な多クラス識別器を探索して構築し、
前記有用性推定部は、前記その他の2クラス識別器の各々につき、識別性能を有用性として推定することで、当該有用性の高いと判定される2クラス識別器のみを、前記識別器構築部における探索の対象とさせることを特徴とする請求項１に記載の多クラス識別器構築装置。
【請求項３】
前記有用性推定部は、
入力データに対して前記初期識別器群にそれぞれのクラスに該当する確率を出力させる前段識別器群と、当該出力された確率に基づいて入力データがいずれのクラスに属するかを判定する統合識別器と、からなる初期多クラス識別器を前記学習用データを用いて構築し、
前記学習用データに対して当該初期多クラス識別器を適用して得られる混同行列に基づいて、互いに誤判定が多いクラス同士ほど、当該クラス同士の距離が近いものとして推定することを特徴とする請求項２に記載の多クラス識別器構築装置。
【請求項４】
前記有用性推定部は、前記その他の2クラス識別器の各々につき、当該2クラス識別器を構築するに際してnクラス{C1, C2, …, Cn}の中で区別するのに用いるクラス数ｋの小さい側から順次候補を列挙すると共にその有用性を推定し、有用性の高いと判定される2クラス識別器のみを選別し、前記識別器構築部における探索の対象とさせることを特徴とする請求項２または３に記載の多クラス識別器構築装置。
【請求項５】
前記有用性推定部は、前記クラス数kの大きくなる方向へと前記推定された有用性に基づく枝刈りを実施しながらビームサーチによって、有用性の高いと判定される2クラス識別器のみを選別し、前記識別器構築部における探索の対象とさせることを特徴とする請求項４に記載の多クラス識別器構築装置。
【請求項６】
前記有用性推定部は、前記ビームサーチを、前記クラス数kがnに到達したこと、または、当該大きくなる方向へ変化させるクラス数ｋにおける2クラス識別器の候補のうち、前記枝刈りの対象とはならなかった個数が所定値を超えたこと、によって終了し、当該終了した際のクラス数kにおいて前記枝刈りの対象とはならなかった2クラス識別器を、前記識別器構築部における探索の対象とさせることを特徴とする請求項５に記載の多クラス識別器構築装置。
【請求項７】
前記2クラス識別器がサポートベクトルマシンであることを特徴とする請求項１ないし６のいずれかに記載の多クラス識別器構築装置。
【請求項８】
各サンプルにつき特徴ベクトルと多クラス内のいずれかの所属クラスとが与えられた学習用データを用いて、2クラス識別器の組み合わせにより最適な又は準最適な多クラス識別器を構築する多クラス識別器構築方法であって、
各2クラス識別器の識別性能を有用性として推定する有用性推定段階と、
前記推定された有用性が高いと判定される2クラス識別器を含む組み合わせの中から、最適な又は準最適な多クラス識別器を探索して構築する識別器構築段階と、を備え、
前記有用性推定段階では、前記学習用データにおける各サンプルの特徴ベクトルの分布に基づき、クラス同士の距離を推定し、当該距離が離れているクラスを共通のクラスとして扱うような2クラス識別器ほど、その有用性が低いものとして推定することを特徴とする多クラス識別器構築方法。
【請求項９】
コンピュータを請求項１ないし７のいずれかに記載の多クラス識別器構築装置として機能させることを特徴とする多クラス識別器構築プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、2クラス識別器の組み合わせで多クラス識別器を構築する多クラス識別器構築装置、方法及びプログラムに関する。
【背景技術】
【０００２】
本来的には2クラス識別器であるサポートベクトルマシン（SVM）等の識別器で多クラス識別を行う場合の周知手法として、一対一法(one-versus-one)や一対他法(one-versus-rest)がある。これらは、2クラス識別器を複数利用することで、多クラス分類を実現する手法である。
【０００３】
また、SVM等により多クラス分類を実現するその他の周知手法として、同様に2クラス識別器を複数利用したうえでさらに、誤り訂正符号のアプローチにより該当クラスを決定する誤り訂正出力符号(error correcting output code; ECOC)がある。
【０００４】
なお、SVMの決定関数は判定対象サンプルに対する識別面からの距離を返すが、異なる2つのSVMどうしで判定対象サンプルに対するそれぞれの決定関数の値を直接比較しても意味はない。そこで、各SVMごとに決定関数の値を該当クラスの所属確率に変換し、もっとも大きい所属確率を出力したSVMのジャンルを推定結果として採用する等のアプローチが必要となる。例えば上記ECOC方式では、所属確率の多数決により該当クラスを決定している。ここで、所属確率への変換手法に関しては、例えば非特許文献１，２に記載されている。
【０００５】
非特許文献３では、2クラス識別器の組み合わせにより多クラス識別器を実現する手法には、以上のような比較的簡素な手法以外にも多種多様な組み合わせが存在することに注目して、利用可能な組み合わせの中から最適な組み合わせを探索することを検討している。この際、仮に全数探索を行い真の最適組み合わせを見つけようとすると計算量が膨大になってしまうため、非特許文献３では遺伝的アルゴリズム等を用いて準最適な組み合わせを求めている。そして、当該準最適な組み合わせで構築された多クラス識別器が、一対一法や一対他法提案手法、ECOC手法のいずれよりも識別性能が高いことを確認している。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】J. C. Platt, "Probabilistic Outputs for Support Vector Machines and Comparison to Regularized Likelihood Methods," In Advances in Large Margin Classifiers, pp.1-11. MIT Press 1999．
【非特許文献２】B. Zadronzy and C. Elkan, "Transformation Classifier Scores into Accurate Multiclass Probability Estimation," In Proc. Of the Eighth International Conference on Knowledge Discovery and Data Mining (KDD'02), pp.694-699 2002.
【非特許文献３】村山、松川、栗田、多クラス識別問題における２クラス識別器の選択、信学技報 IEICE Technical Report PRMU2009-121(2009-11)
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来技術には次のような課題があった。すなわち、非特許文献３の準最適な組み合わせを求める手法であっても、候補となった２クラス識別器の組み合わせの識別性能を評価するため、各組み合わせ毎に使用される２クラス識別器群を逐一学習する必要があり、大規模データに対してはやはり膨大な計算量が必要となるという課題があった。
【０００８】
本発明は、上記従来技術の課題に鑑み、最適組み合わせないし準最適組み合わせの探索対象となる各組み合わせにつき、逐一学習することなく計算量を削減することが可能な、多クラス識別器構築装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明は、各サンプルにつき特徴ベクトルと多クラス内のいずれかの所属クラスとが与えられた学習用データを用いて、2クラス識別器の組み合わせにより最適な又は準最適な多クラス識別器を構築する多クラス識別器構築装置であって、各2クラス識別器の識別性能を有用性として推定する有用性推定部と、前記推定された有用性が高いと判定される2クラス識別器を含む組み合わせの中から、最適な又は準最適な多クラス識別器を探索して構築する識別器構築部と、を備え、前記有用性推定部は、前記学習用データにおける各サンプルの特徴ベクトルの分布に基づき、クラス同士の距離を推定し、当該距離が離れているクラスを共通のクラスとして扱うような2クラス識別器ほど、その有用性が低いものとして推定することを特徴とする。
【００１０】
また、本発明は、各サンプルにつき特徴ベクトルと多クラス内のいずれかの所属クラスとが与えられた学習用データを用いて、2クラス識別器の組み合わせにより最適な又は準最適な多クラス識別器を構築する多クラス識別器構築方法であって、各2クラス識別器の識別性能を有用性として推定する有用性推定段階と、前記推定された有用性が高いと判定される2クラス識別器を含む組み合わせの中から、最適な又は準最適な多クラス識別器を探索して構築する識別器構築段階と、を備え、前記有用性推定段階では、前記学習用データにおける各サンプルの特徴ベクトルの分布に基づき、クラス同士の距離を推定し、当該距離が離れているクラスを共通のクラスとして扱うような2クラス識別器ほど、その有用性が低いものとして推定することを特徴とする。
【００１１】
さらに、本発明は、コンピュータを上記多クラス識別器構築装置として機能させる多クラス識別器構築プログラムであることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、学習用データの特徴ベクトルの分布に基づくクラス間の距離に基づいて、実際に学習することなく組み合わせ候補としての2クラス識別器の識別精度の高さを有用性という形で推定し、当該有用性の高い2クラス識別器を含む組み合わせのみを実際の探索対象とする。従って、有用性に基づく探索対象のいわば絞り込みが実施されるので、探索対象の全てを逐一学習することなく計算量を削減することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】一実施形態に係る多クラス識別器構築装置の機能ブロック図である。
【図２】2クラス識別器の組み合わせによって、多クラス識別器を構築した１つの例を示す図である。
【図３】図２の組み合わせにさらに2クラス識別器を追加した別の組み合わせによって、多クラス識別器を構築した1つの例を示す図である。
【図４】一般的な例としての、2クラス識別器の組み合わせにより構築される多クラス識別器を示す図である。
【図５】有用性推定部による有用性の推定の原理を説明するための図である。
【図６】一実施形態に係る有用性推定部による有用性推定処理のフローチャートである。
【図７】図６の第三ステップにおける探索処理のフローチャートである。
【図８】図７のフローによる探索を図５の学習用データの場合について適用した例を示す図である。
【発明を実施するための形態】
【００１４】
図１は、一実施形態に係る多クラス識別器構築装置の機能ブロック図である。多クラス識別器構築装置10は、有用性推定部11及び識別器構築部12を備える。各部11,12の概要は以下の通りである。
【００１５】
有用性推定部11は、多クラス識別器を構築するための学習用データを読み込み、最終的に構築する多クラス識別器における組み合わせを構成する候補としての2クラス識別器の各々につきその有用性を推定して、有用性が高いと判定される2クラス識別器を求め、その結果を識別器構築部12に渡す。
【００１６】
ここで、学習用データは、複数M個の各サンプルi(i=1, 2 , …, M)につき、n個のクラスのいずれに属するかがラベルC[i]∈{C1, C2, …, Cn}として与えられると共に、SVM等の2クラス識別器を適用するための特徴ベクトルF[i]が抽出されたものである。
【００１７】
本発明においては、多クラス識別器構築装置10によって最終的に構築されるnクラスを識別する多クラス識別器を、次のような組み合わせによる構成とする。すなわち、各クラスCi(i=1, 2, …, n)であるか否かを識別する識別器をそれぞれ識別器Miとすると、nクラス識別問題におけるいわば基本的な2クラス識別器群としての識別器群{Mi|i=1, 2, …, n}と、当該基本構成としての識別器群{Mi|i=1, 2, …, n}に対してさらに追加的な情報を与えるその他の2クラス識別器（例えばクラスC1又はC2であるかそれ以外かの識別器）と、の組み合わせによって多クラス識別器を構築する。
【００１８】
識別器構築部12は、基本構成の識別器群{Mi|i=1, 2, …, n}に対して追加する、有用性推定部11により推定された有用性が高い2クラス識別器の各組み合わせにつき、学習用データを用いて実際に学習を行うことで、最適な又は準最適な多クラス識別器を構築し、多クラス識別器構築装置10による出力となす。ここで、全数探索により最適な組み合わせとしての多クラス識別器を学習により構築してもよいし、前述の非特許文献３の手法により全数探索を避けて、準最適な組み合わせとしての多クラス識別器を学習により構築してもよい。
【００１９】
本発明においては、上記のように基本構成の識別器群{Mi|i=1, 2, …, n}に対してその他の2クラス識別器を追加したものとして、最終的に求める多クラス識別器を構築する。ここで、追加されるその他の2クラス識別器のそれぞれが識別性能の高いものであれば、当該追加した結果構築される多クラス識別器も識別性能が高いことが期待される。
【００２０】
そこで、追加すべき2クラス識別器として、識別性能が高いものを見つけることが望まれる。しかし、追加されるその他の2クラス識別器は、nクラス{C1, C2, …, Cn}の全部または一部を2クラスに分ける任意の設定ごとに存在するので、特にクラス数nが大きい場合、その種類が膨大に存在することとなる。
【００２１】
仮に、当該膨大に存在する2クラス識別器をそれぞれ実際に逐一学習して構築し、それぞれの識別性能を比較することで高い識別性能のものを見つけ出すとすると、過大な計算負荷を要する。さらに、基本構成の識別器群{Mi|i=1, 2, …, n}と追加した2クラス識別器とによって多クラス識別器を構築する際にも、学習が必要（図２等を参照して説明する「統合識別器」の学習が必要）であるので、最適な多クラス識別器を見つけるためにはさらに計算負荷を要する。
【００２２】
上記のような計算負荷上の課題に対して、本発明においては後述する手法により、有用性推定部11が、追加すべき候補としての2クラス識別器を学習により実際に逐一構築することなく、その識別性能の高さを有用性という形で推定することができる。そして、当該有用性が高い2クラス識別器のみを追加対象として予め絞り込んだうえで、識別器構築部12が多クラス識別器を構築して最適ないし準最適なものを決定する。従って、有用性という情報による絞り込みを経ずに各組み合わせの多クラス識別器を逐一的に学習して構築する従来技術に比べて、計算負荷を抑制することが可能となる。
【００２３】
ここで、本発明において2クラス識別器の組み合わせで構築される多クラス識別器の詳細について説明する。
【００２４】
図２は、2クラス識別器の組み合わせにより多クラス識別器を構築した１つの例を示す図である。ここでは学習用データにおいてクラス数n=4であり、{A, B, C, D}の4つのクラスがラベルとして付与されている場合の例が示されている。
【００２５】
図２では、当該n=4の4クラス{A, B, C, D}を識別するための最も基本的な組み合わせP1として、入力データがクラスA〜Dに該当する確率をそれぞれ出力する識別器1A〜1Dで構成された組み合わせP1での前段識別器群100-P1と、当該組み合わせP1での統合識別器200-P1と、を備えて組み合わせP1による多クラス識別器300-P1が構成されている。
【００２６】
当該多クラス識別器300-P1に対して特徴ベクトルの形で入力される入力データは、図示するように、まず、前段識別器群100-P1において識別器1A〜1DによりクラスA〜Dに該当する確率がそれぞれ求められる。そして、当該求められたクラスA〜Dに該当する確率はそれぞれ、統合識別器200-P1に入力され、最終結果として、入力データがクラスA〜Dのいずれに該当するかという識別結果が得られる。
【００２７】
ここで、このような多クラス識別器300-P1を実際に学習用データを用いて構築する際は、前段識別器群100-P1に含まれる2クラスの識別器1A〜1Dと、対応する統合識別器200-P1と、の5個の識別器をそれぞれ同じ学習用データを用いた学習により構築する必要がある。
【００２８】
識別器1Aの構築においては、まず、学習用データのうちクラスAに属するサンプルを正例とし、その他のクラス、すなわち、クラスB,C,Dのいずれかに属するサンプルを負例として、当該識別器の種類に応じた周知手法により学習を行う。さらに、前述の非特許文献１に開示された手法によりシグモイド関数等へのフィッティングを実施することで、当該学習された識別器の出力をクラスAに該当するか否かという形式（2値出力の形式）から、クラスAに該当する確率の形式で与えるようにして、識別器1Aが構築される。識別器1B〜1Dの構築も同学習用データによって同様に行う。
【００２９】
統合識別器200-P1の構築は、同学習用データの各サンプルにつき、上記構築された前段識別器群100-P1の各識別器1A〜1Dに入力して得られたそれぞれの出力と、ラベルとして与えられている各サンプルがクラス{A, B, C, D}のいずれに属するかの情報と、を用いて学習することによって構築される。具体的には、前述の非特許文献２、あるいは以下の非特許文献４に開示された手法によって、統合識別器200-P1を構築することができる。
【００３０】
[非特許文献４] 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.
【００３１】
以上、図２の例では、クラス数n=4の4クラス{A, B, C, D}を識別するための最も基本的な2クラス識別器の組み合わせP1で構築された多クラス識別器300-P1を説明した。このような2クラス識別器の組み合わせは多数存在する。例えば、図３は、図２と同様のn=4の4クラス{A, B, C, D}の学習用データのもとで、さらに識別性能を向上させるべく、組み合わせP1に対して別の識別器を追加した組み合わせP2によって、図２とは別の多クラス識別器300-P2を構築した例である。
【００３２】
図３に示すように、組み合わせP2は、図２で用いた基本的な2クラスの識別器1A〜1Dからなる組み合わせP1にさらに、その他の2クラス識別器として2クラスの識別器2AC及び識別器2ABを追加したものである。識別器2ACは、入力データがクラスA又はCに該当する確率を出力し、識別器2ABは、入力データがクラスA又はBに該当する確率を出力する。そして、全体的な構成は図２と同様であり、組み合わせP2の各識別器1A〜1D,2AC,2ABを含んで構成される前段識別器群100-P2と、当該各識別器の出力する確率を受け取って入力データが{A, B, C, D}のいずれのクラスに属するかを出力する統合識別器200-P2と、を備えて多クラス識別器300-P2が構成される。
【００３３】
多クラス識別器300-P2を学習で構築する際も、図２の場合と同様に、構成される各識別器1A〜1D,2AC,2AB及び300-P2をそれぞれ共通の学習用データを用いて学習によって構築することとなる。ここで、識別器1A〜1Dの学習による構築は図２で説明した通りである。
【００３４】
一方、識別器2ACの学習による構築も同様であり、例えば次の通りである。すなわち、学習用データにおいてクラスA又はCに属するサンプルを正例とし、それ以外、すなわちクラスB又はDに属するサンプル（あるいは、クラスB又はDのいずれかに属するサンプル）を負例とし、学習によって構築され、さらに、出力を確率の形式で与えるようにシグモイド関数等でフィッティングされて得られる。識別器2ABの構築も同様である。
【００３５】
そして、統合識別器200-P2も、学習用データの各サンプルに対する以上構築された前段識別器群100-P2の出力と、学習用データにおいて各サンプルに付与された所属クラスのラベルと、を用いて学習することで、図２の統合識別器200-P1と同様に構築することができる。
【００３６】
図４は、以上の図２，３の個別例を一般化して、2クラス識別器の組み合わせPiにより構成される多クラス識別器300-Piを示す図である。組み合わせPiは合計N[i]個の2クラス識別器1, 2, …, N[i]からなり、これら組み合わせPiの識別器1, 2, …, N[i]を含んだ前段識別器群100-Piと、対応する統合識別器200-Piと、を備えて多クラス識別器300-Piが構築される。
【００３７】
組み合わせPiの各識別器1, 2, …, N[i]はそれぞれ、学習用データにおけるn個のクラスの全て又は任意の一部をどのように2分割するかの設定によって定まり、当該設定に従って図２，３で説明したのと同様にして学習により構築し、さらに、出力を確率の形式で与えるようにして構築することができる。例えば、図２，３の例のように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であるか」の設定等が可能である。
【００３８】
そして、統合識別器200-Piは、図２，３の場合と同様に、学習用データの各サンプルに対する構築された前段識別器群100-Piの出力と、各サンプルにラベルとして付与されている所属クラスと、を用いて学習によって構築することができる。
【００３９】
ここで、図１の各部の説明に戻り、以下、有用性推定部11及び識別器構築部12の処理の詳細をそれぞれ説明する。
【００４０】
図５は、本発明において有用性推定部11が有用性を推定する原理を説明するための図である。図５では、図２，３等の説明と同様に、n=4の4クラス{A, B, C, D}からなる学習用データの各サンプルの特徴ベクトルの特徴空間内における分布が概念的に示されている。ここで、各特徴ベクトルの位置を「○」で表し、右側の凡例欄に示すように所属クラス{A, B, C, D}の区別を「○」内に描くテクスチャの区別で表している。なお、点線は各サンプルのクラス区別の理解補助のために示してあり、特徴空間におけるクラス境界を意味するものではない。
【００４１】
図５では、クラスA,B間、クラスB,D間、クラスD,C間及びクラスC,A間は概ね隣接して互いに近い距離にあり、これに対してクラスA,D間及びクラスB,C間は距離が大きく離れているという関係にある、各クラスの特徴ベクトルの分布が示されている。2クラス識別器の識別性能の有用性を推定する原理は次の通りであり、学習用データの各クラスの特徴ベクトルの分布に関連する次のような傾向に基づくものである。
【００４２】
すなわち、nクラス{C1, C2, …, Cn}の学習用データにおいて、特徴空間上で離れて分布するようなクラスCi, Cjを、2クラス識別器の識別する共通のクラスとして扱うような2クラス識別器は、一般に学習が困難（学習のための計算負荷が過大）であり、且つ学習して構築されても識別性能が低いものとなってしまうという傾向である。また逆に、nクラスの学習用データにおいて、特徴空間上で離れて分布するようなクラスCi, Cjは、2クラス識別器の識別する共通のクラスとして扱わないような2クラス識別器は、学習が容易であり且つ学習して構築されると識別性能が高いという傾向がある。
【００４３】
図５の例では、特徴空間上で互いに離れて分布するクラスA,D同士あるいはクラスB,C同士を共通のクラスとして扱うような2クラス識別器、すなわち、例えば「クラスA又はDに属するか、あるいはそれ以外か、すなわち、クラスB又はCに属するか」を識別するような2クラス識別器等は学習が困難であり、構築したとしてもその識別性能は低い。逆に、離れて分布するクラスを共通のクラスとして扱わないような2クラス識別器、すなわち、例えば「クラスA又はBに属するか、あるいはそれ以外か、すなわち、クラスC又はDに属するか」を識別する2クラス識別器や、「クラスA又はCに属するか、あるいはそれ以外か、すなわち、クラスB又はDに属するか」を識別する2クラス識別器等は、学習が容易であり且つ構築されると識別性能が高いものとなる。
【００４４】
従って、有用性推定部11では、以上のような原理に基づき、nクラス{C1, C2, …, Cn}の学習用データにおいて、特徴空間上で離れて分布するようなクラスCi, Cj同士を共通のクラスとして扱うことがないような2クラス識別器が高い有用性を持つという基準により、2クラス識別器の有用性を算出する。この際、実際に各2クラス識別器を逐一学習して構築することなく有用性を算出することで、多大な計算コストを払うことなく有用性の高い2クラス識別器を見つけ出し、その結果を実際に学習して構築を行う識別器構築部12へと渡す。これは具体的には以下のようにして実現される。
【００４５】
図６は、一実施形態に係る有用性推定部11の有用性推定処理のフローチャートである。ステップS1では、nクラスの学習用データを用いて初期識別器群及び対応する多クラス識別器の構築を行ってから、ステップS2へ進む。
【００４６】
当該初期識別器群は、前述の基本構成の識別器群{Mi|i=1, 2, …, n}とすればよい。すなわち、図２，３等で説明したのと同様に、初期識別器群を構成する各々の2クラス識別器Miを、学習用データにおいてクラスCiのサンプルを正例とし、それ以外のサンプルを負例として学習により構築したうえで、クラスCiに属する確率を出力するようにさせる。そして、対応する多クラス識別器は、当該初期識別器群{Mi|i=1, 2, …, n}(=組み合わせPi[初期識別器群]とする)によって図４の一般構成における前段識別器群100-Pi[初期識別器群]を構成して、対応する統合識別器200-Pi[初期識別器群]を学習により構築したうえで、図４に示す構成の多クラス識別器300-Pi[初期識別器群]として構築する。
【００４７】
なお、このように多クラス識別器300-Pi[初期識別器群]は実際に学習して構築する必要があるが、以下説明するように、当該構築された多クラス識別器300-Pi[初期識別器群]を用いることにより、基本構成の識別器群{Mi|i=1, 2, …, n}以外のその他の膨大に存在する2クラス識別器の有用性を、実際に学習して逐一構築することなく算出することが可能となる。
【００４８】
ステップS2では、当該構築した初期識別器群{Mi|i=1, 2, …, n}による多クラス識別器300-Pi[初期識別器群]を学習用データの各サンプルに対して適用してその評価結果を求めることにより、以下の式(1)の混同行列(Confusion Matrix)V={N(i,j)}を算出して、ステップS3へ進む。
【００４９】
【数１】
2015204043.tif 000003
【００５０】
ここで、混同行列Vのi行j列成分の値N(i,j)は、学習用データ内においてクラスCiのラベルが付与されているサンプルのうち、構築した多クラス識別器300-Pi[初期識別器群]の適用結果がクラスCj(j=1, 2, …, n)となった個数である。
【００５１】
ステップS3では、上記混同行列Vを参照して有用性を算出しながら、有用性の高い2クラス識別器の探索を行い、フローは終了する。ここで、当該混同行列Vの参照により、膨大に存在する2クラス識別器のそれぞれについて実際に学習用データを用いて逐一学習を行うことなく、有用性が算出可能となる。
【００５２】
図７は、当該ステップS3における探索処理のフローチャートである。なお、当該フローの全体構造は、扱うクラス数kを増加させる方向へと適宜枝刈りを施しながら探索を実施するビームサーチ法となっている。そして、枝刈りの際のスコアとして、有用性が利用されることとなる。
【００５３】
図８は、図７のフローによる探索を、図５のn=4の4クラス{A, B, C, D}からなる学習用データの場合について適用した例を示す図である。図８に示す例では、[1]の矢印に示すような扱うクラス数kを増加させる方向へと探索が行われており、当該扱うクラス数k=2, 3, 4の場合の探索対象がそれぞれ[2], [3], [4]として示され、[5]に探索が完了して得られた結果が示されている。以下、適宜当該図８の例を参照しながら、図７の各ステップを説明する。
【００５４】
ステップS11では、探索対象の2クラス識別器において扱うクラス数kを初期値の2に設定してから、ステップS12へ進む。
【００５５】
ステップ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通りだけ存在する。
【００５６】
図８の例では、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を負例として用いればよい。
【００５７】
また、ステップS12にて、k≧3の場合、すなわち、kが初期値より後の値である場合は、当該図７のフローの直近のステップS13、すなわち、(k-1)回目のステップS13において枝刈りを受けて残った一連の2クラス識別器の各々に、さらに学習用データにおけるnクラス{C1, C2, …, Cn}の中から識別に用いられていなかった1クラスを追加した2クラス識別器を可能な限り列挙することとなる。
【００５８】
図８の例では、[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」である。
【００５９】
このように、図８では、kを増加させる際に、用いるクラス数「k-1」における2クラス識別器と、当該2クラス識別器に対して新たな1クラスを区別対象として追加して得られる用いるクラス数「k」の識別器と、の間に線を設けている。このような枝構造が、後述するように枝刈りの対象となる。
【００６０】
図８に示すように、当該線による対応関係は必ずしも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の任意の識別器についても同様である。
【００６１】
ステップS13では、ステップS12にて列挙された当該用いるクラス数ｋの一連の2クラス識別器の各々につき、前述のステップS2（図６）にて式(1)より算出した混同行列Vを参照することによりその有用性を算出して、有用性が高い閾値条件を満たす上位に該当する2クラス識別器のみを以降の探索対象として残し、当該上位に該当しなかったものは枝刈りの対象として、すなわち、削除して以降の探索対象からは除外して、ステップS14へ進む。
【００６２】
なお、当該ステップS13において上位に該当するか否かを判定するための、有用性が高い閾値条件については、有用性が高い順番に並べた際の上位の所定数としてもよいし、有用性の値に対して判定用閾値を設けて、当該閾値を超える全てのものを上位に該当するとしてもよい。
【００６３】
ステップS13にて、用いるクラス数k=2の場合の識別器「Ci|Cj」の有用性U[Ci|Cj]は、混同行列Vを参照して、以下の式(2),(3)で計算することができる。
【００６４】
【数２】
2015204043.tif 000004
【００６５】
ここで、式(3)で定義されるE[Ci|Cj]は、前述の図６のステップS1にて構築した初期識別器群{Mi|i=1, 2, …, n}による多クラス識別器300-Pi[初期識別器群]の適用結果において、クラスCiとクラスCjとを誤判定する割合を表している。
【００６６】
すなわち、式(3)の第1項目の分子は、学習用データ内においてクラスCiのラベルが付与されているサンプルのうち、多クラス識別器300-Pi[初期識別器群]の適用結果がクラスCjとなり、誤った結果となった個数であり、その分母は学習用データ内においてクラスCiのラベルが付与されているサンプルの総数である。従って、式(3)の第1項目の意味するものは、本来はクラスCiであるサンプルがクラスCjに誤判定される割合である。同様に、式(2)の第2項目の意味するものは、本来はクラスCjであるサンプルがクラスCiに誤判定される割合である。
【００６７】
従って、式(3)の誤判定率E[Ci|Cj]は、クラスCiとクラスCjとを誤判定する割合を数値化したものである。そして、当該式(3)の誤判定率の符号を逆転したものとして式(2)により定義される有用性U[Ci|Cj]により、本発明においてはクラスCi,Cj間の誤判定が多いほど、対応する識別器Ci|Cjの有用性U[Ci|Cj]は逆に低いものとして定義する。この理由は次の通りである。
【００６８】
一般に、特徴空間上で距離が遠く離れたクラスCi,Cj同士を互いに識別する場合は、誤判定は少ない。また同様にして逆に、互いに誤判定されることが多いようなクラスCi,Cjは、特徴空間上で距離が互いに近いこととなる。こうして、図５で説明したような、追加対象として好ましい2クラス識別器を選別する基準としての、クラス同士が特徴空間上において近いか遠いかという位置関係を、混同行列Vより算出可能な誤判定率を介して推定することができる。
【００６９】
本発明においては図５における説明のように、互いに近いクラスCi,Cj同士を共通のクラスとして識別するような2クラス識別器が、追加対象として好ましいものと判断するが、そのように互いに近いクラスCi,Cjを共通クラスとして扱うのではなく逆に互いに異なるクラスとして識別しようとした場合には、誤判定率が大きくなる。従って、式(2)のように、識別器Ci|Cjの誤判定率E[Ci|Cj]が大きいということは、クラスCi,Cjは互いに近い距離にあるものであり、従って高精度な識別器を得るためにはクラスCi,Cjは共通のクラスとして扱うべきであり、そのように扱っていない識別器Ci|Cjはその有用性U[Ci|Cj]が低いものとして定義する。
【００７０】
以上、式(2), (3)では区別のために用いるクラス数k=2の場合の各2クラス識別器の有用性について説明したが、k≧3の場合も全く同様に、誤判定率を算出したうえで、その符号を逆転したものとして各2クラス識別器の有用性を推定することができる。例えば、k=3の場合については、以下の式(4),(5)により、2クラス識別器「Ci1,Ci2|Cj」（クラスCi1又はCi2であるか、あるいはクラスCjであるかを識別する2クラス識別器）の有用性U[Ci1,Ci2|Cj]を推定することができる。すなわち(5)に示すような、クラスCi1又はCi2であるか、あるいはクラスCjであるかが多クラス識別器300-Pi[初期識別器群]によって誤判定される割合E[Ci1,Ci2|Cj]の符号を逆転したものとして、(4)に示すような有用性U[Ci1,Ci2|Cj]を算出できる。
【００７１】
【数３】
2015204043.tif 000005
【００７２】
なお、以上の式(2)〜(5)の例では、2クラス識別器「C[一般]」についてその誤判定率E[C[一般]]の符号を逆転したものとして有用性U[C[一般]]を定めたが、任意の減少関数あるいは単調減少関数fによって、有用性U[C[一般]]＝f(E[C[一般]])として定めるようにしてもよい。符号を逆転したのは当該関数fの１例である。
【００７３】
以上、ステップS13の枝刈りの実例を図８を参照して説明する。図８では、算出された有用性が上位所定数に該当せず、枝刈りの対象と判定された識別器が点線で囲う形で示されている。一方、枝刈りの対象とはならなかった識別器は実線で囲う形で示されている。
【００７４】
図８では例えば、[2]に示すk=2の段階では6個の識別器は全て枝刈りの対象とはなっていない。[3]に示すk=3の段階では、4個の識別器「A|B,C」、「A|D,C」、「B,C|D」及び「B|A,D」が枝刈りの対象となっている。これは、図５でクラス{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」が枝刈りの対象からは逃れ、その他の識別器は枝刈りの対象となっている。
【００７５】
ステップS14では、当該フローの終了判定を条件を満たすか否かを判断し、終了に該当する場合にはステップS15へ進み、該当しない場合にはステップS16へと進む。ステップS16では、扱うクラス数ｋの値を1だけ増分（プログラミング分野の慣例表記により「k++」）してから、ステップS12へと戻る。
【００７６】
ここで、ステップS14における終了判定の条件は、以下の（１）または（２）とすることができる。
（１）当該時点における扱うクラス数kの値が、「k=n」である、すなわち、学習用データにおけるクラス数nに到達したこと
（２）当該時点の直近のステップS13において、枝刈り対象と判定されずに残った2クラス識別器の個数が所定閾値を超えており、多いと判定されること
【００７７】
ステップS15では、当該フローによる探索結果を出力して、フローを終了する。探索結果としては、直近のステップS13において枝刈り対象と判定されずに残った、扱うクラス数ｋの一連の2クラス識別器を採用することができる。
【００７８】
図８の例では、n=4クラスの学習用データを対象としており、k=n=4に到達した時点でステップS14における終了判定の条件（１）が満たされてステップS15へと至り、当該k=4の時点において枝刈り対象とならずに残った2個の2クラス識別器「A,C|B,D」及び「A,B|C,D」（共に図中、灰色で表記してある）が、[5]に示すように探索結果となる。
【００７９】
以上、有用性推定部11の処理を説明した。識別器構築部12では、有用性推定部11によって得られた追加対象としての一連の有用性の高い2クラス識別器と、基本構成としての初期識別器群{Mi|i=1, 2, …, n}と、の組み合わせの中から、最適な又は準最適な多クラス識別器を探索して構築し、多クラス識別器構築装置10による出力となす。当該探索は前述のように、全数探索により最適なものを見つけてもよいし、組み合わせの数が多い場合であれば前述の非特許文献３の手法により準最適なものを見つけるようにしてもよい。
【００８０】
図８の例であれば、基本構成としての初期識別器群{1A, 1B, 1C, 1D}（図２に図示）と、追加対象としての識別器「A,C|B,D」及び「A,B|C,D」の組み合わせの中から、最適な多クラス識別器が探索され構築される。従って、最終的に構築される多クラス識別器は、追加構成として「A,C|B,D」及び「A,B|C,D」の片方か両方かの３通りのいずれかと、基本構成としての初期識別器群{1A, 1B, 1C, 1D}と、を図４で示す前段識別器群として有する多クラス識別器となる。
【００８１】
以下、本発明における補足的事項（１）〜（４）を説明する。
【００８２】
（１）図７のステップS15の別の実施形態として、次のようにしてもよい。すなわち、探索結果として、直近のステップS13において枝刈り対象と判定されずに残った、扱うクラス数ｋの一連の2クラス識別器の中でさらに、有用性が上位のもののみに絞り込むようにしてもよい。上位判定には、所定の閾値条件を利用すればよい。
【００８３】
あるいは、当該クラス数kよりも小さいクラス数k-1以前の候補で、枝刈り対象と判定されずに残ったものをも含めて、探索結果としてもよい。この場合、クラス数ｋごとに算出された有用性に重みを付与して、kの値が異なる候補同士で有用性の比較を実施し、有用性が上位のもののみに絞り込めばよい。ただし、一般には扱うクラス数kの値が大きいような2クラス識別器ほど、高精度に識別を実施しうると考えられるので、当該付与する重みは、kの値が大きいほど有用性を増大させるような重みとすることが好ましい。
【００８４】
（２）本発明において構築される多クラス識別器を構成する2クラス識別器としては、非特許文献４に紹介されているように、サポートベクトルマシン、AdaBoost、線形回帰、ロジスティック回帰、決定木などが利用可能である。
【００８５】
（３）図１の多クラス識別器構築装置10は、CPU(中央演算装置)、メモリ及び各種の入出力インタフェースといった周知のハードウェアで構成されるコンピュータによって実現することが可能である。この場合、CPUが命令を読み込み、多クラス識別器構築装置10の各部を実現するための所定の命令を実行することとなる。この際必要となるデータはメモリに格納しておき、適宜参照すればよい。本発明は、コンピュータをこのように多クラス識別器構築装置10として機能させるプログラムとしても提供可能である。また、本発明は、多クラス識別器構築装置10の動作方法としても提供可能である。
【００８６】
（４）本発明により構築された多クラス識別器は、種々の分野で利用可能である。例えば、文書のカテゴリ分類に利用することができる。この場合、文書からは周知手法により文書ベクトル等の特徴ベクトルを抽出しておく。学習用データにおいては、多クラスの各カテゴリ（例えば、「ニュース」、「スポーツ」又は「音楽」の3カテゴリなど）のいずれに該当するかをラベルとして予め付与しておく。
【符号の説明】
【００８７】
10…多クラス識別器構築装置、11…有用性推定部、12…識別器構築部
【図１】
2015204043.tif 000006
【図２】
2015204043.tif 000007
【図３】
2015204043.tif 000008
【図４】
2015204043.tif 000009
【図５】
2015204043.tif 000010
【図６】
2015204043.tif 000011
【図７】
2015204043.tif 000012
【図８】
2015204043.tif 000013