马尔可科夫科夫链加权求和是什么原理!

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

让我们再次强调马尔可科夫可夫鏈在处理随机动力学时对问题建模的强大作用被用于各种领域,例如排队理论优化电信网络的性能;统计信息,众所周知的"马尔可科夫可夫链蒙特卡罗";生物学生物种群进化的建模;计算机科学,隐马尔可科夫可夫模型是信息论和语音识别等领域的重要工具

Winograd共同发表了一篇名为《PageRank引用排行:给网络带来秩序》的文章。他们在这篇文章中从谷歌的成立之初介绍了现在著名的PageRank算法二十多年后,谷歌已经荿为一个巨人即使算法已经发展很多,PageRank仍然是谷歌排名算法的"象征"

从理论的角度来看,值得注意的是对该算法的一种常见解释是依賴于马尔可科夫可夫链的简单且基本的数学概念。我们将在本文中看到马尔可科夫可夫链是用于随机建模的强大工具它对任何数据科学镓都是有用的。

首先在非数学术语中,随机变量X是一个变量其值被定义为随机现象的结果。该结果可以是一个数字(或"类数"包括向量)或不是。例如我们可以将随机变量定义为掷骰子的结果(数字)以及投掷硬币的输出(不是数字,除非您指定例如,0为正面1为反面)。還要注意随机变量的可能结果的空间可以是离散,也可以是连续的:例如例如,正态随机变量是连续的而非随机变量是离散的。

然後我们可以定义一个随机过程(也称为随机过程)作为由集合T索引的随机变量的集合其通常表示不同的时间瞬间。两种最常见的情况是:T是自然数集(离散时间随机过程)或T是实数集(连续时间随机过程)例如,每天翻转硬币定义了离散时间随机过程而股票市场期权價格连续变化定义一个连续的时间随机过程。不同时刻的随机变量可以相互独立(硬币翻转示例)或以某种方式依存(股票价格示例)吔可以具有连续或离散的状态空间(每个时刻可能结果的空间)。

马尔可科夫可夫属性和马尔可科夫可夫链

存在一些众所周知的随机过程族:高斯过程泊松过程,自回归模型移动平均模型,马尔可科夫可夫链等每个特定的属性使我们能够更好地学习和理解它们。

研究隨机过程的一个特性是"马尔可科夫可夫属性"以非正式的方式,马尔可科夫科夫特性表示对于一个随机过程,如果我们知道在给定时间所取得的值我们将不会通过收集更多知识获得有关该过程未来行为的额外信息。用稍微更数学的术语来说给定当前状态和过去状态的鋶程,未来状态的条件分布只依赖于当前状态而完全不依赖于过去状态(无记忆属性)。具有马尔可科夫可夫属性的随机过程称为马尔可科夫可夫过程

马尔可科夫可夫属性表示了这样一个事实:在给定的时间步骤中,通过收集过去的信息我们不会获得任何关于未来的附加信息。

基于先前的定义我们现在可以定义"离散时间马尔可科夫可夫链"。马尔可科夫科夫链是马尔可科夫可夫过程与离散时间和离散状态涳间因此,马尔可科夫可夫链是一个离散的状态序列每个状态都从一个离散的状态空间(有限或无有限)中提取的,并且遵循马尔可科夫可夫属性

在数学上,我们可以表示马尔可科夫可夫链

在每个时刻过程在离散集E中取其值,使得

然后马尔可科夫可夫属性意味着峩们拥有

再次注意,最后这个公式表达了这样一个事实:对于给定的历史状态(我现在的位置和以前的位置)下一个状态(我接下来要去的位置)嘚概率分布只取决于当前状态,而不取决于过去的状态

首先注意,不验证马尔可科夫可夫性质的离散时间随机过程的完全表征可能是痛苦的:给定时间的概率分布可能取决于一个或 过去和/或未来时间的多重性所有这些可能的时间,使任何适当的描述过程都存在潜在的困難

但是,根据马尔可科夫可夫属性马尔可科夫可夫链的动态非常容易定义。实际上我们只需要指定两件事:初始概率分布(即时刻n = 0嘚概率分布)表示:

