Diffusion 扩散模型(DDPM)
一、什么是扩散模型?
随着Stable Diffusion 3的问世,AI绘画再次成为最为火热的AI方向之一,那么不可避免地再次会问到Stable Diffusion里的这个”Diffusion”到底是什么?其实扩散模型(Diffusion Model)正是Stable Diffusion中负责生成图像的模型。
对Stable Diffusion 3好奇的可以看这个文章:https://www.jiqizhixin.com/articles/2024-03-06-3
我们今天来看最基础的去噪扩散模型(DDPM),那么什么才是去噪扩散模型呢?
DDPM 是一种基于马尔科夫链的生成模型。其基本思想是将数据生成视为一个逐步去噪的过程,即从纯噪声逐渐生成真实数据。它通过两个过程实现:
- 前向扩散过程(Forward Diffusion Process): 将数据逐步添加噪声,直到得到一个几乎完全是噪声的数据。
- 逆向生成过程(Reverse Generation Process): 学习如何逐步去除噪声,以恢复原始数据。
步骤:
- 前向过程从原始数据开始,通过一系列加噪步骤,将数据转换为高斯噪声。
- 逆向过程从纯噪声开始,通过一系列去噪步骤,逐步恢复原始数据。
这其实就是跟盖房子和拆房子一个道理,是将一个随机噪声z变换成一个数据样本x的过程:
随机噪声 z → 变换 样本数据 x 类比 ↓ ↓ 类比 砖瓦水泥 → 建设 高楼大夏 \begin{array}{ccc} \text { 随机噪声 } \boldsymbol{z} & \xrightarrow{\text { 变换 }} & \text { 样本数据 } \boldsymbol{x} \\ \text { 类比 } \downarrow & & \downarrow \text { 类比 } \\ \text { 砖瓦水泥 } & \xrightarrow{\text { 建设 }} & \text { 高楼大夏 } \end{array} 随机噪声 z 类比 ↓ 砖瓦水泥 变换 建设 样本数据 x↓ 类比 高楼大夏
可以将这个过程想象为“建设”,其中随机噪声z是砖瓦水泥等原材料,样本数据x是高楼大厦,所以生成模型就是一支用原材料建设高楼大厦的施工队。
为什么把一张图加上噪点,再去掉噪点变回一张图,就可以不仅学会数据分布,还能创新?
听起来将噪声添加到图像中,然后再去除这些噪声,看似是一个无意义的过程。
您有一幅精细的画作。如果您在这幅画上逐渐加入噪声(比如点、线、模糊等),画面将逐渐失去原有的形态,最终变成一片混乱。在这个过程中,画的每一部分都以不同的方式逐渐变得不可识别。这个逐步增加噪声的过程就是扩散模型中的“前向过程”。重要的部分来了:当**使用扩散模型时,AI不仅学习