深入浅出的马尔科夫入门文章

时间:2022-08-08 16:20:14

http://blog.csdn.net/pipisorry/article/details/46618991

生成模式(Generating Patterns)

1、确定性模式(Deterministic Patterns):确定性系统

  考虑一套交通信号灯,灯的颜色变化序列依次是红色-红色/黄色-绿色-黄色-红色。这个序列可以作为一个状态机器,交通信号灯的不同状态都紧跟着上一个状态。
     深入浅出的马尔科夫入门文章
  注意每一个状态都是唯一的依赖于前一个状态,所以,如果交通灯为绿色,那么下一个颜色状态将始终是黄色——也就是说,该系统是确定性的。确定性系统相对比较容易理解和分析,因为状态间的转移是完全已知的。

2、非确定性模式(Non-deterministic patterns):马尔科夫

  为了使天气那个例子更符合实际,加入第三个状态——多云。与交通信号灯例子不同,我们并不期望这三个天气状态之间的变化是确定性的,但是我们依然希望对这个系统建模以便生成一个天气变化模式(规律)。
  一种做法是假设模型的当前状态仅仅依赖于前面的几个状态,这被称为马尔科夫假设,它极大地简化了问题。显然,这可能是一种粗糙的假设,并且因此可能将一些非常重要的信息丢失。
  当考虑天气问题时,马尔科夫假设假定今天的天气只能通过过去几天已知的天气情况进行预测——而对于其他因素,譬如风力、气压等则没有考虑。在这个例子以及其他相似的例子中,这样的假设显然是不现实的。然而,由于这样经过简化的系统可以用来分析,我们常常接受这样的知识假设,虽然它产生的某些信息不完全准确。
           深入浅出的马尔科夫入门文章  深入浅出的马尔科夫入门文章  深入浅出的马尔科夫入门文章
  一个马尔科夫过程是状态间的转移仅依赖于前n个状态的过程。这个过程被称之为n阶马尔科夫模型,其中n是影响下一个状态选择的(前)n个状态。最简单的马尔科夫过程是一阶模型,它的状态选择仅与前一个状态有关。这里要注意它与确定性系统并不相同,因为下一个状态的选择由相应的概率决定,并不是确定性的。
  下图是天气例子中状态间所有可能的一阶状态转移情况:
     深入浅出的马尔科夫入门文章
  对于有M个状态的一阶马尔科夫模型,共有M^2个状态转移,因为任何一个状态都有可能是所有状态的下一个转移状态。每一个状态转移都有一个概率值,称为状态转移概率——这是从一个状态转移到另一个状态的概率。所有的M^2个概率可以用一个状态转移矩阵表示。注意这些概率并不随时间变化而不同——这是一个非常重要(但常常不符合实际)的假设。
  下面的状态转移矩阵显示的是天气例子中可能的 状态转移概率
     深入浅出的马尔科夫入门文章
  -也就是说,如果昨天是晴天,那么今天是晴天的概率为0.5,是多云的概率为0.375。注意,每一行的概率之和为1。
  要初始化这样一个系统,我们需要确定起始日天气的(或可能的)情况,定义其为一个 初始概率向量 ,称为pi向量。
           深入浅出的马尔科夫入门文章
  -也就是说,第一天为晴天的概率为1。
我们 定义一个一阶马尔科夫过程 如下:
    状态 :三个状态——晴天,多云,雨天。
   pi 向量 :定义系统初始化时每一个状态的概率。
    状态转移矩阵 :给定前一天天气情况下的当前天气概率。

任何一个可以用这种方式描述的系统都是一个马尔科夫过程。

[马尔科夫模型 Markov model ]

3、隐藏模式(Hidden Patterns):隐马尔科夫

