Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Viterbiのアルゴリズム /viterbi-algorithm
Search
Miyakawa Taku
December 11, 2017
Technology
360
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Viterbiのアルゴリズム /viterbi-algorithm
This presentation is CC BY 3.0 License
Miyakawa Taku
December 11, 2017
More Decks by Miyakawa Taku
See All by Miyakawa Taku
入門: 末尾呼び出し最適化 /tail-call-elimination-intro
miyakawataku
2
2.6k
JVM言語の動き方・動かし方 /make-jvm-lang
miyakawataku
6
2.5k
Java SE 8から11で何が起きた?一気におさらいしてみよう! /java-se-8-to-11
miyakawataku
14
5.7k
ミニバッチサイズと学習率の関係 /small-batch-learning
miyakawataku
0
2.4k
機械学習プロジェクトの進め方 /howtoproceedwithmlproject
miyakawataku
0
400
グラフアルゴリズムその2: 単一始点最短路問題 /graphShortestPaths
miyakawataku
0
230
Strassenのアルゴリズムによる行列積の計算 /strassen-algorithm
miyakawataku
8
3.8k
Other Decks in Technology
See All in Technology
Autonomous AI Lakehouse - Live AI Hubから始めるセキュアなAIデータ活用 -
oracle4engineer
PRO
2
160
DevelopersIO2026 -バックアップは“消されないこと”が9割-
yoshida0129
0
430
ビジネス部門からPOを迎えての半年間の進歩と課題
zozotech
PRO
0
150
契約で守るコンパウンドプロダクトのデザインシステム
yug1224
1
1.6k
キヨさん、67歳。AIコーディングエージェントに挑む
happysamurai294
0
110
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
820
AIに任せられるFlutterコードベースを作る 〜仕様をコードで表し、ハーネスで守る〜
myohei
1
340
演劇と私とスクラム
chinmo
0
160
ドメインエキスパートは いかにして AI を使って プロダクト開発をするか
tatsuyashiraishi
1
220
AIをリアル世界に解き放つ 〜M5Stack×AIであなたのアイディアを手の平に〜
hamadakoji
1
580
[re:Invent2026事前勉強会(有志開催)]続きは、ラスベガスの廊下で / continue-in-the-vegas-hallway
sh_fk2
0
340
AIで選択肢が広がった組織設計の理想と現実
konifar
15
6.6k
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
The browser strikes back
jonoalderson
0
1.9k
Navigating Team Friction
lara
192
16k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
560
Amusing Abliteration
ianozsvald
1
360
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
770
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Become a Pro
speakerdeck
PRO
31
6.3k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Practical Orchestrator
shlominoach
192
12k
How to train your dragon (web standard)
notwaldorf
96
6.9k
Transcript
グラフアルゴリズム番外編: MecabとViterbiのアルゴリズム 宮川 拓
あらまし MecabはViterbiのアルゴリズムを使って、 最適な形態素列を探している http://taku910.github.io/mecab/ 2/23
問題設定 3/23
問題設定 前提 隠れマルコフモデルのパラメータ (初期状態確率、遷移確率、出力確率) が既知 観測値の系列が既知
問題 もっとも尤もらしい状態の系列は? 4/23
例 場所中のMT君は、尾上部屋の里山さんの 勝敗しだいでその日の機嫌が決まる 里山さんの勝ち、負けの初期状態確率、 遷移確率は分かっている 先場所中のMT君の機嫌は、彼のTwitter投 稿を見て把握している
先場所の里山さんのもっとも尤もらしい 星取表は? 5/23
初期状態・遷移確率 勝 敗 場所前 .5 .5 .7 .3 .6 .4
6/23
出力確率 勝 敗 上機嫌 平静 不機嫌 .6 .1 .1 .8
.3 .1 7/23
観測系列 何日目? 出力 勝負結果 初日 上機嫌 ? 二日目 上機嫌 ?
三日目 平静 ? 四日目 不機嫌 ? 五日目 平静 ? 六日目 上機嫌 ? 千秋楽 不機嫌 ? 8/23
解くべき問題 勝 敗 上機嫌 .5 .5 勝 敗 上機嫌 勝
敗 平静 不機嫌 平静 上機嫌 前 不機嫌 勝 勝 勝 勝 敗 敗 敗 敗 .7 .3 .6 .4 勝敗を結ぶパスのうち、もっとも尤もらしい パスを選ぶ .1 .8 9/23
解法の考え方 10/23
解法の考え方 1. 千秋楽は勝敗どっちが尤もらしいか考える 千秋楽の勝・敗それぞれに至るもっと も尤もらしい系列と、その確率が必要 2. 千秋楽の勝・敗それぞれに至るもっとも尤 もらしい系列と、その確率を考える
六日目の勝・敗それぞれに至るもっと も尤もらしい系列と、その確率が必要 3. 以下同様 11/23
千秋楽は勝敗どっち? 勝 敗 上機嫌 .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
千秋楽敗戦に至る最尤の系列は? 勝 敗 上機嫌 .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
整理 その日の敗戦(勝利)にいたるもっとも尤も らしい系列とその確率を求めるには、 前日の勝利・敗戦にいたるもっとも尤もらし い系列と、その確率が分かれれば良い ↑に対しては動的計画法が有効 問題は部分問題の組み合わせで表せる
問題ツリーの部分木には重複がある 「五日目勝ちにいたるもっとも尤もらし い勝敗の系列」は、六日目勝利・敗戦を 考える場合両方で使われる 14/23
動的計画法の具体策 トップダウン+メモ化 大きな部分問題から、小さな部分問題を 再帰的呼び出しで解く 重複する部分問題の結果はキャッシュし て再利用する
ボトムダウン → Viterbiはこっち 小さな部分問題から大きな部分問題へと 順番に問いていく 15/23
Viterbiのアルゴリズム 16/23
Viterbi 勝 敗 .5 .5 前 初日勝利・敗戦にいたるもっとも尤もらしい 系列とその確率は自明 ‹ 勝›,
確率=0.5 ‹ 敗›, 確率=0.5 17/23
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
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
Viterbi 勝 敗 上機嫌 敗 前 ‹勝, 勝, 勝›: 0.21*0.6*0.7=0.0882
→ 採用 ‹勝, 敗, 勝›: 0.09*0.1*0.4=0.0036 勝 上機嫌 0.21 勝 0.09 20/23
Viterbi 勝 敗 上機嫌 敗 前 ‹勝, 勝, 敗›: 0.21*0.6*0.3=0.0378
→ 採用 ‹勝, 敗, 敗›: 0.09*0.1*0.6=0.0054 勝 上機嫌 0.21 敗 0.09 21/23
22/23 トリック ステップが進むと、系列の確率が小さくな り、精度が落ちてしまう(アンダーフ ロー) 対策: 確率の対数を持つ
Mecabにおける応用 https://www.slideshare.net/secret/9MHZC7bl dJC8Z2 23/23