生成式 AI - Diffusion 模型的数学原理(2)

news2024/11/25 22:50:27

来自 论文《 Denoising Diffusion Probabilistic Model》(DDPM)
论文链接: https://arxiv.org/abs/2006.11239
Hung-yi Lee 课件整理

文章目录

        • 一、基本概念
        • 二、VAE与Diffusion model
        • 三、算法解释
        • 四、训练过程
        • 五、推理过程

一、基本概念

Diffusion model的概念上一篇博客讲过了,很直观,一个Forward Process,是把噪声加到图片里面去,直到看不出原来的图长什么样子;和一个Reverse Process,它做Denoise,先给它一个全部都是噪声的图片,每次Denoise图像都会一点点浮现,直到最后完整的图像被生成。

二、VAE与Diffusion model

Diffusion model和VAE非常相似,VAE有一个Encoder把图像转换为latent representation,然后使用一个Decoder把这个latent representation还原成图片;Diffusion model 可以想象成加噪声的过程就是在做Encoder,只是这个Encoder不是一个神经网络,不是学习出来的,噪声加进去的过程是固定好的,它不需要学习,是人设计的,通过加噪声的过程把一张图片变成只有杂训的图片,看不出来里面有什么,这个只有杂训的图片就相当于VAE里面的latent representation,然后Denoise的过程就相当于VAE里面的Encoder,把都是杂训的图还原成原来的图。

三、算法解释

DDPM原始论文里面算法原理就是这样两个图,上一篇博客提到这里暗藏玄机,如果你仔细读一下这个算法似乎和上一篇博客讲的内容有些不一样,我们先来看看这个算法里面在做什么。

四、训练过程

先来看看训练的算法。
第一行,首先是做repeat,从第二行到第五行,直到converged为止。
第二行,代码讲的是,需要先sample一个样本X0,通常我们把X0当作干净的图。
第三行,sample一个t,从1到T之间sample一个整数出来,比如说T是1000,就是从1到1000sample一个整数出来,比如说980。
第四行, ε \varepsilon ε 是从一个标准分布中sample出来的,这个标准分布的均值是0,方差是I,这个 ε \varepsilon ε 的大小和图片的大小一样,它里面都是杂训,看不到有意义的信息。
第五行,比较复杂,红色框里面做的事情是把X0和 ε \varepsilon ε 做权重加权,这里的权重是事先定好的,从 α ˉ 1 \bar{\alpha } _{1} αˉ1 α ˉ T \bar{\alpha } _{T} αˉT,它的设置通常是由大到小。这样得到的就是一个有杂训的图,sample的T越大,那么 α \alpha α 就越小, α \alpha α 越小意味着原来的图X0占的比例越小,噪声占的比例越多。

红色方框再往外看是 ϵ θ {\epsilon } _{\theta } ϵθ, 它表示Noise Predictor,它的输入是带杂训的图片和t。

再往外看是学习目标 ϵ {\epsilon } ϵ, 就是我们sample出来的那个噪声。

到这里你会发现,想象中的操作和实际的操作不太一样,想象中是一步一步把噪声加进去的,实际上噪声的加入是通过 α ˉ t \bar{\alpha } _{t} αˉt决定那个噪音的严重程度,一次性加入的,直接混入噪音得到有噪音的图。

五、推理过程

再来看看产生图的过程。
先sample一张全部都是噪声的图。
接下来开始跑这个reverse process把图生成出来,一共要跑T次。
接下来又sample了一个噪声z,后续在细讲。
下面的公式要做的事情是什么呢, x t x_{t} xt是上一个步骤产生出来的图, ϵ θ ( x t , t ) \epsilon _{\theta} (x_{t},t ) ϵθxtt是noise predictor输出的图片,后面再加一个噪声,这个噪声Z又是一个玄机,后续解释。

如果这个式子没有看太懂的话看看下面的图演示帮助理解。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之NavDestination组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之NavDestination组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、NavDestination组件 作为NavRouter组件的子组件,用于显示导…

计网day4

五 网络层 5.1 网络层功能概述 5.2 路由算法 5.3 IP数据报格式 无分类编址CIDR: ARP协议: DHCP协议: ICMP协议: 5.4 IPv6 5.5 RIP协议及距离向量算法 OSPF协议及链路状态算法: BGP协议&#xf…

作为一个程序员,最少要看过这几部电影吧?

计算机专业必看的几部电影 计算机专业必看的几部电影,就像一场精彩的编程盛宴!《黑客帝国》让你穿越虚拟世界,感受高科技的魅力;《社交网络》揭示了互联网巨头的创业之路,《源代码》带你穿越时间解救世界,…

