与pesudo label相关的UDA论文

最近看了一些与pesudo label相关的UDA论文,在这里做一些对其方法的描述与总结。

pesudo label是半监督学习中的常见算法,如果把UDA中的源域当作有标签样本,目标域当成无标签样本,那么UDA问题可以看成一种特殊的半监督问题,因此pesudo label也是UDA问题的一种解决方法。

相对于域差异方法,pesudo label方法能够有效地减小在目标域的经验误差,即下图中的,进而降低;而域差异方法注重减小源域与目标域的域差异,即下图中的。


《Asymmetric Tri-training for Unsupervised Domain Adaptation》

这篇论文采用了介于co-training和tri-training的方法进行训练。如下图所示,对于源域样本来说,采用F1和F2进行训练;对于目标域样本,采用F1、F2和Ft进行训练。该文采用F1和F2对目标域样本打伪标签。


作者认为F1和F2的co-training一定程度上可以降低域差异,但是没有寻找最大域差异的过程,我认为co-training并不能完全降低。另外训练Ft可以进一步减少目标域的熵,使得F提取出来的特征在目标域更具有区分性,降低。

作者在文章中进行了推导,下图中的是pesudo label的错误标签比例,pesudo label的错误标签比例是与(也就是前面理论中的)成正比的,因此在域差异较大的情况下,较大的情况下,pesudo label的方法会存在问题。


《Unsupervised Domain Adaptation for Semantic Segmentation via Class-Balanced Self-Training》

这篇文章在打伪标签的过程中引入了self-pace的概念,我们常见的打伪标签的方式是将目标域的数据送入训练好的网络,返回输出概率最大的索引值。那么我们能不能从输出概率中发现一些规律,减少pesudo label的错误标签比例呢?有两种常见的方法来提升伪标签的准确率:

1. 设置一个固定阈值,如果目标域样本返回的输出概率最大值高于某个阈值,我们就认为这个pesudo label是正确的,如果输出概率最大值低于某个阈值,我们就不给这个样本打标签。

2. 设置一个比例,我们将目标域样本返回的输出概率最大值进行排序,将前百分之的目标域样本打伪标签,其余样本不打标签。

第二种方法就是self-pace的想法,该文章提出的算法一可见下图


后面作者又将这个想法细化,算法一是对所有目标域样本的前百分之打伪标签,算法二是打完标签之后,对每个类别的的前百分之打伪标签。具体过程可以参考算法二


《Confidence Regularized Self-Training》

这篇论文是与前面的论文(cbst)同一个作者,也是以cbst为基础进行进一步工作的。最近半监督学习中发现soft pesudo label的效果要好于hard pesudo label,作者希望在打标签和训练网络的过程中增加熵,使得pesudo label保留更多的信息,提升网络在目标域的泛化性能,降低经验误差。

该文的大致流程可见下图


方法一:在打标签的过程中添加label regularization(LR),增加pesudo label的熵。

方法二:在网络重新训练的过程中添加model regularization(MR),增加网络输出概率的熵。

具体的正则化项可以参加下面的表格,可以看出是熵增正则化项或者类似于熵增正则化项,其目的在于增加pesudo label的熵。


作者在后面通过实验论证为什么置信正则化平滑(Confidence regularization smooths)有效,两种正则化均能够使(被模型预测为正的正样本的confidence/置信度,换句话说就是伪标签与真实标签相同时,伪标签对应类的概率值)略微降低,同时能够使(被模型预测为正的负样本的confidence/置信度,换句话说就是伪标签与真实标签不同时,伪标签对应类的概率值)明显降低,实验结果可见下图


你可能感兴趣的:(与pesudo label相关的UDA论文)