扩散模型实战(一):基本原理介绍

2023-11-03

       扩散模型(Diffusion Model)是⼀类⼗分先进的基于物理热⼒学中的扩散思想的深度学习⽣成模型,主要包括前向扩散和反向扩散两个过程。⽣成模型除了扩散模型之外,还有出现较早的VAE(Variational Auto-Encoder,变分⾃编码器)和GAN(Generative Adversarial Net,⽣成对抗⽹络)等。

生成模型

       在深度学习中,⽣成模型的⽬标是根据给定的样本(训练数据)⽣成新样本。⾸先给定⼀批训练数据X,假设其服从某种复杂的真实分布p(x),则给定的训练数据可视为从该分布中采样的观测样本x。如果能够从这些观测样本中估计出训练数据的真实分布,不就可以从该分布中源源不断地采样出新的样本了吗?⽣成模型实际上就是这么做的,它的作⽤是估计训练数据的真实分布,并将其假定为q(x)。在深度学习中,这个过程称为拟合⽹络。

       那么问题来了,怎么才能知道估计的分布q(x)和真实分布p(x)的差距⼤不⼤呢?⼀种简单的思路是要求所有的训练数据样本采样⾃q(x)的概率最⼤。这种思路实际上来⾃统计学中的最⼤似然估计思想,它也是⽣成模型的基本思想之⼀,因此⽣成模型的学习⽬标就是对训练数据的分布进⾏建模。

扩散过程

       最⼤似然估计思想已经在⼀些模型(如VAE)上应⽤并取得了不错的效果。扩散模型可看作⼀个更深层次的VAE。扩散模型的表达能⼒更加丰富,⽽且其核⼼在于扩散过程。

       扩散的思想来⾃物理学中的⾮平衡热⼒学分⽀。⾮平衡热⼒学专⻔研究某些不处于热⼒学平衡中的物理系统,其中最为典型的研究案例是⼀滴墨⽔在⽔中扩散的过程。在扩散开始之前,这滴墨⽔会在⽔中的某个地⽅形成⼀个⼤的斑点,我们可以认为这是这滴墨⽔的初始状态,但要描述该初始状态的概率分布则很困难,因为这个概率分布⾮常复杂。随着扩散过程的进⾏,这滴墨⽔随着时间的推移逐步扩散到⽔中,⽔的颜⾊也逐渐变成这滴墨⽔的颜⾊,如图1-1所示。此时,墨⽔分⼦的概率分布将变得更加简单和均匀,这样我们就可以很轻松地⽤数学公式来描述其中的概率分布了。

       在这种情况下,⾮平衡热⼒学就派上⽤场了,它可以描述这滴墨⽔随时间推移的扩散过程中每⼀个“时间步”(旨在将连续的时间过程离散化)状态的概率分布。若能够想到办法把这个过程反过来,就可以从简单的分布中逐步推断出复杂的分布。

     公认最早的扩散模型DDPM(Denoising Diffusion Probabilistic Model)的扩散原理就由此⽽来,不过仅有上述条件依然很难从简单的分布倒推出复杂的分布。DDPM还做了⼀些假设,例如假设扩散过程是⻢尔可夫过程 (即每⼀个时间步状态的概率分布仅由上⼀个时间步状态的概率分布加上当前时间步的⾼斯噪声得到),以及假设扩散过程的逆过程是⾼斯分布等。

图片

图1-1 一滴墨水在水中扩散分布的示意图

       DDPM的扩散过程如图1-2和1-3所示,具体分为前向过程和反向过程两部分。扩散模型是一种潜变量模型,它使用固定的马尔可夫链映射到潜在空间。该链逐步向数据中添加噪声,以获得近似后验值,其中为与x0具有相同维数的潜变量。在下面的图中,我们可以看到这样一个马尔可夫链。

图片

