🧠 AI 揭秘:AI 只是在制作拼贴画吗?
在上一课中,您发现 AI 很难渲染人类和文本等事物。它在手部和矢量图的绘制方面方面表现得也特别差 。
但为什么人工智能无法生成这些呢?这一切都归结为所谓的Diffusion Models(扩散模型)是如何工作的。
学完本节课,您将理解为什么 AI 难以完成某些任务以及这些任务是哪些,从而节省您的时间和挫折感,并且让您领先于大多数已经创建图像的人。
👵🏻 AI 为您解释了 abuelita
为了方便理解,我们要从客观的角度去了解人工智能。人工智能只是可以执行一些与智能生物相关的任务的软件,而且大多数时候,智能生物就是我们人类。💁🏻♂️
该软件能够做到这一点,是因为它之前已经(由人类)接受过如何完成该特定任务的训练了。让我们看一个例子:假设我们想要构建一个人工智能来区分 🐱 和 🐶。
为了训练 AI,我们需要向它展示数千张猫狗长相的图像,如下所示:
然后,该软件逐张读取图片中的每个像素并提取多数使猫看起来像猫的模式(长胡须、尖耳朵、鼻子的形状、没有皮带……),以及使狗看起来像狗的模式.
从实际意义上讲,人工智能只是一种接受输入、处理输入并提供输出的软件。因此,经过训练后,您将获得一个软件,该软件可以根据您提供的输入图像回答“猫”或“狗”。
在此特定示例中,我们所描述的称为分类模型。它需要一些东西(在这种情况下是图像)并将其分类为两个类别之一:“猫”或“狗”。“模型”一词指的是实现 AI 的实际软件——您可能会听到“模型”和“AI”这两个词可互换使用,出于我们的目的,我们可以假设它们是相同的。
但是人工智能有很多种。
分类模型只是一小部分。其他模型可以生成事物而不是对其进行分类。与我们最相关的模型称为Diffusion Models(扩散模型),一种生成模型————了解它们的工作原理对于了解它们的优势和局限性非常重要。
👩🏻🎨 Diffusion Models(扩散模型)简述
Stable Diffusion、DALL-E 2 和 Midjourney 都是 Diffusion 模型的示例。它们都以相似的方式工作。与我们的宠物分类器非常相似,它们已经使用数千(高达数十亿!)的图像进行了训练。不同之处在于,现在我们对发现哪个类别属于哪个图像不感兴趣————我们更感兴趣的是什么文本最能描述图像,反之亦然。
所以我们要做的是向 AI 展示许多图像,以及最能描述它的文本:
“一只猫躺在地板上”
想法是在向人工智能展示足够多的这些图像以及最能描述它们的文本之后,人工智能将开始学习“猫”的意思、“躺着”的意思、“地板”的意思……以及图案在代表这些概念的图像中。最后,AI 不仅学会了“猫”这个词的意思,而且学会了在图片中表现它的最佳方式。
想想你会如何教一个小孩儿去画一朵花。你会给他们看很多不同的花,孩子最终会认出构成花的图案:长长的绿色茎,圆形的中心和周围的一些花瓣。
人工智能的工作原理与此非常相似:它不会“复制现有图像”或“拼贴”不同图像:相反,它会提取构成图像中不同概念的模式,并学习如何将它们组合成一个品牌新创造————就像孩子做的那样。
不过,它的方式与我们人类的做法有点不同。
🖼 扩散过程
这听起来有点违反直觉,但 AI 学习这样做的方式是通过一个称为扩散的过程,在该过程中,它会向图像添加噪声,直到它变得无法识别:
这里的想法是,与从头开始生成全新图像相比,对图像进行“去噪”(使其不那么模糊)更容易。因此,如果我们对某些东西进行足够长时间的降噪——人工智能研究人员的想法——我们最终会得到一张完美的图像。
我知道这听起来很奇怪,但相信我,这很简单。以下是 AI 学习生成图像的方式:
- 它采用原始图像并添加了一点噪声。
- 然后再次添加更多噪音。
- 一直这样做,直到图像全是噪点。
- 现在,对于每张嘈杂的图像,它都会尝试学习如何对其进行降噪,直到它获得之前的噪声较小的图像。
- 它会一直这样做,直到它学会去除所有噪声并从纯噪声生成原始图像。从始至终,人工智能都知道原始图像应该代表什么(“一只猫躺在地板上”),因此它学会以一种更接近地板上猫的方式去除噪声,而不仅仅是随机去噪.
- 一旦 AI 对数百万张图像重复了这个过程足够多次,它就会根据对图像应该是什么样子的描述,学习如何从随机噪声到清晰图像。它有效地学习如何代表一只猫,如何画一朵花,或者如何以梵高的风格作画。
训练过程以一个存储所有这些“去噪”知识的文件结束,这个文件的扩展名为.ckpt(检查点)。这个文件本质上是一个 diffusion models(扩散模型):一个可以从文本生成图像的人工智能。您给 AI 输入的文本则称为提示。
🤚 细节和噪音不是朋友
现在我们知道了人工智能是如何学习创建图像的,我们可以直观地了解为什么某些类型的图像难以用于 diffusion models(扩散模型)。一如既往,细节决定成败。
当我们向图像添加噪声时,我们会丢失精细的细节。原本看得清清楚楚的东西,现在却看得模糊不清,分不清什么是什么,什么时候结束,什么时候开始。
最重要的是,这些 AI 不使用全分辨率图像进行训练。为了工作,他们必须缩小图像,通常缩小到 512×512。如果已经够难了,请尝试将图像变小。现在手看起来像这样:
这里的主要内容是:细节在扩散过程中丢失了。AI 很难“看到”某物存在的位置和结束位置。任何严重依赖锐利边缘(如文本或矢量图像)和精确连接(如解剖学上正确的身体部位)的图像都将是一场斗争。
人工智能只是没有足够的“分辨率”来理解细节。
对于手来说尤其如此,因为它们只占图像像素的一小部分。可以这样想:在一张人的照片中,95% 的像素代表手以外的东西。图像上所有信息中只有一小部分代表手。如果模型已经在努力生成精细的细节,那么尝试在已经很小的图像的一小部分上生成精细的细节更是如此。
如果你绝对想在小部分中获得高水平的细节,你最好以全分辨率生成特别困难的部分,然后再绘制其余部分 – 在本课程的后面我们将介绍这意味着什么以及如何做它!
发布者:AIGC博客派,未经授权,禁止转载,经授权后转载需请注明出处:https://blog.yredu.xyz/archives/4202