论文:https://arxiv.org/pdf/2002.04709.pdf
代码:https://github.com/cubeyoung/TA-VAAL
本人最近在调研深度主动学习,视觉方向,欢迎交流。初次写blog,mark一下。
Abstract
深度主动学习的最近探索的是任务不可知的方法选择远离当前已标注样本集的数据点以及基于任务模型。不幸的是,前者没有利用任务相关的知识,而后者似乎没有得到很好的利用总体数据分布。在这里,我们提出了任务感知的Task-Aware Variational Adversarial Active Learning(TA-VAAL),是任务不可知性的初代VAAL的改进,考虑了标签和未标记池,把学习任务损失松弛化,转化为用Rank Conditional GAN预测对任务损失的排序。本文提出的TA-VAAL的表现优于各种基准数据集,在标签平衡或不平衡的图像分类任务以及语义分割优于多种sota的AL算法。总结来讲,本文主要的贡献在于将主动学习先前工作中任务模型输出引导型的《Learning Loss for Active Learning》(发表于CVPR2019,以下简称LL4AL)和数据引导型的《Variational Adversarial Active Learning》(发表于ICCV2019,以下简称VAAL)有效结合,提出了一种结合数据特征和任务学习效果驱动的一种可行的思路。
1. Introduction
主动学习基于池的选择策略,即是在所有未标注数据集中选择一批最有价值的送去专家标注,新增加到已标注集合中,然后再在所有已标注数据集上训练下游任务模型(分类、分割等等)。本文主要将近年来深度主动学习的方法分成了task-aware(任务可知)和task-agnostic(任务不可知)两种,两者的区别在于选择待标注样本时是否用到了任务的引导,如果使用了下游任务引导则时任务可知的,否则为任务不可知。本文的动机是采用一种综合两种方式的主动学习算法,可以同时利用任务不可知方法把握标注和未标注数据的分布差异,同时兼容任务可知方法能够结合学习任务的目标引导,来选择待标注样本。
2. Related Works
3. Method
本文延续了VAAL的基本框架,这里回顾一下VAAL的方法:全监督训练阶段的每个iteration,先用已标注数据在模型上训练,接着有标注和无标注的图像一起送进VAE,其中编码器映射到latent space中的向量作为判别器D的输入,VAE负责欺瞒判别器D将所有的数据都分类为已标签数据。训练D准确的将有无标注的数据鉴别开来,判别概率为1则为已标注,0为未标注,如此vae和D形成对抗训练。模型训练结束后,所有未标注数据送入vae,将D仍最倾向于认为是未标注(概率趋近于0)的k个样本送去标注,然后更新已标注和未标注数据集,再进入下一轮全监督训练。重复以上过程直到可选样本数为0。
本文还延续了LL4AL的预测任务模型损失的模块,只是将LL4AL中的损失预测器改成用Rank Conditional GAN实现的排序器rangker,ranker的输出作为VAAL里面对抗训练中D的额外的输入,也作为vae的decoder的额外输入。这里不再介绍LL4AL的工作,感兴趣的小伙伴请查看参考资料。