【概述】
对于线性链条件随机场的概率计算问题,即:给定线性链条件随机场 $P(Y|X)$,输入序列 $x$ 和输出序列 $y$,计算条件概率 $P(Y_i=y_i|x)$ 和 $P(Y_{i-1}=y_{i-1},Y_i=y_i|x)$,以及相应的数学期望
与隐马尔可夫模型类似,引入前向向量与后向向量,递推的计算条件概率以及期望值,这样的算法称为前向-后向算法(Forward-backward Algorithm)
【前向向量与后向向量】
前向向量
对于线性链条件随机场的矩阵形式:
对每个指标 $i=0,1,\cdots,n+1$,定义前向向量 $\alpha_i(x)$:
有递推公式:
其中,$\alpha_i(y_i|x)$ 表示在位置 $i$ 的标记是 $y_i$ 且从 $1$ 到 $i$ 的前部分标记序列的非规范化概率,$y_i$ 可取的值有 $m$ 个,故可将其写为 $m$ 维列向量形式,即:
后向向量
同理,对每个指标 $i=0,1,\cdots,n+1$,定义后向向量 $\beta_i(x)$:
有递推公式:
其中,$\beta_i(y_i|x)$ 表示在位置 $i$ 的标记是 $y_i$ 且从 $i+1$ 到 $n$ 的后部分标记序列的非规范化概率,$y_i$ 可取的值有 $m$ 个,故可将其写为 $m$ 维行向量形式,即:
【概率计算】
根据前向向量与后向向量的定义,可计算出标记序列在位置 $i$ 是标记 $y_i$ 的条件概率:
以及在位置 $i-1$ 与 $i$ 是标记 $y_{i-1}$ 和 $y_i$ 的条件概率,即:
其中,对于规范化因子 $Z(x)$,有:
$\mathbf{1}$ 是元素均为 $1$ 的 $m$ 维列向量
【期望值计算】
条件分布
根据前向向量与后向向量的定义,对于特征函数 $f_k(y,x)$,其关于条件分布 $P(Y|X)$ 的数学期望为:
其中,对于规范化因子 $Z(x)$,有:
上式为特征函数关于 $P(X|Y)$ 的数学期望的一般计算公式,对于转移特征
可将上式中的 $f_k$ 替换为 $t_k$,对于状态特征
可将上式中的 $f_k$ 替换为 $s_l$
联合分布
假设经验分布为 $\tilde{P}(X)$,特征函数 $f_k(y,x)$ 关于联合分布 $P(X,Y)$ 的数学期望为:
其中,对于规范化因子 $Z(x)$,有:
上式为特征函数关于 $P(X,Y)$ 的数学期望的一般计算公式,对于转移特征
可将上式中的 $f_k$ 替换为 $t_k$,对于状态特征
可将上式中的 $f_k$ 替换为 $s_l$