马尔可夫模型

1. 简介

马尔可夫模型用于预测对于嘈杂环境中目标变量的可能性分布。设想在一个环境中,用户只能通过对某些参数的测量来了解这个环境,并且希望基于自己的了解,预测一些事件,那么这个时候我们可以用到马尔可夫模型。一个例子是看病:医生可以询问患者的各种症状,比如头痛常常意味着感冒,但也可能是其他病因如高血压导致头痛,也有可能是患者的心理压力导致的错觉。由于各种原因(比如测量误差的存在),这时我们的测量(症状)可能是嘈杂(noisy)的。例如血压测量计有很小的概率会出错,等等。根据马尔可夫模型可以构建一个模型,综合各种可观察到的信息(症状),考虑各种可能性,然后做出预测(诊断)。

2. 术语

术语 解释
变量 variable,可取不同值
domain,变量可取的值的范围
模型 数学模型,用来模拟真实的环境,表示现实环境各种变量的关系
不确定性 各种变量的取值不确定,如:明天的天气(可能是晴或雨)
概率分布 变量取各种值的概率
正则化 normalization,保持各数据之间的比例不变,使所有数据的和为1

3. 运算

对各种概率的计算是马尔可夫模型的主要内容之一,其中主要用到了以下几种概率:

  • 联合分布
  • 边缘分布
  • 条件分布

3.1. 联合分布

即两个事件同时发生的概率的分布。用 P(A,B) 表示A,B同时发生的概率
比如:
A => (明天是晴天)
B => (明天很凉快)
P(A,B) =>(明天既是晴天又很凉快的概率)

3.2. 边缘分布

边缘分布简单理解就是从联合分布中得到一个仅关于部分变量的分布。主要思路是运用一个变量取各个值的概率之和为1。(掷硬币正反面的概率各为0.5,和为1)

3.3. 条件分布

条件分布是当已知某些事件发生,其它时间发生的概率的分布。用 P(A|B) 表示已经知道B发生,A发生的概率。
比如:
A => (今天是晴天)
B => (今天凉快)
P(A|B) => (已知今天凉快,今天是晴天的概率)

4. 推演

根据以上三种分布,我们便可以根据观测到的各种现象,计算需要预测的事件发生的概率,从而做出决策。即,如果我们知道所有的联合分布,并且通过一系列观察知道了部分变量的确切值,那么我们便可以运用边缘分布去除掉不相关的变量,运用条件分布带入已知信息,最后正则化,得到一个更为确切的仅包含我们感兴趣的变量的概率分布。而这个分布则更好地帮助我们决策。

下面介绍两个帮助我们推演的工具:

4.1 概率计算公式

Bayes rule:
P ( A , B ) = P ( A ∣ B ) ⋅ P ( B ) = P ( B ∣ A ) ⋅ P ( A ) P(A,B)=P(A|B) \cdot P(B)=P(B|A) \cdot P(A) P(A,B)=P(A∣B)⋅P(B)=P(B∣A)⋅P(A)
Chain rule:
P ( X 1 , X 2 , X 3 , . . . , X n ) = ∏ i P ( X i ∣ X 1 , . . . X i − 1 ) P(X_1,X_2,X_3,...,X_n)=\prod_iP(X_i|X_1,...X_{i-1}) P(X1​,X2​,X3​,...,Xn​)=i∏​P(Xi​∣X1​,...Xi−1​)

4.2 独立事件

如果两个事件互相独立,那么他们同时发生的概率等于各自发生的概率之积。
A => (第一次掷硬币为正面)
B => (第二次掷硬币为反面)
P(A,B)=P(A)P(B)
相对地,如果两个事件互相有关联,则概率分布不满足上述关系。比如:
A => (第一次掷硬币为正面)
B => (掷两次硬币均为反面)
P(A,B) = 0 != P(A)P(B), (A与B不可能同时发生)

4.2.1 条件独立

