问题
主要解决的问题是自监督训练中,伪标签的质量问题。
方法
提出了一种基于迭代自训练过程的UDA框架,将问题表示为隐藏变量损失最小化,可以通过在目标数据上交替生成伪标签,并使用这些标签重新训练模型。
在自训练的顶层,提出了一个新的类别平衡自训练框架避免在伪标签生成过程中大类的梯度主导,并引入空间先验优化生成的伪标签。
自训练的方法是:根据在目标域高置信度的预测交替生成伪标签,然后使用这些伪标签和标注的源域数据微调网络。注意:这个框架假设高置信度预测的目标样本有更高的预测准确率。
使用自步学习的自监督训练
同时学习模型参数和未标注数据的伪标签是很困难的,因为很难保证伪标签的正确性。
一个更好的策略是采取”easy-to-hard“的策略,即由易到难的步骤学习,这需要用到自步学习。
首先生成置信度较高伪标签,希望他们是正确的,然后再考察那些置信度较低的伪标签。
将问题描述为,同时优化模型参数和伪标签:
。
k是一个控制忽略伪标签的超参数。一个较大的k鼓励使用更多的超参数。
交替采取下面两个步骤训练上式:
a. 固定\(w\),优化\(\hat{y}_{t,n}\);
b. 固定\(\hat{y}_{t,n}\),优化\(w\)。
优化步骤b其实是就是梯度下降法,优化步骤a是一个非线性整数规划问题:
伪标签\(\hat{y}^{(c)*}_{t,n}\)为:
即如何选择合适k,根据质量控制选择伪标签的比例。
类别平衡自监督训练
对所有类别采用相同的k会导致类别不平衡,因此可以对每个类设置一个\(k_c\)。
自步学习过程设计
\(k\)和\(k_c\)的选择:
\(k\)的选择其实就是用模型将目标图像过一遍,根据预测最高得分对每个像素进行一个排序。
而\(k_c\)就是不同类别的分开排序。
先设定p=20%,选择前五分之一的伪标签,然后以5%为一步,逐渐增加到50%。
空间先验
就是将每个类别在图像中的空间分布热图统计出来,然后乘在目标域图像的概率图上: