扩散模型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

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

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

相关文章

【复杂网络建模】——ER网络度分布、无标度网络度分布

目录 一、复杂网络介绍 二、ER网络、SF网络介绍 1、ER网络(Erdős-Rnyi网络)

测开笔记--Typescript: 文件复制到指定目录

开发背景: 自动化开发语言使用的是TypeScript;框架用的是playwright。有个测试脚本需要先将几个文件复制粘贴到新建的项目文件夹下,系统会读取该文件,然后生成页面信息。 关键字:文件复制粘贴; 新建的项目…

为什么我不能给shopify的图片添加alt

首先我们要明白是什么ALT标签,为什么要添加这个标签,这个标签有什么用 ALT标签是什么 ALT属性是HTML的一部分,它为那些无法查看图像的用户提供替代的文本描述。 ALT标签有什么用 使用ALT属性还可以帮助搜索引擎爬虫更好地理解您的网站内容。有…

SpringBoot配置多个不同Thymeleaf模板位置

最近开发当中需要在SpringBoot配置多个不同Thymeleaf位置,特此记录下相关过程 默认Thymeleaf配置 当我们集成thymeleaf后,会有一个默认的配置信息,可以在配置文件当中配置默认的信息,修改路径,前后缀等等参数 spring:thymeleaf…

华为OD机试 - 小华地图寻宝(Java JS Python C)

题目描述 小华按照地图去寻宝,地图上被划分成 m 行和 n 列的方格,横纵坐标范围分别是 [0, n-1] 和 [0, m-1]。 在横坐标和纵坐标的数位之和不大于 k 的方格中存在黄金(每个方格中仅存在一克黄金),但横坐标和纵坐标之和大于 k 的方格存在危险不可进入。小华从入口 (0,0) …

学习知识回顾随笔(远程连接MySQL|远程访问Django|HTTP协议|Web框架)

文章目录 如何远程连接MySQL数据库1.创建用户来运行,此用户从任何主机连接到mysql数据库2.使用IP地址来访问MySQL数据库 如何远程访问Django项目Web应用什么是Web应用应用程序的两种模式Web应用程序的优缺点 HTTP协议(超文本传输协议)简介HTT…

Airtest自动化测试工具实战演练

一开始知道Airtest大概是在年初的时候,当时,看了一下官方的文档,大概是类似Sikuli的一个工具,主要用来做游戏自动化的,通过截图的方式用来解决游戏自动化测试的难题。最近,移动端测试的同事尝试用它的poco库…

LCM-LoRA模型推理简明教程

潜在一致性模型 (LCM) 通常可以通过 2-4 个步骤生成高质量图像,从而可以在几乎实时的设置中使用扩散模型。 来自官方网站: LCM 只需 4,000 个训练步骤(约 32 个 A100 GPU 小时)即可从任何预训练的稳定扩散 (SD) 中提取出来&#…

sed文本 免交互

目录 什么是sed 概念 格式 基本用法 命令的选项 打印第三行 打印日志文件 打印奇数行 打印偶数行 第三行退出 删除第三行 sed在不打开文件的情况下修改文件内容 在后面添加 选项a 在字符中间添加 \n 实现追加换行 全部追加 在前面插入 选项i 替换 选项c …

HIVE SQL建表常用数据类型一览

类型描述BOOLEANtrue/falseTINYINTtrue/1字节的有符号整数 -128~127SMALLINT2个字节的有符号整数,-32768~32767INT4个字节的带符号整数BIGINT8字节带符号整数FLOAT4字节单精度浮点数DOUBLE8字节双精度浮点数DEICIMAL任意精度的带符号小数STRING字符串,变…

第二题-差值-【第六届传智杯程序设计挑战赛解题分析详解复盘】(JavaPythonC++实现)

🚀 欢迎来到 ACM 算法题库专栏 🚀 在ACM算法题库专栏,热情推崇算法之美,精心整理了各类比赛题目的详细解法,包括但不限于ICPC、CCPC、蓝桥杯、LeetCode周赛、传智杯等等。无论您是刚刚踏入算法领域,还是经验丰富的竞赛选手,这里都是提升技能和知识的理想之地。 ✨ 经典…

Java精品项目源码基于SpringBoot的智慧园区管理系统(v67)

Java精品项目源码基于SpringBoot的智慧园区管理系统(v67) 大家好,小辰今天给大家介绍一个智慧园区管理系统,演示视频公众号(小辰哥的Java)对号查询观看即可 文章目录 Java精品项目源码基于SpringBoot的智慧园区管理系统(v67)难度…

vmware系列:【VMware篇】8-vCenter的安装与配置(一)以IP地址安装

【VMware篇】8-vCenter的安装与配置(一)以IP地址安装 vmware系列文章链接第1章前言第2章安装前准备第3章安装步骤一、第一阶段二、打开主机shell、SSH三、添加域名解析四、第二阶段五、设置密码过期时间六、新建集群添加主机vmware系列文章链接 VMware官网下载注册: VMware…

【图像分割】【深度学习】PFNet官方Pytorch代码-PFNet网络损失函数模块解析

【图像分割】【深度学习】PFNet官方Pytorch代码-PFNet网络损失函数模块解析 文章目录 【图像分割】【深度学习】PFNet官方Pytorch代码-PFNet网络损失函数模块解析前言PM定位模块损失函数FM聚焦模块损失函数总结 前言 在详细解析PFNet代码之前,首要任务是成功运行PF…

压缩包文件丢失?4个正确找回方法分享!

“我有一个很重要的压缩包保存在电脑上,但是不知道为什么里面有些文件丢失了。有什么方法可以快速找回压缩文件?请大家给我支支招吧!” 如果我们的文件太多,将它们放在压缩包中不仅能让文件更有序,还能更合理的节省电脑…

LD_PRELOAD劫持

LD_PRELOAD劫持 <1> LD_PRELOAD简介 LD_PRELOAD 是linux下的一个环境变量。用于动态链接库的加载&#xff0c;在动态链接库的过程中他的优先级是最高的。类似于 .user.ini 中的 auto_prepend_file&#xff0c;那么我们就可以在自己定义的动态链接库中装入恶意函数。 也…

tp8 使用rabbitMQ(3)发布/订阅

发布/订阅 当我们想把一个消息&#xff0c;发送给 多个消费者的时候&#xff0c;我们把这种模式叫做发布/订阅模式&#xff0c;比如我们做两个消费者&#xff0c;其中一个消费者把消息写入磁盘中&#xff0c;别一个消费者把消息结果输出到屏幕上&#xff0c;就要用到发布订阅模…

产品化和商品化

我们经常会在IT产业听过以下岗位&#xff1a; 1、产品序列&#xff1a;产品行销经理 2、产品序列&#xff1a;产品经理、需求分析师、产品详细设计工程师、UIUE设计师 3、产品序列&#xff1a;业务架构师、应用架构师、数据架构师、技术架构师 4、研发序列&#xff1a;创新原型…

Java 图片验证码需求分析

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 图片验证码 需求分析 连续因输错密码而登录失败时&#xff0c;记录其连续输错密码的累加次数&#xff1b;若在次数小于5时&#xff0c;用户输入正确的密码并成功登录…

前K个高频单词(Java详解)

一、题目描述 给定一个单词列表 words 和一个整数 k &#xff0c;返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率&#xff0c; 按字典顺序 排序。 示例1&#xff1a; 输入: words ["i", "love&…