(Markov Random Field)马尔科夫随机场,本质上是一种概率无向图模型

下面从概率图模型说起,主要参考PR&ML 第八章 Graphical Model (图模型)

定义:A graph comprises nodes (also called vertices) connected by links (also known as edges or arcs ).

In a probilistic graphical model each node represents a random variable or group of random variables ,and th links express probabilistic  relationships between these variables.

分类:概率图模型大体分为两种,第一种是有向图,又叫贝叶斯网络,链接节点之间的边是有方向的,用来描述变量之间的因果关系(左侧);另一种是无向图,又叫马尔科夫随机场,边是没有方向的,用来描述变量之间的软约束(右侧)。

1.Bayesian network

用概率图表示联合概率分布密度

起点对应条件变量,如p(c|a,b)就会有两个起点一个终点。略微复杂一点如下图:

由于变量之间如果采用全连接会使得参数个数随着变量个数成幂次增加。所以书中讨论了几种在设计贝叶斯网络时减少模型参数的方法,第一种是独立性假设,即根据实际问题对某些变量提出独立性假设以减少链接边数;第二种是采用链式连接,即每个节点只有一个子节点一个父节点;第三种是权值共享,类似于cnn中底层的做法。

2 condition independence条件独立

定义式:

下面来讨论如何通过图结构直接判断变量之间的条件独立性

三个例子,一段总结

例一:结点c被称为关于(从a经过c到达b)这个路径的"尾到尾"(tail-to-tail)连接,因为结点与两个箭头的尾部相连

注意图中c是可观测变量

记作

例二:结点c被称为关于从结点a到结点b的路径"头到尾"(head-to-tail)。

例三:结点c关于从a到b的路径是"头到头"(head-to-head),因为它连接了两个箭头的头。

注意这里当c为观测条件时不能得到的形式,所以

一个总结:In summary ,a tail-to-tail node or a head-to-tail node leaves a path unblocked unless it is observed in which case it blocks the path .By contrast, a head-to-head node blocks a path if it is unobserved ,but once the node ,and /or at least one of its descendants ,is observed the path becomes unblocked .参考译文(总而言之,TT结点或者HT结点形成的路径无堵,除非该结点被观察到(这会堵住路径)。相反,HH结点在没被观察到时会堵住路径,不过一旦该结点或其至少一个子结点被观察到的话,路径又变成无堵的了~)

一个小概念   D-separation:这个D-separaton的目的是通过有向无环图寻找一个特定的条件依赖表述 。针对节点(变量)集合,如果所有从A经过C到达B的路径都被阻隔,那么我们说C把A从B中d-separation.即

3.Markov Random Fields

一个马尔科夫随机场(Markov random field),也被称为马尔科夫网络(Markov network)或者无向图模型(undirected graphical model)(Kindermann and Snell, 1980),包含一组结点,每个结点都对应着一个变量或一组变量。链接是无向的,即不含有箭头。

这里同样来讨论他的独立性,集合A到集合B的所有路径都通过集合C中的一个或多个节点,那么所有这样的路径都被阻隔,因此或者说,除掉集合C之后A,B就没有连接路径了。

注意,只要有一条路径没有通过C,那么这种性质就不存在。

定义团块(clique):对这个团块的所有子集的节点都是全连接的。

那么整个图的联合分布由各个团块组成,

这里为每一个团块定义了一个势函数,注意如果这个无向图不是由有向图转化而来,那么这里的势函数可以不满足概率性质。但是,由于p(x)要满足概率性质,所以势函数还是要大于零的。Z是归一化因子。通常取这个分布叫做Boltzmann distribution(有时间要查查他的性质)。而这里最大的优势就是势函数可以通过选取而具有一定的实际意义,相当于一种相似度的度量,所以为算法的设计增加了灵活性。

例子:图像去噪

这个例子可以有很多更好的方法实现,这里只是为了说明势函数的用法而已。

