【Diffusion Model】Learning notes

news2024/9/30 15:31:07

来自 扩散模型 Diffusion Model 1-1 概述


扩散模型是什么?

本质是生成模型,拟合目标分布,然后生成很多数据符合这个分布
在这里插入图片描述


训练测试阶段?
在这里插入图片描述
在这里插入图片描述


和 GAN 相比优势是什么?

在这里插入图片描述
generator 和 discriminator 两者都得训练的比较均衡才能得到好的结果(稳定性),两者对抗,loss 并不能直观的反应训练过程

  • 训练难度
  • 训练稳定性
  • loss 的复杂性

DDPM 的话,reverse 只是一个去噪模型,目标比较明确,易于训练


扩散阶段

Z t Z_t Zt 服从标准正态分布

β t \beta_t βt 加权系数,越来越大

在这里插入图片描述
上图是从 X t X_t Xt X t − 1 X_{t-1} Xt1 的公式

每张图加噪 T 次太慢了

我们能否直接从 X 0 X_0 X0 直接推导到 X t X_t Xt 呢?

在这里插入图片描述

α t \alpha_t αt

在这里插入图片描述
X T ≈ Z X_T \approx Z XTZ 近似高斯噪声

在这里插入图片描述
reverse 的过程这里简单的进行了表示


看看多 batch 的时候是怎么训练的

在这里插入图片描述

扩散过程

Z ~ = U N e t ( X t , t ) \widetilde{Z} = UNet(X_t, t) Z =UNet(Xt,t)


reverse 的形式是什么样子的呢?
在这里插入图片描述

也是一步步反推回来的


具体看看 reverse 的公式推导
在这里插入图片描述
也即,求条件概率 p ( X t − 1 ∣ X t ) p(X_{t-1}| X_t) p(Xt1Xt)

在这里插入图片描述

注意上公式2中 p ( X t ) p(X_t) p(Xt) 表示 p ( X t ∣ X 0 ) p(X_t | X_0) p(XtX0), 公式3中 p ( X t − 1 ) p(X_{t-1}) p(Xt1) 表示 p ( X t − 1 ∣ X 0 ) p(X_{t-1} | X_0) p(Xt1X0)

正太分布这里忽略了 1 2 π ⋅ σ \frac{1}{ \sqrt{2 \pi} \cdot \sigma} 2π σ1

把公式1/2/3代入公式4得到公式5

公式4的目的是求出 p ( X t − 1 ∣ X t ) p(X_{t-1} | X_t) p(Xt1Xt) X t − 1 X_{t-1} Xt1 为变量,把公式5按二次式展开

在这里插入图片描述

已知: α t + β t = 1 \alpha_t + \beta_t = 1 αt+βt=1 α t ⋅ α t − 1 ‾ = α t ‾ \alpha_t \cdot \overline{\alpha_{t-1}} = \overline{\alpha_t} αtαt1=αt

方差
在这里插入图片描述
均值
在这里插入图片描述
在这里插入图片描述

得到了关于 X t X_t Xt X 0 X_0 X0 的表达形式

我们要求的是条件概率 p ( X t − 1 ∣ X t ) p(X_{t-1}| X_t) p(Xt1Xt) X 0 X_0 X0 不知道的,所以要替换掉上式中的 X 0 X_0 X0
在这里插入图片描述
得到最终的均值结果,与 X t X_t Xt z ~ \widetilde{z} z 有关

汇总一下:
在这里插入图片描述
这里 X t − t X_{t-t} Xtt 的公式有误,应该为
在这里插入图片描述
z z z 服从标准的正态分布

X t − t X_{t-t} Xtt 公式模拟分子的布朗运动, X t − 1 X_{t-1} Xt1 中加式1 z ~ \widetilde{z} z 是确定项,加式2 z z z 是随机的正态分布

在这里插入图片描述

布朗运动和扩散现象的区别

在这里插入图片描述
在这里插入图片描述

注意红色字迹的三个基础公式

