説明

複数クラス分類装置、複数クラス分類方法および複数クラス分類プログラム

【課題】適切な二元符合表を生成し、分類精度を向上させた分類装置を提供する。
【解決手段】訓練データおよび学習の繰り返し回数を入力するデータ入力部12と、前記訓練データがクラス間で上手く分類されていない程度を示す非分離度を計算し、該非分離度を基に分割候補を生成し、該分割候補に従って予備学習を行い、該予備学習の結果に整合する符合を割り振って二元符号表を生成するクラス符号化部15と、前記二元符号表および重み付の訓練データを用いて2クラスの学習器を学習する2クラス学習部16と、前記個々の学習結果の係数を計算する係数計算部17と、前記訓練データ、繰り返し回数、二元符号表、学習器および係数を蓄積する蓄積部13と、前記蓄積された情報に基づいて複数クラスを分類するための関数を出力する学習結果出力部18と、前記各部で使用される作業情報の初期化、更新と、前記各部の動作管理を行う管理部14と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、教師あり機械学習に関し、特にテキストや画像などのデータを2以上のクラスに分類する複数クラス分類装置、方法、プログラムに関する。
【背景技術】
【0002】
従来、複数クラス分類を行うには、個々のクラスのラベルを二元符合表で符号化し、符号化した各列を2クラス学習器で学習し、その学習結果を係数で統合する手法があった。
【0003】
例えば非特許文献1では、表1の手順でN個の訓練データ{(xn,yn)|n=1,・・・,N}を学習する。
【0004】
ここでxnは入カベクトル、 yn∈{1,・・・,K}はどのクラスに属するかのラベルである。
【0005】
【表1】

【0006】
従来法の学習結果でクラス分類を行う際には、分類したいデータxと各クラスとの距離
【0007】
【数1】

【0008】
を計算し、距離が一番近いクラスを選択する。すなわち、xのクラスはargk∈Kmin△(k,x)となる。
【0009】
また、2クラス学習器としてはdecision stumps,決定木,perceptron等を用いる。
【0010】
例えば、decision stumpsは
【0011】
【数2】

【0012】
の形式の学習器である(図3で表現される学習器)。
【0013】
ここで、x(j)はxのj番目の属性値,p∈{1,−1},qは閾値であり、与えられたデータからj,p,qを求める。
【0014】
従来のクラス分類法の動作は以下のとおりである。
【0015】
下記の、表2のような訓練データ、および(3)に示す二元符合表が与えられたとする。
【0016】
【表2】

【0017】
【数3】

【0018】
1回目のループでは、二元符合表の一列目の値により、クラス1、2が符合1、クラス3、4が符合−1となる。すなわち、n=1,・・・,8のデータが符合1,n=9,・・・,16が−1になる。
【0019】
この条件により、2クラス学習器は下記のように学習する:
【0020】
【数4】

【0021】
また、その係数は、α1=11.512925464920228となる。
【0022】
2回目のループでは、2クラス学習器は下記のように学習する:
【0023】
【数5】

【0024】
また、その係数は、α1=11.512925464920228となる。
【0025】
学習結果で△(k,xn)を計算すると、表3に示すように正しく分類されていることが分かる。
【0026】
【表3】

【先行技術文献】
【非特許文献】
【0027】
【非特許文献1】R.E.Schapire,“Using output codes to boost multiclass learning problems”, Machine Learning: Proceedings of the Fourteenth International Conference, 1997
【発明の概要】
【発明が解決しようとする課題】
【0028】
上述した従来の複数クラス分類方法では、与える二元符合表によって分類精度が変動する問題があった。
【0029】
例えば表4に示す訓練データが与えられたとする。
【0030】
【表4】

【0031】
そして、下記数6に示す二元符号表A、数7に示す二元符号表Bで学習を行ったとする。
【0032】
数6の二元符合表Aでの学習結果Aは表5となり、24個中8個が正しく学習できない。しかし、数7の二元符合表Bで学習すると、表6の学習結果Bに示すように全て正しく学習できる。
【0033】
このように与える二元符合表によって分類精度が大きく変動する。
【0034】
【数6】

【0035】
【表5】

【0036】
【数7】

【0037】
【表6】