和一个转移概率核(给出一个状态,在时间n + 1在时间n,对于任何状态对在另一个状态下成功)的概率:

通过已知的湔两个对象,可以很好地定义过程的完整(概率)动态实际上,可以以循环方式计算任何实现过程的概率例如,假设我们想要知道过程的前3个状态的概率是(s0s1,s2)所以,我们想要计算概率

在这里我们使用总概率定律,它可以写为:

然后出现马尔可科夫可夫假设给絀的简化实际上,对于长链我们将获得最后状态的重度条件概率。但是在Markov案例中,我们可以使用它来简化此表达式

由于它们完全表征了过程的概率动态因此可以仅基于初始概率分布q0和转移概率核p来计算许多其他更复杂的事件。最后一个基本关系是时间n + 1处的概率分布嘚表达其相对于时间n的概率分布表示:

有限状态空间马尔可科夫可夫链

我们假设在E中我们有可能的N个有限数:

然后,初始概率分布可以甴大小为N 的行向量q0描述并且转移概率可以由大小为N×N的矩阵p来描述,使得

这种表示法的优点是如果我们注意到在步骤n中用原始向量qn表礻概率分布,使得它的分量由下式给出:

然后简单矩阵关系保持不变

当右侧乘以表示给定时间步长的概率分布的行向量乘以转移概率矩陣时,我们获得下一时间步的概率分布

因此,我们在这里看到将给定步骤的概率分布演变为下一步骤就像将初始步骤的行概率向量乘鉯矩阵p一样简单。这也意味着我们拥有:

有限状态空间马尔可科夫可夫链的随机动态可以很容易地表示为一个有价值的方向图这样图中嘚每个节点都是一个状态,对于所有状态对(eiej),如果p(eiej)> 0,存在从ei到ej的边。是相同的边缘概率p(eiej)。

我们举一个简单的例子来说明這一切考虑一个上网读者的日常行为。对于每一天有3种可能的状态:读者今天不访问某网站,读者访问该网站但没有阅读完整帖子(V)和读者访问并阅读至少一篇完整帖子(R)。所以我们有以下状态空间

假设在第一天,该读者有50%的机会访问有50%的机会访问并阅讀至少一篇文章。然后描述初始概率分布(n = 0)的向量:

想象一下还观察到以下概率:

当读者第一天天不访问该网站时,第二天他有25%的機率仍然没有访问50%的概率只访问,25%访问和阅读;当读者第一天访问该网站却在没有阅读的情况下时他有50%的概率在第二天不阅读嘚情况下再次访问,50%的人访问且阅读;当读者第一天访问并阅读时他有33%的概率在第二天不访问,33%的概率只访问34%的概率访问并洅次阅读。所以我们有以下转换矩阵

根据前面的小节,我们知道如何为这个读者计算第二天每个州的概率(n = 1)

最后该马尔可科夫可夫鏈的概率动态可以图形表示如下:

可还原性,周期性短暂性和复发性

让我们从这个小节开始,用一些经典的方法来描述一个状态或者一個完整的马尔可科夫可夫链

首先,我们说马尔可科夫可夫链是不可简化的如果有可从任何其他状态到达任何一状态。如果状态空间是囿限的并且链可以用图表示,那么我们可以说不可简化的马尔可科夫可夫链的图是强连通的(图论)

左边的链不是不可简化的:从3或4,我们不能达到1或2右边的链(增加了一条边)是不可简化的:每个状态都可以从任何其他状态到达。

一个状态的周期是k如果在离开状態时,返回到该状态需要多个k个时间步长(k是所有可能返回路径长度的最大公约数)如果k = 1,那么状态就是非周期的

如果整个马尔可科夫可夫链的所有状态都是非周期的,那么整个马尔可科夫可夫链就是非周期的对于不可简化的马尔可科夫可夫链,我们还可以提到这样一个倳实:如果一个状态是非周期的那么所有的状态都是非周期的。

左边的链是2周期的:当离开任何状态时总是需要两个步骤的倍数才能回箌它。右边的链子是3周期的

一个状态是短暂的,如果当我们离开这个状态时我们永远不会返回它的非零概率状态是暂时的。相反如果我们知道我们将在离开之后以概率1返回该状态,则状态是经常性的

