【Diffusion】李宏毅2023机器学习Diffusion笔记

文章目录

  • 1 想法概述
  • 2 实际过程
    • 阶段1 Add Noise
    • 阶段2 Denoise
  • 3 数学原理
  • 4 为什么推理时要额外加入noise
  • 5 一些不知道对不对的Summary

1 想法概述

从一张充满噪声的图中不断denoise,最终得到一张clear的图片。为了确定当前图片中噪声占比的大小,同时输入原图片和参数 t t t,参数 t t t用于标识一张图片中的噪声占比含量。

显然迭代第1次时图片的噪声含量和迭代第999次是不同的,因此需要输入这种信息t来进行标识。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7CjpzYoX-1692290104065)(【Diffusion】李宏毅2023机器学习Diffusion笔记/image-20230814190229199.png)]

2 实际过程

阶段1 Add Noise

首先,准备好一组确定的参数 α 1 ˉ , α 2 ˉ , … , α T ˉ \bar{\alpha_1},\bar{\alpha_2},\dots,\bar{\alpha_T} α1ˉ,α2ˉ,,αTˉ,用以表示时间步 t t t下样本和噪声的混合情况, t t t越大,噪声占比越高。然后重复以下过程直至收敛:

  1. 采样

    1. 从真实样本集中取出一个样本 x 0 x_0 x0

    2. [ 1 , T ] [1,T] [1,T]的整数中采样出 t t t来表示时间步

    3. 从标准正态分布中采样出噪声 ϵ \epsilon ϵ

  2. 构造带噪声样本 x = α t ˉ x 0 + 1 − α t ˉ ϵ x=\sqrt{\bar{\alpha_t}}x_0+ \sqrt{1-\bar{\alpha_t}} \epsilon x=αtˉ x0+1αtˉ ϵ

  3. 将构造样本 x x x和时间步 t t t一同输入噪声预测器 ϵ θ ( ) \epsilon_\theta() ϵθ(),得到预测噪声 ϵ θ ( x , t ) \epsilon_\theta(x,t) ϵθ(x,t)

  4. 目标函数为 ϵ θ ( x , t ) \epsilon_\theta(x,t) ϵθ(x,t)和采样出的真实噪声 ϵ \epsilon ϵ M S E MSE MSE

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D7mqKw6q-1692290104066)(【Diffusion】李宏毅2023机器学习Diffusion笔记/image-20230814194524251.png)]

阶段2 Denoise

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-21zUXHgj-1692290104066)(【Diffusion】李宏毅2023机器学习Diffusion笔记/image-20230814201251917.png)]

3 数学原理

  1. 极大似然估计近似等价于最小化KL散度(表示两个分布的相似性):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S3lKC0VE-1692290104066)(【Diffusion】李宏毅2023机器学习Diffusion笔记/image-20230817221857642.png)]

  1. 对任何分布 q ( z ∣ x ) q(z|x) q(zx),有:

log ⁡ P θ ( x ) ≥ ∫ z q ( z ∣ x ) log ⁡ P ( z , x ) q ( z ∣ x ) d z = E q ( z ∣ x ) [ log ⁡ P ( z , x ) q ( z ∣ x ) ] \log P_\theta(x) \ge \int_{z}q(z|x)\log \frac{P(z,x)}{q(z|x)}dz = E_{q(z|x)}[\log \frac{P(z,x)}{q(z|x)}] logPθ(x)zq(zx)logq(zx)P(z,x)dz=Eq(zx)[logq(zx)P(z,x)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EMBIDtfT-1692290104067)(【Diffusion】李宏毅2023机器学习Diffusion笔记/image-20230817222057765.png)]

  1. 所以对DDPM来说:

log ⁡ P θ ( x ) ≥ E q ( x 1 : x T ∣ x 0 ) [ log ⁡ P ( x 0 : x T ) q ( x 1 : x T ∣ x 0 ) ] \log P_\theta(x) \ge E_{q(x_1:x_T|x_0)}[\log \frac{P(x_0:x_T)}{q(x_1:x_T|x_0)}] logPθ(x)Eq(x1:xTx0)[logq(x1:xTx0)P(x0:xT)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FqgMWPQQ-1692290104067)(【Diffusion】李宏毅2023机器学习Diffusion笔记/image-20230817222642961.png)]

  1. 结合正态分布的可加性:做N次独立的正态sampling,可能通过一次的sampling就能解决。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oyzChf3t-1692290104067)(【Diffusion】李宏毅2023机器学习Diffusion笔记/image-20230817225900399.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w4gtTsG6-1692290104067)(【Diffusion】李宏毅2023机器学习Diffusion笔记/image-20230817231727538.png)]

  1. 对式3不断变换,最后可得(这个式子的过程可以不用看,也并不复杂,但是麻烦,理解结论就好):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SY9fKeIh-1692290104068)(【Diffusion】李宏毅2023机器学习Diffusion笔记/image-20230817232929967.png)]