图1-2 前向过程

       最后,图像逐渐变为纯高斯噪声。训练扩散模型的目标是学习逆向过程,即训练。通过沿着这条链向后遍历,我们可以生成新的数据。

图片

图1-3 反向过程

1)前向过程

       前向过程是给数据添加噪声的过程。假设给定一批训练数据,数据分布为x_0\sim q(x_0),其中,0表示初始,即还没有开始扩散。如前所述,将前向加噪过程分为离散的多个时间步 T ,在每一个时间步 t ,给上一个时间步t-1的数据x_{t-1};添加高斯噪声,从而生成带有噪声(简称"带噪")的数据x_t,同时数据x_t ,也会被送入下个时间步 t +1以继续添加噪声。其中,噪声的方差是由一个位于区间(0,1)的固定值\beta _t确定的,均值则由固定值\beta _t和当前时刻"带噪"的数据分布确定。在反复迭代和加噪(即添加噪声) T 次之后,只要 T 足够大,根据马尔可夫链的性质,最终就可以得到纯随机噪声分布的数据,即类似稳定墨水系统的状态。

      接下来,我们用简单的公式描述一下上述过程。从时间步 t -1到时间步 t 的单步扩散加噪过程的数学表达式如下:

图片

       最终的噪声分布数学表达式如下:

图片

2)反向过程

       前向过程是将数据噪声化的过程,反向过程则是"去噪"的过程,即从随机噪声中迭代恢复出清晰数据的过程。

       要从采样自高斯噪声x_t\sim \mathbb{N}(0,I)的一个随机噪声中恢复出原始数据x_0,就需要道反向过程中每一步的图像分布状态转移。类似地, DDPM 也将反向过程定义为一个马尔可夫链,只不过这个马尔可夫链是由一系列用神经网络参数化的高斯分布组成的,也就是需要训练的扩散模型。

       从时间步 t 到时间步 t -1的单步反向"去噪"过程的数学表达式如下:

图片

       由于反向过程的每一步都是参数化的高斯分布,因此可以分别求高斯分布的均值和方贝叶斯公式推导的过程,最终得到时间步 t -1的高斯分布 q(x_{t-1}|x_t,x_0),的均值和方差的数学公式如下:

图片

       可以看出,方差是一个定量(扩散过程参数固定),而均值是一个依赖于x_0 和x_t的函数,因此需要使用扩散模型来优化参数。

3)优化目标

       扩散模型预测的是噪声残差,即要求后向过程中预测的噪声分布与前向过程中噪声分布的“距离”最小。

       下面我们从另一个角度来看看扩散模型。如果把中间产生的变量看成隐变量的话,那么扩散模型其实是一种包含 T 个隐变量的模型,因此可以看成更深层次的 VAE ,而 VAE 的损失函数可以使用变分推断来得到变分下界( variational lower bound )。

       扩散模型的最终优化目标的数学表达式如下:

图片

     可以看出,在训练 DDPM 时,只要用一个简单的 MSE ( Mean Squared Error ,均方误差)损失来最小化时向过程施加的噪声分布和后向过程预测的噪声分布,就能实现最终的优化目标。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

