首页 > 其他分享 >DDPM原理

DDPM原理

时间:2024-05-19 20:19:17浏览次数:11  
标签:变量 公式 DDPM 分布 原理 x0 时刻 xt

生成模型核心原理

image
解释:将观测变量(数据集图片)进行编码为具有某个确定分布(一般为正太分布)的隐变量,然后再将该隐变量解码为观测变量。在推理过程中就可以通过在隐变量的分布中进行随机采样,然后将其解码为生成的图片,进而实现生成内容的多样性。

DDPM

  • DDPM相比VAE,在将观测变量编码为隐变量的过程中,采用了确定性过程(不需要训练),即采用加高斯噪声的方法,经过多步加高斯噪声,最终得到完全符合N(0,1)的标准正态分布。公式1
  • 在解码的过程中,已知t时刻的带噪图,为了将该图恢复,需要逐步得到前一时刻的图,也就是需要知道t-1时刻的分布,由贝叶斯公式可得到given xt x0时 xt-1时刻的分布,根据该分布可知方差为已知,只有均值中x0未知,因此可以让神经网络根据t时刻的带噪图预测x0,进而可以知道t-1时刻的分布,除了可以让神经网络预测x0之外,还可以预测x0与xt之间的噪音图,进而根据预测的噪音图和xt推出x0,这两种方法都可以。
  • 由解码过程可知,神经网络的作用就是根据xt时刻的带噪图预测x0或者噪音图进而得到t-1时刻的分布,因此在训练阶段的输入就是某个时刻的带噪图以及那个时刻,gt就是x0或者从x0正向扩散到该时刻的噪音图
    公式1:正向扩散得到某个时刻带噪图的公式
    image
    公式2:由t时刻分布获得t-1时刻分布公式
    image
    公式3:由t时刻分布获得的t-1时刻分布最终结果
    image
    公式4:由公式1反推得到x0关于xt的表达
    image

参考视频

  1. https://www.bilibili.com/video/BV1B8411G7sV?p=1&vd_source=2aa0961ad09002e91f752df39d4566d6
  2. https://www.bilibili.com/video/BV1Ax4y1v7CY/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=2aa0961ad09002e91f752df39d4566d6

标签:变量,公式,DDPM,分布,原理,x0,时刻,xt
From: https://www.cnblogs.com/sxq-blog/p/18200710

相关文章

  • 消防二总线通信原理简介
    典型应用图 首先需要设计一种可编码寻址通用联动控制接口件。一方面它作为二总线上的挂接设备——能被区域控制器寻址,同时返回自身的状态信息;另一方面当区域控制器需要联动它所控制的消防设备时能提供控制触点。如图①,通用联动接口通过桥式输入电路与总线相联,桥式输入电......
  • spring事务原理
    1、事务概念事务,就是一组操作数据库的动作集合,要么全部成功,要么全部失败。spring支持两种方式的事务:编程式事务:编程式事务管理使用TransactionTemplate,需要显式执行事务,比如,需要显示调用commit或者rollback方法。声明式事务:声明式事务管理建立在AOP之上的。其本质是......
  • net core jwt的基本原理和实现
    NETCore中的JWT(JSONWebToken)基本原理和实现主要涉及到身份验证和授权的过程。以下是对JWT原理和实现的简要概述:JWT原理JWT是一种开放标准(RFC7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。这些信息可以被验证和信任,因为它们是数......
  • 汇编语言基础及编译原理(网安)
    汇编语言基础及编译原理二进制基础程序的编译汇编与链接从c语言到可执行程序源代码.c编译汇编代码.s汇编目标文件.o链接(静态库直接拷贝,动态库运行时通过动态链接方式加载)可执行文件(p)x86机器指令入门栈一种先进后出的数据结构被用于保存函数的局部(保存局部变量和......
  • cpp 程序设计原理和实践(1)
    初始化的时候避免窄化doublex{2.4};如何将一个大任务分割为多个小任务基本原则抽象:不需要了解程序的具体实现细节,细节隐藏在相应的接口中。分治:将一个大问题分割为多个小问题。如何进行分割明确各个子程序之间的关系--按照功能进行划分是最简单的编程之前先进......
  • Spring IOC原理
    1、IOC的理解IOC也叫控制反转,是将对象的创建和管理交给spring来做。了解springIOC,先了解几个相关类:(1)IOC容器-BeanFactoryBeanFactory是IOC容器的顶层接口,定义一些基础功能,ApplicationContext是IOC容器的高级接口,功能更多,如资源的访问(XML文件、Java配置类)等;他们都是负责生产......
  • 二极管和三极管导通原理
    二极管导通原理二极管一般是由P型半导体和N型半导体结合而成,如下所示P型半导体掺入大量3价原子,形成大量空穴,N型半导体掺入大量5价原子,形成大量电子。所以P型半导体和N型半导体结合时在结合处会发生电子和空穴的扩散运动(本质是电子扩散运动)N区电子向P区扩散移动,所以会在中间......
  • HashMap扩容原理
    在添加元素或初始化的时候需要调用resize方法进行扩容,第一次添加数据初始化数组长度为16,以后每次每次扩容都是达到了扩容阈值(数组长度*0.75)。每次扩容的时候,都是扩容之前容量的2倍。扩容之后,会新创建一个数组,需要把老数组中的数据挪动到新的数组中。没有hash冲突的节点,则直......
  • HashMap原理
    HashMap的实现原理底层使用hash表数据结构,即数组+(链表|红黑树)。添加数据时,计算key的值确定元素在数组中的下标,key相同则替换,不同则存入链表或红黑树中。获取数据通过key的hash计算数组下标获取元素。HashMap的JDK1.7和JDK1.8有什么区别JDK1.8之前采用的拉链法,数组+链表。J......
  • 前端面试题 - vue的双向绑定原理是什么?
    前端面试题-vue的双向绑定原理是什么?vue2的双向数据绑定是通过数据劫持结合发布者订阅者模式的方式来实现。通过object.defineProperty来劫持各个属性的setter,getter,在数据变化时发布消息给订阅者,触发相应的监听回调来渲染视图。Vue3利用Proxy代理来处理双向数据绑定。可以......