Good Semi-supervised learning That requires a Bad GAN论文阅读笔记

前置知识

GAN(生成对抗网络)在semi-supervised learning(半监督学习)上取得了较强的实证成果,但是有两点是我们都没搞明白的

  1. discriminator(判别器)是如何从与generator(生成器)的联合训练中收益的
  2. 为什么一个好的classification(分类)效果和一个好的生成器不能同时获得

本质目标

为了更好的寻找能正确分类的low-density boundary(低密度边界)


low-density boundary

为了防止非正确分类低密度边界的干扰,我们需要用生成器产生可见样本空间中的“补样”,填充一些低密度区域,此时的生成器产生的样本分布与真实分布是不一致的,因此生成器是“bad”的。

OpenAI提出的基于GAN的半监督学习的优化目标(损失函数)如下:
[站外图片上传中...(image-d74737-1558527258331)]

参数说明

  • 标注集L={(x,y)},其中x为图像数据,{1,2,…,K}对应K个真类,还有一个K+1的假类
  • P_G、P_D是对应于G(生成器)和D(判别器)的概率分布,P_D覆盖K+1个类的分布,前K个类是真类,第K+1个类是假类(生成器生成的),和CatGAN一样
  • P是真实数据的概率分布

这个损失函数由三部分组成。第一部分是最大化在标注集L中log下的P_D条件概率的数学期望,这个是基本的监督学习的损失函数;第二部分是最大化在真实数据p中log下的P_D对前K个类的概率的数学期望;第三部分是最大化在生成数据P_G中log下P_D对第K+1类概率的数学期望。

这样看还是太复杂了吧,我这里用一些简单的语言来解释

第一部分,是希望D能从标注数据L中接收任意输入(x,y),得到的输出y^与输入时的y一致,也就是正确分类,然后将这种概率最大化。

第二部分,是希望D能从真实数据P(包含未标注数据)中接收任意输入x,得到的输出y被认为是真类,将这种概率最大化。

第三部分,是希望D能从生成数据P_G(都是假的)中接收任意输入x,得到的输出y被认为是假类,将这种概率最大化。
这里的D实际上就是一个多分类神经网络,D的最后一层就是一个softmax激活函数。

理论推导

proposition1

提议1

如果生成器D是完美的,即P_D与P的分布完全一致,那么公式的第二部分和第三部分就是矛盾的,如果第二部分大,则第三部分必然很小,反之亦然。

因此,当生成器是完美的时候,不仅生成器不起作用,而且未标记的数据也没有得到有效利用。


assumption1

假设1

收敛条件。当D收敛于一个训练集{L,U,G}(L是标注数据,U是未标注数据,G是生成数据),D能学到一个完全能正确分类的决策边界。更具体来说,(1)L中的数据均能正确分类;(2)G中的数据均被分在第K+1类(3)U中的数据均被分在前K个类中。


lemma1

corollary1

推论1

当生成的数据是无穷多的时候,根据Lemma1,我们有以下推论,D在softmax前输出的属于前K个类的值均小于等于0


proposition2

提议2

在满足推论1的情况下,我们所有的分类集合均正确分类。
直观地说,生成器生成补码样本,因此真实类的logits在补码样本中必须很低。因此,该鉴别器在低密度区域获得了类边界。

pic1

pic2

实验方法

Generator Entropy(生成熵)

Generator Entropy

这里可以用L_PT代替


L_PT

Generating Low-Density Samples(生成低密度样本)

最小化它


Generating Low-Density Samples

生成器的目标函数(损失函数)

也就是生成熵+生成低密度样本
[图片上传失败...(image-75dd29-1558527258331)]

判别器的目标函数(损失函数)

loss2

实验结果

当然是SOTA啦!


result

你可能感兴趣的:(Good Semi-supervised learning That requires a Bad GAN论文阅读笔记)