隐马尔可夫模型 #
Date: 2015/8/1
以前一直觉得马尔可夫模型好像挺麻烦,认真研究后发现,其思想也算是非常的简单,在此记录一下。more隐马尔可夫模型的基本假设
- 齐次马尔可夫性假设。即隐马尔可夫链的每一个状态只由前一个状态决定,生成了某个状态后,其之前的状态就不再影响后面的状态生成。通俗的来说,它的眼界不宽,只看前面一个的情况。P(it|iT,oT,…,i1,o1)=P(it|it−1)
齐次马尔可夫性假设。即隐马尔可夫链的每一个状态只由前一个状态决定,生成了某个状态后,其之前的状态就不再影响后面的状态生成。通俗的来说,它的眼界不宽,只看前面一个的情况。P(it|iT,oT,…,i1,o1)=P(it|it−1)
- 观测独立性假设。即隐马尔可夫链的观测只取决于对应状态。P(ot|iT,oT,…i1,o1)=P(ot|it)
观测独立性假设。即隐马尔可夫链的观测只取决于对应状态。P(ot|iT,oT,…i1,o1)=P(ot|it)
隐马尔可夫模型的三要素
其实有了上述假设,隐马尔可夫模型就简单了。隐马尔可夫可看作由三要素决定的。
λ=(A,B,π)
A是状态转移矩阵,指从t时刻到t+1时刻由状态i到j转移的概率是多少。
B是观测概率矩阵,是指由状态i生成观测j的概率是多少。
π是初始状态概率,指一开始牌状态i的概率是多少。隐马尔可夫模型的计算算法
隐马尔可夫模型通常会给出整体的观测序列O作为即定事实,然后在上面做一些分析。
- 若给定了三要素,基于隐马尔可夫模型的基本假设,很容易得到一个无后效性的最优子问题,那么在计算第t个时刻状态为i的方法可以使用DP来做。在此有前向算法与后向算法两类,通过这两类算法,可以将状态序列中的某一个状态单独取出来,因而它们经常一起使用。使用前向算法和后向算法可以估计出每一个状态的值,这就是近似算法但是由于前后状态是分别估计的,所以生成的相信序列可能存在转移概率为0的情况。隐马的假设与DP简直就是天生一对,我们可以使用DP估计出全局概率最高的路径。这就是维特比算法。 若给定了三要素,基于隐马尔可夫模型的基本假设,很容易得到一个无后效性的最优子问题,那么在计算第t个时刻状态为i的方法可以使用DP来做。在此有前向算法与后向算法两类,通过这两类算法,可以将状态序列中的某一个状态单独取出来,因而它们经常一起使用。
- 使用前向算法和后向算法可以估计出每一个状态的值,这就是近似算法但是由于前后状态是分别估计的,所以生成的相信序列可能存在转移概率为0的情况。 使用前向算法和后向算法可以估计出每一个状态的值,这就是近似算法但是由于前后状态是分别估计的,所以生成的相信序列可能存在转移概率为0的情况。- 隐马的假设与DP简直就是天生一对,我们可以使用DP估计出全局概率最高的路径。这就是维特比算法。 隐马的假设与DP简直就是天生一对,我们可以使用DP估计出全局概率最高的路径。这就是维特比算法。- 若三要素是未知的,那么又可以分为两类:若给定状态序列I,通过统计的方式,可以获得三要素的值。若没有状态序列I,可以通过Baum-Welch算法,结合EM迭代,估计出三要素。 若三要素是未知的,那么又可以分为两类:
- 若给定状态序列I,通过统计的方式,可以获得三要素的值。 若给定状态序列I,通过统计的方式,可以获得三要素的值。- 若没有状态序列I,可以通过Baum-Welch算法,结合EM迭代,估计出三要素。 若没有状态序列I,可以通过Baum-Welch算法,结合EM迭代,估计出三要素。 Categories: 概率论