1、马尔科夫过程的局限性
  在某些情况下,我们希望找到的模式用马尔科夫过程描述还显得不充分。回顾一下天气那个例子,一个隐士也许不能够直接获取到天气的观察情况,但是他有一些水藻。民间传说告诉我们水藻的状态与天气状态有一定的概率关系——天气和水藻的状态是紧密相关的。在这个例子中我们有两组状态,观察的状态(水藻的状态)和隐藏的状态(天气的状态)。我们希望为隐士设计一种算法,在不能够直接观察天气的情况下,通过水藻和马尔科夫假设来预测天气。
  一个更实际的问题是语音识别,我们听到的声音是来自于声带、喉咙大小、舌头位置以及其他一些东西的组合结果。所有这些因素相互作用产生一个单词的声音,一套语音识别系统检测的声音就是来自于个人发音时身体内部物理变化所引起的不断改变的声音。
  一些语音识别装置工作的原理是将内部的语音产出看作是隐藏的状态,而将声音结果作为一系列观察的状态,这些由语音过程生成并且最好的近似了实际(隐藏)的状态。在这两个例子中,需要着重指出的是,隐藏状态的数目与观察状态的数目可以是不同的。一个包含三个状态的天气系统(晴天、多云、雨天)中,可以观察到4个等级的海藻湿润情况(干、稍干、潮湿、湿润);纯粹的语音可以由80个音素描述,而身体的发音系统会产生出不同数目的声音,或者比80多,或者比80少。
  在这种情况下,观察到的状态序列与隐藏过程有一定的概率关系。我们使用隐马尔科夫模型对这样的过程建模,这个模型包含了一个底层隐藏的随时间改变的马尔科夫过程,以及一个与隐藏状态某种程度相关的可观察到的状态集合。

[隐马尔可夫模型HMM]

皮皮blog




马尔科夫模型

马尔科夫链的节点是状态,边是转移概率,是template CPD(条件概率分布)的一种有向状态转移表达。马尔科夫过程可以看做是一个自动机,以一定的概率在各个状态之间跳转。

考虑一个系统,在每个时刻都可能处于N个状态中的一个,N个状态集合是 {S1,S2,S3,...SN}。我们现在用q1,q2,q3,…qn来表示系统在t=1,2,3,…n时刻下的状态。Note: 每个状态都是一个向量分布,即在N个状态集合是 {S1,S2,S3,...SN}上的概率分布。

马尔科夫链

独立同分布建模

处理顺序数据的最简单的方式是忽略顺序的性质,将观测看做独立同分布,对应于图13.2所示的图。然而,这种方法无法利用数据中的顺序模式,例如序列中距离较近的观测之间的相关性。

深入浅出的马尔科夫入门文章

马尔科夫模型( Markov model )

为了在概率模型中表示这种效果,我们需要放松独立同分布的假设。完成这件事的一种最简单的方式是考虑马尔科夫模型( Markov model )。

马尔科夫模型( Markov model )表示观测序列的联合概率分布

深入浅出的马尔科夫入门文章

深入浅出的马尔科夫入门文章

一阶马尔科夫链( first-order Markov chain )

一阶马尔科夫链( first-order Markov chain )模型中, N 次观测的序列的联合概率分布为

深入浅出的马尔科夫入门文章

深入浅出的马尔科夫入门文章

根据 d -划分的性质,给定时刻 n 之前的所有观测,我们看到观测 x n 的条件概率分布为

深入浅出的马尔科夫入门文章

同质马尔科夫链( homogeneous Markov chain )

在这种模型的大部分应用中,条件概率分布 p(x n | x n−1 ) 被限制为相等的,对应于静止时间序列(数据会随着时间发生变化,但是生成数据的概率分布保持不变)的假设。这样,这个模型被称为同质马尔科夫链( homogeneous Markov chain )。例如,如果条件概率分布依赖于可调节的参数(参数的值可以从训练数据中确定),那么链中所有的条件概率分布会共享相同的参数值。

高阶马尔科夫链

二阶马尔科夫链

深入浅出的马尔科夫入门文章

马尔科夫链的参数个数分析

假设观测是具有 K 个状态的离散变量,那么一阶马尔科夫链中的条件概率分布 p(x n | x n−1 ) 由 K − 1 个参数指定,每个参数都对应于 x n−1 的 K 个状态,因此参数的总数为 K(K − 1) 。

