当前位置: 首页 > news >正文

何恺明新作 l-DAE:解构扩散模型

何恺明新作 l-DAE:解构扩散模型

    • 提出背景
      • 扩散模型步骤
      • 如何在不影响数据表征能力的同时简化模型?
      • 如何进一步推动模型向经典DAE靠拢?
      • 如何去除对生成任务设计的DDM中不适用于自监督学习的部分?
      • 如何改进DDM以专注于清晰图像表示的学习?

 


提出背景

论文:https://arxiv.org/pdf/2401.14404.pdf

我们有一堆带噪声的照片,我们的任务是清理这些照片上的噪声,让它们看起来更清晰。

去噪扩散模型(DDM)就像是一个清洁工,它不仅能把照片清理得非常干净,还能通过这个清洁过程学会识别照片中的内容。

但是,这个清洁工原本是被设计来做清洁工作的,人们开始好奇它是怎么学会识别照片内容的。

是因为它清理照片的方式特别(去噪过程),还是因为它在清理时用的一些特殊工具(扩散过程)?

我们的研究就是要探究这个问题。

我们尝试了各种方法,最后发现,关键其实在于这个清洁工如何看待照片中的每一小块内容,把它们转换成更简单的形式来理解。

这有点像是给它一副眼镜,让它能更好地看清楚照片的细节。

通过这个过程,我们设计出了一种简单的方法,让清洁工不仅能清理照片,还能更好地理解照片内容。

我们的方法虽然不是最顶尖的,但比之前的方法有了很大的进步,也让我们看到了未来有更多可能性去改进这个过程。

在这里插入图片描述

图是一种被称为“潜在去噪自编码器”(L-DAE)的技术。它是一种图像处理方法,用于从带有噪声的图片中恢复出清晰的图片。

  1. 原始图像:左下角是一个没有噪声的原始图像,这是一张蝴蝶停在黄色花朵上的照片。

  2. 噪声添加:通过一种技术叫做“片段式主成分分析”(patch-wise PCA),原始图像被转化到一个叫做“潜在空间”的地方,在这个过程中添加了噪声。

    这就是中下角的图像,你可以看到图像变得模糊和杂乱,就像被随机的色块覆盖了一样。

  3. 自编码器:在噪声图像的基础上,一个自编码器开始工作,包括一个编码器和一个解码器。

    编码器的作用是将噪声图像转换为一个更简洁的内部表示,而解码器则尝试从这个表示中重建原始图像。

  4. 去噪图像:最终,自编码器输出了一个去除噪声的图像,这是右下角的图像。

    尽管噪声被去除,图像中的细节和蝴蝶的特征都得以保留。

这个技术的目标是模仿和简化更复杂的去噪扩散模型(DDM),同时尝试保持与经典去噪自编码器(DAE)相似的学习性能。

这张图上方的流程图解释了整个过程:从原始图像开始,通过PCA添加噪声,然后通过自编码器进行编码和解码,最终得到去噪图像。

这种方法是自监督学习的一种形式,这意味着它可以通过观察大量的例子自己学习去噪,而不需要人为指定噪声和去噪之间的关系。

在这里插入图片描述
这幅图是两种不同的机器学习模型,用于处理图像的去噪任务:

  1. 经典的去噪自编码器(DAE):这个模型包括三个部分:

    • 噪声:在输入图像上添加噪声。
    • 编码器:编码器接收带噪声的图像,将其编码到某种内部表示。
    • 解码器:解码器尝试从内部表示中恢复去噪后的图像。
  2. 现代去噪扩散模型(DDM):这个模型是在潜在空间上操作的去噪模型,它包括四个部分:

    • tokenizer:这个组件将原始图像转换成潜在的表示形式。
    • 噪声:就像经典DAE一样,它在潜在表示上添加噪声。
    • 编码器:编码器学习如何处理带噪声的潜在表示。
    • 解码器:解码器从编码器输出的表示中恢复出去噪后的潜在表示,然后可以转换回去噪后的图像。

图中的(a)部分展示的是传统方法,直接在图像空间上添加和预测噪声

而(b)部分展示的是现代方法,如LDM(潜在扩散模型)和DIT(扩散变换器),它们在潜在空间上添加和预测噪声,而不是直接在图像空间上操作。

