发布时间: 2024-08-16
作者:程源 资深专利代理师
随着人工智能技术的飞速发展,图像生成技术也取得了显著进步。扩散模型(Stable Diffusion)因其高效性和稳定性而得到广泛关注,目前的大多数生成模型都是以扩散模型为基础进行改进得到。首先简单介绍一下传统人工智能模型和生成模型的区别。
1、性能提升的关键——潜空间(Latent Space)
在采用模型对数据进行处理时,通常都面临“模型效率”和“处理效果”不可兼顾的问题。扩散模型通过将数据压缩到潜空间(Latent Space)中进行处理,在不明显损失处理效果的前提下,极大地降低了内存消耗和计算的复杂度。其性能提升的关键是:通过U-Net 网络[由若干下采样模块(编码器)和相应数量的上采样模块(解码器)组成]中的下采样模块将高维度数据下采样到低维度的“潜空间”中,并在低维度的“潜空间”中进行处理,再通过U-Net 网络中的上采样模块将处理后的结果上采样至下采样前的维度。个人认为,下采样和上采样的传输过程中存在损失,这是导致生成模型的输出结果与真实数据存在差异(即并非100%复原真实数据)的原因之一。
下面通过一个例子来直观展现数据压缩前后内存消耗的变化。以一个 512*512 像素的图像为例,该图像可以表示为(3,512,512),数据体积为786432。而在潜空间中该图像可以被压缩为(4,64,64),数据体积为 16384。相比与压缩前的图像来说,压缩到潜空间中的图像内存消耗将会减少到原来的 1/48 。这极大地提升了扩散模型的运行效率,并且提高了扩散模型的普及性(即让更多配置较低的电脑也能通过扩散模型完成图像处理过程)。
需要特别注意的是,一些发明方案的改进点在于在数据处理过程中加入其他向量。由于数据处理是在潜空间中进行,在撰写申请文件时要注意这些向量是在下采样前加入的,还是(下采样后)加入在潜空间数据中的。
2、扩散模型的前向过程(训练过程)
以图像为例,扩散模型的前向过程是对图像进行迭代加噪,得到最终的纯噪声(也称白噪声)。所谓迭代加噪是指对每一次添加的噪声都是叠加在上一次加噪后得到的结果之上的。该过程主要用于训练U-Net 网络,训练的目标是使得U-Net 网络预测的噪声尽可能逼近实际添加的噪声。为了训练更加充分,可以将添加的噪声按照强度进行区分,并通过添加不同强度的噪声来对扩散模型进行训练。训练后的扩散模型能够较好地预测迭代加噪过程中每次加入的噪声。
需要特别注意的是,在迭代加噪过程中,每次的噪声是添加到潜空间中图像对应的数据矩阵中,而不是直接将噪点添加在图像上。
3、扩散模型的反向过程(生成过程)
同样以图像为例,扩散模型的反向过程就是我们所说的“生成过程”,即通过训练后的扩散模型和输入的提示信息,对纯噪声进行迭代降噪,得到与提示信息匹配的生成图像。所谓迭代降噪是指逐渐减少纯噪声中的噪点,每次降噪的输入数据为上一次降噪的结果。从可视化的角度来说,每次降噪的结果相较于上一次降噪的结果来说噪点更少。同样的,迭代降噪过程也是在潜空间中进行,而非直接去除图像中的噪点。
扩散模型的反向过程所涉及的主要参数包括:噪声加载计划表(scheduler)、随机种子(seed)、采样步数(steps)。噪声加载计划表指示了迭代降噪处理的具体实施过程,影响扩散模型的生成效果;随机种子用于指示起始条件,它确保了随机过程的可控性和可重复性;采样步数用于指示迭代降噪的次数。
4、风格迁移
风格迁移是扩散模型的一个重要概念,它的专业描述是:扩散模型的生成图像具有与原样本图像同时符合潜空间中一定数据结构分布规律的特点。简单来说,用两种不同风格的样本数据对扩散模型进行训练,得到两个不同的扩散模型,再将相同的纯噪声和提示信息输入这两个扩散模型,会得到两个完全不同的结果,每个扩散模型输出结果的风格,与该扩散模型训练时样本数据的风格相似。
个人理解这是由于训练时样本数据的风格不同,导致训练后的扩散模型对同一提示信息的理解不同,因此导致最后输出的结果不同。打一个不太恰当的比方,不同风格的数据在对扩散模型进行训练时会影响扩散模型的“审美观”(也就是风格),由于具有不同“审美观”的扩散模型对“美”(也就是提示信息)的理解不同,针对同一提示信息具有不同“审美观”的扩散模型输出的结果也不同。
5、应用场景
目前,除了被应用在图像生成、视频生成领域以外,以扩散模型为基础的生成模型还被广泛应用在文本生成、音乐创作等领域,并可以实现不同模态数据之间的转换,如根据音频生成图片、根据图片生成视频等。在撰写相关申请文件时,可以考虑数据和应用场景是否具有局限性。