现在假设我们将模型推广到 M 阶马尔科夫链,从而联合概率分布由条件概率分布 p(x n | x n−M , . . . , x n−1 ) 构建。如果变量是离散变量,且条件概率分布使用一般的条件概率表的形式表示,那么这种模型中参数的数量为 K^M * (K − 1) 。

连续变量的马尔科夫链

对于连续变量来说,我们可以使用线性高斯条件概率分布,其中每个结点都是一个高斯概率分布,均值是父结点的一个线性函数。这被称为自回归( autoregressive )模型或者 AR 模型( Box et al., 1994; Thiesson et al., 2004 )。另一种方法是为 p(x n | x n−M , . . . , x n−1 ) 使用参数化的模型,例如神经网络。这种方法有时被称为抽头延迟线( tapped delay line ),因为它对应于存储(延迟)观测变量的前面 M 个值来预测下一个值。这样,参数的数量远远小于一个一般的模型(例如此时参数的数量可能随着 M 线性增长),虽然这样做会使得条件概率分布被限制在一个特定的类别中。

[PRML]<br>

某小皮



马尔科夫过程收敛性分析与采样

这里只讨论一阶同质的马尔科夫过程。

(一阶同质)马尔科夫模型有两个假设:

1.      系统在时刻t的状态只与时刻t-1处的状态相关;(也称为无后效性)

2.      状态转移概率与时间无关;(也称为齐次性或时齐性)

第一条具体可以用如下公式表示:

P(qt=Sj|qt-1=Si,qt-2=Sk,…)= P(qt=Sj|qt-1=Si)

其中,t为大于1的任意数值,Sk为任意状态

第二个假设则可以用如下公式表示:

P(qt=Sj|qt-1=Si)= P(qk=Sj|qk-1=Si)

其中,k为任意时刻。即任意时刻两个状态之间的转移概率是一样的,整个转移概率矩阵在所有时间步之间是共享参数的。

Note: For you language folks, this is precisely the same idea as modeling word sequences using a bigram model, where here we have states z instead of having words w.一阶马氏链思想同词序列的bigram模型,只是将词w换成了状态z。

马氏链及其平稳分布

马氏链的数学定义很简单

也就是状态转移的概率只依赖于前一个状态,Markov Chain 体现的是状态空间的转换关系,下一个状态只决定与当前的状态(可以联想网页爬虫原理,根据当前页面的超链接访问下一个网页)。

马氏链的一个具体的例子

社会学家经常把人按其经济状况分成3类:下层(lower-class)、中层(middle-class)、上层(upper-class),我们用1,2,3 分别代表这三个阶层。社会学家们发现决定一个人的收入阶层的最重要的因素就是其父母的收入阶层。如果一个人的收入属于下层类别,那么他的孩子属于下层收入的概率是 0.65, 属于中层收入的概率是 0.28, 属于上层收入的概率是 0.07。事实上,从父代到子代,收入阶层的变化的转移概率如下

深入浅出的马尔科夫入门文章    深入浅出的马尔科夫入门文章

使用矩阵的表示方式,转移概率矩阵记为

假设当前这一代人处在下层、中层、上层的人的比例是概率分布向量 ,那么他们的子女的分布比例将是, 他们的孙子代的分布比例将是 , ……, 第代子孙的收入分布比例将是

假设初始概率分布为,    则我们可以计算前代人的分布状况如下。我们发现从第7代人开始,这个分布就稳定不变了,这个是偶然的吗?我们换一个初始概率分布       试试看,继续计算前代人的分布状况如下

深入浅出的马尔科夫入门文章深入浅出的马尔科夫入门文章

我们发现,到第9代人的时候, 分布又收敛了,事实上,在这个问题中,从任意初始概率分布开始都会收敛到这个上面这个稳定的结果。最为奇特的是,两次给定不同的初始概率分布,最终都收敛到概率分布,       也就是说收敛的行为和初始概率分布 无关。这说明这个收敛行为主要是由概率转移矩阵决定的。我们计算一下

我们发现,当 足够大的时候,这个矩阵的每一行都是稳定地收敛到           这个概率分布。自然的,这个收敛现象并非是我们这个马氏链独有的,而是绝大多数马氏链的共同行为。

