论文阅读笔记|AdaGAN

AdaGAN

本文为阅读论文AdaGAN: Boosting Generative Models的理解与心得,旨在总结阐述该论文的核心思想与算法。
论文原址

  • AdaGAN
    • 符号说明
    • 算法流程
    • 算法实现
      • ChooseMixtureWeight
      • UpdateTraingWeights
    • 数学证明
      • 证明目标
      • 数学前提
        • f-divergence
        • GAN and f-divergences
        • Generative Mixture Models
      • 证明过程

符号说明

在本文中符号说明如下:

Notations Meaning
Pd P d real data distribution
PTmodel P m o d e l T mixture model distribution of T T components
Pg P g the current generative mixture model before adding new component
PZ P Z noise distribution
Q Q new component
X X data space
Z Z latent space
G G generative function
DM D M mixture discriminator
Df D f f f -divergences
SN S N training sample

算法流程

AdaGAN算法流程如下

论文阅读笔记|AdaGAN_第1张图片

现在我们讨论的目标就是:
1. 证明这件事在数学上work;
2. 找到合适的 ChooseMixtureWeight C h o o s e M i x t u r e W e i g h t UpdateTraingWeights U p d a t e T r a i n g W e i g h t s 函数。
为了更直观地理解算法,而非论文,我们从后往前考虑该篇论文,即先看算法实现,再看数学证明。

算法实现

该论文提出的 ChooseMixtureWeight C h o o s e M i x t u r e W e i g h t UpdateTraingWeights U p d a t e T r a i n g W e i g h t s 函数如下:

ChooseMixtureWeight

根据GAN中使用的Jensen-Shannon divergence我们知道, dPg/dPd d P g / d P d 可以由一个corresponding function h h DM D M 的值产生联系,即,

dPgdPd(x)=h(DM(x)) d P g d P d ( x ) = h ( D M ( x ) )

其中 h(z)=1zz h ( z ) = 1 − z z
在训练中,我们对于 SN=(X1,X2,...,XN) S N = ( X 1 , X 2 , . . . , X N ) 中的每一个训练样本 Xi X i 的权重 wi w i 做更新,算法如下:
wi=1βN(λ(1β)h(di))+ w i = 1 β N ( λ ∗ − ( 1 − β ) h ( d i ) ) +

其中 di=DM(Xi) d i = D M ( X i )
对于上式,我们还缺少 λ λ ∗ β β 的计算,其中对于 λ λ ∗ ,有
λ=βiL(λ)pi(1+1ββiL(λ)pih(di)) λ ∗ = β ∑ i ∈ L ( λ ∗ ) p i ( 1 + 1 − β β ∑ i ∈ L ( λ ∗ ) p i h ( d i ) )

其中 L(λ):={i:λ>(1β)h(di)} L ( λ ) := { i : λ > ( 1 − β ) h ( d i ) }

UpdateTraingWeights

βt=1/t β t = 1 / t t t 为迭代次数。

数学证明

就数学证明而言,我们首先要提出需要证明的结果,再推导证明过程。

证明目标

从算法流程中我们可以看出AdaGAN的核心思想是在每一次迭代中根据训练样本与混合权值训练一个弱生成器“weak” component generator Gct=GAN(SN,Wt) G t c = G A N ( S N , W t ) ,再将这个弱生成器以加权的方式与上一次迭代的生成器混合得到本次迭代的生成器 Gt=(1βt)Gt1+βtGct G t = ( 1 − β t ) G t − 1 + β t G t c

那么我们需要证明的目标就是这个迭代递增的生成器所生成的概率分布是向数据集的概率分布收敛的,这个收敛的过程可以由 Pt+1model P m o d e l t + 1 Pd P d 的散度描述。用数学语言描述就是将GAN的

minGmaxDEPd[logD(X)]+EPZ[log1D(G(Z))] min G max D E P d [ log ⁡ D ( X ) ] + E P Z [ log ⁡ 1 − D ( G ( Z ) ) ]

问题转化为
minQDf((1β)Pg||Pd) min Q D f ( ( 1 − β ) P g | | P d )

其中 Pg:=Ptmodel P g := P m o d e l t (在符号说明中涉及)。 Q Q 为在第 t+1 t + 1 次迭代时添加的new component。

为了方便理解,此处将论文中未说明的 Pd P d Q Q 的关系做简要说明。 Pg:=Ptmodel:=ti=1αiPi P g := P m o d e l t := ∑ i = 1 t α i P i ,其有 t t components。
Pt+1model:=(1β)Ptmodel+βQ=ti=1(1β)αiPi+βQ P m o d e l t + 1 := ( 1 − β ) P m o d e l t + β Q = ∑ i = 1 t ( 1 − β ) α i P i + β Q ,即 Q Q 为第 t+1 t + 1 component,且权值为 β β Pi+1=Q,αi+1=β P i + 1 = Q , α i + 1 = β
那么,如果 Pg P g 逐渐向 Pd P d 收敛,该算法对 Q Q 的需要程度将会减小,所以 β β 应是一个随迭代次数递减的数值。

