【阅读笔记】《Conditional Random Fields as Recurrent Neural Networks》(CRFasRNN)

本文记录了博主阅读论文《Conditional Random Fields as Recurrent Neural Networks》的笔记,代码。更新于2019.04.21。

Abstract

诸如语义分割的像素级标签任务在图像理解领域非常重要。用神经网络解决分割问题一个重要的困难是如何描绘视觉目标。为了实现这个目的,这篇文章将CNN和CRF结合在一起。To this end, we formulate mean-field approximate inference for the Conditional Random Fields with Gaussian pairwise potentials as Recurrent Neural Networks.(这句话没看懂)

这个提出的CRF-RNN是作为神经网络的一个插件,用于同时获取CNN和CRF中所需要的属性。重要的是,这篇论文中提出的方法将CRF完全建模进CNN,从而使得网络可以用平常的反向传播算法进行端到端训练,避免了用于目标描绘的后处理方法。

Introduction

诸如语义分割和深度估计等底层计算及视觉问题,通常需要给图像中的每个像素点分配一个标签。尽管像素点个体的分类非常重要,但是为了更高精度和准确率的类别分配,还需要考虑诸如图像边界(image edges)、外观一致性(appearance consistency)和空间一致性(spatial consistency)等同等重要的问题。

对于像素标注问题,设计强大的特征描述是一个关键挑战。

Related Work

Conditional Random Fields

这一部分先简单介绍一下用于像素级标注的条件随机场(CRF, Conditional Random Fields),并说明本文中用到的符号。用于像素级标注估计的上下文中的CRF,将像素标签建模成马尔科夫随机场(MRF,Markov Random Field)中的随机变量。全局观测(global observation)通常视为图像。

XiX_i表示与像素ii相关的随机变量,其代表了分配给像素ii的类别,可以是预定义好的类别集合L={l1,l2,,lL}\mathcal L=\{l_1,l_2,\dots,l_L\}中的任何一个值。用X\bf X表示由随机变量X1,X2,,XNX_1,X_2,\dots,X_N组成的向量,其中NN代表图像内元素的个数。

给定一个图(Graph)G=(V,E)G=(V,E),其中V={X1,X2,,XN}V=\{X_1,X_2,\dots,X_N\};再给定全局观测(图像)I\bf I。那么,pair (I,X)(\bf I,X)就可以由吉布斯分布(Gibbs distribution)建模成一个具有CRF特点的,形如P(X=xI)=1Z(I)exp(E(xI))P(\mathbf {X=x\vert I})=\frac{1}{Z(\mathbf I)}\text{exp}(-E(\mathbf {x\vert I}))。这里E(x)E(\bf x)成为配置xLN\mathbf x\in\mathcal L^N的能量,Z(I)Z(\bf I)配分函数(partition function)。后面为了方便省略标注I\bf I

在对应[29]CRF模型的全连接模型里(in the fully connected pairwise CRF model of [29]),分配给x\bf x的一个标注的能量为:

E(x)=Iψu(xi)+i<jψp(xi,xj)E(x)=\sum_I\psi_u(x_i)+\sum_{i<j}\psi_p(x_i,x_j)

其中,一元能量部件(unary energy components)ψu(xi)\psi_u(x_i)度量像素ii取标注xix_i的全局可能性(损失),成对能量部件(pairwise energy components)ψp(xi,xj)\psi_p(x_i,x_j)度量同时分配xix_ixjx_jiijj的损失。

在本文的模型中,全局能量通过CNN获取。粗略来讲,这个CNN在不考虑平滑性和标注分配一致性的条件下估计每个像素的标注。成对能量(pairwise energy)提供了取决于图像数据的平滑项(smoothing term),该项鼓励给具有相似性质的像素点分配相似的标注。如[29]中的做法,论文作者将pairwise potentials(对势?)建模成加权高斯函数(weighted Gaussians):

ψp(xi,xj)=μ(xi,xj)m=1Mw(m)kG(m)(fi,fj)\psi_p(x_i,x_j)=\mu(x_i,x_j)\sum_{m=1}^Mw^{(m)}k_G^{(m)}(\mathbf f_i,\mathbf f_j)

