随着人工智能技术的飞速发展,图像生成技术也取得了显著进步。扩散模型(Stable Diffusion)因其高效性和稳定性而得到广泛关注,目前的大多数生成模型都是以扩散模型为基础进行改进得到。首先简单介绍一下传统人工智能模型和生成模型的区别。
**传统人工智能模型:**主要目标是学习输入到输出的关系(如逻辑关系、映射关系等),即根据输入数据预测或分类输出。也就是说,传统人工智能模型更侧重于对已有数据的分析和处理,以实现对新数据的准确预测或分类。
**生成模型:**主要目标是学习数据的概率分布,并据此生成新的、与真实数据相似的样本。也就是说,生成模型关注于数据的生成过程,致力于模拟数据的内在规律和分布特性。下面对生成模型的基础——扩散模型进行详细介绍:
01
性能提升的关键——潜空间
(Latent Space)
在采用模型对数据进行处理时,通常都面临“模型效率”和“处理效果”不可兼顾的问题。扩散模型通过将数据压缩到潜空间(Latent Space)中进行处理,在不明显损失处理效果的前提下,极大地降低了内存消耗和计算的复杂度。其性能提升的关键是:通过U-Net 网络[由若干下采样模块(编码器)和相应数量的上采样模块(解码器)组成]中的下采样模块将高维度数据下采样到低维度的“潜空间”中,并在低维度的“潜空间”中进行处理,再通过U-Net 网络中的上采样模块将处理后的结果上采样至下采样前的维度。个人认为,下采样和上采样的传输过程中存在损失,这是导致生成模型的输出结果与真实数据存在差异(即并非100%复原真实数据)的原因之一。
下面通过一个例子来直观展现数据压缩前后内存消耗的变化。以一个 512*512 像素的图像为例,该图像可以表示为(3,512,512),数据体积为786432。而在潜空间中该图像可以被压缩为(4,64,64),数据体积为 16384。相比与压缩前的图像来说,压缩到潜空间中的图像内存消耗将会减少到原来的 1/48 。这极大地提升了扩散模型的运行效率,并且提高了扩散模型的普及性(即让更多配置较低的电脑也能通过扩散模型完成图像处理过程)。
需要特别注意的是,一些发明方案的改进点在于在数据处理过程中加入其他向量。由于数据处理是在潜空间中进行,在撰写申请文件时要注意这些向量是在下采样前加入的,还是(下采样后)加入在潜空间数据中的。
02
扩散模型的前向过程(训练过程)
以图像为例,扩散模型的前向过程是对图像进行迭代加噪,得到最终的纯噪声(也称白噪声)。所谓迭代加噪是指对每一次添加的噪声都是叠加在上一次加噪后得到的结果之上的。该过程主要用于训练U-Net 网络,训练的目标是使得U-Net 网络预测的噪声尽可能逼近实际添加的噪声。为了训练更加充分,可以将添加的噪声按照强度进行区分,并通过添加不同强度的噪声来对扩散模型进行训练。训练后的扩散模型能够较好地预测迭代加噪过程中每次加入的噪声。
需要特别注意的是,在迭代加噪过程中,每次的噪声是添加到潜空间中图像对应的数据矩阵中,而不是直接将噪点添加在图像上。
03
扩散模型的反向过程(生成过程)
同样以图像为例,扩散模型的反向过程就是我们所说的“生成过程”,即通过训练后的扩散模型和输入的提示信息,对纯噪声进行迭代降噪,得到与提示信息匹配的生成图像。所谓迭代降噪是指逐渐减少纯噪声中的噪点,每次降噪的输入数据为上一次降噪的结果。从可视化的角度来说,每次降噪的结果相较于上一次降噪的结果来说噪点更少。同样的,迭代降噪过程也是在潜空间中进行,而非直接去除图像中的噪点。
扩散模型的反向过程所涉及的主要参数包括:噪声加载计划表(scheduler)、随机种子(seed)、采样步数(steps)。噪声加载计划表指示了迭代降噪处理的具体实施过程,影响扩散模型的生成效果;随机种子用于指示起始条件,它确保了随机过程的可控性和可重复性;采样步数用于指示迭代降噪的次数。
04
风格迁移
风格迁移是扩散模型的一个重要概念,它的专业描述是:扩散模型的生成图像具有与原样本图像同时符合潜空间中一定数据结构分布规律的特点。简单来说,用两种不同风格的样本数据对扩散模型进行训练,得到两个不同的扩散模型,再将相同的纯噪声和提示信息输入这两个扩散模型,会得到两个完全不同的结果,每个扩散模型输出结果的风格,与该扩散模型训练时样本数据的风格相似。
个人理解这是由于训练时样本数据的风格不同,导致训练后的扩散模型对同一提示信息的理解不同,因此导致最后输出的结果不同。打一个不太恰当的比方,不同风格的数据在对扩散模型进行训练时会影响扩散模型的“审美观”(也就是风格),由于具有不同“审美观”的扩散模型对“美”(也就是提示信息)的理解不同,针对同一提示信息具有不同“审美观”的扩散模型输出的结果也不同。
05
应用场景
目前,除了被应用在图像生成、视频生成领域以外,以扩散模型为基础的生成模型还被广泛应用在文本生成、音乐创作等领域,并可以实现不同模态数据之间的转换,如根据音频生成图片、根据图片生成视频等。在撰写相关申请文件时,可以考虑数据和应用场景是否具有局限性。
下面借用一段“沙画”比喻对扩散模型进行总结。扩散模型类似一个沙画装置,每次创作出的画虽用相同沙子,但因细节差异而独一无二。扩散模型训练过程模拟沙画逐渐散乱成沙子的过程,通过不断添加噪点至完全无序状态,记录各阶段变化并建模。尽管单粒沙子运动无规律,但巨量沙粒组合展现复杂但可识别的规律和联系。扩散模型在充分训练后,掌握了沙子聚散的规律。在反向去噪过程中,训练后的扩散模型能将散沙凝聚成基础图像单元,这些单元按逻辑组合成完整图像。
AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。
感兴趣的小伙伴,赠送全套AIGC学习资料和安装工具,包含AI绘画、AI人工智能等前沿科技教程,模型插件,具体看下方。
######
一、AIGC所有方向的学习路线
AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、AIGC必备工具
工具都帮大家整理好了,安装就可直接上手!
三、最新AIGC学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、AIGC视频教程合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。