【译】 生成式人工智能 - 图像
原作:瑞安·奥康纳
引言:图像生成人工智能模型正在为一系列创意应用提供动力,并改变我们的工作方式。本文将概述您需要了解的有关这些模型及其工作原理的所有信息。
只需文本描述,生成式人工智能就可以在几秒内创建高质量的图像。这些技术已经改变了许多行业的运作方式,并深刻影响着当下和未来,但这些图像生成人工智能是如何运作的呢?
如何使用生成式 AI 制作图像
虽然生成式人工智能可以通过多种方式用于制作图像,但过去几年的进步通常依赖于一种称为扩散模型的新范例。 扩散模型是受热力学启发的用于生成数据的数学框架。
如果将一滴食用色素放入一杯水中,热力学扩散是描述食用色素如何扩散,并最终在玻璃中形成均匀颜色的过程。
通过随机运动,一滴食用色素中的原子会散开,形成均匀的颜色
扩散模型的工作原理是将这一概念应用于图像空间。给定一个图像,我们可以对其进行扩散,这相当于随着时间的推移慢慢改变图像中的像素值。随着图像扩散,它最终将达到“电视静态”,这相当于食用色素情况下的均匀颜色的图像。
正如一滴食用色素扩散成均匀的食用色素一样,图像也会扩散成“电视静态”图像
这个过程在现实生活中是不可逆转的。 当食用色素在水中被彻底搅拌后,没有办法“分开”它并恢复原来的色素状态。 虽然我们在现实生活中无法倒退时间,但扩散模型可以学习并模拟图像的这种逆时过程。 也就是说,扩散模型学习如何从“电视静态”时光倒流到之前图像。
学习这种逆时过程使我们能够生成新颖的图像。为此,我们首先生成电视静态图像,这对于计算机来说很容易做到。然后,我们模拟反向扩散过程,这使我们能够及时回退,以确定在扩散时(时间倒退)哪些原始图像导致电视静电。这就是生成式人工智能创建图像的方式。
通过逆转扩散过程,我们可以生成新颖的图像。在这种情况下,我们随机生成电视静态数据,并发现金毛猎犬的图像导致了向前时间的电视静态数据。
下面我们可以看到生成手写数字图像的反向扩散过程。创建了 16 个“电视静态”样本,我们可以看到图像如何随着时间的推移而演变,从而产生 16 个手写数字图像:
使用扩散模型生成的图像
这里的中心思想是,很难让计算机生成狗、人脸或其他任何感兴趣的图像。 但是,生成“电视静态”图像很容易,并且(相对)容易使用人工智能将“电视静态”图像转换为面部图像。 因此,我们不是尝试直接从训练数据的分布中采样,而是以这种迂回的方式间接采样以创建新图像。
扩散模型的总体工作原理
如果您想要更详细的解释或想了解启发扩散模型开发的原理,可以查看另一篇文章:物理学如何推进生成式人工智能
接下来,我们简要介绍一下这个过程的数学公式。我们将讨论如何将扩散模型纳入现代生成 AI 图像模型(例如 DALL-E 2 和Stable Diffusion)中。
数学公式
形式上,扩散模型被参数化为马尔可夫链。前向扩散过程被建模为一系列离散的时间步长,其中潜在变量是逐渐嘈杂的图像。链中的转换是条件高斯分布,对应于像素的随机运动。
为了沿着这条链向后移动并学习反向扩散过程,我们试图训练一个去噪模型,该模型接受一个潜在变量并试图预测它之前的变量。
目标是最大似然,这意味着目标是找到使数据的似然最大化的去噪模型的参数 theta。
在实践中,我们最大化该值的下限,这使我们能够根据 Kullback-Leibler 散度重写问题。从这个新的公式来看,扩散链中的条件分布是高斯分布,与马尔可夫假设相结合,使得问题可以简化为易于处理的形式。
扩散模型的设计和训练目标的微小变化导致了易处理性
这些细节并不重要,放在这里只是为了强调当我们通过对模型及其训练方式施加限制来强加假设时,这些最大似然目标如何变得站得住脚。关于此议题的完整描述,请参考另一篇文章:扩散模型简介。
最后,我们注意到去噪模型和扩散模型之间的区别。扩散模型是提供渐近保证的马尔可夫链的数学框架,而去噪模型是经过训练以沿着马尔可夫链向后遍历的神经网络。
生成式人工智能模型如何实现从文本到图像
上面,我们了解了扩散模型如何生成图像。 您可能已经注意到,我们可以生成图像,但不能生成特定类型的图像。 例如,我们看到扩散模型如何生成狗的图像,但不能生成具有特定特征的狗 - 如果我们希望狗有黑色的毛发,或者伸舌头,或者是特定的品种,该怎么办?
文本到图像模型使我们能够做到这一点。他们使用文本描述来控制扩散过程,以生成与描述相对应的图像。虽然文本到图像模型的运行方式没有单一的方法,但我们将研究支持这些模型的总体原则,以了解它们在概念层面上的工作原理。
重点是,基于扩散的文本到图像模型通常包括两个基本组件:
- 一个文本编码器,将文本映射到捕获文本含义的向量。
- 一个扩散模型,将这个“意义向量”解码为图像
让我们从顶层视角看一下这些部分是如何组合在一起
从文本中提取含义
文本到图像过程的第一步是使用文本编码器从文本中提取含义。文本编码器将文本转换为高维向量,以捕获含义的方式嵌入信息。让我们看一个简单的示例,以直观地了解此过程的工作原理。
假设我们有三个词——“女人”、“男人”和“男孩”。假设每个单词都与一个向量配对 - [1, 0]、[1, 1] 和 [0, 1]。
每个单词都与给定的向量配对
到目前为止,我们已经得到了这三个向量词对,仅此而已。没有提供任何预先存在的关系,我们自己也没有定义任何关系。但现在假设我们又给出了一个单词——“女孩”——并且没有向量。 哪个向量可能对应于这个词?
我们能否确定哪个向量“应该”与“女孩”这个词相关联?
让我们尝试为现有的向量词对制定一个映射模式。我们看到“女人”和“男人”的向量共享相同的第一个条目和不同的第二个条目。因此,“女人”和“男人”在某个轴上是相似的,而在另一个轴上又是不同的。让我们首先考虑一下它们的相似之处。由于女性和男性都是成年人,因此我们让第一个条目中的 1 表示“成人”。如果我们检查“男孩”的向量,我们会发现第一个条目的值为 0。由于男孩不是成年人,因此第一个条目的含义是一致的。
第一个条目中的 1 可能表示成人,而 0 可能表示非成人,即儿童。这种解释与提供的数据(词向量对)一致。
同样,如果我们以同样的方式审视“男人”和“男孩”,我们会再次发现它们在一个轴上相似而在另一个轴上不同。我们已经确定了他们的不同之处(即他们是否具有“成人”的品质),所以现在让我们考虑一下他们的相似之处。由于男人和男孩都是男性,因此我们让第二个条目中的 1 表示“男性”。同样,当我们另外考虑“女性”时,这种解释是内在一致的
同样,第二个条目中的 1 可能表示男性,而 0 可能表示非男性,即女性。这种解释与提供的数据(词向量对)一致。
这个新定义的解释模式对于我们的新词“女孩”意味着什么?好吧,既然女孩不是成年人,那么根据这个模式,第一个向量条目应该为零。同样,由于女孩也不是男性,因此第二个条目应该为零。这样我们就可以推断出新的向量应该是[0, 0]。
使用我们定义的映射,我们可以为“girl”这个词生成一个一致的向量
正如我们所看到的,我们的向量捕获有关单词含义的信息。向量描述的不是单词本身,而是单词所引用的对象。也就是说,向量 [0, 1] 并不描述“女人”这个词本身,而是描述柏拉图理想中的女性概念。
文本编码器的工作就是学习这种“含义”模式。 文本编码器是文本到图像模型中的组件,用于从文本中提取含义,以便我们可以使用这种语义表示。 请注意,对于 DALL-E 2 等某些模型,此说法并不完全正确,而对于 Imagen 等模型则更准确,但这种理解足以满足我们的目的。
此外,对于文本到图像模型,“含义向量”通常具有两个以上的“条目”(或“分量”)。例如,Imagen 的“意义向量”有一千多个组成部分。此外,文本到图像模型允许输入值是任何实数,例如 1.2 或 -4 或 0.75,而不仅仅是 0 或 1。这些因素一起允许对含义有更广泛和更精细的语言理解。
以视觉方式表达含义
记住,上面我们说过“女人”这个词和女人的概念是不同的。实际的“女人”这个词就是这个概念的一种表现。这个概念还提供了其他表示,例如:
该图像是使用“女性图像”提示通过Stable Diffusion生成的
因此,我们有这两个对象——女人这个词和女人的图像——引用了相同的“含义”。
女性的概念有不同的表述
我们的文本编码器刚刚学会了如何将女性的文本表示映射到向量形式的女性概念。我们看到其解释模式,其中可以考虑使用向量来捕获有关给定单词引用的概念的信息。我们现在使用这个含义来生成它的另一种表示。特别是,我们已经学会了从单词到意义的映射,现在我们必须学会从意义到图像的映射。
我们已经学会了从文本空间映射到意义空间,现在我们需要学习从意义空间映射到视觉空间
这就是Diffusion Models发挥作用的地方。我们使用Diffusion Models生成新图像,并使用含义向量来调节此过程。
调节可以被认为是向过程提供附加信息以对其结果施加条件的实践。例如,假设我们想要随机生成一个与骰子侧面相对应的数字。如果我们均匀采样,那么我们将有六分之一的机会生成 1 到 6 之间的任何给定整数。现在让我们重复此过程,但这次通过要求生成的数字为偶数来对其进行条件限制。现在,每个数字 2、4 和 6 都有三分之一的机会,而每个奇数 1、3 和 5 则没有机会。我们使用附加信息来调节此生成过程,以影响生成的输出。
与我们的文本到图像模型类似,我们可以在Diffusion Model创建图像时对其进行调节。通过将我们的“意义向量”合并到扩散过程中,我们可以调节正在生成的图像,以正确捕获“意义向量”中包含的意义。
如果没有条件限制,扩散模型将生成随机图像。通过调节,我们可以控制这个过程以达到预期的结果。
Note:DALL-E 2 实际上包括另一个在表示空间中的不同向量之间进行映射的组件。详细信息超出了本文的范围,请查看另一篇文章:DALL-E 2 的实际工作原理。
值得注意的是,扩散过程仍然是随机的。这意味着即使使用相同的条件,每次反向漫反射也会生成不同的图像。也就是说,给定相同的输入文本,我们可以生成多个不同的图像。
这一事实很重要,因为没有一个图像可以正确地表示“含义”中的所有语义信息。当我们说“女性形象”时,我们的意思是什么?她的头发是什么颜色的?她位于哪里?如果有的话,她正在表达什么情感?如果你让一个房间里的 10 个人想象“一个女人的形象”,每个人都会在他们的脑海中描绘出不同的形象。
事实上,当我们要求Stable Diffusion生成“女性图像”时,它会输出许多图像,每个图像都可以被认为反映了这个提示。该模型的这一方面很有价值,因为这些图像中的每一个确实都是“女性图像”。
给定相同的“含义向量”,Stable Diffusion可以生成许多反映含义的图像
如果您对这些模型的实际构建方式感兴趣,可以查看另一篇文章:手动构建您自己的文本到图像模型。我们将详细介绍如何构建 Imagen 的最小实现,并提供所有代码、文档以及每个重要部分的全面指南。
其他生成式人工智能
虽然扩散模型是现代图像领域生成人工智能应用的动力,但也存在其他范式。两种流行的范例是矢量量化变分自动编码器(VQ-VAE)和生成对抗网络(GAN)。 虽然我们已经提到扩散模型为生成式人工智能的许多最新进展提供了动力,但每种方法都有其优点和缺点,并且在其他领域中仍然使用像GAN范式的基本原理。
我们在这里列出这些其他方法只是为了指出一些其他替代方法,供感兴趣的人进一步阅读。