AdaGAN
本文为阅读论文AdaGAN: Boosting Generative Models的理解与心得,旨在总结阐述该论文的核心思想与算法。
论文原址
符号说明
在本文中符号说明如下:
| Notations |
Meaning |
|
Pd
|
real data distribution |
|
PTmodel
|
mixture model distribution of T components |
|
Pg
|
the current generative mixture model before adding new component |
|
PZ
|
noise distribution |
|
Q
|
new component |
|
X
|
data space |
|
Z
|
latent space |
|
G
|
generative function |
|
DM
|
mixture discriminator |
|
Df
|
f-divergences |
|
SN
|
training sample |
算法流程
AdaGAN算法流程如下

现在我们讨论的目标就是:
1. 证明这件事在数学上work;
2. 找到合适的ChooseMixtureWeight和UpdateTraingWeights函数。
为了更直观地理解算法,而非论文,我们从后往前考虑该篇论文,即先看算法实现,再看数学证明。
算法实现
该论文提出的ChooseMixtureWeight和UpdateTraingWeights函数如下:
ChooseMixtureWeight
根据GAN中使用的Jensen-Shannon divergence我们知道,dPg/dPd可以由一个corresponding function h与DM的值产生联系,即,
dPgdPd(x)=h(DM(x))
其中h(z)=1−zz。
在训练中,我们对于SN=(X1,X2,...,XN)中的每一个训练样本Xi的权重wi做更新,算法如下:
wi=1βN(λ∗−(1−β)h(di))+
其中di=DM(Xi)。
对于上式,我们还缺少λ∗和β的计算,其中对于λ∗,有
λ∗=β∑i∈L(λ∗)pi(1+1−ββ∑i∈L(λ∗)pih(di))
其中L(λ):={i:λ>(1−β)h(di)}。
UpdateTraingWeights
βt=1/t,t为迭代次数。
数学证明
就数学证明而言,我们首先要提出需要证明的结果,再推导证明过程。
证明目标
从算法流程中我们可以看出AdaGAN的核心思想是在每一次迭代中根据训练样本与混合权值训练一个弱生成器“weak” component generator Gct=GAN(SN,Wt),再将这个弱生成器以加权的方式与上一次迭代的生成器混合得到本次迭代的生成器Gt=(1−βt)Gt−1+βtGct。
那么我们需要证明的目标就是这个迭代递增的生成器所生成的概率分布是向数据集的概率分布收敛的,这个收敛的过程可以由Pt+1model与Pd的散度描述。用数学语言描述就是将GAN的
minGmaxDEPd[logD(X)]+EPZ[log1−D(G(Z))]
问题转化为
minQDf((1−β)Pg||Pd)
其中Pg:=Ptmodel(在符号说明中涉及)。Q为在第t+1次迭代时添加的new component。
为了方便理解,此处将论文中未说明的Pd与Q的关系做简要说明。Pg:=Ptmodel:=∑ti=1αiPi,其有t components。
Pt+1model:=(1−β)Ptmodel+βQ=∑ti=1(1−β)αiPi+βQ,即Q为第t+1component,且权值为β,Pi+1=Q,αi+1=β。
那么,如果Pg逐渐向Pd收敛,该算法对Q的需要程度将会减小,所以β应是一个随迭代次数递减的数值。
但是我们知道,每一次都能得到最优解Q是不可能的,所以对于这个收敛问题,我们可以弱化为一个逐步收敛问题:
Df((1−β)Pg+βQ)≤c⋅Df(Pg||Pd)
其中c<1。
通过算法流程我们可以发现,每次迭代,wi(训练权重)与DM(Xi)(分辨效果)成负相关。特别地,当DM(Xi)=1(认为生成的为True)时wi=0,当DM(Xi)=0(认为生成的为False)时wi→∞。即迭代增加Q的目的是改变训练权重Wt,使第t+1 次训练着重于之前迭代中效果不好的数据集。
数学前提
f-divergence
首先我们讨论f−divergence
Df(P||Q)=∫Ωf(dPdQ)dQ.
用来衡量 分布 Q与 分布 P的agreement(不是距离)。
如果P和Q都对μ在Ω绝对连续,且dP=pdμ和dQ=qdμ,则
Df(P||Q)=∫Ωf(p(x)q(x))q(x)dμ(x).
常用的f−divergence如下表所示
| Divergence |
Correspondingf(t)
|
| KL-divergence |
tlogt
|
| Jensen-Shannon divergence |
−(x+1)logx+12+xlogx
|
| reverse KL-divergence |
−logt
|
| Hellinger distance |
(t√−1)2,2(1−t√)
|
| Total variation distance |
12|t−1|
|
|
X-divergence |
(t−1)2,t2−1
|
|
α-divergebce |
f(x)=⎧⎩⎨⎪⎪41−α2(1−t(1+α)/2),α≠±1tlnt,α=1−lnt,α=−1
|
AdaGAN的后续推导需要用到f−divergence的三个性质:
-
Non-negativity:f−divergence始终为正;当且仅当P和Q重合时,它为0。
Df(P||Q)=∫f(dPdQ)dQ≥f(∫dPdQdQ)=f(1)=0.
-
Monotonicity:如果κ是任意过渡概率使P和Q相应地变为Pκ和Qκ,然后
Df(P||Q)≥Df(Pκ||Qκ).
-
Joint Convexity:对于任何0≥λ≥1
Df(λP1+(1−λ)P2||λQ1+(1−λ)Q2)≤λDf(P1||Q1)+(1−λ)Df(P2||Q2)
更多关于KLdivergence的知识见Kullback-Leibler Divergence Explained
GAN and f-divergences
GAN 原式:
minGmaxDEPd[logD(X)]+EPZ[log(1−D(G(Z)))]
Generative Mixture Models
将复杂数据分布描述为T个模型,则有:
PTmodel=∑i=1TαiPi
证明过程