Transcript o T

人工知能特論II 第7回
二宮 崇
1
今日の講義の予定

系列ラベリングのためのHMM



解析

ビタビアルゴリズム

最尤推定
学習
教科書



北研二(著) 辻井潤一(編) 言語と計算4 確率的言語モデル
東大出版会
C. D. Manning & Hinrich Schütze “FOUNDATIONS
OF STATISTICAL NATURAL LANGUAGE
PROCESSING” MIT Press, 1999
Christopher M. Bishop “PATTERN RECOGNITION
AND MACHINE LEARNING” Springer, 2006
2
系列ラベリングのためのHMM
HMM FOR SEQUENTIAL
LABELING
3
品詞解析

品詞タガー
“I have a pen.”
トーカナイザー
I
have
a
pen
.
POSタガー
I
代名詞
have
動詞
a
pen
不定冠詞
名詞
.
ピリオド
4
隠れマルコフモデル
Hidden Markov Model (HMM)
0.3
ピリオド
0.5
名詞
0.01
0.1
he
0.25
出力 (emission)
0.01
…
代名詞
遷移 (transition)
動詞
have
0.3
Mary
0.43
不定
冠詞
I
I
a
pen
不定冠詞
名詞
.
0.3
代名詞
0.4
動詞
0.01
ピリオド
5
隠れマルコフモデル
Hidden Markov Model (HMM)
Q: 状態の有限集合
 Σ: 出力記号の有限集合
 πq: 文頭が状態qになる確率



aq,r: 状態qから状態rへの遷移確率


Σr∈Q πr=1
Σr∈Q aq,r=1
bq,o: 状態qにおける記号oの出力確率

Σo∈Σ bq,o = 1
6
状態記号列の確率と
生成確率

状態と記号の列が与えられた時
状態記号列 : q1o1q2 o2  qT oT
p (q1o1q2 o2  qT oT )   q1 bq1 ,o1 aq1 ,q2 bq2 ,o2  aqT 1 ,qT bqT ,oT
  q1 aq1 ,q2  aqT 1 ,qT bq1 ,o1 bq2 ,o2  bqT ,oT
T
T
t 2
t 1
  q1  aqt 1 ,qt  bqt ,ot

記号列のみが与えられた時
記号列 : o1o2  oT
p (o1o2  oT ) 
 p(q o q o  q o
1 1 2 2
q1Q , q2 Q ,qT Q
T T
)
(生成確率)
7
解析(INFERENCE)
復号化(DECODING)
8
解析

解析 (入力: o1o2…oT)
q~1q~2 q~T 
arg max
q1Q , q2 Q ,qT Q
p(q1o1q2o2 qT oT )
しかし、計算量はO(|Q|T)!
9
効率的な品詞解析: ビタビアルゴリズム

動的計画法
δ(t, q): 時刻t(otが出力される時)に状態qとなる状態列の中で最大確率となる列
の確率
maxq∈ Q δ(T, q)を求めれば良い
2
時刻 1
o2
出力記号 o1
3
o3
T
oT
状態1
…
状態2
…
…
状態3
…
状態4
トレリス
10
効率的な品詞解析: ビタビアルゴリズム
 (t , q) 
max
q1Q ,, qt 1Q
p (q1o1  qt 1ot 1 )aqt 1 ,q bq ,ot


 max  max
p (q1o1  qt  2 ot  2 )aqt 2 ,qt 1 bqt 1 ,ot 1 aqt 1 ,q bq ,ot 
qt 1Q q1Q ,, qt 2 Q

 max  (t  1, qt 1 )aqt 1 ,q bq ,ot
qt 1Q
o1
最大確率で遷移したパス
をバックポインタで保存
o2
ot-1
ot
oT
状態1
…
…
状態2
…
…
…
状態 q
…
…
…
…
…
11
効率的な品詞解析: ビタビアルゴリズム

動的計画法
δ(t, q): 時刻t(otが出力される時)に状態qとなる状態列の中で最大確率となる列の確率
左から右に向かって
全てのδ(t,q)を計算
時刻
出力記号
状態1
状態2
状態3
状態4
1
o1
2
o2
3
o3
T
oT
δ(1,状態1)=π状態1b状態1,o1
…
δ(1,状態2)=π
状態2b状態2,o1
…
δ(1,状態3)=π
…
状態3b状態3,o1
δ(1,状態4)=π
状態4b状態4,o1
…
12
効率的な品詞解析: ビタビアルゴリズム

