まず、本稿で用いるブースティング手法であるAdaBoost(非特許文献1)について説明する。学習の目的は、与えられた学習事例Xからラベル集合YへのマッピングF、
を導出することである。ここでのラベルは、{−1,+1}である。
図7に、AdaBoostのメイン処理フローを示す。学習システムは、学習データSと、ブースティング繰り返し数Tとを受け付ける(S1)。学習データSは、学習事例とラベルとのセットをn個含み、{(x1,y1),...(xn,yn)}と表される。
は、i番目のセットに係る学習事例を表し、
は、i番目のセットに係るラベルを表している。
ブースティング繰り返し数Tは、ブースティングにおける繰り返しの回数である。
学習システムは、学習事例の重み(w1,1,...w1,n)を初期化する(S3)。学習事例の重みw1,iは、学習事例xiに対応している。各学習事例の重みw1,i(1≦i≦n)に、初期値1/nが設定される。つまり、各初期の学習事例の重みは、均等とする。
そして、カウンタtを1に初期化する(S5)。
学習システムは、弱学習器に弱仮説htを求めさせる(S7)。弱学習器は、上述の学習データSと学習事例の重み(w1,1,...w1,n)から弱仮説htを学習する。htは、t回目のブースティングラウンドで求めた弱仮説を表している。
次に、学習システムは、求めた弱仮説htに対する確信度αtを算出する(S9)。
更に、学習システムは、次の式に従って、学習事例の重みを更新する(S11)。
式中のh
t(x
i)は、学習事例x
iに対するh
tによる分類結果であり、eは、ネイピア数である。また、
は、
のための正規化項である。
学習システムは、カウンタtに1を加え(S13)、カウンタtがブースティング繰り返し数Tを越えたか否かを判定する(S15)。カウンタtがブースティング繰り返し数Tを越えていないと判定した場合には、学習システムは、S7に戻り、上述した一連の処理を繰り返す。
カウンタtがブースティング繰り返し数Tを越えたと判定した場合には、学習システムは、最終仮説Fを求める(S17)。学習システムは、上述のループ処理により求めたT種類の弱仮説を、以下の式に従って結合することによって、最終仮説Fを求める。
式中のsignは、入力値が正の場合には1を返し、それ以外の場合には−1を返す関数である。
図8に、AdaBoostにおける学習データと学習される規則との例を示す。図8の上側のテーブルは、AdaBoostに与えられる学習データの例である。この例で、ラベルが「+1」の場合には、名詞句の一部であることを示し、ラベルが「−1」の場合には、名詞句以外であることを示している。ここでの素性とは、規則の候補である。第1レコードは、素性「Yamada」が名詞句の一部であることに重み「1/3」が与えられたことを示している。第2レコードは、素性「sings」が名詞句以外であることに重み「1/3」が与えられたことを示している。第3レコードは、素性「Taro」が名詞句の一部であることに重み「1/3」が与えられたことを示している。このような学習データから図8の下側のテーブルに示すような規則が学習される。ここで、正の値は名詞句であることを意味し、負の値は名詞句でないことを意味している。
尚、AdaBoostでは、T種類の弱仮説で構成される最終仮説Fにおいて、以下に示す学習エラーの上限値を持つことが証明されている。
[[π]] は、ある命題πが成り立つ場合に1となり、ある命題πが成り立たない場合に0となることを意味している。
式(1) と式(3)によって、各ブースティングラウンドtにおけるhtに対して、以下の式の条件を満たす確信度αtを選択すれば、AdaBoostによる学習は収束することが導かれる。
Zt(αt)<1
[実施の形態の具体的内容]
本実施の形態では、構造予測モデルを規定するスコアと、構造を評価するスコアとの2種類のスコアを用いる。以下、構造予測モデルを規定するスコアを第1スコアと呼び、構造を評価するスコアを第2スコアと呼び、両者を区別する。
上述したブースティング手法では、正例と負例が与えられることを想定しているが、構造学習手法においては明示的に負例が与えられるわけではない。従って、ブースティング手法にそのまま構造学習手法を適用するわけには行かない。
そこで、本実施の形態では、学習事例に対する正解構造における第2スコアと、正解構造以外の構造群における最高の第2スコアとの差を利用する。更に、上述の第2スコアの差で定義されるエラーの上限値に基づき、学習事例の重みを更新する。具体的には、正解構造の第2スコアが最高の第2スコアより低い場合は、不適を意味するので、その学習事例の重みを増加させる。正解構造の第2スコアが最高の第2スコアより高く、あるいは等しい場合は、好適を意味するので、その学習事例の重みを減少させる。
以下で処理の概要を説明する。まず、学習データについて述べる。図9に、学習データに含まれる学習事例の例を示す。この例における学習事例は、単語列である。ここでは説明を簡単にするために、第3単語までの単語列の例を示しているが、単語数はもっと多くてもよい。
また、学習事例の数についても、説明を簡単にするために3つとしているが、実際に学習を行う場合には、もっと多くの学習事例を用意する。
第1学習事例:X1は、第1単語「Yamada」と第2単語「sings」とからなる単語列である。第2学習事例:X2は、第1単語「Taro」と第2単語「sings」とからなる単語列である。第3学習事例:X3は、第1単語「Taro」と第2単語「Yamada」と第3単語「sings」とからなる単語列である。
学習データは、学習事例である単語列に対する正解構造も有している。この例で、図6に例示したように、正解構造は、チャンクとそのチャンクに対するラベルの組み合わせの列である。
図10に示した正解構造の例では、図4で説明した「名詞句の先頭」(B−NP)、「名詞句の先頭以外」(I−NP)、「動詞句の先頭」(B−VP)及び「動詞句の先頭以外」(I−VP)の4種類のラベルを用いて、チャンクと品詞句とを特定する。但し、チャンクと品詞句との組み合わせを特定する構造であれば、図10以外の形式であってもよい。
本実施の形態では、各学習事例に重みが付与される。図11に、初期状態における学習事例の例を示す。初期状態では、重みの合計が1であり、また各重みが均等になるようにする。この例では、学習事例の数が3であるので、各重みは1/3とする。
次に、本実施の形態に係る構造予測モデルについて説明する。構造学習手法として、非特許文献4に示した手法あるいは非特許文献5に示した手法などを利用してもよい。ここでは、非特許文献4における構造学習手法に対してブースティングを適用する例について説明する。図12に、初期状態における構造予測モデルの例を示す。構造予測モデルは、正解構造を予測する各手掛かりに対応する第1スコアを有している。この例における手掛かりは、素性に相当する。初期状態において、各第1スコアには初期値0が設定される。
この例で、第1レコードは、チャンク「Taro」のラベルが名詞句(NP)であるという手掛かりに対応する第1スコアに0が設定されていることを示している。第2レコードは、チャンク「Yamada」のラベルが名詞句(NP)であるという手掛かりに対応する第1スコアに0が設定されていることを示している。第3レコードは、チャンク「Taro」のラベルが動詞句(VP)であるという手掛かりに対応する第1スコアに0が設定されていることを示している。第4レコードは、チャンク「Yamada」のラベルが動詞句(VP)であるという手掛かりに対応する第1スコアに0が設定されていることを示している。第5レコードは、チャンク「sings」のラベルが動詞句(VP)であるという手掛かりに対応する第1スコアに0が設定されていることを示している。第6レコードは、チャンク「Yamada sings」のラベルが名詞句(NP)であるという手掛かりに対応する第1スコアに0が設定されていることを示している。第7レコードは、チャンク「Taro Yamada」のラベルが名詞句(NP)であるという手掛かりに対応する第1スコアに0が設定されていることを示している。手掛かりを特定する条件は、この例に限定されない。例えば、当該チャンクの前の単語あるいは後の単語に対する条件を含んでいてもよい。
図13に、構造学習の様子を示す。この図は、第1学習事例X1の単語列1301に対する候補構造Y群1303から、図12に示した構造予測モデルに従って、最も第2スコアの大きい構造Y* 11305を抽出する様子を示している。図12に示した構造予測モデルでは、第1スコアがすべて0であるので、各候補構造Yにおける第2スコアは等しく0となる。その場合には、いずれの候補構造Yが抽出されてもよいが、この例ではチャンク「Yamada sings」とそのラベルの名詞句(NP)との組み合わせである構造Yが選択される。
第1学習事例X1の正解構造Y11307は、第1チャンク「Yamada」とそのラベルの名詞句(NP)との組み合わせと、第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせの列であるので、ここで抽出された最大スコア構造Y* 11305は、正解構造Y11307と一致しないと判定される。
この図で、最大スコア構造Y* 11305に含まれるチャンクとそのラベルとの組み合わせを太い実線の枠で囲み、正解構造Y11307に含まれるチャンクとそのラベルとの組み合わせを太い破線の枠で囲んでいる。
図14に、図13の判定結果に基づいて、構造予測モデルを更新する様子を示す。本実施の形態では、最大スコア構造が正解構造と一致しないと判定された場合に、最大スコア構造に対応する各手掛かりの第1スコアから学習事例の重みだけ減算する。更に、正解構造に対応する各手掛かりの第1スコアに学習事例の重みを加算する。
このように減算する値と加算する値とは、学習率と呼ばれる。つまり、学習事例の重みを学習率に適用して、最大スコア構造に対応する各手掛かりの第1スコアに対する減算を行うとともに、正解構造に対応する各手掛かりの第1スコアに対する加算を行う。
最大スコア構造Y* 11305に含まれるチャンク「Yamada sings」とそのラベルである名詞句(NP)との組み合わせは、構造予測モデルの第6レコードの手掛かりに合致するので、第6レコードの第1スコアを減算する。このとき、図11に示した第1学習事例の重みW1,1に相当する「1/3」を引くようにする。
更に、正解構造Y11307に含まれる第1チャンク「Yamada」とそのラベルの名詞句(NP)との組み合わせは、構造予測モデルの第2レコードの手掛かりに合致するので、第2レコードの第1スコアを加算する。同じく正解構造Y11307に含まれる第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせは、構造予測モデルの第5レコードの手掛かりに合致するので、第5レコードの第1スコアを加算する。このとき、いずれも、図11に示した第1学習事例の重みW1,1に相当する「1/3」を加えるようにする。以上で、第1学習事例に対する1回目の構造学習を終える。
続いて、図15に、第2学習事例に対する1回目の構造学習の様子を示す。この図は、第2学習事例X2の単語列1501に対する候補構造Y群1503から、図14に示した構造予測モデルに従って、最も第2スコアの大きい構造Y* 21505を抽出する様子を示している。ここでは、チャンク「Taro」とそのラベルの動詞句(VP)との組み合わせと、チャンク「sings」とそのラベルの動詞句(VP)との組み合わせとの列が選択される。
第2学習事例X2については、ここで抽出された最大スコア構造Y* 21505は、正解構造Y21507と一致しないと判定される。
この図でも、最大スコア構造Y* 21505に含まれるチャンクとそのラベルとの組み合わせを太い実線の枠で囲み、正解構造Y21507に含まれるチャンクとそのラベルとの組み合わせを太い破線の枠で囲んでいる。
図16に、図15の判定結果に基づいて、構造予測モデルを更新する様子を示す。最大スコア構造Y* 21505に含まれるチャンク「Taro」とそのラベルの動詞句(VP)との組み合わせは、構造予測モデルの第3レコードの手掛かりに合致するので、第3レコードの第1スコアを減算する。同じく最大スコア構造Y* 21505に含まれるチャンク「sings」とそのラベルの動詞句(VP)との組み合わせは、構造予測モデルの第5レコードの手掛かりに合致するので、第5レコードの第1スコアを減算する。このとき、いずれも、図11に示した第2学習事例の重みW1,2に相当する「1/3」を引くようにする。
更に、正解構造Y21507に含まれる第1チャンク「Taro」とそのラベルの名詞句(NP)との組み合わせは、構造予測モデルの第1レコードの手掛かりに合致するので、第1レコードの第1スコアを加算する。同じく正解構造Y21507に含まれる第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせは、構造予測モデルの第5レコードの手掛かりに合致するので、第5レコードの第1スコアを加算する。このとき、いずれも、図11に示した第1学習事例の重みW1,2に相当する「1/3」を加えるようにする。第5レコードの第1スコアは、減算と加算とが重なるため、結果的に値が変動しない。以上で、第2学習事例に対する1回目の構造学習を終える。
続いて、図17に、第3学習事例に対する1回目の構造学習の様子を示す。この図は、第3学習事例X3の単語列1701に対する候補構造Y群1703から、図16に示した構造予測モデルに従って、最も第2スコアの大きい構造Y* 31705を抽出する様子を示している。ここでは、チャンク「Taro」とそのラベルの名詞句(NP)との組み合わせと、チャンク「Yamada」とそのラベルの名詞句(NP)との組み合わせと、チャンク「sings」とそのラベルの動詞句(VP)との組み合わせとの列が選択される。
第3学習事例X3の正解構造Y31707は、第1チャンク「Taro Yamada」とそのラベルの名詞句(NP)との組み合わせと、第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせの列であるので、ここで抽出された最大スコア構造Y* 31705は、正解構造Y31707と一致しないと判定される。
この図でも、最大スコア構造Y* 31705に含まれるチャンクとそのラベルとの組み合わせを太い実線の枠で囲み、正解構造Y31707に含まれるチャンクとそのラベルとの組み合わせを太い破線の枠で囲んでいる。
図18に、図17の判定結果に基づいて、構造予測モデルを更新する様子を示す。最大スコア構造Y* 31705に含まれるチャンク「Taro」とそのラベルである名詞句(NP)との組み合わせは、構造予測モデルの第1レコードの手掛かりに合致するので、第1レコードの第1スコアを減算する。同じく最大スコア構造Y* 31705に含まれるチャンク「Yamada」とそのラベル名詞句(NP)との組み合わせは、構造予測モデルの第2レコードの手掛かりに合致するので、第2レコードの第1スコアを減算する。同じく最大スコア構造Y* 31705に含まれるチャンク「sings」とそのラベル動詞句(VP)との組み合わせは、構造予測モデルの第5レコードの手掛かりに合致するので、第5レコードの第1スコアを減算する。このとき、いずれも、図11に示した第3学習事例の重みW1,3に相当する「1/3」を引くようにする。
更に、正解構造Y31707に含まれる第1チャンク「Taro Yamada」とそのラベルの名詞句(NP)との組み合わせは、構造予測モデルの第7レコードの手掛かりに合致するので、第7レコードの第1スコアを加算する。同じく正解構造Y31707に含まれる第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせは、構造予測モデルの第5レコードの手掛かりに合致するので、第5レコードの第1スコアを加算する。このとき、いずれも、図11に示した第1学習事例の重みW1,3に相当する「1/3」を加えるようにする。第5レコードの第1スコアは、減算と加算とが重なるため、結果的に値が変動しない。以上で、第3学習事例に対する1回目の構造学習を終える。
通常は、上述した構造学習を複数回繰り返すが、ここでは説明を簡単にするために、繰り返しは行わずに、構造学習を一旦終了する。
このようにして、構造予測モデルが得られると、次に構造予測モデルに対する確信度を算出する。本実施の形態では、正解構造を除く候補構造群に対する第2スコアのうち最大スコアと、正解構造に対する第2スコアである正解スコアとの差に基づいて、確信度を算出する。尚、第2スコアは、その時点における構造予測モデルに基づいて算出される。
図19に、第1学習事例に対する1回目の第2スコア算出の様子を示す。この図は、第1学習事例X1の単語列1301に対する候補構造Y群1303から、図18に示した構造予測モデルに従って、最も第2スコアの大きい構造Yt 11901(正解構造Y11307を除く)を抽出する様子を示している。ここではチャンク「Yamada」とそのラベルの動詞句(VP)との組み合わせと、チャンク「sings」とそのラベルの動詞句(VP)との組み合わせとの列が選択される。
最も第2スコアの大きい構造Yt 11901に対する第2スコアs1(X1,Yt 1)は、チャンク「Yamada」とそのラベルの動詞句(VP)との組み合わせに対するスコアと、チャンク「sings」とそのラベルの動詞句(VP)との組み合わせに対するスコアとの合計となる。チャンク「Yamada」とそのラベルの動詞句(VP)との組み合わせに対するスコアの算出には、図18に示した構造予測モデルでこの組み合わせに合致する手掛かりを示す第4レコードに設定されている第1スコアを用いる。つまり、0となる。チャンク「sings」とそのラベルの動詞句(VP)との組み合わせに対するスコアの算出には、図18に示した構造予測モデルでこの組み合わせに合致する手掛かりを示す第5レコードに設定されている第1スコアを用いる。つまり、1/3となる。従って、最も第2スコアの大きい構造Yt 11901に対する最大スコアs1(X1,Yt 1)は、1/3となる。
更に、正解構造Y11307の第2スコアである正解スコアも算出する。正解構造Y11307に対する第2スコアs1(X1,Y1)は、第1チャンク「Yamada」とそのラベルの名詞句(NP)との組み合わせに対するスコアと、第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせに対するスコアとの合計となる。第1チャンク「Yamada」とそのラベルの名詞句(NP)との組み合わせに対するスコアの算出には、図18に示した構造予測モデルでこの組み合わせに合致する手掛かりを示す第2レコードに設定されている第1スコアを用いる。つまり、0となる。第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせに対するスコアの算出には、図18に示した構造予測モデルでこの組み合わせに合致する手掛かりを示す第5レコードに設定されている第1スコアを用いる。つまり、1/3となる。従って、正解構造Y11307の第2スコアである正解スコアs1(X1,Y1)は、1/3となる。
そのため、第1学習事例X1については、正解スコアと最大スコアとの差は、0となる。
図20に、第2学習事例に対する1回目の第2スコア算出の様子を示す。この図は、第2学習事例X2の単語列1501に対する候補構造Y群1503から、図18に示した構造予測モデルに従って、最も第2スコアの大きい構造Yt 22001(正解構造Y21507を除く)を抽出する様子を示している。ここではチャンク「Taro」とそのラベルの動詞句(VP)との組み合わせと、チャンク「sings」とそのラベルの動詞句(VP)との組み合わせとの列が選択される。
最も第2スコアの大きい構造Yt 22001に対する第2スコアs1(X2,Yt 2)は、チャンク「Taro」とそのラベルの動詞句(VP)との組み合わせに対するスコアと、チャンク「sings」とそのラベルの動詞句(VP)との組み合わせに対するスコアとの合計となる。チャンク「Taro」とそのラベルの動詞句(VP)との組み合わせに対するスコアの算出には、図18に示した構造予測モデルでこの組み合わせに合致する手掛かりを示す第3レコードに設定されている第1スコアを用いる。つまり、−1/3となる。チャンク「sings」とそのラベルの動詞句(VP)との組み合わせに対するスコアの算出には、図18に示した構造予測モデルでこの組み合わせに合致する手掛かりを示す第5レコードに設定されている第1スコアを用いる。つまり、1/3となる。従って、最も第2スコアの大きい構造Yt 22001に対する最大スコアs1(X2,Yt 2)は、0となる。
更に、正解構造Y21507の第2スコアである正解スコアも算出する。正解構造Y21507に対する第2スコアs1(X2,Y2)は、第1チャンク「Taro」とそのラベルの名詞句(NP)との組み合わせに対するスコアと、第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせに対するスコアとの合計となる。第1チャンク「Taro」とそのラベルの名詞句(NP)との組み合わせに対するスコアの算出には、図18に示した構造予測モデルでこの組み合わせに合致する手掛かりを示す第1レコードに設定されている第1スコアを用いる。つまり、0となる。第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせに対するスコアの算出には、図18に示した構造予測モデルでこの組み合わせに合致する手掛かりを示す第5レコードに設定されている第1スコアを用いる。つまり、1/3となる。従って、正解構造Y21507の第2スコアである正解スコアs1(X2,Y2)は、1/3となる。
そのため、第2学習事例X2について、正解スコアと最大スコアとの差は、1/3となる。
図21に、第3学習事例に対する1回目のスコア算出の様子を示す。この図は、第3学習事例X3の単語列1701に対する候補構造Y群1703から、図18に示した構造予測モデルに従って、最も第2スコアの大きい構造Yt 32101(正解構造Y31707を除く)を抽出する様子を示している。ここではチャンク「Taro」とそのラベルの名詞句(NP)との組み合わせと、チャンク「Yamada」とそのラベルの名詞句(NP)との組み合わせと、チャンク「sings」とそのラベルの動詞句(VP)との組み合わせとの列が選択される。
最も第2スコアの大きい構造Yt 32101に対する第2スコアs1(X3,Yt 3)は、チャンク「Taro」とそのラベルの名詞句(NP)との組み合わせに対するスコアと、チャンク「Yamada」とそのラベルの名詞句(NP)との組み合わせに対するスコアと、チャンク「sings」とそのラベルの動詞句(VP)との組み合わせに対するスコアとの合計となる。チャンク「Taro」とそのラベルの名詞句(NP)との組み合わせに対するスコアの算出には、図18に示した構造予測モデルでこの組み合わせに合致する手掛かりを示す第1レコードに設定されている第1スコアを用いる。つまり、0となる。チャンク「Yamada」とそのラベルの名詞句(NP)との組み合わせに対するスコアの算出には、図18に示した構造予測モデルでこの組み合わせに合致する手掛かりを示す第2レコードに設定されている第1スコアを用いる。つまり、0となる。チャンク「sings」とそのラベルの動詞句(VP)との組み合わせに対するスコアの算出には、図18に示した構造予測モデルでこの組み合わせに合致する手掛かりを示す第5レコードに設定されている第1スコアを用いる。つまり、1/3となる。従って、最も第2スコアの大きい構造Yt 32101に対する最大スコアs1(X3,Yt 3)は、1/3となる。
更に、正解構造Y31707の第2スコアである正解スコアも算出する。正解構造Y31707に対する第2スコアs1(X3,Y3)は、第1チャンク「Taro Yamada」とそのラベルの名詞句(NP)との組み合わせに対するスコアと、第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせに対するスコアとの合計となる。第1チャンク「Taro Yamada」とそのラベルの名詞句(NP)との組み合わせに対するスコアの算出には、図18に示した構造予測モデルでこの組み合わせに合致する手掛かりを示す第7レコードに設定されている第1スコアを用いる。つまり、1/3となる。第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせに対するスコアの算出には、図18に示した構造予測モデルでこの組み合わせに合致する手掛かりを示す第5レコードに設定されている第1スコアを用いる。つまり、1/3となる。従って、正解構造Y31707の第2スコアである正解スコアs1(X3,Y3)は、2/3となる。
そのため、第3学習事例X3について、正解スコアと最大スコアとの差は、1/3となる。
これらの差に基づいて、後述する式(4)を満たす確信度を特定する。この例では、後述する式(5)により、
Z~ 1(α1)(~は、Zの上のハットを意味する。)
=1/3exp(−α*(0)))+1/3exp(−α*(1/3)))+1/3exp(−α*(1/3)))
=1/3+2/3exp(−α/3)<1
となるα1を見つける。
この例では、0<確信度α1であれば足りるので、確信度α1を1とする。従って、
Z~ 1(1)=0.81102
となる。
そして、後述する式(6)により、以下の通り第2学習事例の重みを算出する。
W2,1=W1,1exp(−(0))/Z~ 1(1)
=(1/3)/Z~ 1(1)=0.411
W2,2=W1,2exp(−(1/3))/Z~ 1(1)
=(1/3)exp(−(1/3))/Z~ 1(1)=0.29449
W2,3=W1,3exp(−(1/3))/Z~ 1(1)
=(1/3)exp(−(1/3))/Z~ 1(1)=0.29449
図22に、更新された学習事例の重みの例を示す。このように、学習事例の重みを更新した上で、更に構造学習を繰り返す。
図23に、第1学習事例に対する2回目の構造学習の様子を示す。2回目の構造学習において、構造予測モデルは初期化され、図12の状態に戻る。この図は、第1学習事例X1の単語列1301に対する候補構造Y群1303から、図12に示した構造予測モデルに従って、最も第2スコアの大きい構造Y* 12301を抽出する様子を示している。ここでは、チャンク「Yamada sings」とそのラベルの名詞句(NP)との組み合わせが選択される。
第1学習事例X1の正解構造Y11307は、第1チャンク「Yamada」とそのラベルの名詞句(NP)との組み合わせと、第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせの列であるので、ここで抽出された最大スコア構造Y* 12301は、正解構造Y11307と一致しないと判定される。
この図でも、最大スコア構造Y* 12301に含まれるチャンクとそのラベルとの組み合わせを太い実線の枠で囲み、正解構造Y11307に含まれるチャンクとそのラベルとの組み合わせを太い破線の枠で囲んでいる。
図24に、図23の判定結果に基づいて、構造予測モデルを更新する様子を示す。最大スコア構造Y* 12301に含まれるチャンク「Yamada sings」とそのラベルの名詞句(NP)との組み合わせは、構造予測モデルの第6レコードの手掛かりに合致するので、第6レコードの第1スコアを減算する。このとき、図22に示した第1学習事例の重みW2,1に相当する「0.411」を引くようにする。1回目に比べて、重みが増している。
更に、正解構造Y11307に含まれる第1チャンク「Yamada」とそのラベルの名詞句(NP)との組み合わせは、構造予測モデルの第2レコードの手掛かりに合致するので、第2レコードの第1スコアを加算する。同じく正解構造Y11307に含まれる第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせは、構造予測モデルの第5レコードの手掛かりに合致するので、第5レコードの第1スコアを加算する。このとき、いずれも、図22に示した第1学習事例の重みW2,1に相当する「0.411」を加えるようにする。1回目に比べて、重みが増している。以上で、第1学習事例に対する2回目の構造学習を終える。
続いて、図25に、第2学習事例に対する2回目の構造学習の様子を示す。この図は、第2学習事例X2の単語列1501に対する候補構造Y群1503から、図24に示した構造予測モデルに従って、最も第2スコアの大きい構造Y* 22501を抽出する様子を示している。ここでは、チャンク「Taro」とそのラベルの動詞句(VP)との組み合わせと、チャンク「sings」とそのラベルの動詞句(VP)との組み合わせとの列が選択される。
第2学習事例X2の正解構造Y21507は、第1チャンク「Taro」とそのラベルの名詞句(NP)との組み合わせと、第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせの列であるので、ここで抽出された最大スコア構造Y* 22501は、正解構造Y21507と一致しないと判定される。
この図でも、最大スコア構造Y* 22501に含まれるチャンクとそのラベルとの組み合わせを太い実線の枠で囲み、正解構造Y21507に含まれるチャンクとそのラベルとの組み合わせを太い破線の枠で囲んでいる。
図26に、図25の判定結果に基づいて、構造予測モデルを更新する様子を示す。最大スコア構造Y* 22501に含まれるチャンク「Taro」とそのラベルの動詞句(VP)との組み合わせは、構造予測モデルの第3レコードの手掛かりに合致するので、第3レコードの第1スコアを減算する。同じく最大スコア構造Y* 22501に含まれるチャンク「sings」とそのラベルの動詞句(VP)との組み合わせは、構造予測モデルの第5レコードの手掛かりに合致するので、第5レコードの第1スコアを減算する。このとき、いずれも、図22に示した第2学習事例の重みW2,2に相当する「0.29449」を引くようにする。1回目に比べて、重みが減っている。
更に、正解構造Y21507に含まれる第1チャンク「Taro」とそのラベルの名詞句(NP)との組み合わせは、構造予測モデルの第1レコードの手掛かりに合致するので、第1レコードの第1スコアを加算する。同じく正解構造Y21507に含まれる第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせは、構造予測モデルの第5レコードの手掛かりに合致するので、第5レコードの第1スコアを加算する。このとき、いずれも、図22に示した第2学習事例の重みW2,2に相当する「0.29449」を加えるようにする。1回目に比べて、重みが減っている。第5レコードの第1スコアは、減算と加算とが重なるため、結果的に値が変動しない。以上で、第2学習事例に対する2回目の構造学習を終える。
続いて、図27に、第3学習事例に対する2回目の構造学習の様子を示す。この図は、第3学習事例X3の単語列1701に対する候補構造Y群1703から、図26に示した構造予測モデルに従って、最も第2スコアの大きい構造Y* 32701を抽出する様子を示している。ここでは、チャンク「Taro」とそのラベルの名詞句(NP)との組み合わせと、チャンク「Yamada」とそのラベルの名詞句(NP)との組み合わせと、チャンク「sings」とそのラベルの動詞句(VP)との組み合わせとの列が選択される。
第3学習事例X3の正解構造Y31707は、第1チャンク「Taro Yamada」とそのラベルの名詞句(NP)との組み合わせと、第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせの列であるので、ここで抽出された最大スコア構造Y* 32701は、正解構造Y31707と一致しないと判定される。
この図でも、最大スコア構造Y* 32701に含まれるチャンクとそのラベルとの組み合わせを太い実線の枠で囲み、正解構造Y31707に含まれるチャンクとそのラベルとの組み合わせを太い破線の枠で囲んでいる。
図28に、図27の判定結果に基づいて、構造予測モデルを更新する様子を示す。最大スコア構造Y* 32701に含まれるチャンク「Taro」とそのラベルの名詞句(NP)との組み合わせは、構造予測モデルの第1レコードの手掛かりに合致するので、第1レコードの第1スコアを減算する。同じく最大スコア構造Y* 32701に含まれるチャンク「Yamada」とそのラベルの名詞句(NP)との組み合わせは、構造予測モデルの第2レコードの手掛かりに合致するので、第2レコードの第1スコアを減算する。同じく最大スコア構造Y* 32701に含まれるチャンク「sings」とそのラベルの動詞句(VP)との組み合わせは、構造予測モデルの第5レコードの手掛かりに合致するので、第5レコードの第1スコアを減算する。このとき、いずれも、図22に示した第3学習事例の重みW2,3に相当する「0.29449」を引くようにする。1回目に比べて、重みが減っている。
更に、正解構造Y31707に含まれる第1チャンク「Taro Yamada」とそのラベルの名詞句(NP)との組み合わせは、構造予測モデルの第7レコードの手掛かりに合致するので、第7レコードの第1スコアを加算する。同じく正解構造Y31707に含まれる第2チャンク「sings」とそのラベルの動詞句(VP)との組み合わせは、構造予測モデルの第5レコードの手掛かりに合致するので、第5レコードの第1スコアを加算する。このとき、いずれも、図22に示した第3学習事例の重みW2,3に相当する「0.29449」を加えるようにする。1回目に比べて、重みが減っている。第5レコードの第1スコアは、減算と加算とが重なるため、結果的に値が変動しない。以上で、第3学習事例に対する2回目の構造学習を終える。
そして、2回目の構造予測モデルについても確信度を算出する。図28に示した2回目の構造予測モデルは、図18に示した1回目の構造予測モデルよりも構造を予測する精度が向上している。
例えば、チャンク「Taro」とそのラベルの名詞句(NP)との組み合わせに合致する手掛りに対応する第1レコードの第1スコア「0」は、チャンク「Taro」とそのラベルの動詞句(VP)との組み合わせに合致する手掛りに対応する第3レコードの第1スコア「−0.29449」よりも大きい。従って、チャンク「Taro」について、正しいラベルである名詞句(NP)を導くようになっている。
例えば、チャンク「Yamada」とそのラベルの名詞句(NP)との組み合わせに合致する手掛りに対応する第2レコードの第1スコア「0.11651」は、チャンク「Yamada」とそのラベルの動詞句(VP)との組み合わせに合致する手掛りに対応する第4レコードの第1スコア「0」よりも大きい。従って、チャンク「Yamada」についても、正しいラベルである名詞句(NP)を導くようになっている。
例えば、チャンク「Taro Yamada」とそのラベルの名詞句(NP)との組み合わせに合致する手掛りに対応する第7レコードの第1スコア「0.29449」は、チャンク「Taro」とそのラベルの名詞句(NP)との組み合わせに合致する手掛りに対応する第1レコードの第1スコア「0」と、チャンク「Yamada」とそのラベルの名詞句(NP)との組み合わせとの列に合致する手掛りに対応する第2レコードの第1スコア「0.11651」との合計「0.11651」よりも大きい。従って、チャンク「Taro Yamada」とそのラベルの名詞句(NP)との組み合わせを正しく導くようになっている。
尚、後述するように、それぞれの構造予測モデルに基づいて、結合モデルを求める。以上で、処理の概要についての説明を終える。
以下、具体的なシステムの構成及び動作について説明する。図29に、モデル学習装置の機能ブロックを示す。本システムは、学習データなどの入力を行うための学習データ入力部101と、学習データ入力部101によって入力された学習データなどを格納する学習データ格納部103と、学習データ格納部103に格納されているデータを用いて本実施の形態における主要な処理を実施するモデル学習部105とを有する。
更に、本システムは、モデル学習部105で算出する第2スコアの差データを格納する差データ格納部106と、モデル学習部105で算出する重みデータを格納する重みデータ格納部107と、モデル学習部105で算出する確信度データを格納する確信度格納部108と、モデル学習部105の処理結果であるモデルデータ(例えば、構造予測モデル及び統合モデル)を格納するモデルデータ格納部109とを有する。
更に、本システムは、生成されたモデルを適用して分類を行う対象である分類データを入力するための分類データ入力部111と、分類データ入力部111によって入力された分類データを格納する分類データ格納部113と、モデルデータ格納部109に格納されているモデルデータを、分類データ格納部113に格納されている処理対象データに適用して、分類を行うモデル適用部115と、モデル適用部115の処理結果を格納する処理結果格納部117とを有する。
図30に、モデル学習部105の構成を示す。モデル学習部105は、ブースティング部201と構造学習部203とを有する。ブースティング部201は、ブースティング処理を行う。構造学習部203は、構造学習処理を行う。
ブースティング部201は、初期化部205、確信度算出部207、結合モデル更新部209及び重み更新部211を有する。初期化部205は、データの初期化を行う。確信度算出部207は、構造予測モデルに対する確信度を算出する。結合モデル更新部209は、結合モデルを更新する。重み更新部211は、学習事例の重みを更新する。
学習データ格納部103、差データ格納部106、重みデータ格納部107、確信度格納部108、モデルデータ格納部109、分類データ格納部113及び処理結果格納部117は、例えば後述する図36に示されたメモリ2501、HDD(Hard Disk Drive)2505あるいはドライブ装置2513を用いる。
学習データ入力部101、モデル学習部105、分類データ入力部111、モデル適用部115、ブースティング部201、構造学習部203、初期化部205、確信度算出部207、結合モデル更新部209及び重み更新部211は、その処理の一部又は全部を、例えば後述する図36に示されたメモリ2501に格納されたプログラムに含まれる命令をCPU(Central Processing Unit)2503で読み込み、実行することによって実現されるようにしてもよい。
次に、図31乃至図35を用いて、本実施の形態におけるモデル学習部105等の処理内容について説明する。
図31に、本発明のメイン処理フローを示す。まず、学習データ入力部101は、例えばユーザからの指示に従って、学習データS={(X1,Y1),...,(Xn,Yn)}と、ブースティング繰り返し数Tとについての入力を受け付ける(S101)。
学習データ入力部101は、例えば、図9に示した学習事例と、図10に示した正解構造とを受け付ける。ブースティング繰り返し数Tは、ブースティングにおける繰り返しの回数である。
モデル学習部105は、モデルデータ格納部109に初期の結合モデルM0を設定する(S103)。具体的には、ブースティング部201の初期化部205がこの処理を行う。図32に、初期状態における結合モデルの例を示す。初期化部205は、各手掛かりに対する第1スコアに0を設定する。
モデル学習部105は、重みデータ格納部107に格納されている学習事例の重み(w1,1,...w1,n)を初期化する(S105)。具体的には、ブースティング部201の初期化部205がこの処理を行う。各重みに、等しく1/nの値が設定される。
モデル学習部105のブースティング部201は、パラメータtを1に初期化する(S107)。
モデル学習部105は、構造学習処理を実施する(S109)。具体的には、構造学習部203がこの処理を行う。
図33に、構造学習処理フローを示す。構造学習部203は、以下の式に示すように、学習事例の重み(w
t,1,...w
t,n)を学習事例の学習率(ε
1,...ε
n)にセットする(S201)。学習事例の学習率(ε
1,...ε
n)は、構造学習処理における内部パラメータである。
ここでは、非特許文献4に示した手法を利用する場合の例を示しているが、非特許文献5に示した手法を利用する場合にも、同様に学習事例の重みを学習事例の学習率にセットするようにしてもよい。
構造学習部203は、モデルデータ格納部109に格納されている構造予測モデルmを初期化する(S203)。このとき、構造学習部203は、モデルデータ格納部109に格納されている構造予測モデルmに含まれる各スコアを0にする。これにより、構造予測モデルmは、図12に示した状態となる。
構造学習部203は、パラメータpを1に初期化する(S205)。
構造学習部203は、パラメータiを1に初期化する(S207)。
構造学習部203は、以下の式に従って、学習事例X
iについての候補構造Y群のうち、最大スコアを得る構造Y
* iを特定する(S209)。以下で説明する構造は、例えば前述したチャンクとラベルとの組み合わせの列に相当する。
Φ(X,Y)は、学習事例Xの単語列 と構造Yとを、D次元ベクトルへマッピングする関数であり、以下の式のように定義される。
Dは、構造予測モデルmにおける手掛かりの数に相当する。|Y|は、構造Yに含まれるチャンクの数である。Y(j)は、構造Yに含まれるj番目のチャンクとそのラベルl(Y(j))との組み合わせである。
また、φd(X,Y(j))は、学習事例である単語列Xと組み合わせY(j)を受け取り、D次元のベクトルを返す関数である。単語列Xと組み合わせY(j)とが、d番目の手掛かりに相当する素性を満たす場合には、d次元目の値に1が設定され、他の値に0が設定されたベクトルが返される。単語列Xと組み合わせY(j)とが、d番目の手掛かりに相当する素性を満たさない場合には、d次元目の値に0が設定され、更に他の値にも0が設定されたベクトルが返される。
素性には、例えば「Y(j)のチャンクが『Mr.』であり、且つそのラベルが名詞句である」、「Y(j)のチャンクにおける先頭の単語の前に出現する単語が『Mr.』であり、且つそのチャンクのラベルl(Y(j))が動詞句である」、あるいは「Y(j)のチャンクにおける最後の単語の後に出現する単語が『in』であり、且つそのチャンクのラベルl(Y(j))が名詞句である」のようなものを用いてもよい。
繰り返しによって、構造予測モデルmは随時更新されるが、構造学習部203は、S209の処理時点における構造予測モデルmを用いる。wφd(X,Y)は、学習事例Xと構造Yの組み合わせに与えられるスコアである。
最大スコア構造Y
* iが、正解構造Y
iと異なる場合には、以下の式に従って、構造予測モデルmは更新される。
そのため、構造学習部203は、最大スコア構造Y* iは正解構造Yiと一致するか否かを判定する。(S211)。最大スコア構造Y* iは正解構造Yiと一致すると判定した場合には、そのままS215の処理へ移る。
他方、最大スコア構造Y* iは正解構造Yiと一致しないと判定した場合には、構造学習部203は、構造予測モデル更新処理を実施する(S213)。
図34に、構造予測モデル更新処理フローを示す。構造学習部203は、最大スコア構造Y* iに対応する各手掛かりの第1スコアを、学習率εiに従って減算する(S301)。構造学習部203は、図14、図16、図18、図24、図26及び図28における太い実線枠の例のように、最大スコア構造Y* iに含まれる各チャンクとそのラベルの組み合わせと合致する各手掛かりを特定し、その手掛かりの第1スコアに学習率εiの値を減算する。
更に、構造学習部203は、正解構造Yiに対応する各手掛かりの第1スコアを、学習率εiに従って加算する(S303)。構造学習部203は、図14、図16、図18、図24、図26及び図28における太い破線枠の例のように、正解構造Yiに含まれる各チャンクとそのラベルの組み合わせと合致する各手掛かりを特定し、その手掛かりの第1スコアに学習率εiの値を加算する。そして、図33のS215の処理に戻る。
図33の処理に戻って、構造学習部203は、パラメータiに1を加え(S215)、パラメータiが学習事例の数nを越えたか否かを判定する(S217)。パラメータiが学習事例の数nを越えていないと判定した場合には、S209に戻って一連の処理を繰り返す。パラメータiが学習事例の数nを越えたと判定した場合には、S219に移って、構造学習部203は、パラメータpに1を加え(S219)、パラメータpが構造学習の繰り返し数Pを越えたか否かを判定する(S217)。パラメータpが構造学習の繰り返し数Pを越えていないと判定した場合には、S207に戻って一連の処理を繰り返す。パラメータpが構造学習の繰り返し数Pを越えたと判定した場合には、構造学習処理を終え、図31のS111に戻る。
図31の説明に戻る。モデル学習部105は、確信度算出処理を実施する(S111)。具体的には、ブースティング部201の確信度算出部207がこの処理を行う。
図35に、確信度算出処理フローを示す。確信度算出部207は、パラメータiに1を設定する(S401)。パラメータiは、S403からS407までのルーチンを計数し、学習事例を特定する。
確信度算出部207は、候補構造Y群のうち、正解構造Y
iを除き最大スコアを得る構造Y
t iを特定する(S403)。最大スコアを得る構造Y
t iを特定するための式を、以下に示す。
上記のs
t(X
i,Y)は、以下の式に示すように、t番目のブースティングラウンドにおける学習事例X
iに対する構造Yのスコアを意味する。
mtは、t番目のブースティングラウンドにおける構造予測モデルである。
上述の通り正解構造Yiは除かれるので、候補構造Y群のスコアうち、正解構造Yiのスコアが最も大きい場合には、2番目に大きいスコアを得た構造をYt iとする。このとき、例えばforward-DP backward-A* N-best search algorithm(非特許文献2) の技術を用いるようにしてもよい。
確信度算出部207は、以下の式に従って、正解構造Y
iに対する第2スコアから最大スコア構造Y
t iに対する第2スコアを引いて差d
t(X
i)を求める(S405)。確信度算出部207は、求めた差を差データ格納部106に格納する。
この差を用いることによって、誤ってチャンキングされた学習事例、あるいは誤ってラベル付けされた学習事例に対する重みが高くなるように調整される。
確信度算出部207は、パラメータiに1を加え(S407)、パラメータiが学習事例の数nを越えたか否かを判定する(S409)。パラメータiが学習事例の数nを越えていないと判定した場合には、S403へ戻り一連の処理を繰り返す。
パラメータiが学習事例の数nを越えたと判定した場合には、確信度算出部207は、学習モデルM
tに対する確信度α
tを算出する。具体的には、確信度算出部207は、差データ格納部106に格納されている各学習事例における差に基づき、以下の式で示される収束条件を満たす確信度α
tを特定する(S411)。
この式によれば、構造学習処理(S109)によって各学習事例に与えられる実数値であるスコアを指数として扱うことになる。従って、収束条件を満たす確信度αtを解析的に計算することは、難しい場合もある。
確信度α
tを計算する方法として、Bisection Searchを利用するようにしてもよい。{−1,+1}の二値を予測する弱仮説h
tを用いた場合の確信度の計算(AdaBoost:非特許文献1)に合わせるために、本実施の形態では、弱仮説h
tをsign(d
t(X
i))と定義する。そして、式(2)におけるZ
t(α
t)を最小化するときの値α
tを求め、それを確信度とする。そのため、以下の式に示すように、Z
tに対するα
tによる微分を行う。
そして、上記式が0となる条件を解くことで、以下の式に示すように確信度を求める。
最後に、以下の範囲で、式(5)を最小化する値をBisection Searchによって選択し、それを確信度とする。
このように探索の範囲を広くすることによって、より正確な確信度が得られると期待される。確信度算出部207は、算出した確信度を確信度格納部108に格納する。以上で、確信度算出処理についての説明を終える。
図31の説明に戻る。モデル学習部105は、モデルデータ格納部109に格納されている構造予測モデルに基づき、モデルデータ格納部109に格納されている結合モデルを更新する(S113)。具体的には、ブースティング部201の結合モデル更新部209が、以下の式に従って、前回のブースティングラウンドt−1における結合モデルM
t-1、今回のブースティングラウンドtで求めた構造予測モデルm
t及び確信度α
tに基づいて、今回のブースティングラウンドtにおける結合モデルM
tを算出する。このとき、結合モデル更新部209は、確信度格納部108から確信度α
tを読み取る。
続いて、モデル学習部105は、重みデータ格納部107に格納されている学習事例の重みを更新する(S115)。具体的には、ブースティング部201の重み更新部211が、以下の式に従って、今回のブースティングラウンドtにおける学習事例の重み(w
t,1,...w
t,n)から、次回のブースティングラウンドtにおける学習事例の重み(w
t+1,1,...w
t+1,n)を求める。
正解構造Yiのスコアst(Xi,Yi) が、最大スコアst(Xi,Yt i)より大きい場合、つまり0<dt(Xi)の場合には、正しく解析されたことを意味する。従って、次回に用いる学習事例の重みを減少させる。
他方、正解構造Yiのスコアst(Xi,Yi) が、最大スコアst(Xi,Yt i)より小さい場合、つまり0>dt(Xi)の場合には、正しく解析されなかったことを意味する。従って、次回に用いる学習事例の重みを増加させる。
モデル学習部105のブースティング部201は、パラメータtを1インクリメントする(S117)。
続いて、モデル学習部105のブースティング部201は、パラメータtがブースティング繰り返し数Tを越えたか否かを判定する(S119)。パラメータtがブースティング繰り返し数Tを越えていないと判定した場合には、S109に戻って一連の処理を繰り返す。パラメータtがブースティング繰り返し数Tを越えたと判定した場合には、図31の処理を終了する。
最後に、モデル適用部115におけるモデル適用処理について説明する。モデル適用部115は、従来の構造学習におけるマッピングを実施する。モデル適用部115の処理内容は、モデルデータ格納部109に格納されるモデルデータ(この例では、結合データ)と、分類データ入力部111によって入力され分類データ格納部113に格納されている分類データ(この例では、単語列)とを用いて、従来通りに実行される。この例では、以下の式に従って、分類データの単語列Xにおける候補構造Y群のうち、最終の結合モデルM
Tに基づいて算出したスコアが最大となる構造Y
*を特定する。
そして、処理結果(この例では、構造Y*)が、処理結果格納部117に格納される。
[付録]
本実施の形態に係る学習方法は、各ブースティングラウンドtで、0<αtを満たし、且つ式(4)を満たす確信度αtを計算できれば、本発明の前提と同様に収束することを示す。
本実施の形態に係る学習方法では、以下に示す学習エラーの上限値が得られることを証明する。
まず、式(6) を展開することにより、次の式が得られる。
これは、1からTまでの範囲のtに対して、以下の式を満たすからである。
更に、Y
* i≠Y
iの場合には、次の式が満たされる。
これらの結果から、以下に示すように、上述した学習エラーの上限値が得られる。
以上のように、従来のブースティング手法と同様、本実施の形態も収束性を備える。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
なお、上で述べたモデル学習装置は、コンピュータ装置であって、図36に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係るモデル学習方法は、(A)各学習事例の重みに基づいて、重みに対応する各学習事例から夫々の正解構造を抽出する際の手掛かりとなる素性の各々に対応する第1スコアを更新することによって、当該第1スコアの各々により規定されるモデルを算出する第1ステップと、(B)各学習事例について、当該学習事例から導かれる複数の候補構造のうち正解構造以外の候補構造の各々に対して、モデルにより付与される第2スコアのうち最大スコアを特定し、当該学習事例の正解構造に対してモデルにより付与される第2スコアと最大スコアとの差を求めると共に、各学習事例における当該差により定義されるエラーの上限値に基づいて、モデルの確信度を算出する第2ステップと、(C)確信度と各学習事例における上記差とに基づいて、各学習事例の重みを更新する第3ステップと、(D)第1ステップと、第2ステップと、第3ステップとを繰り返すステップとを含む。
このようにすれば、構造学習で得られたモデルの確信度を正解構造の第2スコアと他の候補構造の最大スコアとの差で表すことによって、次の構造学習に用いる学習事例の重みを更新できるようになる。更に、エラーの上限値に基づいて構造学習におけるトレーニングエラーを収束させることができる。例えば、学習事例の重みに基づくブースティング手法を構造学習に適用して、構造学習の精度を高めることができる。
更に、上記第1ステップにおいて、重みデータ格納部に格納されている各学習事例の重みの各々を、学習事例の学習率に設定して、上記第1スコアを更新するようにしてもよい。
このようにすれば、学習事例の重みを直接的に構造学習によるモデルに反映できる。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータが、
各学習事例の重みに基づいて、前記重みに対応する各学習事例から夫々の正解構造を抽出する際の手掛かりとなる素性の各々に対応する第1スコアを更新することによって、当該第1スコアの各々により規定されるモデルを算出する第1ステップと、
前記各学習事例について、当該学習事例から導かれる複数の候補構造のうち前記正解構造以外の前記候補構造の各々に対して、前記モデルにより付与される第2スコアのうち最大スコアを特定し、当該学習事例の前記正解構造に対して前記モデルにより付与される第2スコアと前記最大スコアとの差を求めると共に、前記各学習事例における前記差により定義されるエラーの上限値に基づいて、前記モデルの確信度を算出する第2ステップと、
前記確信度と前記各学習事例における前記差とに基づいて、前記各学習事例の前記重みを更新する第3ステップと、
前記第1ステップと、前記第2ステップと、前記第3ステップとを繰り返すステップと、
を実行するモデル学習方法。
(付記2)
前記第1ステップにおいて、前記各学習事例の前記重みの各々を、当該学習事例の学習率に設定して、前記第1スコアを更新する
付記1記載のモデル学習方法。
(付記3)
各学習事例の重みに基づいて、前記重みに対応する各学習事例から夫々の正解構造を抽出する際の手掛かりとなる素性の各々に対応する第1スコアを更新することによって、当該第1スコアの各々により規定されるモデルを算出する第1ステップと、
前記各学習事例について、当該学習事例から導かれる複数の候補構造のうち前記正解構造以外の前記候補構造の各々に対して、前記モデルにより付与される第2スコアのうち最大スコアを特定し、当該学習事例の前記正解構造に対して前記モデルにより付与される第2スコアと前記最大スコアとの差を求めると共に、前記各学習事例における前記差により定義されるエラーの上限値に基づいて、前記モデルの確信度を算出する第2ステップと、
前記確信度と前記各学習事例における前記差とに基づいて、前記各学習事例の前記重みを更新する第3ステップと、
前記第1ステップと、前記第2ステップと、前記第3ステップとを繰り返すステップと、
を含み、コンピュータに実行させるためのモデル学習プログラム。
(付記4)
重みデータ格納部に格納されている各学習事例の重みに基づいて、学習データ格納部に格納されている前記重みに対応する各学習事例から夫々の正解構造を抽出する際の手掛かりとなる素性の各々に対応する第1スコアを更新することによって、当該第1スコアの各々により規定されるモデルを算出し、当該モデルをモデルデータ格納部に格納する第1算出手段と、
前記学習データ格納部に格納されている前記各学習事例について、当該学習事例から導かれる複数の候補構造のうち前記正解構造以外の前記候補構造の各々に対して、前記モデルデータ格納部に格納されている前記モデルにより付与される第2スコアのうち最大スコアを特定し、当該学習事例の前記正解構造に対して前記モデルにより付与される第2スコアと前記最大スコアとの差を求め、当該差を差データ格納部に格納すると共に、前記各学習事例における前記差により定義されるエラーの上限値に基づいて、前記モデルの確信度を算出し、当該確信度を確信度データ格納部に格納する第2算出手段と、
前記確信度データ格納部に格納されている前記確信度と前記差データ格納部に格納されている前記各学習事例における前記差とに基づいて、前記重みデータ格納部に格納されている前記各学習事例の前記重みを更新する更新手段と、
を有し、
前記第1算出手段による処理と前記第2算出手段による処理と前記更新手段による処理とを繰り返させるモデル学習装置。