Denoising Diffusion Probabilistic Model,DDPM阅读笔记——(一)

news2024/11/21 1:23:46

Denoising Diffusion Probabilistic Model

  • 一、写在前面
    • 二、相关数学知识简介
  • 二、生成模型简介:
  • 三、变分自编码器概述(VAE)

一、写在前面

人工智能生成内容(AI Generated Content,AIGC)近年来成为了非常前沿的一个研究方向,生成模型目前有四个分支,分别是生成对抗网络(Generative Adversarial Models,GAN),变分自编码器(Variance Auto-Encoder,VAE),标准化流模型(Normalization Flow, NF)以及这里要介绍的扩散模型(Diffusion Models,DM)。扩散模型的算法理论基础是通过变分推断(Variational Inference)训练参数化的马尔可夫链(Markov Chain),它在许多任务上展现了超过GAN等其它生成模型的效果。这些效果惊艳的模型—扩散模型的理论基础是本文介绍的提出扩散模型的文章和非常重要的DDPM。扩散模型的实现不复杂,但其背后的数学原理却非常丰富。本文主要介绍了去噪扩散概率模型(Denoising Diffusion Probabilistic Model,简称为DDPM)中的基本原理与一些核心的数学推导,但是一些相对复杂的数学公式的演算没有展示。如果需要对部分复杂的数学分析进行深入了解,可以学习参考文献的相关内容。

二、相关数学知识简介

1、先验概率与后验概率:
(1)先验概率:根据以往经验和分析得到的概率,如全概率公式中往往作为“由因求果”问题中的“因”出现,如:

在这里插入图片描述

(2)后验概率:指在得到“结果”的信息后重新修正的概率,是“执果寻因”问题中的“因",如:
在这里插入图片描述
2、条件概率的一般形式:
在这里插入图片描述
3、基于Markov的条件概率:马尔科夫链指当前状态的概率只与上一时刻有关,例如满足马尔可夫关系 ,那么有

在这里插入图片描述
4、高斯分布的KL散度:若在这里插入图片描述
则有:
在这里插入图片描述
5、重参数化技巧:若希望从满足正态分布中进行采样,可以从标准正态分布采样出随机变量z,再得到:在这里插入图片描述
这就是我们想要采样的结果。这样做的好处是将随机性转移到了 这个常量上,而标准差和均值作为仿射变换网络的一部分。

二、生成模型简介:

生成模型的本质是通过一个已知的概率模型来拟合所给的数据样本,也就是说,我们往往需要通过模型得到一个带参数的分布。即如果训练数据的分布函数为 p ( d a t e ) x p_{(date)}x p(date)x,生成样本的分布函数为 p ( m o d e l ) x p_{(model)}x p(model)x ,我们希望得到的分布和训练数据的分布尽可能相似。目前生成模型主要有图1的四种类型:
在这里插入图片描述
GAN的原理是通过判别器和生成器的互相博弈来让生成器生成足以以假乱真的图像;
VAE的原理是通过一个编码器将输入图像编码成特征向量,它用来学习高斯分布的均值和方差,而解码器则可以将特征向量转化为生成图像,它侧重于学习生成能力;
流模型是从一个简单的分布开始,通过一系列可逆的转换函数将分布转化成目标分布;
扩散模型先通过正向过程将噪声逐渐加入到数据中,然后通过反向过程预测每一步加入的噪声,通过将噪声去掉的方式逐渐还原得到无噪声的图像,扩散模型本质上是一个马尔可夫架构,只是其中训练过程用到了深度学习的BP,但它更属于数学层面的创新。
1、扩散过程的物理描述:扩散模型中最重要的思想根基是马尔可夫链,它的一个关键性质是平稳性。即如果一个概率随时间变化,那么再马尔可夫链的作用下,它会趋向于某种平稳分布,时间越长,分布越平稳。如图2所示,当你向一滴水中滴入一滴颜料时,无论你滴在什么位置,只要时间足够长,最终颜料都会均匀的分布在水溶液中。这也就是扩散模型的前向过程。
在这里插入图片描述
如果我们能够在扩散的过程颜料分子的位置、移动速度、方向等移动属性。那么也可以根据正向过程的保存的移动属性从一杯被溶解了颜料的水中反推颜料的滴入位置。这边是扩散模型的反向过程。记录移动属性的快照便是我们要训练的模型。
2、生成模型假说:对于许多模态,我们可以认为我们观察到的数据是由一个相关的看不见的潜在变量表示或生成的,我们可以用随机变量 表示。表达这一想法的最佳直观方式是通过柏拉图的《洞穴寓言》。在寓言中,一群人一生都被锁在一个洞穴里,他们只能看到投射在他们面前墙上的二维阴影,这些阴影是由看不见的三维物体在火前经过产生的。对于这样的人来说,他们所观察到的一切实际上都是由他们永远无法看到的高维抽象概念决定的。虽然穴居人永远无法看到(甚至完全理解)隐藏的物体,但他们仍然可以对它们进行推理和推断;以类似的方式,我们可以近似描述我们观察到的数据的潜在表示。尽管柏拉图的寓言说明了潜在变量作为决定观察结果的潜在不可观察的表示背后的思想,但这个类比的警告是,在生成建模中,我们通常寻求学习低维的潜在表示,而不是高维的潜在表示。这是因为,如果没有强大的先验,试图学习比观察结果更高维的表示是徒劳的。另一方面,学习低维潜能也可以被视为一种压缩形式,并且可以潜在地揭示描述观察的语义有意义的结构。在这里插入图片描述

