理解GAN的基本思想
1.GAN是干什么的
GAN于2014年Goodfellow提出,提出的出发点&创新点是:
①我们能不能通过深度学习生成图片?
我们通过Generative Adversarial Network [对抗生成网络]生成图片。GAN的类型 是一种“方法论”而不是网络结构 ,既可以用于与NN结合,也可以与CNN结合。
②如何解决?
生成器:Generatior
决策器:Discriminator
理解这两个结构有助于后面的公式推导,也就是说:
-
G负责从某种分布的噪音中生成一幅图片,做为fake image,生成的越“真”越好。
-
D负责监测/评价G生成的fake image,判断生成样本Real or Fake。
2.理解GAN的价值函数
2.1如何直观理解公式
- 首先为什么不用传统机器学习的Loss function而使用V(D, G)?
Value Function【价值函数】这个概念来自于强化学习(Reinforcement Learning),这里不多说,简而言之它的意思是:在状态t下通过观测自己的状态而做出一个决策,这个决策使得t+1时刻进入新的状态,而这种转移带来的收益记作Reward(R1, R2, R3…Rt)。状态结束时我们希望Value Function收益最大。
- 理解价值函数Value Function
这里说一个形象的小故事。
小天家祖传三代鉴赏师,从小家里就培养他接触家族事业——成为最伟大的Discriminator。从他还不会说话的时候就让他学习鉴赏,大量浏览赝品于真迹,未来的生活里,他鉴别成功的次数越多,他赚的钱就越多,Reward越多。这是小天家的理念。
小华家祖传三代仿制大师,一生坑人无数,从小家里就培养他接触家族手艺,成为伟大的——Generator。从还不会走路就开始学习制作仿品,未来的生活中,制作的仿品一旦被发现就要坐牢甚至被追杀,富贵险中求,越少被拆穿,Reward越多,这是小华家的理念。
**GAN就是为了生成以假乱真的样品,如果我们顶级的Discriminator都鉴别不出Generator生成的Fake Image,那么才算成功的GAN。**所以这里用Value Function 表示目的是为了获取最大收益就可以形象的理解了
2.2分析GAN公式细节——max部分
补充:公式中的 x 表是真品; z 表示噪声;D(x)表示真品概率;G(z)表示通过噪声生成的赝品;
我们希望得到最大的V,对于D(鉴别师,以下都简称D):
对于王牌判别器D
-
面对符合真品分布的x数据,我们希望D(x)能够趋近于1;
-
面对造假生成的赝品G(z)数据,我们希望D(G(z))趋近于0;
注:对于log函数,在(0,1]上获得的最大值就是0;
2.3分析GAN公式细节——min部分
我们希望得到最小的V,对于G(赝品师,以下都简称G)
对于王牌生成器G
- 面对噪声z分布的数据可以产生很难分辨的G(x)
我们希望 D(G(z)) 会被误认为真品,所以D(G(z)) -> 1,以至于
使得代价函数V趋近于最小值。
2.4分布
抽象的理解是:真实图片是一种复合某一分布的数据。每一个真实图片都可能符合Pdata分布。
虚假的图片:来自于复合噪声分布的数据所创建出来。每一个噪声数据都可能符合Pz分布。
2.5期望
数学中最常见的求最值得手段就是期望
所以
结合上述两个式子,目标是将G(z)->x ;生成得G(z)能够符合x原画的分布。
3总结
- 一步一步创建一个discriminator(D) & generator(G)
- D的目标师最好的区分real and fake Image
- 综上所述我们能得到一个近似的全局最优解是 Pg的分布会逐渐趋近Pdata分布。