0

0

基于Diffusion Model的图像生成

王林

王林

发布时间:2023-04-14 14:58:20

|

2662人浏览过

|

来源于51CTO.COM

转载

Part 01

  发展历史   

1.1 起源

2015年在Deep Unsupervised Learning using Nonequilibrium Thermodynamics 这篇文章中提出,当时的生成模型比如VAE,有一个很大的难点,就是这类模型是先定义了条件分布,然后再定义变分后验去适配,最后会导致需要同时优化条件分布和变分后验,然而这是很困难的。如果我们可以定义一个简单的过程,把数据分布映射到标准高斯,“生成器”的任务就变成了简单的拟合这个过程的逆过程的每一小步,这,就是diffusion model的核心思想。然而这篇文章当时并没有掀起什么波澜。

1.2 发展

时间来到2020年,基于前人的思想,提出了DDPM模型(Denoising Diffusion Probabilistic Models),相对于基础的扩散模型,作者结合了扩散模型和去噪分数,来引导训练以及采样的过程,带来了生成图像样本适量的提升,使其在训练更简单稳定的条件下,最后的结果可以和GAN模型相当。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

图片

图2-DDPM的生成结果

然而DDPM模型也并非完美无缺,由于扩散过程是一个马尔科夫链,其缺点就是需要比较大的扩散步数才可以获得比较良好的效果,这导致了样本生成很慢。

于是继DDPM之后,时间来到2021年,Song等人提出了DDIM(Denoising Diffusioin Implicit Model),其改造了DDPM的扩散过程的采样方法,将传统的马尔可夫扩散过程推广到了非马尔可夫过程,可以用更小的采样步数来加速样本生成,大大的提高了效率。

后续也有一些改进的工作,将扩散模型和传统的生成网络进行融合,比如将VAE和DM模型结合,GAN+DM的结合等等,笔者再此就不一一赘述了。

1.3 爆发

2022年,谷歌基于扩散模型推出了一款新的AI系统,可以将文字描述转为逼真图像。

图片

图3

图片

图4

由谷歌给出的原理图可以看出,输入的文本首先经过编码,然后由一个文字转图像的扩散模型转化为64*64的小图,进一步的,利用超分辨率扩散模型对小图进行处理,在进一步的迭代过程中提升图像的分辨率,得到最后的生成结果——一张1024*1024的最终图像。这个神奇的过程就像是大家使用中所感受到的一样,输入了一段文字——一只穿着红色点点高领衫,戴着蓝色方格帽子的金毛狗狗,然后程序就自动生成了上面你所看到的狗狗图片。

另一款热度颇高的现象级应用——novalAI,这本来是一个致力于AI写作的网站,基于当前火热的图像生成,它结合网络上的图片资源,训练了一个专注于二次元的图像生成模型,从效果上看已经初具人类画手的水平。

图片

图5


除了传统的输入文字从而产出图片之外,它还支持输入图片作为参考,可以让AI基于已知的图片基础上生成新的图片,一定程度上解决了AI生成结果不可控的问题。

Part 02

  原理阐述 ● 

那么,如此强大的AI技术,其工作过程到底是怎样的呢?这里我们以比较经典的DDPM模型作为例子给出简要的过程:

2.1 前向过程

前向过程是一个往图片上加噪声的过程,目的是为了构建训练样本GT。

对于给定的初始数据分布x0~q(x),我们逐步向数据分布中添加高斯噪声,这个过程有T次,每一步的结果是x1,x2,...,xt,噪声的标准差表示为,则加噪过程可以表述为:

图片

正如前文所述,这是一个马尔科夫链过程。最终会使得数据趋向于各向同性的高斯分布。

2.2 逆扩散过程

逆向过程是一个去噪的过程,如果得知图片,就可以从完全的标准高斯分布中还原出x0, 经过证明如果图片满足高斯分布且图片足够小,那么图片仍然是一个高斯分布,然后图片无法简单推断得到,所以我们利用一个参数为图片的深度学习模型去预测它,于是有:

图片

如果得知x0,则通过贝叶斯公式有:

图片


2.3 训练过程

如果对于机器学习有所了解的读者应该知道,所有模型的训练都是为了能够最优化模型的参数,从而得到靠谱的均值和方差,我们最大化模型预测分布的对数似然,即:

图片

经过一系列的推导,DDPM模型得到了最后的loss函数表达:

图片


总结一下训练的过程:

  • 1.获取输入的x0, 从1...T中随机采样一个t
  • 2.从标准高斯分布采样一个噪声图片
  • 3.计算出损失并迭代最小化损失函数

图片

图6


Part 03

  总结 ● 

扩散模型已经展示出了巨大的潜力,其相对于VAE模型不需要对准后验分布,也不需要像GAN那样训练额外的判别器,在包括计算机视觉,生物信息学,语音处理等方面都有应用,其在图像生成方面的应用,将助力于提升图像创作的效率,可能让AI生成根据条件生成若干图片,人类对其结果进行筛选和修改会是将来2D绘画领域的新的工作模式,这可能会很大程度上提升2D数字资产的生产效率。

然而伴随着AI技术的发展,总是会有一些争议,图像生成领域也不例外,除了AI技术本身的问题,如生成的图片结构错误,不合理之外,还伴随着一些法律方面的纠纷,比如AI作品本身的版权问题。技术的问题可以通过技术本身的发展来解决,我们有理由相信随着AI技术的发展,图像生成最后会达到一个很高的水平,这会消灭大部分低端的绘画相关的工作,极大的解放人类的生产力。版权问题可能还是需要政府部门对于相关产业的发展投入足够多的关注,完善相关的政策和制度,需要我们对于新兴的领域有更多的思考,从而让AI技术更好的服务于我们。

参考文献

https://www.php.cn/link/3799b2e805a7fa8b076fc020574a73b2

https://www.php.cn/link/6872937617af85db5a39a5243e858d1f

https://www.php.cn/link/831da40e5907987235ebe5616446e083

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

89

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

276

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

59

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

99

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

105

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

230

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

619

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

173

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
10分钟--Midjourney创作自己的漫画
10分钟--Midjourney创作自己的漫画

共1课时 | 0.1万人学习

Midjourney 关键词系列整合
Midjourney 关键词系列整合

共13课时 | 0.9万人学习

AI绘画教程
AI绘画教程

共2课时 | 0.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号