一:GAN生成对抗网络(Generative Adversarial Networks)
在Stable Diffusion诞生之前,计算机视觉和机器学习方面最重要的突破是 GAN(Generative Adversarial Networks 生成对抗网络)。GAN让超越训练数据已有内容成为可能,从而打开了一个全新领域——现在称之为生成建模。(一)GAN的本质
GAN架构由两个主要组件构成:生成器(Generator)和判别器(Discriminator),两个组件在训练过程中相互对抗,共同提升,最终目标是使生成器能够生成与真实数据难以区分的新数据。1.生成器(Generator)---重点
- 功能:负责生成新的数据样本
- 结构:通常是一个深度神经网络,输入为低维向量(如随机噪声),输出为高维向量(如图片、文本或语音)
- 训练目标:生成尽可能真实的数据,以欺骗判别器
2.判别器(Discriminator)
- 功能:负责区分输入的数据是真实数据还是由生成器生成的假数据。
- 结构:同样是一个深度神经网络,输入为高维向量(如图片、文本或语音),输出为一个标量,表示输入数据的真实性概率。
- 训练目标:尽可能准确地区分真实数据和生成数据。
3.训练过程
- 对抗训练:生成器和判别器进行交替训练。在每次迭代中,先训练判别器以提高其区分能力,然后训练生成器以提高其生成能力。
- 优化目标:生成器的优化目标是最大化判别器将其生成的数据误判为真实数据的概率;判别器的优化目标是最小化其误判的概率。
- 收敛性:在理想情况下,随着训练的进行,生成器生成的数据分布将逐渐接近真实数据分布,判别器将无法准确区分两者。
(二)文本到图片
基于生成对抗网络(GAN)的方法,旨在将给定的文本描述转换为相应的图像。通过训练一个生成器和一个判别器,该方法能够生成与文本描述相符的高质量图像。1.文本编码器
首先,使用一个文本编码器将输入的文本描述转换为一种中间表示。这种表示能够捕捉到文本中的关键语义信息,并为后续的图像生成提供指导。2.条件生成对抗网络(Conditional GAN)
论文采用条件生成对抗网络作为基本的框架,其中生成器的任务是根据文本编码器的输出生成相应的图像,而判别器的任务则是判断生成的图像是否与给定的文本描述相符。3.对抗训练
通过同时训练生成器和判别器,使它们在对抗中相互提升。生成器努力生成更真实的图像以欺骗判别器,而判别器则努力区分生成的图像和真实图像。这种对抗训练有助于提高生成图像的质量和符合度。4.跨模态映射(文本->图像)
为了将文本描述映射到图像空间,论文采用了一种跨模态映射策略。通过建立文本和图像之间的对应关系,并学习从文本到图像的映射函数,实现了文本到图像的转换。(三)图像到图像
1.传统图像->图像生成
传统的图像->图像和上面的文本->图像的原理类似,图像到图像转换是一类视觉和图形问题,目标是通过使用一组配对的图像来学习输入图像和输出图像之间的映射。 图像到图像转换的示例包括:将夏季景观转换为冬季景观(或相反)、把画作转换成照片(或相反)、把马转换成斑马(或相反)。 传统意义上,训练图像到图像的转换模型需要一个由成对示例组成的数据集。这个大型数据集要包含一张输入图片 X (如夏季景观),以及带有预期修改的可作为输出预期图像 Y 的照片(如冬季景观)。 训练时数据集必须要成对这一要求是其局限性所在。这些数据集具有挑战性,准备成本也很高,例如不同条件下不同场景的照片。在许多情况下,数据集根本不存在,比如名画和它们对应的照片,对于许多任务来说,配对的训练数据难以获得。2.非配对图像到图像转换
把一张图像的特征转移到另一张图像,一般要实现这样的图像风格转换,通常需要一个包含成对图片的训练集,CycleGAN打破了这个限制,CycleGAN提出了一种在没有成对示例的情况下,学习从源域x到目标域y的图像转换的方法。2.1 配对和非配对的概念
上面也提到过,无须提供从源域到目标域的配对转换例子,CycleGAN就能工作。CycleGAN的创新点在于能够在源域和目标域之间,无须建立训练数据间一对一的映射,就可实现这种迁移。 CycleGAN 是 GAN 架构的一个分支,它可以同时进行两个生成器模型和两个判别器模型训练: 一个生成器从第一个域获取图像作为第二个域的输入和输出图像,另一个生成器从第二个域获取图像作为输入图像并从第一个域生成图像。然后分别使用判别器模型确定在各自目标域下生成的图像的合理性,并相应地更新生成器模型。 仅此扩展就足以在每个域中生成可信的图像,但不足以生成输入图像的转换图像(就是说A域经过两次转换后可以获得A域下的可信图像,但是对于对于B域名下的转换图像不足可信,因为训练的是两个生成器在一起的结果,A->B->A或者B->A->B),单独的对抗性损耗不能保证习得的函数可以将单个输入 A 映射到期望的输出 B,主要还是A->A`的转换。2.2 CycleGAN架构
我们有两组不成对的图像,这意味着它们是在不同时间不同地点的照片;冬季和夏季的图像中没有完全相同的场景。集合1:夏季景观图像。
集合2:冬季景观图像。
我们将开发一个包含两个 GANs 的架构,每个 GANs 都有一个判别器和一个生成器模型,这意味着架构中总共有四个模型。第一个 GAN 可以根据夏天的图像生成冬天的图像,第二个 GAN 会根据冬天的图像生成夏天的图像。
GAN 1: 把夏季图像(集合1)转换成冬季图像(集合2)。
GAN 2: 将冬季图像(集合2)转换成夏季图像(集合1)。
每个 GAN 都有一个有条件的生成器模型,该模型将生成和原始图像相似的输入图像。每个 GAN 都有一个判别器模型来预测生成的图像来自目标图像集合的可能性。GAN 的判别器和生成器模型就像标准 GAN 模型一样,在正常的对抗损耗下训练。
- 我们可以将 GAN 1 的生成器和判别器模型总结如下:
输入:选取夏季图像 ( 集合1 ).
输出: 生成冬季图像 ( 集合2 ).
判别器模型 1:
输入: 从集合 2 选取冬季图像,从生成器 1 输出。
输出: 图像来自集合 2 的可能性。
- 我们可以将 GAN2 的生成器和判别器模型总结如下:
输入:选取冬季图像 ( 集合2 ).
输出:生成夏季图像 ( 集合1 ).
判别器模型 2:
输入:从集合 1 选取夏季图像,从生成器 2 输出。
输出:图像来自集合 1 的可能性。
到目前为止,这些模型足以在原域中生成可信的图像,但不能转换输入图像(生成的目标域图像不能保证)。
2.3 循环一致性
CycleGAN 对架构的扩展之处在于使用了循环一致性。第一个生成器输出的图像可以用作第二个生成器的输入图像,第二个生成器的输出图像应与原始图像匹配。相反地,第二个生成器的输出图像可以作为第一个生成器的输入图像,结果应该与第二个生成器的输入图像相匹配。可以看作是A->B->A`和B->A`->B`两次;可以形象的表示:从英语翻译成法语的短语同样可以从法语翻译回英语,语意不变。反之亦然。2.4循环一致性损耗
将输入照片与 Cycle GAN 的生成照片进行比较,并计算两者之间的差异,例如使用 L1 范数或像素值的绝对差之和。通过计算循环一致性损耗,并用于更新每个训练迭代的生成器模型,来强化目标域中由输入图像转换而来的合成图像生成的效果。 第一个 GAN (GAN 1) 将获取夏季景观的图像,生成冬季景观的图像,该图像作为第二个 GAN (GAN 2) 的输入,又将生成夏季景观的图像。循环一致性损耗计算了 GAN 1 的图像输入和 GAN 2 的图像输出之间的差异,并相应地更新了生成模型,以减少图像中的差异。这是一个循环一致性损耗的正向循环。 同样的过程在生成器 2 到生成器 1 的反向循环一致性损耗时会逆转过来,还会将冬季原始照片与冬季生成照片进行比较。 正向循环一致性损耗:向 GAN 1 中输入夏季图像(集合 1 )
从 GAN 1 中输出冬季图像
从 GAN 1 向 GAN 2 输入冬季图像
从 GAN 2 中输出夏季图像
将夏季图像(集合 1 )与 GAN 2 中的夏季图像作对比
反向循环一致性损耗:
向 GAN 2 中输入冬季图像(集合 2 )
从 GAN 2 中输出夏季图像
从 GAN 2 向 GAN 1 输入夏季图像
从 GAN 1中输出冬季图像
将冬季图像(集合 2 )与 GAN 1 中的冬季图像作对比
2.5 使用场景
风格转换:指学习一个领域的艺术风格并将该艺术风格应用到其他领域,一般是将绘画的艺术风格迁移到照片上 物体变形:指将物体从一个类别转换到另一个类别,例如将狗转换为猫。 季节转换、绘画转真实、图像增强....(四)GAN生成的问题
- 图像生成缺乏多样性:基于图像样本,样本量无法覆盖完全
- 模式崩溃:指GAN训练中生成器网络只能生成有限的样本多样性,而无法涵盖数据分布中的所有模式
- 多模态分布学习困难:只针对单一模态,比如视觉、听觉等单一模式,不能很好结合
多模态(Multimodality)是指利用两种或多种感官同时进行信息交互的方式。
在人工智能领域,多模态技术通过融合来自不同感官的数据和信息,提升人工智能系统对复杂信息的理解和处理能力,从而提高性能和应用范围。
- 训练时间长
- 由于问题表述的对抗性,不容易训练