关于马氏链的收敛我们有如下漂亮的定理:

马氏链收敛定理

马氏链定理: 如果一个非周期马氏链具有转移概率矩阵,且它的任何两个状态是连通的,那么 存在且与无关,记, 我们有

  1.  
  2.   是方程 的唯一非负解

其中,称为马氏链的平稳分布。

所有的 MCMC(Markov Chain Monte Carlo) 方法都是以这个定理作为理论基础的。 定理的证明相对复杂。

定理内容的一些解释说明

  1. 该定理中马氏链的状态不要求有限,可以是有无穷多个的;
  2. 定理中的“非周期“这个概念不解释,因为我们遇到的绝大多数马氏链都是非周期的;
  3. 两个状态是连通并非指 可以直接一步转移到(),而是指 可以通过有限的步转移到达()。马氏链的任何两个状态是连通的含义是指存在一个, 使得矩阵 中的任何一个元素的数值都大于零。
  4. 我们用 表示在马氏链上跳转第步后所处的状态,如果 存在,很容易证明以上定理的第二个结论。由于

    上式两边取极限就得到

某小皮



马尔科夫模型的应用

采样算法中的应用

从初始概率分布 出发,我们在马氏链上做状态转移,记Xi的概率分布为πi, 则有


由马氏链收敛的定理, 概率分布 将收敛到平稳分布 。假设到第 步的时候马氏链收敛,则有

所以 Xn,Xn+1,Xn+2,⋯∼π(x) 都是同分布的随机变量,当然他们并不独立。如果我们从一个具体的初始状态 x0 开始,沿着马氏链按照概率转移矩阵做跳转,那么我们得到一个转移序列x0,x1,x2,⋯xn,xn+1⋯, 由于马氏链的收敛行为,xn,xn+1,⋯ 都将是平稳分布π(x) 的样本。

顺序数据建模

[顺序数据:状态空间模型 ]

from:http://blog.csdn.net/pipisorry/article/details/46618991

ref:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

==================================================================

分隔符

==================================================================

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

引言

在之前介绍贝叶斯网络的博文中,我们已经讨论过概率图模型(PGM)的概念了。Russell等在文献【1】中指出:“在统计学中,图模型这个术语指包含贝叶斯网络在内的比较宽泛的一类数据结构。” *中更准确地给出了PGM的定义:“A graphical model or probabilistic graphical model is a probabilistic model for which a graph expresses the conditional dependence structure between random variables. ” 如果你已经掌握了贝叶斯网络,那么你一定不会对PGM的概念感到陌生。本文将要向你介绍另外一种类型的PGM,即隐马尔可夫模型(HMM,Hidden Markov Model)。更准确地说,HMM是一种特殊的贝叶斯网络。


一些必备的数学知识

随机过程(Stochastic Process)是一连串随机事件动态关系的定量描述。如果用更为严谨的数学语言来描述,则有:设对每一个 tTt∈TX(t,w)X(t,w) 是一个随机变量,称随机变量族 XT={X(t,w),tT}XT={X(t,w),t∈T} 为一随机过程(或随机函数),其中 TRT∈R 称为指标集,RR 是实数集。wΩw∈ΩΩΩ为样本空间。用映射来表示XTXT, 

X(t,w)T×ΩRX(t,w):T×Ω→R

即  X(,)X(⋅,⋅)  是定义在  T×ΩT×Ω  上的二元单值函数。其中  T×ΩT×Ω  表示  TT  和  ΩΩ  的笛卡尔积。

参数 tTt∈T 一般表示时间。当 TT 取可列集时,通常称 XTXT 为随机序列。XT (tT)XT (t∈T) 可能取值的全体集合称为状态空间,状态空间中的元素称为状态。

马尔科夫过程(Markov Process)是本文中我们所要关注的一种随机过程。粗略地说,一个随机过程,若已知现在的 tt 状态 XtXt, 那么将来状态 Xu (u>t)Xu (u>t) 取值(或取某些状态)的概率与过去的状态Xs (s>t)Xs (s>t) 取值无关;或者更简单地说,已知现在、将来与过去无关(条件独立),则称此过程为马尔科夫过程。

