【Deep Learning】DDPM
DDPM

1. 大致流程
1.1 宏观流程

1.2 训练过程

1.3 推理过程

2. 对比GAN
2.1 GAN流程

2.2 相比GAN优点
训练过程更稳定,损失函数指向性更强(loss数值大小指示训练效果好坏)
3. 详细流程
3.1 扩散阶段
如下图,X0为初始干净图像,XT由X0逐步添加噪声所得到

具体到一次Xt-1到Xt的扩散过程如下图,Zt为此时刻添加的随机噪声(服从标准正态分布),β随着时间t从0到T的过程逐步线性增大,通常扩散次数T选择1000(2000也行),选择这样的次数主要是希望最后得到的是一个完全噪声的图片,而不是还能看出图片中的内容

如上得到了每一步之间的扩散步骤,那么由最初的X0扩散到最终的XT,推导过程如下:
- 先用α替换掉β

- Xt由Xt-2表示

- Xt由X0表示

- t换成T来表示(最终XT是一个服从标准正态分布的随机噪声,即可以约等于噪声Z,即αT拔约等于0)

3.2 去噪重建阶段
- 大体过程
如下图,在去噪重建的过程中,先随机采样一个随机噪声XT,将XT放入U-Net预测噪声Z,然后将XT去除噪声Z得到XT-1,再将XT-1放入U-Net预测噪声...重复上述过程,直至最终预测出X0

- 用于预测噪声的U-Net如下,传入噪声Xt和t,t可以理解为positional embedding,因为在前向的扩散过程中每一时刻添加的噪声强度是不一样的,所以在进行预测的时候,预测出的每一时刻的噪声强度也是不一样的

- 如上我们已经可以使用U-Net预测出每一时刻的噪声了,那我们怎么通过预测出的噪声预测书上一时刻的图片呢?也就是怎么得到如下图的推理公式呢?

- 如下一系列图片即进行上述问题的推理
首先观察如何从Xt得到Xt-1,利用贝叶斯公式进行如下转化

然后根据如下扩散过程推出上述每一部分的表达式


然后根据标准正态分布,求出整体表达式







最终得出XT到XT-1的表达式

如上,便完成了一次使用U-Net预测出的噪声对随机采样的噪声去噪,接下来就是从XT一直去噪到X0的过程

4. 论文算法
4.1 Training
实际的训练过程中,没有如上所描述的那样繁琐,总的来说如下:
repeat
在均匀分布T里随机采一个t
随机采样一个标准分布的噪声ε
使用t和ε计算出Xt
将Xt和t放入U-Net预测出噪声(εθ(Xt,t)即为U-Net)
计算εθ和ε损失
until 收敛

4.2 Sampling
去噪的生成过程中,需要注意一点,当逐步去噪到t=1时,不需要再随机采样一个标准正态分布的Z,因为此时求的是X0(最后的干净图片),干净图片再添加一个噪声就变得不干净了。

