1. 方法概述
They achieve their results by marginalizing the posterior over the weights of the generator and discriminator using Stochastic Gradient Hamiltonian Monte Carlo.
一句话概括:使用 SGHMC 采样 θ \theta θ,通过边缘化噪声计算后验分布。
2. 无监督学习
-
生成器参数的后验
n g = 64 n_g=64 ng=64 为生成器的 mini-batch 中的样本数, α g \alpha_g αg 为生成器的超参数。生成器只需要喂参数和噪声,不需要真实数据 -
判别器参数的后验
判别器需要喂参数、生成样本和真实样本。 所以真实样本只用来训练判别器,但是观察 p ( θ g ∣ z , θ d ) p(\theta_g|z,\theta_d) p(θg∣z,θd) 的计算式我们可以发现,判别器可以帮助生成器进行训练,故判别器训练的越好,生成器训练的越好。
作者通过 simple Monte Carlo 采样来边缘化噪声 z 计算上面两个后验分布:
思路整理:首先从先验 p ( θ g ∣ α g ) p(\theta_g| \alpha_g) p(θg∣αg) 中采样权重 θ g \theta_g θg,从 p ( z ) p(z) p(z) 中采样白噪声 z,然后将他们通过 G ( z ; θ g ) G(z; \theta_g) G(z;θg) 转换成生成样本;判别器基于 θ d \theta_d θd 输出该输入来自真实数据的概率。直观地来讲,上面两个后验概率的贝叶斯表达式,它们的似然项分别鼓励生成器和判别器 — 当生成器完全骗过了判别器时, D ( G ( z ( i ) ; θ g ) ; θ d ) = 1 D(G(z^{(i)};θ_g);θ_d)=1 D(G(z(i);θg);θd)=1,此时似然是最大的;对于判别器,当 D ( G ( z ( i ) ; θ g ) ; θ d ) = 0 D(G(z^{(i)};θ_g);θ_d)=0 D(G(z(i);θg);θd)=0 且 D ( x ( i ) ; θ d ) = 1 D(x^{(i)};θ_d)=1 D(x(i);θd)=1 时,即判别器能够正确判断样本来自真实数据或生成器时,它的似然是最大的。
使用 simple Monte Carlo 采样来边缘化噪声 z 以更新参数 θ d \theta_d θd 和 θ g \theta_g θg这种做法有两个好处:一是噪声是已知分布,容易采样;二是(见原文)
使用 simple MC sample 边缘化噪声计算后验分布,使用 SGHMC 采样 θ \theta θ。
3. 半监督学习
一句话概括:半监督学习相对于上面的无监督学习,只需要修改判别器为 D ( x ( i ) = y ( i ) ; θ D ) D(x(i)=y(i);θ_D) D(x(i)=y(i);θD) 即可。
上面我们描述了贝叶斯GAN在无监督学习下的推断,接下来我们将解释贝叶斯GAN是如何在半监督学习下工作的。
首先提出任务,现在我们想要得到一个判别器,它不止可以判断一个样本是真或假,还能判别若该样本为真,它是属于哪一个分类。
对于上面的任务,我们将判别器的输出定义为 K 分类的输出,其中 0 表示该样本来自生成器。现在我们有少量的带标签样本和大量的无标签样本,接下来我们只需要将判别器的输出进行调整: D ( x ( i ) = y ( i ) ; θ D ) D(x(i)=y(i);θ_D) D(x(i)=y(i);θD) ,它描述了样本 x ( i ) x(i) x(i) 属于分类 y ( i ) y(i) y(i) 的概率。对于每个样本,我们将他们在每个分类上的预测概率进行求和。
For each sample, we sum over the probability predictions for each class to obtain a tweaked version(修改后的版本) of the posterior inference formulae for θ d θ_d θd and θ g θ_g θg . This is the only difference in the posterior inference. Here, by summing over probabilities for all possible labels, we are incorporating evidence from both labelled samples (for y∈(1,…,K) ), and for unlabelled samples like in the above case (label 0).
3.1 伪代码
4 论文实验
在最初几千次迭代采用Adam, 接着换成 momentum-based SGHMC 有助于模型收敛。对于半监督学习,若为K分类,则有K+1个分类,0为Fake,K+1为未标记样本。
4总结:
对于简单数据集,BGAN 与监督学习下的 GAN 相比,在生成样本多样性和生成样本质量方面没有优势;对于相对复杂数据集,BGAN 相比于 DCGAN,很好地避免了模式崩溃,但是训练时间非常长;BGAN 的最大贡献点在于半监督学习,同时避免了模式崩溃且保证了生成样本的真实性。
Q1:为什么有那么多采样方法?
A:假设我们想要对分布 P(x) 进行采样。如果我们能够非常容易的从我们想要的 P(x) 中采样,那么事情就变得非常简单了。大家都开心!但是很多时候,我们不清楚 P(x) 是什么分布,或者是压根就没见过这种分布。这个时候,怎么从 P(x) 中采样 L 个点就是一个大问题!于是就有了各种各样的采样方法。一个直观的想法是,我们能不能从一些常见的分布中采样,然后通过某种变换,使得我们从标准分布中采样可以得到从 P(x) 中采样的结果。