术语表  / 扩散模型
扩散模型

扩散模型详解:最全面阐述

扩散模型究竟是什么?

扩散模型是概率生成模型的一种,它们在机器学习的去噪和图像合成领域表现卓越。这种模型通过增加高斯噪声来逐步混淆数据,随后学习逆转噪声过程以重新构造样本。

比如,在图像生成任务中,扩散模型会对一幅图像加入噪声,反复多次操作,直到图像完全变成纯噪声图像。接下来,模型逐步消除图像中的噪声,最终呈现出一幅清晰的图像。通过这一过程,模型能够生成一系列与原始图像高度相似的新图像。

扩散模型的关键组成

扩散模型建立在三个主要的数学框架基础之上:

  1. 去噪扩散概率模型(DDPM):DDPM 运用正向与反向的两条马尔可夫链为数据增加或去除噪声。它们利用深度神经网络来逆转正向过程中引入的噪声,使生成的样本与原始数据分布高度一致。
  2. 基于得分的生成模型(SGM):SGM 通过向数据加入高斯噪声,并使用经过噪声训练的深度神经网络来估计得分函数,这些得分函数指导新数据样本的生成,使其尽可能地接近原始数据分布。
  3. 随机微分方程(SDE):SDE 扩展了 DDPM 和 SGM 的概念,以适应具有无限时间尺度或连续噪声级别变化的数据建模。它们运用随机微分方程精确描述数据在噪声扰动下的演变过程以及样本的生成机制,并利用得分函数来指导去噪过程,以恢复出清晰的数据样本。

扩散模型的工作原理

扩散模型通过数据、有序的高斯噪声以及中间潜在空间之间的精密交互,在一个高度复杂的层面进行工作。这种精巧的流程赋予了它们制作出改善原始数据的能力。下面我们深入探讨一下它的工作机制:

1. 高斯噪声的运用:

扩散模型在其运作中系统性地引进高斯噪声。在每一步迭代中,会有精确控制的高斯噪声被添加至数据之中,这种噪声来自于高斯分布,使得噪声水平可以被精细地调控。

# Adding controlled Gaussian noise noisy\_data = original\_data + noise 

2. 进入正态分布状态:

为了推动扩散过程,输入数据会被转化成正态分布——其特征是均值为 0,标准差为 1。这样的转化不仅简化了噪声的控制过程,也为整个扩散过程打下了基础。

# Transforming data into a normal distribution normalized\_data = (original\_data - original\_data.mean()) / original\_data.std() 

3. 扩散建模:

在图像或视频生成模型的背景下,让我们详细分析扩散建模的过程。这个过程主要包含两个关键阶段:

  • 正向扩散:此阶段,模型开始对原始图像的像素进行转换,通过上百至上千的步骤,不断引入高斯噪声。整个过程以马尔可夫链的形式逐步进行,每一步都精确控制噪声量,直至图像完全“扩散”成纯噪声状态。
# Forward diffusion process for step in range(num\_steps):     noisy\_image = noisy\_image + step\_noise\[step] 
  • 反向扩散:这个阶段则是清晰图像逐步浮现的过程。涉及去噪、缩放及多次迭代,最终得到一个清晰图像,仿佛是看到雾中景象逐渐清晰起来。
# Reverse diffusion process for step in reversed(range(num\_steps)):     noisy\_image = noisy\_image - step\_noise\[step] 

需要注意,在正向扩散过程中,对像素值进行适当缩放是关键一步,以避免图像过饱和丢失细节。

# Scaling pixel values scaled\_image = original\_image \* scaling\_factor 

4. 应用卷积神经网络(CNN):

在反向扩散的环节中,卷积神经网络至关重要。它们能够精确地从纯噪声状态中恢复图像,去除噪声,重现一个清晰并忠于原图的图像。

5. 面向未来的训练:

经过训练的扩散模型准备好生成新的图像。模型将有目的地向输入数据中引入噪声,再利用其精湛的去噪技术制作出新的、干净的数据版本。

# Generating new images by introducing noise new\_image = noisy\_input\_data + generated\_noise 

现代扩散模型的中间潜在空间:

在现代图像扩散模型中,一个新的角色——中间潜在空间被引入。在这个空间内,而非直接作用于原始像素,扩散过程得以发生。这一创新显著提升了扩散模型的工作效率和效果,使得变换过程更加细腻、可控。

