4. 图像生成
- 课程地址:https://www.cloudskillsboost.google/course_templates/541
- 视频学习:https://youtu.be/J0AuVBxzui0
这是Google的一个AI入门课程,介绍扩散模型,这是一类在图像生成领域最近显示出潜力的机器学习模型。扩散模型的灵感来源于物理学,特别是热力学。 在过去的几年中,扩散模型在研究和工业中都变得很受欢迎。扩散模型是Google Cloud上许多最先进的图像生成模型和工具的基础。本课程将向你介绍扩散模型背后的理论,以及如何在Vertex AI上训练和部署它们。
视频字幕
大家好,我叫 Kyle Steckler,我是 Google Cloud 高级解决方案实验室团队的一名机器学习工程师,在本次演讲中我们将深入介绍图像生成
扩散模型在图像生成领域的应用
图像生成已经存在很长时间了,它一直是一个极具吸引力的研究领域。尽管您可能已经听说过许多有趣的方法,这些方法已经被用于图像生成,但随着时间的推移,一些更有前途的方法逐渐脱颖而出。
变分自动编码器
例如,变分自动编码器(Variational Autoencoders,VAEs)将图像编码为压缩的形式,然后在学习数据本身的分布时解码回原始大小。
生成对抗模型(GAN)
生成对抗模型(Generative Adversarial Networks,GANs)也非常流行。这些模型极为引人注目,它们让两个神经网络相互对抗。一个神经网络(生成器)负责创建图像,另一个神经网络(鉴别器)预测图像是真实的还是伪造的。随着时间的推移,鉴别器变得越来越擅长区分真伪,而生成器则越来越擅长创建逼真的图像。您可能已经听说过“DeepFake”这个词,它便是基于这一技术。
自回归模型
最后是自回归模型。这些模型通过将图像视为一系列像素来生成图像。自回归模型的现代方法实际上从大型语言模型(如GPT)如何处理文本中汲取了很多灵感。
扩散模型:新兴的图像生成技术
在本文中,我们特别关注一种较新的图像生成模型系列,即扩散模型。这些模型从物理学,特别是热力学中汲取灵感。尽管它们首次在2015年被引入图像生成领域,但这个想法直到近几年才真正开始受到关注。从2020年开始,我们已经看到了一个关于扩散模型的巨大研究领域的兴起,它们支撑着许多最先进的图像生成系统。
无条件扩散模型
您可能已经熟悉了当前扩散模型在许多不同用例中展现的潜力。例如,无条件扩散模型没有额外的输入或指令,它可以从特定的图像(如人脸)中训练,并学习生成新的图像实例。另一个无条件的应用例子是图像超分辨率,它在增强低质量图像方面表现出色。
文本到图像和图像编辑
扩散模型还可以从文本提示生成图像,或者用于图像到图像的转换,在这个过程中,我们可以编辑图像本身,比如添加或删除某些内容。
扩散模型的工作原理
现在,让我们更深入地了解扩散模型,并讨论它们是如何工作的。
正向和反向扩散
基本思想是通过迭代的正向扩散过程系统地并逐渐破坏数据分布中的结构。具体来说,这将迭代地向图像添加噪声。然后,我们学习一个反向扩散过程,以恢复数据结构。
这产生了一个高度灵活和易于处理的数据生成模型。换句话说,我们可以迭代地向图像添加噪声,然后我们可以训练一个模型,这个模型学会了如何对图像进行去噪,从而生成新的图像。
目标:去噪
这里的目标是我们希望这个模型学会去噪,以去除添加的噪音。在实践中,我们可以从纯噪声图像开始,通过这个模型,最终能够合成新的图像。
扩散模型的工作流程
开始与前向扩散过程
我们从一个大的图像数据集开始。为了简化解释,我们只在右侧显示一个图像作为示例。我们可以开始这个前向扩散过程,并从初始图像 0x0 到 1x1 添加一点噪声。这个过程可以一遍又一遍地迭代,逐渐添加越来越多的噪声到初始图像中。
噪声分布与迭代次数
这个分布我们称为 Q,它只取决于上一步。如果我们持续迭代地添加更多的噪音,我们需要考虑我们执行了多少次该操作。最初的研究论文做了1000次迭代。理想情况下,当这个数字足够高,如1000时,我们应该达到纯噪声状态。此时,初始图像中的所有结构都完全消失,我们只是在观察纯噪声。
反向扩散过程:挑战与学习
现在显然,迭代地添加越来越多的噪声(即执行 Q)并不太困难。具有挑战性的部分是我们如何从嘈杂的图像到稍微少一点噪声的图像,这被称为反向扩散过程。
在这个阶段,我们添加噪声的每一步,我们同时也学习反向扩散过程。换句话说,我们训练一个机器学习模型,该模型将噪声图像作为输入,并预测已添加到其中的噪声。
训练步骤与噪声预测
我们可以从一个稍微不同的角度可视化模型的单个训练步骤。我们的初始图像 X 在左边,我们在一个时间步采样噪声以创建一个嘈杂的图像,然后我们将其发送到我们的去噪模型。目的是预测噪声。因此,模型的输出是预测的噪声,但我们知道真实的噪声,所以我们可以实际比较两者之间的差异。
这个模型的训练目标是最小化这种差异,随着时间的推移,在观察足够多的样本后,这个模型变得非常擅长从图像中去除噪声。
图像生成的酷炫应用
现在对于有趣的部分来说,这是非常酷的地方:我们如何使用训练好的模型来优雅地生成图像?它实际上相当直观。我们可以从纯噪声开始,并将该噪声发送到我们经过训练的模型。然后,我们将模型的输出作为预测的噪声,并将其从初始噪声中减去。如果我们一遍又一遍地这样做,我们最终会得到生成的图像。
另一种思考方式是,该模型能够学习它所观察到图像的真实数据分布,并从这个学习到的分布中采样以创建新的、创新的图像。
扩散模型与大型语言模型的融合
我们已经看到了将扩散模型的能力与大型语言模型的能力相结合的令人惊讶的结果。这使我们能够从文本提示创建上下文感知的、逼真的图像。一个很好的例子是来自谷歌研究的“Imogen”。虽然它在技术上比我们在这篇文章中讨论的要复杂一些,但你可以看到它的核心是一个大型语言模型和一些基于扩散的模型的组合。
这是一个非常令人兴奋的研究领域,我很高兴看到这种先进技术正在被整合进企业级产品中。
感谢收听!
随堂测验
图像生成简介:测验(及格分数:75 %)
- 哪个过程涉及模型学习从图像中去除噪声?
- GANs
- 采样
- 反向扩散
- 正向扩散
- 扩散模型有哪些挑战?
- 他们可以生成不真实的图像。
- 它们可能难以控制。
- 上述所有的
- 训练它们的计算成本可能很高。
- 从物理和热力学中汲取灵感的模型系列的名称是什么?
- 生成对抗网络
- 变分自动编码器
- 自回归模型
- 扩散模型
- 正向扩散的过程是怎样的?
- 从干净的图像开始,随机添加噪点
- 从嘈杂的图像开始并迭代地去除噪声
- 从嘈杂的图像开始并随机去除噪声
- 从干净的图像开始,迭代地添加噪点
- 扩散模型的目标是什么?
- 通过将图像视为向量序列来生成图像
- 让两个神经网络相互对抗
- 将图像编码为压缩大小,然后解码回原始大小
- 通过对数据点在潜在空间中扩散的方式进行建模来学习数据集的潜在结构