生成式对抗网络论文解读

资料来源:【论文复现代码数据集见评论区】全网最细讲解,原生GAN带你窥探无中生有生的奥秘~

Generative Adversarial Nets

Net后面跟着一个s代表:不只一个网络,代表很多个网络。多个网络之间的关系是Adversarial对抗的。多个网络之间互相对抗,彼此作用产生的效用是生成式模型Generative。

所以从标题出发:看出几个对抗性的网络来搭建了一个生成式的网络模型。


前期知识储备:

卷积神经网络、概率论(贝叶斯公式)、机器学习、pytorch

生成式对抗网络论文解读_第1张图片

 生成器的目标是学习到样本的数据分布,从而能生成样本欺骗判别器;

判别器的目标是判断输入样本是生成/真实的概率

 

生成式对抗网络论文解读_第2张图片

formula

 

公式中P(AB)为事件AB的联合概率。即A和B同时发生的概率。解释条件概率表中的第一个概率。

当x=0时(条件),y=0的概率:先算P(X,Y)联合概率即同时发生的概率(频数),即x和y同时等于零的频数为2,总数为4,所以P(x=0, y=0)的概率为1/2。见右表联合概率中的第一个概率1/2。P(x=0)=2/4 = 1/2。所以条件概率:P(y=0|x=0)=P(x=0, y=0)/P(x=0) = (1/2)/(1/2) = 1。 

 

判别式模型:

  • 模型学习的是条件概率分布P(Y|X)
  • 条件概率:任务是从属性X(特征)预测标记Y(类别)。

生成式模型

  • 模型学习的是联合概率分布P(X,Y)。
  • 联合概率:任务是得到属性为X且类别为Y时的联合概率。
  • 联合概率需要将所有样本总数作为分母,所以难度更大一些。

判别式模型:

  • 线性回归
  • 逻辑回归
  • K近邻(KNN)
  • 支持向量机(SVM)
  • 决策树
  • 条件随机场(CRF)
  • boosting方法。(后三者在推荐算法中比较常用。现在更多用图神经网络。)

生成式模型:

  • 朴素贝叶斯
  • 混合高斯模型
  • 隐马尔可夫模型(HMM)
  • 贝叶斯网络
  • 马尔可夫随机场(前五个是概率模型。)
  • 深度信念网络(DBN)
  • 变分自编码器。

生成式对抗网络论文解读_第3张图片

GAN的历史意义:

  • 使AI具备了图像视频的创作编辑能力
  • 启发了无/弱监督学习的研究。

 GAN结构:

生成器G:多层感知机、ReLU、Sigmoid。

判别器D:多层感知机、Maxout(已淘汰)、Dropout。

几个函数的叫法:

价值函数、目标函数:最大化的。

损失函数、代价函数:最小化的。

生成式对抗网络论文解读_第4张图片

判别器的最优解: 

生成式对抗网络论文解读_第5张图片

当Pdata=1时,数据来源于真实数据:此时Pg=0,那么判别器输出为1。

当Pdata=0时,数据来源于生成数据:此时Pg=1,判别器输出为为0。

与我们真实需求一致。

判别器取得最优解时,生成器的最优解

Pg = Pdata。

生成式对抗网络论文解读_第6张图片


信息熵

一个概率分布的复杂程度。一个分布越复杂,越混乱无序,那么信息熵就越大。

生成式对抗网络论文解读_第7张图片


KL散度:

基于分布Q来描述分布P所需的额外信息量

比如:已知昨天的天气来描述今天的天气。今天下雨的概率和昨天一样,但是今天天晴的概率要比昨天小0.1。而是阴天的概率比昨天大0.1。已知一些信息,再给我们一些额外的信息,我们就可以描述当前的状态。

KL散度可以衡量P和Q之间的差异,非对称性的度量。基于Q来测量P所需要的信息,和基于P来测量Q所需的信息,并不对等。

为了解决非对称问题:提出了JS散度。


JS散度:

基于KL散度,解决了KL散度非对称的问题。

前面是基于P或Q分布,JS散度,在两个分布P1和P2之间通过一个中间的平均分布(P1+P2)/2来分别求解KL散度。

如果两个分布距离较远,没有重叠部分时,KL散度是没有意义的,而JS散度为常数1。


GAN的优劣势

缺点:

  • 没有显示表示的Pg(x)
  • 必须同步训练G和D,可能会发生模式崩溃

优点:

  • 不使用马尔科夫链,在学习过程中不需要推理
  • 可以将多种函数合并到模型中。
  • 可以表示非常尖锐、甚至退化的分布
  • 不是直接使用数据来计算loss更新生成器,而是使用判别器的梯度,所以数据不会复制到生成器的参数中。

生成式对抗网络论文解读_第8张图片

生成式对抗网络论文解读_第9张图片

GAN与VAE的比较:

  • VAE是从编码器生成的高斯分布中进行采样。
  • GAN从随机噪声分布中采样。

价值函数:借鉴一个Min-Max Game;

训练过程:交替训练判别器与生成器。

理论证明:通过JS散度和KS散度来证明了全局最优解,通过次导数、次梯度下降证明了可收敛性。

“你必须从反对者中看到好的一面,我需要敌人,我毫不介意人们恨我,因为这能助我进步。”

You have to see the good things from the haters. I need the enemy. I don't mind people hating me, because it pushes me.


代码:github改良版本与汇总:https://github.com/eriklindernoren/PyTorch-GAN 

其他的生成式模型:VAE、自回归模型(Deepmind的星际争霸AI,AlphaStar、号称宇宙中最强大的模型,计算复杂度太高了)。

你可能感兴趣的:(#,GAN实战,神经网络,机器学习,深度学习,人工智能,算法)