同样,我们给出一个精确的数学定义如下:若随机过程{Xt,tT}{Xt,t∈T}对任意 t1<t2<<tn<tt1<t2<…<tn<txixi1in1≤i≤n 及 AA 是 RR 的子集,总有 

P{XtA|Xt1=x1,Xt2=x2,,Xtn=xn}=P{XtA|Xtn=xn}P{Xt∈A|Xt1=x1,Xt2=x2,⋯,Xtn=xn}=P{Xt∈A|Xtn=xn}

则称此过程为马尔科夫过程。称 P(s,x;t,A)=P{XtA|Xs=x}P(s,x;t,A)=P{Xt∈A|Xs=x} s>ts>t , 为转移概率函数。 XtXt  的全体取值构成集合  SS  就是状态空间。对于马尔可夫过程  XT={Xt,tT}XT={Xt,t∈T} ,当 S={1,2,3,}S={1,2,3,⋯} 为可列无限集或有限集时,通常称为马尔科夫链(Markov Chain)。


从时间角度考虑不确定性

在前面给出的贝叶斯网络例子中,每一个随机变量都有唯一的一个固定取值。当我们观察到一个结果或状态时(例如Mary给你打电话),我们的任务是据此推断此时发生地震的概率有多大。而在此过程中,Mary是否给你打过电话这个状态并不会改变,而地震是否已经发生也不会改变。这就说明,我们其实是在一个静态的世界中来进行推理的。

但是我们现在要研究的HMM,其本质则是基于一种动态的情况来进行推理,或者说是根据历史来进行推理。假设要为一个高血压病人提供治疗方案,医生每天为他量一次血压,并根据这个血压的测量值调配用药的剂量。显然,一个人当前的血压情况是跟他过去一段时间里的身体情况、治疗方案,饮食起居等多种因素息息相关的,而当前的血压测量值相等于是对他当时身体情况的一个“估计”,而医生当天开具的处方应该是基于当前血压测量值及过往一段时间里病人的多种情况综合考虑后的结果。为了根据历史情况评价当前状态,并且预测治疗方案的结果,我们就必须对这些动态因素建立数学模型。

而隐马尔科夫模型就是解决这类问题时最常用的一种数学模型,简单来说,HMM是用单一离散随机变量描述过程状态的时序概率模型。HMM的基本模型可用下图来表示,其中涂有阴影的圆圈 yt2,yt1,ytyt−2,yt−1,yt 相当于是观测变量,空白圆圈 xt2,xt1,xtxt−2,xt−1,xt 相当于是隐变量。回到刚刚提及的高血压治疗的例子,你所观测到的状态(例如血压计的读数)相当于是对其真实状态(即病人的身体情况)的一种估计(因为观测的过程中必然存在噪声),用数学语言来表述就是P(yt|xt)P(yt|xt),这就是模型中的测量模型或测量概率(Measurement Probability)。另外一方面,当前的(真实)状态(即病人的实际身体状况)应该与其上一个观测状态相关,即存在这样的一个分布P(xt|xt1)P(xt|xt−1),这就是模型中的转移模型或转移概率(Transition Probability)。当然,HMM中隐变量必须都是离散的,观测变量并无特殊要求。 


深入浅出的马尔科夫入门文章 

注意这里我们其实使用了马尔科夫假设:即当前状态只依赖于过去的有限的已出现的历史。我们前面所采用的描述是:“已知现在的  tt  状态  XtXt , 那么将来状态  Xu(u>t)Xu(u>t)  取值(或取某些状态)的概率与过去的状态  Xs(s>t)Xs(s>t)  取值无关”。两种表述略有差异,但显然本质上是一致的。而且更准确的说,在HMM中,我们认为当前状态紧跟上一个时刻的状态有关,即前面所谓的“有限的已出现的历史”就是指上一个状态。用数学语言来表述就是 
P(xt|xt1,xt2,,x1)=P(xt|xt1)P(xt|xt−1,xt−2,⋯,x1)=P(xt|xt−1)

