Linear-Chain CRF
通常の分類器の逐次適用
- yiのラベルを当てるのに,y1,…yi−1,x1,…,xNの情報を素性にとる分類器を構築するといった方法が考えられる
- HMMよりは,使える情報は増えているが,最終結果が全体として最適であることは保証できない
- CRFは「全体としての確からしさ」を考慮する
概要
- 最大エントロピー法の系列に対する拡張
- CRFは一般的なグラフに適用可能だが,以下では系列に対するLinear-Chain CRF(Conditional Random Fields)について述べる
- P(y∣x)=Zx,w1exp(w⋅ϕ(x,w))
- 全体としての確からしさを考慮してyを決めている
- Zは確率の総和が1となるようにするための,正規化項
- xを分類してy\*を得るには,y\*=argmaxy(w⋅ϕ(x,y))を解く必要がある
- しかし,この計算は大変
- そこで,素性関数にϕk(x,y)=∑tϕk(x,yt,yt−1)という制約をおくと,∑tw⋅ϕ(x,yt,yt−1)を解けばよくなり,ビタビアルゴリズムが使える
- なお,ϕk(x,y)=∑tϕk(x,yt,yt−1,yt−2)という制約をおくこともできる
CRFの学習
- 目的関数は∑ilogP(y(i),x(i))−c∣y∣
- これを最大化したい.第1項は尤度項,第2項は正則化項
- 尤度項logP(y∣x)の勾配gを計算する
- i番目のデータを(x(i),y(i))で表す
- 一方,xやyは変数
- 対数尤度のwkでの偏微分は次式
- ∂wk∂logP(y(i)∣x(i))=ϕk(x(i),y(i))−∑yϕk(x(i),y)P(y∣x(i))
- よって
- g=ϕ(x(i),y(i))−∑yϕ(x(i),y)P(y∣x(i))
- あとは,(例えば)FOBOSが使える
- ただし,∑yを「前向き後ろ向きアルゴリズム」で効率よく計算する必要がある
前向き後ろ向きアルゴリズム
- 高村本p.155を参照
- exp(w⋅ϕ(x,w))について
- 最初からあるノードNまで計算した値α(N)と,あるノードから最後までを計算した値β(N)を用いる
参考文献