【0038】
本発明は、上記課題を解決するものであり、その目的は、適切な二元符合表を生成し、分類精度を向上させた複数クラス分類装置、方法、プログラムを提供することにある。
【課題を解決するための手段】
【0039】
上記課題を解決するための本発明の複数クラス分類装置は、テキストや画像などのデータを2以上のクラスに分類する複数クラス分類装置であって、訓練データおよび学習の繰り返し回数を入力するデータ入力手段と、前記データ入力手段によって入力された訓練データがクラス間で上手く分類されていない程度を示す非分離度を計算し、該非分離度を基に分割候補を生成し、該分割候補に従って予備学習を行い、該予備学習の結果に整合する符合を割り振って二元符号表を生成するクラス符号化手段と、前記クラス符号化手段によって生成された二元符号表および重み付の訓練データを用いて2クラスの学習器を学習する2クラス学習手段と、前記2クラス学習手段の個々の学習結果の係数を計算する係数計算手段と、前記データ入力手段により入力された訓練データ、繰り返し回数、前記クラス符号化手段により生成された二元符号表、前記2クラス学習手段により学習された学習器および前記係数計算手段により計算された係数を蓄積する蓄積手段と、前記蓄積手段に蓄積された情報に基づいて複数クラスを分類するための関数を出力する学習結果出力手段と、前記クラス符号化手段、2クラス学習手段および係数計算手段で使用される作業情報の初期化、更新と、前記クラス符号化手段、2クラス学習手段、係数計算手段および学習結果出力手段の各動作を管理する管理手段と、を備えたことを特徴としている。
【発明の効果】
【0040】
本発明によれば、適切な二元符合表を生成することができ、これによって少ない繰り返し回数、すなわち、2クラス学習器の個数が少なくても、分類精度を向上させることができる。
【図面の簡単な説明】
【0041】
【図1】本発明の複数クラス分類装置の構成図。
【図2】本発明の複数クラス分類方法のフローチャート。
【図3】従来の2クラス学習器としてのdecision stumpsの説明図。
【図4】本発明のクラス符号化手段の作用の説明図(その1)。
【図5】本発明のクラス符号化手段の作用の説明図(その2)。
【図6】本発明のクラス符号化手段の作用の説明図(その3)。
【発明を実施するための形態】
【0042】
以下、図面を参照しながら本発明の実施の形態を説明するが、本発明は下記の実施形態例に限定されるものではない。
【0043】
図1は本発明の複数クラス分類装置の実施形態例を示す構成図である。本実施形態例の複数クラス分類装置は、入力端末11と、データ入力手段としてのデータ入力部12と、蓄積手段としての蓄積部13と、管理手段としての管理部14と、クラス符号化手段としてのクラス符号化部15と、2クラス学習手段としての2クラス学習部16と、係数計算手段としての係数計算部17と、学習結果出力手段としての学習結果出力部18と、出力端末19とを有する。
【0044】
前記各部12〜18の後述する各機能は、例えばコンピュータによって達成される。
【0045】
データ入力部12は、入力端末11からの訓練データおよび繰り返し回数Tを入力する。
【0046】
蓄積部13は、前記入力された訓練データ、繰り返し回数、および、クラス符号化部15で計算される二元符合表、2クラス学習部16で学習された学習器、係数計算部17で計算された係数を蓄積する。
【0047】
管理部14は、クラス符号化部15、2クラス学習部16、係数計算部17で使用される作業情報の初期化・更新を行う。また、クラス符号化部15、2クラス学習部16、係数計算部17を繰り返し回数だけ呼び出し、最後に学習結果出力部18を呼び出す。
【0048】
クラス符号化部15は、前記訓練データが他のクラスに誤って分類されている程度を集計してクラス間で分類が上手く行っていない程度を示す非分離度を計算する。
【0049】
次に、この非分離度を基に二元符合列(二元符合表の現在の繰り返し数で指定された列)を生成するが、非分離度の高いクラス対に異なる符合、すなわち、1と−1、を割り当て、かつ、同じ符合が割り当てられたグループのクラス対の非分離度は低くしたい。
【0050】
このため、まず、0という割り当てを保留した値を導入する。次に、0の値を持つグループのクラスは無視し、1,−1の値を持つグループでは、異なる値のクラス間で非分離度が大きくなるように、同一値のクラス間で非分離度が小さくなるように分割度を定め、この分割度が高くなるように分割候補を作成する。
【0051】
さらに、前記分割候補に従って2クラス学習部16と同様の学習器で予備学習を行い、予備学習の結果に整合する、すなわち、各クラスの符合と訓練データの予備学習の結果の符合とが等しくなる割合が高くなるように、二元符合列を作成する。
【0052】
このようにクラス符号化部15は、非分離度を基に、0という割り当てを保留した値を導入し、分割度が高くなるように分割候補を作成することで優先して分離すべきクラス群、すなわち、1や−1が割り振られたグループ、を選択する。こうすることで学習が難しい符合化を避けることができる。
【0053】
例えば図4のように、訓練データに対し、二元符合列を[1,−1,1,−1]Tとして与えると、x(1),x(2)のどちらの属性を使っても上手く分離できず、前記図3、式(2)に示すdecision stumps等では学習が難しい。
【0054】
これに対し、本発明のクラス符号化部15は、[1、−1,0,0]Tの分割候補を作成し、図5のように予備学習を行う。その後、図6のように予備学習結果に整合する符合を割り振ることで適切な二元符合列が生成できる。
【0055】
このように本発明のクラス符号化部15は、適切な二元符合表を生成することができる。
【0056】
2クラス学習部16は、前記作成された二元符合表および重み付きの訓練データを用いて2クラスの学習器を学習する。
【0057】
係数計算部17は、前記学習した2クラス学習部16の係数を計算する。
【0058】
学習結果出力部18は、前記蓄積部13に蓄積された情報に基づいて、分類したいデータxとクラスkとの距離を計算する関数(複数クラスを分類するための関数)を出力する。
【0059】
出力端末19は、学習結果出力部18から出力された前記関数を例えばディスプレイに表示する。
【0060】
図2は本発明の複数クラス分類方法の実施形態例のフローチャートであり、図1の装置の各部が実施する処理の手順を示している。
【0061】
図2において、
step11: データ入力部12が訓練データ、および、繰り返し回数Tを入力する。
step12: 管理部14が作業情報を初期化する。
step13: クラス符号化部15がクラス符合化を行う。
step14: 2クラス学習部16が2クラス学習器の学習を行う。
step15: 係数計算部17が係数計算を行う。
step16: 管理部14が作業情報を更新する。
step17: t≦Tか否かを判定し、t≦Tならば(繰り返し回数Tを超えていないとき)step13へ戻る。
step18: 学習結果出力部18が学習結果を出力する。
【0062】
次に図1の装置の構成の具体例を以下に説明する。
【0063】
データ入力部12は、訓練データ{(Xn,yn)|n=1,・・・,N}、および、繰り返し数Tを入力し、蓄積部13に蓄積する。
【0064】
蓄積部13は、前記データ入力部12により入力された訓練データ{(Xn,yn)|n=1,・・・,N}、および、繰り返し数Tと、クラス符号化部15により作成された二元符合表M(k,t)と、2クラス学習部16により学習された2クラス学習器列ftと、係数計算部17により計算された係数列atとを蓄積する。
【0065】
管理部14は、下記の初期化を行う:
【0066】
【数8】