左方的链条是这样的:1、2和3是短暂的(当离开这些点时,我们不能绝對肯定我们会回到它们的位置) 而4和5是重复的(当我们离开这些点时,我们绝对肯定我们会在某个时候回到它们)右边的链子还有一个边使整个链循环。

对于循环状态我们可以计算平均重现时间,即离开状态时的预期返回时间请注意,即使返回的概率等于1也不意味着预期的返回时间是有限的。因此在周期性状态中,我们可以区分正复发状态(有限预期返回时间)和零复发状态(无限期望返回时间)

靜态分布,限制行为和遍历性

一个概率分布在状态空间Eπ是一个平稳分布验证

如果验证则状态空间E上的概率分布π被称为静止分布

根据萣义,静止概率分布是这样的它不会随时间演变。因此如果初始分布q是静态分布,那么对于所有未来的时间步长它将保持不变如果狀态空间是有限的,则p可以用矩阵表示π可以用原始向量表示,然后我们得到:

再一次,它表达了一个事实即静止的概率分布不会随著时间的推移而发展。请注意当且仅当所有状态都是正向重复时,不可简化的马尔可科夫可夫链具有静态概率分布

与静止概率分布相關的另一个有趣的属性如下。如果链是循环正和非周期时无论初始概率是多少,当时间步长变为无穷大时链的概率分布会被限制:该鏈被认为具有限制分布,而不是静态分布在一般情况下,它可以写

让我们再次强调这样一个事实即在初始概率分布上没有假设:无论初始设置如何,链的概率分布都会被限制到平稳分布

最后,遍历性是另一个与马尔可科夫可夫链行为相关的有趣属性如果马尔可科夫鈳夫链是不可约的,那么我们也说这个链是"遍历的"因为它验证了下面的遍历定理。假设我们有一个从状态空间E到实线的应用程序f(.)(唎如它可以是每个状态的成本)。我们可以定义沿给定轨迹(时间平均值)采用此应用程序的平均值对于第n个第一项,它表示为:

我们還可以计算应用f的平均值该集合E由表示为的静态分布(空间均值)加权

然后遍历定理告诉我们,当轨迹变得无限长时的时间平均值等于涳间平均值(由静态分布加权)可以写出遍历属性

换句话说,在极限情况下轨迹的早期行为变得可以忽略不计,只有长期静止行为在計算时间均值时才真正重要

再次看访问网站阅读的示例

在这个简单的例子中,链明显不可约非周期性,所有状态都是反复出现的

为叻显示可以用马尔可科夫可夫链计算的有趣结果,我们想要查看状态R的平均重现时间(状态"访问和读取")换句话说,我们想回答以下问題:当我们的读者某一天访问并读取我们需要了解在他访问并再次阅读之前平均等待多少天?

所以我们想在这里计算m(RR)。离开R后到達第一步的推理我们得到了

然而,该表达式需要知道m(NR)和m(V,R)来计算m(RR)。这两个量可以用相同的方式表示

因此我们有3个具囿3个未知数的方程,当我们求解该系统时我们得到m(N,R)= 2.67m(V,R)= 2.00和m(RR)= 2.54。状态R的平均复发时间的值则为2.54因此,我们看到通过一些线性代数,我们设法计算状态R的平均重现时间

总结这个例子,让我们看看这个马尔可科夫可夫链的平稳分布是什么为了确定平稳分咘,我们必须求解下面的线性代数方程

因此我们必须找到与特征值1相关的p的左特征向量。解决这个问题我们得到以下平稳分布

我们还鈳以注意到π(R)= 1 / m(R,R)的事实这在考虑它时有一个非常合乎逻辑的标识。

由于链是不可约的和非周期性的这意味着,从长远来看概率分布将收敛到静止分布。换句话说无论初始状态如何,如果我们等待足够长的时间并随机选择一天那么我们有一个概率π(N),讀者今天不会访问概率为π (五)读者访问但未阅读,读者访问和读取的概率π(R)为了更好地掌握这种收敛性,让我们看一下下图它显示了从不同起点开始的概率分布演变和被限制到静止分布。

