條件隨機場入門(五) 條件隨機場的預測算法

CRF 的預測問題是給定模型參數和輸入序列(觀測序列)x, 求條件機率最大的輸出序列(標記序列)$y^*$,即對觀測序列進行標註。條件隨機場的預測算法同 HMM 仍是維特比算法,根據 CRF模型可得:算法

\begin{aligned}
y^* &= \arg \max_yP_w(y|x) \\
&=  \arg \max_y\frac{ \exp \left \{w \cdot F(y,x) \right\}}{Z_w(x)} \\
&=  \arg \max_y \exp \left \{w \cdot F(y,x) \right\} \\
&= \arg \max_y \ w \cdot F(y,x)
\end{aligned}
優化

因而,條件隨機場的預測問題成爲求非規範化機率最大的最優路徑問題spa

\[\arg \max_y \ w \cdot F(y,x)\]效率

注意,這時只需計算非規範化機率,而沒必要計算機率,能夠大大提升效率。爲了求解最優路徑,將優化目標寫成以下形式:規範化

\[\max_y \sum_{i=1}^n w \cdot F_i(y_{i-1},y_i,x)\]di

其中,參數

\[F_i(y_{i-1},y_i,x) = \left \{f_1(y_{i-1},y_i,x),f_2(y_{i-1},y_i,x),…,F_K(y_{i-1},y_i,x) \right \}^T\]模型

爲局部特徵向量。tar

下面敘述維特比算法。首先求出位置 1 的各個標記 j=1,2,…,m 的非規範化機率:

\[\delta_1(j) = w \cdot F_1(y_0 = start,y_1 = j,x)\]

通常地,由遞推公式,求出到位置 i 的各個標記 $l =1,2,…m$ 的非規範化機率的最大值,同時記錄非規範化機率最大值的路徑:

\begin{aligned}
\delta_i(l) &= \max_{1 \le j \le m} \left \{\delta_i(l-1) + w \cdot F_i(y_{i-1} = j,y_i = l,x)  \right\},  &\ l= 1,2,...,m\\
\Psi_i(l) &=\arg\max_{1 \le j \le m} \left \{\delta_{i-1}(l) + w \cdot F_i(y_{i-1} = j,y_i = l,x)  \right\}, & \ l= 1,2,...,m
\end{aligned}

直到i = n 時終止。這時求得非規範化機率的最大值爲

\[\max_y(w \cdot F(y,x)) = \max_{1 \le j \le m} \delta_n(j)\]

及最優路徑的終點

\[y_n^* = \arg \max_{1 \le j \le m} \delta _n(j)\]

由此最優路徑終點返回,不斷的找到各個時刻的最優值:

\[y_i^* = \Psi_{i+1}(y^*_{i+1}) , \ i = n-1,n-2,…,1\]

以上即是一條最優路徑了,求得該最優路徑:

\[y^* = (y_1^*,y_2^*,…,y_n^*)^T\]

這便爲條件隨機場預測的維特比算法。

相關文章
相關標籤/搜索