【0067】
また、t≦Tの間(繰り返し回数Tを超えていない間)、クラス符号化部15、2クラス学習部16、係数計算部17を呼び出す。
【0068】
さらにt≦Tの間、下記の更新を行う:
【0069】
【数9】

【0070】
クラス符号化部15は、蓄積部13の蓄積情報に基づいて、まず非分離度表Lt(i,j),i,j=1,・・・,Kを計算する:
【0071】
【数10】

【0072】
次にクラス符号化部15は、分割候補s(k),k=1,・・・,Kを下記の手順で生成する:
step 131: 分割候補の初期化
s(k)=0,k=1,・・・,K
step 132: 非分離度表で最大値を持つクラス対(a、b)を取得し、1、−1を割り当てる。
【0073】
(a、b)=arg(i,j)maxLt(i,j)
s(a)= 1
s(b)=−1
step 133: 未選択のクラス集合Iを作成する。
【0074】
I={1,・・・,K}−{a、b}
step 134: 未選択のクラスから値を割り当てたとき分割度cutが最大となるクラスと値を選択する。
【0075】
【数11】

【0076】
step 135: 選択したクラスuに値cを割り当て、未選択クラスから除く。
【0077】
【数12】

【0078】
step 136: I≠φならstep4へ。
【0079】
次にクラス符号化部15は、前記生成された分割候補で以下のように予備学習を行う:
【0080】
【数13】

