再一次遇到了Markov模型与条件随机场的问题,学而时习之,又有了新的体会。所以我决定从头开始再重新整理一次马尔科夫模型与条件随机场。

  马尔科夫模型是一种无向概率图模型,其与马尔科夫链并不是很一样。马尔科夫链的节点是状态,边是转移概率,是template CPD的一种有向状态转移表达。而马尔科夫模型是与贝叶斯模型并列的一种概率图模型。其作用是描述互相影响,互相作用,不存在因果关系的两个随机变量之间的关系。因为作用是相互的,所有马尔科夫模型的边是无向的,或者可以说是双向的。马尔科夫模型的强大之处在于它解除了贝叶斯模型中的因果关系,这也就使得它可以对很多平等的东西建立相互关系。比如一幅图片的各个像素就是平等的,但是各个像素之间可以相互影响(天在上,地在下)。所有马尔科夫模型被广泛的应用于图像处理,与图像理解。(图像处理与图像理解所使用的网络结构并不一样)。

1.toy Example

  假设有4个人,之间搞三角恋的关系。其关系如图所示,有边的部分代表有联系,没边的部分代表不联系。

r语言马尔科夫模型 马尔科夫模型的优点_条件随机场

  这四个人可以持有不同的意见0,1. 比如DA,BC两对完全赞同对方的意见,CD两个人完全反对对方的意见,AB 对对方的意见存疑。四个人各自的意见都是随机变量,但是经过一番交流后肯定会达成某个共识。我们认为达成不同共识的概率是不同的。因为我们对最终的概率感兴趣,所以要对不同意见组合的可能性进行量化(打分)。注意,这里的打分是凭着直觉给的,并不完全要求归一化。比如上图中的打分。

  最终,我们希望得到不同意见组合的概率,直觉上,只需要把随机变量对应取值,按照边的关系相乘就可以获得了。

r语言马尔科夫模型 马尔科夫模型的优点_条件随机场_02

r语言马尔科夫模型 马尔科夫模型的优点_条件随机场_03

  这里Z是归一化因子,把上面所有数据加起来,再归一化,数据看起来就像是概率了。但是这个概率看起来很诡异啊,明明a=b的概率比较大,可是边际化之后确实a0b1比较可能,其根本原因在于a,b之间不止一条边。a还可以通过DC影响B。补充一句:我们凭感觉给的那个数,就是“势”。

2. Gibbs 分布

  谈概率就一定要谈分布,分布的本质就是概率密度函数的表达式。“势”可以有很多方法确定,假设是已知的,那么随机变量的联合概率则可表达为:

r语言马尔科夫模型 马尔科夫模型的优点_归一化_04

  思路和上面是一样的,如果有各个“团”的“势”,那么则可以通过“超级边际化”来获得总因子,将整个势进行归一化。这个过程称为Gibbs分布。

3.分布--->图,图--->分布

  在有了Gibbs分布这一工具之后,就可以建立概率图的数学模型了。需要注意的是:对于给定的分布,可以建立不同的图,对于给定的图,也有不同的分布写法。

r语言马尔科夫模型 马尔科夫模型的优点_r语言马尔科夫模型_05

  实际上,“团”代表的是影响流动的方向。一旦某个随机变量被观察到,影响则被隔断了。trail就死了。

4.条件随机场

  其实条件随机场是一种更给力的“naive bayes classfier"。 之前在学习朴素贝叶斯分类器的时候,其实我一直有疑问,直观上如果是推测 Y 的种类,我们使用了P(y,x1,x2,x3,x4....)这样的概率。但是这并不符合我们的直觉啊,因为我们基于证据进行推理,那么应该计算的是P(y|x1,x2,x3,x4.....)。我的直觉确实是对的, 当x1,x2,x3,x4之间,不存在相关性的时候,朴素贝叶斯的联合概率和后面的条件概率性质上是等价的。但是一旦x1,x2,x3,x4存在相关性,那么联合概率密度函数就不能基于朴素贝叶斯的假设来求了。会导致结果的畸形。

  但是条件概率公式是没有问题的,因为条件概率中,并不在意x1中是否也给出了x2的信息。总之那都是条件,条件重复了对结果没有影响。那么我们想个办法把朴素贝叶斯分类器的换掉不就好了,这个换掉的方法就是条件随机场。代价是它不能使用x1,x2.....的独立假设,不能用x随机变量因子连乘的形式给出p(y,x1,x2.....)。

  

r语言马尔科夫模型 马尔科夫模型的优点_归一化_06

  在这里,我假设了x 变量各种爱恨纠葛,总之就是纠缠在一起了。但是这不要紧啊,我们把每个团都设成 Φ(Y,Xi)就好了。Gibbs同一个图分布有多种表达方式,影响是可以通过节点逆向互相传递的。每个团的势,相当于是 xi 对 Y 的影响,机器学习里面用了很高明的方法把 xi 变成开关量,势函数变成了开关量乘以权重再取指数。最后训练得到权重。  

  Φ(y,x1,x2,x3.....) 可以由Gibbs分布给出。那么我们只需要找到Φ(x1,x2,x3.......)作为分母就好。这个分母也很好求,只要把 y 边际掉就好了。结果如下:

r语言马尔科夫模型 马尔科夫模型的优点_r语言马尔科夫模型_07

  这样,我们就可以用条件随机场来分割图像了。因为我们选的图像特征是很相关的:颜色,纹理,位置(比如正常的场景上面就会是蓝色(天),下面往往是黑的(影子))。抛开了朴素贝叶斯模型的独立假设,条件随机场这种特殊的马尔科夫模型对特征不敏感,怪不得说the sink can be the feature............