CRFasRNN

DeepLab使用CRF来袭条语义分割结果,准确率获得了非常大的提升。然而,DeepLab中的深度卷积神经网络和条件随机场相互独立,可以说是在DCNN的结果后面增加了一个独立的概率图模型。DCNN的训练与后面CRF的训练相独立,没有办法获得CRF的信息。由于CRF并没有与DCNN完全融合在一起,CRF的能力还没有得到完全的发挥。而CRFasRNN的贡献在于把CRF建模成深度神经网络的一部分,实现了端到端深度学习的解决方案。首先用CNN来建模CRF的一次迭代,然后用RNN来建模所有迭代。线上demo

CRF建模成CNN网络

与传统的CNN在训练后就确定了参数的做法不同,这里的CNN的系数取决于图片上的原始信息,虽然高斯核的大小跟原始图片一样,但是它只需要很少的参数。CRF的参数如高斯核的权重和标签相容性函数在整个网络的训练中得到了优化,能够进行前向、后向传播。如下图所示,给出了将DenseCRF中的平均场建模为CNN的步骤:

第五步:增加一元势函数。这一步没有额外的参数。

第六步:标准化。采用一个Softmax函数实现。

CRF迭代建模RNN

网络的行为可以用如下一组公式来表示:

文献中提到,平均场迭代不超过10次就可以收敛,在实际使用中,超过5词迭代之后,继续迭代,就不能显著地提高效果了。所以在这个问题上,并不会遇到梯度消失或梯度爆炸的问题。因此这里采用了更简洁的RNN结构,并没有采用诸如LSTM之类的结构。

Last updated