HMM之Baum-Welch算法
来源:互联网 发布:跟淘宝供销平台一样 编辑:程序博客网 时间:2024/05/16 06:13
注:本文中所有公式和思路来自于邹博先生的《机器学习升级版》,我只是为了加深记忆和理解写的本文。
前面介绍过了HHM模型结构和HMM基本问题中的概率计算问题,本文介绍HMM基本问题中的参数学习问题。
如果训练数据包括观测序列和状态序列,则HMM的学习非常简单,是监督学习,如果只有观测序列的话,那么HMM的学习是需要使用EM算法的,是非监督学习。
监督学习:
根据大数定理(频率的极限是概率),我们可以轻易的得出下边的这几个结论:
初始概率:
转移概率:
观测概率:
上边给出的上个结论可以直接从给定的数据中数出来,没有任何难度。
非监督学习:
我们回顾一下EM算法的框架吧:
所有的观测数据写成:O=(o1,o2...oT),所有隐数据写成:I=(i1,i2...iT),完全数据:(O,I)=(o1,o2..oT,i1,i2...iT),完全数据的对数似然函数是:lnP(O,I | λ)
假设λ~是HMM参数的当前估计值,λ是待估计的参数:
我们回顾一下EM的过程:首先需要一个预先给定的λ~参数,然后带入P(I | O, λ~),然后将P(I | O, λ~)带入Q(λ,λ~)中,对对数似然函数lnP(O,I | λ)求期望,找到能使似然函数期望最大的新的λ~,并将新的λ~再次带回P(I | O, λ~),不断重复这个过程。
我们在前一篇文章中提到过暴力求解,并得到了最终的求解公式:
Q()函数可以写成:
既然是要极大化Q,求得参数π、A、B
由于这三个参数分别在这三个项中,那么我们就可以分别极大化。
极大化初始概率:
因为πi满足加和为1,那么我们就可以利用拉格朗日乘子法:
接着对π求偏导:
接着我们可以对i求和:
最后将γ代回去得:
注意:这个γ不是超参数的γ,而是我们之前求过的这么个小东西:
极大化转移概率和观测概率:
使用拉格朗日乘子法:
同理可得:
这几个结果就是可以直接写代码的,学习问题解决了,就剩最后一个预测问题了,下一篇文章就会介绍Viterbi算法。
- HMM之Baum-Welch算法
- 隐马尔可夫模型之Baum-Welch算法详解
- Baum-Welch算法
- Baum-Welch算法
- ”相亲记“之从EM算法到Baum-Welch算法
- HMM的Baum-Welch算法和Viterbi算法公式推导细节
- HMM的Baum-Welch算法和Viterbi算法公式推导细节
- 隐马尔可夫模型(HMM)的MATLAB实现——Baum-Welch算法
- 向前-向后算法(Baum-Welch算法)
- EM算法与Baum-Welch算法
- soledede--隐马尔可夫模型-Baum-Welch算法
- 机器学习第十六课part3(Baum-Welch算法,Viterbi算法)
- MR for Baum-Welch algorithm
- 大学食堂之HMM模型(三)——Baum-Walch算法
- HMM之Viterbi算法
- HMM模型之viterbi算法
- HMM算法之维特比算法
- HMM之维特比算法
- 常用的数学运算工具类
- Java AES加密解密
- 搜索算法之零和问题
- 39个优秀的Swift UI开源库
- jQuery ajax()使用serialize()提交form数据
- HMM之Baum-Welch算法
- 奥巴马卸任演讲
- MacVim的配置
- javascript中数组使用
- 集合框架
- 云服务器外网不能访问公网IP问题解决方法(successful!)
- 手机移动端上滑懒加载实现
- [Android] smalidea 无源码调试 apk
- powershell 批量修改excel第一个worksheet的名字