前言
隐马尔科夫模型有三个基本问题:概率计算问题,学习问题,预测问题。本博客介绍学习问题的监督学习算法和非监督学习算法(EM算法)。阅读本文前请先学习基本概念。
什么是学习问题
学习问题是一直观测序列 O=(o1,o2,...,oT) ,估计模型 λ=(A,B,π) 参数,使得在该模型下观测序列概率 P(O|λ) 最大。
如果训练数据是观测序列和对应的状态序列,由监督学习实现;如果观测数据只有观测序列,由非监督学习实现。
监督学习方法
训练数据包括S个观测序列和与观测序列对应的状态序列对 {(O1,I1),(O2,I2),...,(OS,IS)} ,利用极大似然估计法来估计隐马尔科夫模型参数。
首先,解释一下什么是极大似然估计。
极大似然估计
极大似然估计,又被称之为最大似然估计(Maximum Likelihood
Estimate,MLE),通俗地来说,就是利用已知样本结果信息,反推最有可能(最大概率)导致样本结果出现的模型参数。一句话总结:模型已定,参数未知。
对参数进行推断,称之为“似然”,得到最可能的模型参数,称之为“最大似然估计”
举一两个生活的例子(o( ̄︶ ̄)o):
- 你在路上看到一个长发背影,第一反应这个人很大可能是个女生而不是男生。因为女生留长发的可能性要比男生大。
- 你中午吃了海鲜然后拉肚子了,第一反应是中午吃海鲜过敏或者不卫生。
举一个比较专业的例子:(知乎上看到的)
- 有一个箱子,里面只有黑白两种球,一共100个球,但黑白球各自数量不知。每次抽取一球然后放回重新抽取。重复试验100次后,发现有70次抽取到的是白球,剩下30次是黑球。问:箱子里白球的数量最可能是多少?
从一个“门外汉”的角度,第一反应是70。从专业的数学角度,假设抽取了70次白球,30次黑球的概率用 P(样本结果|Model) 表示,第i次抽样结果用 xi 表示,p表示一次抽样结果是白球的概率,则
P(样本结果|Model) =P(x1,x2,...,x100|Model)=P(x1|Model)P(x2|Model)...P(x100|Model=p70(1−p)30最后的 p70(1−p)30 就是我们得到的似然函数。似然函数最大时(即样本出现的概率最大),此时对应的p值就是我们要找的模型参数。对该似然函数求导,令导数为0,得到p对应值为0.7。
关于似然函数,需要知道:
- 极大似然估计中采样需要的样本必须满足独立同分布假设。如本例中,每次抽取都是独立同分布的。
- 极大似然估计是用来解决优化问题,它的核心是让所采样的样本出现概率最大。具体而言,先求出似然函数,后求导得到似然函数最大值,从而得到模型参数。
监督学习具体算法
1.转移概率 aij 的估计:
2.观测状态 bj(k) 的估计:
3.初始状态概率 πi 的估计为S个样本中初始状态为 qi 的频率。
Baum-Welch算法(EM算法)
稍微说一下什么是拉格朗日乘子法
拉格朗日乘子法:将约束条件函数与原函数联立,从而求出使原函数取得极值的各个变量的解。
后面我就不详细写了,这位大神写的太好了隐马尔可夫模型之Baum-Welch算法详解
后续
还是那句话,数学,数学啊,得好好补数学了。。。。