扩散模型在 AI / ML 中的应用

扩散模型因其广泛的应用场景在生成模型领域受到青睐。它在图像生成、文生图、图像超分辨率提升、自然语言生成等方面有着广泛的应用。

自然语言生成

自然语言处理(NLP)在当前 AI 领域有着诸多实际应用价值。扩散模型以其多样化输出的能力,在自然语言生成(NLG)领域发挥着重要作用。在生成预训练变换器(GPT)等大语言模型(LLM)中,扩散模型支持包括内容创作、文本摘要编写、文本补全等多项 NLG 任务。

图像与视频生成

扩散模型显著提升了视频生成的品质,并有效应对视频帧在复杂性和时空连续性方面的挑战。利用这一技术,内容创作者可以通过输入文本提示,制作出简短而高质量的视频剧本。

文生图

如今,通过向文本到图像的生成器输入文本提示,您便能够创造出新的图像。谷歌的 Imagen 和 OpenAI 的 DALL-E 是这一技术的经典实现。在这些应用中,大语言模型利用扩散技术将“视觉文字”解码为图像。一般来说,生成器将图像编码为向量形式的视觉单词,并使用这些视觉单词作为条件,引导扩散模型生成风格与原始图像相似的新图像。

图像超分辨率

图像超分辨率是扩散模型早期应用之一,其目的是在最大限度保留图像内容的前提下,提升图像从低分辨率到高分辨率的质量。

图像超分辨率的过程包括两个步骤:首先,使用扩散模型生成分辨率较低的图像——这一过程相对容易且训练速度较快。其次,再对另一个专门的扩散模型进行训练,以实现超高分辨率,显著提升图像的质量。

扩散模型面临的挑战

尽管扩散模型在 AI 领域展现出强大的能力,并不断推动行业革新,但它们也面临一些不容忽视的挑战。

训练耗时长

扩散模型的训练过程复杂且耗时,特别是在初期阶段。尽管随着模型能力的增强,其后期训练时间会有所缩短,但整个训练过程仍可能需要数分钟到数小时不等的时间。与生成对抗网络(GAN)相比,扩散模型在生成样本时需要进行数千次的神经网络调用,速度相对较慢。

微调难度大

想要根据特定需求对预训练的扩散模型进行微调并非易事,尤其是在数据有限的情况下。数据限制可能导致模型在训练的早期阶段就出现过拟合问题,进而影响生成图像的质量和多样性。

内存需求高

运行大型扩散模型需要巨大的内存空间,这些模型通常包含高达数十亿的参数量,需要在配备有强大处理能力的服务器上运行。因此,在内存受限的移动设备上部署这类模型尤其具有挑战性。

为了在移动设备上实现扩散模型的部署,业界正在探索解决方案,其中包括开发小型的扩散模型,以便它们能够在移动设备上运行。

常见问题 FAQ

生成对抗网络(GAN)与扩散模型有什么区别?

生成对抗网络(GAN)是通过一个竞争的训练过程来进行工作的,它使用一个生成器网络来创造数据样本,并使用一个鉴别器网络来判别数据样本的真伪。相对地,扩散模型是一种基于概率的模型,它通过反复加入高斯噪声并施加一个学习得到的去噪过程,逐步将数据转换成逼真的样本。

变换器模型(Transformer)和扩散模型有什么不同?

变换器模型(Transformer)利用自注意力机制来把握序列数据中各个元素之间的关联,特别是在图像分类和自然语言处理(NLP)任务中表现突出。与之不同,扩散模型在生成高清晰度、近乎照片般真实感的图像方面尤为擅长。

扩散模型面临的挑战有哪些?

扩散模型的训练过程中去噪步骤耗时并需要多轮迭代。而且,参数众多的大型扩散模型对内存的需求极大。此外,若只用有限的数据来微调预训练的扩散模型,可能会出现过拟合的问题,这会导致生成的图像质量低下,缺乏多样性。

扩散模型是如何生成图像的?

扩散模型通过一个反复的扩散和去噪过程来生成图像,此过程包括对图像像素值的逐步精细调整,最终生成结构连贯、细节丰富的图像。