diffusion入门

1. diffusion model 概念

https://zhuanlan.zhihu.com/p/638442430 这篇博客写得很好,顺便做一点笔记记录一下。
原博客附带的代码也很清晰易懂。

1.1 前向过程

后一个过程等于前一个结果的均值乘上sqrt(1-beta_t), 再加上方差beta_t的噪声。
这样下去可以得到 xt 基于 x0的公式, 也就是只要已知x0, 和每一步的beta_t可以求得任一阶段得 x_t
而且最终x_t接近 正态分布。

在这里插入图片描述

1.2 反向过程

1.2.1 之前我有一个问题:


正向x_t-1 到x_t 过程如下:
乘上一个数,再加噪声
在这里插入图片描述

那么逆向从x_t 到 x_t-1这一步,是不是只需要减去 (x_t-1 到 x_t 添加的噪声) 再 (除以 sqrt(1-beta_t)其实等于sqrt(alpha_t)), 是不是就可以了? 当然是的。
x_t-1 = (x_t - beta_t * I) / sqrt(alpha_t)

但是公式推导的结果是下图这样的:
为什么呢?
因为这个里面的e_t 不是 x_t-1 到 x_t这个过程中添加的高斯噪声,而是从x_0 到 x_t 这个过程 对应的高斯噪声。 所以下面的是正确的。
在这里插入图片描述

所以是不是输入 x_t, t, 让网络预测I_t也是可行的? 感觉也是可行的,只不过

  1. forward 要一次求出所有阶段 x_1 ~ x_T, I_1 ~ I_T.
  2. 输入 x_t, t, 让网络预测各个阶段的 I_t, 这里t = [1,T]
  3. x_t-1 = (x_t - beta_t * I_t) / sqrt(alpha_t) 通过该过程逆向

1.2.2 回到原文

但是我们只知道 添加的噪声是符合正态分布的,不知道具体的数值,所以没办法逆向。
所以利用网络预测 e_t, 然后就可以通过公式求得的每一步的逆向过程来更新图像。
原博客写的更加清晰。

2. 一些改进的策略

