f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization 论文笔记

摘要

将GAN推广到variational divergence estimation. 讨论不同的f-divergence下如何实现.

介绍

GAN可以看作优化JS距离, JS距离无法直接优化, 可以通过判别器, 近似JS距离.
f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization 论文笔记
可以将JS距离推广到一般的f-divergence, 判别器也是去近似相应的距离, 然后更新生成器.

方法

f-divergence族

f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization 论文笔记

其中p,q是在测度dx和定义域X上的绝对连续密度函数, f是定义在正半轴的凸的半连续函数, f(1) = 0

f-divergence的变分估计

f-divergence牵涉到积分, 不能直接去计算, 一种方法是利用共轭函数去计算.
一个函数f的Fenchel conjugate f*定义为
f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization 论文笔记
得到的f*也是凸的半连续的, 可以再次取共轭, 有f** = f
f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization 论文笔记
利用共轭函数的性质, 对f-divergence进行变形, 有
f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization 论文笔记
T是关于x的任何一个函数, 并且在一定条件下, 等号成立, 此时最优的T*为,
f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization 论文笔记
不同的f-divergence和他们的共轭参考如下的表格
f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization 论文笔记

变分散度最小化

将上述求f-divergence的过程, 可以表示成判别器和生成器分别取最大化最小化如下的变分函数
f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization 论文笔记
判别器更新T, 生成器更新Q
因为f*的定义域有要求, 可以将T(x)表示成g(V(x))的形式, g是最后的输出函数, 输出到f*的定义域, V可以是输出没有约束的网络.
这里将g去成单调增加的函数, 像GAN中那样, 值越大表示样本越像来自这是分布.
由于T*(x)=f’(p/g), 并且g是单调增加的, 因此可以将f’(1) 看作T分类预测样本为真或者假的分解值, T(x) > f’(1), 说明分类器认为这个样本更加真实, 反之认为更假.
不同的**函数, 分类阈值等参考下表
f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization 论文笔记

算法流程

f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization 论文笔记
注: 一定条件下, 能保证收敛到鞍点

实用建议

类似GAN中, 生成器最大化判别器等输出, 也可以加速训练.
f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization 论文笔记