何恺明新作 l-DAE:解构扩散模型
何恺明新作 l-DAE:解构扩散模型
- 提出背景
- 扩散模型步骤
- 如何在不影响数据表征能力的同时简化模型?
- 如何进一步推动模型向经典DAE靠拢?
- 如何去除对生成任务设计的DDM中不适用于自监督学习的部分?
- 如何改进DDM以专注于清晰图像表示的学习?
提出背景
论文:https://arxiv.org/pdf/2401.14404.pdf
我们有一堆带噪声的照片,我们的任务是清理这些照片上的噪声,让它们看起来更清晰。
去噪扩散模型(DDM)就像是一个清洁工,它不仅能把照片清理得非常干净,还能通过这个清洁过程学会识别照片中的内容。
但是,这个清洁工原本是被设计来做清洁工作的,人们开始好奇它是怎么学会识别照片内容的。
是因为它清理照片的方式特别(去噪过程),还是因为它在清理时用的一些特殊工具(扩散过程)?
我们的研究就是要探究这个问题。
我们尝试了各种方法,最后发现,关键其实在于这个清洁工如何看待照片中的每一小块内容,把它们转换成更简单的形式来理解。
这有点像是给它一副眼镜,让它能更好地看清楚照片的细节。
通过这个过程,我们设计出了一种简单的方法,让清洁工不仅能清理照片,还能更好地理解照片内容。
我们的方法虽然不是最顶尖的,但比之前的方法有了很大的进步,也让我们看到了未来有更多可能性去改进这个过程。

图是一种被称为“潜在去噪自编码器”(L-DAE)的技术。它是一种图像处理方法,用于从带有噪声的图片中恢复出清晰的图片。
-
原始图像:左下角是一个没有噪声的原始图像,这是一张蝴蝶停在黄色花朵上的照片。
-
噪声添加:通过一种技术叫做“片段式主成分分析”(patch-wise PCA),原始图像被转化到一个叫做“潜在空间”的地方,在这个过程中添加了噪声。
这就是中下角的图像,你可以看到图像变得模糊和杂乱,就像被随机的色块覆盖了一样。
-
自编码器:在噪声图像的基础上,一个自编码器开始工作,包括一个编码器和一个解码器。
编码器的作用是将噪声图像转换为一个更简洁的内部表示,而解码器则尝试从这个表示中重建原始图像。
-
去噪图像:最终,自编码器输出了一个去除噪声的图像,这是右下角的图像。
尽管噪声被去除,图像中的细节和蝴蝶的特征都得以保留。
这个技术的目标是模仿和简化更复杂的去噪扩散模型(DDM),同时尝试保持与经典去噪自编码器(DAE)相似的学习性能。
这张图上方的流程图解释了整个过程:从原始图像开始,通过PCA添加噪声,然后通过自编码器进行编码和解码,最终得到去噪图像。
这种方法是自监督学习的一种形式,这意味着它可以通过观察大量的例子自己学习去噪,而不需要人为指定噪声和去噪之间的关系。

这幅图是两种不同的机器学习模型,用于处理图像的去噪任务:
-
经典的去噪自编码器(DAE):这个模型包括三个部分:
- 噪声:在输入图像上添加噪声。
- 编码器:编码器接收带噪声的图像,将其编码到某种内部表示。
- 解码器:解码器尝试从内部表示中恢复去噪后的图像。
-
现代去噪扩散模型(DDM):这个模型是在潜在空间上操作的去噪模型,它包括四个部分:
- tokenizer:这个组件将原始图像转换成潜在的表示形式。
- 噪声:就像经典DAE一样,它在潜在表示上添加噪声。
- 编码器:编码器学习如何处理带噪声的潜在表示。
- 解码器:解码器从编码器输出的表示中恢复出去噪后的潜在表示,然后可以转换回去噪后的图像。
图中的(a)部分展示的是传统方法,直接在图像空间上添加和预测噪声
而(b)部分展示的是现代方法,如LDM(潜在扩散模型)和DIT(扩散变换器),它们在潜在空间上添加和预测噪声,而不是直接在图像空间上操作。
这种现代方法通常能够更有效地处理高维数据,如图像,因为潜在空间的维度通常远小于原始图像空间的维度,这可以提高处理速度并提升去噪效果。
扩散模型步骤
扩散模型是一类深度生成模型,它们通过模拟数据的扩散过程(即逐渐引入噪声到数据中)来学习数据的分布。
在去噪扩散模型(Denoising Diffusion Models, DDM)中,这一过程被逆转用来生成数据:模型学习如何逐步从噪声中恢复出干净的数据。
下面是解构现代去噪扩散模型的步骤和方法:
-
Tokenizer(向量化):
- 这一步是将高维的图像数据映射到一个低维的潜在空间(latent space)。
潜在空间中的向量可以捕捉到图像的重要特征,但是维度更低,这使得处理起来更高效。 -
添加噪声:
- 在潜在空间中,这些低维的表示(latent representations)会被逐渐添加噪声,这个过程称为扩散过程。
添加噪声是一个逐步的过程,在每一步中都会引入一些噪声,直到数据完全变成噪声。 -
训练去噪模型:
- 训练一个去噪模型来预测每一步扩散过程中添加的噪声。
这个模型的目标是学习如何从带噪声的潜在表示中恢复出原始的潜在表示。 -
采样(生成)过程:
- 通过逆向运行扩散过程来生成新的数据。
- 从纯噪声开始,模型逐步减少噪声,逐步恢复出清晰的数据。
解构这个模型的关键点在于理解如何在潜在空间上进行扩散和去噪过程,而不是直接在原始的数据空间上进行。
如何在不影响数据表征能力的同时简化模型?
在扩散模型中,到底哪个步骤最重要?
实验发现,让 DAE 得到好表征的是低维隐空间,而不是Tokenizer(向量化)。
- 说明复杂的tokenizer可能不是学习好的数据表示所必需的
- 简化tokenizer相当于使用更简单的厨具来达到相同的烹饪效果
如何在不影响数据表征能力的同时简化模型?
- 实验发现,可通过替换复杂的VQGAN tokenizer为更简单的PCA tokenizer
不同的图像处理方法:
-
TA们被用于将图像分解成较小的片段,进而进行深入的特征提取。

