GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN

 

0. “GAN ZOO”系列文章开更说明

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第1张图片

    GAN到底有多“热”?

    据统计,GAN的相关论文正在以指数趋势增长,如上图所示。

    But,

    GAN论文这么多,而且都是英文的,怎么可能读得完!

    为此,“AI微刊”团队将推出“GAN ZOO”系列文章,精选典型GAN模型(没有水论文),对其进行精简的解析,让你“三分钟”读完一篇论文。

    适合初学小白,也适合大牛持续追踪热度。

    再不GAN,我们就老了!

——AI 微刊《GAN ZOO》

 

 

GAN ZOO - 第1节:

分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN

 

本文是“GAN ZOO”系列第一篇,将为您:

  • 剖析原始GAN的原生缺陷以及改进方向!
  • 介绍经典模型:条件GAN(CGAN)与InfoGAN。

 


1. 原始GAN (Primary GAN ):GAN源于神奇的零和博弈,但也存在许多原生缺陷

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第2张图片 本论文首次发表于2014.6.10

                                                               

1.1 原始GAN的原理

1.1.1 原始GAN的思想:

    GAN基于博弈论中零和博弈的思想,通过生成网络G(Generator)和判别网络D(Discriminator)相互博弈,进而使G学习到样本的数据分布:

  • G是一个生成网络,接收随机噪声z,并将其拟合为样本;
  • D是一个判别网络,判断样本是真实样本x,还是G生成的假样本G(z);

    训练过程中,G生成尽可能“接近真实”的样本来欺骗D,而D尽量辨别给出的样本是真样本x还是假样本G(z),双方动态“博弈”,最终达到纳什均衡点。

1.1.2 原始GAN的模型

    GAN损失函数:

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第3张图片

    GAN算法流程:

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第4张图片

PS:原始GAN详细解析参考AI微刊另一篇文章“GAN入门”

 

1.2 原始GAN的实验

    MNIST数据集与TFD数据集生成实验,其中前5列是生成样本,最后一列是倒数第二列在真实样本集中最相近的样本,可见生成的样本与真实样本之间是有不同的。

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第5张图片

 

1.3 原始GAN的缺陷

    原始GAN存在以下四个方面的缺陷是学者们改进的方向:

1.3.1 梯度下降法训练不稳定:

    GAN基于梯度下降法进行训练,训练不稳定,G与D难以达到纳什均衡。

    纳什均衡:所谓纳什均衡,指的是参与博弈的双方处于这样一种策略组合,在该策略组合上,任何参与人单独改变策略都不会得到好处;对于GAN,就是G和D达到鞍点,而非最小值点。

    梯度下降法的强项是搜索全局最小点,因此在训练GAN的时候难以收敛到鞍点,导致要么G到达鞍点,D就远离鞍点;或者D到达鞍点,G远离鞍点,难以实现纳什均衡。

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第6张图片

1.3.2 梯度消失问题

    梯度消失问题主要是因为Loss函数存在缺陷,导致D趋近最优时,G的梯度消失。

    G将低维噪声z映射到真实样本x所在的高维空间,因此生成样本G(z)实际上是高维空间的低维样本(相当于三维空间中的一个面),与高维的x的重叠部分较少。而当D趋近于最优时,区分G(z)与x能力变强,使得两者重叠部分进一步减少。最终导致GAN的Loss函数中的JS散度趋近于一个常数,导数梯度趋近于0,不能有效训练G。

    梯度消失问题已经被Wassertein GAN模型解决,该模型将在下一篇文章中详述。

1.3.3 模式崩溃问题

    模式崩溃(Model Collapse)就是对于不同的噪声输入,G生成相似的样本。比如MNIST库中数字“7”有多种写法,如果G出现完全模式崩溃(所有生成样本基本相同),可能所有生成的“7”都是一种写法;如果G出现部分模式崩溃(所有生成样本局部相同),可能所有生成的“7”都有一个共同特征,比如都有一个小尾巴。

    模式崩溃问题部分源于Loss函数的惩罚偏好:Loss函数中的KL散度非对称,对GAN的冒险行为(即增大G(z)分布多样性)惩罚较大,对GAN的保守行为(即减小G(z)分布多样性)惩罚较小,使得GAN偏向于生成“安全”的重复样本。

    同样,模式崩溃问题已经被Wassertein GAN模型初步解决,将在下一篇文章中详述。

1.3.4 不适合处理离散数据

    文本数据是离散的,通常需要将单个词映射为高维向量,最终预测输出为一个高维one-hot向量。假设softmax的输出是(0.25,0.3,0.2)那么变换为one-hot向量是(0,1,0),但如果softmax输出是(0.05,0.25,0.05),其one-hot向量仍然是(0, 1, 0),所以G输出了不同的结果但是D给出了同样的判别结果,不能将梯度更新信息有效地传递到G中去,所以D最终输出的判别没有意义。

    不适合离散数据的另一个原因也是梯度消失问题的原因,虽然Wassertein GAN已经初步解决该问题,但是其文本生成能力依然有限。GAN在文本生成方面的模型有Seq-GAN等,将在后续文章中解读。

 

参考

