Preface

A Paper A Day Keep the Doctor Away. 今天的文章是:

Adversarial AutoEncoders. [paper]

本文就是有名的AAE模型,对AutoEncoder加入Adversarial Regularization,将它变成了生成模型。本文借鉴了VAE的思路扩展AutoEncoder,同时借鉴GAN的思路促使合计后验q(z){q(z)}和期望先验p(z){p(z)}的prior match。

Main Contents


Notion

先定义下说明的符号:

p(z){p(z)}: desired prior。q(zx){q(z | x)}: encoding distribution。p(xz){p(x | z)}: decoding distribution。pd(x){p_d(x)}: data distribution。p(x){p(x)}: model distribution。q(z){q(z)}: aggregate posterior(合计后验),q(z)=xq(zx)pd(x)dx{q(z) = \int_{x} q(z | x) p_d(x) dx}

Basic Model

基本的AAE模型如下:

图1中灰色线包括的区域是一个标准的AutoEncoder结构,Encoder对所有的输入x{x}可以得到隐编码的合计后验q(z){q(z)}。而图中红色线包括的区域就是一个GAN,Generator就是AutoEncoder的Encoder,而Discriminator负责鉴别样本(隐编码)是来自于推断的合计后验q(z){q(z)}(负样本)还是给定的先验p(z){p(z)}(正样本),目的是优化JS(q(z)p(z)){\text{JS}\left( q(z) \| p(z) \right)}

图1 Basic AAE Model
图1 Basic AAE Model

整体模型训练分为两个阶段:(1) reconstruction phase; (2) regularization phase。 其实就是分别训练AutoEncoder和GAN。GAN的训练又分为先训练D,再训练G。

Choices of Encoder

Encoder的选择有三种方式:

(1) Deterministic: 原始Encoder,此时q(z){q(z)}的随机性来源于pd(x){p_d(x)}

(2) Gaussian Posterior: 和VAE一样,q(zx)=N(z;μ(x),σ(x)){q(z | x) = \mathcal{N}(z; \mu(x), \sigma(x))},同时训练时使用重参数化,此时q(z){q(z)}的随机性来源于q(zx){q(z | x)}的采样和pd(x){p_d(x)}

(3) Universal approximator Posterior:

Intuition

从一个直观的角度理解AAE:AutoEncoder已经可以做图像的编码、解码(生成),但是我们无法知道AutoEncoder编码的q(z){q(z)}(AE不关心这一点),也很难从中采样。AAE就是希望使得q(z){q(z)}的形式接近一个期望的p(z){p(z)},好让我们可以在p(z){p(z)}中采样,使用解码器生成图像。

从和VAE的关系上说,VAE的ELBO的相反数为:

Expd(x)[logp(x)]Epd(x)[Ezq(zx)[logp(xz)]+KL(q(zx)p(x))]=Epd(x)Ezq(zx)[logp(xz)]Epd(x)[H(q(zx))]+Eq(z)[logp(z)]=RecEntropy+CorssEntropy(q(z)p(z)){ \begin{aligned} \mathbb{E}_{x \sim p_d(x)}\left[ -\log p(x) \right] &\leq - \mathbb{E}_{p_d(x)} \left[ \mathbb{E}_{z \sim q(z|x)} \left[ log p(x | z) \right] + \text{KL}\left(q(z | x) \| p(x) \right) \right] \\ &= - \mathbb{E}_{p_d(x)} \mathbb{E}_{z \sim q(z|x)} \left[ log p(x | z) \right] - \mathbb{E}_{p_d(x)}\left[ H(q(z|x)) \right] + \mathbb{E}_{q(z)}\left[ - \log p(z) \right] \\ &= \text{Rec} - \text{Entropy} + \text{CorssEntropy}(q(z) \| p(z)) \\ \end{aligned} }

AAE的作用其实就是将上述分解的后两项替换成了另外一个促进q(z){q(z)}匹配p(z){p(z)}的形式,用adversarial tranining优化二者的JS距离。

