文章目录
from: https://www.bilibili.com/video/BV1Wv411h7kN?p=62,21年视频
pdf
GAN 要做的事就是:找出这个distribution
找一组参数θ,使得 P G P_{G} PG 接近 P d a t a P_{data} Pdata, Maximum Likelihood (最大似然是什么?)?
Maximum Likehood 等同于 Minimize KL Divergence
找一个Generator,使得 P G P_{G} PG 和 P d a t a P_{data} Pdata的Divergence 相近。
但是 P G P_{G} PG 和 P d a t a P_{data} Pdata的公式都不知道,所以Divergence 无法直接计算。所以引入GAN
尽管我们不知道分布,但是可以sample
1固定住G,使得D 最大,这个过程等同于binary classifier,D的值跟JS divergence 也有关
直观解释:如果D很小,就分辨不出 P G P_{G} PG 和 P d a t a P_{data} Pdata, divergence自然就小,所以D的值跟divergence 成正相关
数学推导:
理解min max
对max做微分
Algorithm
Don’t update G too much
实作:D要多训练,G要少训练(因为是在D求得最大值后,再求G,但是D不可能一次性求得最优,所以要反复训练)
实作上 Objective Function换成下面的,梯度大? 不用改code?
直观:D分辨不出来
问题?