03 隐马尔可夫模型 - HMM的三个问题 - 学习问题 - B
2018-12-17 本文已影响130人
白尔摩斯
02 隐马尔可夫模型 - HMM的三个问题 - 概率计算问题
七、HMM的三个问题 - 学习问题
若训练数据包含观测序列和状态序列,则HMM的学习问题非常简单,是监督学习算法。
若训练数据只包含观测序列,则HMM的学习问题需要使用EM算法求解,是非监督学习算法。
若训练数据中包含观测序列和状态序列,直接利用大数定理的结论“频率的极限是概率”,直接给出HMM的参数估计;
|Si| : Si的个数,表示状态i的总个数。
∑|Si|:表示所有时间点上的状态个数。
如下图所示:
aij 表示i号状态转移到j号状态的概率。
|Sij| 表示i号状态转移到j号状态的个数。
∑|Sij| 表示所有时间点上i号状态转移到j号状态的个数。
如下图所示:
bij 从当前状态转移到某个观测值的个数。
比如从1号盒子这个状态,转移到取出白球这个观测值的可能性 = b1白;
b1白 = (1->白)的个数 / [(1->白)的个数+(1->黑)的个数]
= |qij| / ∑|qij|
= |q1白| / (|q1白| + |q1黑|)
若训练数据中只有观测序列,则HMM的学习问题需要使用EM算法,属于非监督算法;此时一般使用Baum-Welch算法。
所有的观测数据为Q={q1,q2,...,qT},所有的隐状态为I={i1,i2,...,iT},则完整的数据为(Q,I),完整数据的对数似然函数为ln(p(Q,I;λ)); 然后直接使用EM算法的方式来进行参数估计。
Baum-Welch算法
Baum-Welch算法 - π求解
极大化L,使用拉格朗日乘子法,求解π的值:
Baum-Welch算法 - A求解
极大化L,使用拉格朗日乘子法,求解aij的值:
Baum-Welch算法 - B求解
极大化L,使用拉格朗日乘子法,求解bij的值: