一、GAN网络总体流程

随机噪声输入生成器中生成假图像,再将真图像和假图像一同输入判别器中比较,在根据判别器的结果分别更新生成器和判别器,使得生成器生成的假图像被判别器判别为真图像的概率提高,最终使得判别器无法分辨出假图像

二、论文参数介绍

z:随机噪声

pz(z):随机噪声z服从的概率分(一维均匀分布,一维高斯分布,二维均匀分布,二位高斯分布…..n维均匀分布,n维高斯分布)

G(z,θg):生成器,用于输入随机噪声z,输出假图像,其中θg为多层感知器参数(神经元权重)

D(x,θd):判别器,输入图像x,返回0到1之间的标量,越接近1代表图像越真,其中θd为多层感知器参数

pg:生成器生成的假图像服从的概率分布

x~pdata:真实数据服从的概率分布

三、论文中的一些定义

​ 生成器与判别器进行two-player minimax game(双人极大极小博弈)

​ 生成器的目的是最小化 log(1-D(G(z))) G(z) 生成器生成的假图像 D(G(z))判别器认为假图是真图的概率

​ 判别器的目的是最大化 log(D(x))

​ 用简单的例子表述生成器与判别器的关系:生成器如造假币的小偷需要使假币在进入判别器的时候使其越来越不被判别器找出,而判别器则是用来判别真币假币,要最大化判别器的性能使得假币被找出来

定义函数V(G,D):
$$
min_Gmax_D=E_{x-p_{data}}[logD(x)]+E_{z-p{(z)}}[log(1-D(G(z)))]
$$

四、GAN的理论分析

当G和D足够强的时候就达到了 non-parametric limit

G和D训练时遵从交替训练,k次判别器训练后进行一次生成器训练(若各一次交替训练的话训练代价高昂,同时还会导致过拟合)

伪代码部分:

for number of training iterations do

​ for k steps do

​ 1.采样m个噪声,生成m个假图像G(z(i)) i = 1,2,3…..m
​ 2.采样m个真实图像
​ 3.由损失函数和梯度和更新判别器权重
$$
\bigtriangledown\theta_d \frac{1}{m}\sum_{i=1}^{m} logD(x^{(i)})+log(1-D(G(z^{(i)})))
$$
​ end for

​ 1.采样m个噪声生成m个假图像G(z(i)) i=1,2,3…..m

​ 2.由损失函数和梯度更新生成器权重
$$
\bigtriangledown\theta_g\frac{1}{m}\sum_{i=1}^{m} log(D(G(z^{(i)})))
$$
​ end for

训练开始时,生成图像过于假,太容易被判别器识破,解决:

微信图片_20230605165054

五、结论推导