然后再经过一系列的运算求出来 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1|x_t,x_0}) q(xt1∣xt,x0)依然是高斯分布,表示首尾 x 0 , x T x_0,x_T x0,xT固定住,产生 x t − 1 x_{t-1} xt1的概率,是一个和network无关的分布。而 P ( x t − 1 ∣ x t ) P(x_{t-1}|x_t) P(xt1xt)是由网络决定的,我们不考虑它的variance,只考虑mean。如果我们希望这两个分布越接近越好,那就想办法让两个分布的mean越接近越好。
在这里插入图片描述

化简:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B0OFKfc5-1692290104068)(【Diffusion】李宏毅2023机器学习Diffusion笔记/image-20230817233152037.png)]

实际需要预测出的部分:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OpE6Y02O-1692290104069)(【Diffusion】李宏毅2023机器学习Diffusion笔记/image-20230817234731710.png)]

4 为什么推理时要额外加入noise

李宏毅老师的一点Guess,生成式任务,概率最大的结果,未必就是最好的结果。人写的文章用词可能更suprising。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BxAIdBaQ-1692290104069)(【Diffusion】李宏毅2023机器学习Diffusion笔记/image-20230817235534101.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w8wYcaVO-1692290104069)(【Diffusion】李宏毅2023机器学习Diffusion笔记/image-20230817235706919.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vmK39t6D-1692290104069)(【Diffusion】李宏毅2023机器学习Diffusion笔记/ab7e3c6482dc90f4bfc5857991f4375.jpg)]

5 一些不知道对不对的Summary

  • 希望近似 P d a t a ( x ) P_{data}(x) Pdata(x) P θ ( x ) P_\theta(x) Pθ(x)的分布,而对给定的 x x x,使 P θ ( x ) P_\theta(x) Pθ(x)最大化可以转换为使其下界最大化,从而转换为使 E q ( x 1 : x T ∣ x 0 ) [ log ⁡ P ( x 0 : x T ) q ( x 1 : x T ∣ x 0 ) ] E_{q(x_1:x_T|x_0)}[\log \frac{P(x_0:x_T)}{q(x_1:x_T|x_0)}] Eq(x1:xTx0)[logq(x1:xTx0)P(x0:xT)]最大化。

  • 在假设 x t = β t x t − 1 + 1 − β t z t − 1 x_t=\sqrt{\beta_t}x_{t-1}+\sqrt{1-\beta_t}z_{t-1} xt=βt xt1+1βt zt1的前提下,可以推出 x t = α t ˉ x 0 + 1 − α t ˉ z x_t=\sqrt{\bar{\alpha_t}}x_{0}+\sqrt{1-\bar{\alpha_t}}z xt=αtˉ x0+1αtˉ z

  • 从而可以进一步化简 E q ( x 1 : x T ∣ x 0 ) [ log ⁡ P ( x 0 : x T ) q ( x 1 : x T ∣ x 0 ) ] E_{q(x_1:x_T|x_0)}[\log \frac{P(x_0:x_T)}{q(x_1:x_T|x_0)}] Eq(x1:xTx0)[logq(x1:xTx0)P(x0:xT)]为三项,其余两项与Network无关,可只考虑中间一项,该项由 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1|x_t,x_0}) q(xt1∣xt,x0) P ( x t − 1 ∣ x t ) P(x_{t-1}|x_t) P(xt1xt)的KL散度之和组成,

  • q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt1xt,x0)表示首尾 x 0 , x T x_0,x_T x0,xT固定住产生 x t − 1 x_{t-1} xt1的概率,可求得是一个和network无关的高斯分布,均值可以表示为:

  • P ( x t − 1 ∣ x t ) P(x_{t-1}|x_t) P(xt1xt)是由网络决定的,我们不考虑它的variance,只考虑mean。

  • 如果我们希望这两个分布越接近越好,那就想办法让两个分布的mean越接近越好。而上式中,仅有 ϵ \epsilon ϵ需要确定,因此我们希望网络能够预测这个值,从而完成推理。预测出这一项 ϵ \epsilon ϵ的过程,可以看作为从 x 0 x_0 x0 x t x_t xt预测出 x t − 1 x_{t-1} xt1的过程。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【三维重建】【深度学习】【数据集】基于COLMAP制作自己的NeuS(DTU格式)数据集