扩散模型实战(一):基本原理介绍 的相关文章

  • 文档扫描与矫正-仿射变换

    图像变换是计算机视觉和图像处理中的关键技术之一 它允许我们对图像进行各种形式的变形 调整和校正 其中 仿射变换是一种常见的变换方式 在文档扫描过程中 由于拍摄角度和畸变等原因 文档图像可能存在一定程度的形变 仿射变换可以用于校正文档图像 使
  • 【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 有 无策略奖励 2 2 训练结果1
  • 用CHAT写一份标题为职业教育教师教学能力提升培训总结

    CHAT回复 标题 职业教育教师教学能力提升培训总结 一 活动概述 本次由学校组织的职业教育教师教学能力提升培训于8月15日至8月20日顺利进行 来自全校的60位职业教育教师参与了此次培训 主讲人为享有盛名的教育专家马丁先生 二 培训内容与
  • 利用CHAT写实验结论

    问CHAT 通过观察放置在玻璃表面上的单个水滴 人们可以观察到水滴充当成像系统 探究这样一个透镜的放大倍数和分辨率 CHAT回复 实验报告标题 利用玻璃表面的单一水滴观察成像系统的放大倍数和分辨率 一 实验目的 通过对比和测量 研究和探索玻
  • 链上繁荣,合作不断,外媒热议波场 TRON 2023 年度成绩

    近日 权威外媒Theblock 美联社和Decrypt等就波场 TRON 2023大事件进行了年度盘点 报道指出 波场TRON网络在2023年取得了一系列的发展和合作 提升了其在Web3领域的地位 其中 波场TRON网络账户数量增加了 54
  • 利用CHAT上传文件的操作

    问CHAT autox js ui 上传框 CHAT回复 上传文件的操作如果是在应用界面中的话 由于Android对于文件权限的限制 你可能不能直接模拟点击选择文件 一般来说有两种常见的解决方案 一种是使用intent来模拟发送一个文件路径
  • 活动日程&直播预约|智谱AI技术开放日 Zhipu DevDay

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入 直播预约通道 关于AI TIME AI TIME源起于2019年 旨在发扬科学思辨精神 邀请各界人士对人工智能理论 算法和场景应用的本质问题进行探索 加强思想碰撞 链接全球AI学
  • 明日 15:00 | NeurIPS 2023 Spotlight 论文

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入 哔哩哔哩直播通道 扫码关注AITIME哔哩哔哩官方账号预约直播 1月17日 15 00 16 00 讲者介绍 黄若孜 腾讯AI LAB游戏AI研究员 2020年复旦大学硕士毕业后
  • 毕业设计:基于深度学习的微博谣言检测系统 人工智能

    目录 前言 设计思路 一 课题背景与意义 二 算法理论原理 三 检测的实现 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有
  • 作物叶片病害识别系统

    介绍 由于植物疾病的检测在农业领域中起着重要作用 因为植物疾病是相当自然的现象 如果在这个领域不采取适当的护理措施 就会对植物产生严重影响 进而影响相关产品的质量 数量或产量 植物疾病会引起疾病的周期性爆发 导致大规模死亡 这些问题需要在初
  • 2024 人工智能与大数据专业毕业设计(论文)选题指导

    目录 前言 毕设选题 选题迷茫 选题的重要性 更多选题指导 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生
  • 如何快速申请GPT账号?

    详情点击链接 如何快速申请GPT账号 一OpenAI 1 最新大模型GPT 4 Turbo 2 最新发布的高级数据分析 AI画图 图像识别 文档API 3 GPT Store 4 从0到1创建自己的GPT应用 5 模型Gemini以及大模型
  • 手把手教你用 Stable Diffusion 写好提示词

    Stable Diffusion 技术把 AI 图像生成提高到了一个全新高度 文生图 Text to image 生成质量很大程度上取决于你的提示词 Prompt 好不好 前面文章写了一篇文章 一份保姆级的 Stable Diffusion
  • AI在保护环境、应对气候变化中的作用

    对于AI生命周期数据领域的全球领导者而言 暂时搁置我们惯常的AI见解和AI生命周期数据内容产出 来认识诸如世界地球日这样的自然环境类活动日 似乎是个奇怪的事情 我们想要知道 数据是否真的会影响我们的地球环境 简而言之 是 确实如此 但作为一
  • AI在广告中的应用——预测性定位和调整

    营销人员的工作就是在恰当的时间将适合的产品呈现在消费者面前 从而增加他们购买的可能性 随着时间的推移 营销人员能够深入挖掘越来越精准的客户细分市场 他们不仅具备了实现上述目标的能力 而且这种能力还在呈指数级提升 在AI技术帮助下 现在的营销
  • 回望计算机视觉会议ICCV的31年

    作者 原野寻踪 编辑 汽车人 原文链接 https zhuanlan zhihu com p 670393313 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 全栈算法 技术交流群 本文只做
  • 史上最全自动驾驶岗位介绍

    作者 自动驾驶转型者 编辑 汽车人 原文链接 https zhuanlan zhihu com p 353480028 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 求职交流 技术交流群 本
  • 考虑光伏出力利用率的电动汽车充电站能量调度策略研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据
  • 自动驾驶离不开的仿真!Carla-Autoware联合仿真全栈教程

    随着自动驾驶技术的不断发展 研发技术人员开始面对一系列复杂挑战 特别是在确保系统安全性 处理复杂交通场景以及优化算法性能等方面 这些挑战中 尤其突出的是所谓的 长尾问题 即那些在实际道路测试中难以遇到的罕见或异常驾驶情况 这些问题暴露了实车
  • 两个月进口猛增10倍,买近百台光刻机,难怪ASML不舍中国市场

    据统计数据显示 2023年11月和12月 中国从荷兰进口的光刻机设备同比猛增10倍 进口金额超过19亿美元 让ASML赚得盆满钵满 ASML早前表示中国客户在2023年订购的光刻机全数交付 2023年11月中国进口的光刻机达到42台 进口金

