隐马尔可夫模型 #
Date: 2015/8/1
以前一直觉得马尔可夫模型好像挺麻烦,认真研究后发现,其思想也算是非常的简单,在此记录一下。more隐马尔可夫模型的基本假设
- 齐次马尔可夫性假设。即隐马尔可夫链的每一个状态只由前一个状态决定,生成了某个状态后,其之前的状态就不再影响后面的状态生成。通俗的来说,它的眼界不宽,只看前面一个的情况。$$P(i_t|i_T,o_T,…,i_1,o_1) = P(i_t|i_{t-1})$$
齐次马尔可夫性假设。即隐马尔可夫链的每一个状态只由前一个状态决定,生成了某个状态后,其之前的状态就不再影响后面的状态生成。通俗的来说,它的眼界不宽,只看前面一个的情况。$$P(i_t|i_T,o_T,…,i_1,o_1) = P(i_t|i_{t-1})$$- 观测独立性假设。即隐马尔可夫链的观测只取决于对应状态。$$P(o_t|i_T,o_T,…i_1,o_1) = P(o_t|i_t)$$
观测独立性假设。即隐马尔可夫链的观测只取决于对应状态。$$P(o_t|i_T,o_T,…i_1,o_1) = P(o_t|i_t)$$隐马尔可夫模型的三要素
其实有了上述假设,隐马尔可夫模型就简单了。隐马尔可夫可看作由三要素决定的。
$$ \lambda = (A, B, \pi) $$
$A$是状态转移矩阵,指从t时刻到t+1时刻由状态i到j转移的概率是多少。
$B$是观测概率矩阵,是指由状态i生成观测j的概率是多少。
$\pi$是初始状态概率,指一开始牌状态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: 概率论