李宏毅 GAN lecture(2018)笔记_P4

1. Basic Thoery of GAN

what is GAN's purpose

  GAN要做的事情就是找出这个像人脸的data distribution

Maximum Likelihood Estimation

  调整变量θ使PG(xi;θ)这个distribution产生特定data的几率(total likelyhood)越大越好, 而这些data是来自于样本distribution Pdata(x)

Minimize KL Divergence

  KL散度的概念需要补一下, 直观讲, Maximum Likelyhood等同于最小化Pdata和PG之间的KL散度

Generator & Divergence

  一个Network怎么被看做是一个probability distribution??
  G网络就是在从一个Prior distribution(可能是Gaussian/Normal/...)转化成另一个distribution PG, 而引入D网络就是优化这个PG使其和Pdata的divergence越小越好, 人话就是越像越好, 所以, 问题就变成了, 怎么计算这个divergence, 因为PG和Pdata是没有formula的, 这就是GAN的神奇之处

直观理解

  从PG做sample的意思就是从Prior distribution中产生input数据, 经过G网络生成PG的sample

D calculate JS divergence of Pg & Pdata
直观理解为什么JS divergence和objective value有关

  这个时候D网络出场了, GAN的神奇之处就在这儿, 是用Discriminator来量两个没有formula的distribution之间的JS divergence, 这个JS divergence是用我们训练的Objective Function来体现的

Objective function => JS divergence #1
Objective function => JS divergence #2
Objective function => JS divergence #3
Objective function => JS divergence #4

  数学证明, max objective value和JS divergence的关系, 当我们在train一个discriminator的时候, 我们想要做的事情就是量PG和Pdata之间的JS divergence, 如果objective function和原始的GAN不一样, 比如WGAN, 那我们就是在量别的divergence

Generation => Divergence Optimization #1
Generation => Divergence Optimization #2

  我们要找一个G来使生成的图像越接近target越好, 就是在解这个散度优化的问题, 过程就是第二张图展示的, 就是先固定G, 找一个可以使objective value最大的D, 直观讲就是最挑剔的D, 然后到外层来换G, 来让刚才找到的这个D产生的objective value最小化
  第二张图要visualization的事情就是在只有三个G的情况下, 假设我们的D已经找到了, 把D简化到一维信号就是下面那三条蓝线, 那最优的G解就是G3, 就是最挑剔的D产生的object value(红点最大值)最小的情况, 然后GAN的问题就变成了如何解这个max-min的problem

iteration training to solve max-min problem

  iteration training的意义也就是说, 用来量度divergence的D并不是固定的, 根据G的不同要通过optimize objective function来求这个D, 那求到的D根据之前那个复杂的数学证明, max{D}V(G,D)就是用来量度PG和Pdata之间divergence的D, 然后再更新G, 让这个divergence尽量小, 也就是PG和Pdata之间divergence的差距尽量小, G换了之后再去做optimize objective function去求现在固定的G条件下求divergence的D长什么样, 这样来循环往复
  那我的问题是, divergence是客观存在的, 如果G变了, 那PG就会变, Pdata肯定是一直不变的, 既然量度divergence的D和G是相关的, 只要G变了, 量度的方法(D)就要变, 那怎么能保证这个过程一定是收敛的, 也就是说, 虽然你告诉我update G是在固定D的条件下, 但你最小化max{D}V(G,D)得到的那个G已经不能用之前的那个D来量度这个时候的divergence了, 那这个时候我怎么知道我在优化G的时候, 是一定朝向divergence最小的方向进行的???是不是WGAN会解掉我这个疑惑???

你可能感兴趣的:(李宏毅 GAN lecture(2018)笔记_P4)