DDPM与扩散模型

很早之前就新建了一个专栏从0开始弃坑扩散模型
,但发了一篇文章就没有继续这一系列,在这个AIGC的时代,于是我准备重启这个专栏。
整个专栏的学习顺序可以见这篇汇总文章

这是本专栏的第一章

目录

  • 引言
  • 生成模型的发展历程

引言

扩散模型( Diffusion Models,DM ) 最早是在2015年由斯坦福大学的Jascha Sohl-Dickstein等人提出的,全称是概率扩散模型(diffusion probabilistic model,DPM)。他们是怎么提出的呢?这里就要讲讲在之前的故事了。

生成模型的发展历程

很久以前,在一片广阔的大陆中,数据科学家们长期以来一直在探寻一种方法,希望能让机器不仅能学会理解复杂的数据,还能创造出全新的、前所未见的图像。他们希望通过这样的方式让机器拥有一点点“创造力”。这个愿望听起来很遥远,直到有一天,两个强大的法师——生成对抗网络(GAN)和变分自编码器(VAE)改变了这个世界。
VAE法师利用概率生成模型的力量,通过将图像数据映射到一个隐含的、更低维的空间(称为隐空间)来捕捉数据的本质特征。然后,VAE法师通过隐空间中的点(这并不是前面转换的点,而是在一定分布中随机抽样出来的新点)重构数据,生成新的样本。VAE中,把图像变成向量的网络叫做编码器,把向量转换回图像的网络叫做解码器。模型会在训练时候,不断学习某一类图像的标准正态分布,这样随机出来的分布也能与训练集生成相似的图像。在VAE中,生成图像的质量通常是通过它们与真实图像的相似度来评价的,这就导致了一个问题:虽然VAE生成的图像在像素级别上与原始图像可能非常相似,但它们往往缺乏锐利度和细节,看起来可能模糊不清,不够逼真。此外,VAE的另一个限制在于其假设潜在空间遵循一个简单的、通常是高斯分布的先验,这限制了它能够生成的样本类型,特别是在捕捉更复杂或多模态分布时可能会受到限制。
紧随其后,生成对抗网络(GAN)法师登场了。GAN法师带来了一场真正的革命,他不仅能够生成数据,还精心设计了一个判别器来评价数据的真实性。在他的法术下,生成器和判别器开始了一场激烈的对抗游戏。生成器像艺术家一样创作新的作品,而判别器则像艺术评论家一样对作品进行评判。通过不断的竞争,生成器学会了创造出越来越逼真的数据样本,而判别器则变得越来越擅长于分辨真伪。GAN法师成功地解决了如何评价生成图像的难题,使得生成的图像在质量上得到了显著的提升,它们变得几乎与真实图像无法区分。
在VAE和GAN两位法师展示他们的魔法之后,机器学习的领域已经大为震撼。但是,故事并没有结束。在他们的故事传开之后不久,一个新的法师扩散模型(Diffusion Model)从知识的迷雾中走了出来,带着一种新的魔法——他可以在数据的原始形态和一片纯净无噪的空白状态之间来回穿梭。
扩散模型法师的魔法与VAE法师有着密切的血缘关系,但又带有独特的力量。他的能力不在于对数据进行简单的编码和解码,而是在于逐步地、有策略地引入噪声,将数据模糊化,直至变成纯粹的随机噪声,就像是用一层层的绘画颜料将一个精致的画作覆盖,直到所有的细节都不再可见。
然而,扩散模型法师最引人注目的魔法是他的逆过程。他能够从那一片噪声的汪洋中,逐步地移除噪声,让数据重现其原有面貌。这一过程仿佛是在逆转时间,使混乱渐渐回归秩序。随着每一步噪声的去除,数据的结构开始逐渐显露,最终揭示出清晰的形象。
扩散模型法师的这种能力在处理高维数据时尤为强大,他能够生成具有非常高质量和复杂性的样本,这些样本不仅在视觉上逼真,而且在统计特性上也与真实数据几乎无法区分。这一点,即便是GAN法师也不得不承认。
这样,扩散模型法师不仅加入了VAE和GAN的行列,还将机器学习的艺术提升到了一个新的高度。他证明了即使在这些强大的法师们所创造的宏大叙事之后,还有新的故事等待被讲述,还有新的魔法等待被探索。而这个领域的探索者们仍然在往更深远的未知中迈进,寻找着将理论和实践结合起来的新的方法,以期达到更为完美的创造力。
(说了这么多,实际上这里就看着乐,我也放松一下,只要记得扩散模型只是VAE的变种就好了。)
然而DPM在图像生成质量和采样速度上存在许多不足,并未受到广泛关注。直至2020年,伯克利大学的Jonathan Ho等人提出了去噪扩散概率模型(DDPM)。DDPM改善了DPM的缺点,并在图像合成效果上超越了先前的生成模型,如生GAN、VAE、基于流的模型(Flow-based Models)和基于能量的模型(EBM)。
我们下面所讲的也是DDPM。

在这里插入图片描述

DDPM分为正向过程和反向过程两个阶段。如上图所示,正向过程和反向过程对应VAE中的编码和解码。

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

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

相关文章

虹科Pico汽车示波器 | 免拆诊断案例 | 2010款凯迪拉克SRX车发动机无法起动

故障现象 一辆2010款凯迪拉克SRX车,搭载LF1发动机,累计行驶里程约为14.3万km。该车因正时链条断裂导致气门顶弯,大修发动机后试车,起动机运转有力,但发动机没有着机迹象;多起动几次,火花塞会变…

手动实现简易版RPC(四)

