论文地址:https://arxiv.org/abs/1811.12833
代码地址:valeoai/ADVENT: Adversarial Entropy Minimization for Domain Adaptation in Semantic Segmentation (github.com) 这篇论文是来自2019发表在CVPR上的论文,讲的是利用熵最小化来优化语义分割中让人头疼的无监督域适应问题。
摘要:语义分割是许多计算机视觉任务的关键问题。虽然基于卷积神经网络的方法不断在不同的基准上打破新记录,但如何很好地推广到不同的测试环境仍然是一个重大挑战。在许多现实世界的应用中,训练域和测试域中的数据分布之间确实存在很大差距,这会导致运行时严重的性能损失。在这项工作中,我们解决了语义分割中无监督域适应的任务,其损失基于像素预测的熵。为此,我们提出了两种新颖的互补方法,分别使用(i)熵损失和(ii)对抗性损失。我们在两个具有挑战性的“合成-2-真实”设置1上展示了语义分割的最先进性能,并表明该方法也可用于检测。(这里我直接将原文摘要翻译过来的)
先大概讲一下文章写了什么:
1、文章用熵最小化损失来直接引导目标域上的低置信区域,并且不会给网络带来额外的负担
2、文章提出了新颖的基于熵的对抗训练,不仅直接应用于熵最小化物体,而且建立源域到目标域的适应性

现在讲一下文章提出的方法
一、Direct entropy minimization
先看公式,这里很明显是应用了香农熵的表达式。因为是无监督的,目前的模型都是直接拿预测的标签来进行训练,但是需要的标签需要是高置信度的。因此文章通过熵最小化来限制模型,使其产生高置信度的预测。这里的文章里没有明说是什么,可以理解为目标域的image通过segmentation network后生成的软预测图,熵越小,预测的准确度越高。为什么这么说呢?
我从下面这几方面介绍:
1、不确定性量化: 逐像素的香农熵能够量化分割结果中每个像素位置的不确定性或混乱程度。熵值较高的像素可能表示模型在这些位置上的预测不确定性较大,即模糊或难以确定类别。
2、区域复杂度: 高熵区域可能反映了图像中复杂或多样化的区域,因为这些区域的预测结果更加混乱或不一致。
3、边界检测: 在对象边界附近,由于可能存在模糊的预测,熵值可能会增加。高熵值的像素可能指示着潜在的边界区域。
4、评估分割质量: 低熵区域可能意味着模型对于该区域的预测较为确信和准确,有助于评估分割结果的质量。
那么最后将熵值相加,即下面的公式:
在训练阶段时,将该损失函数和训练时的交叉熵函数相加来训练网络:

那么在这一节还牵扯到了和self-train的联系,这一部分就不讲了,读者有兴趣可以自行去了解
二、Minimizing entropy with adversarial learning
那么前面提出的熵最小有个缺陷,即他计算时是逐像素的,这样的话就会丢失掉结构信息(也可以称为空间信息),因为源域和目标域在语义布局上有很强的相似性,因此提出了这个方法。
这里提出了一个统一的对抗训练框架,该框架通过使目标的熵分布与源相似来间接最小化熵。这允许利用域之间的结构一致性。并且将 UDA 任务制定为最小化加权自信息空间上源和目标之间的分布距离。这里关于self-information(自信息),如果不懂的话可以去百度一下。
然后,构建一个全卷积判别器网络 D,其参数 θD ,以 Ix即网络图中的灰色部分作为输入,并产生域分类输出,即源(或目标)域的类标签 1(或 0)。训练鉴别器来区分来自源图像和目标图像的输出,同时训练分割网络来欺骗鉴别器。


既然(8)为训练分割网络的损失函数,那是不是可以和前面的交叉熵损失加在一起呢?答案是可以的,公式如下:
实验步骤我就不说了,感兴趣的可以自己去看
结论:在这项工作中,我们解决了语义分割的无监督域适应任务,并提出了两种互补的基于熵的方法。我们的模型在两个具有挑战性的“合成-2-真实”基准上达到了最先进的水平。两个模型的集成进一步提高了性能。在用于对象检测的 UDA 上,我们展示了一个有希望的结果,并相信使用更强大的检测架构可以获得更好的性能。(直接翻译论文的conclusion部分)