对应到论文中的公式

扩散阶段
在这里插入图片描述

reverse 阶段
在这里插入图片描述

注意到这里的 if t>1,最后一步,不需要加扰动噪声了

在这里插入图片描述

σ t \sigma_t σt 表示了扰动的系数,非确定性项

有可能 z z z 采样出来的全为0,这样 reverse 的过程变成了一个确定的过程


代码实现

在这里插入图片描述
在这里插入图片描述

α \alpha α β \beta β 的获取

在这里插入图片描述
t t t 为 index

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
time embedding 操作,不同时间点做不同的去噪操作

在这里插入图片描述
在这里插入图片描述
Residual block
在这里插入图片描述
time embedding,类似于 transformer 的位置编码

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

JDK8到JDK17有哪些吸引人的新特性?

作者:京东零售 刘一达 前言 2006年之后SUN公司决定将JDK进行开源,从此成立了OpenJDK组织进行JDK代码管理。任何人都可以获取该源码,并通过源码构建一个发行版发布到网络上。但是需要一个组织审核来确保构建的发行版是有效的, 这个组织就是J…

Excel VBA 之Interior 对象设置底色

Interior 对象 代表一个对象的内部 针对interior对象,我们用得最多的是它的颜色,下面就来讨论一下。 1.ColorIndex 索引颜色值 Sub 索引颜色值()For i 1 To 56Cells(i, 1).Interior.ColorIndex iCells(i, 2) iNext iFor i 1 To 56Cells(i, 3).Interi…

算法训练第六十天 | 84.柱状图中最大的矩形

单调栈part0384.柱状图中最大的矩形题目描述思路暴力解法双指针解法单调栈84.柱状图中最大的矩形 题目链接:84.柱状图中最大的矩形 参考:https://programmercarl.com/0084.%E6%9F%B1%E7%8A%B6%E5%9B%BE%E4%B8%AD%E6%9C%80%E5%A4%A7%E7%9A%84%E7%9F%A9%E…

《Kubernetes部署篇:Ubuntu20.04基于containerd二进制部署K8S 1.24.12集群(一主多从)》

一、架构图 如下图所示: 如下图所示: 二、环境信息 1、部署规划 主机名IP地址操作系统内核版本软件说明etcd01192.168.1.62Ubuntu 20.04.5 LTS5.15.0-69-genericetcdetcd02192.168.1.63Ubuntu 20.04.5 LTS5.15.0-69-genericetcdetcd03192.168.1.64Ubunt…

kettle链接mysql Public Key Retrieval is not allowed

kettle 报错信息页面: 出现 Public Key Retrieval 的场景可以概括为在禁用 SSL/TLS 协议传输切当前用户在服务器端没有登录缓存的情况下,客户端没有办法拿到服务器的公钥。具体的场景如下: 新建数据库用户,首次登录;数…

课程推荐 | 机器视觉与边缘计算应用

点击蓝字关注我们,让开发变得更有趣文案 | 李擎排版 | 李擎文案来源 | https://www.icourse163.org/course/FUDAN-1456632162OpenVINO™╱ 前言 ╱机器视觉是目前人工智能重要的应用领域,在很多领域都有丰富的成功应用案例。其中深度学习的目标检测算法是非常实用的…

ubuntu(20.04)-shell脚本(1)-基本概念

目录 1.概述 2.shell脚本调用形式 3.shell语法初识 3.1 定义以开头:#!/bin/bash 3.2 单个“#”号代表注释当前行 4.变量 4.1 只读变量 4.2 环境变量: env 4.3 预测变量: 4.4 变量扩展: 是否存在,字符串…

通过JMH框架 测试公平锁与非公平锁的性能(附测试代码和源码分析)

目录 先上测试代码: 上依赖: 输出结果:(注意不要debug运行,直接运行代码,否则报错) 源码-公平锁的 lock 方法: 源码-非公平锁的lock方法: 总结 非公平锁和公平锁的两处不同: …

docker入门之一:docker基础概念与安装

