Conditional Random Fields as Recurrent Neural Networks

牛津,斯坦福,IDL的一篇论文

介绍:

1.传统的用于Object Recognition的CNN很难转换为用于segmentation的 pixel-wise predicting:

1)感受野过大以及pooling操作使的feature map很coarse
2)缺少smooth机制导致poor object delineation和small spurious region

2.MRF(马尔科夫随机场)和CRF(条件随机场)在pixel-labeling领域大放异彩,因此可以将MRF和CRF作为一种post-processing的手段refine别的model的结果

3.其实本文中的Deep Learning的思想用的不多,要了解CRF相关思想,看以参考这个PPT

Idea:

1.其实本文是利用一些卷积操作(可以看作是CNN的卷积层)和别的一些手段,构造了一个RNN的基本单元(类似于LSTM/GRU)

2.先放一个整体图(本文的工作就是图中的CRF-RNN部分),这个整体架构可以end-to-end training;作者在训练CRF-RNN的时候将timesteps设置为5,而在测试时设置为10:

Conditional Random Fields as Recurrent Neural Networks_第1张图片

3.CRF-RNN的基本单元的构造过程如下:

Conditional Random Fields as Recurrent Neural Networks_第2张图片
作者为什么要构造一个这样的单元呢?这是因为原本用CRF作segmentation的时候,要优化一个energy函数:
这里写图片描述
而其中第二项不好优化:
这里写图片描述
所以作者想出了一个mean-field inference来approximate这个energy函数,mean-field inference的流程就是Algorithm 1.

4.下面分析分析Algorithm 1.

1)Initialization: 根据别的model(如FCN)输出的prediction map,得到(i表示第i个像素):

这里写图片描述
其中(其实就是log loss):
这里写图片描述
再使用softmax得到Q:
这里写图片描述

2)Massage Passing: 经过initialization,输入到这里的还是一张map,这里使用M个高斯核作用在Q上得到M个map(作者使用了两个高斯核, a spatial kernel and a bilateral kernel)
3)Weighting Filter Outputs:其实就是给M个map作pixel-wise的加权和,最后输出一个map;实现方法就是apply一个1x1的卷积核(类似于CNN的卷积操作),卷积核的参数会在反向时更新
4)Compatibility Transform: 这里输入一个map,不知道是怎么extend到L个map的(L即label的总数);这里其实是增加了一个penalty,用于惩罚具有相同properties的却赋予了不同label的pixel;这里作者也提了一些改进方案,例如根据具体类别等等;这里的实现方法也是apply了一个1x1的卷积核,L个map的输入和输出,也是通过反向更新参数
5)AddingUnaryPotentials: 看公式,作element-wise的减法,U-Q
6)Normalization: 一个softmax操作

5. 构造好的类RNN单元如下:


接下来就是把它当RNN使了:
Conditional Random Fields as Recurrent Neural Networks_第3张图片

Performance:

Conditional Random Fields as Recurrent Neural Networks_第4张图片

你可能感兴趣的:(cnn,深度学习,图像分割)