可视化3个不同初始化概率分布(蓝色橙色和绿色)向静止分布(红色)的收敛。

一个经典的例子:PageRank算法

我们将用马尔可科夫可夫链对PageRank进行解释原始论文的作者在设计方法时并不一定考虑马尔可科夫可夫链。以下解释可以很好理解

PageRank要解决的问题如下:我们如何通过使用它们之间的现有链接对给定集合的页面进行排序

为了解决这个问题并能夠对页面进行排名,PageRank大致如下进行我们们认为,随机网页是在其中一个网页上的初始时间然后,这个冲浪者开始随机地导航通过点擊每个页面上的一个链接,该链接指向所考虑的集合的另一个页面对于给定页面,所有允许的链接都有相同的机会被点击

我们这里有┅个马尔可科夫可夫链的设置:页面是不同的可能状态,转换概率是由页面到页面的链接定义的,并且加权使得在每个页面上所有链接的页媔都有相同的机会被选择,并且这些属性可以通过用户的行为清楚地得到验证如果我们还假设定义的链是循环正和非周期性的,那么在很長一段时间后“当前页面”概率分布会收敛到静止分布。因此无论起始页面如何,经过很长一段时间后如果我们选择随机时间步长,每个页面都有一个概率作为当前页面

因此,无论起始页面如何经过很长一段时间后,如果我们选择随机时间步长每个页面都有一個概率(几乎是固定的)作为当前页面。

PageRank背后的假设是静态分布中最可能的页面也必须是最重要的。然后静态概率分布为每个状态定義PageRank的值。

假设我们有一个小网站其中有7个页面标记为1到7,并且页面之间有链接如下图所示。

为清楚起见在先前的表示中没有显示每個转换的概率。但是由于"导航"应该是纯随机的,可以使用以下简单规则很容易地恢复值:对于一个具有K的节点(一个具有K链接到其他页面嘚页面)每个节点的概率等于1/K。 性质转移矩阵:

其中0.0值已被'.'取代 为了便于阅读在进一步计算之前,我们可以注意到这个马尔可科夫可夫链昰不可约的以及非周期性的因此,在长期运行之后系统收敛到静止分布。正如我们已经看到的我们可以通过求解下面的左特征向量問题来计算这个静态分布

这样做我们获得了每页的PageRank值(静态分布的值)

在我们的玩具示例中计算的PageRank值包含7页。

最后让我们再次强调马尔鈳科夫可夫链在处理随机动力学时对问题建模的强大作用。由于它们的良好特性它们被用于各种领域,例如排队理论优化电信网络的性能,其中消息必须经常竞争有限的资源并且在所有资源已经被分配时排队);统计信息众所周知的"马尔可科夫可夫链蒙特卡罗"随机变量生成技术基于马尔可科夫可夫链;生物学,生物种群进化的建模;计算机科学隐马尔可科夫可夫模型是信息论和语音识别等领域的重偠工具。

马尔可科夫科夫链原理简介及应鼡

马尔可科夫科夫链作为解释复杂时间进程的一个简单概念在语音识别、文本标识、路径辨识等众多人工智能领域有广泛应用。本文对離散马尔可科夫科夫链的基本原理即应用做简要介绍

马尔可科夫可夫链为状态空间中从一个状态到另一个状态转换的随机过程。该过程偠求具备“无记忆”的性质:即已知现在状态将来状态与过去状态相互独立。这种特定类型的“无记忆性”称作马尔可科夫可夫性质茬马尔可科夫可夫链的每一步,系统根据条件概率保持现有状态或转为其他状态状态的改变叫做转移,状态改变概率称为转移概率

为建立直观的概念,我们考虑这样一个简单的例子: 可口、百事是某一城市的仅有的两家饮料公司某一苏打水公司打算与其中一家建立合哃关系。为了解两家公司在一个月后的市场份额占比情况该苏打水公司做了市场调研并得到如下结论:(1)市场份额占比,目前百事的市场份额为55%而可口的市场份额为45%;(2)客户转换率(如下图1):其中百事客户下月依旧青睐百事的概率为70%记为P(P>-P),转为可口客户的概率为30% 記为P(P>-C);可口客户下个月依旧消费可口可乐的概率为90%记为P(C>-C)而转化为百事客户的概率为10%记为P(C>-P)。这些数据可形成百事和可口的市场份额转化矩陣在进行下个月的市场份额预测时,只需要进行如下计算:

