扩散模型DDPM学习笔记

扩散模型DDPM

文章目录

  • 扩散模型DDPM
    • 如何运作
    • 基本概念
      • 训练过程
      • 推理过程:
    • 目标
    • 损失函数推导
    • 评估标准

论文地址: Denoising Diffusion Probabilistic Models (DDPM)

如何运作

​ 从guassian distribution进行采样得到一个噪声的图片,图片大小与想输出的图像一致,接着通过一系列的Denoise得到最终输出的图片。

2023-11-26_13-39-35

​ 为了让模型运行更好,针对不同噪声图片,我们都会进行一个编码代表当前noise的程度),对step步数也进行输入。因为如果不进行次数编码,对于不同噪声图片(图片差异很大),通过同一个模型,其处理效果可能就不是那么友好。

2023-11-26_13-41-28

Denoise通过Noise Predicter去预测输入的图片中,噪声是什么样的,然后进行相减就能得到输出图片。

预测噪声长什么样,而不是直接生成图片

2023-11-26_13-43-21

​ 训练数据来自于前向加噪声的过程,自己添加噪声和已知的step加到原始图片,就能生成一个带噪声的图片,反过来看,就是生成了训练数据了。

2023-11-26_13-45-23

基本概念

2023-11-28_17-24-01

2023-11-26_14-02-54

2023-11-26_14-03-44

训练过程

2023-11-28_17-33-38

通过 α t ˉ \bar{\alpha_t} αtˉ吧决定噪声权重,一次性加上,而不是一次次递推加.

推理过程:

最后新增加了噪声,才输出生成的图片。

2023-11-28_17-39-23

目标

极大似然估计,根据目标的estimation,生成的estimation与标准的estimation衡量

2023-11-28_18-44-51

想让产生的 P θ ( x i ) P_\theta(x^i) Pθ(xi)越大越好
θ ∗ = arg ⁡ max ⁡ θ ∏ i = 1 m P θ ( x i ) \theta^*=\arg \max_\theta \prod_{i=1}^mP_\theta(x^i) θ=argθmaxi=1mPθ(xi)

$$
\begin{aligned}
&\mathsf{Sample}\left{x{1},x{2},\ldots,x^{m}\right}\mathsf{from}P_{data}(x) \
\theta{*}&=arg\max_{\theta}\prod_{i=1}{m}P_{\theta}(x{i})=arg\max_{\theta}log\prod_{i=1}{m}P_{\theta}(x^{i}) \
&=arg\max_{\theta}\sum_{i=1}{m}logP_{\theta}\bigl(x{i}\bigr)\approx arg\max_{\theta}E_{x\sim P_{data}}\bigl[logP_{\theta}(x)\bigr] \

\end{aligned}
KaTeX parse error: Can't use function '$' in math mode at position 4: 由于$̲\int\limits_{x}…
&=arg\max_{\theta}\int\limits_{x}P_{data}(x)logP_{\theta}(x)dx\quad{\color{Red}-\int\limits_{x}P_{data}(x)logP_{data}(x)dx}\
&=arg\max\limits_{\theta}\int\limits_{x}P_{data}(x)log\frac{P_{\theta}(x)}{P_{data}(x)}dx=arg\min\limits_{\theta}KL(P_{data}||P_{\theta}) \
&\text{Maximum Likelihood=Minimize KL Divergence}
$$

第一个 P ( x T ) P(x_T) P(xT)是直接在原图进行采样的,不需要使用到 θ \theta θ

损失函数推导

2023-11-28_19-01-40

2023-11-28_19-04-43

2023-11-28_19-09-282023-11-28_19-12-07

kl散度没关系, P ( x T ) q ( x T ∣ x 0 ) P(x_T)q(x_T|x_0) P(xT)q(xTx0)两项一项是自己找噪声图片概率,一个是前向process自己定义的,可以拿走

2023-11-28_19-21-16

2023-11-28_19-25-25

让x(t)丢进去,希望输出的尽可能接近左边的mean

2023-11-28_19-31-50

为什么加noise?经过实验,如果不加noise什么都生成不了,加入了能生成。

2023-11-28_19-39-59

评估标准

2023-11-28_17-26-37

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot + MyBatis-Plus实现数据库读写分离

文章目录 1. 引言2. MyBatis-Plus简介3. 准备工作4. 配置数据源5. 配置MyBatis-Plus6. 创建实体类和Mapper接口7. 编写Service8. 控制器层9. 测试10. 数据库读写分离的原理11. 拓展11.1. 动态数据源11.2. 多数据源事务管理11.3. 多租户支持 12. 总结 🎉Spring Boot …

西南科技大学数字电子技术实验二(SSI逻辑器件设计组合逻辑电路及FPGA实现 )预习报告

一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程,越详细越好。用公式输入法完成相关公式内容,不得贴手写图片。(注意:从抽象公式直接得出结果,不得分,页数可根据内容调整) 1、1位半加器 真值表: 逻…

华为云(HECS)docker环境下安装jenkins

Jenkins是一个开源的自动化工具,可以自动化地完成构建、测试、交付或部署等任务。总之重点就是三个字:自动化,至于如何实现这些功能,Jenkins基于插件化的机制,提供了众多的插件来完成持续集成CI与持续部署CD。 【持续…

