Conditional Random Fields as Recurrent Neural Networks
2016-03-09 21:42
561 查看
牛津,斯坦福,IDL的一篇论文
2)缺少smooth机制导致poor object delineation和small spurious region
作者为什么要构造一个这样的单元呢?这是因为原本用CRF作segmentation的时候,要优化一个energy函数:
而其中第二项不好优化:
所以作者想出了一个mean-field inference来approximate这个energy函数,mean-field inference的流程就是Algorithm 1.
其中(其实就是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]
接下来就是把它当RNN使了:
介绍:
1.传统的用于Object Recognition的CNN很难转换为用于segmentation的 pixel-wise predicting:
1)感受野过大以及pooling操作使的feature map很coarse2)缺少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:
相关文章推荐
- CUDA搭建
- 稀疏自动编码器 (Sparse Autoencoder)
- 白化(Whitening):PCA vs. ZCA
- softmax回归
- 卷积神经网络初探
- 如何用70行代码实现深度神经网络算法
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)
- 图像识别和图像搜索
- 卷积神经网络
- 深度学习札记
- 阈值分割
- convolutional neural network
- UFLDL Exercise: Convolutional Neural Network
- 图像智能打标签‘神器’-AlchemyVision API
- 10 个值得一试的开源深度学习框架
- 使用深度卷积网络和支撑向量机实现的商标检测与分类的例子
- 对Pedestrian Detection aided by Deep Learning Semantic Tasks的小结
- ubuntu theano 安装成功,windows theano安装失败
- 【Deep learning vs BPL】思考:complex => simple => rich