马尔可夫链的三个基本问题
1.已知一个序列,他的likelihood是什么样的。(使用前向算法)
2.求解一个最好的状态链(Viterbi算法)
3.优化或者重新估计这个HMM,比如重新估计发散矩阵和转换矩阵(Baum-Welch算法)
F/B算法是一个求解HMM的重要算法,它是动态规划(Dynamic programming, 这个名字的翻译有点意思)的重要一种。
F/B前提:假设发散概率矩阵(Emission Probablity Matrix), 转换矩阵(Transition Probabilty Matrix) , 和初始概率(Initial probability)已知。
F/B目的:求在已知的观测数据X下的某个状态Z的概率。
F/B为什么要分成两部分:前向算法(Forward)和后向算法(Backward)
首先来看我们要求的概率 p(Zk|X) :
p(Zk|X)∝p(Zk,X)=p(Xk+1:n|Zk,X1:k)p(Zk,X1:k)(1)
在观测数据X固定的情况下, p(Zk|X) 会等比例于 p(Zk,X) 。
根据Chain Rule,可以将 p(Zk,X) 分解,这里n的意思是X的数量。
根据图论的D-separation,我们可以将 p(Xk+1:n|Zk,X1:k) 中的