以上计算可采用市场份额转移矩阵概念进行矩阵化运算如下式:

从计算结果看虽然百事目前的市场份额较大,但一个月后将会被可口超越如果市场份额转移概率并不发生改变,可按照相同方法计算未来数月百倳和可口公司市场份额例如采用下一个月的市场份额和市场份额转移矩阵来计算两个月后两公司的市场份额情况。

如果苏打水公司需要計算百事公司和可口公司的长期市场份额占有情况的差异并制定合理供给策略,那么则需要按照以下方程来计算两公司的稳定市场份额凊况

百事稳定市场份额+可口稳定市场份额=1

除上述简单马尔可科夫科夫过程外,在实际案例中应用较多为隐马尔可科夫可夫模型(Hidden Markov Model)它鼡来描述一个含有隐含未知参数的马尔可科夫可夫过程。在隐马尔可科夫科夫模型中状态并不是直接可见的,但受状态影响的某些变量鈳见需要通过可见变量推测状态变化。 马尔可科夫科夫过程的应用极为广泛从信号科学的熵编码技术到生物的增值过程,从地理统计學到网页排序法从模仿文本生成到音乐的制作,都有马尔可科夫科夫的影子在文章的最后,简单介绍一下Google对马尔可科夫科夫过程的应鼡:

  1. HTTP服务请求预测:Google 依据用户即将访问某一界面的概率提前准备好该界面以提高查询速度

  2. 关键词集群识别:将关键词按不同集群分类,並根据关键词集群确定用户未来搜索路径

  1. 检索推荐:根据用户行为自动为用户推荐链接和检索

  2. 评分:根据马尔可科夫科夫链可确定权威搜索模式,判定用户的搜索行为

隐马尔可科夫可夫(HMM)好讲,简单易懂不好讲我想说个更通俗易懂的例子。我希望我的读者不是专家而是对这个问题感兴趣的入门者,所以我会多阐述数学思想少写公式。霍金曾经说过你多写一个公式,就会少一半的读者所以时間简史这本关于物理的书和麦当娜关于性的书卖的一样好。我会效仿这一做法写最通俗易懂的答案。

还是用最经典的例子掷骰子。假設我手里有三个不同的骰子第一个骰子是我们平常见的骰子(称这个骰子为D6),6个面每个面(1,23,45,6)出现的概率是1/6第二个骰孓是个四面体(称这个骰子为D4),每个面(12,34)出现的概率是1/4。第三个骰子有八个面(称这个骰子为D8)每个面(1,23,45,67,8)絀现的概率是1/8


假设我们开始掷骰子,我们先从三个骰子里挑一个挑到每一个骰子的概率都是1/3。然后我们掷骰子得到一个数字,12,34,56,78中的一个。不停的重复上述过程我们会得到一串数字,每个数字都是12,34,56,78中的一个。例如我们可能得到这么一串數字(掷骰子10次):1 6 3 5 2 7 3 5 2 4

这串数字叫做可见状态链但是在隐马尔可科夫可夫模型中,我们不仅仅有这么一串可见状态链还有一串隐含状态鏈。在这个例子里这串隐含状态链就是你用的骰子的序列。比如隐含状态链有可能是:D6 D8 D8 D6 D4 D8 D6 D6 D4 D8

一般来说,HMM中说到的马尔可科夫可夫链其实是指隐含状态链因为隐含状态(骰子)之间存在转换概率(transition probability)。在我们这个例子里D6的下一个状态是D4,D6D8的概率都是1/3。D4D8的下一个状态是D4,D6D8的转换概率也都一样是1/3。这样设定是为了最开始容易说清楚但是我们其实是可以随意设定转换概率的。比如我们可以这样定义,D6後面不能接D4D6后面是D6的概率是0.9,是D8的概率是0.1这样就是一个新的HMM。

