这里的概率计算问题指的是:
给定条件随机场P(Y∣X)输入序列x和输出序列y, 计算条件概率P(Yi=yi∣x), P(Yi−1=yi−1,Yi=yi∣x)以及相应数学期望的问题.
前向后向算法
像HMM一样, 使用前向-后向向量, 递归地计算以上概率及期望值.
前向向量
对于每个位置i=0,1,2,⋯,n+1, 定义前向向量αi(x), 注意这是一个向量, 长度为状态yi可以取的状态数量, 即m维向量, 每个向量定义为:
α0(y0∣x)={1, y0=start0, else
αiT(yi∣x)=αi−1T(yi−1∣x)Mi(yi−1,yi∣x), i=1,2,⋯,n+1
对于初始情况, 定义α0(y∣x)向量在初始状态start位置上为1, 其他位置都为0.
α0(y∣x)表示在位置i上, 标记为yi并且到位置i之前的所有位置上为标记序列对应的前半部分状态的非规范化概率. 上式又可表示为:
αiT(x)=αi−1T(x)Mi(x)
后向向量
对于每个位置i=0,1,2,⋯,n+1, 定义后向向量βi(x), 向量的长度与前向向量相同:
βn+1(yn+1∣x)={1, yn+1=stop0, else
βi(yi∣x)=Mi+1(yi,yi+1∣x)βi+1(yi+1∣x), i=0,2,⋯,n
概率计算
期望计算