但是,有时候两个事件本身并不互相独立,但如果已知了其他更具有决定性的证据时,则可认为它们互相独立。
比如:
牙痛可能是因为蛀牙,互相不独立。蛀牙会导致体检时被医生提醒,互相不独立。所以显然,牙痛与被医生提醒互相相关,因为牙痛意味着更有可能会被医生提醒有蛀牙。但如果已知有蛀牙,那么无论会不会牙痛,体检时都会被医生提醒。这时牙痛与被医生提醒已经不再相关了,我们称之为条件独立。
用数学表达如下:
x => (牙痛); y => (被医生提醒有蛀牙); z => (有蛀牙)
P(x|y,z)=P(x|z); P(y|z,x)=P(y|z)
P(x,y|z)=P(y|z)*P(x|z)

4.3 运用

接下来我们运用上面的数学工具,来帮助我们搭建马尔可夫模型,并进行预测。

对于马尔可夫模型,我们搭建的是一条条链式结构(chain),类似于FSM(finite state machine),每一个状态(state)随时间转移到下一个状态。

S1
S2
S3
S4
Sn

我们假设每一个状态仅取决于前一个状态,即 S i S_i Si​与 S i + 2 S_{i+2} Si+2​对于 S i + 1 S_{i+1} Si+1​独立。每个状态S代表目标变量X的一套取值。
比如: S 1 = { X 1 = r a i n } S_1=\{X_1=rain\} S1​={X1​=rain}。 X 1 X_1 X1​表示时间为1时的天气, X 1 ∈ { r a i n , s u n n y } X_1\in\{rain,sunny\} X1​∈{rain,sunny}
所以根据贝叶斯公式和条件独立,我们可以根据当前状态下的概率分布,预测将来的概率分布:

  1. 一系列状态发生的概率
    例如连续三天都是晴天的可能性,使用Chain Rule:
    P ( X 1 , X 2 , X 3 ) = P ( X 1 ) P ( X 2 ∣ X 1 ) P ( X 3 ∣ X 2 , X 1 ) P ( X 4 ∣ X 3 , X 2 , X 1 ) = P ( X 1 ) P ( X 2 ∣ X 1 ) P ( X 3 ∣ X 2 ) P ( X 4 ∣ X 3 ) \begin{aligned} P(X_1,X_2,X_3)&=P(X_1)P(X_2|X_1)P(X_3|X_2,X_1)P(X_4|X_3,X_2,X_1) \\ &=P(X_1)P(X_2|X_1)P(X_3|X_2)P(X_4|X_3) \\ \end{aligned} P(X1​,X2​,X3​)​=P(X1​)P(X2​∣X1​)P(X3​∣X2​,X1​)P(X4​∣X3​,X2​,X1​)=P(X1​)P(X2​∣X1​)P(X3​∣X2​)P(X4​∣X3​)​
  2. 特定时间i下,状态的概率分布
    在时间i时,每个状态都有多个取值的可能,而下一个状态的取值则取决于当前状态的取值,以及转移到下一个特定状态的可能性。比如:
    今天的天气可能是下雨或者晴天,那么明天是晴天的概率则取决于: 1.假如今天是晴天,那么连续两个晴天的概率;2.假如今天是雨天,那么雨转晴的概率。
    数学表达如下:
    P ( X i + 1 ) = ∑ x ∈ X i P ( X i ) P ( X i + 1 ∣ X i ) P(X_{i+1})=\sum_{x\in X_i}P(X_i)P(X_{i+1}|X_i) P(Xi+1​)=x∈Xi​∑​P(Xi​)P(Xi+1​∣Xi​)

总结

至此我们已经可以使用马尔可夫模型来模拟和预测现实中的问题了。但难点在于,对于现实生活中的问题,概率分布和转换模型并不是直接给出的,需要我们分析:目标变量是什么?条件概率分布是多少?每个状态应该包含哪些变量?所以往往难以构建模型来进行计算。

另外,多数时候状态并不能直接获得,而只能通过一些现象猜测。比如:在迷宫中,玩家不能直接知道自己在地图中所处的位置,只能通过观察四周墙壁的形状,根据地图来推测自己的位置。

