1、扩散模型基本原理:

扩散模型包括两个步骤:

  1. 固定的(或预设的)前向扩散过程q:该过程会逐渐将高斯噪声添加到图像中,直到最终得到纯噪声。

2.可训练的反向去噪扩散过程pθ:训练一个神经网络,从纯噪音开始逐渐去噪,直到得到一个真实图像 。

正向过程
首先,对于一张原始图片,我们给加一个高斯噪声,图片由变成x1。【注意:这里必须要加高斯噪声,因为高斯噪声服从高斯分布,后面的一些运算需要用到高斯分布的一些特性】,重复上述添加高斯噪声步骤,直到图片变成xn,由于添加了足够多的高斯噪声,现在的近似服从高斯分布(又称正态分布)。
每一步添加高斯噪声的量一直是不变的吗? 答案是每步添加高斯噪声的量是变化的,且后一步比前一步添加的高斯噪声更多。我想这一点你通过上图也非常容易理解,一开始原图比较干净,我们添加少量高斯噪声就能对原图产生干扰;但越往后高斯噪声量越多,如果还添加一开始少量的高斯噪声,那么这时对上一步结果基本不会产生任何影响。【注:后文所述的每个时刻图像和这里的每一步图像都是一个意思,如时刻图像表示的就是这个图像】

逆向过程

首先,我们会随机生成一个服从高斯分布的噪声图片,然后一步一步的减少噪声直到生成预期图片。

正向过程实现细节

正向过程其实就是一个不断加噪的过程,后一时刻的图像主要由两个量决定,其一是上一时刻图像,其二是所加噪声量。可以用一个公式来表示时刻和时刻两个图像的关系,如下:

其中,Xt表示t时刻的图像,Xt-1表示t-1时刻图像,Z1表示添加的高斯噪声,其服从N(0,1)分布。【注:N(0,1)表示标准高斯分布,其方差为1,均值为0】

其实,还和另外一个量有关:

其中,是预先给定的值,它是一个随时刻不断增大的值,论文中它的范围为[0.0001,0.02]。既然越来越大,则越来越小,越来越小,1−越来越大。

公式4得到了什么——其得到了时刻图像和时刻图像的关系。按照我们先前的理解,我们再列出时刻图像和时刻图像的关系,如下:

很明显的规律,这里我就根据这个规律直接写出 时刻图像和时刻图像的关系,公式如下:

实际上就是,通过一次次的迭代太慢了,且每一次添加的噪声都独立且满足正态分布,正态分布相加还是正态分布,所以推导出了公式7

逆向过程实现细节
逆向过程是将高斯噪声还原为预期图片的过程。我们希望将时刻的高斯噪声变成时刻的图像,是很难一步到位的,因此我们思考能不能和正向过程一样,先考虑时刻图像和时刻的关系,然后一步步向前推导得出结论呢。

这里我们需要利用正向过程中的结论,我们在正向过程中可以由时刻图像得到 时刻图像,然后利用贝叶斯公式即可求解。贝叶斯公式的表达式如下:

那么我们将利用贝叶斯公式来求时刻图像,公式如下:

公式8中我们可以求得,就是刚刚正向过程求的嘛。 但是未知的。又由公式7可知,可由得到每一时刻的图像,那当然可以得到时刻的图像,故将公式8加一个作为已知条件,将公式8变成公式9,如下:

知道了公式9等式右边3项服从的分布,我们就可以计算出等式左边的。这个计算很简单,没有什么技巧,就是纯算。在附录->高斯分布性质部分我们知道了高斯分布的表达式为:。那么我们只需要求出公式9等式右边3个高斯分布表达式,求出µ和σ,然后进行乘除运算即可求得

网络训练流程

我们最终要训练的实际上是一个噪声预测器。神经网络输出的噪声是,而真实的噪声取自于正态分布,则损失函数为:

高斯分布性质
高斯分布又称正态分布,其表达式为:

其中为均值,为方差。若随机变量服从正态均值为,方差为的高斯分布,一般记为。此外,有一点大家需要知道,如果我们知道一个随机变量服从高斯分布,且知道他们的均值和方差,那么我们就能写出该随机变量的表达式。

高斯分布还有一些非常好的性质:

Diffusion Model扩散模型的更多相关文章

  1. 一文详解扩散模型:DDPM

    作者:京东零售 刘岩 扩散模型讲解 前沿 人工智能生成内容(AI Generated Content,AIGC)近年来成为了非常前沿的一个研究方向,生成模型目前有四个流派,分别是生成对抗网络(Gene ...

  2. A Neural Influence Diffusion Model for Social Recommendation 笔记

    目录 一.摘言 二.杂记 三.问题定义和一些准备工作 四.模型真思想 五.实验部分 六.参考文献 一.摘言 之前协同过滤利用user-item交互历史很好的表示了user和item.但是由于用户行为的 ...

  3. Hugging Face 每周速递: 扩散模型课程完成中文翻译,有个据说可以教 ChatGPT 看图的模型开源了

    每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...

  4. Model Validation(模型验证)

    Model Validation(模型验证) 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/344 ...

  5. 008.Adding a model to an ASP.NET Core MVC app --【在 asp.net core mvc 中添加一个model (模型)】

    Adding a model to an ASP.NET Core MVC app在 asp.net core mvc 中添加一个model (模型)2017-3-30 8 分钟阅读时长 本文内容1. ...

  6. Box Model 盒子模型

    Box Model盒子模型,是初学者在学习HTMl5时会学到的一个重要的模型,也有一些人称它为框模型,因为盒子是属于3维,而框是平面的.称之为盒子模型,是因为其结构和盒子十分相似,其最外面是margi ...

  7. Consistency Models终结扩散模型

    最近看到一篇论文,觉得特别有意思,并且在学术界引起了不小的动静,他就是一致性模型,据说图像生成效果快.质量高,并且还可以实现零样本图像编辑,即不进行一些视觉任务训练,可以实现图像超分.修复.上色等功能 ...

  8. Maximum Entropy Model(最大熵模型)初理解

    0,熵的描述 熵(entropy)指的是体系的混沌的程度(可也理解为一个随机变量的不确定性),它在控制论.概率论.数论.天体物理.生命科学等领域都有重要应用,在不同的学科中也有引申出的更为具体的定义, ...

  9. CSS Box Model 盒子模型

    1. 介绍 1.1 什么是 Box Model 在HTML中的每个element(元素)都可以看作一个矩形的盒子,矩形从内到外依次由元素的内容(content).内边距(padding).边框(bor ...

  10. Keras Model Sequential模型接口

    Sequential 模型 API 在阅读这片文档前,请先阅读 Keras Sequential 模型指引. Sequential 模型方法 compile compile(optimizer, lo ...

随机推荐

  1. 手写raft(三) 实现日志压缩

    手写raft(三) 实现日志压缩 在上一篇博客中MyRaft实现了日志复制功能,按照计划接下来需要实现日志压缩. 手写raft(一) 实现leader选举 手写raft(二) 实现日志复制 1. 什么 ...

  2. iOS证书的使用

    在iOS开发中,证书分两种,一种是对应于应用的证书,一种是通用证书

  3. 达梦数据库-DW-国产化--九五小庞

    武汉达梦数据库股份有限公司成立于2000年,是国内领先的数据库产品开发服务商,国内数据库基础软件产业发展的关键推动者.公司为客户提供各类数据库软件及集群软件.云计算与大数据等一系列数据库产品及相关技术 ...

  4. 「codeforces - 1633F」Perfect Matching

    link. 首先所有的 activated nodes 组合成了一棵以 \(1\) 为根的有根树.询问即求由 activated nodes 组成的树的最大匹配.对于树上最大匹配有一个贪心策略:自底向 ...

  5. 【Python】代理池针对ip拦截破解

    代理池是一种常见的反反爬虫技术,通过维护一组可用的代理服务器,来在被反爬虫限制的情况下,实现数据的爬取.但是,代理池本身也面临着被目标网站针对ip进行拦截的风险. 本文将详细介绍代理池针对ip拦截破解 ...

  6. R3300L, Q7 ATV Android9固件

    R3300L, Q7 ATV Android9固件 固件来源 https://www.znds.com/tv-1239603-1-1.html 之前在恩山上发布过1080p安卓6固件 https:// ...

  7. xshell无法调用gdc

    现象: <topprod:/u1/topprod/tiptop> exe2 p_zzExecute program:p_zz<topprod:/u1/topprod/tiptop&g ...

  8. it 作形式主语:It's no good doing sth.

    It's no good doing sth. 这个 句型其实是一个省 略介词 in 的句型,完整形式是 It's no good in doing sth. 其中, good 是形容词,和介词 in ...

  9. 基于AI模型的验证码安全识别(B站,知乎等)

      bilibili 汉字识别顺序验证码 实现基本思路:    先利用Selenium模拟登录,当然在这之前做好请求伪装,get方法使边框最大化,并且将系统的windows窗口缩放比例设置为100%, ...

  10. 如何在 Ubuntu上使用snap安装Docker

    1 检查系统版本 具有sudo或root用户权限 2 安装 SNAP ctrl+alt+T 打开终端 运行以下命令以安装 SNAP sudo apt update sudo apt install s ...