[1] “GAN原理,优缺点、应用总结”,CSDN

https://blog.csdn.net/qq_25737169/article/details/78857724;

[2] “令人拍案叫绝的 Wasserstein GAN,彻底解决GAN训练不稳定问题”,搜狐

https://www.sohu.com/a/125598465_473283;


 


2. 条件GAN(Conditional GAN, CGAN):添加“隐编码”,有监督学习,生成特定样本

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第7张图片 本论文首次发表于2014.11.6

 

2.1 原始GAN的缺陷

    原始GAN是无监督模型,生成过程不可控,不能生成特定类别、属性的样本。

2.2 CGAN的改进

2.2.1 CGAN的思想

    CGAN改进的基本思想就是为GAN引入条件约束,在G与D中引入额外信息y作为条件变量,指导数据生成过程。y可以是类别标签、或者用于图像修复的部分数据、或者语义标签等。

2.2.2 CGAN的思想

(1)CGAN的损失函数:

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第8张图片

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第9张图片

    给定某个样本x,将该样本的标签y(one-hot的10维向量)分别拼接在真实样本x后构成[x, y],拼接在随机噪声z后构成[z, y],GAN完成训练之后,生成样本G(z|y)与真实样本x分布一致,并且可以通过修改y控制G(z|y)的类别。

 

2.3 CGAN的实验

    原始GAN实验是利用100维的噪声,通过G(一个MLP)生成784维的MNIST样本;CGAN则将10维的one-hot类别标签拼接在噪声和真实样本后,进行训练。

    如下为指定生成的MNIST的“7”与“3”:

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第10张图片

    以上实验数据由“AI微刊”团队实验部提供。

参考

[1] “GAN论文阅读——CGAN”,CSDN

https://blog.csdn.net/stalbo/article/details/79359380;

[2] “生成对抗网络(CGAN)(37)---《深度学习》”,CSDN

https://blog.csdn.net/u014038273/article/details/79254714;

 


3. InfoGAN: 添加“隐编码”,无监督学习,生成特定样本

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第11张图片 本论文首次发表于2016.6.12

 

3.1 原始GAN的缺陷

    原始GAN生成的数据高度耦合,数据的每一个维度不代表具体的特征,导致原始GAN不能对生成样本G(z)的某些特征进行控制。

3.2 InfoGAN的改进

3.2.1 InfoGAN的思想

    InfoGAN引入数据解耦表示(disentangled representation)。数据解耦前相互纠缠,解耦后具有可解释性。比如,人脸图像可解耦为眼睛、鼻子、抬头、侧脸等信息。

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第12张图片

3.2.2 InfoGAN的模型

(1)原理推导

    InfoGAN将输入噪声分为两部分:随机噪声z与隐编码(Latent Code) c,z用于生成样本,c用于表示部分解耦的特征。

    要让隐编码c表示生成样本G(z,c)某一方面的特征,就需要让两者具有尽可能多的共同信息。因此作者引入互信息I(c;G(z,c)),并在训练G的过程中使互信息最大化。

    因此,提出了以下的损失函数:

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第13张图片

    互信息为:

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第14张图片

注解:互信息I(X;Y),定量表示在X中有多少关于Y的信息。I(X;Y) =H(X)−H(X|Y) 可以理解为,当Y被观测到之后,X的不确定性的变化量。如果X与Y相互独立,则I(X;Y)=0,也就是观测到X后对观测Y没有任何帮助。

    但是计算互信息I(c;G(z,c))需要使用到的P(c|x)难以计算,为此作者提出用辅助分布Q(c|x)来逼近P(c|x)。用L(G,Q) 来拟合I(c;G(z,c))的下界,并且L(G,Q)可以通过蒙特卡洛估计得到。

    最终损失函数为:

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第15张图片

    其中,L(G,Q)为:

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第16张图片

    在实际操作中,作者将L(G,Q)参数化为一个神经网络,并且与D共享部分参数,以减小计算量。

 

(2)模型结构

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第17张图片

    实际上G与Q之间的过程可以理解为G将[z, c]编码为生成样本G(z, c),然后Q再将其解码为Q(c|x)的过程。

    InfoGAN和CGAN的目的基本相同,但是CGAN是有监督的,而InfoGAN是无监督的。        

 

3.3 InfoGAN的实验

    使用MNIST库做生成实验,设计了三个隐编码,c1室10维one-hot向量编码,每一维填1概率为0.1;c2,c3是连续编码,是-2到2的均匀分布。实验发现,c1可以控制类别,c2控制角度,c3控制粗细。但是c1,c2,c3三个编码为什么会实现这些功能还不太清楚。

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第18张图片

 

参考

[1] “InfoGAN介绍”,CSDN

https://blog.csdn.net/u011699990/article/details/71599067;

[2] “InfoGAN:一种无监督生成方法”,腾讯云

https://cloud.tencent.com/developer/news/333199;

 

本文完

PS: 关注本公众号“AI微刊”,后台发送“GAN ZOO” (大小写随意),即可获得本文相关的GAN论文包以及本文的源代码资源包。

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第19张图片

 

GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN_第20张图片 微信号: AI微刊

 

 

你可能感兴趣的:(论文导读)