学习问题

已知观测序列O,估计模型λ的参数,使得在该模型下观测序列概率P(O|λ)最大。

解决算法

最大似然估计(有监督)

有监督意味着已知在给定的训练集中观测序列O={o1,o2,…,oT}和隐状态序列I={i1,i2,…,iT}

求模型λ=(A,B,π)的参数,也就是转移矩阵,发射矩阵,初始概率矩阵。

算法流程如下:

  1. 转移概率aij的估计
    设样本中时刻 t 处于状态 i 时刻 t+1 转移到状态j的次数为 Aij,从状态转移到状态的概率aij的估计是:

其中,分母表示从状态 i 转移到任意状态的次数。

  1. 观测概率bj(k)的估计:
    设样本中状态为 j 并观测为 k 的频数是Bjk,那么状态为j观测为k的概率bj(k)的估计是:

其中,分母表示在状态 j 下发射出任意状态的次数.

  1. 初始状态转移概率πi1为样本中初始状态的概率:

其中分子表示初始状态是 i 的次数,分母表示所有初始状态出现的次数

由于监督学习需要使用训练数据, 而人工标注训练数据往往代价很高,有时就会利用非监督学习的方法。

Baum-Welch算法(鲍姆-韦尔奇算法)(无监督)

EM算法:是含有隐变量的概率模型参数的极大似然估计法,或极大后验概率估计法。原理是通过不断求解下界的极大化逼近求解对数似然函数极大化的算法。EM算法的相关介绍可参照EM算法及其推广学习笔记

无监督意味着给定的训练集中只有观测序列O={o1,o2,…,oT},此时需要采用EM算法思想,先假设参数,通过期望最大化来获得隐状态序列I={i1,i2,…,iT}(硬划分隐状态序列对应到值,软化分隐状态序列对应到概率),然后根据隐状态序列来更新参数,不断迭代至收敛。

分析:
我们的目标是学习隐马尔可夫模型λ=(A,B,π)的参数。我们将观测序列数据看作观测数据O,状态序列数据看作不可观测的隐数据 I,那么隐马尔可夫模型实际上是一个含有隐变量的概率模型:

EM算法推导Baum-Welch算法流程如下:

输入:观测数据O = (o1, o2, …, oT)
输出:隐马尔科夫模型参数

约束条件:

  1. 采用EM算法,将需要最大化的概率函数转化为对数似然函数:

  1. EM算法的E步:求Q函数

左边等式中第一个λ是要极大化的隐马尔可夫模型参数,第二个λ是隐马尔可夫模型参数的当前估计值。
带入可得以下公式:

式中求和都是对所有训练数据的序列总长度T进行的。

  1. EM 算法的M步:极大化Q函数,求模型参数A、B、π。
    由于要极大化的参数在上式中单独地出现在3个项中,所以只需对各项分别极大化。

第一项:

利用拉格朗日乘子法,写出拉格朗日函数:

约束条件:

求偏导为0:

代回偏导数为0的式子中,最终得到:


第二项:

约束条件:

同上求得:


第三项:

约束条件:

同上求得:


化简可表示为:

Baum-Welch算法具体求解流程如下:

  1. 初始化,对n=0,选取aij(0),bj(k)(0),πi(0),得到模型

  2. 递推n=1,2,3…

3.终止。得到模型参数:

参考文献:

  • https://blog.csdn.net/zgcr654321/article/details/92639420
  • https://blog.csdn.net/firparks/article/details/54934112
  • https://blog.csdn.net/qq_37334135/article/details/86302735

