扩散模型基础学习
- AIGC是什么
- 扩散模型的发展
- VAE
- GAN
- DDPM
- stable Diffusion
- 基于transformer架构的Diffusion模型
- transformer
- 参考
AIGC是什么
AIGC,全称AI generated content (人工智能生产内容),是一种利用AI自动生产内容的生产方式。
其发展依赖以下三个要素:
- 更强,同时也是更便宜的算力
- 更多的高质量数据集,包括文本、语言、视觉和多模态
- 模型技术的发展,更具有扩展性和更好的模型,比如Transformers和diffusion model
比较火的三个领域: - 自然语言领域(代码生成、论文写作、诗歌对联等)
- 语音领域(语音合成、个性化声音生成等)
- 视觉领域的图像生成(stable diffusion,midjourney)、视频生成(sora)等
扩散模型的发展
VAE
采用了编码器、概率潜空间和解码器。其训练过程是,编码器预测每个图像的均值和方差。然后从高斯分布中对这些值进行采样,并将其传递到解码器中,其中输入的图像预计与输出的图像相似。使用KL散度计算损失。VAE的一个显著优势在于它们能够生成各种各样的图像,但VAE具有产生模糊图像的趋向。
GAN
在变分自编码器(VAE)的一年后,生成对抗网络(GAN)出现,其特征是基于两个神经网络的协作来生成:一个生成器和一个鉴别器,涉及对抗训练过程。生成器的目标是从随机噪声中生成真实的数据,而鉴别器则努力区分真实数据和生成数据。在整个训练阶段,生成器和鉴别器通过竞争性学习过程不断完善自己的能力。在采样阶段,结果GAN训练后,生成器通过输入随机噪声产生新的样本。GAN擅长于生成和训练集中图像非常相似的逼真图像。
DDPM
在GAN发表六年后,去噪扩散概率模型(DDPM)出现,其结合了两模型的优势,擅长于创造多样化和逼真的图像。
扩散模型分为两个过程,一个前向过程,通过向原始数据不断加入高斯噪声来破坏训练数据,最终加噪声到一定步数之后,原始数据信息就完全被破坏。无限接近一个纯噪声。另一个是反向过程,通过深度网络去噪,来学习恢复数据。
训练完成后,可以通过输入随机噪声,传递给去噪过程来生成数据。
stable Diffusion
是由Stability AI和LAION等公司共同开发的生成式模型,共有1B左右的参数量,文生图、图生图、图像inpainting、ControlNet控制生成、图像超分等。
以文生图任务进行讲解,即将一段文本输入到SD模型中,经过一定的迭代次数,SD模型输出一张符合输入文本描述的图片。
前向过程
对图像增加噪声的过程
-
输入: 为了让SD模型可以理解文本信息,需要CLIP Text Encoder模型作为SD 模块的前置模块(图生图任务中,原图片使用VAE编码器转为latent featrue)
在文生图任务中,在输入文本信息的同时,还需random函数生成一个高斯噪声矩阵转为latent featrue的替代输入到SD模型的“图像优化块”中。
反向过程
去噪的过程
- 图像优化模块: 由一个UNet网络和一个Schedule算法共同组成,其中UNet网络负责预测噪声,不断优化生成过程,在预测噪声的同时不断注入文本语义信息。而schedule算法对每次UNet预测的噪声进行优化处理(动态调整预测的噪声,控制UNet预测噪声的强度)
基于transformer架构的Diffusion模型
transformer
暂略 待补充
参考
- Datawhale 202402学习
- 教程地址
- 扩散模型的原理及实现
- 深入浅出完整解析Stable Diffusion