Linear-Chain CRF
通常の分類器の逐次適用
- $y_i$のラベルを当てるのに,$y_1, \ldots y_{i-1}, x_1, \ldots, x_N$の情報を素性にとる分類器を構築するといった方法が考えられる
- HMMよりは,使える情報は増えているが,最終結果が全体として最適であることは保証できない
- CRFは「全体としての確からしさ」を考慮する
概要
- 最大エントロピー法の系列に対する拡張
- CRFは一般的なグラフに適用可能だが,以下では系列に対するLinear-Chain CRF(Conditional Random Fields)について述べる
- $P({\bold y} | {\bold x}) = \frac{1}{Z_{{\bold x,w}}} \exp ( {\bold w} \cdot \phi ({\bold x,w})) $
- 全体としての確からしさを考慮して${\bold y}$を決めている
- $Z$は確率の総和が$1$となるようにするための,正規化項
- ${\bold x}$を分類して${\bold y}^{*}$を得るには,${\bold y}^{*} = {\textrm argmax}_{{\bold y}} \left( {\bold w} \cdot \phi ({\bold x,y}) \right)$を解く必要がある
- しかし,この計算は大変
- そこで,素性関数に$\phi_k ({\bold x, y}) = \sum_t \phi_k ({\bold x}, y_t, y_{t-1})$という制約をおくと,$ \sum_t {\bold w} \cdot \phi ({\bold x}, y_t, y_{t-1}) $を解けばよくなり,ビタビアルゴリズムが使える
- なお,$\phi_k ({\bold x, y}) = \sum_t \phi_k ({\bold x}, y_t, y_{t-1}, y_{t-2})$という制約をおくこともできる
CRFの学習
- 目的関数は$\sum_i \log P(\bold{y}^{(i)}, \bold{x}^{(i)}) - c |\bold{y}|$
- これを最大化したい.第1項は尤度項,第2項は正則化項
- 尤度項$\log P(\bold{y}|\bold{x})$の勾配$\bold{g}$を計算する
- $i$番目のデータを$(\bold{x}^{(i)}, \bold{y}^{(i)})$で表す
- 一方,$\bold{x}$や$\bold{y}$は変数
- 対数尤度の$w_k$での偏微分は次式
- $\frac{\partial \log P(\bold{y}^{(i)} | \bold{x}^{(i)})}{ \partial w_k} = \phi_k (\bold{x}^{(i)}, \bold{y}^{(i)}) - \sum_{\bold{y}} \phi_k (\bold{x}^{(i)}, \bold{y}) P(\bold{y} | \bold{x}^{(i)})$
- よって
- $\bold{g} = \phi (\bold{x}^{(i)}, \bold{y}^{(i)}) - \sum_{\bold{y}} \phi (\bold{x}^{(i)}, \bold{y}) P(\bold{y} | \bold{x}^{(i)})$
- あとは,(例えば)FOBOSが使える
- ただし,$\sum_{\bold{y}}$を「前向き後ろ向きアルゴリズム」で効率よく計算する必要がある
前向き後ろ向きアルゴリズム
- 高村本p.155を参照
- $\exp ( {\bold w} \cdot \phi ({\bold x,w}))$について
- 最初からあるノード$N$まで計算した値$\alpha(N)$と,あるノードから最後までを計算した値$\beta(N)$を用いる
参考文献