美文网首页
隐马尔可夫模型(HMM)—— 一只隐藏的🐎(一)

隐马尔可夫模型(HMM)—— 一只隐藏的🐎(一)

作者: Peter_iris | 来源:发表于2021-03-17 20:13 被阅读0次

以前提到隐马模型,也就仅仅知道这个东西是基于条件概率计算的。由于自己比较佛系,没有深入其中了解其中原理。不过有句话说的很对——“苍天放过谁”,作为一个搞生信的怎么也绕不过大名鼎鼎的 Hidden Markov Model (HMM),今天就系统的总结一下这只隐藏的🐎是如何躲猫猫的~
在讲隐马模型之前先了解一下

条件概率模型
条件概率是指事件A在事件B发生的条件下发生的概率。条件概率表示为:P(A|B),读作AB发生的条件下发生的概率。若只有两个事件A,B,并且相互独立,那么,P(A|B) = \frac {P(AB)} {P(B)}
做个变形就可以得到概率的乘法公式
当P(A)>0时,P(AB)=P(A) X P(B|A) (1)
当P(B)>0时,P(AB)=P(B) X P(A|B) (2)
该变形可以理解为A,B事件同时发生的概率,(1)是A发生后,B也发生的概率;(2)是B发生后,A也发生的概率,那么当多个事件都同时发生的概率?
我们可以用以下去推论:
P(A_1A_2A_3....A_n) = P(A_1)P(A_2|A_1)P(A_3|A_1A_2)......P(A_n|A_1A_2A_3..A_{n-1})
可以这样理解如果要使n件事件同时发生,不妨先发生 A_1,接着再发生A_2 ,等等的下去,后面的概率这时候都是条件概率了哦~

全概率模型
通过上面的推导,我们发现

image.png
可以推出全概率公式:
image.png
比如一件事情的结果就只有三种 A_1, A_2, A_3 ,也知道它们发生的概率,但是呢,这时候偏偏有一个事件B也发生了,我们的目的是找出B发生的概率,于是呢,我们让B与 A_1, A_2, A_3 发生联系,从而进行试验,可以得到各自的条件概率P(B|A_1), P(B|A_2), P(B|A_3)
,那么这就足够了,我们就可以得到事件B发生的概率
P(B)=P(A_1)P(B|A_1) + P(A_2)P(B|A_2) + P(A_3)P(B|A_3)

贝叶斯概率模型
贝叶斯,就是知道结果找原因

image.png
通常把 P(A_1), P(A_2), P(A_n) 叫做先验概率,就是做试验前的概率,就是经验了, 而把P(A_k|B) (k=1...n)叫做后验概率,在统计决策中十分重要,由此得到的决策叫做贝叶斯决策。也就是说我们在对经验不断地更新和修正,当然是利用生活实践,即所谓试验。

两道习题遛一遛:

1.一台设备由10个元件组成,在保修期间,每个元件的失效率为0.05,各元件是否失效是相互独立的,若有一个元件失效,设备不能使用的概率为0.5,若有两个元件失效,设备不能使用的概率是0.8,若有三个或者三个以上的元件失效,设备一定不能使用。
1)求设备在保修期内不能使用的概率;
2)已知设备不能使用,求是一个元件失效的概率。


image.png

2.设某种产品50件为一批,如果每批产品中有0,1,2,3,4件次品的概率分别为0.35,0.25,0.2,0.18,0.02,今从某批产品中抽取10件,查出一件次品,求该批产品中次品不超过2件的概率。


image.png
3.某厂每天早上需调整机器,由经验可知,机器调整正确的概率为0.8.调整不正确的概率为0.2;又已知在机器调整正确时产品合格率为0.9,调整不正确时合格率为0.5.现在从当天生产的产品中任取3件,结果是:(合格,合格,不合格),求该天机器调整正确的概率。若任取3件中有一件不合格,其他条件不变,该天机器调整正确的概率是多少?
image.png

马尔可夫模型
隐马模型是来源于马尔可夫模型,所以马尔可夫模型是跑不掉得,例如:已知N个有序随机变量,根据贝叶斯条件概率定理,他们的联合分布可以写成条件分布的连乘积:(1)