参考https://zhuanlan.zhihu.com/p/586936791

  1. 比如 beta的选择:改进后图像变化更均匀
    在这里插入图片描述

  2. 对生成步数的改进:
    原本模型训练的时候是假定在 T个时间步下训练的,在生成图像的时候,也必须从 T 开始遍历到 1 。而论文(https://link.zhihu.com/?target=https%3A//arxiv.org/pdf/2102.09672.pdf)中提出了一种不需要重新训练就可以减少生成步数的方法,从而显著提升生成的速度。

    这个方法简单描述就是,原来是 T 个时间步现在设置一个更小的时间步数 S ,将 S 时间序列中的每一个时间步 s 和 T时间序列中的步数 t 对应起来

3. 相关介绍:

https://zhuanlan.zhihu.com/p/572161541
https://mp.weixin.qq.com/s?__biz=MzI1MjQ2OTQ3Ng==&mid=2247625397&idx=2&sn=e67b0e7ccf51aeedb4c0ab23310637b5&chksm=e9efe33ede986a28499a27014dcf7b44cbfe5841cf8d95b17f9ab46ab379cb2f237b204e1a9f&mpshare=1&scene=24&srcid=0124Qww3B4k9zexjSusblmGc&sharer_shareinfo=46fe1da3eadc5e0010ece1ac8ce51742&sharer_shareinfo_first=46fe1da3eadc5e0010ece1ac8ce51742&version=4.0.19.6020&platform=win#rd

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

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

相关文章

每日一道算法题 16(2023-12-29)

package com.tarena.test.B20; import java.util.Arrays; import java.util.Scanner; /** * * 题目描述: 输入一个由n个大小写字母组成的字符串,按照Ascii码从小到大的排序规则,查找字符串中第k个最小ascii码值的字母(k>…

023-安全开发-PHP应用后台模SessionCookieToken身份验证唯一性

023-安全开发-PHP应用&后台模&Session&Cookie&Token&身份验证&唯一性 #知识点: 1、PHP后台身份验证模块实现 2、Cookie&Session技术&差异 3、Token数据包唯一性应用场景 项目1:用cookie做后台身份验证 项目2&#xff1a…

git bash右键菜单失效解决方法

git bash右键菜单失效解决方法 这几天重新更新了git,直接安装新版本后,右键菜单失效找不到了。找了好几个博客,发现都不全面,最后总结一下解决方法: (1)按winr,输入regedit打开注册…

解决git管理GitHub连接问题

前言 git提交文档到GitHub老是出问题,记录下 报错 首先是常规操作更新文档,命令如下 $ git add . $ git commit -m "add" $ git push origin main后面老是报这种错误,如下图 To github.com:zhenxijiabei/yuque.git! [rejected…

mysql-进阶篇

文章目录 存储引擎MySQL体系结构相关操作 存储引擎特点InnoDBInnoDB 逻辑存储结构 MyISAMMemory三个存储引擎之间的区别存储引擎的选择 索引1. 索引结构B-TreeB-Tree (多路平衡查找树)B-Tree演变过程 BTree与 B-Tree 的区别BTree演变过程 Hash 2.索引分类3.索引语法演示 4.SQL性…

react18介绍

改进已有属性,如自动批量处理【setState】、改进Suspense、组件返回undefined不再报错等 支持Concurrent模式,带来新的API,如useTransition、useDeferredValue等 如何升级React 18 npm install reactlatest react-domlatestnpm install ty…

5分钟做自己的微信红包封面

文章目录 怎么制作自己的红包封面?开通红包封面的要求如下:收费情况制作具体网站:https://chatapi.onechat.fun/register?affYoU6 提交审核logo封面、挂件、气泡证明材料 发放红包封面其他 怎么制作自己的红包封面? 开通红包封面…

OpenCV书签 #结构相似性SSIM算法的原理与图片相似性实验

1. 介绍 结构相似性(Structural Similarity,简称SSIM算法),主要用于检测两张相同尺寸的图像的相似度、或者检测图像的失真程度,是一种衡量两幅图像相似度的指标。 定义 给定两个图像 x 和 y,两张图像的结…

第十三讲_ArkUI栅格布局(GridRow/GrowCol)

ArkUI栅格布局(GridRow/GrowCol) 1. 栅格布局概述2. GridRow的使用2.1 设置栅格布局的总列数2.2 设置栅格布局的排列方向2.3 设置栅格布局中子组件间距 3. GridCol的使用3.1 设置一个GridCol占栅格布局的列数3.2 设置GridCol在栅格布局中偏移列数3.3 设置…

xshell可以远程登录服务器但是vscode一直显示让输入密码的解决方案

vscode报错 但是xshell可以登录 原因:可能因为我上一次没有恰当的退出远程链接导致的,我每次退出远程都是直接强制关闭VScode。 解决方法:打开VScode的 view (查看) palette(命令面板)然后输…

读懂比特币—bitcoin代码分析(二)

我们从比特币的客户端启动顺序作为入口来分析代码&#xff0c;先看下面这个函数&#xff1a;AppInitBasicSetup&#xff0c;初始化应用基础设置 bool AppInitBasicSetup(const ArgsManager& args, std::atomic<int>& exit_status) {// ************************…

【Maven】-- 打包添加时间戳的两种方法

一、需求 在执行 mvn clean package -Dmaven.test.skiptrue 后&#xff0c;生成的 jar 包带有自定义系统时间。 二、实现 方法一&#xff1a;使用自带属性&#xff08;不推荐&#xff09; 使用系统时间戳&#xff0c;但有一个问题&#xff0c;就是默认使用 UTC0 的时区。举例…

西瓜书学习笔记——Boosting(公式推导+举例应用)

文章目录 引言AdaBoost算法AdaBoost算法正确性说明AdaBoost算法如何解决权重更新问题&#xff1f;AdaBoost算法如何解决调整下一轮基学习器样本分布问题&#xff1f;AdaBoost算法总结实验分析 引言 Boosting是一种集成学习方法&#xff0c;旨在通过整合多个弱学习器来构建一个…

2024区块链应用趋势,RWA实物资产化

作者 张群&#xff08;赛联区块链教育首席讲师&#xff0c;工信部赛迪特聘资深专家&#xff0c;CSDN认证业界专家&#xff0c;微软认证专家&#xff0c;多家企业区块链产品顾问&#xff09;关注张群&#xff0c;为您提供一站式区块链技术和方案咨询。 实物资产通证化&#xff0…

【开源】基于JAVA语言的智慧社区业务综合平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 业务类型模块2.2 基础业务模块2.3 预约业务模块2.4 反馈管理模块2.5 社区新闻模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 业务类型表3.2.2 基础业务表3.2.3 预约业务表3.2.4 反馈表3.2.5 社区新闻表 四、系统展…

状态空间模型(SSM)是近来一种备受关注的 Transformer 替代技术

状态空间模型&#xff08;SSM&#xff09;是近来一种备受关注的 Transformer 替代技术&#xff0c;其优势是能在长上下文任务上实现线性时间的推理、并行化训练和强大的性能。而基于选择性 SSM 和硬件感知型设计的 Mamba 更是表现出色&#xff0c;成为了基于注意力的 Transform…

VUE+Vis.js鼠标悬浮title提前显示BUG解决方法

在使用VUEVis.js做拓扑图&#xff0c;利用鼠标悬浮放在图标展示设备信息时&#xff0c;发现鼠标一放在图标上面时&#xff0c;标题表会提前在放置的元素下显示&#xff0c;鼠标再放到图标上去元素才会隐藏变成悬浮状态 解决方法&#xff1a; 添加一个div元素&#xff0c;设置v…

C语言入门到精通之练习实例9:输出国际象棋棋盘

题目&#xff1a;要求输出国际象棋棋盘。 程序分析&#xff1a;国际象棋棋盘由64个黑白相间的格子组成&#xff0c;分为8行*8列。用i控制行&#xff0c;j来控制列&#xff0c;根据ij的和的变化来控制输出黑方格&#xff0c;还是白方格。 如果出现乱码情况请参考本博客【C 练习…

前端文件上传(文件上传,分片上传,断点续传)

普通文件上传 思路&#xff1a; 首先获取用户选择的文件对象&#xff0c;并将其添加到一个 FormData 对象中。然后&#xff0c;使用 axios 的 post 方法将 FormData 对象发送到服务器。在 then 和 catch 中&#xff0c;我们分别处理上传成功和失败的情况&#xff0c;并输出相应…

VM虚拟机忘记密码,ISO镜像修改

VM虚拟机忘记密码&#xff0c;ISO镜像修改 制作镜像&#xff1a; 镜像已制作&#xff0c;可在文末链接自行获取从镜像启动系统 1&#xff09;添加IOS镜像文件&#xff1a; 2&#xff09;开机进去固件&#xff1a; 进入后选择对应的驱动器启动 3. 修改密码 点击修改密码软件&a…