三、变分自编码器概述(VAE)

1、置信下界(Evidence Lower Bound,简称为ELBO)的定义与数学表示:VAE的目标函数采用的是最大似然(likelihood-based)的路线,即对观察到的数据 计算最大 ,借助数学工具ELBO(Evidence Lower Bound),可以得到最大似然分布的一个下界:
在这里插入图片描述
且对数似然与ELBO之间的关系为:
在这里插入图片描述
【ELBO相关数学推导】考虑观测数据x与潜在变量(latent variation)z ,那么联合概率密度 p ( x , z ) p(x,z) p(x,z)与似然函数 p ( x ) p(x) p(x)之间的关系为:
在这里插入图片描述
那么则有:
在这里插入图片描述
在这里插入图片描述
结论:
(1)首先,我们现在知道为什么ELBO确实是一个下界:证据和数据之间的差异ELBO是一个严格的非负KL项,因此ELBO的值永远不会超过证据;
(2)其次,我们探讨了为什么我们寻求最大化ELBO。在引入了我们想要建模的潜在变量z之后,我们的目标是了解描述我们观察到的数据的潜在结构。换句话说,我们想要优化变分后验 q ( x ∣ z ) q(x|z) q(xz)的参数,以精确匹配真正的后验分布 p ( x ∣ z ) p(x|z) p(xz) ,这是通过最小化它们的KL散度(理想情况下为零)来实现的。不幸的是,很难直接最小化这个KL散度项,因为我们无法获得真实的 p ( x ∣ z ) p(x|z) p(xz) 分布。由于ELBO和KL散度项的总和是一个常数,因此ELBO项相对于 的任何最大值都必然调用KL散度项的相等最小值。因此,ELBO可以最大化地作为学习如何完美地建模真实的潜在后验分布的代理;我们越优化ELBO,我们的近似后验值就越接近真实后验值。此外,一旦训练,ELBO也可以用来估计观察到的或生成的数据的可能性,因为它被学习来近似模型证据 l o g p ( x ) log_p(x) logp(x)
2、单层VAE:
在这里插入图片描述
设一个单层的VAE的输入数据x分布为 p ( x ) p(x) p(x),潜在变量z分布为 p ( z ) p(z) p(z)。由输入分布到潜在变量的过程称为编码,可以表述为 q ( z ∣ x ) q(z|x) q(zx),而由潜在变量来恢复观测数据的过程称为解码(或重建),可以表述为 p ( x ∣ z ) p(x|z) p(xz)。那么VAE相关的数理基础有:
(1)目标数据的分布:
在这里插入图片描述
(2)似然对数的置信下界:
在这里插入图片描述
总结:在这种情况下,我们学习了一个中间瓶颈分布 q ( z ∣ x ) q(z|x) q(zx),它可以被视为编码器;它将输入转换为可能潜能的分布。同时,我们学习了一个确定性函数 p ( x ∣ z ) p(x|z) p(xz),将给定的潜在向量z转换为观测值x,观测值x可以解释为解码器。式(2)中的两项都有直观的描述:第一项从我们的变分分布测量解码器的重构似然;这确保了学习到的分布是建模的有效潜能,原始数据可以从这些潜能中重新生成。第二项衡量学习到的变分分布与潜在变量的先验信念有多相似。最小化这一项鼓励编码器实际学习一个分布,而不是崩溃成一个狄拉克函数。因此,最大化ELBO相当于最大化它的第一项和最小化它的第二项。
3、层级连接VAE(HVAE):具有 层次潜伏的马尔可夫分层变分自编码器。生成过程被建模为马尔可夫链,其中每个潜在变量 z t z_t zt仅由前一个潜在 z t + 1 z_{t+1} zt+1生成。HVAE是一种扩展到潜在变量上的多个层次的VAE的推广。在这种形式下,潜在变量本身被解释为由其他更高层次、更抽象的潜在变量生成。
在这里插入图片描述
研究特例—Markov状态下的层级变分自编码器(M-HVAE):在具有 层次的一般HVAE中,允许每个潜变量条件化之前的所有潜变量,在这项工作中,我们关注一个特殊的情况,我们称之为马尔可夫HVAE (MHVAE)。在MHVAE中,生成过程是一个马尔可夫链,也就是说,层次结构向下的每个转换都是马尔可夫式的,其中解码每一个潜在变量 只与前一个状态下的潜在变量 有关。M-HAVE相关数理基础有:
(1)联合概率密度函数:
在这里插入图片描述
(2)后验概率分布:
在这里插入图片描述
(3)M-HAVE的ELBO推导:
在这里插入图片描述
(4)将联合概率密度函数 p ( x , z 1 : T ) p(x,z_{1: T}) p(x,z1:T)和后验概率分布 q ( z 1 : T ∣ x ) q(z_{1: T}|x) q(z1:Tx)代入ELBO,则有在这里插入图片描述
本篇文章原创Zichen Wang,医学图像重建大佬。我们的公众号为:成像与视觉
主要内容包含如下:
1、IEEE Trans/Journal投稿交流平台:主要面向有意向在(或已投稿)IEEE Transactions和Journal期刊上进行投稿的同行学习。群内定期更新IEEE主要期刊投稿官网、投稿注意事项,同时审稿周期、审稿流程问题可以在群内相互交流以及如何催搞等相关问题。请按照“投稿期刊+关键词”修改,例如TMI—MR重建,TIM—雷达测量,JBHI—生物信息学等。