使用 Mybatis 的 TypeHandler 存取 Postgresql jsonb 类型

文章目录 使用 TypeHandler 存取 Postgresql jsonb 类型常见错误column "" is of type jsonb but expression is of type character varying 使用 TypeHandler 存取 Postgresql jsonb 类型 首先在数据库表中定义 jsonb 类型: create table tb_user_info…

Qt右键菜单+动作+qss案例

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//设置界面颜色样式this->setStyleSheet("background-color:rgb(54,54,54)");//创建文件菜单QMenu *fileMenuItems new QMenu;//菜单添加iconfileMenuItems->se…

【安装指南】MySQL和Navicat下载、安装及使用详细教程

目录 ⛳️1.【MySQL】安装教程 1.1 获取下载包 1.2 MySQL安装 1.2.1 MySQL工具安装 1.2.2 MySQL环境变量 1.2.3 验证MySQL安装成功 ⛳️2.【Navicat-v15】的安装和无限使用 ⛳️3.【测试Navicat连接MySQL】 ⛳️1.【MySQL】安装教程 1.1 获取下载包 前往官网获取压缩包…

Python---lambda表达式

普通函数与匿名函数 在Python中,函数是一个被命名的、独立的完成特定功能的一段代码,并可能给调用它的程序一个返回值。 所以在Python中,函数大多数是有名函数 > 普通函数。但是有些情况下,我们为了简化程序代码,…

Mysql的二阶段提交

先看执行器与InnoDB引擎是如何更新一条指定的数据的 可以看到,InnoDB在写redo log时,并不是一次性写完的,而有两个阶段,Prepare与Commit阶段,这就是"两阶段提交"的含义。 为什么要写redo log,不…

羊大师介绍,备孕阶段饮食规划及对羊奶的影响

备孕期是夫妻俩为了生育健康宝宝所准备的重要阶段,在这个阶段,营养的摄入对于双方的身体健康和胚胎的发育至关重要。而羊奶作为一种营养丰富的饮品,备孕期间是否能喝羊奶一直是备孕夫妇们关注的话题。本文小编羊大师将会详细解答这一问题&…

uniapp微信小程序中阻止事件冒泡

开发场景:列表中展示地块的数据信息,用户可以点击列表进入地块的详情界面,也可以点击列表中的星星按钮进行收藏 遇到的问题:每次点击星星的时候,都会触发父级的点击事件,从而进入到详情界面 原本的代码&am…

如何使用APP UI自动化测试提高测试效率与质量?

pythonappium自动化测试系列就要告一段落了,本篇博客咱们做个小结。 首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师、高级测试工程师岗位招聘信息上要求的,所以为了更好的待遇,我们还…

数据结构——链式二叉树的实现(详解)

呀哈喽。我是结衣。 不知道大家的递归学到怎么样呢?如果大家的递归功底不是很好,那么我相信在学完这篇文章后大家一定会对递归有一个更深层次的了解的。 构造链式二叉树 在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能…

华为ospf和isis双点双向路由重分布的次优路径和环路终极解决方案

r5上直接导入直连路由 r3和r2进行双点双向路由重分布 查看R3去往R5产生了次优路径: 因为是R2先互相引入的isis和ospf,所以R3会产生次优路径,如果是R3先相互引入ospf和isis,那就是R2去R5会产生次优路径,而R3本身不会。…

[机缘参悟-120] :计算机世界与佛家看世界惊人的相似

目录 前言: 一、计算机 - 有序性不过是人为设计出来的!!! 1.1 破相1:计算机的物质基础不过是一堆电子元器件的机缘组合 1.2 破相2:计算机不过是各种电信号的有序运动(有序是关键&#xff09…

HarmonyOS 传感器开发指南

HarmonyOS 系统传感器是应用访问底层硬件传感器的一种设备抽象概念。开发者根据传感器提供的Sensor接口,可以查询设备上的传感器,订阅传感器数据,并根据传感器数据定制相应的算法开发各类应用,比如指南针、运动健康、游戏等。 运作…

【好用的个人工具】在Docker环境下部署Simple mind map思维导图工具

【好用的个人工具】在Docker环境下部署Simple mind map思维导图工具 一、Simple mind map介绍1.1 Simple mind map简介1.2 Simple mind map特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker co…

WEB渗透—反序列化(六)

Web渗透—反序列化 课程学习分享(课程非本人制作,仅提供学习分享) 靶场下载地址:GitHub - mcc0624/php_ser_Class: php反序列化靶场课程,基于课程制作的靶场 课程地址:PHP反序列化漏洞学习_哔哩哔_…

Java 发送邮件

Java 发送邮件 使用Java应用程序发送E-mail十分简单,但是首先你应该在你的机器上安装JavaMail API 和Java Activation Framework (JAF) 。 你可以在 JavaMail (Version 1.2) 下载最新的版本。 你可以再 在JAF (Version 1.1.1)下载最新的版本。 下载并解压这些文…

GO 集成Prometheus

一、Prometheus介绍 Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便…

Edge浏览器的跨域设置

关闭安全策略 复制一个浏览器的快捷方式,修改它的目标信息 在目标路径后加上这段命令:" --disable-web-security --user-data-dirD:/edgeCros" 没有引号,注意空格,D:/edgeCros是自定义文件夹,用来存放数据 …