给一幅二值图像加入噪声,加入噪声之后的图像是我们的观测值Y,而实际图像是隐变量X,现在我们就要通过Y推断X,

由于噪声等级比较小,因此我们知道xi和yi之间有着强烈的相关性。我们还知道图像中相邻像素xi和xj的相关性很强。这种先验知识可以使用马尔科夫随机场模型进行描述,它的无向图如下:

势函数定义为:

这里只有两种团块,第一种是xi和yi,第二种是xi和相邻的xj。我们分别给以不同系数用来调节其在势函数中的权重,由于最后的概率计算要取最大,所以这里等价于取最小。

具体代码如下:

%实现PRML P387 例子:使用mrf降噪
%输入一个二值图像并加入噪声
close all;
clear all;
I=imread('Penguins.jpg');
I1=im2bw(I);
subplot(2,2,1)
imshow(I1);
title('原图像');
J = imnoise(I,'salt & pepper', 0.2);
J1=im2bw(J);
subplot(2,2,2)
imshow(J1);
title('噪声图') Y=ones(size(J1));
Y(J1==0)=-1;
[m,n]=size(Y);
X=Y;h=0;beta=3.5;eta=.1;
while 1
tot=0
for i=2:1:m-1
for j=2:1:n-1
temp=X(i,j);
X(i,j)=-1;%根据定义计算势函数
E1=h*X(i,j)-beta*X(i,j)*(X(i-1,j)+X(i+1,j)+X(i,j-1)+X(i,j+1))-eta*X(i,j)*Y(i,j);
X(i,j)=1;
E2=h*X(i,j)-beta*X(i,j)*(X(i-1,j)+X(i+1,j)+X(i,j-1)+X(i,j+1))-eta*X(i,j)*Y(i,j);
if E1<E2
X(i,j)=-1;
else
X(i,j)=1;
end
if temp~=X(i,j)
tot=tot+1;
end
end
end
if tot<1
break;
end
end J2=X;
J2(X==-1)=0;
subplot(2,2,3)
imshow(J2);
title('mrf降噪结果')

结果如下:

马尔科夫随机场(MRF)及其在图像降噪中的matlab实现的更多相关文章

  1. PGM学习之七 MRF,马尔科夫随机场

    之前自己做实验也用过MRF(Markov Random Filed,马尔科夫随机场),基本原理理解,但是很多细节的地方都不求甚解.恰好趁学习PGM的时间,整理一下在机器视觉与图像分析领域的MRF的相关 ...

  2. PRML读书会第八章 Graphical Models(贝叶斯网络,马尔科夫随机场)

    主讲人 网神 (新浪微博: @豆角茄子麻酱凉面) 网神(66707180) 18:52:10 今天的内容主要是: 1.贝叶斯网络和马尔科夫随机场的概念,联合概率分解,条件独立表示:2.图的概率推断in ...

  3. 马尔科夫随机场模型(MRF-Markov Random Field)

    原文: http://blog.sina.com.cn/s/blog_92c398b00102vs3q.html 马尔科夫过程​ 隐马尔科夫过程​​ 与马尔科夫相比,隐马尔可夫模型则是双重随机过程,不 ...

  4. 马尔科夫随机场(Markov Random Field)

    马尔可夫随机场(Markov Random Field),它包含两层意思:一是什么是马尔可夫,二是什么是随机场. 马尔可夫过程可以理解为其当前的状态只与上一刻有关而与以前的是没有关系的.X(t+1)= ...

  5. 隐马尔科夫模型 HMM(Hidden Markov Model)

    本科阶段学了三四遍的HMM,机器学习课,自然语言处理课,中文信息处理课:如今学研究生的自然语言处理,又碰见了这个老熟人: 虽多次碰到,但总觉得一知半解,对其了解不够全面,借着这次的机会,我想要直接搞定 ...

  6. 马尔可夫随机场(Markov random fields) 概率无向图模型 马尔科夫网(Markov network)

    上面两篇博客,解释了概率有向图(贝叶斯网),和用其解释条件独立.本篇将研究马尔可夫随机场(Markov random fields),也叫无向图模型,或称为马尔科夫网(Markov network) ...

  7. 用 Python 通过马尔可夫随机场(MRF)与 Ising Model 进行二值图降噪

    前言 这个降噪的模型来自 Christopher M. Bishop 的 Pattern Recognition And Machine Learning (就是神书 PRML……),问题是如何对一个 ...

  8. 强化学习(二)马尔科夫决策过程(MDP)

    在强化学习(一)模型基础中,我们讲到了强化学习模型的8个基本要素.但是仅凭这些要素还是无法使用强化学习来帮助我们解决问题的, 在讲到模型训练前,模型的简化也很重要,这一篇主要就是讲如何利用马尔科夫决策 ...

  9. 隐藏马尔科夫模型HMM

    概率图模型 HMM 先从一个具体的例子入手,看看我们要解决的实际问题.例子引自wiki.https://en.wikipedia.org/wiki/Hidden_Markov_model Consid ...

