条件随机场CRF

全连接条件随机场(DenseCRF)

对于每个像素i具有类别标签xi还有对应的观测值yi,这样每个像素点作为节点,像素与像素间的关系作为边,即构成了一个条件随机场。而且我们通过观测变量yi来推测像素i对应的类别标签xi。条件随机场如下: 
条件随机场CRF

条件随机场符合吉布斯分布:(此处的x即上面说的观测值) 

P(X=x|I)=1Z(I)exp(E(x|I))

其中的E(x|I)是能量函数,为了简便,以下省略全局观测I: 
E(x)=iΨu(xi)+i<jΨp(xi,xj)

其中的一元势函数iΨu(xi)即来自于前端FCN的输出。而二元势函数如下: 
Ψp(xi,xj)=u(xi,xj)m=1Mω(m)k(m)G(fi,fj)

二元势函数就是描述像素点与像素点之间的关系,鼓励相似像素分配相同的标签,而相差较大的像素分配不同标签,而这个“距离”的定义与颜色值和实际相对距离有关。所以这样CRF能够使图片尽量在边界处分割。而全连接条件随机场的不同就在于,二元势函数描述的是每一个像素与其他所有像素的关系,所以叫“全连接”。

关于这一堆公式大家随意理解一下吧… …而直接计算这些公式是比较麻烦的(我想也麻烦),所以一般会使用平均场近似方法进行计算。而平均场近似又是一堆公式,这里我就不给出了(我想大家也不太愿意看),原意了解的同学直接看论文吧。

CRFasRNN

最开始使用DenseCRF是直接加在FCN的输出后面,可想这样是比较粗糙的。而且在深度学习中,我们都追求end-to-end的系统,所以CRFasRNN这篇文章将DenseCRF真正结合进了FCN中。这篇文章也使用了平均场近似的方法,因为分解的每一步都是一些相乘相加的计算,和普通的加减(具体公式还是看论文吧),所以可以方便的把每一步描述成一层类似卷积的计算。这样即可结合进神经网络中,并且前后向传播也不存在问题。当然,这里作者还将它进行了迭代,不同次数的迭代得到的结果优化程度也不同(一般取10以内的迭代次数),所以文章才说是as RNN。优化结果如下: 
条件随机场CRF

马尔科夫随机场(MRF)

在Deep Parsing Network中使用的是MRF,它的公式具体的定义和CRF类似,只不过作者对二元势函数进行了修改: 

Ψ(yui,yvi)=k=1Kλkuk(i,u,j,v)zNjd(j,z)pvz

其中,作者加入的λk为label context,因为uk只是定义了两个像素同时出现的频率,而λk可以对一些情况进行惩罚,比如,人可能在桌子旁边,但是在桌子下面的可能性就更小一些。所以这个量可以学习不同情况出现的概率。而原来的距离d(i,j)只定义了两个像素间的关系,作者在这儿加入了个triple penalty,即还引入了j附近的z,这样描述三方关系便于得到更充足的局部上下文。具体结构如下: 
条件随机场CRF

这个结构的优点在于:

  • 将平均场构造成了CNN
  • 联合训练并且可以one-pass inference,而不用迭代

高斯条件随机场(G-CRF)

这个结构使用CNN分别来学习一元势函数和二元势函数。这样的结构是我们更喜欢的: 
条件随机场CRF

而此中的能量函数又不同于之前: 

E(x)=12xT(A+λI)xBx

而当(A+λI)是对称正定时,求E(x)的最小值等于求解: 
(A+λI)x=B

而G-CRF的优点在于:

  • 二次能量有明确全局
  • 解线性简便很多

感悟

  • FCN更像一种技巧。随着基本网络(如VGG, ResNet)性能的提升而不断进步。
  • 深度学习+概率图模型(GPM)是一种趋势。其实DL说白了就是进行特征提取,而GPM能够从数学理论很好的解释事物本质间的联系。
  • 概率图模型的网络化。因为GPM通常不太方便加入DL的模型中,将GPM网络化后能够是GPM参数自学习,同时构成end-to-end的系统。