如果读者已经阅读过本文最开始列出的两篇文章,那么你应该已经意识到,这其实是PGM三种基本的结构单元中的最后一种情况,即条件独立型的结构单元。

再结合HMM的基本图模型(即上图),我们就会得出HMM模型中的两个重要概率的表达式:

  • 离散的转移概率(Transition Probability)“ 
    P(xt|xt1,xt2,,x1,y1,,yt1)=P(xt|xt1)P(xt|xt−1,xt−2,⋯,x1,y1,⋯,yt−1)=P(xt|xt−1)
  • 连续(或离散)的测量概率(Measurement Probability) 
    P(yt|xt,xt1,,x1,y1,,yt1)=P(yt|xt)P(yt|xt,xt−1,⋯,x1,y1,⋯,yt−1)=P(yt|xt)

一个简单的例子

现在我们已经了解了HMM的基本结构,接下来不妨通过一个实际的例子来考察一下,HMM的转移概率和测量概率到底是什么样的。下图给出了一个用于表示股市动态的概率图模型,更具体的说这是一个马尔科夫模型(Markov Model),因为该图并未涉及隐状态信息。根据之前(以贝叶斯网络为例的)PGM学习,读者应该可以看懂改图所要展示的信息。例如,标记为 1 的圆圈表示的是当前股市正处于牛市,由此出发引出一条指向自身,权值为0.6的箭头,这表示股市(下一时刻)继续为牛市的概率为0.6;由标记为 1 的圆圈引出的一条指向标记为 2 的圆圈的箭头,其权值为0.2,这表示股市(下一时刻)转入熊市的概率是0.2;最后,由标记为 1 的圆圈引出的一条指向标记为 3 的圆圈的箭头,其权值为0.2,这表示股市(下一时刻)保持不变的概率是0.2。显然,从同一状态引出的所有概率之和必须等于1。 


深入浅出的马尔科夫入门文章 

所以马尔科夫模型中的各个箭头代表的就是状态之间相互转化的概率。而且,通常我们会把马尔科夫模型中所有的转移概率写成一个矩阵的形式,例如针对本题而已,则有 
A=0.60.50.40.20.30.10.20.20.5A=[0.60.20.20.50.30.20.40.10.5]

如果马尔科夫模型中有 kk 个状态,那么对应的状态转移矩阵的大小就是 k×kk×k。其中第 mm 行,第 nn列所给出的值就是 P(xt=n|xt1=m)P(xt=n|xt−1=m)。也就给定状态 mm 的情况下,下一时刻转换到状态 nn 的概率。例如,第2行,第1列的值为 0.5,它的意思就是如果当前状态是标记为 2 的圆圈(熊市),那么下一时刻转向标记为 1 的圆圈(牛市)的概率是 0.5。而且,矩阵中,每一行的所有值之和必须等于1。

至此,我们已经知道可以用一个矩阵 AA 来代表 P(xt|xt1)P(xt|xt−1),那又该如何表示 P(yt|xt)P(yt|xt) 呢?当然,由于P(yt|xt)P(yt|xt) 可能是连续的,也可能是离散的,所以不能一言以蔽之。为了简化,我们当前先仅考虑离散的情况。当引入 P(yt|xt)P(yt|xt) 之后,我们才真正得到了一个隐马尔科夫模型,上面我们所说的标记为1、2 和 3 的(分别代表牛市、熊市和平稳)三个状态现在就变成了隐状态。当隐状态给定后,股市的表现可能有 l=3l=3 种情况,即当前股市只能处于“上涨”,“下跌”,或者“不变”三种状态之一。完整的HMM如下图所示。 


深入浅出的马尔科夫入门文章 

易知,(当测量概率是离散的情况下),HMM中的 P(yt|xt)P(yt|xt)  也可以用一个矩阵  BB  来表示。并且 BB 的大小是  k×lk×l 。对于当前这个例子而言,我们有 
B=0.70.10.30.10.60.30.20.30.4B=[0.70.10.20.10.60.30.30.30.4]