其中,对于m=1,,Mm=1,\dots,M的每个kG(m)k_G^{(m)}都是一个应用在特征向量上的高斯核。由fi\mathbf f_i表示的像素ii的特征向量是由图像特征得到的,比如空间位置和RGB值。这里用了与[29]相同的特征。函数μ(,)\mu(\cdot,\cdot)称为标注兼容性函数(label compatibility function),捕获不同标注对之间的兼容性。

最小化上述CRF能量函数E(x)E(\bf x)就得到了给定图像最可能的标注分配x\bf x。由于直接最小化非常棘手,这里采用了CRF分布的平均场近似用于近似最大化后验边缘推理(posterior marginal inference),即用一个相似分布Q(X)Q(\bf X)近似CRF分布P(X)P(\bf X)。这个分布可以写成独立边缘分布(marginal distribution)的乘积,即Q(X)=iQi(Xi)Q(\mathbf X)=\prod_iQ_i(X_i)。接下来介绍用于近似均场推理(mean-field inference)并将其重新公示化成RNN的迭代算法的步骤。

A Mean-field Iteration as a Stack of CNN Layers

本文的关键贡献之一是证明了CRF推理可以重新公式化为RNN(Recurrent Neural Network)。为了实现这个目的,论文作者首先考虑了下面算法[29]中总结的均场算法(mean-field algorithm)独立步骤,并将其描述成CNN层。

在这里插入图片描述
他们观察到,用于CRFs的filter-based近似均场推理的方法依赖于在每次迭代的均场近似上应用高斯空间和双线性滤波器。不同于CNN中的标准卷积层(训练结束后滤波器就固定了),这里应用了保留边界的高斯滤波器(edge-preserving Gaussian filters),其系数取决于图像的原始空间和外表信息(spatial and appearance information)。这些滤波器有一个额外的优势——尽管滤波器尺寸有潜力与图像一般大,它们需要更少的参数。

要做成CNN层,需要可以计算损失梯度用于反向传播。所以这里讨论了如何计算损失梯度和整个网络训练过程中如何自动优化。当算法中的每一步都可以用CNN层表述时,整个算法就可以用一个RNN表述了。

这里用Ui(l)U_i(l)表示前面节引入的负单能量(negative of the unary energy),即Ui(l)=ψu(Xi=l)U_i(l)=-\psi_u(X_i=l)。在传统CRF设置中,这个均场算法的输入Ui(l)U_i(l)是通过一个独立的分类器得到的。

Initialization

算法的初始化过程,进行操作Qi(l)1Ziexp(Ui(l))Q_i(l)\leftarrow\frac{1}{Z_i}\text{exp}(U_i(l)),其中Zi=lexp(Ui(l))Z_i=\sum_l\text{exp}(U_i(l))。注意,这里等同于对整个unary potentials UU across all the labels at each pixel应用了一个softmax function。

Message Passing

在稠密CRF公式化中,信息传递是通过对QQ个值应用MM个高斯滤波器实现的。高斯滤波器的系数是基于图像特征(如位置、RGB值)得到的,反映了一个像素与其他像素联系的强弱。既然CRF是潜在全连接的,每个滤波器的感受野都扩展到整个图像,所以没有办法蛮力应用滤波器。幸好存在近似技术,能够快速计算高维高斯滤波器。与[29]一样,这里应用了Permutohedral lattice implementation,可以以O(N)O(N)时间计算滤波器响应,其中NN是图像中像素点个数。

根据[29],这里用了两个高斯核:一个空间核(spatial kernel)和一个双线性核(bilateral kernel)。本文工作中,为了简化,控制滤波器带宽固定。

Weighting Filter Outputs

平均场迭代的下一步就是用对前面步骤的M个输出对每个类别标注ll应用加权求和。当每个类别都被独立考虑时,这个就可以看作是一个有M个通道的1x1的滤波器,输出通道数为1。既然这一步的输入和输出在反向传播的过程中都是已知的,则可以计算误差,也就可以自动学习滤波器的权重。

为了得到更多可以调参的参数,这里与[29]不同,对每个类别应用了独立核权重。这么做的考虑是对于每个视觉类别空间核和双线性核的相对重要性。比如,双线性核可能一方面在自行车检测上更重要,因为相似的颜色更具有话语权;另一方面,它们可能在电视的检测上没那么重要,因为电视屏幕上可能显示各种颜色。

Compatibility Transform

