條件隨機場入門(四) 條件隨機場的訓練

本節討論給定訓練數據集估計條件隨機場模型參數的問題,即條件隨機場的學習問題。條件隨機場模型其實是定義在時序數據上的對數線形模型,其學習方法包括極大似然估計和正則化的極大似然估計。具體的優化實現算法有改進的迭代尺度法IIS、梯度降低法以及 L-BFGS 算法。(crf++ 採用了 L-BFGS 優化的方式,因此着重看這種訓練方法便可)算法

L-BFGS算法

對於條件隨機場模型:ide

\[P_w(y|x) = \frac{\exp \left \{ \sum_{k=1}^K w_kf_k(x,y)\right \}}{ \sum_y  \left \{ \exp \sum_{i=1}^n w_if_i(x,y)\right \}}\] 函數

已知訓練數據集,由此可知經驗機率分佈 $\widetilde{P}(X,Y)$ 能夠經過極大化訓練數據的對數似然函數來求模型參數,訓練數據的對數似然函數爲:學習

\[L(w) = L_{\widetilde{P}}(P_w) = \log \prod_{x,y}P_w(y|x)^{\widetilde{P}(x,y)} = \sum_{x,y}\widetilde{P}(x,y) \log P_w(y|x)\]優化

接下來給出 $\log$ 似然函數:spa

\begin{aligned}
L(w) &= \sum_{x,y} \widetilde{P}(x,y) \log P_w(y|x) \\
&= \sum_{x,y} \left \{ \widetilde{P}(x,y)\sum_{k=1}^Kw_kf_k(y,x)-\widetilde{P}(x,y) \log Z_w(x) \right \} \\
&= \sum_{x,y} \widetilde{P}(x,y) \sum_{k=1}^K w_kf_k(x,y) - \sum_x\widetilde{P}(x)\log\sum_y\exp\left \{ \sum_{i=1} ^nw_if_i(x,y)\right \}
\end{aligned}
學習方法

對目標進行 MLE 等價於極小化如下優化目標函數:lambda

\[\min_w f(w)  = \sum_x\widetilde{P}(x) \log \sum_y \exp \left \{  \sum_{i=1}^n w_if_i(x,y)\right \} -\sum_{x,y}\widetilde{P}(x,y)\sum_{i=1}^nw_i f_i(x,y)\]搜索

其一階梯度函數在 BFGS 算法的過程當中有用到,形式以下:方法

\[g(w) = \left \{ \frac{\partial f(w)}{\partial w_1},\frac{\partial f(w)}{\partial w_2},…,\frac{\partial f(w)}{\partial w_n} \right \}\]

具體其形式以下:

\[g(w) = \sum_{x,y}\widetilde{P}(x)P_w(y|x)f(x,y)-E_{\widetilde{P}}(f) = E_P(f) - E_{\widetilde{P}}(f)\]

能夠看到,這是要使得真實指望與經驗指望的差值儘量小,也正是咱們的初衷,還能夠爲目標函數加上一個權重爲 $1/ \delta^2$ 的 $L_2$ 正則項(貝葉斯先驗),所以 $g(w)$ 的形式變爲:

\[ g(w) = E_P(f) - E_{\widetilde{P}}(f) + \frac{w}{\delta^2}\]

總結一下便獲得求解 CRF 的 BFGS 算法

輸入:特徵函數 $f_1,f_2,…,f_n$;經驗分佈 $\widetilde{P}(X,Y)$;

輸出:最優參數值 $\hat{w}$;最優模型 $P_{\hat{w}}(y|x)$。

(1) 選定初始點 $w^{(0)}$,取 $B_0$ 爲正定對稱矩陣,置 $k = 0$;

(2) 計算 $g_k = g(w^{(k)})$。若 $g_k = 0$ ,則中止計算;不然轉(3)

(3) 由擬牛頓條件 $B_kp_k = –g_k$ 求出 $p_k$

(4) 線性搜索:求 $\lambda_k$ 使得:

\[f(w^{(k)} + \lambda_kp_k) = \min_{\lambda \ge 0}f(w^{(k)} + \lambda p_k)\]

(5) 置 $w^{(k+1)} = w^{(k)} + \lambda_k p_k$

(6) 計算 $g_{k+1} = g(w^{(k+1)})$,若 $g_k = 0$ ,則中止計算;不然,按下式求出 $B_{k+1}$:

\[B_{k+1} = B_k + \frac{y_ky_k^T}{y_k^T \delta_k} – \frac{B_k \delta_k \delta_k^TB_k}{\delta_k^TB_k\delta_k}\]

其中:\[y_k = g_{k+1}-g_k , \  \  \delta_k = w^{(k+1)} - w^{(k)}\]

(7)  置 k = k+1,轉(3)

這即是 BFGS 求解 CRF 的過程。

相關文章
相關標籤/搜索