Upload
vala
View
58
Download
2
Embed Size (px)
DESCRIPTION
人工知能特論 II 第 12 回. 二宮 崇. 今日の講義の予定. 系列ラベリングのための確率的識別モデル (Linear-chain CRF) 解析 ( ビタビアルゴリズム ) 学習 ( 前向き後ろ向きアルゴリズム ) 教科書 高村 大也 ( 著 ), 奥村 学 ( 監修 ) 言語処理のための機械学習入門 ( 自然言語処理シリーズ ), コロナ社 , 2010 - PowerPoint PPT Presentation
Citation preview
1
人工知能特論 II 第 12 回二宮 崇
2
今日の講義の予定
系列ラベリングのための確率的識別モデル (Linear-chain CRF) 解析 ( ビタビアルゴリズム ) 学習 ( 前向き後ろ向きアルゴリズム )
教科書 高村 大也 ( 著 ), 奥村 学 ( 監修 ) 言語処理のための機械学習入門
( 自然言語処理シリーズ ), コロナ社 , 2010 Yusuke Miyao (2006) From Linguistic Theory to Syntactic
Analysis: Corpus-Oriented Grammar Development and Feature Forest Model, Ph.D Thesis, University of Tokyo
Jun’ichi Kazama (2004) Improving Maximum Entropy Natural Language Processing by Uncertainty-aware Extensions and Unsupervised Learning, Ph.D. Thesis, University of Tokyo
Cristopher M. Bishop “PATTERN RECOGNITION AND MACHINE LEARNING” Springer, 2006
3
LINEAR-CHAIN CRF系列ラベリングのための確率的識別モデル
4
系列ラベリングのための確率的識別モデルLinear-chain CRF
CRF (Conditional Random Fields, 条件付確率場 ) 最大エントロピーモデルの一種 出力yは入力xに対する条件付確率 出力 y が無向グラフ (y をノードに分解できる ) 素性を各ノードの近傍で定義
Linear-chain CRF ノードが線形につながったCRF (系列ラベリングのためのCRF) 例えば、品詞解析の場合、入力 x が文で、出力 y が単語 -品詞列となる。
単語と品詞のペアがノードになる。素性を各ノードの近傍で定義する。
代名詞代名詞 動詞動詞 不定冠詞不定冠詞 名詞名詞 ピリオドピリオド
II havehave aa penpen ..
x =“I have a pen.”y=“I- 代名詞 have- 動詞 a- 不定冠詞 pen- 名詞 .- ピリオド”
に対し p(y|x) を求める
5
Linear-chain CRF: 素性テンプレート
素性テンプレート どのような素性を採用するか表記したもの 訓練データに対し素性テンプレートを適用し、実際に出現した値だけ
を素性として採用 素性テンプレートの例
i 番目のノードを ciとする i 番目の品詞を piとする i 番目の単語を wiとする HMM と同様の素性の場合
各ノード ciに対し、 pi-1pi [ 最大で品詞数 × 品詞数の次元ができうる ]
各ノード ciに対し、 wipi [ 最大で単語数 × 品詞数の次元ができうる ]
他にもいろんな組合せの素性を追加できる 各ノード ciに対し、 wi-1wipi
各ノード ciに対し、 pi-2pi-1pi
6
Linear-chain CRF: 素性テンプレートと素性
素性テンプレートの例 HMM と同様の素性の場合
各ノード ciに対し、 pi-1pi
各ノード ciに対し、 wipi
動詞動詞 不定冠詞不定冠詞 名詞名詞 ピリオドピリオド
isis aa penpen ..x
y 不定冠詞不定冠詞 名詞名詞
aa penpen
w1 w2 w3 w4 w5 w6
p1 p2 p3 p4 p5 p6
pi-1piから生成される素性 wipiから生成される素性不定冠詞 - 名詞 a- 不定冠詞名詞 - 動詞 pen- 名詞動詞 - 不定冠詞 is- 動詞名詞 - ピリオド .- ピリオド
7
Linear-chain CRF: 全体の素性ベクトルと局所的素性ベクトルの関係
各素性関数の値は 1 文中に各素性が発火( 出現 ) した回数
動詞動詞 不定冠詞不定冠詞 名詞名詞 ピリオドピリオド
isis aa penpen ..x
y
素性ベクトル (…, 0, 2, 0, …, 0, 1, 0, …, 0, 2, 0, …, 0, 1, 0, …, 0, 2, 0, …)
不定冠詞 - 名詞
不定冠詞不定冠詞 名詞名詞
aa penpen
名詞 - 動詞
pen- 名詞is- 動詞
a- 不定冠詞
c
jj cfyxf )(),(
8
Linear-chain CRF: 全体のスコアと局所的なスコアの関係
全体のスコア = 各ノード c に対するスコアの積
(1,0,1,1,0) (0,0,1,0,0)
文全体の素性ベクトル : (2,0,3,1,1)
01101 54321 e 00100 54321 e
11302 54321 e
掛算
p1p1 p2
p2
w1w1 w2
w2
(1,0,1,0,1)
p3p3
w3w3
10101 54321 e
c jjj
c jjj
j cjj
jjj cf
Zcf
Zcf
Zyxf
Zxyp )(exp
1)(exp
1)(exp
1),(exp
1);|(
9
Linear-chain CRF: スコアの分解とHMM との対応
単語 - 品詞列の確率
解析 : ビタビアルゴリズムの適用 遷移確率と出力確率 ⇔ ノードのスコア
学習 : 前向き後向きアルゴリズムの適用 遷移回数と出力回数 ⇔ 素性値 ( 素性の発火回数 )
HMM の遷移確率と出力確率に対応
j
jj cf )(exp
c jjj
jjj cf
xZyxf
xZxyp )(exp
),(
1),(exp
),(
1);|(
品詞列集合全体のスコアの和 ( 前向きアルゴリズムで計算 )
10
1 次の Linear-chain CRF
ラベル集合を Q、入力を x、出力をq1q2…qTとする。 Linear-chain CRF
ただし、 Zx は分配関数、 λj は fj に対する重み、 q0 = DUMMY(ダミーのラベル )とし、素性関数 f の引数は次のように定義される。
f (時刻 t -1 のラベル , 時刻 t のラベル , 入力 , 時刻 )
入力 (第三引数 )と時刻 (第四引数 )を与えることによって、入力の情報を素性として用いることができる 例えば、品詞解析の場合、ラベルが品詞であり、入力が単語列となり、時刻tやその
前後における単語を素性として用いることができる。
QqQq
T
t jttjjx
T
t jttjj
xT
T
txqqfZ
txqqfZ
xqqqp
,, 11
1121
1
),,,(exp
),,,(exp1
)|(
11
LINEAR-CHAIN CRF の解析
12
Linear-chain CRF の解析
入力 x ラベル集合 Q Linear-chain CRF の解析
(Zx は定数であるため、必要ない )
T
t jttjj
qqqT
qqqT txqqfxqqqpqqq
TT 112121 ),,,(expmaxarg)|(maxargˆˆˆ
2121
13
Linear-chain CRF の解析 : ビタビアルゴリズム
動的計画法
ラベル 1
トレリス
…
…
…
…
ラベル 2
ラベル 3
ラベル 4
δ(t, q): 時刻 t にラベル q となるラベル列の中で最大のスコア
maxq∈Q δ(T, q) を求めれば良い
時刻 1 2 3 T
14
Linear-chain CRF の解析 : ビタビアルゴリズム
1 2 Tt-1
ラベル q
t
…
…
…
…
…
…
…
…
ラベル 1
ラベル 2
…
…
最大スコアで遷移したパスをバックポインタで保存
j tjj
t
j tjjj ttjjj uujj
tt
j tjjj uujj
t
txqqf
tQq
txqqftxqqft
u
uxqqf
QqQqQq
txqqft
u
uxqqf
QqQq
eqt
eee
eeqt
),,,(
1
),,,()1,,,(2
1
),,,(
,,
),,,(1
1
),,,(
,,
1
1
1121
211
11
11
),1(max
maxmax
max),(
時刻
15
Linear-chain CRF: 解析 ( ビタビアルゴリズム )
入力 x Linear-chain CRF の解析
Linear-chain CRF のビタビアルゴリズム for q∈Q δ[1, q] := exp{Σjλjfj(DUMMY,q,x,1)}
for t =2 to T for q∈Q δ[t, q] := maxq’ ∈Q δ[t - 1,q’]exp{Σjλjfj(q’, q, x, t)}
bp[t, q] := argmaxq’ ∈Q δ[t - 1,q’]exp{Σjλjfj(q’, q, x, t)}
𝜋 [𝑞 ]𝑏 [𝑞 ,𝑜1]
𝑎 [𝑞′ ,𝑞 ]𝑏[𝑞 ,𝑜𝑡]
HMM との対応
),(max),,,(expmax)|(max1
1212121
qTtxqqfxqqqpq
T
t jttjj
qqqT
qqq TT
16
LINEAR-CHAIN CRF の学習
17
Linear-chain CRF の学習
学習 ( パラメータ推定 ) 訓練データの対数尤度 (= 目的関数 ) に対する勾配を 0 にする
目的関数とその勾配が計算できれば勾配法でパラメータが求まる。 問題点
素性関数の期待値の計算 : 「ある文 x に対する全ての可能なラベル列集合 Y(x) に対する確率」を計算しないといけない
文長 n 、ラベル数 l に対し、可能なラベル列は lnある。全て展開するのはほぼ不可能
解決策 前向き後ろ向きアルゴリズム 畳み込まれたデータ構造を展開することなく素性関数の期待値を計
算
N
i xYyiji
N
iiij
j i
yxfxypyxfL
1 )(1
),();|(),()(
18
Linear-chain CRF の学習 : 目的関数
訓練データ D={(x1, y1), (x2, y2), …, (xN, yN)}
各 yi を yi=qi1qi2…qiTiとする。 目的関数 : 訓練データに対する Linear-chain CRF の対数尤
度 パラメータ λ に対する目的関数 L(λ)
N
i
T
t jiittijj
N
ii
N
i
T
t jiittijj
i
N
iii
i
i
txqqfxZ
txqqfxZ
xypL
1 1)1(
1
1 1)1(
1
),,,(),(log
),,,(exp),(
1log
);|(log)(
19
Linear-chain CRF の学習 : 目的関数の勾配 (1/2)
目的関数 L(λ) に対するパラメータ λ の勾配
N
i QqQq
T
tittjiT
N
i
T
tiittij
N
i QqQq
T
t
T
u jiuujjittj
i
N
i
T
tiittij
N
i j
i
i
N
i
T
tiittij
j
iT
i
i
i
iT
i i
i
i
txqqfxqqptxqqf
uxqqftxqqfxZ
txqqf
xZ
xZtxqqf
L
1 ,, 111
1 1)1(
1 ,, 1 111
1 1)1(
11 1)1(
1
1
),,,()|(),,,(
),,,(exp),,,(),(
1
),,,(
),(
),(
1),,,(
)(
素性関数の合計の期待値となっている
20
Linear-chain CRF の学習 : 目的関数の勾配 (2/2)
目的関数 L(λ) に対するパラメータ λ の勾配
N
i
T
t QqQqittittj
N
i
T
tiittij
N
i
T
t QqQq QqQqQqQqiTittj
N
i
T
tiittij
N
i QqQq
T
tittjiT
N
i
T
tiittij
j
i
tt
i
i
tt iTtt
i
i
iT
i
i
i
xqqptxqqftxqqf
xqqptxqqftxqqf
txqqfxqqptxqqfL
1 1 ,11
1 1)1(
1 1 , ,,,,,11
1 1)1(
1 ,, 111
1 1)1(
1
1 121
1
)|(),,,(),,,(
)|(),,,(),,,(
),,,()|(),,,()(
qt-1 qt の周辺確率を効率的に求められればよい
( 前のスライドの続き )
21
Linear-chain CRF の学習 : 前向きアルゴリズム (1/3)
動的計画法
ラベル 1
トレリス
…
…
…
…
ラベル 2
ラベル 3
ラベル 4
α(t, q): 時刻 t にラベル q であるスコアの合計
全ての t,q に対し、 α(t, q) を求めれば良い
時刻 1 2 3 T
QqQq
txqqft
u
uxqqf
t
j tjjj uujjeeqt
11
11
,,
),,,(1
1
),,,(),(
22
Linear-chain CRF の学習 : 前向きアルゴリズム (2/3)
1 2 t-1
ラベル q
t
…
…
…
…
…
…
…
…
ラベル 1
ラベル 2
…
…
全てのスコアの和
txqqf
t
Qq QqQq
txqqftxqqft
u
uxqqf
QqQq
txqqft
u
uxqqf
t
j tjj
t t
j tjjj ttjjj uujj
t
j tjjj uujj
eqt
eee
eeqt
1
1
1 21
1121
11
11
),,,(
1
,,
),,,()1,,,(2
1
),,,(
,,
),,,(1
1
),,,(
),1(
),(
時刻 T
23
Linear-chain CRF の学習 : 前向きアルゴリズム (3/3)
Linear-chain CRF の前向きアルゴリズム for q∈Q α[1, q] := exp{Σjλjfj(DUMMY,q,x,1)}
for t =2 to T for q∈Q α[t, q] := Σq’ ∈Q α[t - 1,q’]exp{Σjλjfj(q’, q, x, t)}
入力 x とパラメータ λ が与えられているとする 分配関数 Zx を効率的に求めることもできる ⇒ 目的関数を効率的に求めることができる!
24
Linear-chain CRF の学習 : 後ろ向きアルゴリズム (1/3)
前向きアルゴリズムを逆方向に適用 文末から文頭に向かって実行 向きが逆になることを除けば前向きアルゴリズムと
まったく同じ β(t, q) : 時刻 t にラベル q となっているとき、時
刻 t+1 から文末までのスコアの合計
QqQq
T
tu
uxqqftxqqf
Tt
j uujjj tjjeeqt
,, 2
),,,()1,,,(
1
11),(
25
Linear-chain CRF の学習 : 後ろ向きアルゴリズム (2/3)
1 2 Tt
ラベル q
t+1
…
…
…
…
…
…
…
…
ラベル 1
ラベル 2
…
…
全てのスコアの和
Qqt
txqqf
Qq QqQq
T
tu
uxqqftxqqftxqqf
QqQq
T
tu
uxqqftxqqf
t
j tjj
t Tt
j uujjj ttjjj tjj
Tt
j uujjj tjj
qte
eee
eeqt
1
1
1 2
1211
1
11
),1(
),(
1
)1,,,(
,, 3
),,,()2,,,()1,,,(
,, 2
),,,()1,,,(
時刻
26
Linear-chain CRF の学習 : 後ろ向きアルゴリズム (3/3)
後ろ向きアルゴリズム for q∈Q β[T, q] := 1 for t = T - 1 to 1 for q ∈ Q β[t, q] := Σq’∈Q β[t + 1, q’]exp{Σjλjfj(q, q’, x, t + 1)}
27
Linear-chain CRF学習 ( 前向き後ろ向きアルゴリズム )
qt-1 qt の周辺確率
),(),1(),(
1
),1(),(),(
1
),(),(
1
),(),(
1
),(
1
),(
1
),(
1
)|()|(
),,,(
1
1
),,,(
,,
1
1
),,,(),,,(
,,
1
1
),,,(),,,(
,, ,, 1
),,,(1
1
),,,(),,,(
,, ,, 1
),,,(),,,(1
1
),,,(
,, ,, 1
),,,(
,, ,,11
1
1
21
11
21
11
21 1
111
21 1
111
21 1
1
21 1
t
txqqf
ti
tt
txqqf
i
QqQq
t
u
uxqqf
t
txqqf
i
QqQqt
t
u
uxqqftxqqf
i
QqQq QqQq
T
tu
uxqqft
u
uxqqftxqqf
i
QqQq QqQq
T
tu
uxqqftxqqft
u
uxqqf
i
QqQq QqQq
T
u
uxqqf
i
QqQq QqQqiTitt
qteqtxZ
qtqtexZ
eqtexZ
qteexZ
eeexZ
eeexZ
exZ
xqqpxqqp
j ittjj
j ittjj
t
j iuujjj ittjj
t
j iuujjj ittjj
t iTt
ij iuujjj iuujjj ittjj
t iTt
ij iuujjj ittjjj iuujj
t iTt
ij iuujj
t iTt
i
28
Linear-chain CRF学習 ( 前向き後ろ向きアルゴリズム )
前向き後ろ向きアルゴリズムによる目的関数 L(λ) に対するパラメータ λ の勾配
N
i
T
t Qq Qqt
txqqf
ti
ittj
N
i
T
tiittij
N
i
T
t QqQqittittj
N
i
T
tiittij
j
i
t t
j ittjj
i
i
tt
i
qteqtxZ
txqqf
txqqf
xqqptxqqftxqqfL
1 1
),,,(
11
1 1)1(
1 1 ,11
1 1)1(
1
1
1
),(),1(),(
1),,,(
),,,(
)|(),,,(),,,()(
29
まとめ
系列ラベリングのための確率的識別モデルLinear-chain CRF解析 ( ビタビアルゴリズム )学習 ( 前向き後ろ向きアルゴリズム )
今までの講義資料http://aiweb.cs.ehime-u.ac.jp/~ninomiya/ai2/