條件隨機場入門(三) 條件隨機場的概率計算問題


條件隨機場的概率計算問題是給定條件隨機場 P(Y|X) ,輸入序列 x 和輸出序列 y ,計算條件概率  $P(Y_{i-1} = y_{i-1}Y_i = y_i|x)$ ,$P(Y_i = y_i|x)$  以及相應的數學期望的問題。為了方便起見,像 HMM 那樣,引進前向-后向向量,遞歸地計算以上概率及期望值。這樣的算法稱為前向-后向算法。

前向-后向算法

對每個指標 $i = 0,1,…,n+1$ ,定義前向向量 $a_i(x)$ ,對於起始狀態 $i=0$:

\[a_0(y|x) = \left \{ \begin{aligned}
&1, \ \ y = start \\
&0, \ \ else
\end{aligned}\right.\]

對於之后的狀態 $i = 1,2,…,n+1$ ,遞推公式為:

\[a_i^T(y_i|x) = a^T_{i-1}(y_{i-1}|x)M_i(y_{i-1},y_i|x)\]

這里 $M_i(y_{i-1},y_i|x)$ 對應的是轉移矩陣中的一列,轉為向量形式可表示為

\[a^T_i(x) = a^T_{i-1}(x)M_i(x)\]

$a_i(y_i|x)$ 表示在位置 i 的標記是 $y_i$ 並且到位置 i 的前部分標記序列的非規范化概率,$y_i$ 可取的值有 m 個,所以 $a_i(x)$ 是 m 維列向量。

同樣,對每個指標 $i = 0,1,…,n+1$ ,定義后向向量 $\beta_i(x)$:

\[\beta_{n+1}(y_{n+1}|x) = \left \{ \begin{aligned}
&1, \ \ y_{n+1} = stop \\
&0, \ \ else
\end{aligned}\right.\]

往前遞推:

\[\beta_i(y_i|x) = M_i(y_i,y_{i+1}|x)\beta_{i+1}(y_{i+1}|x)\]

又可以表示為:

\[\beta_i(x) = M_{i+1}(x) \beta_{i+1}(x)\]

$\beta_i(y_i|x)$ 表示在位置 i 的標記為 $y_i$,並且從 i+1 到 n 的后部分標記序列的非規范化概率。

由前向-后向向量定義不難得到:

\[Z(x) = a_n^T(x) \cdot \mathbf{1} = \mathbf{1}^T \cdot \beta_1(x)\]

這里,$\mathbf{1}$  是元素均為 1 的 m 維列向量。

概率計算

按照前向-后向向量的定義,很容易計算標記序列在位置 i 是標記 $y_i$ 的條件概率和在位置 i-1 與 i 是標記 $y_{i-1}$ 和 $y_i$ 的條件概率:

\begin{aligned}
P(Y_i= y_i|x) &= \frac{a_i^T(y_i|x) \beta_i(y_i|x)}{Z(x)} \\
P(Y_{i-1} = y_{i-1} ,Y_i= y_i|x) &=\frac{a_{i-1}^T(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}
\end{aligned}

其中 $Z(x) = a_n^T(x) \cdot \mathbf{1} $

期望值的計算

利用前向-后向向量,可以計算特征函數關於聯合分布 P(X,Y) 和條件分布 P(Y|X) 的數學期望。

特征函數 $ \left \{ f_k \right \}_{k=1}^K$ 關於條件分布 P(Y|X) 的數學期望是

\begin{aligned}
E_{p(Y|X)}[f_k] &= \sum_yP(y|x)f_k(y,x) \\
&=\sum_{i=1}^{n+1}\sum_{y_{i-1}\ y_i}f_k(y_{i-1},y_i,x,i) \frac{a_{i-1}^TM_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}
\end{aligned}

其中 $Z(x) = a_n^T(x) \cdot \mathbf{1} $

假設經驗分布為 $\widetilde{P}(X)$ ,特征函數  $ \left \{ f_k \right \}_{k=1}^K$  關於聯合分布 P(Y|X) 的數學期望是:

\begin{aligned}
E_{P(X,Y)}[f_k] &= \sum_{x,y}P(x,y)\sum_{i=1}^{n+1}f_k(y_{i-1}.y_i,x,i) \\
&= \sum_x\widetilde{P}(x) \sum_yP(y|x)\sum_{i=1}^{n+1}f_k(y_{i-1,}y_ix,i) \\
&= \sum_x\widetilde{P}(x) \sum_{i=1}^{n+1} \sum_{y_{i-1} \ y_i}f_k(y_{i-1,}y_ix,i)\frac{a_{i-1}^T(y_{i-1}|x)M_i(y_{i-1},y_i|x) \beta_i(y_i|x)}{Z(x)}
\end{aligned}

其中,$Z(x) = a_n^T(x) \cdot \mathbf{1} $

這個式子是特征函數數學期望的一般計算公式。對於轉移特征 $t_k(y_{i-1},y_i,x,i) ,k=1,2,…,K$ ,可以將式中的 $f_k$ 換成 $t_k$ ;對於狀態特征,可以將式中的 $f_k$ 換成 $s_l$ , 表示為 $s_l(y_i,x,i),k = K_1+1;l=1,2,…,K_2$ 。

有了這些式子,對於給定的觀測序列 x 與標記序列 y ,可以通過一次前向掃描計算 $a_i$ 及 $Z(x)$ ,通過一次后向掃描計算 $\beta_i$,從而計算所有的概率和特征的期望。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM