スムージング 未出現事象の扱い 観測データ(教師データ)の数が十分に大きくない場 合は、本来、出現する可能性のある事象が教師 データに含まれないことがある。 例:サイコロを5回振って教師データを作っても、出ない目 が必ず一つはある。 例:新聞記事10年分のテキストから単語の出現頻度を計 算しても、出現していない単語があるかもしれない。 本来、出現する可能性がある事象ではあるが、観 測データに出現していないものの真の生起確率を どのように評価しておけばよいか?スムージング これは、未知のデータを扱う場合に重要 Back-off smoothing(元データの頻度) 9 8 7 6 5 系列1 4 3 2 1 0 1 2 3 4 5 6 7 実際に出現した単語(8個) 8 9 10 11 12 13 出現していないが、こ れから出現する可能性 がある単語(5個) 各単語の頻度にδ(=1)を加算 10 9 8 7 6 系列2 系列1 5 4 3 2 1 0 1 2 3 4 5 6 7 実際に出現した単語(8個) 8 9 10 11 12 13 出現していないが、こ れから出現する可能性 がある単語(5個) Back-off smoothing(確率を計算しなおす) 10 9 原データ 8 7 6 系列2 系列1 5 4 3 2 1 0 1 確率 2 3 4 5 6 7 8 9 10 11 12 13 0.3 0.25 0.2 系列1 系列2 0.15 0.1 0.05 0 1 2 3 4 5 6 7 8 9 10 11 12 13 単語の生起確率を求める場合のスムージング Good-Turingの推定 Good-Turingの推定 語数Nのコーパス中でr回出現する異なり単語数をnrとする。すると N r n r n1 2n2 3n3 ... r 0 ここでコーパスにr回出現する単語wの頻度を次の式で推定するのが Good-Turingの推定 n r1 r (r 1) nr * 注)rが最大のときはr+1が定義できないので、r*=r とするしかない。r が小さいときが重要なので、これでもよいであろう。 Good-Turingの推定 語数Nのコーパス中でr回出現する単語の数をnrとする。すると N r n r n1 2n2 3n3 ... r 0 ここでコーパスにr回出現する単語wの頻度を次の式で推定するのがGoodTuringの推定 n r1 * r (r 1) ここで0回出現した単語の出現頻度の期待値0*は 0* nr n1 n1 n 0 全語彙数コーパスに出現した語 彙数 一方、1回以上出現した単語の相対頻度の総和を求めると n r r* n1 1 N N r 0 n 1 がコーパスに出現しない全単語の頻度の合計の推定確率 つまり、 N なお、 d * をディスカウント係数という。 r r Good-Turingの推定の導出 • 母集団における異なり単語数をMとする • 母集団における単語wiの出現確率をP(wi) • wi が語数(サイズ)Nのコーパス中で出現 する回数をC(wi) 当然 iM1 C (wi ) N • 単語wがコーパス中にr回出現したとき、w の母集団での生起確率および出現回数の 期待値は E[ P( w) | C ( w) r ] M i 1 P( w wi | C ( w) r ) P( wi ) r * E[r | C ( w) r ] E[ P( w) | C ( w) r ]N (2) (1) • サイズNのコーパスにおける単語の出現 確率分布を2項分布とすると P(w wi | C (w) r ) P(C ( wi ) r ) M i 1 P(C ( wi ) r ) r N r C P ( w ) ( 1 P ( w )) N r i i M i 1 r N r C P ( w ) ( 1 P ( w )) N r i i (3) この結果を(1)に代入すると M E[ P(w) | C (w) r ] Cr P(wi ) r 1 (1 P(wi )) N r N i 1 M Cr P(wi ) r (1 P(wi )) N r N i 1 (4) サイズNのコーパス中にr回出現する単語の総数の期待値 EN [N r ] M i 1 P(C ( wi ) r ) M C P( wi ) i 1 N r r (1 P( wi )) N r r 1 N+1 C r+1 から以下のよう に書き 換えられる N 1 r 1 E N 1 ( N r 1 ) E[ P( w) | C ( w) r ] (5) N 1 EN (N r ) すると (4)は N C r この結果を使って(2)式のr*を求めると r 1 E N 1 ( N r 1 ) r E[ P( w) | C ( w) r ]N N N 1 EN (N r ) * (6) ここでNが十分大きく、EN(Nr)をコーパス中に出現頻度Nrで 近似すると N r 1 r ( r 1) となる Nr * N1 0 N0 *
© Copyright 2024 ExpyDoc