Bootstrap

GAN基本结构和初步理解 | 个人笔记

GAN的基本结构和初步理解

记笔记是为了将已经了解的知识从个例抽象出来,以便将其运用到普遍情况并且记下易错点、难点,方便回忆

1. 基本结构

   一个GAN(生成对抗网络)的主要结构由一个生成模型G(enerator)和一个判别模型D(iscriminator)组成

    结构如图:

    

GAN基本结构

        (Figure 1.1)GAN的基本结构

   生成模型G:可以是神经网络或者其他方式拟合出的一个函数,给定输入,负责生成整个GAN所需的输出

   判别模型D:可以当作一个判断输入真假的二分类器,也是一个函数

2. 基本原理

GAN中采取的是二者博弈的思想,由生成模型G不断生成输出并与训练集一同输入进判别模型D中进行判断,然后优化学习,
生成模型G和判别模型D二者相互博弈,共同学习从而达到最优(生成模型生成的输出与训练集放入后判别模型输出为0.5,即无法判定输入是否为真实数据)


   
学习过程

      (Figure 2.1)上图中为生成模型将给定的输入X原本服从均匀分布学习至服从正态分布的过程

 > 图源见水印,我也忘了人家地址了我

3. 深入理解

3.1 两种模型的区别

区分判别模型生成模型
功能需要先训练的模型,能够判别这个数据是否来自真实数据集
,返回值大于0.5就为真,小于0.5为假,
相当于是生成模型的标尺
在判别模型训练好后训练的模型,
能够在给定输入的情况下得到一定的输出,
然后送给判别模型判断后返回误差值,
从而达到让自身学习的目的模型
训练方法将生成模型生成的假样本集的标签设置为0,
给定的训练集标签设置为1,即相当于训练一个简单的二分类器
不断给出生成模型的输出的误差,从而可以让
生成模型不断被优化,自己学习所需要的分布
训练好判别模型后,将生成的样本标签也设置为1,
从而让判别器自己去判断它的概率,从而得到误差并且学习,
自身相当于一个有监督的机器学习,让其继续学习下去。
让生成样本越来越 接近判别器想要的程度
概率分布类型条件概率分布(原理是在y条件下,x发生的概率有多大)联合概率分布(x和y同时发生的概率)
含义在已知真实样本的条件下,本样本是真实样本的概率为多少输入x和输出y(即输出样本)同时符合要求的概率为多大
优点计算边缘分类方面比较灵活,学习简单,性能较好收敛速度快,可以学习分布,应对隐变量
缺点不能获得概率分布(密度)学习复杂,分类性能差
抽象形容就相当于你不能将低维物体转向高维一样,
计算分类就像是计算出两类样本中间的线
这里的分布较之于判别模型就是高维物体,概率分布较为清晰,
就好比是平面形状而不是线,所以它能转换为判别式模型,而反之不能

     
        (Figure 3.1) 两种分布的含义

3.2 模型的目标与原理

原始论文中,GAN的目标函数为:
min ⁡ G max ⁡ D V ( D , G ) = E x ∼ p d a t a ( x ) [ log ⁡ D ( x ) ] + E z ∼ p z ( 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}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))] minGmaxDV(D,G)=Expdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))]

其中:z是先验概率分布Pz的一个噪声样本,x是一个服从特定分布Pdata的一个真实人脸头像。并且,在收敛性上,合成的图像分布Pg与Pdata是相同的

函数优化的大体目标是:
生成函数G试图捕捉底层的数据密度,混淆判别函数D,而D的优化过程则是为了实现自然人脸图像与G生成的假人脸图像的可分辨性和区分性(真假样本的不同以及哪个是真实样本,哪个是生成样本)。G和D都可以用多层感知器(Multi-Layer Perceptron, MLP)等神经网络拟合。

函数理解:

E x ∼ p d a t a ( x ) [ log ⁡ D ( x ) ] \mathbb{E}_{\boldsymbol{x} \sim p_{\mathrm{data}}(\boldsymbol{x})}[\log D(\boldsymbol{x})] Expdata(x)[logD(x)]减少D(x)的误差,x服从Pdata分布,即给定数据集(训练集)中的人脸分布,log(D(x))保证了正相关的同时极大减少了量纲带来的影响

同理, E z ∼ p z ( z ) [ log ⁡ ( 1 − D ( G ( z ) ) ) ] \mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))] Ezpz(z)[log(1D(G(z)))]中D(G(z))的意思是将G函数从z生成的人脸图像放入D中z服从Pz分布,即输入的分布,减少1-D(G(z))就是增大判别器D判断错G生成的图像的误差,也就是说既要增大判别器D的识别人脸能力,还要慢慢地能够增大D判断错G生成的图像,也就是增强了G生成的像是给定训练集的能力,让G生成的图像越来越“真实”

3.3 总结

能够增大D判断错G生成的图像,也就是增强了G生成的像是给定训练集的能力,让G生成的图像越来越“真实”

3.3 总结

以上,就是对于最基本的GAN的结构的理解,大体上就是如此,但要对其数学统计原理进行理解还需要更深的数学基础,这在后面相信我终究会实现

;