【0081】
2クラス学習器gを重みw(n)付きのデータ{(Xn,s(yn)|n=1,・・・,N}で学習する。この学習には、2クラス学習部16と同じものを用いる。s(k)=0となるクラスのデータは、w(n)=0となるので、この学習では無視されることになる。
【0082】
次にクラス符号化部15は、前記予備学習の結果に整合する二元符合列を作成する:
M(k,t)=sgn(μ(k,t)),k=1,・・・,K …(16)
ここで、
【0083】
【数14】

【0084】
2クラス学習部16は、Ut,および、Dt(n)の更新を次のようにして行い、2クラス学習器ftの学習を行う。
【0085】
【数15】

【0086】
tを重みDt(n)付きのデータ{(xn,M(yn,t))}用いて学習させる。
【0087】
2クラス学習器はdecision stumps を用いる。すなわち、
【0088】
【数16】

【0089】
の形式で、与えられたデータからj,p,qを求める。
【0090】
ここで、x(j)はxのj番目の属性値,p∈{1,−1},qは閾値である。
【0091】
係数計算部17は、以下の計算を行なってεtおよびαtの更新を行う。
【0092】
【数17】

【0093】
ここで、ε0は10-10等の値を用いる。
【0094】
学習結果出力部18は、学習結果として、データxとクラスkとの距離
【0095】
【数18】

【0096】
を計算する関数(複数クラスを分類するための関数)を出力する。
【0097】
次に図1の装置の動作の具体例を以下に説明する。
【0098】
まず、表4の訓練データ{(xn,yn)}と繰り返し数T=4がデータ入力部12から入力され、蓄積部13に蓄積される。
【0099】
【表7】

【0100】
そして、クラス符号化部16で生成される分割候補は、[1,−1,0,0]Tとなる。
【0101】
また、クラス符号化部15で行なわれた予備学習の結果は、
【0102】
【数19】

【0103】
となる。
【0104】
そしてμ(k,1)=[22.0,−26.0,−10.0,14.0]Tと求まるので、蓄積部13の二元符合表の1列目を[1,−1,−1,1]Tとして、クラス符合化部15から管理部14の処理に戻る。
【0105】
次に管理部14は2クラス学習部16を呼び出す。2クラス学習部16は、蓄積部13の二元符合表の1列目の[1,−1,−1,1]Tを用いて学習を行い、
【0106】
【数20】

【0107】
を得る。これを蓄積部13に蓄積して管理部14の処理に戻る。
【0108】
続いて管理部14は係数計算部17を呼び出す。係数計算部17は、式(22)、(23)を用いて、α1=1.1989476363991851を計算し、蓄積部13に蓄積して管理部14の処理に戻る。
【0109】
【数21】

【0110】
、α2=11.512925464920228が蓄積部13に蓄積される。
【0111】
【数22】

【0112】
、α3=0.8324949181606109が蓄積部13に蓄積される。
【0113】
【数23】

【0114】
t=5≦Tではないので管理部14は、学習結果出力部18を呼び出す。学習結果出力部18は△(k,x)を計算する関数を出力し、終了する。
【0115】
この学習結果を用いて訓練データを分類すると、表8のように全て正しく分類される。
【0116】
【表8】

【0117】
本実施例では、2クラス学習器にdecision stumpsを用いたが、決定木やperceptron等の様々な学習器を利用することもできる。
【0118】
また、本実施形態の複数クラス分類装置における各手段の一部もしくは全部の機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明を実現することができること、本実施形態の複数クラス分類方法における手順をコンピュータのプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもなく、コンピュータでその機能を実現するためのプログラムを、そのコンピュータが読み取り可能な記録媒体、例えばFD(Floppy(登録商標) Disk)や、MO(Magneto−Optical disk)、ROM(Read Only Memory)、メモリカード、CD(Compact Disk)−ROM、DVD(Digital Versatile Disk)−ROM、CD−R、CD−RW、HDD、リムーバブルディスクなどに記録して、保存したり、配布したりすることが可能である。また、上記のプログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【符号の説明】
【0119】
11…入力端末
12…データ入力部
13…蓄積部
14…管理部
15…クラス符合化部
16…2クラス学習部
17…係数計算部
18…学習結果出力部
19…出力端末

【特許請求の範囲】
【請求項1】
テキストや画像などのデータを2以上のクラスに分類する複数クラス分類装置であって、
訓練データおよび学習の繰り返し回数を入力するデータ入力手段と、
前記データ入力手段によって入力された訓練データがクラス間で上手く分類されていない程度を示す非分離度を計算し、該非分離度を基に分割候補を生成し、該分割候補に従って予備学習を行い、該予備学習の結果に整合する符合を割り振って二元符号表を生成するクラス符号化手段と、
前記クラス符号化手段によって生成された二元符号表および重み付の訓練データを用いて2クラスの学習器を学習する2クラス学習手段と、
前記2クラス学習手段の個々の学習結果の係数を計算する係数計算手段と、
前記データ入力手段により入力された訓練データ、繰り返し回数、前記クラス符号化手段により生成された二元符号表、前記2クラス学習手段により学習された学習器および前記係数計算手段により計算された係数を蓄積する蓄積手段と、
前記蓄積手段に蓄積された情報に基づいて複数クラスを分類するための関数を出力する学習結果出力手段と、
前記クラス符号化手段、2クラス学習手段および係数計算手段で使用される作業情報の初期化、更新と、前記クラス符号化手段、2クラス学習手段、係数計算手段および学習結果出力手段の各動作を管理する管理手段と、
を備えたことを特徴とする複数クラス分類装置。
【請求項2】
前記クラス符号化手段は、前記非分離度を基に、符号の割り当てを保留した値を利用して前記分割候補を生成することを特徴とする請求項1に記載の複数クラス分類装置。
【請求項3】
テキストや画像などのデータを2以上のクラスに分類する複数クラス分類方法であって、
データ入力手段が、訓練データおよび学習の繰り返し回数を入力するデータ入力ステップと、
クラス符号化手段が、前記データ入力手段によって入力された訓練データがクラス間で上手く分類されていない程度を示す非分離度を計算し、該非分離度を基に分割候補を生成し、該分割候補に従って予備学習を行い、該予備学習の結果に整合する符合を割り振って二元符号表を生成するクラス符号化ステップと、
2クラス学習手段が、前記クラス符号化手段によって生成された二元符号表および重み付の訓練データを用いて2クラスの学習器を学習する2クラス学習ステップと、
係数計算手段が、前記2クラス学習手段の個々の学習結果の係数を計算する係数計算ステップと、
管理手段が、前記クラス符号化手段、2クラス学習手段および係数計算手段の呼び出しと、該各手段で使用される作業情報の初期化および更新を行うステップと、
蓄積手段が、前記データ入力手段により入力された訓練データ、繰り返し回数、前記クラス符号化手段により生成された二元符号表、前記2クラス学習手段により学習された学習器および前記係数計算手段により計算された係数を蓄積する蓄積ステップと、
管理手段が、学習結果出力手段を呼び出すステップと、
学習結果出力手段が、前記蓄積手段に蓄積された情報に基づいて複数クラスを分類するための関数を出力する学習結果出力ステップと、
を備えたことを特徴とする複数クラス分類方法。
【請求項4】
前記クラス符号化ステップは、前記非分離度を基に、符号の割り当てを保留した値を利用して前記分割候補を生成することを特徴とする請求項3に記載の複数クラス分類方法。
【請求項5】
コンピュータを請求項1又は2に記載の各手段として機能させることを特徴とする複数クラス分類プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−107975(P2011−107975A)
【公開日】平成23年6月2日(2011.6.2)
【国際特許分類】
【出願番号】特願2009−262191(P2009−262191)
【出願日】平成21年11月17日(2009.11.17)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】