在兼容性变换(compatibility transform)这一步,前步的输出(在Algorithm 1中用Qˇ\check Q表示)在标注和变化的范围内是共享的,取决于这些标签之间的兼容性。标注llll'之间的兼容性由标注兼容性方程(label compaitibility function)μ(l,l)\mu (l,l')参数化。波特模型(potts model)μ(l,l)=]ll]\mu(l,l')=]l\neq l']给定,其中[.][.]艾弗森括号(Iverson bracket),设置一个固定的惩罚项给两个不同标签被标注给具有相似特性的两个像素。

这个模型的一个限制是,其分配相同惩罚项给所有不同标注对。直观上,把不同标注对之间的兼容性考虑进去并有针对性地惩罚的效果会更好。比如,分配给“人”和“自行车”给相邻像素点的惩罚应该比分配“天空”和“自行车”要小。因此,从数据学习函数μ\mu更好,而不是直接用波特模型固定。为了放松兼容性变换模型,论文作者还假设μ(l,l)μ(l,l)\mu(l,l')\neq\mu(l',l)是普遍的。

兼容性变换步骤可以被视作是另一个卷积层,其中滤波器的空间感受野为1x1,输入和输出通道数都是L。习得这些滤波器权重等同于学习标注兼容性函数μ\mu。既然是普通卷积,就可以和其他层一样进行训练。

Adding Unary Potentials

在这一步,一元输入(unary inputs)UU按像素减去兼容性变换步骤的输出。这一步不需要参数。反向传播可以直接把输出的error传递给输入。

Normalization

最后,迭代过程的归一化步骤可以考虑成另一个softmax操作,只是没有参数。反向传播操作与softmax相同。

The End-to-end Trainable Network

这一部分介绍用于语义图像分割的端到端深度学习系统。首先介绍如何将重复均场迭代变成RNN形式。

CRF as RNN

前面的章节已经介绍了一个均场算法可以变成CNN层的形式描述出来,如下图所示。
在这里插入图片描述
这里用函数fθf_\theta表示一个均场迭代(mean-field iteration)描述的变换:给定图像II,像素级unary potential values UU和一个由前面迭代得到的marginal probabilities QinQ_{in},经过一个均场迭代的边缘分布(marginal distribution)由fθ(U,Qin,I)f_\theta(U,Q_{in},I)给定。向量θ={w(m),μ(l,l)}\theta=\{w^{(m)},\mu(l,l')\},其中m{1, ,M}m\in\{1,\cdots,M\}l,l{l1, ,lL}l,l'\in\{l_1,\cdots,l_L\}代表前面描述的CRF参数。

多均场迭代可以通过重复上面堆叠的层实现,每次迭代从前一次迭代取QQ个估计值,一元值是其原始形式。这跟下图将迭代均场推理视作循环神经网络(RNN, Recurrent Neural Network)是一样的:
在这里插入图片描述
用图中的定义,网络的行为由下式定义,其中TT是均场迭代次数:
在这里插入图片描述
作者称这个RNN结构为CRF-RNN,其参数与前面描述的均场参数相同,这里用θ\theta描述。[29]中已经证明了,均场迭代算法用于稠密CRF可以在少于10次迭代下收敛。在大概5次迭代后,增加迭代的次数并不会显著提升结果。因此,这不会遭遇深度RNNs的梯度消失和爆炸的问题。

Completing the Picture

本文方法包括一个全卷积网络揭短,用于在不考虑结构的基础上估计像素级标注;后面跟了一个CRF-RNN阶段,实施基于CRF的概率图建模用于结构估计(CRF-based probabilistic graphical modelling for structured prediction)。整个系统因此结合了CNN和CRF的功能,可以实现反向传播算法的端到端训练(SGD)。

训练过程输入整幅图像,计算像素级的损失。用FCN-8s结构作为网络的第一部分,用于给CRF提供potentials。这个网络基于的是VGG-16,但是用于像素级估计而非图像分类,因此作了一定的改造。

Implementation Details

用Caffe框架,初始学习率10310^{-3},动量0.99。CRF-RNN均场迭代次数5,用Potts model初始化
在这里插入图片描述
损失函数为标准softmax loss function,即[30]中描述的log-liklihood error function。

Experiments

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Effect of Design Choices

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Conclusion

在这里插入图片描述
更多内容,欢迎加入星球讨论。
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章