对自己研究的帮助

求解因变量,解决非凸问题帮助很大

大概框架

摘要

我们如何将机器学习应用于表示为一系列观察结果的数据?马尔可夫模型是一种关于状态随时间推移的推理形式,隐马尔可夫模型是我们希望从一系列观察中恢复一系列状态的模型。

马尔可夫模型

假设一组状态S = {s1,s2,...s|S|},我们可以观察一个时间序列 z ∈ ST。例如,我们可能有来自天气系统S = {太阳,云,雨}的状态,其中|S| = 3,并观察几天的天气{z1= ssun,z2= scloud,z3= scloud,z4= srain,z5= scloud},T = 5。我们的天气例子的观测状态代表一个随机过程随时间的输出

马尔可夫假设:

  1. 有限视界假设在t时刻处于一种状态的概率只取决于t-1的状态,即时间t-1的状态代表了对过去的足够总结。P(zt|zt−1, zt−2, ..., z1) = P(zt|zt−1)
  2. 平稳过程假设:给定当前状态下的下一状态的条件分布不随时间变化。P(zt|zt−1) = P(z2|z1); t ∈ 2...T

状态转移参数化:我们定义转移矩阵来参数化这些转移,Aij值表示在任何时间t从状态i转换到状态j的概率。

结合假设和状态转移参数化,我们可以得到特定的状态序列z的概率是多少?我们如何估计模型A的参数,使观测序列z的可能性最大化?

  1. 利用概率的链式法则来计算一系列特定状态z的概率

在第二行中,我们将初始值z0引入到我们的联合概率中,这是z0的定义所允许的。

第三行是任何联合分布的真实概率链规则或贝叶斯规则的重复应用。

第四行来自马尔可夫假设

最后一行表示这些项在我们的转移矩阵A中的元素。

  1. 最大似然参数分配

我们可以寻求最大化观测序列对数似然性的参数。把对数似然性定义为马尔可夫模型

在最后一行中,我们使用一个指示器函数,当条件成立时,该函数的值为1,否则为0,以选择每个时间步长观察到的转换。特别的是:强制来自状态i的传出概率分布总是和为1,并且A的所有元素都是非负的。

该约束优化问题可以用拉格朗日乘子法以封闭形式求解。我们将在拉格朗日中引入等式约束,但是不等式约束可以安全地忽略,最优解将为Aij无论如何产生正值。

求偏导且设置为0,我们可以得到:

代入并设置相对于α的部分等于零:

将这个值代入我们为Aij导出的表达式中的α,我们得到了Aij的最终最大似然参数值。

状态i过渡到状态j的最大似然概率只是我们从i过渡到j的次数除以我们在i的总次数,换句话说,最大似然参数对应于我们在状态i时过渡到j的时间分数

隐马尔可夫模型

冰淇淋气候学:你是2799年的气候学家,研究全球变暖的历史。你不能找到巴尔的摩天气的任何记录,但你可以找到我的日记,在日记中,我勤奋地记录了我每天吃了多少冰淇淋。你能从这件事看出那个夏天的天气怎么样?

两个状态:隐状态:S ;目标状态:V

三种可能性:转移状态、观测状态、独立性假设

  

B表示隐藏状态输出B的概率

三个问题?

  1. 观察到的序列的概率是多少?

正向过程:

假设在我们的时间序列长度上存在一系列状态。这个状态序列是由状态转移矩阵A参数化的马尔可夫模型产生的,在每个时间步t,我们选择一个输出XT作为状态zt的函数。这个公式对于任何概率分布都成立

动态编程算法:假设一个量αi(t) = P(x1,x2,...,xt,zt = si;A,B);αi(t)表示在时间t之前的所有观测值的总概率(通过任何状态分配)

一个类似的算法称为向后程序,可以用来计算一个类似的概率βi(t) = P(xT,Xt 1,..,xt+1,zt = si;A,B)。

  1. 最有可能产生观测结果的一系列状态是什么?

最大似然状态分配:维特比算法:

第一种简化遵循贝叶斯规则,第二种简化遵循分母不直接依赖于~z的观察

维特比算法就像前向过程一样,只是我们只需要跟踪最大概率并记录其相应的状态序列,而不是跟踪产生迄今为止所看到的观测值的总概率。

  1. 给定一些数据,我们如何学习隐马尔可夫模型的参数A和B的值?

隐马尔可夫模型的期望最大化算法的一个推导

在第一行中,我们将对数除法分解为减法,并注意分母的项不依赖于参数A、B。

马尔可夫假设应用于第3行。

第5行使用指示函数按状态索引A和B。

就像可视马尔可夫模型的最大似然参数一样,忽略不等式约束是安全的,因为解的形式自然只产生正解。构造拉格朗日函数:

Q(z)被定义为P(z |  x;A,B)为最后一个时间步长的参数A和B。让我们考虑如何用前向和后向概率αi(t)和βj(t)的代表Aij

在最初的两个步骤中,我们重新排列了项,并用来代替我们对q的定义。然后,我们使用贝叶斯规则推导出第四行,接着是第五行中α、β、A和B的定义。同样,分母可以用分子的j值相加来表示。

结合这些表达式,我们可以完全描述我们的最大似然状态转移Aij,而不需要列举所有可能的标签

同样,我们可以表示Bij

同EM的许多应用一样,hmm的参数学习是一个具有多个局部极大值的非凸问题。HM将根据其初始参数收敛到最大值,因此可能需要多次运行。此外,平滑由A和B表示的概率分布通常很重要,以便没有跃迁或发射被指定为0概率。

Hidden Markov Models Fundamentals 隐性马尔科夫模型 论文心得相关推荐

  1. HHM(Hidden Markov Model)-隐式马尔科夫模型

    HHM(Hidden Markov Model)-隐式马尔科夫模型 隐式马尔科夫模型是通过对观察序列的观测推导出隐藏状态.举例说明,由于本人是在十一小长假写下该篇文章,因此就拿小长假的出行计划介绍该算 ...

  2. python做马尔科夫模型预测法_通过Python的Networkx和Sklearn来介绍隐性马尔科夫模型...

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 文章梗概 马尔科夫是何人? 马尔科夫性质是什么? 马尔科夫模型是什么? 是什么让马尔科夫模型成为隐性的? ...

  3. m基于HMM隐性马尔科夫模型的驾驶员驾驶意图识别算法matlab仿真

    目录 1.算法仿真效果 2.算法涉及理论知识概要 3.MATLAB核心程序 4.完整算法代码文件 1.算法仿真效果 matlab2022a仿真结果如下: 2.算法涉及理论知识概要 随着智能交通系统的发 ...

  4. python做马尔科夫模型预测法_python 日常笔记 hmmlearn 隐性马尔科夫模型案例分析...

    问题: 什么是马尔科夫模型?用来干什么? 大家可以参考这篇简书 python 实现 关于HMM有两个主要问题: 已知上述三个参数,和当前观测序列,求解隐藏状态的变化 所有参数未知,只有数据,如何获得三 ...

  5. 隐马尔科夫模型c#语言算法实现,HMM学习最佳范例四:隐马尔科夫模型

    四.隐马尔科夫模型(Hidden Markov Models) 1.定义(Definition of a hidden Markov model) 一个隐马尔科夫模型是一个三元组(pi, A, B). ...

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

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

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

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

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

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

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

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

最新文章

  1. 最长子序列和 动态规划python_算法基础之python实现动态规划中数字三角形和最长上升子序列问题...
  2. HttpClient 详解一《C#高级编程(第9版)》
  3. hadoop使用lzo压缩文件笔记
  4. Javascript获取数组中的最大值和最小值方法汇总
  5. 非易失性内存在阿里生产环境的首次应用:Tair NVM最佳实践总结
  6. 惊了!日本街头出现透明公厕,竟有人排队抢着上!
  7. a href='?out=login'是什么意思
  8. Bezier(贝塞尔)曲线(五阶)的轨迹规划在自动驾驶中的应用(六)
  9. SpringBoot搭建天气预报微服务系统
  10. SpringMVC框架----SpringMVC 概述
  11. mysql安装updatecatalog_mysql安装与配置(linux)
  12. TFS环境搭建--MSSQL2008安装
  13. python模拟鼠标点击
  14. 微信Mac版客户端(支持查看朋友圈)
  15. display几种常用的属性值
  16. 联想服务器rd640性能,至强E5芯动力 联想RD640服务器评测
  17. Android-节日短信送祝福(功能篇:1-数据库操作类与自定义ContentProvider)
  18. 你会换掉Postman吗?我正在用HTTP Client...
  19. 使用VS2017生成的动态库时出现__acrt_iob_func链接错误
  20. Abaqus接触分析--SurfaceBaseContact 法向切向接触行为

热门文章

  1. .NET Core Polly 重试 熔断 降级
  2. 2022年年初,全军出击。回顾项--持续梳理前端面试高频题目
  3. c语言生成一串变量,大魔王程序员生成记#02#C语言基础——变量与常量
  4. 文档服务器无可用设备,云服务器GPU设备显示异常
  5. 劲搞笑!网友模仿演绎改版稻香
  6. Spring Enable 是什么?
  7. [真情文字]真情永远不会老去
  8. 计算机数据传输9600波特率,什么是波特率_波特率9600是什么意思_串口通信为什么要设置波特率?...
  9. 当删除后微软再次出现如何再次关掉微软输入法
  10. 蓝桥杯第十三届决赛真题-左移右移