Conditional Random Fields as Recurrent Neural Networks阅读笔记
一般来说,CNNs中最大池化层的存在会使得分割的输出变得粗糙,CNNs亦缺少使相似像素被分配相同标签的约束。CRF的存在就可以细化上述的粗糙输出,从而产生明晰的边界,实现精细分割。
利用CRF主要有两种方式,一种是作为与CNN分离的后处理,本文采用的是第二种方式,利用带有高斯成对势的平均场近似算法实现RNN,不仅能够细化输出,还可以在训练过程中将误差回传。
能量函数:
第一项为FCN传来的概率,第二项为平滑项,鼓励相似像素被分配相似标签。
μ衡量了两个像素的相似度,f为特征向量,包含有像素位置,RGB等信息。
本文利用平均场算法迭代作为CNN层,平均场算法说明如下:
1.初始化操作:等价于应用了softmax
2.信息传递:高斯滤波器的系数基于图像特征(像素位置,RGB等),反映了一个像素与其他像素联系的紧密程度。
3.加权滤波器的输出,每个类标签有其独立权重。
4.Compatibility Transform:若想要获得更好的表现,则需考虑不同标签间的一致性,并给予其不同的惩罚,可看作滤波器空间接受域为1的卷积层。
5.与一元输入做差
6.标准化:类似于应用了无参数的softmax
上图中,T为迭代次数,多次平均场算法迭代-----RNN,若增加迭代次数,输出表现不会有明显提升。
本文使用了FCN-8s提供一元势输入,输出的细化过程只发生在RNN的循环中。如果增加平均场的迭代次数,很有可能导致梯度消失或梯度爆炸。