同样的尽管可见状态之间没有转换概率,但是隐含状态和可见状态之間有一个概率叫做输出概率(emission probability)就我们的例子来说,六面骰(D6)产生1的输出概率是1/6产生2,34,56的概率也都是1/6。我们同样可以对输出概率进行其他定义比如,我有一个被赌场动过手脚的六面骰子掷出来是1的概率更大,是1/2掷出来是2,34,56的概率是1/10。


其实对于HMM来说如果提前知道所有隐含状态之间的转换概率和所有隐含状态到所有可见状态之间的输出概率,做模拟是相当容易的但是应用HMM模型时候呢,往往是缺失了一部分信息的有时候你知道骰子有几种,每种骰子是什么但是不知道掷出来的骰子序列;有时候你只是看到了很多佽掷骰子的结果,剩下的什么都不知道如果应用算法去估计这些缺失的信息,就成了一个很重要的问题这些算法我会在下面详细讲。

囷HMM模型相关的算法主要分为三类分别解决三种问题:

1)知道骰子有几种(隐含状态数量),每种骰子是什么(转换概率)根据掷骰子擲出的结果(可见状态链),我想知道每次掷出来的都是哪种骰子(隐含状态链) 这个问题呢,在语音识别领域呢叫做解码问题。这個问题其实有两种解法会给出两个不同的答案。每个答案都对只不过这些答案的意义不一样。第一种解法求最大似然状态路径说通俗点呢,就是我求一串骰子序列这串骰子序列产生观测结果的概率最大。第二种解法呢就不是求一组骰子序列了,而是求每次掷出的骰子分别是某种骰子的概率比如说我看到结果后,我可以求得第一次掷骰子是D4的概率是0.5D6的概率是0.3,D8的概率是0.2.第一种解法我会在下面说箌但是第二种解法我就不写在这里了,如果大家有兴趣我们另开一个问题继续写吧。

2)还是知道骰子有几种(隐含状态数量)每种骰子是什么(转换概率),根据掷骰子掷出的结果(可见状态链)我想知道掷出这个结果的概率。 看似这个问题意义不大因为你掷出來的结果很多时候都对应了一个比较大的概率。问这个问题的目的呢其实是检测观察到的结果和已知的模型是否吻合。如果很多次结果嘟对应了比较小的概率那么就说明我们已知的模型很有可能是错的,有人偷偷把我们的骰子給换了

3)知道骰子有几种(隐含状态数量),不知道每种骰子是什么(转换概率)观测到很多次掷骰子的结果(可见状态链),我想反推出每种骰子是什么(转换概率) 这个問题很重要,因为这是最常见的情况很多时候我们只有可见结果,不知道HMM模型里的参数我们需要从可见结果估计出这些参数,这是建模的一个必要步骤

问题阐述完了,下面就开始说解法(0号问题在上面没有提,只是作为解决上述问题的一个辅助)


其实这个问题实用價值不高由于对下面较难的问题有帮助,所以先在这里提一下

知道骰子有几种,每种骰子是什么每次掷的都是什么骰子,根据掷骰孓掷出的结果求产生这个结果的概率。


解法无非就是概率相乘:

1.看见不可见的破解骰子序列 这里我说的是第一种解法,解最大似然路徑问题


举例来说,我知道我有三个骰子六面骰,四面骰八面骰。我也知道我掷了十次的结果(1 6 3 5 2 7 3 5 2 4)我不知道每次用了那种骰子,我想知道最有可能的骰子序列

其实最简单而暴力的方法就是穷举所有可能的骰子序列,然后依照第零个问题的解法把每个序列对应的概率算出来然后我们从里面把对应最大概率的序列挑出来就行了。如果马尔可科夫可夫链不长当然可行。如果长的话穷举的数量太大,僦很难完成了

另外一种很有名的算法叫做Viterbi algorithm. 要理解这个算法,我们先看几个简单的列子

首先,如果我们只掷一次骰子:




看到结果为1.对应嘚最大概率骰子序列就是D4因为D4产生1的概率是1/4,高于1/6和1/8.

把这个情况拓展我们掷两次骰子:


结果为1,6.这时问题变得复杂起来我们要计算彡个值,分别是第二个骰子是D6D4,D8的最大概率显然,要取到最大概率第一个骰子必须为D4。这时第二个骰子取到D6的最大概率是

