您的位置:首页 > 其它

Conditional Random Fields as Recurrent Neural Networks

2016-03-09 21:42 561 查看
牛津,斯坦福,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:



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



作者为什么要构造一个这样的单元呢?这是因为原本用CRF作segmentation的时候,要优化一个energy函数:



而其中第二项不好优化:



所以作者想出了一个mean-field inference来approximate这个energy函数,mean-field inference的流程就是Algorithm 1.

4.下面分析分析Algorithm 1.

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



其中(其实就是log loss):



再使用softmax得到Q:



2)[b]Massage Passing: 经过initialization,输入到这里的还是一张map,这里使用M个高斯核作用在Q上得到M个map(作者使用了两个高斯核, a spatial kernel and a bilateral kernel)[/b]

3)[b]Weighting Filter Outputs:其实就是给M个map作pixel-wise的加权和,最后输出一个map;实现方法就是apply一个1x1的卷积核(类似于CNN的卷积操作),卷积核的参数会在反向时更新[/b]

4)[b]Compatibility Transform: 这里输入一个map,不知道是怎么extend到L个map的(L即label的总数);这里其实是增加了一个penalty,用于惩罚具有相同properties的却赋予了不同label的pixel;这里作者也提了一些改进方案,例如根据具体类别等等;这里的实现方法也是apply了一个1x1的卷积核,L个map的输入和输出,也是通过反向更新参数[/b]

5)[b]AddingUnaryPotentials: 看公式,作element-wise的减法,U-Q[/b]

6)[b]Normalization: 一个softmax操作[/b]

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



接下来就是把它当RNN使了:



Performance:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息