厦门旅游网站建设/网络推广网址
文章目录
- 1.1 扩散模型的原理
- 生成模型
- 扩散过程
- DDPM的扩散过程
- 前向过程
- 反向过程
- 优化目标
- 1.2 扩散模型的发展
- 开始扩散:DDPM
- 加速生成:采样器
- 刷新记录:基于CLIP的多模态图像生成
- 引爆网络:基于CLIP的多模态图像生成
- 再次“出圈”:大模型的“再学习”方法——DreamBooth、LoRA和ControlNet
- 开启AI作画时代:众多商业公司提出成熟的图像生成解决方案
- 1.3 扩散模型的应用
- 计算机视觉
- 时序数据预测
- 自然语言
- 基于文本的多模态
- AI基础科学
- 参考资料
扩散模型(Diffusion Model):基于扩散思想的深度学习生成模型
生成模型举例
VAE(Variational Auto-Encoder,变分自编码器)
GAN(Generative Adversarial Net,生成对抗网络)
学习内容
扩散模型的原理:扩散模型是如何“扩散”
扩散模型的发展:扩散模型在图像生成方面的技术迭代与生态发展历程
扩散模型的应用:扩散模型除了图像生成领域之外的其他应用
1.1 扩散模型的原理
扩散模型主要包括前向扩散和反向扩散两个过程
生成模型
目标
根据给定的样本,即训练数据生成新样本
基本思想
假设给定的训练数据 X X X服从某种真实分布 p ( x ) p(x) p(x),生成模型则估计训练数据的真实分布,假设为 q ( x ) q(x) q(x),再通过最大似然思想,在使得给定训练数据是采样自 q ( x ) q(x) q(x)的概率尽可能大的过程中,对估计分布 q ( x ) q(x) q(x)进行优化
总结来说,生成模型就是在对训练数据的分布进行建模
扩散过程
初始的简单分布通过扩散过程来建模一个复杂的分布
一滴墨水在水中扩散的过程
在扩散开始之前,这滴墨水会在水中的某个地方形成一个大的斑点,即墨水分子的初始状态,其分布是很复杂的,建模是很困难的
随着扩散过程的进行,这滴墨水随着时间的推移逐步扩散到水中,墨水分子的概率分布将变得更加简单和均匀,即容易建模
于是,我们思考将这个扩散过程反过来,先对扩散完成时的墨水分子的概率分布进行建模,然后通过一个反向扩散过程,得到墨水分子的初始概率分布
公认最早的扩散模型DDPM(Denoising Diffusion Probabilistic Model)
为了方便建模,扩散模型仍需做出很多假设
DDPM做出的假设:
- 假设扩散过程是马尔可夫过程(即每一个时间步状态的概率分布仅由上一个时间步状态的概率分布加上当前时间步的高斯噪声得到)
- 扩散过程的逆过程是高斯分布等
DDPM的扩散过程
分为前向过程和反向过程两个部分
前向过程
给数据添加噪声的过程,即上图中从右到左的过程
前向加噪过程被分为离散的多个时间步T,在每一个时间步t,给上一个时间步t−1的数据 x t − 1 x_{t−1} xt−1添加高斯噪声,从而生成带有噪声(简称“带噪”)的数据 x t x_t xt,同时数据 x t x_t xt也会被送入下一个时间步t+1以继续添加噪声
关于噪声的选取
噪声的方差是由一个位于区间(0,1)的固定值βt确定的
噪声的均值则由固定值βt和当前时刻“带噪”的数据分布确定
根据马尔可夫链的性质,训练数据经过这T个时间步的迭代、加噪过程后,将服从纯随机噪声分布
公式表达
从时间步t−1到时间步t的单步扩散加噪过程
最终的噪声分布
反向过程
“去噪”的过程,即从随机噪声中迭代恢复出清晰数据的过程
根据DDPM的假设,待去噪数据为采样自高斯噪声 x t ∼ N ( 0 , I ) x_t\sim N(0,I) xt∼N(0,I)的一个随机噪声
去噪目标为原始数据 x 0 x_0 x0
去噪实现需要有一个每一步的图像分布状态转移的马尔可夫链,即我们需要的扩散模型
数学表达式
从时间步t到时间步t−1的单步反向“去噪”过程
均值表达式
方差表达式
优化目标
噪声残差,即要求后向过程中预测的噪声分布与前向过程中施加的噪声分布之间的“距离”最小,则能达到后向去噪过程得到的 x 0 ′ x_0' x0′与前向加噪的原始数据 x 0 x_0 x0最接近
用VAE类比
扩散模型可视为一个包含T个隐变量的模型,即更深层次的VAE
VAE的损失函数可以使用变分推断来得到变分下界(variational lower bound)
数学表达式
分析可知,使用的是MSE损失函数
1.2 扩散模型的发展
与2D图像生成相关的扩散模型的发展历程
发展历程:
开始扩散:DDPM
于2020年提出的DDPM模型(Denoising Diffusion Probabilistic Models)首次将“去噪”扩散概率模型应用到图像生成任务中,做出的贡献包括:扩散过程定义、噪声分布假设、马尔可夫链计算、随机微分方程求解和损失函数表征等
加速生成:采样器
早期的扩散模型由于采样器所控制的图像生成阶段需要迭代多次,生成速度非常慢
当时亟待解决的问题是如何在保证生成质量的前提下加快采样
重要突破
论文“Score-Based Generative Modeling through Stochastic Differential Equations”证明了DDPM的采样过程是更普遍的随机微分方程,这为加速采样提供了一个重要的解决思路——更离散化地求解该随机微分方程,即可缩短采样所需步骤
加速的采样器举例
Euler、SDE、DPM-Solver++和Karras等
举个例子
刷新记录:基于CLIP的多模态图像生成
由于早期的扩散模型在所生成图像的质量和稳定性上并不如经典的生成模型GAN,扩散模型并没有被广泛应用到图像生成领域
重要突破
OpenAI在论文“Diffusion Models Beat GANs on Image Synthesis”中介绍了在扩散过程中使用显式分类器进行引导的方法,这使得扩散模型在图像生成领域打败了GAN
引爆网络:基于CLIP的多模态图像生成
CLIP介绍
连接文本和图像的模型,将同一语义的文字和图片转换到同一个隐空间中
将CLIP技术和扩散模型结合,引起了基于文字引导的文字生成图像扩散模型的快速发展
文生图模型举例
OpenAI的GLIDE、DALL-E、DALL-E 2
Google的Imagen以及开源的Stable Diffusion
再次“出圈”:大模型的“再学习”方法——DreamBooth、LoRA和ControlNet
“再学习”方法的原因
现在的图像生成扩散模型都是大规模的、预训练的,类比微调之于大模型,在使用扩散模型的图像生成领域有了多种“再学习”方法
常见“再学习”方法
针对不同的任务,有这样三种再学习方法——DreamBooth、LoRA和ControlNet
DreamBooth方法
实现使用现有模型再学习到指定主体图像的功能,即在训练过程中将指定主体图像与特定的文本标识绑定
举个例子
在这个例子中,训练过程中将“小狗”与输入图像进行绑定,从而通过文字提示生成此特定小狗在不同场景下的图像
LoRA方法
实现使用现有模型再学习到自己指定数据集风格或人物的功能,并且还能够将其融入现有的图像生成中
如Facechain模型中通过提供人物数据集并选择不同的风格数据集,使用LoRA方法得到人物写真图像
Hugging Face提供了训练LoRA的UI界面
ControlNet方法
再学习到更多模态的信息,并利用分割图、边缘图等功能更精细地控制图像的生成
开启AI作画时代:众多商业公司提出成熟的图像生成解决方案
图像生成解决方案举例
Midjourney的Discord频道主页:输入提示语来生成图像、跟全世界的用户一起分享和探讨图像生成的细节
Stability AI的图像生成工具箱DreamStudio:使用提示语来编辑图像、将其SDK嵌入自己的应用或者作为Photoshop插件使用
Photoshop:基于扩散模型的图像编辑工具库Adobe Firefly
百度公司:文心一格AI创作平台
阿里巴巴达摩院:通义文生图大模型
退格网络:Tiamat图像生成工具
北京毛线球科技有限公司:6pen Art图像生成APP,将图像生成带到手机端
1.3 扩散模型的应用
扩散模型最常见、最成熟的应用就是完成图像生成任务
但扩散模型在其他领域仍有极大的应用前景,这是不容忽视的
包括但不限于以下领域的应用
计算机视觉
计算机视觉包括2D视觉和3D视觉两个方面,这里专注于扩散模型在2D图像领域的应用
图像分割与目标检测
Meta AI的SegDiff分割扩散模型可以生成分割Mask图
检测扩散模型DiffusionDet可以端到端地从随机矩形框逐步生成检测框
存在的问题:生成速度慢,难以应用于一些需要实时检测的场景
图像超分辨率
图像超分辨率是一项能够将低分辨率图像重建为高分辨率图像,同时保证图像布局连贯的技术
CDM(Cascaded Diffusion Model,级联扩散模型)通过采用串联多个扩散模型的方式,分级式地逐步放大分辨率,实现了图像超分辨率(论文"Cascaded Diffusion Models for High Fidelity Image Generation")
图像修复、翻译和编辑
图像修复、图像翻译和图像编辑是对图像的部分或全部区域执行的操作,包括缺失部分修补、风格迁移、内容替换等
Palette:一个集成了图像修复、图像翻译和图像编辑等功能的扩散模型,它可以在一个模型中完成不同的图像级任务(论文"Palette: Image-to-Imge Diffusion Models. ")
时序数据预测
时序数据预测旨在根据历史观测数据预测未来可能出现的数据,如空气温度预测、股票价格预测、销售与产能预测等。时序数据可以视为生成任务,因而扩散模型可以发挥作用
TimeGrad:首个在多元概率时序数据预测任务中加入扩散思想的自回归模型。为了将扩散过程添加到历史数据中,TimeGrad首先使用RNN(Recurrent Neural Network,循环神经网络)处理历史数据并保存到隐空间中,然后对历史数据添加噪声以实现扩散过程,由此处理数千维度的多元数据并完成预测任务(论文"Autoregressive Denoising Diffusion Models for Multivariate Probabilistic Time Series Forcasting.")
自然语言
扩散模型用于语言类的生成任务:将自然语言类的句子分词转换为词向量后使用扩散模型学习自然语言的语句生成,进而完成nlp中更复杂的任务
Diffusion-LM是首个将扩散模型应用到自然语言领域的扩散语言模型,解决了将连续的扩散过程应用到离散的非连续化文本的问题,从而实现语言类的高细粒度可控生成。
基于文本的多模态
多模态信息:多种数据类型的信息,包括文本、图像、音/视频、3D物体等。在LLM不断发展的今天,多模态的发展趋势为基于文本和其他模态的交互,如文本生成图像、文本生成视频、文本生成3D等
文本生成图像
文生图是扩散模型最最流行、最成熟的应用
input为文本提示,output为对应图片
模型举例:DALLE-2、Imagen以及完全开源的Stable Diffusion等
文本生成视频
将输入的文本提示语转换为相应的视频流,其难点在于视频的前后帧需要保持极佳的连贯性
模型举例:Meta AI的Make-A-Video以及能够精细控制视频生成的ControlNet Video等
文本生成3D
将输入的文本转换为相应的3D物体,其不同在于3D物体有多种表征方式,如点云、网格、NeRF等
模型举例:
DiffRF从文本生成3D辐射场
3DFuse基于二维图像生成对应的3D点云
应用前景:室内设计、游戏建模、元宇宙数字人等
AI基础科学
AI for Science
SMCDiff创建了一种扩散模型,根据给定的模体结构生成多样化的支架蛋白质(论文"Diffusion Probabilistic Modeling of Prote in Backbones in 3D for the Motif-Scaffolding Problem.“)
CDVAE提出了一种扩散晶体变分自编码器模型,生成和优化具有固定周期性原子结构的材料(论文"Crystal Diffusion Variational Autoencoder for Periodic Material Generation.”)
参考资料
- 《扩撒模型从原理到实战》
相关文章:

【扩散模型从原理到实战】Chapter1 扩散模型简介
文章目录 1.1 扩散模型的原理生成模型扩散过程DDPM的扩散过程前向过程反向过程优化目标 1.2 扩散模型的发展开始扩散:DDPM加速生成:采样器刷新记录:基于CLIP的多模态图像生成引爆网络:基于CLIP的多模态图像生成再次“出圈”&#…...

使用轮廓分数提升时间序列聚类的表现
我们将使用轮廓分数和一些距离指标来执行时间序列聚类实验,并且进行可视化 让我们看看下面的时间序列: 如果沿着y轴移动序列添加随机噪声,并随机化这些序列,那么它们几乎无法分辨,如下图所示-现在很难将时间序列列分组为簇: 上面…...

蔬菜水果生鲜配送团购商城小程序的作用是什么
蔬菜水果是人们生活所需品,从业者众多,无论小摊贩还是超市商场都有不少人每天光临,当然这些只是自然流量,在实际经营中,蔬菜水果商家还是面临着一些难题。 对蔬菜水果商家而言,线下门店是重要的࿰…...

金融用户实践|分布式存储支持数据仓库业务系统性能验证
作者:深耕行业的 SmartX 金融团队 闫海涛 估值是指对资产或负债的价值进行评估的过程,这对于投资决策具有重要意义。每个金融公司资管业务人员都期望能够实现实时的业务估值,快速获取最新的数据和指标,从而做出更明智的投资决策。…...

代码随想录二刷 Day41
509. 斐波那契数 这个题简单入门,注意下N小于等于1的情况就可以 class Solution { public:int fib(int n) {if (n < 1) return n; //这句不写的话test能过但是另外的过不了vector<int> result(n 1); //定义存放dp结果的数组,还要定义大小r…...

C++项目实战——基于多设计模式下的同步异步日志系统-⑪-日志器管理类与全局建造者类设计(单例模式)
文章目录 专栏导读日志器建造者类完善单例日志器管理类设计思想单例日志器管理类设计全局建造者类设计日志器类、建造者类整理日志器管理类测试 专栏导读 🌸作者简介:花想云 ,在读本科生一枚,C/C领域新星创作者,新星计…...

Hadoop3教程(十四):MapReduce中的排序
文章目录 (99)WritableComparable排序什么是排序什么时候需要排序排序有哪些分类如何实现自定义排序 (100)全排序案例案例需求思路分析实际代码 (101)二次排序案例(102) 区内排序案例…...

测试需要写测试用例吗?
如何理解软件的质量 我们都知道,一个软件从无到有要经过需求设计、编码实现、测试验证、部署发布这四个主要环节。 需求来源于用户反馈、市场调研或者商业判断。意指在市场行为中,部分人群存在某些诉求或痛点,只要想办法满足这些人群的诉求…...

Qt 视口和窗口的区别
视口和窗口 绘图设备的物理坐标是基本的坐标系,通过QPainter的平移、旋转等变换可以得到更容易操作的逻辑坐标 为了实现更方便的坐标,QPainter还提供了视口(Viewport)和窗口(Window)坐标系,通过QPainter内部的坐标变换矩阵自动转换为绘图设…...

使用Git将GitHub仓库下载到本地
前记: git svn sourcetree gitee github gitlab gitblit gitbucket gitolite gogs 版本控制 | 仓库管理 ---- 系列工程笔记. Platform:Windows 10 Git version:git version 2.32.0.windows.1 Function:使用Git将GitHub仓库下载…...

前端需要了解的浏览器缓存知识
文章目录 前言为什么需要缓存?DNS缓存缓存读写顺序缓存位置memory cache(浏览器本地缓存)disk cache(硬盘缓存)重点!!! 缓存策略 - 强缓存和协商缓存1)强缓存ExpiresCach…...

自动驾驶:控制算法概述
自动驾驶:控制算法概述 常见控制算法PID算法LQR算法MPC算法 自动驾驶控制算法横向控制纵向控制 参考文献 常见控制算法 PID算法 PID(Proportional-Integral-Derivative)控制是一种经典的反馈控制算法,通常用于稳定性和响应速度要…...

【Mysql】Mysql的字符集和比较规则(三)
字符集和比较规则简介 字符集简介 我们知道在计算机中只能以二进制的方式对数据进行存储,那么他们之间是怎样对应并进行转换的?我们需要了解两个概念: 字符范围:我们可以将哪些字符转换成二进制数据,也就是规定好字…...

【SpringCloud-11】SCA-sentinel
sentinel是一个流量控制、熔断降级的组件,可以替换第一代中的hystrix。 hystrix用起来没有那么方便: 1、要在调用方引入hystrix,没有ui界面进行配置,需要在代码中进行配置,侵入了业务代码。 2、还要自己搭建监控平台…...

设计模式:简单工厂模式(C#、JAVA、JavaScript、C++、Python、Go、PHP):
简介: 简单工厂模式,它提供了一个用于创建对象的接口,但具体创建的对象类型可以在运行时决定。这种模式通常用于创建具有共同接口的对象,并且可以根据客户端代码中的参数或配置来选择要创建的具体对象类型。 在简单工厂模式中&am…...

浅谈智能照明控制系统在智慧建筑中的应用
贾丽丽 安科瑞电气股份有限公司 上海嘉定 201801 摘要:新时期,建筑行业发展迅速,在信息化背景下,建筑功能逐渐拓展,呈现了智能化的发展态势。智能建筑更加安全、节能、环保,也符合绿色建筑理念。在建筑智…...

lower_bound()以及upper_bound()
lower_bound(): lower_bound()的返回值是第一个大于等于 target 的值的地址,用这个地址减去first,得到的就是第一个大于等于target的值的下标。 在数组中: int poslower_bound(a,an,target)-a;\\n为数组…...

unity(WebGL) 截图拼接并保存本地,下载PDF
截图参考:Unity3D 局部截图、全屏截图、带UI截图三种方法_unity 截图_野区捕龙为宠的博客-CSDN博客 文档下载: Unity WebGL 生成doc保存到本地电脑_unity webgl 保存文件_野区捕龙为宠的博客-CSDN博客 中文输入:Unity WebGL中文输入 支持输…...

加速企业云计算部署:应对新时代的挑战
随着科技的飞速发展,企业面临着诸多挑战。在这个高度互联的世界中,企业的成功与否常常取决于其能否快速、有效地响应市场的变化。云计算作为一种新兴的技术趋势,为企业提供了实现这一目标的可能。通过加速企业云计算部署,企业可以…...

ubuntu 18.04 LTS交叉编译opencv 3.4.16并编译工程[全记录]
一、下载并解压opencv 3.4.16源码 https://opencv.org/releases/ 放到home路径下的Exe文件夹(专门放用户安装的软件)中,其中build是后期自建的 为了版本控制,保留了3.4.16,并增加了-gcc-arm 二、安装cmake和cmake-g…...

禁用和开启笔记本电脑的键盘功能,最快的方式
笔记本键盘通常较小,按键很不方便,当我们外接了键盘时就不需要再使用自带的键盘了,而且午睡的时候,总是担心碰到笔记本的键盘,可能会删掉我们的代码什么的,所以就想着怎么禁用掉,下面是操作步骤…...

【单片机基础】使用51单片机制作函数信号发生器(DAC0832使用仿真)
文章目录 (1)DA转换(2)DAC0832简介(3)电路设计(4)参考例程(5)参考文献 (1)DA转换 单片机作为一个数字电路系统,当需要采集…...

springcloud组件
https://www.bilibili.com/video/BV1QX4y1t7v5?p32&vd_source297c866c71fa77b161812ad631ea2c25 eureka : 主要是收集服务的注册信息。 如果有了eureka启动了。内部之前的调用其实就可以用服务名了, 本来是要是用ip端口来访问的,只要eureka启来了…...

手机爬虫用Appium详细教程:利用Python控制移动App进行自动化抓取数据
Appium是一个强大的跨平台工具,它可以让你使用Python来控制移动App进行自动化操作,从而实现数据的抓取和处理。今天,我将与大家分享一份关于使用Appium进行手机爬虫的详细教程,让我们一起来探索Appium的功能和操作,为手…...

deb包构建详解
deb包构建详解 一、deb包构建流程二、deb包构建描述文件详解2.1 control文件2.2 postinst 文件 (post-installation script)2.3 postrm 文件 (post-removal script)2.4 prerm 文件 (pre-removal script)2.5 preinst 文件 (pre-installation script)2.6 rules 文件2.7 changelog…...

【Spring Cloud】网关Gateway的请求过滤工厂RequestRateLimiterGatewayFilterFactory
概念 关于微服务网关Gateway中有几十种过滤工厂,这一篇博文记录的是关于请求限流过滤工厂,也就是标题中的RequestRateLimiterGatewayFilterFactory。这个路由过滤工厂是用来判断当前请求是否应该被处理,如果不会被处理就会返回HTTP状态码为42…...

自己写spring boot starter问题总结
1. Unable to find main class 创建spring boot项目写自己的starterxi写完之后使用install出现Unable to find main class,这是因为spring boot打包需要一个启动类,按照以下写法就没事 <plugins><plugin><groupId>org.springframewo…...

vue3如何打开页面即向后端发送请求
目录 背景: 实现: 1、使用 2、案例 补充: 1、如何定义一个集合来接受后端返回的list 2、加入请求头 背景: 如果想在页面刚加载时向后端发送请求,可以使用Vue 3的生命周期钩子函数onMounted来实现 实现ÿ…...

【软考】9.2 串/数组/矩阵/广义表/树
《字符串》 一种特殊的线性表,数据元素都为字符模式匹配:寻找子串第一次在主串出现的位置 模式匹配算法 1. 暴力破解法(布鲁特-福斯算法) 主串与子串一个个匹配效率低 2. KMP算法 主串后缀和子串前缀能否找到一样的元素…...

大数据 DataX 数据同步数据分析入门
目录 一、DataX 概览 1.1 DataX 是什么 1.2 DataX 3.0 概览 设计理念 当前使用现状 二、DataX 详解 2.1 DataX 3.0 框架设计 2.2 DataX 3.0 插件体系 2.3 DataX 3.0 核心架构 2.3.1 核心模块介绍 2.3.2 DataX 调度流程 2.4 DataX 3.0 的六大核心优势 2.4.1 可靠的…...