随机推荐

  1. 【转载】CSS filter:hue-rotate色调旋转滤镜实现按钮批量生产

    文章转载自 张鑫旭-鑫空间-鑫生活 http://www.zhangxinxu.com/ 原文链接:https://www.zhangxinxu.com/wordpress/2018/11/css-f ...

  2. Windows Live Writer 语法高亮

    1.WindowsLiveWriter.CNBlogs.CodeHighlighter.rar 这个插件生成的高亮代码与网页上的一模一样,插入后即可立即显示效果,不过貌似它必须联网才能实时显示效果,因 ...

  3. .net 异步编程总结

    异步的方式,就是,先发起IO.CPU密集工作等,然后函数返回,在IO.CPU密集工作等完成了以后——某个不确定的时刻,再执行后续的代码.   所以,如果使用异步代码,必须注意代码的执行顺序. 所以,异 ...

  4. 认识Web应用框架

    Web应用框架 Web应用框架(Web application framework)是一种开发框架,用来支持动态网站.网络应用程序及网络服务的开发.类型可以分为基于请求(request-based)的 ...

  5. php strcmp函数漏洞

    strcmp函数漏洞 适用5.3版本以前的php 函数作用:字符串比较 要求传入字符串.如果传入非字符串呢? 结果函数报错!但是函数返回“0”  . 虽然报错了但函数的判断却是“相等” 如何传入非字符 ...

  6. spring cloud 微服务之 -- 配置文件拆分之道

    0-前言 在spring cloud微服务架构中,基本上每个拆分的微服务都会部署多个运行实例,这些运行实例,配置基本都是一样的,不同的是少数配置,比如端口,而这些不同的配置又是必不可少的 那我们怎么来 ...

  7. 实操教程丨如何在K8S集群中部署Traefik Ingress Controller

    注:本文使用的Traefik为1.x的版本 在生产环境中,我们常常需要控制来自互联网的外部进入集群中,而这恰巧是Ingress的职责. Ingress的主要目的是将HTTP和HTTPS从集群外部暴露给 ...

  8. SpringBoot 总结篇

            时至今日,SpringBoot 系列文章也算是告一段落,回想起当初立flag的情景,仿佛还历历在目.用一个月时间学完 SpringBoot 并整理成文章?又定一些异想天开计划,当时这样 ...

  9. Scala实践11

    1.1泛型类 泛型类是将类型作为参数的类.它们对集合类特别有用. 定义泛类型:泛型类将类型作为方括号内的参数[].一种惯例是使用字母A作为类型参数标识符,但是可以使用任何参数名称. class Sta ...

  10. Spring Boot2 系列教程(十九) | @Value 和 @ConfigurationProperties 的区别

    微信公众号:一个优秀的废人.如有问题,请后台留言,反正我也不会听. 前言 最近有跳槽的想法,所以故意复习了下 SpringBoot 的相关知识,复习得比较细.其中有些,我感觉是以前忽略掉的东西,比如 ...