随机推荐

  • MySQL的基础

    目录 一 MySQL的基础概述 1 1基本概述 1 2SQL语句 1 3MySQL的特性 二 MySQL的语句 2 1查询语句 2 2插入语句 2 3更新语句 2 4删除语句 2 5连接查询 三 MySQL的运用 3 1创建一个数据库 3
  • python爬虫第7天 穿越网页表单与登录窗口进行采集 采集JavaScript

    Python Requests库 1 单选按钮 复选框和其他输入 2 提交文件和图像 3 处理登录和cookie 4 Requests 库的 session 函数 会话 session 对象 调用 requests Session 获取 会
  • Vue(树表格分页)

    目录 1 准备工作 2 动态树 2 1 在配置请求路径 2 2 使用动态数据构建导航菜单 2 2 1 通过接口获取数据 2 2 3 通过后台获取的数据构建菜单导航 2 2 3 1 先构建一级导航菜单 2 2 3 2 构建二级导航菜单 2 3
  • 《因果学习周刊》第13期:ICLR 23因果推断高分论文

    No 13 智源社区 因果学习组 因 果 学 习 研究 观点 资源 活动 周刊订阅 告诉大家一个好消息 因果学习周刊 已经开启 订阅功能 以后我们会向您自动推送最新版的 因果学习周刊 订阅方法 方式1 扫描下面二维码 进入 因果学习周刊 主
  • Unity—英雄无敌(前方高能)

    英雄无敌 VR Project 前方高能 敌人模块 武器模块 HTC VIVE 玩家模块 可以学习考参一下本文章的思想 思路甚至是细节呦 需求分析是重点 目录 敌人模块 敌人沿指定路线运动 受击后减血死亡 运动播放跑步动画 攻击播放攻击动画
  • 【hadoop】windows上hadoop环境的搭建步骤

    文章目录 前言 基础环境 下载hadoop安装包 下载hadoop在windows中的依赖 配置环境变量 Hadoop hdfs搭建 创建hadfs数据目录 修改JAVA依赖 修改配置文件 初始化hdfs namenode 启动hdfs 前
  • ubuntu用户添加adduser, useradd并给予sudo权限

    ubuntu和windows一样 可以任意创建或者删除新的用户 windows下比较简单 ubuntu下需要使用命令 不过操作起来不是很繁琐 所以我尽量写的详细一些 如何创建ubuntu新用户 首先打开终端 输入 sudo adduser
  • 【笔记】黑马程序员 MySQL数据库入门到精通 —— 基础篇_实践

    文章目录 SQL语法 SQL语法 DDL 操作数据库 表的定义 1 操作数据库 2 操作表 实践 设计一张员工信息表 SQL语法 DML 增删改 表中的数据 SQL语法 DQL 查询表中的数据 1 基本查询 不带任何条件 2 条件查询 WH
  • Umi + Dva (model数据使用教程demo)

    React 不多说 3大框架之一 Dva 是由阿里架构师 sorrycc 带领 team 完成的一套前端框架 在作者的 github 里是这么描述它的 dva 是 react 和 redux 的最佳实践 现在已经有了自己的官网 https
  • PostgreSQL备份与还原指定数据库数据和导出指定的数据表

    PostgreSQL备份与还原指定数据库数据 PostgreSQL备份与还原指定数据库数据 备份 pg dump 还原 psql Postgresql导出指定的数据表 PostgreSQL备份与还原指定数据库数据 备份 pg dump pg
  • vue获取当前时间并时时刷新

    vue获取当前时间并时时刷新 页面显示 div span nowDate span span class houertime hourDate span div 图片上传失败 我是分开年月日和时分秒 给时分秒加样式 2022 11 24 1
  • [windows优化]win10折腾过程

    2018 11 27更新 没固态硬盘 拯救者还不值3000 非常卡 双十一 终于忍不住买了块固态硬盘 刚好最近技术发展 固态硬盘降价了 入手三星750 M 2 250G 如果机子不能识别固态硬盘 请进入BIOS 设置启动模式为UEFI 进入
  • CPU眼里的: MMU

    一 MMU与空间独立性 内存管理单元 memory management unit P1P2为两个进程 它们之间存在空间独立性 p1与p2的a虽然同一虚拟内存 但经过MMU会映射在物理内存的不同地址 真正的物理内存空间就是天空 每个进程就是
  • adas记录仪app_4K旗舰丨盯盯拍MINI5智能行车记录仪荣耀新生!

    2020年5月19日 盯盯拍MINI5 4K旗舰行车记录仪正式发布 本次新品不仅在影像上实现再一次突破 在传输 存储及远程互联等功能上 也有更多创新升级 同时 盯盯拍MINI5作为畅连通话及AR导航视觉终端 也在最新的荣耀智慧生活新品发布会
  • 相机姿态估计

    目录 一 相机姿态估计原理 二 相机姿态估计实现 一 相机姿态估计原理 首先介绍一下什么是世界坐标系和相机坐标系 世界坐标系是自己定义的一个坐标系 这里我定义世界坐标系是X轴垂直屏幕指向人 Y轴水平向右 Z轴竖直向上 相机坐标系有统一的规定
  • 用matlab绘制幂函数

    用matlab绘制幂函数 下周轮到我做论文汇报了 刚好前两天看了网格水印的文章 就决定汇报前两天看到的那篇论文了 在准备ppt的过程中 绘制了一些幂函数 感觉matlab真的是很强大啊 可以绘制各种曲线 下面就简要介绍一下如何用matlab
  • Python错误笔记:NameError: name 'M' is not defined

    1 在使用name input 时报 NameError name M is not defined的错误 解决方式 使用raw input 代替input 资料 https blog csdn net dq dm article deta
  • iOS protobuf3.1.0使用

    Protobuf简介 Protocol Buffer是google 的一种数据交换的格式 已经在Github开源 目前最新版本是3 1 0 它独立于语言 独立于平台 google 提供了多种语言的实现 Java C C Go 和 Pytho
  • java ResultSet获得总行数

    在Java中 获得ResultSet的总行数的方法有以下几种 第一种 利用ResultSet的getRow方法来获得ResultSet的总行数 Statement stmt con createStatement ResultSet TYP
  • 扩散模型实战(一):基本原理介绍

    扩散模型 Diffusion Model 是 类 分先进的基于物理热 学中的扩散思想的深度学习 成模型 主要包括前向扩散和反向扩散两个过程 成模型除了扩散模型之外 还有出现较早的VAE Variational Auto Encoder 变分