Variational Adversarial Active Learning

iccv2019的文章


介绍

  基于池的半监督算法,总的来说vaal=GAN+VAE+AL,感觉还挺有新意的。理解难度大概是在loss上。值得注意的一点是与传统的主动学习算法不同,本文方法是任务不可知的,即它不依赖于我们试图获取标记数据的任务的性能。以往算法的算样本的不确定性其实是与模型相关的不确定性,比如dropout,就是模型抽走一层看样本的不确定性,这篇文章就是与样本有关的不确定性,与我们的模型任务是无关的。

背景

VAE:简单看成是编码解码,也就是将样本降采样到潜在空间,再上采样输出,想要得到的结果就是输出与输入相对比较接近,VAE和AE的区别其中一个就是潜在空间里样本的方差和均值是和目标是对应的,以此来调整。

GAN:零和博弈,没啥好说的,简单来说就是两方在企图可以赢过对方的过程中不断进行调整。

AL:没啥好说的。

模型

 

XLYL是已标记的样本,XU是未标记样本,首先VAE的输入是label和unlabel,在经过降采样后将他们映射到潜在低维空间中,就是latent space,接下来将他们送入到GAN的鉴别去中去,由鉴别器鉴别样本是标记或未标记。这样一来VAE和GAN的D就是是一个极大极小博弈的过程了,VAE试图欺骗D样本来自已标记样本池,而D是鉴别过程中学会区分他们。最后选择最低置信度的b个送给Oracle进行标注,迭代过后模型就算训练好了。

 

挑选策略就是这样的,GAN判断是label就输出1,unlabel就输出0,输出的label结果是靠近1的,unlabel是靠近0的,所以我们选的是最低的b个。 

loss

 

 

loss分为VAE的loss和GAN的loss,其中VAE分为训练损失和对抗损失,训练损失包括label与unlabel的损失,第一部分是重构的似然,第二部分是对近似后验分布的约束。对抗损失则是让D误以为所有数据都是来自己label中,因此要让D内label靠近1,unlabel靠近0.

 

值得注意的一点是,文章这里提到了Oracle的准确性,用到了两种Oracle,一种百分百准确,一种非百分百准确,在后面的鲁棒性实验里有提及。

实验

由于前面说了,VAAL是与任务无关的,只与样本有关的策略,所以这里进行了两种实验,分类和语义分割。

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值