手动实现简易版RPC(四) 往期内容 手动实现简易版RPC(一):RPC简介及系统架构 手动实现简易版RPC(二):简单RPC框架实现 手动实现简易版RPC(三):mock数据生成 前言 接上几篇博客我们实现了最…

QT--3

Qt 1>将文本编辑器完整实现 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);this->resize(800,600);edit1 new QTextEdit(this);edit1->resize(600…

计算机网络技术主要学什么内容,有哪些课程

计算机网络技术专业是一个涉及理论与实践紧密结合的学科,主要学习内容有计算机网络基础、网络设备技术、网络编程等内容,以下是上大学网(www.sdaxue.com)整理的计算机网络技术主要学什么内容,供大家参考! 基…

linux命令之scp

今天遇到一个情况,内网环境不能联网没法下载最新的tcpdump。但是本身有个系统的tcpdump是最新版的,我不想rz下载再sz上传,想到可以用scp来直接传输文件,刚好来了解一下。 用法解释 scp(secure copy)命令可…

《视觉十四讲》例程运行记录(1)—— 课本源码下载和3rdparty文件夹是空的解决办法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、第二版十四讲课本源码下载1. 安装git工具 二、Pangolin下载和安装1. 源码下载2. Pangolin的安装(1) 安装依赖项(2) 源码编译安装(2) 测试是否安装成功 二、…

SpringCloud 集成consul,消费者报I/O error on GET request for...

创建消费者微服务,去调用生产者微服务的请求过程中,出现以下错误: 报错原因 因为在使用SpringCloudAlibaba中的Nacos框架时,自动整合了SpringCloud中的Ribbon框架中的负载均衡,因为微服务提供者有两个,在消…

C++初识多态(1)

1.多态要解决的问题(引入) 任何一种机制的存在,必然是有其存在的意义的,例如我们前面学过的函数重载,运算符重载,以及引用等等,都是解决一些特殊问题的; 下面通过一些具体的例子&a…

类和对象、this指针、类里的默认生成函数

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

【仪酷LabVIEW AI工具包案例】使用LabVIEW AI工具包+YOLOv5结合Dobot机械臂实现智能垃圾分类

‍‍🏡博客主页: virobotics(仪酷智能):LabVIEW深度学习、人工智能博主 🎄所属专栏:『仪酷LabVIEW AI工具包案例』 📑上期文章:『【YOLOv9】实战二:手把手教你使用TensorRT实现YOLOv…

升级PQC后,「谷歌浏览器」却频频报错......

上周Chrome 124发布后,默认启用了新的抗量子X25519Kyber768封装机制,不过,一些谷歌Chrome用户在使用后反应说,新版本的浏览器在连接网站、服务器和防火墙时出现了问题。 谷歌在8月份开始测试后量子安全TLS密钥封装机制&#xff0c…

嫦娥六号近月制动成功,建立月球基地又迈进一步!

嫦娥六号探测器在近月制动的关键时刻,北京航天飞行控制中心内弥漫着紧张而庄重的氛围。每一个航天科技工作者都屏息以待,他们的眼神中充满了期待与自豪。随着一系列精妙绝伦的指令如同琴弦上的音符般流畅地奏响,嫦娥六号探测器在万众瞩目的目…

使用SpringBoot+Redis做一个排行榜【推荐】

SpringBoot Redis实现排行榜 一、Zset有序集合介绍 Zset是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分( score) ,这个评分( score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了…

通讯录项目—顺序表实现

在上次我介绍顺序表后相信大家对顺序表有了一定的了解,现在就让我们来练练如何用它,这篇是在顺序表基础上新增的(建议看看线性表—顺序表实现-CSDN博客)。 目录 通讯录简介 创建用户信息 适配和理解通讯录 功能实现 初始化通讯录 销毁通讯录 增加…

为什么跑腿越来越受到年轻人的青睐

跑腿服务越来越受到年轻人的青睐,主要源于以下几个方面的原因: 1. 便捷快速:在快节奏的现代生活中,年轻人追求的是效率和速度。跑腿服务提供了一种即时、便捷的解决方案,使他们能够在繁忙的生活和工作中节省时间和精力…

鸿蒙开发实战:智能日志定位与高效调试技巧

前言 在鸿蒙系统的开发过程中,日志定位是一个关键的调试步骤。想象一下,如果你能够轻松地在繁杂的代码中快速定位到日志产生的位置,那将会极大地提高你的开发效率。今天,我将分享一套代码,它能帮助你实现这一目标。 效果展示 当你使用这套代码时,日志的打印效果将如下…

qt开发解压缩zip文件实现

作者开发环境:Qt5.8 ,win10 总体思路:首先我们编译zip源码,生成zip的动态库;然后再编译quazip源码,得到quazip的动态库;最后在我们的程序中去调用。 详细步骤: 1、编译zlib zlib…

Day22 代码随想录打卡|字符串篇---实现 strStr()

题目(leecode T28): 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1…

WSL2中使用USB串口实验

一、主要参考网站: Connect USB devices | Microsoft Learn 连接 USB 设备 | Microsoft Learn 二、安装usbipd-win WSL 本身并不支持连接 USB 设备,因此你需要安装开源 usbipd-win 项目 PS C:\Users\issta> winget install --interactive --exact dorssel.usbipd-win …

yaml配置文件的在深度学习中的简单应用

1 .创作灵感 小伙伴们再阅读深度学习模型的代码的时候,经常会遇到yaml格式的配置文件。用这个配置文件是因为我们在训练模型的时候会涉及很多的参数,如果这些参数东一个,西一个,我们调起来的时候就会很不方便,所以用y…
最新文章