Adaptive Models

作者针对不同任务和监督信息对AAE进行扩展。

Fully Supervised

在有监督信息(labels)的情况,扩展:

1. Label-Conditional Generation

Conditional版本的AAE,和CGAN,CVAE的目的一样,可以控制生成的图像类别,而且是fully-supervised。

图2:Label-Conditional AAE
图2:Label-Conditional AAE

思路是将监督的label信息单独输入Decoder(Generator)中,而Encoder的q(z){q(z)}仅编码和label信息独立的其他信息(称为Style)。GAN的部分不变。

Semi-Supervised

半监督下,扩展:

1. Incorporating Label Information

目的是,使得Latent space的编码和label对齐,对隐表示进行正则化:使用十个2-D混合高斯作为先验,使得每一个高斯可以对应一个class的编码。

图3:Label-Align latent space AAE
图3:Label-Align latent space AAE

思路是将监督信息(onehot)单独输入Discriminator中,使得Discriminator可以针对不同的class判别q(z){q(z)}p(zy){p(z|y)}的距离。AutoEncoder的部分不变。

除此之外,作者还将无标注类作为独立的一类,希望对于该类,Discriminator会针对整体分布进行判别。

训练时,使用正样本(采样自p(z){p(z)})训练时,将采样的mixture component的编号onehot后输入。使用负样本(来自AutoEncoder)训练时,使用 label。

注意:该方法和上节的模型不同,本节的模型注重的是促进模型隐编码的结构。不过具体怎么个不同可能还需要数学上的分析。

2. Semi-Supervised AAE

将AAE扩展到Semi-supervised Learning,通过已有的标注label,模型预测未标注的label,提高分类准确性。

图4:semi-supervised AAE
图4:semi-supervised AAE

模型的思路是:希望从图像中学习到class编码信息,假定隐编码中的y{y}编码class信息,它的先验服从一个范畴分布(Categorical Distribution),而其余的z{z}先验服从标准高斯,编码其余的Style信息。

引入q(y){q(y)}编码的学习,模型就必须引入另一对GAN优化q(y){q(y)}p(y){p(y)}的距离,即途中黄线围绕区域。

模型训练分为三个阶段:(1)reconstruction phase:训练AutoEncoder; (2)regularization phase:分别对两个GAN训练;(3)semi-supervisd classification phase:利用有标注的数据,单独训练Encoder的y输出,该部分是Categorical GAN的Generator部分,也可以看成分类器。

Unsupervised

1. Unsupvervised Clustering

针对的是图像中离散数据、连续数据的Disentangled隐表示学习的问题。

模型和图4一样,图4的模型已经可以分别建模离散和连续的隐分量。只是去除了训练的 semi-supervised classification阶段。

Dimensionality Reduction

针对高维数据的降维任务,用于高维数据的可视化。 本身AutoEncoder也可以做,但是无正则化的AutoEncoder会遭遇“fracture”问题:将流形上靠近的图像映射到隐空间差异很大的区域,也就是相似图像在隐空间的编码却不相近。

图5:Dimensionality Reduction AAe
图5:Dimensionality Reduction AAe

更具体点,任务是将m{m}类的样本降至n{n}类,方便可视化。

设计模型如图5,欲降至n{n}维,最终的表示由n{n}维的cluster head和n{n}维的隐编码相加而成。 cluster head是m{m}维的onehot输出y{y}乘以一个矩阵Wc{W_c}得到,Wc{W_c}也是可学习的参数。

除此之外,作者还加入了一个额外的cost function惩罚任意两个cluster head的欧式距离。

总结

总的来说,AAE引入对抗训练使得达到prior match效果,扩展了VAE的先验分布形式,并且避免了intractable问题。VAE的先验分布修改要重新修改重参数化等,比较麻烦,而AAE像是提供了一个framework。不过不可避免的是,AAE肯定比VAE难训练,毕竟加入了GAN嘛。