Alex_McAvoy

想要成为渔夫的猎手

条件随机场的预测

【概述】

对于线性链条件随机场的预测问题,即:已知线性链条件随机场 $P(Y|X)$ 和输入序列 $x$,求条件概率最大的输出序列 $y^{*}$,即对输入序列进行标注

条件随机场的预测算法与隐马尔可夫模型的预测算法相似,采用 Viterbi 算法,即采用动态规划求概率最大路径,一条路径对应一条状态

关于 Viterbi 算法,详见:隐马尔可夫模型的预测

【基本思想】

由线性链条件随机场的内积形式

可得:

故线性链条件随机场的预测问题,可转化为求非规范化概率最大的最优路径问题:

其中,用路径表示标记序列,即有:

为求解最优路径,可将 $\max\limits_y \big[ \mathbf{w}\cdot F(y,x) \big]$ 写为如下形式:

其中,对于局部特征向量 $F_i(y_{i-1},y_i,x)$ ,有:

下面,定义在位置 $1$ 的各标记 $j=1,2,\cdots,m$ 的非规范化概率:

根据定义,可得到 $\delta$ 的递推公式:

即可求出到位置 $i$ 的各标记 $l=1,2,\cdots,m$ 的非规范化概率的最大值

同时,可记录非规范化概率最大值的路径,即:

直到 $i=n$ 时终止,此时求得非规范化概率的最大值为:

以及最优路径的终点:

由此最优路径返回,有:

求得最优路径为:

【算法流程】

综上所属,对于线性链条件随机场预测的 Viterbi 算法流程如下

输入:模型特征向量 $F(y,x)$,权值向量 $\mathbf{w}$,观测序列 $x=(x_1,x_2,\cdots,x_n)$

输出:最优路径 $y^{*} = (y_1^{*},y_2^{*},\cdots,y_n^{*})$

算法流程:

Step 1:算法初始化

Step 2:对 $i=2,3,\cdots,n$ 递推

Step 3:终止

Step 4:返回路径

求得最优路径为:

感谢您对我的支持,让我继续努力分享有用的技术与知识点!