【三维重建】【深度学习】【数据集】基于COLMAP制作自己的NeuS(DTU格式)数据集 提示:最近开始在【三维重建】方面进行研究,记录相关知识点,分享学习中遇到的问题已经解决的方法。 文章目录 【三维重建】【深度学习】【数据集】基于COLMAP制作自己的NeuS(DTU格式)数据集前言下载…

人工智能与云计算实训室建设方案

一、 人工智能与云计算系统概述 人工智能(Artificial Intelligence,简称AI)是一种模拟人类智能的科学和工程,通过使用计算机系统来模拟、扩展和增强人类的智能能力。人工智能涉及多个领域,包括机器学习、深度学习、自然…

搭载KaihongOS的工业平板、机器人、无人机等产品通过3.2版本兼容性测评,持续繁荣OpenHarmony生态

近日,搭载深圳开鸿数字产业发展有限公司(简称“深开鸿”)KaihongOS软件发行版的工业平板、机器人、无人机等商用产品均通过OpenAtom OpenHarmony(以下简称“OpenHarmony”)3.2 Release版本兼容性测评,获颁O…

STM32 F103C8T6学习笔记10:OLED显示屏GIF动图取模—简易时钟—动图手表的制作~

今日尝试做一款有动图的OLED实时时钟,本文需要现学一个OLED的GIF动图取模 其余需要的知识点有不会的可以去我 STM32 F103C8T6学习笔记 系列专栏自己查阅把,闲话不多,直接开肝~~~ 文章提供源码,测试工程下载,测试效…

JVM——配置常用参数,GC调优策略

文章目录 JVM 配置常用参数Java内存区域常见配置参数概览堆参数回收器参数项目中常用配置常用组合 常用 GC 调优策略GC 调优原则GC 调优目的GC 调优策略 JVM 配置常用参数 Java内存区域常见配置参数概览堆参数;回收器参数;项目中常用配置;常…

【云原生、k8s】Calico网络策略

第四阶段 时 间:2023年8月17日 参加人:全班人员 内 容: Calico网络策略 目录 一、前提配置 二、Calico网络策略基础 1、创建服务 2、启用网络隔离 3、测试网络隔离 4、允许通过网络策略进行访问 三、Calico网络策略进阶 1、创…

政务、商务数据资源有效共享:让数据上“链”,记录每一个存储过程!

数据上链是目前“区块链”最常见的场景。因为链上所有参与方都分享了统一的事实来源,所有人都可以即时获得最新的信息,数据可用不可见。因此,不同参与方之间的协作效率得以大幅提高。同时,因为区块链上的数据难以篡改,…

【数据挖掘】使用 Python 分析公共数据【01/10】

一、说明 本文讨论了如何使用 Python 使用 Pandas 库分析官方 COVID-19 病例数据。您将看到如何从实际数据集中收集见解,发现乍一看可能不那么明显的信息。特别是,本文中提供的示例说明了如何获取有关疾病在不同国家/地区传播速度的信息。 二、准备您的…

开学有哪些好用电容笔值得买?ipad触控笔推荐平价

因为有了Apple Pencil,使得iPad就成了一款便携的生产力配件,其优势在于,电容笔搭配上iPad可以让专业的绘画师在iPad上作画,而且还能画出各种粗细不一的线条,对于有书写需求的学生党来讲,还是很有帮助的。但本人不敢想像…

如何编写一个通用的函数?

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 金句分享:…

Xxl-job安装部署以及SpringBoot集成Xxl-job使用

1、安装Xxl-job: 可以使用docker拉取镜像部署和源码编译两种方式,这里选择源码编译安装。 代码拉取地址: https://github.com/xuxueli/xxl-job/tree/2.1.2 官方开发文档: https://www.xuxueli.com/xxl-job/#%E3%80%8A%E5%88%…

5G科技防汛,助力守护一方平安

“立秋虽已至,炎夏尚还在”,受台风席卷以及季节性影响全国多地正面临强降水的严峻挑战。“落雨又顺秋,绵绵雨不休”,正值“七下八上” 防汛关键时期,贵州省水文水资源局已全面进入备战状态。 为确保及时响应做好防汛抢…