条件随机场(Conditional random fields)

时间:2021-02-20 11:49:51

     

       条件随机场模型是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)

条件随机场(Conditional random fields)

条件随机场(Conditional random fields)

条件随机场(Conditional random fields)

条件随机场(Conditional random fields)

条件随机场(Conditional random fields)

条件随机场(Conditional random fields)

条件随机场(Conditional random fields)

条件随机场(Conditional random fields)

条件随机场(Conditional random fields)

条件随机场(Conditional random fields)

条件随机场(Conditional random fields)

条件随机场(Conditional random fields)

条件随机场(Conditional random fields)

条件随机场(Conditional random fields)


CRF代码资源:

1. Matlab版的UGM:http://www.di.ens.fr/~mschmidt/Software/UGM.html,作者法国的,写了很多实用的工具箱。


2. C++版的gco-v3.0:http://vision.csd.uwo.ca/code/,用于求解crf,作者Olga Veksler,专门研究Graph cut算法。


3. Oxford *es的ALE: http://cms.*es.ac.uk/staff/PhilipTorr/ale.htm,作者Lubor Ladicky,写了5年写出来的一套程序,他在博士期间的所有工作几乎在这套代码里了,纯c++的,代码写得很规范,能学到不少c++编程的东西,没用opencv,需要耐心仔细地结合论文看才能看懂。


4. ANU的Stephen Gould开发的c++库Darwin:http://drwn.anu.edu.au/,能在windows下用,但更适合linux,工具箱里的一些应用也包括了他博士时做的工作,仔细研究这个库可以学到不少先进的东西。


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


1. Pushmeet Kohli,这是个专家级的,2007年Oxford *es的Phd毕业,其间就研究这个,现在在MSRC:

http://research.microsoft.com/en-us/um/people/pkohli/


2. Lubor Ladicky,继续了Kohli的工作,2011年Oxford *es的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