diffusion model (扩散模型)原理

扩散模型分为正向过程和反向过程。
正向过程为一点点在图片上添加噪声的过程,反向过程为去噪声的过程。

图片的生成就是反向过程,给一张高斯噪声图片,逐步去噪生成图片。
在这里插入图片描述

扩散模型和VAE的区别,
VAE是一步到位的(通过encoder-decoder),扩散模型要分成N个step, 是一个自回归过程。

在这里插入图片描述

扩散模型的训练过程

重复1到5行的过程,直到收敛。
每次采样一张图片 x 0 x_{0} x0,t, 和高斯噪声图像 ϵ \epsilon ϵ
α t ˉ \bar{\alpha _{t} } αtˉ是事先定义好的数字,你可以定义它随时间线性变小,也可以是cosine分布。在你采样 t 的时候,t 也同时对应了一个 α t ˉ \bar{\alpha _{t} } αtˉ
ϵ \epsilon ϵ是高斯噪声图片,那么在这里插入图片描述就表示在图片上添加噪声。
ϵ θ \epsilon_{\theta} ϵθ可以理解为一个noise predictor, 它可以是一个网络, i n p u t input input是加了噪声的图片在这里插入图片描述和 t , 输出是一个噪声图片 ϵ θ ( i n p u t ) \epsilon_{\theta}(input) ϵθ(input),
根据采样的噪声 ϵ \epsilon ϵ和预测的噪声图片 ϵ θ ( i n p u t ) \epsilon_{\theta}(input) ϵθ(input)的误差来训练这个noise predictor,
使它能够输出尽可能接进 ϵ \epsilon ϵ的噪声。

在这里插入图片描述

上面的过程也说明了一个问题,
当你采样了 t, 是可以直接计算 t 时刻的加了噪声的图片的,在这里插入图片描述
请添加图片描述

而不是想像中的这个样子:
请添加图片描述

推理过程

前面提到了扩散模型有正向和反向过程,
在正向过程中,图片是 x 0 x_{0} x0, 逐步加噪声,到T时刻的 x T x_{T} xT是一个噪声图片。

推理过程是反向过程,根据高斯噪声的 x T x_{T} xT的得到图片 x 0 x_{0} x0.

ϵ θ \epsilon_{\theta} ϵθ是前面训练过程中训练的noise predictor, 它的input为加了噪声的图片 x t x_{t} xt和 t.
z z z也是一个采样的噪声图片。
请添加图片描述
上面的过程是这样的:
采样N次,直到得到清晰的 x 0 x_{0} x0

在这里插入图片描述

公式推导部分待更新。

参考资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个基于差异同步数据库结构的工具 - Skeema

本文是 GO 三方库推荐的第 5 篇,继续介绍数据库 schema 同步工具,我前面已经写了两篇这个主题的文章。系列查看:Golang 三方库。 今天,推荐是的一个基于差异实现数据库 schema 迁移的工具库 - skeema,同样由 Go 实现。…

数字孪生10个技术栈:数据采集的八种方式

大家好,我是贝格前端工场,上期讲了数字孪生10个技术栈(总括):概念扫盲和总体介绍,获得了大家的热捧,本期继续分享技术栈,大家如有数字孪生或者数据可视化的需求,可以联络我们。 一、…

迁移数据库

如果您需要快速迁移数据库到另一台服务器上,并且考虑到大型数据库的情况,以下是一些建议: 使用 mysqldump 导出并通过管道传输: 在导出时通过管道直接传输数据到新服务器,可以避免在中间产生大型的备份文件。这可以通过…

【好书推荐-第九期】Sora核心技术相关书籍《扩散模型:从原理到实战》与《GPT 图解:大模型是怎样构建的》:Sora的两大核心技术,都藏在这两本书里!

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公众号:洲与AI。 🎈 本文专栏:本文收录…

微信小程序开发常用的布局

在微信小程序开发中,常用的布局主要包括以下几种: Flex 布局:Flex 布局是一种弹性盒子布局,通过设置容器的属性来实现灵活的布局方式。它可以在水平或垂直方向上对子元素进行对齐、排列和分布。Flex 布局非常适用于创建响应式布局…

图片切换特效

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>05 图片切换</title><style type"text/css">*{padding: 0;margin: 0;}#box{border: 1px solid #ccc;width: 430px;height: 70px…

进程间通信---管道题目练习

实现AB进程对话。 A进程发送一句话后&#xff0c;B进程接收到打印。然后B进程发送一句话&#xff0c;A进程接收后打印 重复上述步骤。直到AB接收或者发送完quit后&#xff0c;结束AB进程 A进程 #include <stdio.h> #include <sys/types.h> #include <sys/stat.…

