条件随机场的预测问题是给定条件随机场P(Y∣X)和输入序列(观测序列)x, 求条件概率最大的输出序列(标记序列)y∗(例如应用在对观测序列进行标注的问题上).
条件随机场的预测算法与HMM一样, 都是采用维特比算法.
维特比算法
由条件随机场的简化(向量)表示形式得:
y∗=argymaxPw(y∣x)=argymaxZw(x)exp(w⋅F(y,x))=argymaxexp(w⋅F(y,x))=argymax(w⋅F(y,x))
其中:
w=(w1,w2,⋯,wK)T
F(y,x)=(f1(y,x),f2(y,x),⋯,fK(y,x))T
fk(y,x)=i=1∑nfk(yi−1,yi,x,i), k=1,2,⋯,K
于是, 条件随机场的预测问题就称为求非规范化概率最大的最优路径问题.
ymax(w⋅F(y,x))
这时, 就只需要计算非规范化概率, 不必计算概率, 可以大大提高效率, 将上式写成如下形式:
ymaxi=1∑nw⋅Fi(yi−1,yi,x)
其中Fi是一个长度为K的局部特征向量:
Fi(yi−1,yi,x)=(f1(yi−1,yi,x,i),f2(yi−1,yi,x,i),⋯,fK(yi−1,yi,x,i))T
维特比算法如下进行:
对于位置1的各个标记(y1取值的所有可能)j=1,2,⋯,m的非规范化概率为:
δ1(j)=wF1(y0=start,y1=j,x), j=1,2,⋯,m
由地推公式, 求出各个位置i的各个标记j=1,2,⋯,m的非规范化概率的最大值, 同时记录非规范化概率最大值的路径:
δi(l)=1≤j≤mmax{δi−1(j)+wFi(yi−1=j,yi=l,x)}
对应的路径为:
Φi(l)=arg1≤j≤mmax{δi−1(j)+wFi(yi−1=j,yi=l,x)}
迭代直到i=n时终止. 此时求得的非规范化概率的最大值为:
ymax(w⋅F(y,x))=1≤j≤mmaxδn(j)
及最优路径的终点:
yn∗=arg1≤j≤mmaxδn(j)
由最优路径的终点返回:
yi∗=Φi+1(yi+1∗), i=n−1,n−2,⋯,1
得到最优路径y∗=(y1∗,y2∗,⋯,yn∗)
条件随机场预测的维特比算法
输入:
观测序列x=(x1,x2,⋯,xn)
输出:
最优路径y∗=(y1∗,y2∗,⋯,yn∗)
过程
初始化
δ1(j)=wF1(y0=start,y1=j,x), j=1,2,⋯,m
递推, 对i=1,2,⋯,n
δi(l)=1≤j≤mmax{δi−1(j)+wFi(yi−1=j,yi=l,x)}, l=1,2,⋯,m
Φi(l)=arg1≤j≤mmax{δi−1(j)+wFi(yi−1=j,yi=l,x)}, l=1,2,⋯,m
终止
ymax(w⋅F(y,x))=1≤j≤mmaxδn(j)
yn∗=arg1≤j≤mmaxδn(j)
返回路径
yi∗=Φi+1(yi+1∗), i=n−1,n−2,⋯,1
求得最优路径: y∗=(y1∗,y2∗,⋯,yn∗)