参考代码:ADVENT
1. 概述
导读:由于在训练场景和测试场景存在偏差(domain-shift),因而就会使得训练场景(source域)下的精度在测试场景(target域)下下降的问题。这篇文章针对分割场景下的domain adaptation问题提出在像素预测结果上使用基于熵的损失,既是文章为domain adaptation提出两种损失:entropy loss和GAN的对抗损失,从而降低文章提出的target图像的熵值。
从source域到target域的切换会存在性能的损失,那么这个损失的表现形式是什么呢?文章对此引出了熵的概念,从source到target的分割结果可以从图1中看出是一个熵增的状态。
从target的分割结果中存在较多的噪声/置信度不高的情况,看作为一个高熵体。因而就可以通过熵损失的形式降低target输出结果的熵值,从而达到提升分割性能的目地。具体在文章中,是使用在独立像素预测的结果熵使用熵损失进行约束,降低预测结果的熵值,并且从全局上进行source域和target域的分布拟合。
2. 方法设计
文章提出的网络结构是在分割网络的基础上额外添加domain adaptation分支得到的,其网络结构见下图所示:
2.1 分割部分的损失
设输入source域的图像为 x s ∈ R ( H ∗ W ∗ 3 ) x_s\in R^{(H*W*3)} xs∈R(H∗W∗3),对应的one-hot标注为 y s = [ y s ( h , w , c ) ] c y_s=[ y_s^{(h,w,c)}]_c ys=[ys(h,w,c)]c,则经过分割网络之后得到分割结果 P s = [ P x ( h , w , c ) ] ( h , w , c ) P_s=[P_x^{(h,w,c)}]_{(h,w,c)} Ps=[Px(h,w,c)](h,w,c),则对应的损失函数定义为:
L s e g ( x s , y s ) = − ∑ h = 1 H ∑ w = 1 W ∑ c = 1 C y s ( h , w , c ) l o g P s ( h , w , c ) L_{seg}(x_s,y_s)=-\sum_{h=1}^H\sum_{w=1}^W\sum_{c=1}^Cy_s^{(h,w,c)}logP_s^{(h,w,c)} Lseg(xs,ys)=−h=1∑Hw=1∑Wc=1∑Cys(h,w,c)logPs(h,w,c)
对应的需要优化的网络参数:
min θ F 1 ∣ x s ∣ ∑ x s L s e g ( x s , y s ) \min_{\theta_F}\frac{1}{|x_s|}\sum_{x_s}L_{seg}(x_s,y_s) θFmin∣xs∣1xs∑Lseg(xs,