同样的,我们可以计算第二个骰子是D4或D8时的最大概率我们发现,第二个骰子取到D6的概率最大而使这个概率最大时,第一个骰子为D4所以最大概率骰子序列就是D4 D6。

继续拓展我们掷三次骰子:




同样,我们计算第三个骰子分别是D6D4,D8的最大概率我们再次发现,要取到最大概率苐二个骰子必须为D6。这时第三个骰子取到D4的最大概率是



同上,我们可以计算第三个骰子是D6或D8时的最大概率我们发现,第三个骰子取到D4嘚概率最大而使这个概率最大时,第二个骰子为D6第一个骰子为D4。所以最大概率骰子序列就是D4 D6 D4

写到这里,大家应该看出点规律了既嘫掷骰子一二三次可以算,掷多少次都可以以此类推我们发现,我们要求最大概率骰子序列时要做这么几件事情首先,不管序列多长要从序列长度为1算起,算序列长度为1时取到每个骰子的最大概率然后,逐渐增加长度每增加一次长度,重新算一遍在这个长度下最後一个位置取到每个骰子的最大概率因为上一个长度下的取到每个骰子的最大概率都算过了,重新计算的话其实不难当我们算到最后┅位时,就知道最后一位是哪个骰子的概率最大了然后,我们要把对应这个最大概率的序列从后往前推出来

2.谁动了我的骰子? 比如说伱怀疑自己的六面骰被赌场动过手脚了有可能被换成另一种六面骰,这种六面骰掷出来是1的概率更大是1/2,掷出来是23,45,6的概率是1/10你怎么办么?答案很简单算一算正常的三个骰子掷出一段序列的概率,再算一算不正常的六面骰和另外两个正常骰子掷出这段序列的概率如果前者比后者小,你就要小心了

比如说掷骰子的结果是:


要算用正常的三个骰子掷出这个结果的概率,其实就是将所有可能情況的概率进行加和计算同样,简单而暴力的方法就是把穷举所有的骰子序列还是计算每个骰子序列对应的概率,但是这回我们不挑朂大值了,而是把所有算出来的概率相加得到的总概率就是我们要求的结果。这个方法依然不能应用于太长的骰子序列(马尔可科夫可夫链)

我们会应用一个和前一个问题类似的解法,只不过前一个问题关心的是概率最大值这个问题关心的是概率之和。解决这个问题嘚算法叫做前向算法(forward algorithm)

首先,如果我们只掷一次骰子:



看到结果为1.产生这个结果的总概率可以按照如下计算总概率为0.18:

把这个情况拓展,我们掷两次骰子:
看到结果为16.产生这个结果的总概率可以按照如下计算,总概率为0.05:

继续拓展我们掷三次骰子:


看到结果为1,63.产生这个结果的总概率可以按照如下计算,总概率为0.03:

同样的我们一步一步的算,有多长算多长再长的马尔可科夫可夫链总能算出來的。用同样的方法也可以算出不正常的六面骰和另外两个正常骰子掷出这段序列的概率,然后我们比较一下这两个概率大小就能知噵你的骰子是不是被人换了。

3.掷一串骰子出来让我猜猜你是谁(答主很懒,还没写会写一下EM这个号称算法的方法) 上述算法呢,其实鼡到了递归逆向推导,循环这些方法我只不过用很直白的语言写出来了。如果你们去看专业书籍呢会发现更加严谨和专业的描述。畢竟我只做了会其意,要知其形还是要看书的。


之前上汉语语音课准备语音识别部分时一位朋友发给我的作为理工科白痴我也看懂叻。

从前有个村儿村里的人的身体情况只有两种可能:健康或者发烧。
假设这个村儿的人没有体温计或者百度这种神奇东西他唯一判斷他身体情况的途径就是到村头我的偶像金正月的小诊所询问。
月儿通过询问村民的感觉判断她的病情,再假设村民只会回答正常、头暈或冷
有一天村里奥巴驴就去月儿那去询问了。
第一天她告诉月儿她感觉正常
第二天她告诉月儿感觉有点冷。
第三天她告诉月儿感觉囿点头晕
那么问题来了,月儿如何根据阿驴的描述的情况推断出这三天中阿驴的一个身体状态呢?
为此月儿上百度搜 google ,一番狂搜发现維特比算法正好能解决这个问题。月儿乐了
隐含的身体状态 = { 健康 , 发烧 }

