Springenberg J T. Unsupervised and Semi-supervised Learning with Categorical Generative Adversarial Networks[J]. Computer Science, 2015.
原文下载链接
2016ICLR 会议论文
文中作者提出一种从为标记或部分标记数据中学习判别分类器的方法.方法是基于一个目标函数,在观测样本和他们预测的类别分布间trades-off(交换,权衡)互信息,against生成对抗模型的分类器的鲁棒性.该算法可以理解为GAN框架的一个自然泛化或正规化信息最大化(RIM)框架的一个扩展来鲁棒分类.作者在合成数据和富有挑战性的图像分类任务上评估该方法(CatGAN绝对Gan),展示学到的分类器的鲁棒性.作者进一步定性地评估对抗生成器生成的样本的保真度,并确定CatGAN目标和判别聚类算法(RIM)之间的联系.
学习未标注数据的前提是,训练样本内呈现的结构包含可以用来推断未知标签的信息.也就是说,在无监督学习中,我们假设输入分布p(x)包含关于p(y|x)的信息,这里y属于{1,…k},表示未知标签.通过利用来自数据分布中的标记和未标记的样本,希望学到一个能捕获这种shared structure(共享结构)的表达.这样的一个表达随后可能帮助分类器只用少量标记的样本来训练就能概括出部分没有相关信息的数据分布.
1,生成式聚类
如高斯混合模型,k均值,密度估计.这些算法试图对数据分布直接建模.
2.判别式聚类
如最大化边缘聚类MMC,正规化信息最大化RIM,这些旨在通过一些分类机制而不明确地为p(X)建模来将未标记数据直接分到已很好的分开了的类别中去.
神经网络用于有监督和半监督学习,典型的方法有:训练一个参数化的生成式模型,如深度布尔兹曼机,前馈神经网络,训练自编码器网络.由于他们通过重建输入样本来明确地对数据分布建模,所有这些模型都与生成式聚类方法有关,并只用来预训练一个分类网络.
GAN是一个二元零和博弈过程
每一步,生成器由一个随机噪声生成一个样本去欺骗判别器.然后同时给判别器提供一些真实样本和生成器产生的样本,判别器要分辨出他们是真的还是假的.然后判别器获得正确的分类,生成器获得可以生成足以欺骗判别器的样本.
CatGANs
X={x1,x2=,..xn}是未标记样本数据集.我们考虑:从X数据集中无监督地学习一个判别分类器D这一问题,这样D将数据分到(预先确定好的)K个类别中去.然后,要求D(x)给出一个类别上的条件概率分布.现在学习的目标编程:训练一个概率分类器D,它的类别分配满足一些goodness of fit (吻合度)度量.显然,由于样本上真正的类别分布是未知的,我们不得不依赖于一个间接方式来评判分类器的性能,而不是最小化负对数似然函数值.
假设:X中每个类别的样本数都是一样的(k类).
这个问题的第一个发现就是,它可以自然地看作一个’soft’或概率聚类分配任务.因此,原则上可以由概率聚类算法解决.如RIM,互信息最小化等.这些方法容易过拟合.本文方法可以理解为一个鲁棒的RIM扩展(对手提供了一种自适应正则化机制)
第二个发现是,标准GAN不能直接用来解决我们提到的问题.因为最优化等式1是导致判别分类器捕获到提供的输入数据的统计–这个分类器只对判断样本x是否是来自X有用.原则上,我们希望一个可以给数据分布建模的分类器也能学到一个特征表达用来在下一步中提取类别.然而,这启发我们意识到,通过函数D执行二分类任务的方法在GAN框架中是不受限制的,因此分类器将主要关注输入特征(还没有被生成器正确地建模).反过来,这些特征不一定按我们想要的那样去分离数据.最坏的情况下,他们可以检测 来自生成器的数据中的噪声.
除了这些问题,有一个简单的方式扩展GAN框架,判别器可以用作多类别分类.
考虑做如下变化:在来自生成模型G的样本的class assignments(类别分配)仍然不确定时—我们希望可以帮助让分类器鲁棒,我们可以要求D将所有样本分到K个类别中的某一个而不是让D预测样本x属于X的概率,.
类似的,我们可以将问题”生成器生成属于数据集的样本”变成’生成属于K个中的一个确切的类别的样本’
如果我们成功的训练这个分类-生成器对,并同时确保发现的K个类别与我们感兴趣的分类问题一致(如D满足上面概括的吻合度标准),我们将拥有一个从为标记数据中训练一个分类器的通用公式.
综上,我们想解决的最优化问题与标准GAN有一个明显不同:我们的目标是学习一个通过指派一个标签y给每个样本,将数据分类到K个类别中去的分类器,而不是学习一个二分类函数.形式上,我们定义分类器D(x)为一个k类预测模型判别函数:样本x属于K个相互独立的类别的概率通过一个sofmax给出:
本文中D和G都参数化为线性或sidmoid 输出的多层神经网络.
上节中提到的吻合度标准—结合我们想用一个生成式模型来调整分类器的想法,直接命令一个学习后的判别器应该满足的三个要求,两个生成器应该满足的要求.在将他们转化成一个可学习的目标函数前,我们再重复一下,要求可视化如图1
Discriminator perspective:判别器应满足的要求:1,确定来自D的样本的类分配;2,对生成的样本分配不确定3,公平地运用所有类别
Generator perspective: 生成器应满足:1,它应该生成具有高度确定的类分配的样本,2,在K个类别上平等地分布样本
注意,对任意一个给定的x,如果没有关于K个类的辅助信息(lable),我们不能直接指定哪个类别概率应该最大化来满足要求1
….
我们将考虑改变3.2的公式成半监督情况:
…….
实现细节
D和G都用得神经网络参数化.每个考虑到的标准结构选择细节由附录给出.本节制覆盖率主要的设计选择.
GAs很难训练.如果判别器学习地太快(这种情况下生成器的损失饱和),来自公式1的表达式可能变得不稳定.第二,生成器可能会生成一种数据或者在训练期间可能会在生成的不同 模型间开始疯狂切换.
因此采取两种方法来稳定训练.1,在判别器所有层和生成器除了最后一层外的全部层上用Batch normalization,批量归一化.这可以帮助束缚每层的activation,并且我们发现这可以保护G的模式转换,同时在少量标记的情况下增强D的泛化能力.
此外,我们通过应用噪声给它的隐层来调整判别器.我们发现dropout是个有效的方法,我们发现加给batch normalized idden activations的高斯噪声产生更好的性能.我们猜测,这主要由于dropout 噪声在BN期间可以严重影响均值和方差的计算—然而高斯噪声在激活上是一个自然地假设.
…
用两个设置执行实验:1,用标记样本的一个子集优化半监督目标,等式7. 2,用未标记样本优化非监督目标,(等式9). in setup(2),学习之后是类别匹配步骤
点击查看另一博主关于此文的笔记,更精简