这种现代方法通常能够更有效地处理高维数据,如图像,因为潜在空间的维度通常远小于原始图像空间的维度,这可以提高处理速度并提升去噪效果。

扩散模型步骤

扩散模型是一类深度生成模型,它们通过模拟数据的扩散过程(即逐渐引入噪声到数据中)来学习数据的分布。

在去噪扩散模型(Denoising Diffusion Models, DDM)中,这一过程被逆转用来生成数据:模型学习如何逐步从噪声中恢复出干净的数据。

下面是解构现代去噪扩散模型的步骤和方法:

  1. Tokenizer(向量化)

    • 这一步是将高维的图像数据映射到一个低维的潜在空间(latent space)。

     
    潜在空间中的向量可以捕捉到图像的重要特征,但是维度更低,这使得处理起来更高效。

  2. 添加噪声

    • 在潜在空间中,这些低维的表示(latent representations)会被逐渐添加噪声,这个过程称为扩散过程。

     
    添加噪声是一个逐步的过程,在每一步中都会引入一些噪声,直到数据完全变成噪声。

  3. 训练去噪模型

    • 训练一个去噪模型来预测每一步扩散过程中添加的噪声。

     
    这个模型的目标是学习如何从带噪声的潜在表示中恢复出原始的潜在表示。

  4. 采样(生成)过程

    • 通过逆向运行扩散过程来生成新的数据。
    • 从纯噪声开始,模型逐步减少噪声,逐步恢复出清晰的数据。

解构这个模型的关键点在于理解如何在潜在空间上进行扩散和去噪过程,而不是直接在原始的数据空间上进行。

如何在不影响数据表征能力的同时简化模型?

在扩散模型中,到底哪个步骤最重要?

实验发现,让 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>标签&#xff0c;如果没有&#xff0c;可以手动添加。在<mirrors>标签内部添加以下内容&#xff1a; <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorO…...

神经网络基础知识:LeNet的搭建-训练-预测

1.参考视频&#xff1a; 2.1 pytorch官方demo(Lenet)_哔哩哔哩_bilibili 2.总结&#xff1a; &#xff08;1&#xff09;LeNet网络就是 我最开始用来预测mnist数据集的那个网络&#xff0c;简单的2个conv2个maxpool3个linear层 &#xff08;2&#xff09;up主整理的train.py…...

SpringMVC 学习(七)之报文信息转换器 HttpMessageConverter

目录 1 HttpMessageConverter 介绍 2 RequestBody 注解 3 ResponseBody 注解 4 RequestEntity 5 ResponseEntity 6 RestController 注解 1 HttpMessageConverter 介绍 HttpMessageConverter 报文信息转换器&#xff0c;将请求报文&#xff08;如JSON、XML、HTML等&#x…...

浅谈密码学

文章目录 每日一句正能量前言什么是密码学对称加密简述加密语法Kerckhoffs原则常用的加密算法现代密码学的原则威胁模型&#xff08;按强度增加的顺序&#xff09; 密码学的应用领域后记 每日一句正能量 人生在世&#xff0c;谁也不能做到让任何人都喜欢&#xff0c;所以没必要…...

Android 混淆是啥玩意儿?

什么是混淆 Android混淆&#xff0c;是伴随着Android系统的流行而产生的一种Android APP保护技术&#xff0c;用于保护APP不被破解和逆向分析。简单的说&#xff0c;就是将原本正常的项目文件&#xff0c;对其类、方法、字段&#xff0c;重新命名a,b,c…之类的字母&#xff0c…...

【嵌入式——QT】QListWidget

QListWidget类提供了一个基于项的列表小部件&#xff0c;QListWidgetItem是列表中的项&#xff0c;该篇文章中涉及到的功能有添加列表项&#xff0c;插入列表项&#xff0c;删除列表项&#xff0c;清空列表&#xff0c;向上移动列表项&#xff0c;向下移动列表项。 常用API a…...

爬虫入门到精通_基础篇5(PyQuery库_PyQuery说明,初始化,基本CSS选择器,查找元素,遍历,获取信息,DOM操作)