1. Docker简单介绍 1.1. 什么是docker?1.2. Docker和传统虚拟机1.3. 为什么使用docker1.4. docker架构 2. Docker安装 2.1. docker版本命名2.2. docker安装2.3. docker卸载2.4. docker镜像加速器 1. Docker简单介绍 1.1. 什么是docker? google go语言…

24-Tomcat

目录 1.Tomcat是什么? 2.版本号 3.下载 4.目录介绍 4.1.bin目录 4.2.conf目录 4.3.logs目录 4.4.webapps目录 5.启动服务器 PS:解决Tomcat乱码问题 PS:Tomcat点击启动,控制台一闪而过,啥也没有解决方案 PS…

【花雕学AI】4月5日,ChatGPT中国财经背景分析:昨天沪指重返3300点,这说明了什么?

在这里插入图片描述 附录: 一、ChatGPT是一个可以和你聊天的人工智能程序,它可以用文字回答你的问题,也可以根据你的提示写出文章、歌词、代码等内容。ChatGPT是由一个叫OpenAI的机构开发的,它使用了一种叫做GPT的技术&…

TCP协议的相关特性(续)

TCP协议的相关特性🔎滑动窗口🔎流量控制🔎拥塞控制🔎延时应答🔎捎带应答🔎面向字节流(粘包问题)🔎异常情况🔎总结关于 确认应答 超时重传, 连接管理 请参考: 点击这里 &#x1f50e…

IT知识百科:什么是基站?

一、基站介绍 基站(Base Station),也称为基站站点或基站设备,是无线通信网络中的关键设备之一。基站用于与移动设备(如手机、无线网卡等)进行通信和数据传输,实现无线通信覆盖。 二、基站的功…

基于Python机器学习、深度学习技术提升气象、海洋、水文领域实践应用

Python是功能强大、免费、开源,实现面向对象的编程语言,能够在不同操作系统和平台使用,简洁的语法和解释性语言使其成为理想的脚本语言。除了标准库,还有丰富的第三方库,Python在数据处理、科学计算、数学建模、数据挖…

Web服务器压力测试

Web服务器压力测试 使用WebBench去进行网站的压力测试 1、去github下载项目源码webbench 2、download到本地 3、将压缩包上传到虚拟机上 4、解压,使用命令:unzip 压缩包名 5、 cd WebBench-mask6、构建项目 makemake install7、上述动作完成后&…

【Vue3】如何用Vue CLI 创建一个Vue3的初始化项目

第一步、安装Vue Cli npm install -g vue/cli 安装成功后,就可以在命令行工具中,使用vue命令。 检测是否安装成功,可以用 vue -V 出现版本号,代表安装成功。 第二步、创建项目 为了方便管理项目,我先在 github 创建了…

队列实现图书信息管理(C语言)

文章目录Queue.hmain.cQueue.c用队列实现一个图书信息管理,这里放一下有哪些文件。(ps:我之前写的是学生信息管理,但是有人说我们的作业是写图书,就该了下内容,没有改文件名)队列是用链表实现的…

***大论文中插入Visio不失真方法:word插入viso图片方法

***大论文中插入Visio不失真方法:word插入viso图片方法1、可以直接导出emf2、如果利用emf导致字符间距过大,可以选择下面方式1、可以直接导出emf 导出emf方法: 打开visio --> 另存为 --> 选择emf格式文件 打开word --> 插入图片&a…

6 计时器(三)

6.4 输出比较演示** 演示1:PWM驱动呼吸灯** 函数解释: 输出比较单元(掌握) void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCIni…

对Redis 的数据结构的更深刻理解

文章目录简单动态字符串SDS与C字符串的区别链表字典哈希算法 —— 添加新键值对的过程rehashrehash一般过程渐进式rehash渐进式rehash的详细步骤跳跃表实现整数集合intset升级步骤升级好处降级压缩列表 ziplistziplistnode连锁更新对象字符串对象列表对象哈希对象编码转换集合对…