Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
グラフアルゴリズム番外編: MecabとViterbiのアルゴリズム 宮川 拓
Slide 2
Slide 2 text
あらまし MecabはViterbiのアルゴリズムを使って、 最適な形態素列を探している http://taku910.github.io/mecab/ 2/23
Slide 3
Slide 3 text
問題設定 3/23
Slide 4
Slide 4 text
問題設定 前提 隠れマルコフモデルのパラメータ (初期状態確率、遷移確率、出力確率) が既知 観測値の系列が既知 問題 もっとも尤もらしい状態の系列は? 4/23
Slide 5
Slide 5 text
例 場所中のMT君は、尾上部屋の里山さんの 勝敗しだいでその日の機嫌が決まる 里山さんの勝ち、負けの初期状態確率、 遷移確率は分かっている 先場所中のMT君の機嫌は、彼のTwitter投 稿を見て把握している 先場所の里山さんのもっとも尤もらしい 星取表は? 5/23
Slide 6
Slide 6 text
初期状態・遷移確率 勝 敗 場所前 .5 .5 .7 .3 .6 .4 6/23
Slide 7
Slide 7 text
出力確率 勝 敗 上機嫌 平静 不機嫌 .6 .1 .1 .8 .3 .1 7/23
Slide 8
Slide 8 text
観測系列 何日目? 出力 勝負結果 初日 上機嫌 ? 二日目 上機嫌 ? 三日目 平静 ? 四日目 不機嫌 ? 五日目 平静 ? 六日目 上機嫌 ? 千秋楽 不機嫌 ? 8/23
Slide 9
Slide 9 text
解くべき問題 勝 敗 上機嫌 .5 .5 勝 敗 上機嫌 勝 敗 平静 不機嫌 平静 上機嫌 前 不機嫌 勝 勝 勝 勝 敗 敗 敗 敗 .7 .3 .6 .4 勝敗を結ぶパスのうち、もっとも尤もらしい パスを選ぶ .1 .8 9/23
Slide 10
Slide 10 text
解法の考え方 10/23
Slide 11
Slide 11 text
解法の考え方 1. 千秋楽は勝敗どっちが尤もらしいか考える 千秋楽の勝・敗それぞれに至るもっと も尤もらしい系列と、その確率が必要 2. 千秋楽の勝・敗それぞれに至るもっとも尤 もらしい系列と、その確率を考える 六日目の勝・敗それぞれに至るもっと も尤もらしい系列と、その確率が必要 3. 以下同様 11/23
Slide 12
Slide 12 text
千秋楽は勝敗どっち? 勝 敗 上機嫌 .5 .5 勝 敗 上機嫌 勝 敗 平静 不機嫌 平静 上機嫌 前 不機嫌 勝 勝 勝 勝 敗 敗 敗 敗 .7 .3 .6 .4 .1 .8 (仮定) 勝敗勝敗 勝敗勝 六日目までの機嫌との同時確率=0.06 (仮定) 敗勝敗勝敗勝敗 六日目までの機嫌との同時確率=0.01 千秋楽の機嫌との同時確率を考える 千秋楽勝ち: 0.06*0.1 = 0.006 千秋楽敗け: 0.01*0.8 = 0.008 → 尤もらしい 12/23
Slide 13
Slide 13 text
千秋楽敗戦に至る最尤の系列は? 勝 敗 上機嫌 .5 .5 勝 敗 上機嫌 勝 敗 平静 不機嫌 平静 上機嫌 前 勝 勝 勝 敗 敗 敗 敗 .7 .3 .6 .4 (仮定) 敗勝 敗 勝 敗勝 五日目までの機嫌との同時確率=0.2 (仮定) 勝敗勝敗勝敗 五日目までの機嫌との同時確率=0.4 .1 .6 .6 .3 六日目の機嫌・千秋楽敗戦との同時確率を考える 六日目勝ち: 0.2*0.6*0.3 = 0.036 → 採用 六日目敗け: 0.4*0.1*0.6 = 0.024 13/23
Slide 14
Slide 14 text
整理 その日の敗戦(勝利)にいたるもっとも尤も らしい系列とその確率を求めるには、 前日の勝利・敗戦にいたるもっとも尤もらし い系列と、その確率が分かれれば良い ↑に対しては動的計画法が有効 問題は部分問題の組み合わせで表せる 問題ツリーの部分木には重複がある 「五日目勝ちにいたるもっとも尤もらし い勝敗の系列」は、六日目勝利・敗戦を 考える場合両方で使われる 14/23
Slide 15
Slide 15 text
動的計画法の具体策 トップダウン+メモ化 大きな部分問題から、小さな部分問題を 再帰的呼び出しで解く 重複する部分問題の結果はキャッシュし て再利用する ボトムダウン → Viterbiはこっち 小さな部分問題から大きな部分問題へと 順番に問いていく 15/23
Slide 16
Slide 16 text
Viterbiのアルゴリズム 16/23
Slide 17
Slide 17 text
Viterbi 勝 敗 .5 .5 前 初日勝利・敗戦にいたるもっとも尤もらしい 系列とその確率は自明 ‹ 勝›, 確率=0.5 ‹ 敗›, 確率=0.5 17/23
Slide 18
Slide 18 text
Viterbi 上機嫌 勝 前 .7 .4 ‹勝, 勝›: 0.5*0.6*0.7=0.21 → 採用 ‹敗, 勝›: 0.5*0.1*0.4=0.02 .1 .6 勝 敗 0.5 0.5 18/23
Slide 19
Slide 19 text
Viterbi 勝 敗 上機嫌 敗 前 .3 .6 ‹勝, 敗›: 0.5*0.6*0.3=0.09 → 採用 ‹敗, 敗›: 0.5*0.1*0.6=0.03 .1 .6 0.5 0.5 19/23
Slide 20
Slide 20 text
Viterbi 勝 敗 上機嫌 敗 前 ‹勝, 勝, 勝›: 0.21*0.6*0.7=0.0882 → 採用 ‹勝, 敗, 勝›: 0.09*0.1*0.4=0.0036 勝 上機嫌 0.21 勝 0.09 20/23
Slide 21
Slide 21 text
Viterbi 勝 敗 上機嫌 敗 前 ‹勝, 勝, 敗›: 0.21*0.6*0.3=0.0378 → 採用 ‹勝, 敗, 敗›: 0.09*0.1*0.6=0.0054 勝 上機嫌 0.21 敗 0.09 21/23
Slide 22
Slide 22 text
22/23 トリック ステップが進むと、系列の確率が小さくな り、精度が落ちてしまう(アンダーフ ロー) 対策: 確率の対数を持つ
Slide 23
Slide 23 text
Mecabにおける応用 https://www.slideshare.net/secret/9MHZC7bl dJC8Z2 23/23