天天看点

论文笔记-Domain Adaptation for Semantic Segmentation with Maximum Squares Loss

论文信息

  • 论文标题:Domain Adaptation for Semantic Segmentation with Maximum Squares Loss
  • 论文作者:Minghao Chen, Hongyang Xue, Deng Cai
  • 研究机构:浙江大学;阿里巴巴—浙江大学前沿技术联合研究中心
  • 论文出处:ICCV 2019
  • 引用信息:
    @inproceedings{DBLP:conf/iccv/0001XC19,
      author    = {Minghao Chen and
                   Hongyang Xue and
                   Deng Cai},
      title     = {Domain Adaptation for Semantic Segmentation With Maximum Squares Loss},
      booktitle = {2019 {IEEE/CVF} International Conference on Computer Vision, {ICCV}
                   2019, Seoul, Korea (South), October 27 - November 2, 2019},
      pages     = {2090--2099},
      publisher = {{IEEE}},
      year      = {2019},
      url       = {https://doi.org/10.1109/ICCV.2019.00218},
      doi       = {10.1109/ICCV.2019.00218},
      timestamp = {Thu, 05 Mar 2020 13:43:22 +0100},
      biburl    = {https://dblp.org/rec/conf/iccv/0001XC19.bib},
      bibsource = {dblp computer science bibliography, https://dblp.org}
    }
               
  • 代码链接:https://github.com/ZJULearning/MaxSquareLoss

论文主要贡献和参考价值

  • 主要贡献:
    • (1)发现 UDA 的熵最小化方法中存在的概率分布不均衡问题,通过分析熵的梯度,进而提出最大平方损失,以线性增长的梯度平衡高置信类别中的梯度;
    • (2)解决无标签数据中的类别不平衡问题,引入图像级权重因子,比起传统的类别权重因子,更适合 UDA 任务;
    • (3)方法在多种 UDA 设置中获得 SOTA 性能,方法不需要额外的结构或者判别器,不想自训练方法,本文不需要额外的计算伪标签的过程
  • 参考价值:
    • 域适应的损失函数设计

    论文要点翻译

    • 摘要
      • 语义分割中的 DNN 通常需要大量的像素级标注的数据,但是现实世界这个数据要求通常难以满足,为了解决标注数据的需求,无监督域适应算法用于将从合成标注数据中学习到的知识迁移到新的真实数据场景中
      • 最近的一些半监督学习算法被用于 UDA 领域,已经达到了 SOTA 性能,其中最流行的半监督学习方法就是熵最小化的方法,但是把熵最小化算法用于语义分割的 UDA 中,容易迁移的样本的熵的梯度可能受较大倾向
      • 为了平衡目标样本分类的梯度,本文提出最大平方损失,最大平均损失使得训练过程避免被容易迁移的目标域数据主导影响,此外,本文引入图像级的权重比例避免无标签数据域的类别不平衡问题
      • 合成到真实以及不同城市之间的数据域的域适应实验说明了提出方法的有效性
    • 引言
      • 过去数十年,DNN 已经在语义分割任务中取得巨大成功,研究者们已经在现有数据集上极大提高了语义分割的性能,但是真实的数据中像素级的语义标签获取需要大量的手工标注工作,对于 CityScape 数据集,需要花费 90 分钟才能精确标注一张数据,因为标注数据的困难,真实数据集通常只包含较小数量的样本,使得模型难以泛化到真实场景,其中一个可能的解决方案就是使用合成场景数据集,合成数据需要的标注时间少,标注数据的质量高,但是合成图像上训练的模型难以泛化到真实世界数据,主要是合成数据与真实数据之间的域偏差导致的
      • 无监督域适应就是用于解决上述的迁移问题,在 UDA 中,标注的合成数据是源域,无标注的真实数据是目标域数据。UDA 的整体思想在于利用无标签的目标域图像帮助减少两个域之间的差异
      • 最近,受到半监督学习的启发,基于 UDA 的半监督方法被引入用于对齐不同域之间的特征分布,这些半监督学习方法在分类任务和语义分割任务中都取得了不错的性能,熵最小化是其中的鼓励非歧义聚类类簇指派的方法,也是其中的最受欢迎的半监督学习方法,ADVENT 使用熵最小化算法用于语义分割中的 UDA,但是其结果和现有的 SOTA 算法仍有一定的性能水平
      • 通过分析熵最小化算法的梯度,本文发现对于目标样本中的更大的梯度来说往往会有更高的预测,如果在自监督过程中利用这个假设,则预测高概率的样本通常是更精确的,而预测精度较高的区域则通常比低精度的样本训练更充足,因此,上最小化方法使得样本中容易迁移的样本受到更多的关注,使得难以迁移的样本训练不足,这个问题可以用术语概率分布不平衡描述。更容易迁移的类别通常有较高的预测概率。导致梯度比难以迁移的样本大,一个简单的解决策略就是将预测概率 P 用 P s c a l e d = ( 1 − 2 γ ) P + γ P_{scaled}=(1-2\gamma)P+\gamma Pscaled​=(1−2γ)P+γ 替换,其中的 γ \gamma γ 是尺度比例,最大梯度可以据此进行调节,但是,这个方法引入了超参数,这是训练比较难以设置的
      • 本文中提出新的损失,即最大平方损失,解决概率分布不均衡的问题, 由于最大平方损失梯度是线性增长的,因此,可以组织高置信区域产生过度的梯度,同时,本文也说明了,优化本文 的损失函数等价于优化皮尔逊卡方散度,最大化散度可以实现源域和目标域的类别级的分布对齐
      • 此外,本文注意到无标签数据域中还存在类别不平衡问题,由于目标数据域不存在标注,本文提出图像及的权重因子,主要基于图像中不同类别的百分比,另外,本文利用多级别的输出提高网络性能,利用弱监督学习的思想生成自产生的指导用于训练低级特征
      • 主要贡献:(1)发现 UDA 的熵最小化方法中存在的概率分布不均衡问题,通过分析熵的梯度,进而提出最大平方损失,以线性增长的梯度平衡高置信类别中的梯度;(2)解决无标签数据中的类别不平衡问题,引入图像级权重因子,比起传统的类别权重因子,更适合 UDA 任务;(3)方法在多种 UDA 设置中获得 SOTA 性能,方法不需要额外的结构或者判别器,不想自训练方法,本文不需要额外的计算伪标签的过程
    • 相关工作
      • 语义分割:DNN 典型网络、合成数据方法
      • UDA:MMD
      • 用于语义分割的 UDA:CyCADA、CycleGAN
      • 自监督方法
    • 方法
      • UDA 概览
        • 源域数据 D S = { ( x s , y s } \mathcal D_S=\{(x_s,y_s\} DS​={(xs​,ys​} 和目标域数据 D T = { x t } \mathcal D_T=\{x_t\} DT​={xt​} 通常的语义分割 UDA 中的目标函数为 L ( x s , x t ) = L C E ( p s , y s ) + λ T L T ( x t ) \mathcal L(x_s,x_t)=\mathcal L_{CE}(p_s,y_s)+\lambda_T\mathcal L_T(x_t) L(xs​,xt​)=LCE​(ps​,ys​)+λT​LT​(xt​),其中 L C E ( p s , y s ) = − 1 N ∑ n = 1 N ∑ c = 1 C y s n , c log ⁡ p s n , c \mathcal L_{CE}(p_s,y_s)=-\frac 1N \sum_{n=1}^N\sum_{c=1}^Cy_s^{n,c}\log p_s^{n,c} LCE​(ps​,ys​)=−N1​∑n=1N​∑c=1C​ysn,c​logpsn,c​, p s n , c p_s^{n,c} psn,c​ 表示样本 x s x_s xs​ 的 n 点被预测为类 c 的概率
        • 熵最小化:最小化熵算法, L T ( x t ) = ∑ n = 1 N ∑ c = 1 C p t n , c log ⁡ p t n , c \mathcal L_T(x_t)=\sum_{n=1}^N\sum_{c=1}^Cp_t^{n,c}\log p_t^{n,c} LT​(xt​)=∑n=1N​∑c=1C​ptn,c​logptn,c​ 为了简单化,不妨考虑二分类问题,此时可以将熵和梯度重写为 H ( p ∣ x t ) = − p log ⁡ p − ( 1 − p ) log ⁡ ( 1 − p ) H(p|x_t)=-p\log p -(1-p)\log (1-p) H(p∣xt​)=−plogp−(1−p)log(1−p) , d H d p = ∣ log ⁡ p − log ⁡ ( 1 − p ) ∣ \frac {dH}{dp}=|\log p-\log(1-p)| dpdH​=∣logp−log(1−p)∣ 则将梯度绘制出来之后可以观察到高概率的点比均值点大得多,因此,熵最小化之后的关键原理在于目标域样本的训练是高概率区域指导的,这些区域理论上也应当是更加精确的
      • 最大平方损失
        • 概率不均衡问题:不同类之间的概率分布变化很多,高精度的类别通常也有较高的预测概率,但是,高概率点的梯度增长近似为 ∣ log ⁡ p ∣ ( p → 0 ) |\log p|(p \to 0) ∣logp∣(p→0) 可能趋近于无穷大,因此导致简单的类别可能产生比困难类别大许多的梯度值,为了解决这个问题,定义最大平方损失 L T ( x t ) = − 1 2 N ∑ n = 1 N ∑ c = 1 C ( p t n , c ) 2 \mathcal L_T(x_t)=-\frac{1}{2N} \sum_{n=1}^N\sum_{c=1}^C(p_t^{n,c})^2 LT​(xt​)=−2N1​∑n=1N​∑c=1C​(ptn,c​)2
        • 最大平方损失的好处:对于二分类问题,最大平方损失和梯度函数可以写为 M S ( p ∣ x t ) = − p 2 − ( 1 − p ) 2 MS(p|x_t)=-p^2-(1-p)^2 MS(p∣xt​)=−p2−(1−p)2, ∣ d M S d p ∣ = ∣ 4 p − 2 ∣ |\frac{d MS}{dp}|=|4p-2| ∣dpdMS​∣=∣4p−2∣ 因此,最大平方损失的梯度是线性增长的,比起熵最小化方法来说梯度更为均衡
        • f-散度 视角:目标部分损失 L T ( x t ) \mathcal L_T(x_t) LT​(xt​) 可以看作是模型预测分布 p n , c p^{n,c} pn,c 和一致分布 U = 1 C \mathcal U=\frac1C U=C1​ 之间的距离,最小化这个距离可以减少目标样本的歧义,帮助类别之间可分性增强。概率论中使用 f 散度衡量不同分布之间的差异 D f ( p ∥ q ) = ∑ c q ( c ) f ( p ( c ) q ( c ) ) D_f(p\|q)=\sum_c q(c)f(\frac{p(c)}{q(c)}) Df​(p∥q)=∑c​q(c)f(q(c)p(c)​) ,考虑皮尔逊卡方散度 f ( t ) = t 2 − 1 f(t)=t^2-1 f(t)=t2−1 则, D X 2 ( p n , c ∥ U ) = C ∑ c ( p n , c ) 2 − 1 D_{\mathcal X^2}(p^{n,c}\|\mathcal U)=C\sum_c(p^{n,c})^2-1 DX2​(pn,c∥U)=C∑c​(pn,c)2−1
      • 图像级的权重因子
        • 高精度的类别通常是标签图中的更多像素,导致预测质量的不均衡,常规方法在于将不同类别的数量进行平衡,主要使用权重因子 α c \alpha_c αc​ 通常设置为类别概率的倒数,但是在 UDA 任务中没有类别标签用于计算分类的频率,同时将目标类别的统计信息替换不能保证在目标域和源域有相同的类别频率
        • 不适用整个数据域的频率,计算每个目标图像,如果 c ∗ = a r g m a x c p n , c c^*=argmax_c p^{n,c} c∗=argmaxc​pn,c , m m , c ∗ = 1 m^{m,c^*}=1 mm,c∗=1 ,否则 为 0,将和除以 N 得到目标图像的平均损失,基于类别数量 N c N^c Nc 计算平均损失,由于预测不精确,在两者之间的插值更为稳定,因此 L T ( x t ) = − ∑ n = 1 N ∑ c = 1 C 1 2 ( N c ) α × N 1 − α ( p t n , c ) 2 \mathcal L_T(x_t)=- \sum_{n=1}^N\sum_{c=1}^C\frac{1}{2(N^c)^\alpha\times N^{1-\alpha}}(p_t^{n,c})^2 LT​(xt​)=−∑n=1N​∑c=1C​2(Nc)α×N1−α1​(ptn,c​)2
      • 多级别的自产的 UDA 指导
        • 提取 ResNet 中的 conv4 层的特征,加上 ASPP 模块作为低级输出,将目标函数拓展为 L T ( x t ) = L T f i n a l ( x t ) + λ l o w L T l o w ( x t ) \mathcal L_T(x_t)=\mathcal L_T^{final}(x_t)+\lambda_{low}\mathcal L_T^{low}(x_t) LT​(xt​)=LTfinal​(xt​)+λlow​LTlow​(xt​)
        • 因此,采用弱监督学习中的自产生的指导学习,首先将输出 P e n s P_{ens} Pens​ 进行集成,在不同级别的输出做平均,得到 P f i n a l , P l o w P_{final},P_{low} Pfinal​,Plow​ 之后进行集成,之后可以得到自产生的指导 当 c ∗ = a r g m a x c p e n s n , c , p f i n a l n , c ∗ > δ c^*= \mathtt{argmax}_c p_{ens}^{n,c}, p_{final}^{n,c^*}>\delta c∗=argmaxc​pensn,c​,pfinaln,c∗​>δ 或者 p l o w n , c ∗ > δ p_{low}^{n,c^*}>\delta plown,c∗​>δ,则 y t ‾ n , c ∗ = 1 \overline{y_t}^{n,c^*}=1 yt​​n,c∗=1 否则为 0, δ \delta δ 设置不影响实验结果,0.95 是本文的设置值
        • 因此,最终的指导 L T l o w ( x t ) = L C E ( p l o w , y t ‾ n , c ∗ ) \mathcal L_T^{low}(x_t)=\mathcal L_{CE}(p_{low},\overline{y_t}^{n,c^*}) LTlow​(xt​)=LCE​(plow​,yt​​n,c∗)

继续阅读