【每天学习一点点 day05】工程化 重新认识npm 02_包(package.json)的概念、模块(node_modules)、范围(scoped

1. 包package About packages and modules | npm Docs (npmjs.com) 1.1. package package.json包的描述性文件 A package is a file or directory that is described by a package.json file. 包是由 package.json 文件描述的文件或目录。 A package must contain a packa…

追赶OpenAI的Sora:Meta开源V-JEPA,让AI学会认识世界!

就在Sora疯狂刷屏那天,还有两款重磅产品发布:一个是谷歌的Gemini 1.5,首个支持100万tokens上下文的大模型;另外一个便是全球科技、社交巨头Meta的V-JEPA。 有趣的是,在功能方面V-JEPA与Sora有很多相似之处&#xff0c…

备战蓝桥杯 Day5

1191:流感传染 【题目描述】 有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得…

用户空间与内核通信(一)

在Linux中,内核空间与用户空间是操作系统中的两个主要部分,它们有着明显的区别和不同的功能。 内核空间: 内核空间是操作系统内核运行的区域,它包括了操作系统内核代码、数据结构和设备驱动程序等。内核空间位于虚拟地址空间的最…

CleanMyMac X2024破解电脑版安装包下载

CleanMyMac X 4.14.6 是 CleanMyMac X 的一个具体版本号。这个版本可能包含了一些新的功能、改进和修复,以提高软件的性能和稳定性。以下是一些关于 CleanMyMac X 4.14.6 的特点和更新内容: 恶意软件保护:CleanMyMac X 4.14.6 继续加强其恶意…

SpringBoot源码解读与原理分析(五)SpringBoot的装配机制

文章目录 2.5 Spring Boot的装配机制2.5.1 ComponentScan2.5.1.1 ComponentScan的基本使用方法2.5.1.2 TypeExcludeFilter(类型排除过滤器)2.5.1.3 AutoConfigurationExcludeFilter(自动配置类排除过滤器) 2.5.2 SpringBootConfiguration2.5.3 EnableAutoConfiguration2.5.3.1 …

Shiro-05-5 分钟入门 shiro 安全框架实战笔记

序言 大家好,我是老马。 前面我们学习了 web 安全之 Spring Security 入门教程 这次我们来一起学习下另一款 java 安全框架 shiro。 什么是Apache Shiro? Apache Shiro是一个功能强大且易于使用的Java安全框架,它为开发人员提供了一种直…

【深度学习笔记】深度学习训练技巧——处理过拟合

处理过拟合 过拟合 定义:对训练集拟合得很好,但在验证集表现较差 神经网络 通常含有大量参数 (数百万甚至数十亿), 容易过拟合 处理策略:参数正则化、早停、随机失活、数据增强 早停 当发现训练损失逐渐下降,但验证集损失逐渐…

【项目管理】CMMI-项目监督和控制

项目监督和控制(Monitoring and Control, MC)的目的是通过周期性地跟踪项目计划的各种性能参数如工作产品的规模、工作量、成本、进度、风险等,不断地了解项目的进展情况,以便当项目实际进展状况显著偏离项目计划时能够及时采取纠…

Apache Flink连载(二十八):Flink细粒度资源管理(1)-适用场景和原理

🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录

Hack The Box-Office

端口扫描&信息收集 使用nmap对靶机进行扫描 nmap -sC -sV 10.10.11.3开放了80端口,并且注意到该ip对应的域名为office.htb,将其加入到hosts文件中访问之 注意到扫描出来的还有robots文件,经过尝试后只有administrator界面是可以访问的 …

程序员的自我修养笔记

导读 本书将详细描述现在流行的Windows和Linux操作系统下各自的可执行文件、 目标文件格式; 普通C/C程序代码如何被编译成目标文件及程序在目标文件中如何存储; 目标文件如何被链接器链接到一起, 并且形成可执行文件; 目标文件在…

大白话说说redux

redux的3个重要概念 store 就是用来存放应用的各种状态的action 就是用来描述应用发生了什么动作的,注意理解他是对动作的描述reducer 就是用来处理应用的动作,并且决定怎么去更新应用存放在store里面的状态。 redux的3个原则 应用的所有状态存储为re…

消息中间件之RocketMQ源码分析(十)

Namesrv启动流程 第一步:脚本和启动参数配置。 启动命令 nohup ./bin/mqnamesrv -c ./conf/namesrv.conf > dev/null 2>&1 & 通过脚本配置启动基本参数,比如配置文件路径、JVM参数,调用NamesrvStartup.main()方法,解析命令行的…

Vue24 收集表单数据 实例

实例 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>收集表单数据</title><script type"text/javascript" src"../js/vue.js"></script></head><body><!-- 收集…

Spring Security基础学习

一、SpringSecurity框架简介 二、SpringSecurity入门案例 三、SpringSecurity Web权限方案 四、SpringSecurity微服务权限方案 五、SpringSecurity原理总结

Eclipse - Expressions Add Watch Expression

Eclipse - Expressions & Add Watch Expression References Window -> Show View -> Other… Show View -> Debug -> Expressions -> Open Debug 模式下出现 Expressions 窗口 Debug 模式下&#xff0c;如果需要查看指定变量或者返回函数的值&#xff0c;直…