Prototypical Pseudo Label Denoising and Target Structure Learning for Domain Adaptive Semantic Segmentation
摘要
self-training: 伪标签
训练目标域
伪标签的缺点: 由于源域和目标域的不一致,标签会有噪声,特征会不一致
做法
- 估计伪标签的可能性,以便在线修正;
- 根据同一目标的两个不同视图的相对特征距离对齐原型分配,产生更紧凑的目标特征空间;
- 蒸馏预训练好的模型可以提升性能;
intro
uda的两种方式
- 对齐源域和目标域的分布
- self-training(先生成伪标签,再重新训练网络)
self-training的缺点
- 依赖于置信度阈值,而高分并不是一定正确
- 存在域gap,在目标数据中,只会考虑接近源分布的数据
对应解决方法
- 在线进行伪标签去噪:根据距每个类的距离估计类别相关的熵
- 学习紧凑的目标结构:借鉴Deepcluster,为同目标的不同视图对齐软分配
相关工作
Unsupervised domain adaptation
- 域对齐方法侧重于通过
优化差异
(optimize divergence)或在图像级别、特征图级别、输出级别采用对抗性训练
来减少分布不匹配。 - 对齐全局分布不能保证目标域上的误差很小
- 最近的方法也有从逐类别对齐特征的,但只要特征分离好,就没有必要严格对齐分布
- SSL(半监督学习)效果不错:熵最小化及其变体会对错误预测过度自信,所以self-training可以解决这问题,但是伪标签会有各种噪音(解决方法:对置信度正则、预测置信度分数、基于类中心生成伪标签,但是这些方法的label都是固定的)
- 本文提出了一种在线伪标签更新方案,其中根据目标域中估计的原型上下文来纠正错误预测
Unsupervised representation learning
- 早期方法注重于auxiliary tasks的优化,之后有一些contrastive learning的工作比如MoCo拉近了和监督学习的距离
- 网络能够学习丰富的语义特征,只要它们在不同的增强视图下保持一致,但没有在像素级任务上应用
- 本文提出了一致学习和聚类表示学习能适用于uda
Learning from noisy labels
- 设计损失:难以处理真实的数据
- Self-label correction:同时训练两个或多个学习器,并利用他们的预测一致性来衡量标签的可靠性
- 本文方法根据一些复杂的启发式算法确定的原型在线纠正不正确的标签,并且是
即时
的
方法
源域生成的伪标签不变
变为给标签加权
- 根据源域生成的伪标签初始化prototype( prototype实际上是类别的中心embedding),并且用EMA去更新prototype,可以理解为学习源域的知识并对其利用目标域进行优化
- 用生成的伪标签训练目标域分割(用SCE是一个借鉴的创新点)
ℓ s c e t = α ℓ c e ( p t , y ^ t ) + β ℓ c e ( y ^ t , p t ) \ell_{s c e}^{t}=\alpha \ell_{c e}\left(p_{t}, \hat{y}_{t}\right)+\beta \ell_{c e}\left(\hat{y}_{t}, p_{t}\right) ℓscet=αℓce(pt,