image.png
马尔科夫模型是指,假设序列中的任何一个随机变量在给定它的前一个变量时的分布与更早的变量无关,即:(2)
image.png
在此假设下,N个随机变量的联合分布可以简化为:(3)
image.png
该分布通过概率图表达就清楚多了,如下图为一个一阶马尔科夫链,根据概率图模型中的d分离概念,可以很容易确认马尔科夫性。
image.png
一阶马尔科夫性只能表达当前变量与前一个变量的关系,然而很多实际问题往往没有这么简单。为了表达当前变量与更早的变量之间的关系,可以引入高阶马尔科夫性。概括来说,M阶马尔科夫性是指当前随机变量在给定其之前的M个变量时与更早的变量无关,用公式表达就是:(4)
image.png
高阶马尔科夫性虽然达到了关联当前变量与更早的变量的目的,但有一个问题就是指数爆炸问题,即参数数量随着M的增大呈指数增长。假设每个随机变量有K 种状态,对于一阶马尔科夫模型而言,要表达条件分布P(X_n) = P (X_{n-1}), 因为对于X_{n-1}的每个取值(K个取值)都需要K个x_n的取值。根据条件概率的定义,这 K 个值的和为1,因此实际有 K-1 个自由参数,因此共需要 K(K-1) 个参数。
同理,对于M 阶马尔科夫模型而言,要表达条件分布 p(x_n|x_{n-1}......x_{n-M})则需要K^M(K-1)个参数。对于 x_{n-1}, .....x_{n-M}的每一个取值的组合, (共K^M 个),都需要 K-1个x_n的取值。

那么,有没有一种方法即能将当前变量与更早的变量关联起来,又不需要那么多参数呢?当然,这里有一种非常强大的手段,即引入隐变量,这是机器学习中用简单的基础部件表达丰富的模型的有力手段。这里如果假设隐变量构成一阶马尔科夫模型,而每个观测变量与一个隐变量关联,则可以得到一类模型的基础结构,即状态空间模型。如下图,Z_n 为隐藏变量,x{_n}为观测变量。

image.png
该类模型的关键是隐藏变量之间满足如下条件独立性,即在给定z_n 时,z_{n-1} 和 z_{n+1} 条件独立。
image.png
这类模型的联合分布可以表示为:
image.png
可见,看似很复杂的模型被分解成了简单的p(z_1), p(z_n|z_{n-1}), p(x_n|z_n) 三部分,这三者分别叫做初始概率模型、转移概率模型和发射概率模型,对状态空间模型建模实际就是对这三者进行建模。而且此时观测变量之间不再具有任何马尔科夫性,因为此时 x_n 的分布与其之前所有的观测变量都相关,无法从p(x_n|x_{n-1}..,..,.x_1) 的条件变量中拿掉任何一个变量,这样就将一个变量与其之前所有的变量关联起来了。这就是隐变量的能力。

这个时候就产生了一个隐藏变量,就是那只隐藏的🐎

当 z{_n} 为离散变量时,该状态空间模型即为隐马尔科夫模型。现在可以解释一下“隐马尔科夫”这个名字的含义了。“马尔科夫”自然是表示随机变量之间构成一个马尔科夫链了。而“隐”是指我们要推测的变量是未知的、隐藏的。正是这些隐藏的变量构成了马尔科夫链,所以就叫“隐马尔科夫”了。

隐马模型
隐马模型是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列(state sequence),再由各个状态生成一个观测而产生观测随机序列(observation sequence)的过程,序列的每一个位置又可以看作是一个时刻。
组成:
初始概率分布
状态转移概率分布
观测概率分布

下一节将着重介绍HMM的原理及应用

https://zhuanlan.zhihu.com/p/134036707
https://zhuanlan.zhihu.com/p/27907806

相关文章

网友评论

      本文标题:隐马尔可夫模型(HMM)—— 一只隐藏的🐎(一)

      本文链接:https://www.haomeiwen.com/subject/wycbqltx.html