(57)【要約】【課題】サポートベクトルマシンを用いて高性能に３以上の分類が行えると同時に、大規模データの分類が可能なデータ分類方法を提供すること。【解決手段】Ｋクラス分類問題１０をより小規模な２クラス問題１１に分割し、サポートベクトルマシンによる学習１３および、出力結果１７をＭＩＮユニットで結合し、データ分類を行う。分割された２クラス問題１１が複雑な場合には更に小さな２クラス問題１４に分割し、ＭＩＮ・ＭＡＸユニット１９・２０による結合を経て他のモジュールと共にＭＩＮユニットによる結合を行ってもよい。【選択図】　　　　図２
2004054567.tif 000002
【特許請求の範囲】
【請求項１】
入力するデータを３以上の数であるＫ個のクラスに分類するＫクラス問題のデータ分類方法であって、
該Ｋクラス問題を小規模な２クラス問題に分割する２クラス問題分割ステップ、
分割された２クラス問題を正例と負例とからなる分類として１つのモジュールを構成し、各モジュール毎にサポートベクトルマシン（Ｓｕｐｐｏｒｔ　Ｖｅｃｔｏｒ　Ｍａｃｈｉｎｅ）による学習を行う学習ステップ、
全てのモジュールにおける該学習結果に基づくサポートベクトルマシンの出力結果を、多入力値から最小値を選択するＭＩＮユニットに入力し、出力結果を結合する結合ステップ、
の各ステップを少なくとも有し、
該結合結果を用いて入力したデータをＫ個のクラスに分類する
ことを特徴とするデータ分類方法。
【請求項２】
前記２クラス問題分割ステップにおいて、
分割された２クラス問題から構成されたモジュールの前記学習ステップにおける学習データの数が閾値以上の時に、
当該２クラス問題を学習データの数が該閾値以下になるまで２クラスの部分問題に再分割を行うと共に、
前記学習ステップにおいて、
該部分問題については、各部分問題毎にサポートベクトルマシン（Ｓｕｐｐｏｒｔ　Ｖｅｃｔｏｒ　Ｍａｃｈｉｎｅ）による学習を行い、
再分割前のクラス毎に、該学習結果に基づくサポートベクトルマシンの出力結果を、多入力値から最小値を選択するＭＩＮユニットに入力して各モジュールを結合すると共に、その結果を、多入力値から最大値を選択するＭＡＸユニットにより結合するＭＩＮ−ＭＡＸ結合ステップを有し、
該ＭＩＮ−ＭＡＸ結合結果を当該モジュールの出力結果とし、
前記結合ステップにおける処理に進む
ことを特徴とする請求項１に記載のデータ分類方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サポートベクトルマシンを用いたデータ分類方法に関するものであり、とりわけサポートベクトルマシンにより多数のクラス分け問題を効率よく分類する技術に係るものである。
【０００２】
【従来の技術】
膨大な情報量を有するデータベースにおけるデータを、複数の分類に分類するデータ分類方法は、近年の情報処理において欠かせない技術である。
あるデータの分類について、明確に分類出来るものは稀であるから、すでに的確に分類がなされた学習データを用いて学習させ、その学習結果に基づいて分類をする手法が考えられている。そして、的確な分類を高速に、低コストに行う技術は様々な情報処理の分野で望まれている。
【０００３】
例えば、言語処理の分野においては、品詞タグ付け、語の多義性解消、係り受け解析など困難な数多くの課題を文脈を用いた分類問題とみなすことができるため、上記データ分類方法が必要である。
そして最近では、数多くの学習手法の中、サポートベクトルマシン（Ｓｕｐｐｏｒｔ　Ｖｅｃｔｏｒ　Ｍａｃｈｉｎｅ、以下、ＳＶＭと呼ぶ。）が様々な言語処理タスクに最も有効であることが実験的に証明され、自然言語処理の分野では広く用いられている。
【０００４】
例えば、本件出願人らによる論文「ＳＥＮＳＥＶＡＬ２Ｊ辞書タスクでのＣＲＬの取り組み」（電子情報通信学会　ＮＬＣ２００１−４０）では、機械学習手法などと共に、ＳＶＭを用いた単語多義性解消問題に対する解法を示している。
ＳＶＭは分類の数が２個のデータを扱うものであるため、この中ではペアワイズ法と呼ばれる手法を組み合わせ、単語多義性解消に必要な３個以上の分類を可能にしている。
【０００５】
ペアワイズ手法とは、Ｎ個（Ｎは３以上）の分類をもつデータの場合、異なる２つの分類先のあらゆるペア（Ｎ（Ｎ−１）／２個）を作り、各ペア毎にどちらがよいかをＳＶＭ（他の２値分類器でもよい。）を用いて求め、最終的にＮ（Ｎ−１）／２個のＳＶＭの分類先の多数決により分類先を求める方法である。
これにより、２個の分類を対象とするＳＶＭを用いても、より多くの分類に対応する手法が提供できる。
【０００６】
多数決による方法は非常にオーソドックスなやり方で構成もシンプルである反面、性能向上のために改善する余地が大きい。また、多数決といっても、「多数」の程度も性能に影響するので、その「多数」を判断する閾値をどう決めるかが問題であり、安定した性能を発揮できる手法とはなっていない。
そして従来から、少量の学習データを用いて高い性能を出せるＳＶＭを用いつつ、大規模データに対応し、複雑なデータ分類が可能な方法が求められている。
【０００７】
【発明が解決しようとする課題】
本発明は、前記従来の問題点を解決するためになされたもので、サポートベクトルマシンを用いて高性能に３以上の分類が行えると同時に、大規模データの分類が可能なデータ分類方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明は上記課題の解決を図るため、次のようなデータ分類方法を創出する。
すなわち、入力するデータを３以上の数であるＫ個のクラスに分類するＫクラス問題のデータ分類方法であって、そのＫクラス問題を小規模な２クラス問題に分割する２クラス問題分割ステップ、分割された２クラス問題を正例と負例とからなる分類として１つのモジュールを構成し、各モジュール毎にサポートベクトルマシン（Ｓｕｐｐｏｒｔ　Ｖｅｃｔｏｒ　Ｍａｃｈｉｎｅ）による学習を行う学習ステップ、全てのモジュールにおける各学習結果に基づくサポートベクトルマシンの出力結果を、多入力値から最小値を選択するＭＩＮユニットに入力し、出力結果を結合する結合ステップ、の各ステップを少なくとも有する。
そして、該結合結果を用いて入力したデータをＫ個のクラスに分類することを特徴とするデータ分類方法を提供する。
【０００９】
ここで、さらに次の構成をとることもできる。
上記２クラス問題分割ステップにおいて、分割された２クラス問題から構成されたモジュールの上記学習ステップにおける学習データの数が閾値以上の時に、上記２クラス問題を学習データの数が該閾値以下になるまで２クラスの部分問題に再分割を行う。又、上記の学習ステップにおいて、その部分問題については、各部分問題毎にサポートベクトルマシン（Ｓｕｐｐｏｒｔ　Ｖｅｃｔｏｒ　Ｍａｃｈｉｎｅ）による学習を行う。
【００１０】
本構成では、学習ステップの後に、再分割前のクラス毎に、各学習結果に基づくサポートベクトルマシンの出力結果を、多入力値から最小値を選択するＭＩＮユニットに入力して各モジュールを結合すると共に、その結果を、多入力値から最大値を選択するＭＡＸユニットにより結合するＭＩＮ−ＭＡＸ結合ステップを有する。
そして、ＭＩＮ−ＭＡＸ結合結果を当該モジュールの出力結果とし前記結合ステップにおける処理に進むようにする。
【００１１】
【発明の実施の形態】
以下、図を参照して、本発明の一実施形態について説明する。
まず、本発明に係るサポートベクトルマシン（以下、ＳＶＭ）について説述する。
ＳＶＭは、空間を超平面で分割することにより２つの分類からなるデータを分類する手法である。このとき、２つの分類が正例と負例とからなるものとすると、学習データにおける正例と負例の間隔（マージン）が大きいものほどオープンデータで誤った分類をする可能性が低いと考えられ、このマージンを最大にする超平面を求め、それを用いて分類を行う。
【００１２】
図１はこのときのより小さなマージンの空間と、より大きなマージンの空間を表す図である。
図中において、白点（１）は正例、黒点（２）は負例を表し、実線は空間を分割する超平面（３）を、波線はマージン領域の境界を表す面（４）を意味している。
【００１３】
通常、学習データにおいてマージンの内部領域に少数の事例が含まれていてもよいとする手法の拡張や、超平面の線形の部分を非線形に拡張（カーネル関数の導入）がなされたものが用いられる。以下、カーネル関数を導入する手法について説明を続ける。
【００１４】
この拡張された方法は、以下の識別関数を用いて分類することと等価であり、その識別関数の出力値が正か負かによって２つの分類を判別することができる。
ＳＶＭによる分類に関する定式化の一例について説明する。尚、ここで示す定式化は公知のものである。まず、ｘを２次元ベクトル、ｘｉをｉ番目のサポートベクトル、Ｋをカーネル関数、ｙｉは、後述するようにサポートベクトルｘｉ（ｉ＝１，２・・・ｌ、ｙｉ∈｛１，−１｝）に対する期待される出力値である。ｂはパラメータである。
【００１５】
【数式１】
2004054567.tif 000003
【００１６】
関数ｓｇｎは、数式２によって定義される。
【００１７】
【数式２】
2004054567.tif 000004
【００１８】
また、各αｉは数式４と数式５の制約のもと、数式３のＬ（α）を最大にする場合のものである。
【００１９】
【数式３】
2004054567.tif 000005
【数式４】
2004054567.tif 000006
【数式５】
2004054567.tif 000007
【００２０】
また、カーネル関数Ｋは数式６のものを用いている。
【００２１】
【数式６】
2004054567.tif 000008
【００２２】
ここで、Ｃ，ｄは実験的に設定される定数である。本実施例では例えばＣを１，ｄを２に固定しているが、適宜設定することができる。
ここで、αｉ＞０となるサポートベクトルｘｉについて、数式１の和をとっている部分は、この事例のみを用いて計算される。つまり実際の解析には学習データのうち、サポートベクトルと呼ばれる事例のみしか用いられない。
【００２３】
以上に示すように、サポートベクトルマシン法は、分類の数が２個のデータを扱うもので、より多くの分類を行う場合に、従来では前記ペアワイズ手法など別の手法を組み合わせていた。
ところで、カーネル関数としては、ポリノミアル（Ｐｏｌｙｎｏｍｉａｌ）、ガウシャン・ラジアル・ベイシス・ファンクション（Ｇａｕｓｓｉａｎ　Ｒａｄｉａｌ　Ｂａｓｉｓ　Ｆｕｎｃｔｉｏｎ）、エクスポネンシャル・ラジアル・ベイシス・ファンクション（Ｅｘｐｏｎｅｎｔｉａｌ　Ｒａｄｉａｌ　ＢａｓｉｓＦｕｎｃｔｉｏｎ）、マルチレイヤー・パーセプション（Ｍｕｌｔｉ−Ｌａｙｅｒ　Ｐｅｒｃｅｐｔｉｏｎ）、フーリエー・シリーズ（Ｆｏｕｒｉｅｒ　Ｓｅｒｉｅｓ）、スプライン（Ｓｐｌｉｎｅｓ）、ビースプライン（Ｂｓｐｌｉｎｅｓ）、アディティブ・カーネル（Ａｄｄｉｔｉｖｅ　Ｋｅｒｎｅｌｓ）、テンソル・プロダクト・カーネル（Ｔｅｎｓｏｒ　Ｐｒｏｄｕｃｔ　Ｋｅｒｎｅｌｓ）等の関数を用いることもできる。
【００２４】
次に、本発明の要部について説述する。
図２には、従来のペアワイズ手法のように多数決によって最終解を出すのではなく、ＭＩＮユニット、ＭＡＸユニットなどを組み合わせて好適な最終解を出すことのできる本発明による手法のフローチャートを示す。
【００２５】
本発明では、まずＫクラス問題（１０）が与えられたとき、２クラス問題に分割（１１）する。２クラス問題は正例と負例とからなる分類として１つのモジュールを構成する。
分割後の２クラス問題について、学習データの数がある閾値よりも大きいか否かを調べ（１２）、妥当な学習データの数である場合には、ＳＶＭを用いた学習ステップ（１３）に進み、学習データの数が多すぎる場合には更に小さな２クラス問題に再分割（１４）する。
再分割（１４）された適正な規模の２クラス問題は、ＳＶＭによる学習ステップ（１５）において学習に用いられる。
【００２６】
以上によって学習されたＳＶＭに、分類すべきデータ（１６）を入力し、それぞれ結果を出力（１７）（１８）する。
ここで、出力結果（１８）については、再分割前のクラス毎（再分割前の２クラス問題毎）に、多入力値から最小値を選択するＭＩＮユニットに入力して各モジュールを結合（１９）すると共に、さらにその結果を、多入力値から最大値を選択するＭＡＸユニットにより結合（２０）する。
【００２７】
最後にすべてのモジュールをＭＩＮユニットによって結合（２１）する。以上の流れが本発明による複数のクラス分け問題をＳＶＭを用いて解決する手法であって、このＭＩＮユニットからの出力結果に基づき、任意の方法でデコードし、データ分類（２２）を行うことができる。
【００２８】
この手法を言語処理に用いる一例として、タイ語の品詞のタグ付けに用いる例を示す。もちろん、本発明が品詞のタグ付け問題に用いられることに限定されるものではなく、タイ語は日本語や英語に比べて品詞のタグ付けが困難と考えられるために用いたに過ぎない。
ここで、８３２２文のタイ語コーパス（品詞を正しく分類してある）をＳＶＭにおける学習に用い、タイ語による２１３０文のテスト文で品詞分類を試みる。学習用文には１２４３３１個の単語（そのうち、２２３１１個が品詞タグ付けの学習に用いられる多品詞語）、テスト文では３４５４４個の単語（これは実験用にあらかじめ６７１７個の多品詞語が含まれることが分かっている。）をそれぞれ含む。
【００２９】
従って、ＳＶＭにおける学習では多品詞語のみを学習に用いた。タイ語における品詞は４７種類が定義されているが、ここでは学習用文における３８種類を対象とする。ここで、品詞は本発明におけるクラスに相当するので、品詞タグ付け問題はクラス分け問題と同義になる。以下、３８クラスのクラス分け問題であると考えて実施例を説明する。
【００３０】
３８クラス問題は、本発明によりまず一意的に２クラス問題に分割する。分割方法は次の通りである。
Ｋクラス問題に関する学習データの集合をＴで表す。すなわち、
【００３１】
【数式７】
2004054567.tif 000009
【００３２】
ここにＸ１ＩＲｎは入力ベクトル、ＹｌＩＲＫは所要の出力、およびＬは学習データの個数を表す。一般にＫクラス問題は、次の数式８に示されるように、いずれも２クラス問題へ分解することが出来る。
【００３３】
【数式８】
2004054567.tif 000010
ここに、εは小さな正数であり、Ｘｌ（ｉ）およびＸｌ（ｊ）はＣｉおよびＣｊに属する入力ベクトルである。
【００３４】
数式８により、３８クラス問題は、Ｋ×（Ｋ−１）＝３８×３７＝１４０６個の２クラス問題に分割される。これにより、ＳＶＭを用いることができるようになるが、実際には各２クラス問題により、学習データの数が大きくことなるため、一定以上データ数が多い複雑な２クラス問題については、さらに小規模な２クラス問題に分割することを試みる。
【００３５】
次の表１は学習用文に表れる２２３１１個の多品詞語と、テスト文に表れる６７１６個の多品詞語の各クラス（１〜３８）に属する数の分布である。
【００３６】
【表１】
2004054567.tif 000011
【００３７】
表１からも明らかな通り、最も小さな２クラス問題（Ｔ３６，３８）は学習データ数が２＋１＝３個であるのに対し、最も大きな２クラス問題（Ｔ６，８）は学習データ数が３００８＋３１９７＝６２０５個ある。
これを更に分解するために次の方法による。
【００３８】
すなわち、各クラスに属する入力ベクトルの大集合、たとえばＸｌ（ｉ）（数式８参照）を、まず無作為法によってＮｉ（１≦Ｎｉ≦Ｌｉ）個の部分集合χｉｊに分解する。すなわち、
【００３９】
【数式９】
2004054567.tif 000012
ここに、Ｌｉ（ｊ）は部分集合χｉｊ内の入力ベクトルの個数である。
【００４０】
このような部分集合を使用すれば、数式８で定義される２クラス問題を、次のＮｉ×Ｎｊ個の小規模かつ簡単な問題へ再分割することが出来る。
【００４１】
【数式１０】
2004054567.tif 000013
ここに、Ｘｌ（ｉｕ）ＩχｉｕおよびＸｌ（ｊｖ）Ｉχｊｖは、それぞれＣｉおよびＣｊに属する要素である。
【００４２】
したがって、数式８によって定義される２クラス問題が、数式１０によって定義される問題へすべて再分割されれば、当初のＫクラス問題は数式１１で表される個数の２クラス問題に分解可能である。
【００４３】
【数式１１】
2004054567.tif 000014
【００４４】
以上の方法を当てはめ、例えば表１から学習データ数が４８１（Ｃ１０）を超える１２のクラスのデータを組み合わせ、例えばデータ数が３００を超えないように再分割する。
ここで、４８１や３００は任意に設定できる閾値であり、収束性とモジュール数のトレードオフを考慮して適宜決めることができる。モジュール数が多くてもよいから収束をスピードアップしたければ値をより小さく設定すればよく、逆の場合には値を大きく設定すればよい。本発明の実施において、これら閾値は諸条件に合わせて最適な値を選ぶことができる。
【００４５】
この結果、それらのクラスを含む２クラス問題Ｔｉ，ｊは数式１０に定義されたＮｉ×Ｎｊの２クラス問題に再分割される。Ｎｉ、ＮｊはそれぞれクラスＣｉとクラスＣｊに属する学習データが分割されたサブセットの数であり、本実施例では表２のようになった。表中に示さないクラスはサブセット数が１のもの（再分割しないクラス）である。
【００４６】
【表２】
2004054567.tif 000015
【００４７】
例えば、Ｔ１，３はＮ１×Ｎ３＝１０×５＝５０個の部分問題に分割され、Ｔ２，７のような２クラス問題はＮ２×Ｎ７＝１×１＝１で再分割されないことが分かる。
以上のような再分割を経ると、本実施例におけるタグ付け問題は、数式１１より適正な規模の３８９３個の２クラス問題に分割できる。
【００４８】
ここまでの処理による２クラス問題をＳＶＭによる学習、分類に用いる。図３には数式８による２クラス問題への分割（１１）及び、図４には数式１１による再分割（１４）により構成されたモジュールを結合するまでのブロック図をそれぞれ示す。
【００４９】
図３において例えばＭ１，２はＣ１及びＣ２に属する学習データに分割された２クラス問題のモジュール（３０）（３０）・・であり、Ｎ１×Ｎ２＝１０個の部分問題に分割され、Ｍ１，３は前述のとおり５０個の部分問題に分割される。
その結果、図４のように更に小規模な２クラス問題のモジュール（４０）（４０）・・に分割される。
【００５０】
本発明では全てのモジュール（３０）（４０）毎にＳＶＭによる学習を行う。ＳＶＭによる学習・分類は前述した通り公知の技術を用いるが、本実施例では数式１におけるｘは分類する多品詞語の集合を、ｘｉとｙｉはそれぞれ学習用文における多品詞語の集合と、分類先の品詞を意味する。
【００５１】
学習用文の入力により学習済みのＳＶＭに分類するテスト文（１６）を入力し、その結果を結合する。結合には、ＭＩＮ、ＭＡＸと呼ぶユニットを使用する。ここでは、２クラス問題Ｔｉｊ（数式８）および再分割後の２クラス問題Ｔｉｊ（ｕ，　ｖ）（数式１０）に関するモジュール（３０）（４０）を、それぞれ記号ＭｉｊおよびＭｉｊ（ｕ，　ｖ）で表す。
図２におけるＭＩＮユニットによる結合（２１）は全てのモジュール（３０）について行う。ＭＩＮユニット（３１）（３１）・・は多入力値から最小値を選択するユニットであり、次の操作を行う。
【００５２】
【数式１２】
2004054567.tif 000016
【００５３】
ここでは、便宜上ＭＩＮ単位の記号によってその出力を表し、モジュールの記号によってその出力を表す。かくてＭＩＮ単位の出力値Ｋ個による出力ベクトルＹ＝｛ｙ１，ｙ２，・・・ｙ３８｝を得る。
【００５４】
本実施例において、Ｙは以下のようにデコードする。τ（ｗｔ）は単語ｗｔへの品詞タグ付け結果を、τｉは分類先の品詞である。
【００５５】
【数式１３】
2004054567.tif 000017
【００５６】
一方、再分割後の２クラス問題Ｔｉｊ（ｕ，　ｖ）へ分解する場合は、モジュールＭｉｊ（ｕ，　ｖ）を、まずＭＩＮユニット（４１）（４１）・・と組み合わせる。これは図２におけるＭＩＮユニットによる結合（１９）の処理である。すなわち、
【００５７】
【数式１４】
2004054567.tif 000018
そして、モジュールＭｉｊは、多入力値から最大値を選択するＭＡＸユニット（４２）を用いて構成される。これは図２におけるＭＡＸユニットによる結合（２０）の処理である。すなわち、
【００５８】
【数式１５】
2004054567.tif 000019
このようにして構成されたＭｉｊをモジュール（３０）として上記ＭＩＮユニットによる結合（２１）に入力する。
【００５９】
本発明は以上のように構成され、本来２クラスの分類処理を行うＳＶＭを用いて、例えば品詞のタグ付けなど、多数のクラス分け問題にも適用可能な分類方法を提供する。
上記実施例において、数式８による２クラス問題への分割（１１）後、複雑なものを２クラス問題に再分割（１４）しているが、本発明の実施においてはかならずしも再分割のステップは設ける必要はなく、すべての学習データ・テストデータについて、図２における、（１０）（１１）（１３）（１７）（２１）のステップから構成する分類方法でもよい。
【００６０】
【発明の効果】
本発明によれば、大規模な学習問題をいくらでも小規模問題に分割できるので、どのような大規模な問題にも対処できる。本来２クラス問題に対応するサポートベクトルマシンを用いることができると同時に、大規模な学習データを学習することによってシステムのさらなる性能向上が期待できる。
【００６１】
また、個々のモジュールはそれぞれ独立に学習できるため、並列計算機を用いれば学習が高速に行えるため、本発明によるデータ分類方法は、処理の高速化が可能な方法である。
【００６２】
さらに、本発明によれば、Ｋクラス問題は２クラス問題をＭＩＮユニット及びＭＡＸユニットで結合して解決するため、従来の問題であった多数決の問題を解決でき、導入するシステムのさらなる性能向上に寄与する。
【図面の簡単な説明】
【図１】サポートベクトルマシン法におけるマージンの説明図である。
【図２】本発明に係るデータ分類方法のフローチャートである。
【図３】本発明に係るモジュールの結合方法を説明する説明図である。
【図４】本発明に係るモジュールの結合方法を説明する説明図である。
【符号の説明】
１０　Ｋクラス分類問題
１１　２クラス問題に分割するステップ
１２　学習データの数を判定するステップ
１３　ＳＶＭにおける学習のステップ
１４　更に小さな２クラス問題に分割するステップ
１５　ＳＶＭにおける学習のステップ
１６　分類するデータ
１７　ＳＶＭの出力結果を出力をするステップ
１８　ＳＶＭの出力結果を出力をするステップ
１９　ＭＩＮユニットによる結合のステップ
２０　ＭＡＸユニットによる結合のステップ
２１　ＭＩＮユニットによる結合のステップ
【図１】
2004054567.tif 000020
【図２】
2004054567.tif 000021
【図３】
2004054567.tif 000022
【図４】
2004054567.tif 000023