条件随机场(Conditional random fields)

转载自:http://blog.csdn.net/chlele0105/article/details/14897761

条件随机场模型是Lafferty于2001年,在最大熵模型和隐马尔科夫模型的基础上,提出的一种判别式概率无向图学习模型,是一种用于标注和切分有序数据的条件概率模型。CRF最早是针对序列数据分析提出的,现已成功应用于自然语言处理(NLP)、生物信息学、机器视觉及网络智能等领域。

**1. 随机场 **
简单地讲,随机场可以看成是一组随机变量的集合(这组随机变量对应同一个样本空间)。当给每一个位置按照某种分布随机赋予一个值之后,其全体就叫做随机场。当然,这些随机变量之间可能有依赖关系,一般来说,也只有当这些变量之间有依赖关系的时候,我们将其单独拿出来看成一个随机场才有实际意义。

2. 马尔科夫随机场(MRF)
马尔科夫随机场对应一个无向图,这个无向图上的每一个节点对应一个随机变量,节点之间的边表示节点对应的随机变量之间有概率依赖关系。因此,MRF的结构本质上反应了我们的先验知识——哪些变量之间有依赖关系需要考虑,而哪些可以忽略。

3.马尔科夫性质
离当前状态越远(这里的距离需要自己定义)的因素对当前状态的影响越小。在马尔科夫随机场中,我们认为随机变量的概率分布只和它的邻居节点有关,而与其他节点无关,这正是马尔科夫性质在马尔科夫随机场中的体现。

4.马尔科夫随机场(MRF)———>条件随机场(CRF)

** ** 如果给定的MRF中每个随机变量下面还有观察值,我们要确定的是给定观察集合下,这个MRF的分布,也就是条件分布,那么这个MRF就称为CRF。它的条件分布形式完全类似于MRF的分布形式,只不过多了一个观察集合x。因此我们可以认为CRF本质上是给定了观察值(observations)集合的MRF。

5.条件随机场(CRF)

条件随机场(Conditional random fields)_第1张图片
条件随机场(Conditional random fields)_第2张图片
条件随机场(Conditional random fields)_第3张图片
条件随机场(Conditional random fields)_第4张图片
条件随机场(Conditional random fields)_第5张图片
条件随机场(Conditional random fields)_第6张图片
条件随机场(Conditional random fields)_第7张图片
条件随机场(Conditional random fields)_第8张图片
条件随机场(Conditional random fields)_第9张图片
条件随机场(Conditional random fields)_第10张图片
条件随机场(Conditional random fields)_第11张图片
条件随机场(Conditional random fields)_第12张图片
条件随机场(Conditional random fields)_第13张图片

条件随机场(Conditional random fields)_第14张图片

条件随机场(Conditional random fields)_第15张图片

CRF代码资源:

  • Matlab版的UGM:http://www.di.ens.fr/~mschmidt/Software/UGM.html,作者法国的,写了很多实用的工具箱。
  • C++版的gco-v3.0:http://vision.csd.uwo.ca/code/,用于求解crf,作者Olga Veksler,专门研究Graph cut算法。
  • Oxford Brookes的ALE: http://cms.brookes.ac.uk/staff/PhilipTorr/ale.htm,作者Lubor Ladicky,写了5年写出来的一套程序,他在博士期间的所有工作几乎在这套代码里了,纯c++的,代码写得很规范,能学到不少c++编程的东西,没用OpenCV,需要耐心仔细地结合论文看才能看懂。
  • ANU的Stephen Gould开发的c++库Darwin:http://drwn.anu.edu.au/,能在windows下用,但更适合Linux,工具箱里的一些应用也包括了他博士时做的工作,仔细研究这个库可以学到不少先进的东西。

另外,如果要研究高阶的CRF,可以参见这三个人的主页:

  • Pushmeet Kohli,这是个专家级的,2007年Oxford Brookes的Phd毕业,其间就研究这个,现在在MSRC:
    http://research.microsoft.com/en-us/um/people/pkohli/
  • Lubor Ladicky,继续了Kohli的工作,2011年Oxford Brookes的Phd毕业,现在Oxford,主要用CRF做场景理解:
    http://www.robots.ox.ac.uk/~lubor/
    -3. Stephen Gould,2010年Stanford的Phd毕业,现在ANU,也用高阶CRF做场景理解,还开发了一套工具箱(Darwin),比较适合在Linux下用。http://users.cecs.anu.edu.au/~sgould/index.html

你可能感兴趣的:(条件随机场(Conditional random fields))