其中第 1 行,第 1 列,就表示  P(yt=1 | xt=1)P(yt=1 | xt=1)  ,也就是我们已知当前正处于牛市,股票上升的概率为0.7; 同理,第 1 行,第 2 列,就表示  P(yt=2 | xt=1)P(yt=2 | xt=1)  ,也就是我们已知当前正处于牛市,股票下跌的概率为0.1。

再次强调,只有当测量概率是离散的情况下,我们才能用一个矩阵来表示P(yt|xt)P(yt|xt) 。对于连续的情况,比如我们认为观测变量的取值符合高斯分布,也即是概率 P(yt|xt)P(yt|xt) 的分布符合高斯分布,那么应该有多少个高斯分布呢?显然有多少个隐状态(例如 kk 个),就应该有多少个高斯分布。那么矩阵 BB 就应该变成了由 kk 个高斯分布的参数,即 σ1,μ1,σ2,μ2,,σk,μkσ1,μ1,σ2,μ2,⋯,σk,μk,组成的一个集合。

之前的文章里我们谈过,人类学习的任务是从资料中获得知识,而机器学习的任务是让计算机从数据中获得模型。那模型又是什么呢?回想一下机器学习中比较基础的线性回归模型 y=iwixiy=∑iwixi,我们最终是希望计算机能够从已有的数据中或者一组最合适的参数 wiwi,因为一旦 wiwi 被确定,那么线性回归的模型也就确定了。同样,面对HMM,我们最终的目的也是要获得能够用来确定(数学)模型的各个参数。通过前面的讨论,我们也知道了定义一个HMM,应该包括矩阵 AA 和 矩阵 BB (如果测量概率是离散情况的话),那只有这些参数能够足以定义个HMM呢?

要回答这个问题,我们不妨来思考一下这样一个问题。假如我们现在已经得到了 矩阵 AA 和 矩阵 BB ,那么我们能否求出下面这个序列的概率 P(y1=,y2=,y3=)P(y1=上涨,y2=上涨,y3=下跌)。注意对于这样一个序列,我们并不知道隐状态的情况,所以采用贝叶斯网络中曾经用过的方法,设法把隐状态加进去,在通过积分的方法将未知的隐状态积分积掉。于是有 

P(y1,y2,y3)=x1kx2kx3kP(y1,y2,y3,x1,x2,x3)=x1kx2kx3kP(y3|y1,y2,x1,x2,x3)×P(y1,y2,x1,x2,x3)P(y1,y2,y3)=∑x1k∑x2k∑x3kP(y1,y2,y3,x1,x2,x3)=∑x1k∑x2k∑x3kP(y3|y1,y2,x1,x2,x3)×P(y1,y2,x1,x2,x3)

这里就可以运用马尔科夫假设进行简化,所以上式就变成了 
=x1kx2kx3kP(y3|x3)×P(y1,y2,x1,x2,x3)=x1kx2kx3kP(y3|x3)×P(x3|y1,y2,x1,x2)×P(y1,y2,x1,x2)=x1kx2kx3kP(y3|x3)×P(x3|x2)×P(y1,y2,x1,x2)=x1kx2kx3kP(y3|x3)×P(x3|x2)×P(y2|x2)×P(x2|x1)×P(y1|x1)×P(x1)=∑x1k∑x2k∑x3kP(y3|x3)×P(y1,y2,x1,x2,x3)=∑x1k∑x2k∑x3kP(y3|x3)×P(x3|y1,y2,x1,x2)×P(y1,y2,x1,x2)=∑x1k∑x2k∑x3kP(y3|x3)×P(x3|x2)×P(y1,y2,x1,x2)=∑x1k∑x2k∑x3kP(y3|x3)×P(x3|x2)×P(y2|x2)×P(x2|x1)×P(y1|x1)×P(x1)

到这里,我们就很容易发现,上面这个式子中,还有一个未知量,那就是PGM的初始状态,我们将其记为  ππ  。

于是我们知道,要确定一个HMM模型,我们需要知道三个参数,我们将其记作 λ(A, B, π)λ(A, B, π)

在后续的文章中我们会进一步探讨,如何让机器能够自己学到上面这些参数,以及HMM的具体应用