2、Medical Image Processing医学图像处理与分析交流平台:主要面向硕博、科研工作者在医学图像领域的科研交流平台,主要包括医学图像重建、分割、配准、去噪、超分、分类等相关任务以及基于AI方法的医学图像处理相关话题的学习和讨论,图像模态主要包括(但不限于)CT、MR、Ultrasound、PET、OCT、ET、PT等其他图像种类。定期分享领域内相关期刊、会议,并提供CT、MR入门的相关国内外经典教材与配套讲义。请按照“图像模态+研究任务”修改,如:MR—加速重建,低剂量CT—重建。

3、Inverse Problems for CV计算机视觉中的反问题交流学习平台:主要面向硕博、科研工作者在成像反问题领域的科研交流平台,主要包括:重建、超分辨率、图像去噪(去模糊)、图像反卷积、计算成像等基于解析方法(迭代、正则化)、机器学习、深度学习等方法的计算机视觉反问题。进群后麻烦大家按照“工作任务”修改群昵称,如:图像重建、图像超分辨率等。

感谢支持,我们会尽力回答各位同学和同行们的问题!

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

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

相关文章

2023最新面试题-Java-2

基础语法 1. Java有哪些数据类型 定义:Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同 大小的内存空间。 细化的数据类型就是占用空间的基本元素。分类:基本数据类型 数值型 整数类型…

MySQL-事务处理

MySQL事务 什么是事务 数据中的事务是指数据库执行的一些操作,这些操作最终要么全部执行成功,要么全部失败,不会存在部分成功,部分失败的情况 如果在事务的支持下,最终有两种结果: 操作成功:…

推荐一款 AI 脑图软件,助你神速提高知识体系搭建

觅得一款神器,接近我理想中,搭建知识体系的方法,先来看视频作为数据库开发或管理者,知识体系搭建尤为重要。来看看近些年缺乏足够数据库知识面造成的危害:a/ 数据安全风险:例如,2017年Equifax数…

Dubbo之认识RPC架构

文章目录一、互联网架构演变1.1 RPC架构1.2 SOA架构1.3 微服务架构1.4 SOA vs 微服务二、RPC 基本概念2.1 RPC 协议2.2 RPC 框架2.3 RPC 运行流程2.4 RPC vs HTTP提示:以下是本篇文章正文内容,Dubbo 系列学习将会持续更新 官方文档:https://c…

电池连接接触电阻的优化研究

金属与金属接触处的接触电阻主要受以下因素影响: 表面结构机械负载 表面结构可以通过表面平整度、表面氧化和吸水性进一步描述。 电池组中的这些接头将采用焊接或螺栓连接方式。最初最容易想到的是螺栓母线接头。 螺栓扭矩可用于估算力,从而估算接触压…

mvc的编辑和删除

之前实现了mvs的翻页登录显示等等一系列操作,现在我们再照葫芦画瓢实现一下编辑和删除。 1、编辑 我的思路是首先在list页面要给出编辑的超链接按钮,点击后跳转到一个jsp页面用来输入编辑的相关内容,再提交到负责编辑功能的servlet中。 首…

双硬盘安装Ubuntu22

1、下载Ubuntu系统的iso文件 官方下载地址:Download Ubuntu Desktop | Download | Ubuntu 阿里云镜像下载地址:ubuntu-releases安装包下载_开源镜像站-阿里云 2、制作U盘引导盘 下载软件 Rufus:https://rufus.akeo.ie 绿色免安装&#xff0…