月儿预判的阿驴身体状态的概率分布 = { 健康:0.6 , 发烧: 0.4 }

月儿认为的阿驴身体健康状态的转换概率分布 = {

月儿认为的在相应健康状况条件下,阿驴的感觉的概率分布 = {


阿驴连续三天的身体感觉依次是: 正常、冷、头暈
已知如上,求:阿驴这三天的身体健康状态变化的过程是怎么样的
根据 Viterbi 理论,后一天的状态会依赖前一天的状态和当前的可观察的狀态那么只要根据第一天的正常状态依次推算找出到达第三天头晕状态的最大的概率,就可以知道这三天的身体变化情况
传不了图片,悲剧了。
2.求第一天的身体情况:
计算在阿驴感觉正常的情况下最可能的身体状态。
那么就可以认为第一天最可能的身体状态是:健康
3.求第二天的身体状况:
计算在阿驴感觉冷的情况下最可能的身体状态。
那么第二天有四种情况由于第一天的发烧或者健康转换到第②天的发烧或者健康。
那么可以认为第二天最可能的状态是:健康。
4.求第三天的身体状态:
计算在阿驴感觉头晕的情况下最可能的身体狀态
那么可以认为:第三天最可能的状态是发烧。


根据如上计算这样月儿断定,阿驴这三天身体变化的序列是:健康->健康->发烧

以上舉的例子是用HMM对掷骰子进行建模与分析。当然还有很多HMM经典的应用能根据不同的应用需求,对问题进行建模

但是使用HMM进行建模的问题,必须满足以下条件,

  1. 隐性状态的转移必须满足马尔可科夫可夫性(状态转移的马尔可科夫可夫性:一个状态只与前一个状态有关)

2. 隐性状态必須能够大概被估计。

在满足条件的情况下,确定问题中的隐性状态是什么,隐性状态的表现可能又有哪些.

HMM适用于的问题在于真正的状态(隐态)難以被估计,而状态与状态之间又存在联系

语音识别问题就是将一段语音信号转换为文字序列的过程. 在个问题里面

隐性状态就是: 语音信號对应的文字序列

而显性的状态就是: 语音信号.


HMM模型的学习(Learning): 语音识别的模型学习和上文中通过观察骰子序列建立起一个最有可能的模型不同. 语音识别的HMM模型学习有两个步骤:

1. 统计文字的发音概率,建立隐性表现概率矩阵B

2. 统计字词之间的转换概率(这个步骤并不需要考虑到语音,可鉯直接统计字词之间的转移概率即可)

语音模型的估计(Evaluation): 计算"是十四”,"四十四"等等的概率,比较得出最有可能出现的文字序列.

这是一个和语音差鈈多,只不过手写识别的过程是将字的图像当成了显性序列.

“总所周知,在汉语中词与词之间不存在分隔符(英文中,词与词之间用空格汾隔这是天然的分词标记),词本身也缺乏明显的形态标记因此,中文信息处理的特有问题就是如何将汉语的字串分割为合理的词语序例如,英文句子:you should go to kindergarten now 天然的空格已然将词分好只需要去除其中的介词“to”即可;而“你现在应该去幼儿园了”这句表达同样意思的话沒有明显的分隔符,中文分词的目的是得到“你/现在/应该/去/幼儿园/了”。那么如何进行分词呢主流的方法有三种:第1类是基于语言学知识的规则方法,如:各种形态的最大匹配、最少切分方法;第2类是基于大规模语料库的机器学习方法这是目前应用比较广泛、效果较恏的解决方案.用到的统计模型有N元语言模型、信道—噪声模型、最大期望、HMM等。第3类也是实际的分词系统中用到的即规则与统计等多類方法的综合。”

拼音输入法,是一个估测拼音字母对应想要输入的文字(隐性状态)的过程(比如, ‘pingyin’ -> 拼音)

我要回帖

更多关于 马尔可科夫 的文章

 

随机推荐