但是我们知道,每一次都能得到最优解 Q Q 是不可能的,所以对于这个收敛问题,我们可以弱化为一个逐步收敛问题:

Df((1β)Pg+βQ)cDf(Pg||Pd) D f ( ( 1 − β ) P g + β Q ) ≤ c ⋅ D f ( P g | | P d )

其中 c<1 c < 1

通过算法流程我们可以发现,每次迭代, wi w i (训练权重)与 DM(Xi) D M ( X i ) (分辨效果)成负相关。特别地,当 DM(Xi)=1 D M ( X i ) = 1 (认为生成的为True)时 wi=0 w i = 0 ,当 DM(Xi)=0 D M ( X i ) = 0 (认为生成的为False)时 wi w i → ∞ 。即迭代增加 Q Q 的目的是改变训练权重 Wt W t ,使第 t+1 t + 1 次训练着重于之前迭代中效果不好的数据集。

数学前提

f-divergence

首先我们讨论 fdivergence f − d i v e r g e n c e

Df(P||Q)=Ωf(dPdQ)dQ. D f ( P | | Q ) = ∫ Ω f ( d P d Q ) d Q .

用来衡量 分布 Q Q 分布 P P 的agreement(不是距离)。
如果 P P Q Q 都对 μ μ Ω Ω 绝对连续,且 dP=pdμ d P = p d μ dQ=qdμ d Q = q d μ ,则
Df(P||Q)=Ωf(p(x)q(x))q(x)dμ(x). D f ( P | | Q ) = ∫ Ω f ( p ( x ) q ( x ) ) q ( x ) d μ ( x ) .

常用的 fdivergence f − d i v e r g e n c e 如下表所示

Divergence Corresponding f(t) f ( t )
KL-divergence tlogt t log ⁡ t
Jensen-Shannon divergence (x+1)logx+12+xlogx − ( x + 1 ) log ⁡ x + 1 2 + x log ⁡ x
reverse KL-divergence logt − log ⁡ t
Hellinger distance (t1)2,2(1t) ( t − 1 ) 2 , 2 ( 1 − t )
Total variation distance 12|t1| 1 2 | t − 1 |
X X -divergence (t1)2,t21 ( t − 1 ) 2 , t 2 − 1
α α -divergebce f(x)=41α2(1t(1+α)/2),α±1tlnt,α=1lnt,α=1 f ( x ) = { 4 1 − α 2 ( 1 − t ( 1 + α ) / 2 ) , α ≠ ± 1 t ln ⁡ t , α = 1 − ln ⁡ t , α = − 1

AdaGAN的后续推导需要用到 fdivergence f − d i v e r g e n c e 的三个性质:

  • Non-negativity fdivergence f − d i v e r g e n c e 始终为正;当且仅当 P P Q Q 重合时,它为0。
    Df(P||Q)=f(dPdQ)dQf(dPdQdQ)=f(1)=0. D f ( P | | Q ) = ∫ f ( d P d Q ) d Q ≥ f ( ∫ d P d Q d Q ) = f ( 1 ) = 0.
  • Monotonicity:如果 κ κ 是任意过渡概率使 P P Q Q 相应地变为 Pκ P κ Qκ Q κ ,然后
    Df(P||Q)Df(Pκ||Qκ). D f ( P | | Q ) ≥ D f ( P κ | | Q κ ) .
  • Joint Convexity:对于任何 0λ1 0 ≥ λ ≥ 1
    Df(λP1+(1λ)P2||λQ1+(1λ)Q2)λDf(P1||Q1)+(1λ)Df(P2||Q2) D f ( λ P 1 + ( 1 − λ ) P 2 | | λ Q 1 + ( 1 − λ ) Q 2 ) ≤ λ D f ( P 1 | | Q 1 ) + ( 1 − λ ) D f ( P 2 | | Q 2 )

更多关于 KLdivergence K L d i v e r g e n c e 的知识见Kullback-Leibler Divergence Explained

GAN and f-divergences

GAN 原式:

minGmaxDEPd[logD(X)]+EPZ[log(1D(G(Z)))] min G max D E P d [ log ⁡ D ( X ) ] + E P Z [ log ⁡ ( 1 − D ( G ( Z ) ) ) ]

Generative Mixture Models

将复杂数据分布描述为 T T 个模型,则有:

PTmodel=i=1TαiPi P m o d e l T = ∑ i = 1 T α i P i

证明过程


你可能感兴趣的:(Deep,Learning,Reinforcement,Learning)