1 PyQuery说明&#xff1a; PyQuery是python中一个强大而又灵活的网页解析库&#xff0c;如果你觉得正则写起来太麻烦&#xff0c;又觉得BeautifulSoup语法太难记&#xff0c;如果你熟悉jQuery的语法那么&#xff0c;PyQuery就是你绝佳的选择。 安装 pip3 install pyquery2 …...

用冒泡排序模拟C语言中的内置快排函数qsort!

目录 ​编辑 1.回调函数的介绍 2. 回调函数实现转移表 3. 冒泡排序的实现 4. qsort的介绍和使用 5. qsort的模拟实现 6. 完结散花 悟已往之不谏&#xff0c;知来者犹可追 创作不易&#xff0c;宝子们&#xff01;如果这篇文章对你们有帮助的话&#xff0c;别忘了给个免…...

智慧公厕:打造智慧城市环境卫生新标杆

随着科技的不断发展和城市化进程的加速推进&#xff0c;智慧城市建设已经成为各地政府和企业关注的焦点。而作为智慧城市环境卫生管理的基础设施&#xff0c;智慧公厕的建设和发展也备受重视&#xff0c;被誉为智慧城市的新标杆。本文以智慧公厕源头厂家广州中期科技有限公司&a…...

【学习版】Microsoft Office 2021安装破解教程

本文转载自知乎&#xff1a;https://zhuanlan.zhihu.com/p/655653158 由本人二次整理修改 用到的软件为&#xff1a;Office Tool Plus&#xff0c;下载链接&#xff1a;Office Tool Plus 官方网站 - 一键部署 Office (landian.vip) 下载页面&#xff1a;&#xff08;随机找个站…...

基于java Springboot实现课程评分系统设计和实现

基于java Springboot实现课程评分系统设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注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&#xff0c;全称为You Only Look Once: Unified, Real-Time Object Detection&#xff0c;是一种实时目标检测算法。目标检测是计算机视觉领域的一个重要任务&#xff0c;它不仅需要识别图像中的物体类别&#xff0c;还需要确定它们的位置。与分类任务只关注对…...

【Android】更改手机主题导致app数据丢失问题

情景&#xff1a;在使用app过程中更改系统主题&#xff08;比如从浅色主题改为深色主题&#xff09;&#xff0c;这时activity销毁重建了&#xff08;即走了onPause、onStop、onSaveInstanceState、onDestroy、onCreate、onRestoreInstanceState、onStart、onResume的生命周期&…...

Dell R730 2U服务器实践3:安装英伟达上代专业AI训练Nvidia P4计算卡

Dell R730是一款非常流行的服务器&#xff0c;2U的机箱可以放入两张显卡&#xff0c;这次先用一张英伟达上代专业级AI训练卡&#xff1a;P4卡做实验&#xff0c;本文记录安装过程。 简洁步骤&#xff1a; 打开机箱将P4显卡插在4号槽位关闭机箱安装驱动 详细步骤&#xff1a; 对…...

Nacos环境搭建 -- 服务注册与发现

为什么需要服务治理 在未引入服务治理模块之前&#xff0c;服务之间的通信是服务间直接发起并调用来实现的。只要知道了对应服务的服务名称、IP地址、端口号&#xff0c;就能够发起服务通信。比如A服务的IP地址为192.168.1.100:9000&#xff0c;B服务直接向该IP地址发起请求就…...

Linux了解

简介 Linux是一种自由和开放源代码的类UNIX操作系统&#xff0c;由芬兰的Linus Torvalds于1991年首次发布。Linux最初是作为支持英特尔x86架构的个人电脑的一个自由操作系统&#xff0c;现在已经被移植到更多的计算机硬件平台&#xff0c;如手机、平板电脑、路由器、视频游戏控…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...

java 局域网 rtsp 取流 WebSocket 推送到前端显示 低延迟

众所周知 摄像头取流推流显示前端延迟大 传统方法是服务器取摄像头的rtsp流 然后客户端连服务器 中转多了&#xff0c;延迟一定不小。 假设相机没有专网 公网 1相机自带推流 直接推送到云服务器 然后客户端拉去 2相机只有rtsp &#xff0c;边缘服务器拉流推送到云服务器 …...