人工知能特論 ii 第 10 回
Post on 06-Jan-2016
68 Views
Preview:
DESCRIPTION
TRANSCRIPT
1
人工知能特論 II 第 10 回二宮 崇
2
今日の講義の予定
HMM の前向き後向きアルゴリズムによるパラメータ学習
生成モデルと識別モデル教科書
北研二 ( 著 ) 辻井潤一 ( 編 ) 言語と計算 4 確率的言語モデル 東大出版会
Christopher M. Bishop “PATTERN RECOGNITION AND MACHINE LEARNING” Springer, 2006
3
HMM の教師無し学習Unsupervised Learning of HMMs
パラメータ推定 訓練データ ( 入力 )
パラメータ ( 出力 )
n
i QqQqQqiTTii
ba
n
iiTii
ba
n
ii
ba
iT
ii
i
oqoqoqp
ooop
xpba
1 ,,2211
,,
121
,,
1,,
21
)(maxarg
)(maxarg
)(maxarg,,
の記号列長
とする。。単語列文を表す記号列
訓練データ
ii
iTiiiii
n
xT
ooooxx
xxx
i
:
)(:
:
321
21
4
HMM の EM アルゴリズム
n
q
n
ooqqqp
n
qqooqqp
n
i QqQqTT
n
i QqQqTT
q
iT
ii
iT
ii
となる回数の期待値先頭が
1 ,,12
1 ,,111
2
1
);|(
])[;|(
パラメータ更新式π, a, b を π’, a’, b’ に更新
5
HMM の EM アルゴリズム
に遷移する回数からの中で rqqqqqrqC TT 11 );,(
待値から遷移する回数の期状態値へ遷移する回数の期待から状態状態
q
rq
qqrqCooqqp
qqrqCooqqp
qrqqooqqp
qrqqooqqp
a
Qr
n
i QqQqTTT
n
i QqQqTTT
Qr
n
i QqQq
T
tttTT
n
i QqQq
T
tttTT
rq
iT
iii
iT
iii
iT
i
ii
iT
i
ii
1 ,,111
1 ,,111
1 ,, 2111
1 ,, 2111
,
1
1
1
1
);,();|(
);,();|(
]][[);|(
]][[);|(
パラメータ更新式π, a, b を π’, a’, b’ に更新
6
HMM の EM アルゴリズム
を出力する回数からの中で oqooqqooqqoqC TTTT 1111 ),;,(
が出現した回数の中でqqqqqqC TT 11 );(
値に滞在する回数の期待状態値を出力する回数の期待に滞在し記号状態
q
oq
qqqCooqqp
ooqqoqCooqqp
ooqqooqqp
ooqqooqqp
b
n
i QqQqTTT
n
i QqQqTTTT
o
n
i QqQq
T
tttTT
n
i QqQq
T
tttTT
oq
iT
iii
iT
iiii
iT
i
ii
iT
i
ii
1 ,,111
1 ,,1111
1 ,, 111
1 ,, 111
,
1
1
1
1
);();|(
),;,();|(
]][[);|(
]][[);|(
パラメータ更新式π, a, b を π’, a’, b’ に更新
7
HMM のための EM アルゴリズムの問題点
期待値を計算するために全ての可能な隠れ状態を列挙すると文長に対し、指数爆発的計算量が必要
解決策:前向き後向きアルゴリズム。隠れ状態を列挙することなく、この期待値を計算する動的計画法。
8
前向きアルゴリズムと後ろ向きアルゴリズム
9
前向きアルゴリズム (1/3)
動的計画法
状態 1
o1 o2 oT
トレリス
o3
…
…
…
…
状態 2
状態 3
状態 4
α(t, q): o1 … ot を出力し、 ot が出力される時 ( 時刻 t) に状態 q である確率
全ての t,q に対し、 α(t, q) を求めれば良い
時刻 1 2 3 T出力記号
QqQqoqqq
t
uoqqqoqq
t
ttuuuubababqt
11
11111,,
,,
1
2,,,),(
10
前向きアルゴリズム (2/3)
o1 o2 oTot-1
状態 q
Qqoqqqt
Qq QqQqoqqqoqqq
t
uoqqqoqq
QqQqoqqq
t
uoqqqoqq
t
tt
t t
ttttttuuuu
t
ttuuuu
baqt
bababab
bababqt
1
1
1 21
111121111
11
11111
,,1
,,,,,,
2
2,,,
,,,,
1
2,,,
),1(
),(
ot
…
…
…
…
…
…
…
…
状態 1
状態 2
…
…
全ての遷移確率の和
11
α[1,q] := π[q]b[q,o1] (for all q)
for t =2 to T for q ∈ Q α[t, q] := Σq’∈Q {α[t-1, q’]a[q’,q]b[q, ot]}
前向きアルゴリズム (3/3)
12
後ろ向きアルゴリズム (1/3)
前向きアルゴリズムを逆方向に適用 文末から文頭に向かって実行 向きが逆になることを除けば前向きアルゴリズムと
まったく同じ β(t, q) : 時刻 t に状態 q から始める状態遷移に
よって ot+1…oT まで出力する確率
QqQq
T
tuoqqqoqqq
Tt
uuuutttbabaqt
,, 2,,,,
1
1111),(
13
後ろ向きアルゴリズム (2/3)
o1 o2 oTot
状態 q
ot+1
…
…
…
…
…
…
…
…
状態 1
状態 2
…
…
全ての遷移確率の和
Qqtoqqq
Qq QqQq
T
tuoqqqoqqqoqqq
QqQq
T
tuoqqqoqqq
t
ttt
t nt
uuuuttttttt
Tt
uuuuttt
qtba
bababa
babaqt
1
111
1 2
12221111
1
1111
),1(
),(
1,,
,, 3,,,,,,
,, 2,,,,
14
後ろ向きアルゴリズム (3/3)
β[T,q] := 1 (for all q)for t := T-1 to 1 for q ∈ Q β[t, q] := Σq’∈Q {a[q, q’]b[q’, ot+1]β[t+1, q’]}
15
前向き後ろ向きアルゴリズムの導出
16
前向き後ろ向きアルゴリズム : 生成確率
生成確率
iQqQq
TTT qToqoqpoopiT
iii),()()(
,,111
1
17
前向き後ろ向きアルゴリズム : π’
n
iQq
i
n
ioqq
T
n
i QqQq
T
toq
T
tqqoqqqoqq
T
n
i QqQqTTq
qT
n
qboopn
bababoopn
qqooqqpn
i
iT
i
tt
i
tt
i
iT
ii
1'
1,
1
1 ,, 3,
3,,,,
1
1 ,,111
)',(
),1(),1(1
),1();(
11
);(
11
])[;|(1
1
2
12221
1
18
前向き後ろ向きアルゴリズム : π’
o1 o2 oT
状態 q
…
…
…
…
後向き確率
n
iQq
i
n
ioqq
Tq qT
nqb
oopni 1
'1
,1 )',(
),1(),1(1),1(
);(
111
19
前向き後ろ向きアルゴリズム : a’
n
i
T
torrq
T
n
i
T
t QqQqoqqq
t
uoqqqoqqorrq
T
n
i
T
t QqQqorrqoqqq
t
uoqqqoqq
T
n
i
T
t QqQq QqQq
T
tuoqqqoqqrorrqoqqq
t
uoqqqoqq
T
n
i
T
t QqQq QqQq
T
tuoqqqoqqrorrqoqqq
t
uoqqqoqq
T
n
i
T
t QqQqtt
T
tuoqqqoqqqoqqqoqqq
t
uoqqqoqq
T
n
i
T
t QqQqtt
T
uoq
T
uqqq
T
n
i QqQq
T
ttt
T
uoq
T
uqqq
T
n
i QqQq
T
tttTTrq
i
t
i
i
t
ttuuuut
i
i
t
tttuuuu
i
i
t iTt
i
uuuuttttttuuuu
i
i
t iTt
i
uuuuttttttuuuu
i
i
iT
i
uuuuttttttttttttuuuu
i
i
iT
i
uu
i
uu
i
iT
ii
uu
i
uu
i
iT
i
ii
rtbaqtoop
bababrtbaoop
rtbabababoop
babababababoop
babababababoop
qrqqbabababababoop
qrqqbaoop
qrqqbaoop
qrqqooqqpa
1 2,,
1
1 2 ,,,,
2
2,,,,,
1
1 2 ,,,,,,
2
2,,,
1
1 2 ,, ,, 2,,,,,,,,
2
2,,,
1
1 2 ,, ,, 2,,,,,,,,
2
2,,,
1
1 2 ,,1
2,,,,,,,,
2
2,,,
1
1 2 ,,1
1,
2,
1
1 ,, 21
1,
2,
1
1 ,, 2111,
),(),1();(
1
),();(
1
),();(
1
);(
1
);(
1
]][[);(
1
]][[);(
1
]][[);(
1
]][[);|(
21
121111
21
121111
21 1
1111121111
21 1
1111121111
1
1111111121111
1
11
1
11
1
の分子部分
20
前向き後ろ向きアルゴリズム : a’
γ(t,q,r): 記号列 o1…oT に対し、時刻 t - 1 から時刻 t に状態q から状態 r に遷移する確率
orrq
qT
rtbaqtrqt t
'
,,
)',(
),(),1(),,(
o1 o2 oTot-1
状態 q
ot
…
…
…
…
…
…
…
……
…状態 r
前向き確率 後向き確率
21
前向き後ろ向きアルゴリズム : a’
Qr
n
i
T
t
n
i
T
t
Qr
n
i QqQq
T
tttTT
n
i QqQq
T
tttTT
rq
i
i
iT
i
ii
iT
i
ii
rqt
rqt
qrqqooqqp
qrqqooqqp
a
1 2
1 2
1 ,, 2111
1 ,, 2111
,
),,(
),,(
]][[);|(
]][[);|(
1
1
22
前向き後ろ向きアルゴリズム : b’
n
i
T
tt
T
oqqq
n
i
T
t QqQq
t
uoqqqoqqt
T
n
i
T
t QqQqtoqqq
t
uoqqqoqq
T
n
i
T
t QqQq QqQq
T
utoqqqoqqqtoqqq
t
uoqqqoqq
T
n
i
T
t QqQq QqQqt
T
utoqqqoqqqoqqq
t
uoqqqoqq
T
n
i
T
t QqQqtt
T
utoqqqoqqqoqqq
t
uoqqqoqq
T
n
i
T
t QqQqtt
T
uoq
T
uqqq
T
n
i QqQq
T
tttTToq
i
i
tt
i
t
uuuu
i
i
t
ttuuuu
i
i
t iTt
i
tttttttttuuuu
i
i
t iTt
i
tttttttttuuuu
i
i
iT
i
ttttttttttttuuuu
i
i
iT
i
uu
i
uu
i
iT
i
ii
qtqtoooop
bababqtoooop
qtoobababoop
babaoobababoop
oobababababoop
ooqqbababababoop
ooqqbaoop
ooqqooqqpb
1 11
,,1 1 ,,
1
2,,,
1
1 1 ,,,,
1
2,,,
1
1 1 ,, ,, 2,,,,,,
1
2,,,
1
1 1 ,, ,, 2,,,,,,
1
2,,,
1
1 1 ,, 2,,,,,,
1
2,,,
1
1 1 ,, 1,
2,
1
1 ,, 111,
),(),(][);(
1
),(][);(
1
),(][);(
1
][);(
1
][);(
1
]][[);(
1
]][[);(
1
]][[);|(
1
11
1111
11
11111
11 1
111111111
11 1
111111111
1
111111111
1
11
1
の分子部分
23
前向き後ろ向きアルゴリズム : b’
γ(t,q): 記号列 o1…oT に対し、時刻 t に状態 q に滞在する確率
qT
qtqtqt
'
)',(
),(),(),(
o1 o2 oTot
状態 q
ot+1
…
…
…
…
…
…
…
…
……
前向き確率 後向き確率
24
前向き後ろ向きアルゴリズム : b’
n
i
T
t
n
i
T
tt
o
n
i
T
tt
n
i
T
tt
o
n
i QqQq
T
tttTT
n
i QqQq
T
tttTT
oq
i
i
i
i
iT
i
ii
iT
i
ii
qt
qtoo
qtoo
qtoo
ooqqooqqp
ooqqooqqp
b
1 1
1 1
1 1
1 1
1 ,, 111
1 ,, 111
,
),(
),(][
),(][
),(][
]][[);|(
]][[);|(
1
1
ちなみに、 ),1(1
)',(
),1(),1(1
1'
qnqT
n
n
iQq
iq
25
前向き後向きアルゴリズムまとめ (1/2)
α(t, q): o1 … ot を出力し、 ot が出力される時 ( 時刻 t) に状態 q である確率
β(t, q) : 時刻 t に状態 q から始める状態遷移によって ot+1…oT まで出力する確率
Qqoqqqt
QqQqoqqq
t
uoqqqoqq
t
tt
t
ttuuuu
baqt
bababqt
1
1
11
11111
,,1
,,,,
1
2,,,
),1(
),(
Qqtoqqq
QqQq
T
tuoqqqoqqq
t
ttt
Tt
uuuuttt
qtba
babaqt
1
111
1
1111
),1(
),(
1,,
,, 2,,,,
orrq
qT
rtbaqtrqt t
'
,,
)',(
),(),1(),,(
qT
qtqtqt
'
)',(
),(),(),(
26
前向き後向きアルゴリズムまとめ (2/2)
あるパラメータ π,a,b が与えられているとする α を求める ( 前向きアルゴリズム ) β を求める ( 後向きアルゴリズム )
それぞれ動的計画法。計算量は O(T) ※ ビタビアルゴリズムも計算量は O(T) 。ビタビアルゴリズムのおよそ 3 倍の計算量。
次のように π, a, b を更新する
n
i
T
t
n
i
T
tt
oq
Qr
n
i
T
t
n
i
T
trq
n
iq
i
i
i
i
qt
qtoo
q
oqb
rqt
rqt
q
rqa
qn
qn
1 1
1 1,
1 2
1 2,
1
),(
),(]['
),,(
),,('
),1(1
)(1
'
値に滞在する回数の期待状態値を出力する回数の期待に滞在し記号状態
待値から遷移する回数の期状態値へ遷移する回数の期待から状態状態
となる回数の期待値先頭が
27
生成モデルと識別モデルGenerative Model and Discriminative Model
28
生成モデルから識別モデルへ
生成モデルHMM
状態遷移による生成状態遷移の確率は一つ前の状態のみに依存任意の文 s と状態列 q に対する同時確率 p(s,q) を計算
できるPCFG
CFG による生成のステップ(書換規則の適用 A → B C )の確率を p(B C| A) とする
CFG による生成の過程の確率を、独立な事象の ( 条件付き ) 確率の積とする
任意の文 s と構文木 t に対する同時確率 p(s, t) を計算できる
29
生成モデルの改良の先に
構文木の分岐の外の情報を条件部に導入PCFG: p(BC|A, hw) [Ahw→BhwC] (hw: 主辞 )HMM: p(qj|qj-1, qj-2)
素性(特徴)という考え方条件部をどんどんリッチにして線形補間をとれ
ばよいのでは?→構文木のノード x の確率p(x)=p(x|x 周辺の状況 )
30
生成モデルの問題点独立性の仮定
PCFG では、各構文木ノードは独立な ( 条件付き)試行により生成されていると仮定している
例えば、 (S (NP John) (VP eats (NP apples))) という構文木は、以下の独立な(条件付き)事象に分解されている
S から NP VP を生成 NP から John を生成 VP から eats NP を生成 NP から apples を生成
結果、上記の NP の文脈 (S→NP VP) から導出された NPか (VP→eats NP) から導出された NP かわからなくなっている→主語の NP なのか目的語の NP なのかわからない。
生成モデルの問題点
31
生成モデルの問題点
生成モデル
しかし、
であるから p (s;θ) が計算できてしまう分、冗長なモデルになっている。間接的に分類問題を解いている。
独立性を仮定した事象に分解しないと同時確率を計算することができない
);,(maxarg);|(maxarg~ tspstpttt
);();|();,( spstptsp
32
識別モデル
識別モデル直接
を解く独立な事象を仮定しない「条件部の確率」をモデルにいれない
);|(maxarg~ stptt
生成モデルと識別モデル( イメージ )
生成モデル 識別モデル
GOOD
BAD
34
生成モデルと識別モデル(イメージ2)
生成モデル 絵を描いて全体像の比較
識別モデル それぞれの特徴を比較
鼻の位置 耳の形 体の大きさ 舌の表面
35
識別するための訓練
教師付学習良い例と悪い例を与えて、どこに注目すれば
より良く識別出来るのか学習good examples
bad examples
識別モデル
)|( stp s = “A blue eye girl with white hair and skin walked”
t1 t2 t3 t4
文法 G により s から導出出来る全ての構文木集合
…
p(t3|s) は t1,t2,t3,..,tn から t3 を選択する確率
tn
素性ベクトル( 特徴ベクトル )
(0,0,1,0) (1,0,1,0) (1,1,1,0) (0,0,1,1) (1,0,0,0)
生成モデルと識別モデル
生成モデル 識別モデル
),( 1yxp
),( 2yxp
1.0
)|( 1 xyp
)|( 2 xyp
38
どちらが優秀なのか?
Tom Minka (2005) Discriminative models, not discriminative training, MSR-TR-2005-144, 1 p.
x を入力 ( 文 ) 、 y を出力 ( 構文木 ) としたときのパラメータ推定
生成モデル
識別モデル
一般モデル
);();|();,( ypyxpyxp
);|( xyp
);();|(),;,( xpxypyxp
θ = θ’
39
まとめ
HMM の前向き後向きアルゴリズム 前向き後向きアルゴリズム
動的計画法 計算量は O(T) ※ ビタビアルゴリズムも計算量は O(T) 。ビタビアルゴリズムの
およそ 3 倍の計算量。 隠れ状態を全て並べあげることなく、トレリス上で期待値を計算できる
ある状態からある状態への遷移回数の期待値 ある状態からある記号を出力する回数の期待値
生成モデルと識別モデル
今までの講義資料http://aiweb.cs.ehime-u.ac.jp/~ninomiya/ai2/
top related