马尔科夫随机场(MRF)及其在图像降噪中的matlab实现
(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实现的更多相关文章
- PGM学习之七 MRF,马尔科夫随机场
之前自己做实验也用过MRF(Markov Random Filed,马尔科夫随机场),基本原理理解,但是很多细节的地方都不求甚解.恰好趁学习PGM的时间,整理一下在机器视觉与图像分析领域的MRF的相关 ...
- PRML读书会第八章 Graphical Models(贝叶斯网络,马尔科夫随机场)
主讲人 网神 (新浪微博: @豆角茄子麻酱凉面) 网神(66707180) 18:52:10 今天的内容主要是: 1.贝叶斯网络和马尔科夫随机场的概念,联合概率分解,条件独立表示:2.图的概率推断in ...
- 马尔科夫随机场模型(MRF-Markov Random Field)
原文: http://blog.sina.com.cn/s/blog_92c398b00102vs3q.html 马尔科夫过程 隐马尔科夫过程 与马尔科夫相比,隐马尔可夫模型则是双重随机过程,不 ...
- 马尔科夫随机场(Markov Random Field)
马尔可夫随机场(Markov Random Field),它包含两层意思:一是什么是马尔可夫,二是什么是随机场. 马尔可夫过程可以理解为其当前的状态只与上一刻有关而与以前的是没有关系的.X(t+1)= ...
- 隐马尔科夫模型 HMM(Hidden Markov Model)
本科阶段学了三四遍的HMM,机器学习课,自然语言处理课,中文信息处理课:如今学研究生的自然语言处理,又碰见了这个老熟人: 虽多次碰到,但总觉得一知半解,对其了解不够全面,借着这次的机会,我想要直接搞定 ...
- 马尔可夫随机场(Markov random fields) 概率无向图模型 马尔科夫网(Markov network)
上面两篇博客,解释了概率有向图(贝叶斯网),和用其解释条件独立.本篇将研究马尔可夫随机场(Markov random fields),也叫无向图模型,或称为马尔科夫网(Markov network) ...
- 用 Python 通过马尔可夫随机场(MRF)与 Ising Model 进行二值图降噪
前言 这个降噪的模型来自 Christopher M. Bishop 的 Pattern Recognition And Machine Learning (就是神书 PRML……),问题是如何对一个 ...
- 强化学习(二)马尔科夫决策过程(MDP)
在强化学习(一)模型基础中,我们讲到了强化学习模型的8个基本要素.但是仅凭这些要素还是无法使用强化学习来帮助我们解决问题的, 在讲到模型训练前,模型的简化也很重要,这一篇主要就是讲如何利用马尔科夫决策 ...
- 隐藏马尔科夫模型HMM
概率图模型 HMM 先从一个具体的例子入手,看看我们要解决的实际问题.例子引自wiki.https://en.wikipedia.org/wiki/Hidden_Markov_model Consid ...
随机推荐
- javaweb-选课系统
选课系统中用到了4个表,分别是classs.yonghu.teacher.student.在用户中存放管理员的信息name和password以及id,在另三个表中存放对应的数据如图: calss: t ...
- javascript DOM 编程艺术 札记1
一个重要观点 DOM 是指 文档对象模型,它对应浏览器实际认知的东西.html 文本本身和 html 加载到浏览器中显示的东西并不是完全一致的,后者就是 DOM 节点树,它是浏览器实际认知的东西.一个 ...
- 负载均衡基本原理与lvs
前言: 之前在山西的项目上使用的是lvs下的NAT模式,但另外两个模式并没有涉及,今天系统的整理下关于负载均衡的相关理论与lvs各模式的相关优点与不足,知其然与所以然,而后能针对性的应用: 基本介绍 ...
- 聊聊密码学中的DES算法
用心分享,共同成长 没有什么比你每天进步一点点更实在了 本文已经收录至我的github,欢迎大家踊跃star 和 issues. https://github.com/midou-tech/artic ...
- 6.7 Mapreduce作业流JobControl和Oozie
1.1 Mapreduce作业流JobControl和Oozie 更复杂的任务,需要多个mapreduce作业,形成作业流,而不是增加map和reduce的复杂度.复杂问题,可以用高级语言pig.h ...
- 《C++Primer》第五版习题解答--第四章【学习笔记】
[C++Primer]第五版习题解答--第四章[学习笔记] ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/11 第四章:表达式 练习4. ...
- js以当前时间为基础,便捷获取时间(最近2天,最近1周,最近2周,最近1月,最近2月,最近半年,最近一年,本周,本月,本年)
在开发公司管理后台系统时,遇到了需要根据不同的时间段如"近一年.近半年.近三月.近一月.近一周"来获取并展示不同图表数据的需求,很是繁琐,项目开发周期又非常的短,自己想了一下,虽然 ...
- NTT 求原根
使用NTT需要保证模数mod 为质数. 通过以下代码求得一个模数的原根 , 常见的质数的原根 998244353 -> 3 1e9+7 -> 5 #include<bits/ ...
- NETCore下IConfiguration和IOptions的用法
NETCore下IConfiguration和IOptions的用法 https://www.cnblogs.com/RainingNight/p/strongly-typed-options-con ...
- 01-web自动化基础篇
1.搭建环境 需要的环境 浏览器(Firefox/Chrome/IE…)-----选择Chrome Python Selenium Selenium IDE(如果用Firefox) FireBug.F ...