从头开始(概率)学 HMM:精讲第二课 - 学习问题(BW 算法)
1. 简述
隐马尔可夫的学习问题,根据训练数据只有观测序列还是包含观测序列和状态序列,可以分别非监督学习与监督学习。
2. 监督学习方法
假设已知训练数据包含 S 个长度相同的观测序列和对应的状态序列,那么可以利用极大似然估计来估计隐马尔可夫的模型参数
转移概率的估计:设样本时刻 t 处于状态 i 时刻 t+1 处于状态 j 的频数为,那么状态转移概率的估计是:
观测概率的估计:设样本中状态为 j 并观测为 k 的频数为,那么状态为 j 观测为 k 的概率的估计是
初始状态概率的估计:为 S 个样本中初始状态为的频率。
由于监督学习需要使用训练数据,而人工标注训练数据的代价很高,因此经常会适用非监督学习的方法
3. 非监督学习:Baum-Welch 算法
Baum-Welch 算法简称 BW 算法,其核心是 EM 算法,因此本章需要具有 EM 知识。不过现在还不用掌握 EM,讲述过程中会说明何时去学 EM。
假设给定训练数据只包含 S 个长度为 T 的观测序列,而没有对应的状态序列,目标是学习隐马尔可夫模型的。用 O 表示观测序列,用 I 表示状态序列。隐马尔可夫模型事实上是一个含有隐变量的概率模型:
使用 EM 算法解决上述问题的步骤如下(暂时可先不掌握 EM):
第一步:确定完全数据的对数似然函数
观测数据,隐藏数据,完全数据。完全数据的对数似然函数是。如何理解对数似然函数的由来:
变量的联合概率函数为
极大似然函数说白了就是联合概率函数,只是我们在计算参数时,会把样本变量带进去。现在的联合概率函数为,因此完全数据的极大似然函数为
第二步:EM 算法的 E 步:求 Q 函数
到此也可以先不用管什么是 EM,先按照我们的流程走下去,至于什么是 Q 函数,怎么得来的,后面讲 EM 会详细说明。这里就先记住有 Q 函数及其公式表达。
Q 函数中的就是我们要求的参数,Q 函数中的是利用了迭代的思想。就像梯度下降一样,在第 i 步的时候,我们可以得到参数的一个估计值,然后求导,更新 i+1 步的参数值。这里的就是第 i 步(或者说当前步骤)参数的估计值,因此是已知量。
。Q 函数定义如此,至于为什么这么定义,后续可在 EM 讲解时了解。
①,推导见下:
于是
第三步:EM 算法的 M 步:极大化 Q 函数求模型参数,在已知某一步,如第 t 步值的情况下,最大化包含的 Q 函数,得到的估计值,相当于得到 t+1 的取值。由于要极大化的参数在式 ①中单独地出现在 3 个项中,所以只需要对各项分别最大化。
式 ①的第一项(含有)可以写成:
注意到满足约束条件,利用拉格朗日乘子法,写出拉格朗日函数:
对其求偏导,并令结果为 0:
得到:
对 i 求和得到 gamma:
带入公式,得到:
至于是什么,本章最后的小结进行说明,下述求 A、B 的亦同。
式①的第二项,仅含有 A,与求 $\pi$的方法类似:
第四步:上述过程求得了第 t+1 步的取值,因此可以根据前述方法继续求得第 t+2 步的
第五步:终止条件:
- 方式 1:指定一共要递推多少步,如 n+1 步,因此在 n+1 步确定模型参数
- 对较小的正数,若满足 的含义在 EM 算法中有详细讲述,到此时,我们可以回过头看 EM 算法了,看看为什么该问题能转化成 Q 函数,Q 函数如何得到等。详见后续的 EM 算法详解。不过还是建议大家看完最后的总结。
4. 总结
- 上述其实还遗留了一个问题,即 t+1 步,得到的估计值仍然带有概率的形式,这里我们定义:
- ,详见后续的前后向算法。
- ,和详见前后向算法中的概率与期望值部分
- ,详见前后向算法中的概率与期望值部分。
版权声明: 本文为 InfoQ 作者【herosunly】的原创文章。
原文链接:【http://xie.infoq.cn/article/b94b7fedcf6566eeb12da0c6c】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论