生成对抗网络(GAN)相关笔记
Generative Adversarial Network GAN的概述 GAN的思想就是:这是一个两人的零和博弈游戏,博弈双方的利益之和是一个常数,比如两个人掰手腕,假设总的空间是一定的,你的力气大一点,那你就得到的空间多一点,相应的我的空间就少一点,相反我力气大我就得到的多一点,但有一点是确定的就是,我两的总空间是一定的,这就是二人博弈,但是呢总利益是一定的。 用一个形象的例子解释就是:GAN就好比是一个大的网络,在这个网络中有两个小的网络,一个是生成网络,可以当做是制作假钞的人, 而另一个是鉴别网络,也就是鉴别假钞的人。对于生成网络的目标就是去欺骗鉴别器,而鉴别器是为了不被生成器所欺骗。模型经过交替的优化训练,都能得到提升,理论证明,最后生成模型最好的效果是能够让鉴别器真假难分,也就是真假概率五五开。 上图是生成对抗网络的结构示意图,鉴别器接受真实样本和生成器生成的虚假样本,然后判断出真假结果。生成器接受噪声,生成出虚假样本。 GAN的原理 下式是GAN的目标函数公式: minGmaxDV(D,G)=Ex∼pdata(x)[logD(x)]+Ez∼pz(z)[log(1−D(G(z)))] \min _ { G } \max _ { D } V ( D , G ) = \mathbb { E } _ { \boldsymbol { x } \sim p _ { \mathrm { data } } ( \boldsymbol { x } ) } [ \log D ( \boldsymbol { x } ) ] + \mathbb { E } _ { \boldsymbol { z } \sim p _ { \boldsymbol { z } } ( z ) } [ \log ( 1 - D ( G ( \boldsymbol { z } ) ) ) ] 从目标函数可以看出,整个代价函数是最小化生成器,最大化鉴别器,那么在处理这个最优化问题的时候,我们可以先固定住G,然后先最大化D,然后再最小化G得到最优解。其中,在给定G的时候,最大化 V(D,G) 评估了P_G和P_data之间的差异或距离。 ...