CRF和MRF概率模型的关系

CRF和MRF概率模型的关系

最近再次阅读了文献Discriminative fields for modeling spatial dependencies in natural images,对CRF模型和MRF模型有了进一步的理解。总体来说这两者都是属于概率图模型范畴,MRF的理论是很理想的,但是其计算过程复杂,所以实际使用的是它的简化版本,该版本易于计算实现,但同时也削弱了其本身性能。CRF是另一种版本,其自身的性能要比简化后的MRF好,且同样便于计算实现。下面从模型推断模型参数训练两者差异三个方面进行说明。

模型推断方面:这两者都可采用graph-cut方法进行最优推断,所以在得知模型参数的情况下,能量函数的优化不存在难度。

模型参数学习方面:当模型参数未知的时候,依靠样本对其进行训练获取模型参数,这个任务对于MRF和CRF模型都是一个有待解决的难点。难点在于归一化分母的获取是一个NP问题,要获取该分母,需要考虑所有标号的结果,如果是二值分类问题,当有n个节点变量时,有 2n 个项需要求和。当前解决方法主要时近似求解该分母,得出模型参数,但是该方法有时并不能得出理想结果。

CRF和MRF区别:MRF和CRF建模思路是不一样的,MRF是一种generative模型。

所谓generative模型就是需要先得出变量的概率模型参数,然后在进行推断任务。如bayes 推断中,可以先假定变量服从高斯分布,然后利用似然函数方法求取高斯分布的均值和方差这些参数,从而得出变量的概率分布模型,后期推断时依据该模型得出相应的结论。对于MRF模型而言,由于需要考虑观察变量y和标号变量x概率分布问题,这本身就是一个非常困难的问题。因为一般自然图片像素和其标号分布,很难采用一个简单的模型加以描述,MRF是表达这种模型的一种方法。对于某一张图片我们的兴趣点在于其标号,而不关心原始像素y的分布,所以没有必要花费资源考虑y的概率分布问题。CRF便是基于这一点,提出一种discriminative模型。

所谓discriminative模型,就是不用考虑原始变量实际的概率分布问题,直接研究标号推断问题。比如对于二分问题,我们可以直接获取其判别式h,当h>0时属于A类,反之属于B类。这样在不知道变量在A,B两类中的实际概率分布,便可以得出我们关心的分类结果。

MRF和CRF都是属于图理论中的问题,区别在于他们能量函数建立细节不同。MRF理论上需要显得出观察变量y和标号变量x的实际概率分布。但是由于计算能力的限制,这一点无法满足,所以目前研究中,采用了近似的方法。假定x的先验分布和y没有关系,只和相邻两节点有关。而y中某一个节点yi的分布只与当前标号变量xi有关,一般假定满足高斯分布。这样的假设是一种妥协,削弱了MRF的能力,但是便于计算实现。在自然图片中这些假设很难成立。

针对上面的问题,为了提高MRF的能力,同时保持其可计算性,CRF被提了出来。在CRF中xi和所有的观察变量y有关,这个构成节点能量,xi和xj也和所有的观察变量y有关,构成边缘能量。这样提高了MRF的适用性。CRF中节点能量和边缘能量均是通过discriminative方式实现,其中节点能量通过线性分类器实现。而在MRF中节点能量是通过generative模型实现,如高斯分布。

MRF和CRF在模型参数已知的情况下,进行标号的推断问题目前可以采用graph cut方法进行快速求解。当前的难点在于模型参数的学习,目前主流的算法还是对似然函数进行近似求解优化。MRF和CRF的区别和分类器中generative模型和discrimiantive模型关系类似。CRF的性能和能力要强于MRF,因为CRF的特征提取可以依赖整幅图片。而MRF只能依赖当前领域内一定的节点。

你可能感兴趣的:(算法)