为了完善马尔可夫模型在以上情景下的使用,下一章我们会介绍一种新的模型:隐式马尔可夫模型。

Markov Models - 马尔可夫模型相关推荐

  1. 算法学习之Markov Model(马尔可夫模型)

    Markov Model(马尔可夫模型) 在概率论中,马尔可夫模型是一种用于对随机变化的系统建模的随机模型. 一种假定猜想:假设未来的状态只依赖于当前状态,而不依赖于之前发生的事件(也就是说,它假设了 ...

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

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

  3. 机器学习算法之——隐马尔可夫模型(Hidden Markov Models,HMM) 代码实现

    @Author:Runsen 隐形马尔可夫模型,英文是 Hidden Markov Models,就是简称 HMM. 既是马尔可夫模型,就一定存在马尔可夫链,该马尔可夫链服从马尔可夫性质:即无记忆性. ...

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

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

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

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

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

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

  7. 隐含马尔可夫模型——Hidden Markov models (HMM)

    本文首发于 算法社区 dspstack.com,转载请注明出处,谢谢. 写在前面# 统计学是个好东东,说它是个好东东,因为统计学不像其他有些学科,它不仅在科研领域应用广泛,在平常的生活中我们也会经常碰 ...

  8. Hidden Markov Models Fundamentals 隐性马尔科夫模型 论文心得

    对自己研究的帮助 求解因变量,解决非凸问题帮助很大 大概框架 摘要 我们如何将机器学习应用于表示为一系列观察结果的数据?马尔可夫模型是一种关于状态随时间推移的推理形式,隐马尔可夫模型是我们希望从一系列 ...

  9. 隐马尔可夫模型(Hidden Markov Model,HMM)是什么?隐马尔可夫模型(Hidden Markov Model,HMM)的三个基本问题又是什么?

    隐马尔可夫模型(Hidden Markov Model,HMM)是什么?隐马尔可夫模型(Hidden Markov Model,HMM)的三个基本问题又是什么? 隐马尔可夫模型 (Hidden Mar ...

最新文章

  1. 如何QLayout内部的成员部件之间从左到右依次排列
  2. Spring Cloud各组件超时
  3. idea ****.class拒绝访问
  4. PostgreSQL的中文拼音排序(转载)
  5. 【theano-windows】学习笔记五——theano中张量部分函数
  6. 运营 | 抖音运营12个步骤
  7. BIDI算法 (Unicode Bidirectional Algorithm)
  8. 【图像上色小综述】生成对抗网络的GAN法
  9. 【ANSYS】Ansys APDL建模示例 轴承座练习
  10. libuv 源码分析 —— 1.queue
  11. WPS—JS宏笔记记录
  12. ubuntu系统怎么退出tty模式(开机自动进入)?(仅供参考)
  13. 【Pandas】返回 视图 还是 副本?SettingwithCopyWarning 的原理和解决方案(摘录转载)
  14. c语言 x*,关于c语言%#X意思大全
  15. Xshell找不到MSVCP110.dll与MSVCR110.dll
  16. 谈谈新手如何学习PHP^_^
  17. 华为证书(HCIP-数通)
  18. FFmpeg 开启QSV硬解加速
  19. 羽毛球练习——资料收集——心得分享
  20. FPGA——I2C代码篇

热门文章

  1. Android11 热点配置信息保存分析
  2. 对比学习顶会论文系列-3-2
  3. 字符串日期 转换成 需要的格式的 字符串日期(超强)
  4. 26岁数学天才回国任教,刚以中科大教授之名攻破世界级难题
  5. 数据结构复习题(二)
  6. 什么是NAT模式、路由模式
  7. Servlet规范之转发请求
  8. Jetson Nano 硬件相关
  9. 怎么把java源代码封装,如何把JAVA程序封装成EXE文件
  10. Exception in thread main java.lang.RuntimeException: java.net.ConnectException错误问题