第43周:GAN总结
目录
摘要
Abstract
计算机视觉中的分类
架构变体
损失变体
时间序列中的GAN
连续型GAN
离散型GAN
总结
摘要
本周总结了GAN的变形,主要从图像处理和时间序列生成两部分入手,分别找出了其中比较经典的几种GAN变种模型,简单分析了其结构图以及损失函数的变化。阅读了相关GAN变种的原始文献以及综述,了解到了不同变种GAN模型的优缺点和相对于原始GAN的问题解决状况。
Abstract
This week, we summarized the variations of GAN, mainly focusing on image processing and time series generation. We identified several classic GAN variant models and briefly analyzed their structural diagrams and changes in loss functions. I have read the original literature and reviews related to GAN variants, and gained an understanding of the advantages and disadvantages of different variant GAN models, as well as their problem-solving status relative to the original GAN.
原始GAN的目标表达式
前面的学习中已经做过完整的推导
原始GAN遇到的问题:
1)生成高质量的图像;
2)生成图像的多样性;
3)稳定的训练。
GAN分类总结
计算机视觉中的分类
我们将当前的GANs分为两种主要的变体,即架构变体和损失变体。
架构变体
在架构变体上,我们分别归纳了网络架构、潜在空间和应用重点三大类。
网络架构是指对GAN体系结构的整体改进或修改,如在PROGAN中部署的渐进机制。
潜在空间这一类别表明,结构修改是基于潜在空间的不同表示进行的,例如,CGAN涉及编码到生成器和判别器的标签信息。
应用重点是指根据不同的应用进行修改,例如CycleGAN有专门处理图像风格迁移的架构。
损失变体
在损失变体方面,我们将其分为损失类型和正则化两类。
损失类型是指针对GANs优化的不同损失函数,损失函数分为基于积分概率度量(IPM)的损失函数和基于非积分概率度量(Non-IPM)的损失函数。我们将在基于IPM的GANs中,判别器被限制在一个特定的函数类,例如WGAN中的鉴别器被限制在1-Lipschitz。基于非IPM的GANs中的判别器没有这样的约束。
正则化是指对损失函数设计额外的惩罚或对网络进行任何类型的归一化操作。基于非IPM的GANs中的判别器没有被限定到特定函数的约束。
network architecture
1.1.1 LAPGAN
LAPGAN是一种用于生成高分辨率图像的生成对抗网络(GAN)变体,其核心思想是结合拉普拉斯金字塔结构和条件对抗生成网络(CGAN),通过分层的方式逐步生成高质量的图像
1.1.2 DCGAN
DCGAN是生成对抗网络(GAN)的一个重要变体,它通过引入CNN的架构改进了传统GAN的训练稳定性和生成质量。DCGAN的思想主要集中在如何将卷积神经网络的强大特征提取能力与GAN的生成对抗机制相结合,从而实现更高效、更稳定的图像生成。
问题:最大池化层会导致信息丢失
解决:将池化层用微步幅卷积层代替,既能避免上述问题,而且对于上下采样更加灵活
在生成器和判别器中,微步幅卷积层来代替pooling层,下图是反卷积和微步幅卷积的区别:
上图左边是反卷积,它是整个矩阵的周围添0;右边是微步幅卷积,它是将矩阵拆开在每个像素点周围添0。
1.1.3 BEGAN
BEGAN(Boundary Equilibrium GAN,边界平衡生成对抗网络)是一种基于自编码器的生成对抗网络,其核心思想是通过平衡生成器和判别器的训练,解决传统GAN训练过程中的不稳定性和model collapse问题
latent space
1.2.1 cGAN
CGAN(Conditional Generative Adversarial Network)是生成对抗网络(GAN)的一种变体。它的基本思想是,使生成器能够生成与给定条件相匹配的合成数据,而判别器则负责区分真实数据和生成数据。相比于GAN,它引入了条件信息(y),使得生成器可以生成与给定条件相匹配的合成数据,从而提高了生成数据的可控性和针对性。
问题:只能产生出清晰的图片,但并不能判断其是否符合需要的条件
解决:在判别器的输入中增添一个condition,最终判别图片真伪时需要考虑到是否符合该条件c的描述
cGAN的目标表达式的推导如下:
cGAN是半监督学习,所以生成器的输入是一组数据(文字描述,图像)
解决问题:当原始数据非常复杂,而判别器又无法传递出更细节的信息时,生成器自然无法生成能够以假乱真的“假数据”。也就是说,原始GAN中的生成器的输入都是随机产生的噪音。
1.2.2 BiGAN
BiGAN(Bidirectional Generative Adversarial Networks,双向生成对抗网络)是生成对抗网络(GAN)的一种扩展,其核心思想是通过引入编码器(Encoder)来学习从真实数据到潜在空间的逆映射,从而更好地支持生成器(Generator)生成更具有语义丰富性的合成数据。
解决问题:原始GAN只能从潜在空间生成数据,但无法将数据映射回潜在空间。BiGAN通过引入编码器 E,实现了从数据空间到潜在空间的逆映射,使得模型能够双向操作。
1.2.3 SGAN
SGAN(Semi-Supervised GAN,半监督生成对抗网络)是一种结合了半监督学习和生成对抗网络(GAN)的模型,旨在通过少量标注数据和大量未标注数据来提升分类性能,同时生成高质量的样本。
可以从上述网络架构图中看出,训练集分为有标签和无标签的两类样本数据,generator将随机噪声变成伪样本,将有标签的真实样本和无标签的真伪样本都放入discriminator中进行半监督的判别。
解决问题:原始GAN是无监督的训练状态,SGAN在discriminator中引入了监督机制。能够提高模型生成的稳定性,一定程度上减少原始GAN的model collapse的问题
1.3.1 CycleGAN
CycleGAN(循环一致性生成对抗网络)是一种用于无监督图像到图像转换的深度学习模型,其核心思想是通过循环一致性损失来实现两个不同域之间的图像转换,而无需成对的训练数据。
1.3.2 SRGAN
SRGAN(Super-Resolution Generative Adversarial Networks,超分辨率生成对抗网络)是一种用于图像超分辨率重建的深度学习模型,结合了生成对抗网络(GAN)和残差网络(ResNet)的架构,能够生成高质量的高分辨率图像。 其中生成器采用深度残差SRResNet的网络架构,
这里的generator是将低分辨率的图像经过残差和卷积之后生成高分辨率的图像;discriminator则是用来区分高分辨率和低分辨率的图像,也就充当了一个“二元分类器”的作用。
loss types
2.1.1 RGAN
RGAN(Relativistic Generative Adversarial Networks,相对生成对抗网络)是一种改进的生成对抗网络架构,其核心思想是通过引入相对性判别信息,优化生成器和判别器的训练过程,从而提高生成质量和训练稳定性。
与原始GAN不同的点来说,RGAN在提升伪数据是真实的概率的同时还应该降低真实数据是真实的概率。
相对判别器的损失函数与原始GAN的discriminator不同,目标式如下:
2.1.2 WGAN
WGAN(Wasserstein GAN)是一种改进的生成对抗网络(GAN)架构,其核心思想是通过引入Wasserstein距离来替代传统的JS散度,从而解决传统GAN在训练过程中存在的不稳定性、梯度消失和模式坍塌等问题。
WGAN的目标式如下:
关于这个表达式,D 被加上了 1-Lipschitz function(如下图)的限制:
由于原始GAN使用的是JS-divergence所以其被限制到(0,1)之间,但是WGAN采用Wasserstein距离没有上下界,会导致该函数无法收敛,所以需要有限制函数“1-Lipschitz function”
问题:一般来说,discriminator的判别效果越好,梯度消失的程度就越严重
解决:EM距离能够更好的衡量和
之间的距离
遗留问题:Was距离的计算方式并不是很严格,一般WGAN采用的是Weight Clipping方法,和
只能保证不被无限拉远(不收敛),但是无法保证其被约束在1-Lipschitz function中。
regularization
2.2.1 WGAN-GP
WGAN-GP(Wasserstein GAN with Gradient Penalty)是WGAN的改进版本,其核心思想是通过引入梯度惩罚(Gradient Penalty)来替代WGAN中的权重裁剪(Weight Clipping),从而进一步提升训练的稳定性和生成质量
解决问题:解决了原始WGAN无法被约束的问题
可以看出, 1-Lipschitz function的等价形式如下:
在目标函数D(x)可微的情况下,函数均满足约束条件;但是不可微时则不一定满足,所以我们需要统计这些不满足约束条件的项,让其得到一定的“惩罚”,其中不满足条件的采样点分布应该位于
和
之间,定义该“受惩罚”分布为
其改进后的目标式如下:
2.2.2 SN-GAN
SN-GAN(Spectral Normalization GAN,谱归一化生成对抗网络)是一种通过引入谱归一化技术来稳定生成对抗网络训练的方法。其核心思想是通过约束判别器中每一层的谱范数,来控制判别器的Lipschitz常数,从而避免训练过程中的梯度爆炸和不稳定。
step1 初始化
对于每一层,都初始化一个向量
step2 更新每层
2.1 应用幂迭代
2.2 计算谱归一化权重
2.3 用SDG更新权重
时间序列中的GAN
连续型GAN
连续时间序列生成涉及生成具有时间依赖性的实值序列,其中序列的元素是连续的,例如温度、压力、速度等物理量。应用于气象监测、工业测控等。
在生成连续时间序列时,GANs可以直接应用于连续数据的生成,通过生成器生成连续值,判别器评估生成数据与真实数据的相似度。
2.1.1 TimeGAN
TimeGAN 提供了一个框架,该框架利用了传统的无监督 GAN 训练方法和更可控的监督学习方法。通过将无监督 GAN 网络与有监督自回归模型相结合,该网络旨在生成具有保留时间动态的时间序列。
框架的输入被认为由两个元素组成,一个静态特征和一个时间特征。s 表示编码器输入端的静态特征向量,x 表示时间特征向量。
离散型GAN
离散时间序列生成涉及生成具有时间依赖性的序列,其中序列的元素通常是离散的,例如整数或分类标签。应用于自然语言处理、医疗健康、金融等。
GAN在生成离散序列时,需要特殊设计,如使用策略梯度方法来优化生成器,因为离散数据的生成涉及到非连续的输出空间。
2.2.1 Sequence GAN (SeqGAN)
SeqGAN 的生成模型由带有 LSTM 单元的 RNN 组成,其判别模型是卷积神经网络 (CNN)。给定结构化序列的数据集,作者训练 G 生成合成序列 Y1:T = (y1…, yt…, yT ), yt ∈ Y 其中 Y 定义为候选标记的词汇表。G 通过策略梯度和对 D 的预期奖励的蒙特卡罗 (MC) 搜索进行更新。
2.2.2 Quant GAN
Quant GAN 是一种数据驱动模型,旨在捕捉金融时间序列数据(如波动率集群)中的长期依赖关系。生成器和鉴别器都使用带有跳跃连接的时间卷积网络(TCN),它本质上是膨胀的因果卷积网络。它们的优点是适合对连续序列数据中的长期依赖关系进行建模。
2.2.3 C-RNN-GAN
C-RNN-GAN的生成器是一个 RNN,鉴别器是一个双向 RNN,它允许鉴别器在两个方向上获取序列上下文。
C-RNN-GAN 通过时间反向传播 (BPTT) 和小批量随机梯度下降进行训练,并在 G 和 D 的权重上使用 L2 正则化。
总结
本周总结概括了GAN的不同变种,了解了GAN的发展历程。GAN原本用于图像处理,对其变种进行分类——改变网络结构或者改变损失函数。接着又将用于时间序列生成的GAN进行变种分类——离散型和连续型。这周还对cycleGAN进行了具体的项目实践,下周进行具体的描述和总结。