隐马尔可夫模型(四)学习问题相关推荐

  1. 隐马尔可夫模型HMM学习备忘

    隐马尔可夫模型HMM学习备忘 目录 隐马尔可夫模型HMM学习备忘 1.马尔可夫模型的理解 2.隐马尔可夫模型 2.1.HHM的组成 2.2.HMM解决的三个基本问题 隐马尔可夫模型示意图如图[1]: ...

  2. 隐马尔可夫模型HMM学习笔记

    参考: https://www.cnblogs.com/pinard/p/6945257.html https://www.cnblogs.com/pinard/p/6991852.html http ...

  3. 机器学习知识点(二十四)隐马尔可夫模型HMM维特比Viterbi算法Java实现

    1.隐马尔可夫模型HMM    学习算法,看中文不如看英文,中文喜欢描述的很高深.    http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/ht ...

  4. 【机器学习】隐马尔可夫模型及其三个基本问题(三)模型参数学习算法及python实现

    [机器学习]隐马尔可夫模型及其三个基本问题(三)模型参数学习算法及python实现 一.一些概率与期望值的计算 二.非监督学习方法(Baum-Welch算法) 三.python实现 隐马尔可夫模型参数 ...

  5. 时序分析:隐马尔可夫模型

         在AI综合领域,HMM模型是离散贝叶斯网络,最主要用于非确定性(概率)推理. 上次的文章被标记为链接,真是有意思.      一:隐马尔科夫模型    本人对这篇转载做了修改! 英文链接:h ...

  6. 10_隐马尔科夫模型HMM2_统计学习方法

    文章目录 四.学习算法 1.监督学习方法 2.非监督学习方法(Baum-Welch算法) 五.预测算法 1.近似算法 2.维特比算法 (1)最优路径特性 (2)两个变量 (3)维特比算法流程 隐马尔科 ...

  7. 统计学习方法笔记-隐马尔可夫模型(内含Python代码实现)

    一 马尔可夫模型 我们通过一个具体的例子来介绍一下什么是马尔可夫模型 我们假设天气有3种情况,阴天,雨天,晴天,它们之间的转换关系如下: (稍微解释一下这个图,我们可以这样认为,已知第一天是阴天,那第 ...

  8. 隐马尔科夫模型C#语言算法实现

    开发工具: Visual Studio v2010 .NET Framework 4 Client Profile 版本历史: V1.1 2011年06月09日 修正UMDHMM在Baum-Welch ...

  9. 隐马尔科夫模型(HMM)笔记(公式+代码)

    文章目录 1. 基本概念 1.1 HMM模型定义 1.2 盒子和球模型 1.3 观测序列生成过程 1.4 HMM模型3个基本问题 2. 概率计算问题 2.1 直接计算法 2.2 前向算法 2.2.1 ...

  10. 隐马尔科夫模型(Hidden Markov Models) 系列之三

    隐马尔科夫模型(Hidden Markov Models) 系列之三 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...

最新文章

  1. 【计算机网络】网络层 : IPv6 协议 ( IPv6 数据包格式 | IPv6 地址表示 | IPv6 地址类型 | IPv4 与 IPv6 协议对比 | IPv4 -> IPv6 过渡策略 )
  2. JWT Authentication Tutorial: An example using Spring Boot--转
  3. c语言 如何创建adt_C语言探索之旅 | 第二部分第六课:创建你自己的变量类型
  4. java字符串操作_Java的字符串操作
  5. redis的数据类型及设置方法
  6. DeepLink用法及源码解析
  7. Web应用功能测试测试点
  8. php怎么求最小公倍数,PHP编程求最大公约数与最小公倍数的方法示例
  9. 解决scrapy不执行Request回调函数callback
  10. git学习3--关联不同的网址的远程分支
  11. 中国被动元件市场规模调研与发展趋势预测报告2022版
  12. ubuntu18.0.4 无线网卡无法上网解决!
  13. c语言小饭店等位就餐程序,小饭店预约登记管理系统,
  14. java 对音频文件降噪_如何对音频文件降噪?闪电音频剪辑软件为音频降噪的方法...
  15. Dell R730xd 安装显卡后风扇转速高 解决方法
  16. 台式机使用笔记本电脑上网解决办法。
  17. Win10系统新建菜单只有文件夹选项的处理方法
  18. WhatsApp网页版登陆,WhatsApp官网入口
  19. 网络基础之网络协议篇
  20. 史上最全的开源项目创作指南

热门文章

  1. 巧用 /etc/rc.local,开机时完成一些自动任务 - GNU/Linux,Windows的終結者 - KM大宝 - 和讯博客...
  2. 游戏开发热门技术浅析
  3. ExtJS初学——renderTo/applyTo区别
  4. 微软同步工具之synctoy
  5. linux查看udp端口占用命令,详解Linux查看端口占用
  6. 视频教程-2021软考网络工程师 案例分析视频教程-软考
  7. android toolbar 搜索框,SearchView配合RecyclerView实现分页搜索过滤关键字
  8. His系统数据库服务器关系,his系统数据库服务器
  9. Apache(阿帕奇) 配置环境及使用(保姆级教程)拒绝繁琐
  10. 计算机显示发送报告,Word文档打不开提示发送错误报告的解决方法