Spring Security源码剖析从入门到精通.跟学尚硅谷(二)

Spring Security源码剖析从入门到精通.跟学尚硅谷 二4. SpringSecurity 微服务权限方案4.1 什么是微服务1、微服务由来2、微服务优势3、微服务本质4.2 微服务认证与授权实现思路1、认证授权过程分析2、权限管理数据模型3、项目技术说明4、搭建工程(1).创建父工程(2).创建子模块…

2023年天猫青团销售数据:口味更个性化,但老字号品牌依然称霸

青团本是清明时节祭祀的产物,但随着时节的推移,青团已经突破了地域与时间的限制,如今的青团已经成为地域性特色小吃的一种,并逐渐被全国消费者所接受。 随着消费回暖及内容营销的助力,今年的青团季比往年相比提高了不少…

天气预报查询 API + AI 等于王炸(一大波你未曾设想的天气预报查询 API 应用场景更新了)

前言 近年来,随着信息化进程的不断深入,人们对于信息的获取和处理需求越来越高。而其中,天气查询API是一个非常重要的服务,它能够帮助人们快速获取所在位置的天气情况,同时也为各类应用提供了必要的气象数据支持。 本…

Vue组件化编程

模块与组件、模块化与组件化 传统方式编写应用 使用组件方式编写应用 模块 理解:向外提供特定功能的 js 程序,一般就是一个 js 文件为什么:js 文件很多很复杂作用:复用 js,简化 js 的编写,提高 js 运行效…

RabbitMQ( 发布订阅模式 ==> TopicExchange)

本章目录: 何为TopicExchangeTopicExchange的具体使用一、何为TopicExchange 老样子,先看官方文档 在DirectExchange中,我们可以发送携带routingkey的消息到交换机中,交换机通过routingkey再去匹配一个或多个符合条件的队列。 …

不要告诉同事你要离职!打算跳槽,新公司开出两倍薪资,私下告诉要好的同事,却被同事出卖给领导!...

职场上有真正的朋友吗?来看看这位网友的讲述:一位前同事本来打算跳槽,新公司开出的薪资是原来的两倍。她私下告诉了几位同事自己打算离职的消息,并跟同事们分享了工资翻倍的喜悦。可她万万没想到,两天之后的公司会议上…

VSCode 配置arduino 开发

下载扩展,Arduino 其次,找到ta,看图片设置 配置完上述两个步骤后VS Code底部出现一个菜单栏,如下; 首先的有一个电灯的项目,我们可以去Arduino IDE 的示例中 另存一份出来 ,通过VSCode打开&am…

mysql 主从同步案例集合

记一次 MySQL 主从同步异常的排查记录,百转千回! relay log 损坏了,导致从库的 SQL 线程解析 relay log 时出现异常。从库恢复方式是通过手动设置当时出错的 GTID 的下一个值,让从库不从主库同步这个 GTID,最后从库就能…

Hadoop集群启动后,在web:50070端口只有两个datanode节点

spark集群部署规划: hadoop1 master worker datanode namenode secondarynamenode(hadoop) resourcemanager nodemanager(yarn) hadoop2 worker datanode nodemanager hadoop3 worker datanode nodemanager 问题引出:​​​​​​Hadoop集群启…

Java对象模型

介绍 Java是一种面向对象的语言,而Java对象在JVM中存储是由一定结构的。而这个 Java对象自身的存储模型称之为Java对象模型HotSpot虚拟机中,设计了一个OOP-Klass Model.OOP指的是普通对象指针,而Klass用来描述对象的具体类型。如下图所示是一…

字节测试总监8年测试路,如何从功能测试转成自动化测试——愿测试人不再迷茫

我大学学的计算机专业,有一点编程基础。我的软件测试职业开始和大多数测试人员一样,一开始在一家电商公司做软件功能测试。 大部分进入测试行业的朋友,最开始接触都是纯功能界面测试,随着工作年限,会接触到一些常用测…

Python深度学习实战:人脸关键点(15点)检测pytorch实现

引言 人脸关键点检测即对人类面部若干个点位置进行检测,可以通过这些点的变化来实现许多功能,该技术可以应用到很多领域,例如捕捉人脸的关键点,然后驱动动画人物做相同的面部表情;识别人脸的面部表情,让机…

北邮22信通:(13)二叉树 统计结点总数 深度和叶子结点数

北邮22信通一枚~ 跟随课程进度每周更新数据结构与算法的代码和文章 持续关注作者 解锁更多邮苑信通专属代码~ 上一篇文章: 下一篇文章: 目录 一.统计结点总个数 二.统计二叉树深度 三.统计叶子结点总数 四.完整代码 4.1测试int存储类型&…