動的計画法
δ(t, q): 時刻t(otが出力される時)に状態qとなる状態列の中で最大確率となる列の確率
左から右に向かって
全てのδ(t,q)を計算
最大確率で遷移したパス
をバックポインタで保存
時刻
出力記号
状態1
状態2
状態3
状態4
1
o1
2
o2
3
o3
T
oT
δ(2,状態1)=
max { …
δ(1,状態1)a状態1,状態1b状態1,o2,
…
δ(1,状態2)a
状態2,状態1b状態1,o2,
δ(1,状態3)a状態3,状態1b状態1,o2,
…
δ(1,状態4)a状態4,状態1b状態1,o2
}
…
13
効率的な品詞解析: ビタビアルゴリズム

動的計画法
δ(t, q): 時刻t(otが出力される時)に状態qとなる状態列の中で最大確率となる列の確率
左から右に向かって
全てのδ(t,q)を計算
時刻
出力記号
状態1
状態2
状態3
状態4
1
o1
2
o2
3
o3
T
oT
δ(2,状態2)=
…
max {
δ(1,状態1)a
b
,
… 状態1,状態2 状態2,o2
δ(1,状態2)a状態2,状態2b状態2,o2,
δ(1,状態3)a
… 状態3,状態2b状態2,o2,
δ(1,状態4)a状態4,状態2b状態2,o2
}
…
14
効率的な品詞解析: ビタビアルゴリズム

最後にバックポインタを辿ることで最大確
率となる状態列が得られる
o1
o2
oT-2
状態1
…
状態2
…
状態 3
…
状態 4
…
oT-1
oT
15
効率的な品詞解析: ビタビアルゴリズム
δ[1,q] := π[q]b[q, o1] (for all q)
for t =2 to T
for q ∈ Q
δ[t, q] := maxq’∈Q {δ[t-1, q’]a[q’,q]b[q, ot]}
bp[t,q] := argmaxq’∈Q {δ[t-1, q’]a[q’,q]b[q, ot]}
16
学習 (パラメータ推定): 最尤推定
17
パラメータ推定: 最尤推定

最尤推定
文の集合を観測したとき、その文の集合がそ
こに出現したのは、その文の集合が最も確率
が高かったから、と考えるやり方
 コインの例:表がでる確率θが未知のコインが
ある。100回投げたところ、62回表がでた。す
ると、その確率はθ62(1-θ)38となる。この確率
はθ=0.62で最大となるので、θは0.62であった
のだろう、と考えるのが最尤推定の考え方で
ある。

18
最尤推定

最尤推定

観測値 x1,...,xn が与えられた時、それぞれが独
立に出現したと考えると、その確率はパラ
メータθの関数になる
n
p( x1 ,..., xn )   p( xi ; )  l ( )
i 1
このl(θ)を尤度(likelihood)もしくは尤度関数
(likelihood function)と呼ぶ
 尤度関数を最大化するθを求める

~
  arg maxl ( )

19
最尤推定

最大を求めるために尤度関数の極値を求め
る



l ( )  0
コインの例を解析的に解いてみよう

l(θ) = θ62(1-θ)38
20
最尤推定

対数尤度(log likelihood)を使うと計算が楽
になる
~
  arg maxl ( )  arg maxlogl ( )



コインの例で解いてみよう

log l(θ) = log( θ62(1-θ)38 )
21
最尤推定

正規分布の最尤推定
正規分布N(μ, σ2)から抽出された標本をx1,...,xn
とする
n
 尤度
 ( xi   ) 2 
1
2

l ( , )  
i 1

exp
2 

2 2


対数尤度
n
 ( xi   ) 2 
1
log l (  ,  )   log
  

2
2

2


i 1
i 1 

n
( xi   ) 2
 n log( 2  )  
2 2
i 1
n
2
22
ラグランジュの未定乗数法

ラグランジュの未定乗数法
arg max f (θ)ただし g1 (θ)  0,..., g m (θ)  0
θ

L(θ)  f (θ)  1 g1 (θ)  ...  m g m (θ)
L
L
L
 0,
 0,...,
0
1
 2
 n

L(θ) はラグランジュ関数と呼ばれる
23
まとめ

HMM

解析
 ビタビアルゴリズム

学習
 最尤推定

資料
http://aiweb.cs.ehime-u.ac.jp/~ninomiya/ai2/
24