解决DBeaver执行脚本报错No active connection

解决DBeaver执行脚本报错No active connection 1、报错问腿 2、问题解决 2.1、右键点击该数据库&#xff0c;选择SQL编辑器&#xff0c;选择新建SQL编辑器&#xff0c;然后将sql语句复制过去。 或者左击选中数据库后直接使用快捷键 Ctrl] 2.2、在Project-General中找到Scr…

k8s运维问题整理

1.宕机或异常重启导致etcd启动失败 服务器非正常关机&#xff08;意外掉电、强制拔电&#xff09;后 etcd 数据损坏。 查看apiserver日志发现出现报错Error while dialing dial tcp 127.0.0.1:2379: connect: connection refused&#xff0c;2379是etcd的端口&#xff0c;那么a…

mybatis 数据库缓存的原理

MyBatis 是一个流行的 Java 持久层框架&#xff0c;它封装了 JDBC&#xff0c;使数据库交互变得更简单、直观。MyBatis 支持两级缓存&#xff1a;一级缓存&#xff08;Local Cache&#xff09;和二级缓存&#xff08;Global Cache&#xff09;&#xff0c;通过这两级缓存可以有…

Javaweb之SpringBootWeb案例之自动配置案例的自定义starter测试的详细解析

3.2.4.3 自定义starter测试 阿里云OSS的starter我们刚才已经定义好了&#xff0c;接下来我们就来做一个测试。 今天的课程资料当中&#xff0c;提供了一个自定义starter的测试工程。我们直接打开文件夹&#xff0c;里面有一个测试工程。测试工程就是springboot-autoconfigurat…

常见排序算法解析

芝兰生于深林&#xff0c;不以无人而不芳&#xff1b;君子修道立德&#xff0c;不为穷困而改节 文章目录 插入排序直接插入排序希尔排序 选择排序直接选择排序堆排序 交换排序冒泡排序快速排序优化挖坑法前后指针法非递归版 归并排序递归非递归 总结 插入排序 插入排序&#…

Nginx使用—基础应用

Nginx日志配置 1.mkdir /etc/nginx/logs2.server{listen 80;server_name nrj.test.com;access_log logs/acess-test.log; #正确日志error_log logs/error-test.log; #错误日志root /www;index index.html; } Nginx目录索引 语法&#xff1a;autoindex on | off 默认&#x…

【编程小记】在Windows下使用C/C++代码判断一个文件是否被其他进程占用

在Windows下使用C/C代码判断文件是否被占用 一、原理二、函数简单介绍三、实例代码 一、原理 在Windows下有一个Windows API叫做CreateFile&#xff0c;通过这个接口我们可以创建或打开文件&#xff0c;我们打开文件时可以采用独占模式进行打开&#xff0c;如果能够打开文件说…

Word Game

题目链接&#xff1a;Problem - C - Codeforces 解题思路&#xff1a; 用map存字母和出现的次数&#xff0c;然后遍历三个字母数组&#xff0c;如果map值为1&#xff0c;则加三分&#xff0c;为2加1分&#xff0c;否则不加分。 下面是c代码&#xff1a; #include<iostrea…

第41期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

Linux学习-二级指针的使用

目录 ###指针传参时要用二级指针 ###函数体内部想要修改函数外部指针变量值的时候需要使用二级指针(指针变量的地址) ###指针传参时要用二级指针 char *str[5]; int Fun(char **ppstr,int len); ###函数体内部想要修改函数外部指针变量值的时候需要使用二级指针(指针变量的…

#微信小程序创建(获取onenet平台数据)

1.IDE&#xff1a;微信开发者工具 2.实验&#xff1a;创建一个小程序&#xff08;http get获取onenet平台数据&#xff09; 3.记录&#xff1a; 百度网盘链接&#xff1a;https://pan.baidu.com/s/1eOd-2EnilnhPWoGUMj0fzw 提取码: 2023 &#xff08;1&#xff09;新建一个工…

【C++STL详解 —— string类】

【CSTL详解 —— string类】 CSTL详解 —— sring类一、string的定义方式二、string的插入三、string的拼接四、string的删除五、string的查找六、string的比较七、string的替换八、string的交换九、string的大小和容量十、string中元素的访问十一、string中运算符的使用十二、…

2024年腾讯云发红包了,可用于抵扣订单金额,你们领了吗?

在2024年腾讯云新春采购节优惠活动上&#xff0c;可以领取新年惊喜红包&#xff0c;打开活动链接 https://curl.qcloud.com/oRMoSucP 会自动弹出红包领取窗口&#xff0c;如下图&#xff1a; 腾讯云2024新春采购节红包领取 如上图所示&#xff0c;点击“领”红包&#xff0c;每…