【Deep Learning】DDPM的更多相关文章
- 【Deep Learning】一、AutoEncoder
Deep Learning 第一战: 完成:UFLDL教程 稀疏自编码器-Exercise:Sparse Autoencoder Code: 学习到的稀疏参数W1: 参考资料: UFLDL教程 稀疏自 ...
- 【Deep Learning】genCNN: A Convolutional Architecture for Word Sequence Prediction
作者:Mingxuan Wang.李航,刘群 单位:华为.中科院 时间:2015 发表于:acl 2015 文章下载:http://pan.baidu.com/s/1bnBBVuJ 主要内容: 用de ...
- 【Deep Learning】林轩田机器学习技法
这节课的题目是Deep learning,个人以为说的跟Deep learning比较浅,跟autoencoder和PCA这块内容比较紧密. 林介绍了deep learning近年来受到了很大的关注: ...
- 【Deep Learning】两层CNN的MATLAB实现
想自己动手写一个CNN很久了,论文和代码之间的差距有一个银河系那么大. 在实现两层的CNN之前,首先实现了UFLDL中与CNN有关的作业.然后参考它的代码搭建了一个一层的CNN.最后实现了一个两层的C ...
- 【Deep Learning】Hinton. Reducing the Dimensionality of Data with Neural Networks Reading Note
2006年,机器学习泰斗.多伦多大学计算机系教授Geoffery Hinton在Science发表文章,提出基于深度信念网络(Deep Belief Networks, DBN)可使用非监督的逐层贪心 ...
- 【deep learning】斯坦福CS231n—深度学习与计算机视觉(资料汇总)
官网 链接:CS231n: Convolutional Neural Networks for Visual Recognition Notes: 链接:http://cs231n.github.io ...
- 【Deep Learning】RNN LSTM 推导
http://blog.csdn.net/Dark_Scope/article/details/47056361 http://blog.csdn.net/hongmaodaxia/article/d ...
- 【Deep Learning】RNN的直觉理解
https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/
- 【Deep learning】NLP
http://www.tuicool.com/articles/EvaQJnJ http://cs224d.stanford.edu/syllabus.html
- 【deep learning学习笔记】注释yusugomori的DA代码 --- dA.h
DA就是“Denoising Autoencoders”的缩写.继续给yusugomori做注释,边注释边学习.看了一些DA的材料,基本上都在前面“转载”了.学习中间总有个疑问:DA和RBM到底啥区别 ...
随机推荐
- #科技 #资讯 #生活 RTX 4080显卡在欧跌破建议零售价, 小鹏回应自研电池, Meta因泄漏超5亿用户资料被罚款 ,黑猫投诉开启2022“你我同心 反诈同行”系列活动,这就是今天的其它大新闻
今天是2022年11月29日 十一月初六 现在是下午15:29 下面是今天的其他大新闻 #NEWS 1 #RTX 4080在欧跌破建议零售价 ( IT 之家 )据 PCGamesHardware 报道 ...
- 【第4次作业】CNN实战
使用VGG模型进行猫狗大战 import numpy as np import matplotlib.pyplot as plt import os import torch import torch ...
- 【cs231n】knn作业笔记
完成了assignment-1中knn相关内容的作业,记录一下遇到的知识点和问题 knn.ipynb的内容大致包括: 1.数据集的建立 主要是通过切片函数,如下图选取前5000张图片和其标记作为训练数 ...
- IT工具知识-13: 如何编辑SVG图像文件并转换为ICO图标文件
使用背景 最近做了个小软件, 但是桌面快捷方式图标不好看, 于是想着找个好看点的图标, 但是网上搜了一圈, 发现好看的几乎都要钱, 常用的话, 付费倒也不反感, 但是, 仅仅只用那么一两次, 为这个付 ...
- Lombok和MapStruct冲突
Lombok和MapStruct冲突导致无法生成正确的class文件. lombok自动生成getset等冗余代码. MapStruct对象copy.传统的BeanUtils.copy等利用的反射原理 ...
- QT网络编程【一】
1.QUdpSocket头文件无法识别怎么解决? 问题原因:qmake没有添加network的模块.在工程配置文件中添加配置即可. 2.选择c++的socket库还是QUdpSocket? 3.同样的 ...
- java实现前n项和,要求不使用循环、乘除法、判断标识
public class Ceui3 { public static int sum = 0; public static void main(String[] args) { System.out. ...
- 查看shell 用户连接数
w | grep pts |wc -l
- 微信小程序 真机调试白屏
真机调试白屏,报define is not defined 解决: 更新小程序版本
- Unity_飞机大战记录总结
记录步骤:win+R→PSR.exe 一.竖屏设置 分辨率设为9:16 二.主控脚本 添加一个空节点,命名"游戏主控" 新建游戏的主控脚本,命名为MyGame.cs,方便管理(即, ...