-
Patch-wise VAE 分词器: 这是一种处理图像的方法,使用了一种称为自编码器的技术,但去掉了一些复杂的数学限制,让它变得更简单。
-
Patch-wise AE 分词器: 这个方法更简单,只是在图像的小块上应用基本的编码和解码过程。
-
Patch-wise PCA 分词器: 这是最基本的方法,用一种称为主成分分析的技术来处理图像的小块。PCA 是一种不需要复杂训练就能找到图像主要特征的方法。

即使是最基本的PCA方法也表现出色,甚至简单的图像块处理方法有时候比复杂的方法效果更好。
所以,完全可以用简单的代替复杂的。
- 把复杂的VQGAN tokenizer 换为 更简单的PCA tokenizer。
如何进一步推动模型向经典DAE靠拢?
直接在图像空间操作有助于理解和提高模型的直观性和可解释性。
使用逆PCA直接在图像空间操作,而非仅在隐空间。
如何去除对生成任务设计的DDM中不适用于自监督学习的部分?
因为类别条件化处理会限制模型学习更普遍的数据表示。
移除DDM的类别条件化处理。
如何改进DDM以专注于清晰图像表示的学习?
原始噪声调度太侧重于噪声图像,不利于学习清晰图像表示。
替换噪声调度,让模型更多地关注清晰的图像。
如果将这个过程比作学习做菜的过程,那么:
- 去除类别条件化处理就像是摒弃菜谱中不必要的复杂步骤,专注于基本的烹饪技巧。
- 简化tokenizer相当于使用更简单的厨具来达到相同的烹饪效果。
- 改进噪声调度类似于调整烤箱温度,更加关注食物烹饪的质量而非速度。
- 直接在图像空间操作就像是直接在炉子上(图像上)调整火候,而不是依赖定时器(隐空间)的间接指示。
相关文章:
何恺明新作 l-DAE:解构扩散模型
何恺明新作 l-DAE:解构扩散模型 提出背景扩散模型步骤如何在不影响数据表征能力的同时简化模型?如何进一步推动模型向经典DAE靠拢?如何去除对生成任务设计的DDM中不适用于自监督学习的部分?如何改进DDM以专注于清晰图像表示的学习…...
【数学建模获奖经验】2023第八届数维杯数学建模:华中科技大学本科组创新奖获奖分享
2024年第九届数维杯大学生数学建模挑战赛将于:2024年5月10日08:00-5月13日09:00举行,近期同学们都开始陆续进入了备赛阶段,今天我们就一起来看看上一届优秀的创新奖选手都有什么获奖感言吧~希望能帮到更多热爱数学建模的同学。据说点赞的大佬…...
Kubernetes(k8s第二部分)
资源清单相当于剧本 什么是资源: k8s中所有的内容都抽象为资源,资源实例化后,叫做对象。 1.K8S中的资源 集群资源分类 名称空间级别: kubeadm k8s kube-system kubectl get pod -n default 工作负载型资源,&a…...
mac新环境
1、maven 设置阿里云镜像 打开Maven的settings.xml文件。找到<mirrors>标签,如果没有,可以手动添加。在<mirrors>标签内部添加以下内容: <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorO…...
神经网络基础知识:LeNet的搭建-训练-预测
1.参考视频: 2.1 pytorch官方demo(Lenet)_哔哩哔哩_bilibili 2.总结: (1)LeNet网络就是 我最开始用来预测mnist数据集的那个网络,简单的2个conv2个maxpool3个linear层 (2)up主整理的train.py…...
SpringMVC 学习(七)之报文信息转换器 HttpMessageConverter
目录 1 HttpMessageConverter 介绍 2 RequestBody 注解 3 ResponseBody 注解 4 RequestEntity 5 ResponseEntity 6 RestController 注解 1 HttpMessageConverter 介绍 HttpMessageConverter 报文信息转换器,将请求报文(如JSON、XML、HTML等&#x…...
浅谈密码学
文章目录 每日一句正能量前言什么是密码学对称加密简述加密语法Kerckhoffs原则常用的加密算法现代密码学的原则威胁模型(按强度增加的顺序) 密码学的应用领域后记 每日一句正能量 人生在世,谁也不能做到让任何人都喜欢,所以没必要…...
Android 混淆是啥玩意儿?
什么是混淆 Android混淆,是伴随着Android系统的流行而产生的一种Android APP保护技术,用于保护APP不被破解和逆向分析。简单的说,就是将原本正常的项目文件,对其类、方法、字段,重新命名a,b,c…之类的字母,…...
【嵌入式——QT】QListWidget
QListWidget类提供了一个基于项的列表小部件,QListWidgetItem是列表中的项,该篇文章中涉及到的功能有添加列表项,插入列表项,删除列表项,清空列表,向上移动列表项,向下移动列表项。 常用API a…...
爬虫入门到精通_基础篇5(PyQuery库_PyQuery说明,初始化,基本CSS选择器,查找元素,遍历,获取信息,DOM操作)
1 PyQuery说明: PyQuery是python中一个强大而又灵活的网页解析库,如果你觉得正则写起来太麻烦,又觉得BeautifulSoup语法太难记,如果你熟悉jQuery的语法那么,PyQuery就是你绝佳的选择。 安装 pip3 install pyquery2 …...
用冒泡排序模拟C语言中的内置快排函数qsort!
目录 编辑 1.回调函数的介绍 2. 回调函数实现转移表 3. 冒泡排序的实现 4. qsort的介绍和使用 5. qsort的模拟实现 6. 完结散花 悟已往之不谏,知来者犹可追 创作不易,宝子们!如果这篇文章对你们有帮助的话,别忘了给个免…...
智慧公厕:打造智慧城市环境卫生新标杆
随着科技的不断发展和城市化进程的加速推进,智慧城市建设已经成为各地政府和企业关注的焦点。而作为智慧城市环境卫生管理的基础设施,智慧公厕的建设和发展也备受重视,被誉为智慧城市的新标杆。本文以智慧公厕源头厂家广州中期科技有限公司&a…...
【学习版】Microsoft Office 2021安装破解教程
本文转载自知乎:https://zhuanlan.zhihu.com/p/655653158 由本人二次整理修改 用到的软件为:Office Tool Plus,下载链接:Office Tool Plus 官方网站 - 一键部署 Office (landian.vip) 下载页面:(随机找个站…...
基于java Springboot实现课程评分系统设计和实现
基于java Springboot实现课程评分系统设计和实现 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获取源…...
git操作基本指令
1.查看用户名 git config user.name 2.查看密码 git config user.password 3.查看邮箱 git config user.email 4.修改用户名 git config --global user.name "xxx(新用户名)" 5.修改密码 git config --global user.password "xxx(新密码)" 6.修改…...
YOLO算法
YOLO介绍 YOLO,全称为You Only Look Once: Unified, Real-Time Object Detection,是一种实时目标检测算法。目标检测是计算机视觉领域的一个重要任务,它不仅需要识别图像中的物体类别,还需要确定它们的位置。与分类任务只关注对…...
【Android】更改手机主题导致app数据丢失问题
情景:在使用app过程中更改系统主题(比如从浅色主题改为深色主题),这时activity销毁重建了(即走了onPause、onStop、onSaveInstanceState、onDestroy、onCreate、onRestoreInstanceState、onStart、onResume的生命周期&…...
Dell R730 2U服务器实践3:安装英伟达上代专业AI训练Nvidia P4计算卡
Dell R730是一款非常流行的服务器,2U的机箱可以放入两张显卡,这次先用一张英伟达上代专业级AI训练卡:P4卡做实验,本文记录安装过程。 简洁步骤: 打开机箱将P4显卡插在4号槽位关闭机箱安装驱动 详细步骤: 对…...
Nacos环境搭建 -- 服务注册与发现
为什么需要服务治理 在未引入服务治理模块之前,服务之间的通信是服务间直接发起并调用来实现的。只要知道了对应服务的服务名称、IP地址、端口号,就能够发起服务通信。比如A服务的IP地址为192.168.1.100:9000,B服务直接向该IP地址发起请求就…...
Linux了解
简介 Linux是一种自由和开放源代码的类UNIX操作系统,由芬兰的Linus Torvalds于1991年首次发布。Linux最初是作为支持英特尔x86架构的个人电脑的一个自由操作系统,现在已经被移植到更多的计算机硬件平台,如手机、平板电脑、路由器、视频游戏控…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
