精华内容
下载资源
问答
  • 马尔科夫

    2020-04-27 20:46:52
    查看Oldpan博客程序员眸中的,Fantasy Life ... 马尔科夫随机场(MRF)在图像处理中的应用-图像分割、纹理迁移 Oldpan 2018年6月20日 14条评论 ...
    查看
    Oldpan博客
    程序员眸中的,Fantasy Life
    点击小眼睛开启蜘蛛网特效

    马尔科夫随机场(MRF)在图像处理中的应用-图像分割、纹理迁移

    《马尔科夫随机场(MRF)在图像处理中的应用-图像分割、纹理迁移》

    深度学习中,许多的实现并不单单是神经网络的搭建和训练,也包括使用一系列传统的方法与之结合的方式去增强深度学习的实现效果,在语义分割(semantic segmentation)和风格迁移(style transfer)中都有使用过MRF-Markov Random Field(马尔科夫随机场)这个概念,并且达到了不错的效果。
    马尔科夫网络这个传统方法的概率模型思想值得我们去借鉴,本文主要对马尔科夫随机场进行讲解,并且对使用MRF这个方法的深度学习项目进行分析和描述。
    《马尔科夫随机场(MRF)在图像处理中的应用-图像分割、纹理迁移》

    使用MRF的Image Synthesis得到的风格相比style-transfer更加抽象

    《马尔科夫随机场(MRF)在图像处理中的应用-图像分割、纹理迁移》

    Deeplab-v2中采用全连接条件随机场对结果进行优化

    前言

    深度学习中,许多的实现并不单单是神经网络的搭建和训练,也包括使用一系列传统的方法与之结合的方式去增强深度学习的实现效果,在语义分割(semantic segmentation)和风格迁移(style transfer)中都有使用过MRF-Markov Random Field(马尔科夫随机场)这个概念,并且达到了不错的效果。

    马尔科夫网络这个传统方法的概率模型思想值得我们去借鉴,本文主要对马尔科夫随机场进行讲解,并且对使用MRF这个方法的深度学习项目进行分析和描述。

    概念铺垫

    首先我们简单说一下后面介绍需要的一些基础知识,这些知识其实都是我们大学课程中学习过的课程。在《概率论》、《算法导论》以及《统计学方法》中都有详细介绍。这里只是进行简单的介绍,虽然是基础,但是对马尔科夫随机场的理解还是很有帮助的。

    条件概率和贝叶斯定理

    条件概率,我们使用这个概念的时候往往是用来解决逆问题,也就是已知结果反推原因的一个过程。而经典的贝叶斯定理公式:

    condition_probability

    我们常常利用这个公式去推导我们无法直接观测的问题,首先明白一个概念:上面的式子中,AAA是结果,BBB是原因。而上面这个式子我们要做的任务就是:

    • 已知P(A∣B)P(A|B)P(AB)P(B)P(B)P(B)(P(A)P(A)P(A)可以通过P(A)=∑nP(A∣B)×P(Bi)P(A)={\sum }^{n}P(A|B)\times P(B_{i})P(A)=nP(AB)×P(Bi)计算得到)
    • 要求P(B∣A)P(B|A)P(BA)

    我们一般称P(原因)先验概率P(原因|结果)称为后验概率,相应的为先验分布和后验分布。

    随机游走

    随机游走是一个典型的随机过程,就和我们丢骰子走步数一样。但这里我们简单分为两种可能,假设我们抛掷一个硬币,正面我们就向上走一步,反面我们就向下走一步。

    这个过程很简单,也就是向下走和向上走的概率都是50%,也就是我们设:

    X0=0,Xt=Xt−1+ZtX_0 = 0, X_t = X_{t-1} + Z_tX0=0,Xt=Xt1+Zt

    那么下图就是一些具体的观测值。

    TIM截图20180618204004

    随机游走很两个特点我们要注意:

    • 每次行动时,下一步的动作和前几步动作没有关系,和前几步的动作都没关系,也就是说我们无法通过当前的状态去推断未来的状态
    • 因为每一步和周围周围的行动都没有关系,所以我们可以知道,无论上方的图折线如何变化,其发生的概率都是一样的(反射原理)。

    假如我们在在t=9t=9t=9的时候将折线进行翻转,这种情况的概率和之前是一样的。

    TIM截图20180618205256

    无向图与有向图模型

    图模型我们一般是用于表示随机变量之间的相互作用,我们把随机变量带到图中,图中每一个点是我们实际图中的像素点,每个像素点通过“边”来连接。

    概率无向图模型(probabilistic undirected graphical model)又称为马尔科夫随机场(Markov Random Field),或者马尔科夫网络。而有向图模型通常被称为信念网络(belief network)或者贝叶斯网络(Bayesian network)。对于这个我们要稍加区分。

    有向图每个边都是有方向的,箭头所指的方向表示了这个随机变量的概率分布点,比如一个节点a到节点b的一个箭头,这个箭头就表明了节点b的概率由a所决定。我们举个简单的例子(例子来源于深度学习圣经P342使用图描述模型结构):

    假设一个接力赛,Alice的完成时间为t0t_0t0,Bob的完成时间为t1t_1t1,而Carol的完成时间为t2t_2t2。和之前说的一样,t2t_2t2取决于t1t_1t1,而t1t_1t1取决于t0t_0t0,而t2t_2t2间接依赖于t0t_0t0

    TIM截图20180618213431

    也就是说Carol的完成时间和Bob有关系和Alice也有关系,是单方向依赖的.

    TIM截图20180618213652

    本文我们要说的是马尔科夫随机场,马尔科夫随机场是无向图模型,也就是两个点之前并没有明确的前后以及方向关系,虽然两个点之前存在相互作用,但是这个作用仅仅在附近的点与点之间,与更远处的点或者最前面的点并没有关系。

    TIM截图20180618213803

    用公式表示一下:

    TIM截图20180618220741

    下面我们来正式介绍一下:

    马尔科夫随机场

    马尔科夫随机场之前简单进行了提及,我们知道其特点是两点之间的因果关系没有明确的方向,我们再来举个例子来说明一下(例子来源于A friendly introduction to Bayes Theorem and Hidden Markov Models):

    这个例子是很经典的天气心情假设,假设下图中右面的人是Bob,他在天气比较晴朗的时候有极大的可能是高兴的,而在下雨的时候有一定可能是郁闷的。而现在我们要做的就是根据Bob的心情情况来猜测当前的天气信息。

    这个就是典型的已知结果(Bob的心情)去推导原因(天气情况)。

    TIM截图20180618171624

    当然我们需要一些其他的概率信息(也就是上面贝叶斯定理中我们要做的任务中需要的信息P(原因)P(结果|原因)),我们通过统计一段时间的天气以及Bob的心情变化得出了我们需要的概率信息。

    也就是15天中10天是晴天(某一天是晴天的概率是10/15=2/310/15=2/310/15=2/3),5天是阴天(某一天是阴天的概率是5/15=1/35/15=1/35/15=1/3)。而且昨天是晴天今天是晴天的概率是0.8,昨天是阴天今天晴天的概率是0.2;昨天是阴天今天是阴天的概率是0.6,昨天是阴天今天是晴天的概率是0.4。

    TIM截图20180618171515

    另外还有Bob在这些天的心情情况,可以分别总结出,晴天阴天Bob的心情概率。

    TIM截图20180618171608

    好了,我们所需要的概率都计算完毕,那么我们需要的就是搭建一个HMM(Hidden Mardov Model)因马尔科夫模型。

    hidden_markov_model

    要说到HMM首先要说马尔科夫链。

    马尔科夫链

    马尔科夫链即上图中晴天(B)和阴天(A)的转换公式:

    markov_chain_1

    我们以上面的例子为例,A和B两种状态(B代表晴天A代表阴天),有四种可能的转移概率(transition probabilities),分别是 A->A、A->B、B->B、B->A。可以看到下图右面的概率分布(P(A∣A)P(A|A)P(AA)也就是晴天到晴天的概率为0.8,其他概率与上面的晴天阴天概率相同),另外右边概率转移矩阵的每一行概率加起来都为1。

    markov_chain_2

    通过这个天气的马尔科夫链,我们就可以得到接下来的天气情况(S代表Sunny晴天,R代表rainy雨天):

    markov_chain_3

    当然上面表示仅仅是简单的马尔科夫链,如果是复杂的马尔科夫链:

    markov_chain_4

    显然,右边是这个马尔科夫链的概率转移矩阵,每一行的概率值加起来为1。

    上面动图来源于参考中的:Markov Chains

    HHM隐马尔可夫模型

    说完马尔科夫链我们来说明下HMM隐马尔科夫模型。

    我们再来看一下之前的图:

    hidden_markov_model

    我们知道,上面的晴天和阴天的转换公式为我们之前说到的马尔科夫链,但是在我们之前说明的问题中,我们要通过观察Bob的心情来推测今天的天气。也就是说,上面的天气变化(晴天变为阴天)是随机变化,Bob的心情(由天气导致的心情变化)也是随机变化,整个的过程就是所谓的双重随机过程

    上面的过程有两个特点:

    • 输出(Bob的心情)依然只和当前的状态(今天的天气)有关
    • 想要计算观察的序列(知道Bob连续好多天的心情,推算出最可能的连续几天的天气情况),只需要依照最大似然概率计算即可

    TIM截图20180618171529

    下面的O1,O2,...,QtO_1,O_2,...,Q_tO1,O2,...,Qt即观察值(Bob的天气),而S1,S2,...,StS_1,S_2,...,S_tS1,S2,...,St为中间的状态(天气情况)。

    TIM截图20180618222108

    所以,假如我们想要通过Bob连续几天的心情变化来推算最有可能的天气情况,下图为取的是最有可能的情况:

    TIM截图20180618222215

    挑选了一个最有可能的概率情况,依次链接(乘起来)即可,下面0.085=P(O1∣S1)∗P(O2∣S2)=(0.67∗0.8)∗(0.8∗0.2)0.085 = P(O_1|S_1) * P(O_2|S_2) = (0.67 * 0.8) * (0.8 * 0.2)0.085=P(O1S1)P(O2S2)=(0.670.8)(0.80.2),第一个中的0.67为我们之前谈到的不知道昨天是什么天气猜测为晴天的概率,第二个中的0.8是因为昨天是晴天,所以今天有0.8的概率为晴天:

    TIM截图20180618222448

    上面的天气心情计算中,我们想要根据Bob一段时间的心情来判断一段时间的天气,我们只要选区所有条件中概率最大的那一条路即可,但是实际中我们的计算量还是很高的,一个一个去算难度会逐渐加大,Viterbi算法算一个,采用动态规划的方法计算条件概率最大的那一条路。也有在Forward-Backward算法(Baum-Welch)来估计概率转移矩阵,当然这里就不详细讲述了,有兴趣可以看参考中的A friendly introduction to Bayes Theorem and Hidden Markov Models

    条件随机场和马尔科夫随机场的关系和区别

    条件随机场(conditional random field,CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型。比如我们输入一个多维的信号XXX然后得到相应的多维输出YYY,这时候我们搭建模型去计算P(Y∣X)P(Y|X)P(YX)这个概率分布。而马尔科夫随机场是一个联合概率分布P(A,B)P(A,B)P(A,B),给予你一个无向图GGG,我们可以通过多种方式(或者说多种路径)来计算P(Y∣X=x)P(Y|X=x)P(YX=x)

    或者这样说,我们平时的任务,例如深度学习中典型的图像分类问题,我们通过输入XXX(图像)来得到YYY(分类结果)。这是一个典型的监督学习,我们通过输提供信息XXX(dataset)和YYY(label)来进行来实现P(Y∣X)P(Y|X)P(YX)(或者这样表示:Y=f(X)Y=f(X)Y=f(X)),监督学习又分为两种,一种是生成模型(MRF),由数据学习联合分布P(X,Y),然后得到上面的条件概率:
    P(Y∣X)=P(X,Y)P(X)P(Y|X)=\frac{P(X,Y)}{P(X)}P(YX)=P(X)P(X,Y)
    而判别模型则是直接学习XXX(k-mean)或者学习P(Y∣X)P(Y|X)P(YX)(CRF),也就是说,判别模型关心的是输入什么输出什么,直接预测。

    再详细点来说,条件随机场类似于逻辑回归,就是利用输入分布去求输出分布,可以当做是给定随机变量XXX的条件下,随机变量YYY的马尔科夫随机场,注意这里的称呼方法,马尔科夫随机场只是一个联合概率分布,并不是条件分布(输入X输出Y)。我们可以假设条件随机场的输出随机变量构成马尔科夫随机场。

    条件随机场因为其特性,可以比较直接地对标准的预测问题(P(Y∣X=x))(P(Y|X=x))(P(YX=x))进行建模,因为目标明确随意准确度也相应的高一些,但是也只能做标准预测的问题。而马尔科夫随机场则是典型的生成模型,可以对任何想要预测的问题进行建模。例如因为一些原因你丢失了输入变量x,然后MRF就可以对丢失的变量进行全概率分布的建模,就是你有y然后你就可以通过y来求P(X∣Y=y)P(X|Y=y)P(XY=y),而CRF就不能这样。但要注意这里的x和y都不是输入也不是输出,仅仅是这个随机场中的变量罢了。

    总结一下:条件概率场就是特殊情况的马尔科夫随机场。

    MRF应用

    通过之前的探讨我们知道贝叶斯网络是有向图模型,而马尔科夫随机场是无向图模型,有向图模型的特点是序列之间有先后连续,前面的结果会对后面的结果产生影响,有向图模型通常应用于这些方面:

    TIM截图20180618173053

    而我们的马尔科夫随机场则不同,MRF经常用于图像方面,因为MRF虽然也表示两个变量之前的相互关系,但是不用于有向图模型,两个点之前并没有明显的因果关系,所以可以对很多的平等关系的事物进行建模。

    而图像则是一个典型的马尔科夫随机场,在图像中每个点可能会和周围的点有关系有牵连,但是和远处的点或者初始点是没有什么关系的,离这个点越近对这个点的影响越大。(这个很好理解,图像中这个像素点是黑色的,那个很有可能周围也是黑色的像素,但是并不能够推断出距离这个像素点远的像素点们也是黑色的)。当然这个附近,也就是这个领域的范围和大小,是由我们自己去决定的。

    例如一阶领域系统:
    [16324]\begin{bmatrix} & 1 & \\ 6 & 3 & 2 \\ & 4 & \\ \end{bmatrix}61342

    以及二阶领域系统:

    [219632342]\begin{bmatrix} 2 & 1 & 9 \\ 6 & 3 & 2 \\ 3 & 4 & 2 \\ \end{bmatrix}263134922

    相应的因子团:

    20150806011428435

    很好理解,无向图G中任何两个结点均有边链接的结点子集称为团,为什么叫因子团,是因为概率无向图可以进行因子分解,也就是将一个数18分为3*6,概率无向图(MRF)因为其特性(之前说过)可以将每个结点的概率直接相乘得到最大似然概率。这个过程也叫作因子分解,所以我们也称这些团为因子团。

    图像分割

    回到我们的主题,我们之前说过图像中的像素点分布可以看成是一个马尔科夫随机场,因为图像某一领域的像素点之间有相互的关系:(图片来自于Deep Learning Markov Random Field for Semantic Segmentation)。

    TIM截图20180619110906

    正如上面的图片,图片中每个像素点都是无向图中的一个结点,每个结点之间都有着联系,我们所说的图像分割本质上也可以说是图像聚类,将图像中相似的像素点进行聚和,这时我们需要求得就是每个像素点的分类标签lll,知道每个像素点的分类标签,当然就可以很好地对图片进行分割了。

    我们再拿出之前的贝叶斯公式:

    P(Y∣X)=P(X∣Y)∗P(Y)P(X)P(Y|X)=\frac{P(X|Y)*P(Y)}{P(X)}P(YX)=P(X)P(XY)P(Y)

    这里我们变换一下变量,假设我们输入图像是SSS,分类结果是WWW

    P(W∣S)=P(S∣W)∗P(W)P(S)P(W|S)=\frac{P(S|W)*P(W)}{P(S)}P(WS)=P(S)P(SW)P(W)

    图像就是我们要输入的分类图像,图中的像素点p⊂Sp \subset SpS,然后W是我们的分割结果,假设我们的分割结果为4类:w1,w2,w3,w4⊂Ww_1,w_2,w_3,w_4 \subset Ww1,w2,w3,w4W。我们利用先验概率P(W)P(W)P(W)(假设我们事先知道了要分的类)以及条件概率P(S∣W)P(S|W)P(SW),这个条件概率就是HMM(隐马尔科夫随机场,上文有说)的一部分,因为我们要通过W得到S,W是观察值,S是HMM中隐含的概率转移链(这部分稍有疑惑的可以回顾之前Bob心情天气讲解)。

    同时这个P(S∣W)P(S|W)P(SW)P(W∣S)P(W|S)P(WS)似然函数,什么是似然函数,似然函数就是取得最大值表示相应的参数能够使得统计模型最为合理。我们的任务是求P(W∣S)P(W|S)P(WS),根据输入图像得到分类信息,而P(S∣W)P(S|W)P(SW)则是知道了分类信息去求这个分类信息表示的像素点的概率,表示我们分好类的各个像素点和真实的像素点分布是否匹配的关系。

    最后就剩下了P(S)P(S)P(S),这个就是我们输入图像的分布,这个分布我们当然是知道的,而且也不会变。在计算中这个认为是定值就可以了。

    如果不好理解,可以和之前的例子进行结合。我们理一下现在讨论的和之前Bob心情推算的关系,理解了的可以跳过这个步骤:

    • P(S∣W)P(S|W)P(SW) => 已知天气Bob的心情,去求天气情况。
    • P(W∣S)P(W|S)P(WS) => 推算天气最有可能的情况,是否最有可能正确表示Bob的心情。
    • P(W)P(W)P(W) => Bob的心情情况。
    • P(S)P(S)P(S) => 天气为晴天或者阴天的情况。

    好了回到正题,在上面的图像分布中,我们将这个图像分割任务以HMM的形式来理解下,那就是,我们知道每个像素点之间的概率关系,而且两个像素点之间的关系只是“当前关系”,就是昨天与今天的关系,和前天没关系。

    当然我们在实际中是以邻域的方式去确定两个像素点之间的关系,也就是在SSS中的某一像素点的取值概率只和相邻点有关而与其他距离远的点无关。

    回到刚才的公式:
    P(W∣S)=P(S∣W)∗P(W)P(S)P(W|S)=\frac{P(S|W)*P(W)}{P(S)}P(WS)=P(S)P(SW)P(W)
    我们要根据P(S∣W),P(W)P(S|W),P(W)P(SW),P(W)去求出P(W∣S)P(W|S)P(WS),再理一下:

    • P(S∣W)P(S|W)P(SW)是我们要求P(W∣S)P(W|S)P(WS)的似然函数
    • P(W)P(W)P(W)是这个模型的先验概率

    我们先说P(W)P(W)P(W),它代表我们要求的分类标记(w1,w2,w3,w4⊂Ww_1,w_2,w_3,w_4 \subset Ww1,w2,w3,w4W),之前的四个类只是我们的假设,我们并不知道这个图像分割为几类了,难道我们要无中生有吗?这时候就需要联系吉布斯分布(gibbs sampling)。

    下面的式子即吉布斯分布:

    P(W)=z−1e−1TU2(W)P(W)=z^{-1}e^{-\dfrac{1}{T}U_2(W)}P(W)=z1eT1U2(W)
    其中z=∑we−U2(w)Tz=\sum_{w}e^{-\dfrac{U_2(w)}{T}}z=weTU2(w),是配分函数,也是一个归一化常数,TTT越大这个P(W)P(W)P(W)的窗口越平滑,另外U2(w)=∑c∈CVc(wc)U_2(w)=\sum_{c\in C}V_c(w_c)U2(w)=cCVc(wc),其中CCC是势能团的集合,而:
    Vc(wc)=Vs,r(ws,wr)={−βws=wtβws≠wtV_c(w_c) = V_{s,r}(w_s,w_r)= \begin{cases} -\beta & w_s=w_t \\ \beta & w_s\ne w_t \end{cases}Vc(wc)=Vs,r(ws,wr)={ββws=wtwswt
    为势能团的势能。其中β\betaβ为耦合系数,s,ts,ts,t分别为相邻的两个像素点

    什么是势能团,我们可以结合之前说的因子团,说的那么玄乎其实原理是一样的,图中的像素结点构成所谓的团,利用上面的吉布斯分布就可以求出我们的分割分布信息。

    20150806011428435

    根据Hammersley Clifford理论,马尔科夫随机场和Gibbs分布是一致的,也就是说,P(W)P(W)P(W)的分布满足Gibbs分布,当然这个理论证明这里不赘述,感兴趣的可以看下相关的研究,我们这里简单说下为什么我们的分割标记分布类似于吉布斯分布式。

    吉布斯采样(gibbs sampling)是利用条件分布进行一系列运算最终近似得到联合分布的一种采样方法,相应的,吉布斯分布就表示这些满足吉布斯分布的分布信息可以通过求相应的条件概率来近似地求这些分布信息的联合分布。(利用知道P(A|B)P(B|A)近似求P(A,B)),而在这个图像中,我们可以知道P(w1∣w2)P(w_1|w_2)P(w1w2)这种的局部作用关系,也就是假如这个像素点标记为分类1(w1w_1w1),那么这个像素点周围的标记信息分别是多少,计算其周围分布标记信息的概率,从而确定这个像素点的分类标记是否正确需不需要更新,但在实际计算中我们往往只是计算这个像素点周围标记信息的次数来判断这个像素点属于哪个分类标记。

    而且我们注意到P(S∣W)∗P(W)=P(S,W)P(S|W)*P(W) =P(S,W)P(SW)P(W)=P(S,W),所以求argmaxwP(W∣S)=P(S∣W)∗P(W)P(S)argmax_{w}P(W|S)=\frac{P(S|W)*P(W)}{P(S)}argmaxwP(WS)=P(S)P(SW)P(W)
    也就是求:
    argmaxwP(W∣S)=P(S,W)P(S)argmax_{w}P(W|S)=\frac{P(S,W)}{P(S)}argmaxwP(WS)=P(S)P(S,W)P(S,W)P(S,W)P(S,W)即图像和分割信息的联合概率分布,这也就是我们为什么要用吉布斯分布来表示P(W)P(W)P(W),而P(S)P(S)P(S)为常数。

    用到了吉布斯分布,我们的这个随机场就可以转化为势能的问题,通过能量函数确定MRF的条件概率,从而使其在全局上具有一致性。也就是我们通过单个像素及其邻域的简单的局部交互,MRF可以获得复杂的全局行为,即利用局部的Gibbs分布得到全局的统计结果。

    在实际中,我们求得是P(S∣W)∗P(W)P(S|W)*P(W)P(SW)P(W)P(W)P(W)P(W)可以通过之前说的势能函数求出来,而求P(S∣W)P(S|W)P(SW)即利用标记信息去估计这个像素点的值,假设某个标记分类中的像素点分布满足高斯分布(假设分类2中的像素点大部分满足50-100的灰度值,中心是80),我们就可以根据某一个像素点的值判断它在哪个分类中:

    05010015020025000.20.40.60.81
    w1w2w3w4S(像素的灰度值)P(像素点在该分类下出现的概率)

    比如某一点的灰度为60,从上图就可以看出这像素点最有可能在哪个分类中(上图中可以看出是这个像素点最可能在第二分类中),其他的灰度值我们也能看得出来。

    相当于一个高斯分布:
    P(S∣w=1,2,3,4)=1δ2πe−(x−μ)22δ2P(S|w=1,2,3,4) = \frac {1}{\delta\sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\delta^2}}P(Sw=1,2,3,4)=δ2π1e2δ2(xμ)2

    求出其中的μ=1Nw∑s\mu=\frac{1}{N_w}\sum{s}μ=Nw1s以及δ2=1Nw∑(y−u)2,π=NwN\delta^2=\frac{1}{N_w}\sum{(y-u)^2},\pi=\frac{N_w}{N}δ2=Nw1(yu)2,π=NNw。其中NwN_wNw为某种分类下像素的个数,NNN为整幅图的像素个数,yyy为像素值。

    这样,通过P(S∣w1),P(S∣w2),P(S∣w3),P(S∣w4)P(S|w_1),P(S|w_2),P(S|w_3),P(S|w_4)P(Sw1),P(Sw2),P(Sw3),P(Sw4)就可以估计每个像素点的分割分类,最后我们将后验概率转化为先验概率和似然函数的乘积(P(W)∗P(S∣W)P(W)*P(S|W)

    首先我们简单说一下后面介绍需要的一些基础知识,这些知识其实都是我们大学课程中学习过的课程。在《概率论》、《算法导论》以及《统计学方法》中都有详细介绍。这里只是进行简单的介绍,虽然是基础,但是对马尔科夫随机场的理解还是很有帮助的。

    条件概率和贝叶斯定理

    条件概率,我们使用这个概念的时候往往是用来解决逆问题,也就是已知结果反推原因的一个过程。而经典的贝叶斯定理公式:

    condition_probability

    我们常常利用这个公式去推导我们无法直接观测的问题,首先明白一个概念:上面的式子中,AAA是结果,BBB是原因。而上面这个式子我们要做的任务就是:

    • 已知P(A∣B)P(A|B)P(AB)P(B)P(B)P(B)(P(A)P(A)P(A)可以通过P(A)=∑nP(A∣B)×P(Bi)P(A)={\sum }^{n}P(A|B)\times P(B_{i})P(A)=nP(AB)×P(Bi)计算得到)
    • 要求P(B∣A)P(B|A)P(BA)

    我们一般称P(原因)先验概率P(原因|结果)称为后验概率,相应的为先验分布和后验分布。

    随机游走

    随机游走是一个典型的随机过程,就和我们丢骰子走步数一样。但这里我们简单分为两种可能,假设我们抛掷一个硬币,正面我们就向上走一步,反面我们就向下走一步。

    这个过程很简单,也就是向下走和向上走的概率都是50%,也就是我们设:

    X0=0,Xt=Xt−1+ZtX_0 = 0, X_t = X_{t-1} + Z_tX0=0,Xt=Xt1+Zt

    那么下图就是一些具体的观测值。

    TIM截图20180618204004

    随机游走很两个特点我们要注意:

    • 每次行动时,下一步的动作和前几步动作没有关系,和前几步的动作都没关系,也就是说我们无法通过当前的状态去推断未来的状态
    • 因为每一步和周围周围的行动都没有关系,所以我们可以知道,无论上方的图折线如何变化,其发生的概率都是一样的(反射原理)。

    假如我们在在t=9t=9t=9的时候将折线进行翻转,这种情况的概率和之前是一样的。

    TIM截图20180618205256

    无向图与有向图模型

    图模型我们一般是用于表示随机变量之间的相互作用,我们把随机变量带到图中,图中每一个点是我们实际图中的像素点,每个像素点通过“边”来连接。

    概率无向图模型(probabilistic undirected graphical model)又称为马尔科夫随机场(Markov Random Field),或者马尔科夫网络。而有向图模型通常被称为信念网络(belief network)或者贝叶斯网络(Bayesian network)。对于这个我们要稍加区分。

    有向图每个边都是有方向的,箭头所指的方向表示了这个随机变量的概率分布点,比如一个节点a到节点b的一个箭头,这个箭头就表明了节点b的概率由a所决定。我们举个简单的例子(例子来源于深度学习圣经P342使用图描述模型结构):

    假设一个接力赛,Alice的完成时间为t0t_0t0,Bob的完成时间为t1t_1t1,而Carol的完成时间为t2t_2t2。和之前说的一样,t2t_2t2取决于t1t_1t1,而t1t_1t1取决于t0t_0t0,而t2t_2t2间接依赖于t0t_0t0

    TIM截图20180618213431

    也就是说Carol的完成时间和Bob有关系和Alice也有关系,是单方向依赖的.

    TIM截图20180618213652

    本文我们要说的是马尔科夫随机场,马尔科夫随机场是无向图模型,也就是两个点之前并没有明确的前后以及方向关系,虽然两个点之前存在相互作用,但是这个作用仅仅在附近的点与点之间,与更远处的点或者最前面的点并没有关系。

    TIM截图20180618213803

    用公式表示一下:

    TIM截图20180618220741

    下面我们来正式介绍一下:

    马尔科夫随机场

    马尔科夫随机场之前简单进行了提及,我们知道其特点是两点之间的因果关系没有明确的方向,我们再来举个例子来说明一下(例子来源于A friendly introduction to Bayes Theorem and Hidden Markov Models):

    这个例子是很经典的天气心情假设,假设下图中右面的人是Bob,他在天气比较晴朗的时候有极大的可能是高兴的,而在下雨的时候有一定可能是郁闷的。而现在我们要做的就是根据Bob的心情情况来猜测当前的天气信息。

    这个就是典型的已知结果(Bob的心情)去推导原因(天气情况)。

    TIM截图20180618171624

    当然我们需要一些其他的概率信息(也就是上面贝叶斯定理中我们要做的任务中需要的信息P(原因)P(结果|原因)),我们通过统计一段时间的天气以及Bob的心情变化得出了我们需要的概率信息。

    也就是15天中10天是晴天(某一天是晴天的概率是10/15=2/310/15=2/310/15=2/3),5天是阴天(某一天是阴天的概率是5/15=1/35/15=1/35/15=1/3)。而且昨天是晴天今天是晴天的概率是0.8,昨天是阴天今天晴天的概率是0.2;昨天是阴天今天是阴天的概率是0.6,昨天是阴天今天是晴天的概率是0.4。

    TIM截图20180618171515

    另外还有Bob在这些天的心情情况,可以分别总结出,晴天阴天Bob的心情概率。

    TIM截图20180618171608

    好了,我们所需要的概率都计算完毕,那么我们需要的就是搭建一个HMM(Hidden Mardov Model)因马尔科夫模型。

    hidden_markov_model

    要说到HMM首先要说马尔科夫链。

    马尔科夫链

    马尔科夫链即上图中晴天(B)和阴天(A)的转换公式:

    markov_chain_1

    我们以上面的例子为例,A和B两种状态(B代表晴天A代表阴天),有四种可能的转移概率(transition probabilities),分别是 A->A、A->B、B->B、B->A。可以看到下图右面的概率分布(P(A∣A)P(A|A)P(AA)也就是晴天到晴天的概率为0.8,其他概率与上面的晴天阴天概率相同),另外右边概率转移矩阵的每一行概率加起来都为1。

    markov_chain_2

    通过这个天气的马尔科夫链,我们就可以得到接下来的天气情况(S代表Sunny晴天,R代表rainy雨天):

    markov_chain_3

    当然上面表示仅仅是简单的马尔科夫链,如果是复杂的马尔科夫链:

    markov_chain_4

    显然,右边是这个马尔科夫链的概率转移矩阵,每一行的概率值加起来为1。

    上面动图来源于参考中的:Markov Chains

    HHM隐马尔可夫模型

    说完马尔科夫链我们来说明下HMM隐马尔科夫模型。

    我们再来看一下之前的图:

    hidden_markov_model

    我们知道,上面的晴天和阴天的转换公式为我们之前说到的马尔科夫链,但是在我们之前说明的问题中,我们要通过观察Bob的心情来推测今天的天气。也就是说,上面的天气变化(晴天变为阴天)是随机变化,Bob的心情(由天气导致的心情变化)也是随机变化,整个的过程就是所谓的双重随机过程

    上面的过程有两个特点:

    • 输出(Bob的心情)依然只和当前的状态(今天的天气)有关
    • 想要计算观察的序列(知道Bob连续好多天的心情,推算出最可能的连续几天的天气情况),只需要依照最大似然概率计算即可

    TIM截图20180618171529

    下面的O1,O2,...,QtO_1,O_2,...,Q_tO1,O2,...,Qt即观察值(Bob的天气),而S1,S2,...,StS_1,S_2,...,S_tS1,S2,...,St为中间的状态(天气情况)。

    TIM截图20180618222108

    所以,假如我们想要通过Bob连续几天的心情变化来推算最有可能的天气情况,下图为取的是最有可能的情况:

    TIM截图20180618222215

    挑选了一个最有可能的概率情况,依次链接(乘起来)即可,下面0.085=P(O1∣S1)∗P(O2∣S2)=(0.67∗0.8)∗(0.8∗0.2)0.085 = P(O_1|S_1) * P(O_2|S_2) = (0.67 * 0.8) * (0.8 * 0.2)0.085=P(O1S1)P(O2S2)=(0.670.8)(0.80.2),第一个中的0.67为我们之前谈到的不知道昨天是什么天气猜测为晴天的概率,第二个中的0.8是因为昨天是晴天,所以今天有0.8的概率为晴天:

    TIM截图20180618222448

    上面的天气心情计算中,我们想要根据Bob一段时间的心情来判断一段时间的天气,我们只要选区所有条件中概率最大的那一条路即可,但是实际中我们的计算量还是很高的,一个一个去算难度会逐渐加大,Viterbi算法算一个,采用动态规划的方法计算条件概率最大的那一条路。也有在Forward-Backward算法(Baum-Welch)来估计概率转移矩阵,当然这里就不详细讲述了,有兴趣可以看参考中的A friendly introduction to Bayes Theorem and Hidden Markov Models

    条件随机场和马尔科夫随机场的关系和区别

    条件随机场(conditional random field,CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型。比如我们输入一个多维的信号XXX然后得到相应的多维输出YYY,这时候我们搭建模型去计算P(Y∣X)P(Y|X)P(YX)这个概率分布。而马尔科夫随机场是一个联合概率分布P(A,B)P(A,B)P(A,B),给予你一个无向图GGG,我们可以通过多种方式(或者说多种路径)来计算P(Y∣X=x)P(Y|X=x)P(YX=x)

    或者这样说,我们平时的任务,例如深度学习中典型的图像分类问题,我们通过输入XXX(图像)来得到YYY(分类结果)。这是一个典型的监督学习,我们通过输提供信息XXX(dataset)和YYY(label)来进行来实现P(Y∣X)P(Y|X)P(YX)(或者这样表示:Y=f(X)Y=f(X)Y=f(X)),监督学习又分为两种,一种是生成模型(MRF),由数据学习联合分布P(X,Y),然后得到上面的条件概率:
    P(Y∣X)=P(X,Y)P(X)P(Y|X)=\frac{P(X,Y)}{P(X)}P(YX)=P(X)P(X,Y)
    而判别模型则是直接学习XXX(k-mean)或者学习P(Y∣X)P(Y|X)P(YX)(CRF),也就是说,判别模型关心的是输入什么输出什么,直接预测。

    再详细点来说,条件随机场类似于逻辑回归,就是利用输入分布去求输出分布,可以当做是给定随机变量XXX的条件下,随机变量YYY的马尔科夫随机场,注意这里的称呼方法,马尔科夫随机场只是一个联合概率分布,并不是条件分布(输入X输出Y)。我们可以假设条件随机场的输出随机变量构成马尔科夫随机场。

    条件随机场因为其特性,可以比较直接地对标准的预测问题(P(Y∣X=x))(P(Y|X=x))(P(YX=x))进行建模,因为目标明确随意准确度也相应的高一些,但是也只能做标准预测的问题。而马尔科夫随机场则是典型的生成模型,可以对任何想要预测的问题进行建模。例如因为一些原因你丢失了输入变量x,然后MRF就可以对丢失的变量进行全概率分布的建模,就是你有y然后你就可以通过y来求P(X∣Y=y)P(X|Y=y)P(XY=y),而CRF就不能这样。但要注意这里的x和y都不是输入也不是输出,仅仅是这个随机场中的变量罢了。

    总结一下:条件概率场就是特殊情况的马尔科夫随机场。

    MRF应用

    通过之前的探讨我们知道贝叶斯网络是有向图模型,而马尔科夫随机场是无向图模型,有向图模型的特点是序列之间有先后连续,前面的结果会对后面的结果产生影响,有向图模型通常应用于这些方面:

    TIM截图20180618173053

    而我们的马尔科夫随机场则不同,MRF经常用于图像方面,因为MRF虽然也表示两个变量之前的相互关系,但是不用于有向图模型,两个点之前并没有明显的因果关系,所以可以对很多的平等关系的事物进行建模。

    而图像则是一个典型的马尔科夫随机场,在图像中每个点可能会和周围的点有关系有牵连,但是和远处的点或者初始点是没有什么关系的,离这个点越近对这个点的影响越大。(这个很好理解,图像中这个像素点是黑色的,那个很有可能周围也是黑色的像素,但是并不能够推断出距离这个像素点远的像素点们也是黑色的)。当然这个附近,也就是这个领域的范围和大小,是由我们自己去决定的。

    例如一阶领域系统:
    [16324]\begin{bmatrix} & 1 & \\ 6 & 3 & 2 \\ & 4 & \\ \end{bmatrix}

    展开全文
  • 马尔科夫

    2018-09-26 16:32:44
    马尔科夫
  • 马尔科夫决策过程是强化学习中的一个基本框架,用来表示agent与环境的交互过程:agent观测得到环境的当前状态之后,采取动作,环境进入下一个状态,agent又得到下一个环境状态的信息,形成一个循环回路。 在理解...

    在这里插入图片描述
    马尔科夫决策过程是强化学习中的一个基本框架,用来表示agent与环境的交互过程:agent观测得到环境的当前状态之后,采取动作,环境进入下一个状态,agent又得到下一个环境状态的信息,形成一个循环回路。
    在理解马尔科夫决策过程之前,首先要理解马尔科夫、马尔科夫奖励过程。

    1. 马尔科夫过程

    满足马尔科夫性质的状态转换过程是马尔科夫过程;
    什么是马尔科夫性质呢?
    在环境状态的转换过程中,环境的下一个状态只取决于当前状态,和历史状态无关,即满足马尔科夫性质。
    在这里插入图片描述

    2. 马尔科夫奖励过程

    (1)马尔科夫链可以通过转移图转移矩阵这两种形式表示:
    转移图
    在这里插入图片描述
    转移矩阵
    在这里插入图片描述
    (2) 马尔科夫奖励过程:马尔科夫链加上奖励函数(价值函数)
    (3) 马尔科夫奖励过程需要重点研究的是如何求解状态空间里每个状态的奖励函数
    奖励: 马尔科夫奖励过程中,每次到达一个过程,会得到一个奖励,这个奖励是已知的。
    Return(回报)? 当前状态之后的未来状态获取奖励(乘上折扣率)的累加值。这里计算的是一个特定的轨迹的Return
    在这里插入图片描述
    奖励函数:某个状态的奖励函数得到的是该状态的价值:Return的期望
    在这里插入图片描述
    问题:每个状态都有一个特定奖励函数吗?奖励函数的值等于价值,每个状态都有一个价值
    Bellman Equation(贝尔曼等式):奖励函数的另一种计算方法
    在这里插入图片描述求解奖励函数方法1:动态规划的方法(基于贝尔曼等式)
    在这里插入图片描述
    求解奖励函数方法2:蒙特卡罗(Monte Carlo)方法(基于采样求return期望)
    具体地,例如:以状态S1为起始状态,可能接下来的状态转换轨迹是(S3、S4、S6),也可能是(S2、S3、S5)等等,总之可以通过产生大量的轨迹,每个轨迹都会得到一个 return,然后直接取一个平均,那么就可以等价于现在S1的价值。
    在这里插入图片描述

    3. 马尔科夫决策过程

    在马尔科夫奖励过程中加入动作和策略,即是马尔科夫决策过程,策略是当前状态下采取某动作的概率。
    在这里插入图片描述
    状态价值函数:和马尔科夫奖励过程的价值函数类似
    在这里插入图片描述
    Q函数-动作价值函数:某一个状态采取某一个动作,得到一个return的期望
    在这里插入图片描述
    状态价值函数(价值函数)与动作价值函数的关系:对 Q 函数中的动作函数进行加和,就可以得到价值函数(状态价值函数)
    在这里插入图片描述
    状态价值函数的贝尔曼等式
    在这里插入图片描述
    动作价值函数的贝尔曼等式
    在这里插入图片描述

    展开全文
  • 马尔科夫模型系列文章(一)——马尔科夫模型

    万次阅读 多人点赞 2019-08-28 15:03:09
    前言:我发现网上很多博客在讲马尔科夫相关的知识点的时候, 总是讲的不是很清楚,有的纯粹只关注理论,看不太懂,有的一上来就搞几个算例,更是一片懵逼,有的又将一些概念一会儿换一个说法,一会儿是马尔科夫过程...

    前言:我发现网上很多博客在讲马尔科夫相关的知识点的时候, 总是讲的不是很清楚,有的纯粹只关注理论,看不太懂,有的一上来就搞几个算例,更是一片懵逼,有的又将一些概念一会儿换一个说法,一会儿是马尔科夫过程,一会儿是马尔科夫模型,一会儿是马尔科夫链,傻傻分不清楚,也不好理解,决定自己抽点时间,好好写一下,会详细介绍马尔科夫模型、马尔科夫链、隐马尔可夫模型、条件随机场等相关的概念和案例,本文为第一篇。文中的理解方式是按照自己的理解方式来叙述的,不适合于每个人。

    一、马尔科夫模型

    1.1 马尔可夫过程

           马尔可夫过程(Markov process)是一类随机过程。由俄国数学家A.A.马尔可夫于1907年提出。该过程具有如下特性:在已知目前状态(现在)的条件下,它未来的演变(将来)不依赖于它以往的演变 (过去 )。例如森林中动物头数的变化构成——马尔可夫过程。在现实世界中,有很多过程都是马尔可夫过程,如液体中微粒所作的布朗运动、传染病受感染的人数、车站的候车人数等,都可视为马尔可夫过程。(这里虽然我也不清楚这些现象到底是不是,姑且就认为是吧!

    马尔科夫过程中最核心的几个概念:过去,现在,将来。其中最核心的在于“现在”如何理解。

    在马尔可夫性的定义中,"现在"是指固定的时刻,但实际问题中常需把马尔可夫性中的“现在”这个时刻概念推广为停时(见随机过程)。例如考察从圆心出发的平面上的布朗运动,如果要研究首次到达圆周的时刻 τ以前的事件和以后的事件的条件独立性,这里τ为停时,并且认为τ是“现在”。如果把“现在”推广为停时情形的“现在”,在已知“现在”的条件下,“将来”与“过去”无关,这种特性就叫强马尔可夫性。具有这种性质的马尔可夫过程叫强马尔可夫过程。在相当一段时间内,不少人认为马尔可夫过程必然是强马尔可夫过程。首次提出对强马尔可夫性需要严格证明的是J.L.杜布。直到1956年,才有人找到马尔可夫过程不是强马尔可夫过程的例子。马尔可夫过程理论的进一步发展表明,强马尔可夫过程才是马尔可夫过程真正研究的对象。

    这段话实在是太过于抽象了,不好理解,心里有数就行,因为这里的过去、现在、将来和我们生活中是有所差别的,不太好理解!

    所以:一个马尔科夫过程就是指过程中的每个状态的转移只依赖于之前的 n个状态,这个过程被称为 n阶马尔科夫模型,其中 n是影响转移状态的数目。最简单的马尔科夫过程就是一阶过程,每一个状态的转移只依赖于其之前的那一个状态,这也是后面很多模型的讨论基础,很多时候马尔科夫链、隐马尔可夫模型都是只讨论一阶模型,甚至很多文章就将一阶模型称之为马尔科夫模型,现在我们知道一阶只是一种特例而已了

    对于一阶马尔科夫模型,则有:

    如果第 i 时刻上的取值依赖于且仅依赖于第 i−1 时刻的取值,即


    ​ 从这个式子可以看出,xi 仅仅与 xi-1有关,二跟他前面的都没有关系了,这就是一阶过程。
    ​ 

    总结:马尔科夫过程指的是一个状态不断演变的过程,对其进行建模后称之为马尔科夫模型,在一定程度上,马尔科夫过程和马尔科夫链可以打等号的。

    1.2 马尔科夫性(无后效型)

    在马尔科夫过程中,在给定当前知识或信息的情况下,过去(即当前以前的历史状态)对于预测将来(即当前以后的未来状态)是无关的。这种性质叫做无后效性。简单地说就是将来与过去无关,值与现在有关,不断向前形成这样一个过程。

    1.3 马尔可夫链

    时间和状态都是离散的马尔可夫过程称为马尔可夫链,简记为Xn=X(n),n=0,1,2…马尔可夫链是随机变量X1,X2,X3…的一个数列。

    这种离散的情况其实草是我们所讨论的重点,很多时候我们就直接说这样的离散情况就是一个马尔科夫模型。

    (1)关键概念——状态空间

    马尔可夫链是随机变量X1,X2,X3…Xn所组成的一个数列,每一个变量Xi 都有几种不同的可能取值,即他们所有可能取值的集合,被称为“状态空间”,而Xn的值则是在时间n的状态。

    (2)关键概念——转移概率(Transition Probability)

    马尔可夫链可以用条件概率模型来描述。我们把在前一时刻某取值下当前时刻取值的条件概率称作转移概率。

    上面是一个条件概率,表示在前一个状态为s的条件下,当前状态为t的概率是多少。

    (3)关键概念——转移概率矩阵

    很明显,由于在每一个不同的时刻状态不止一种,所以由前一个时刻的状态转移到当前的某一个状态有几种情况,那么所有的条件概率会组成一个矩阵,这个矩阵就称之为“转移概率矩阵”。比如每一个时刻的状态有n中,前一时刻的每一种状态都有可能转移到当前时刻的任意一种状态,所以一共有n*n种情况,组织成一个矩阵形式如下:

    1.4 马尔可夫模型的应用

          马尔可夫模型(Markov Model)是一种统计模型,广泛应用在语音识别,词性自动标注,音字转换,概率文法、序列分类等各个自然语言处理等应用领域。经过长期发展,尤其是在语音识别中的成功应用,使它成为一种通用的统计工具。到目前为止,它一直被认为是实现快速精确的语音识别系统的最成功的方法之一。

    二、马尔科夫模型的案例之一——天气预报

    下面是一个马尔科夫模型在天气预测方面的简单例子。如果第一天是雨天,第二天还是雨天的概率是0.8,是晴天的概率是0.2;如果第一天是晴天,第二天还是晴天的概率是0.6,是雨天的概率是0.4。问:如果第一天下雨了,第二天仍然是雨天的概率是多少?,第十天是晴天的概率是多少?;经过很长一段时间后雨天、晴天的概率分别是多少?

    首先构建转移概率矩阵,由于这里每一天的状态就是晴天或者是下雨两种情况,所以矩阵是2x2的,如下:

    雨天 晴天  
    0.8 0.4 雨天
    0.2 0.6 晴天

    注意:每列和为1,分别对雨天、晴天,这样构建出来的就是转移概率矩阵了。如下:

    假设初始状态第一天是雨天,我们记为

    这里【1,0】分别对于雨天,晴天。

    初始条件:第一天是雨天,第二天仍然是雨天(记为P1)的概率为:

    P1 = AxP0

    得到P1 = 【0.8,0.2】,正好满足雨天~雨天概率为0.8,当然这根据所给条件就是这样。

    下面计算第十天(记为P9)是晴天概率:

    得到,第十天为雨天概率为0.6668,为晴天的概率为0.3332。

    下面计算经过很长一段时间后雨天、晴天的概率,显然就是下面的递推公式了:

    2.2 递推公式的改进 

    虽然上面构造了一个递推公式,但是直接计算矩阵A的n次方是很难计算的,我们将A进行特征分解(谱分解)一下,得到:

     

    现在递推公式变成了下面的样子:

     

    显然,当n趋于无穷即很长一段时间以后,Pn = 【0.67,0.33】。即雨天概率为0.67,晴天概率为0.33。并且,我们发现:初始状态如果是P0 =【0,1】,最后结果仍然是Pn = 【0.67,0.33】。这表明,马尔科夫过程与初始状态无关,跟转移矩阵有关

     

    三、再看一个例子——DAN的CPG岛

    为什么还要看这个例子,因为在上面的天气预报我们是直接给出了概率转移矩阵,但是在实际应用中这个概率转移事先是不知道的,那该怎么办呢?需要自己去做统计才能得到

    问题描述:基因组上CpG相对富集的区域被称作CpG岛,接下来我们要从给定的一定DNA序列,判断它是否来自CpG岛,这属于一个两分类问题。——这属于一个序列分类问题。

    DNA序列每个位置上的核苷酸都可以被当作一个有四种可能取值的离散随机变量x={A,T,G,C} 。
    在上述问题中我们要考虑连续位置上出现的CpG双核苷酸,可以用马尔科夫模型来表示这种相邻位置之间的依赖关系。如果第

    i 时刻上的取值依赖于且仅依赖于第i−1时刻的取值,即

    则我们把这个串称作一个一阶马尔科夫链(模型)。
     

    对于DNA序列来说,每一位置的取值有四种,我们把它们称作四种状态,转移概率就是一个4∗4 的矩阵,称作转移概率矩阵或状态转移矩阵,如下图。

    如果知道两类(CpG岛与非CpG岛)的状态转移矩阵,那么对于一个序列样本,我们就可以用上述公式分别计算每一类模型下观察到该特定序列的可能性或似然度 ,用同样的类别似然比(或对数似然比)来进行类别判断。

    3.1 关键问题——状态转移矩阵的确定

    那么怎样去确定马尔科夫状态转移矩阵(离散概率模型)呢?

    首先收集充分的、有代表性的一些CpG岛序列的片段和一些非CpG岛序列的片段,用它们构成两类训练样本。在每一类样本中,统计在所有位置上出现A、T、C、G的次数,再统计在每个A、T、C、G后面出现A、T、C、G次数,然后用下面两个公式来统计概率:

    加号表示的是正样本,减号表示的是负样本。得到如下的转移矩阵:

    对于任意一段待判别的DNA序列,可以根据状态转移矩阵计算它属于CpG岛的似然比,再通过与一定的阈值比较进行判别。大于阈值的为正样本,否则为负样本,计算过程就与上面类似了,建立递推关系。

     

    四、马尔科夫模型与时间序列的关系与区别

    乍一看,马尔科夫模型与时间序列是有一定的关系,有时候甚至有人说马尔科夫过程的状态序列就是一个时间序列,的确,从时间的推移角度来说,这么说好像没很么问题,但是它们之间还是有很多区别的,个人总结以下几点:

    (1)马尔科夫模型是概率模型。每一个时间点的观测值体现为状态值,所谓状态值就是某一个类别的概率,这跟时间序列显然不一样;

    (2)马尔科夫模型当前状态与之前状态的关系是通过转移概率、转移概率矩阵来决定的,这也是和时间序列不一样的地方。

    展开全文
  • 马尔科夫模型简介

    2018-09-26 16:51:26
    马尔科夫模型简介
  • 首先将其基本的概率进行讲解:马尔科夫性质(Markov property):简单的说,就是当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态。换句话说,在给定现在状态时,它与...

    首先将其基本的概率进行讲解:

    马尔科夫性质(Markov property):简单的说,就是当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态。换句话说,在给定现在状态时,它与过去状态(即该过程的历史路径)是条件独立的(也就是没有任何的关系),那么此随机过程即具有马尔可夫性质。具有马尔可夫性质的过程通常称之为马尔可夫过程。


    马尔可夫链(Markov chain),又称离散时间马尔可夫链(discrete-time Markov chain,缩写为DTMC),为状态空间中经过从一个状态到另一个状态的转换的随机过程。该过程要求具备“无记忆”的性质:下一状态的概率分布只能由当前状态决定,在时间序列中它前面的事件均与之无关。也就是马尔可夫性质。在马尔可夫链的每一步,系统根据概率分布,可以从一个状态变到另一个状态,也可以保持当前状态。状态的改变叫做转移,与不同的状态改变相关的概率叫做转移概率。


    隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步的分析。在正常的马尔可夫模型中,状态对于观察者来说是直接可见的。这样状态的转移概率便是全部的参数。而在隐马尔可夫模型中,状态并不是直接可见的,但受状态影响的某些变量则是可见的。每一个状态在可能输出的符号上都有一概率分布。因此输出符号的序列能够透露出状态序列的一些信息。


    其使用主要三个种类:

    预测(filter):已知模型参数和某一特定输出序列,求最后时刻各个隐含状态的概率分布。

    平滑(smoothing):已知模型参数和某一特定输出序列,求中间时刻各个隐含状态的概率分布. 通常使用forward-backward 算法解决。

    解码(most likely explanation): 已知模型参数,寻找最可能的能产生某一特定输出序列的隐含状态的序列, 通常使用Viterbi算法解决。

    三类的具体实际例子在这个地址里面有讲解:https://www.cnblogs.com/skyme/p/4651331.html

    马尔可夫决策过程(Markov Decision Process, MDP)也具有马尔可夫性,与上面不同的是MDP考虑了动作,即系统下个状态不仅和当前的状态有关,也和当前采取的动作有关。举下棋的例子,当我们在某个局面(状态s)走了一步(动作a),这时对手的选择(导致下个状态s’)我们是不能确定的,但是他的选择只和s和a有关,而不用考虑更早之前的状态和动作,即s’是根据s和a随机生成的。
    ---------------------  
    作者:Cute_zhugoing  
    来源:CSDN  
    原文:https://blog.csdn.net/Cute_zhugoing/article/details/79747992  
    版权声明:本文为博主原创文章,转载请附上博文链接!

    转载于:https://www.cnblogs.com/fengff/p/10137131.html

    展开全文
  • 马尔科夫预测

    2014-08-28 16:10:35
    matlab代码,简单实例子,可以简单了解马尔科夫
  • 第一课:一文读懂马尔科夫过程

    万次阅读 多人点赞 2018-07-14 00:57:29
    1.马尔科夫决策过程(MDPs)简介 马尔科夫决策过程是对强化学习(RL)问题的数学描述。几乎所有的RL问题都能通过MDPs来描述: 最优控制问题可以用MDPs来描述; 部分观测环境可以转化成POMDPs; 赌博机问题是只有一个...
  • 马尔科夫链代码,关于matlab隐马尔科夫模型工具箱的
  • 马尔科夫模型

    2017-04-26 15:54:30
    马尔科夫
  • 马尔科夫诊断

    2014-04-24 11:04:37
    马尔科夫参数的容错控制系统中系_省略_噪声与故障诊断检测延迟时间的关系
  • 马尔科夫性质:当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态,此性质即为马尔科夫性质。 马尔科夫过程:具有马尔可夫性质的随机过程称之为马尔可夫过程。 ...
  • 转自: http://zipperary.com/2013/10/15/an-introduction-to-hmm/ ... 总结(Summary) 隐马尔科夫模型(HMM)用五元组(N,M,pi,A,B)来表示,N为隐含状态数目,M为观察...
  • 马尔科夫

    2013-04-07 15:25:41
    马尔科夫与自回归结合,可以很好的运用呀了
  • 马尔科夫

    2018-08-24 09:59:57
    马尔科夫模型(HMM)的Python实现,有利于加深对该算法的认识
  • 马尔科夫信源

    2012-11-17 01:17:01
    马尔科夫信源是离散有记忆信源的特殊情况。
  • 1.马尔科夫网络指无向图 2.一阶马尔科夫链指有向图,这个时刻的状态只依赖前一个时刻 转载于:https://www.cnblogs.com/callyblog/p/10059720.html

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,039
精华内容 2,015
关键字:

马尔科夫