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

news2024/11/20 18:36:24

何恺明新作 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相当于使用更简单的厨具来达到相同的烹饪效果。
  • 改进噪声调度类似于调整烤箱温度,更加关注食物烹饪的质量而非速度。
  • 直接在图像空间操作就像是直接在炉子上(图像上)调整火候,而不是依赖定时器(隐空间)的间接指示。

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

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

相关文章

自动驾驶消息传输机制-LCM

需要用到LCM消息通讯,遂研究下。 这里写目录标题 1 LCM简介2. LCM源码分析3 LCM C教程与实例3.1 安装配置及介绍3.2 创建类型定义3.3 初始化LCM3.4 发布publish一个消息3.5 订阅和接收一个消息3.6 LCM进程间通讯3.7 注意事项?3.7.1 当数据结构定义的是数…

希亦、大宇、德国ODI三款哪款清洁力强?无广超声波清洗机实测!

最近超声波清洗机可见到非常火爆,一款产品在火爆的情况下都会有不信任的声音出现,超声波清洗机真的可以把眼镜洗干净吗?就一个超声波能洗东西?真的不是在交智商税吗?等等这种问题已经看到不止一次了,今天小…

uniapp:使用DCloud的uni-push推送消息通知(在线模式)java实现

uniapp:使用DCloud的uni-push推送消息通知(在线模式)java实现 1.背景 今天开发app的时候遇到一个需求: 业务在出发特定条件的时候向对应的客户端推送消息通知。 为什么选择在线模式,因为我们使用的是德邦类似的手持终端&#xf…

Linux环境安装jira

jira 是项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。 jira 软件安装包直接搜官网,然后可以选择免费的来下载: 安装 jira 之前,需要 Java 和 mysql 环境的…

unity初学问题:如何修改图片的坐标

如图,我们想要修改图片的轴心点坐标(Pivot) 选择图片组 打开编辑器在里面修改即可(最下面的Custom Pivot)

前端基础面试题(一)

摘要:最近,看了下慕课2周刷完n道面试题,记录下... 1.请说明Ajax、Fetch、Axios三者的区别 三者都用于网络请求,但维度不同: Ajax(Asynchronous Javascript ang XML),是一种在不重新…

如何使用Logstash搜集日志传输到es集群并使用kibana检测

引言:上一期我们进行了对Elasticsearch和kibana的部署,今天我们来解决如何使用Logstash搜集日志传输到es集群并使用kibana检测 目录 Logstash部署 1.安装配置Logstash (1)安装 (2)测试文件 &#xff…

【DDD】学习笔记-领域驱动设计体系

从统一语言到限界上下文,从限界上下文到上下文映射,从领域分析建模到领域设计建模,再从领域设计建模到领域实现建模,我将软件架构设计、面向对象设计、场景驱动设计和测试驱动开发有机地融合起来,贯穿于领域驱动设计的…

mac打不开xxx软件, 因为apple 无法检查其是否包含恶意

1. 安全性与隐私下面的允许来源列表,有些版本中的‘任何来源’选项被隐藏了,有些从浏览器下载的软件需要勾选这个选项才能安装 打开‘任何来源’选项 sudo spctl --master-disable 关闭‘任何来源’选项 sudo spctl --master-enable

UE4c++ ConvertActorsToStaticMesh

UE4c ConvertActorsToStaticMesh ConvertActorsToStaticMesh UE4c ConvertActorsToStaticMesh创建Edior模块(最好是放Editor模块毕竟是编辑器代码)创建UBlueprintFunctionLibraryUTestFunctionLibrary.hUTestFunctionLibrary.cpp:.Build.cs 目标:为了大量…

探索IP地址定位工具:解读IP数据云的功能与优势

在当今数字化时代,IP地址定位工具成为了许多领域中不可或缺的技术支持,为网络安全、地理定位服务和个性化推荐等提供了重要数据支持。其中,IP数据云作为一种领先的IP地址定位工具,具有一系列功能和优势,本文将对其进行…

k8s service的概念以及创建方法

Service 的功能: Service主要用于提供网络服务,通过Service的定义,能够为客户端应用提供稳定的访问地址(域名或IP地址)和负载均衡功能,以及屏蔽后端Endpoint的变化,是K8s实现微服务的核心资源。…

如何选择科技公司或者技术团队来开发软件项目呢

最近有客户问我们为什么同样软件项目不同公司报价和工期差异很大,我们给他解释好久才讲清楚,今天整理一下打算写一篇文章来总结一下,有需要开发朋友可以参考,我们下次遇到客户也可以直接转发文章给客户自己看。 我们根据我们自己报…

计算机网络:IP

引言: IP协议是互联网协议族中的核心协议之一,负责为数据包在网络中传输提供路由寻址。它定义了数据包如何在互联网上从源地址传输到目的地址的规则和流程。IP协议使得各种不同类型的网络设备能够相互通信,实现了全球范围内的信息交换。 目录…

人像背景分割SDK,智能图像处理

美摄科技人像背景分割SDK解决方案:引领企业步入智能图像处理新时代 随着科技的不断进步,图像处理技术已成为许多行业不可或缺的一部分。为了满足企业对于高质量、高效率人像背景分割的需求,美摄科技推出了一款领先的人像背景分割SDK&#xf…

Cluster-Level Contrastive Learning for Emotion Recognition in Conversations

对话情绪识别的聚类级对比学习 摘要一、介绍二、相关工作2.1 对话情感识别2.2 对比学习 三、方法3.1 任务定义和模型概述3.2 上下文感知的话语编码器3.3 使用适配器进行知识注入3.4 有监督的集群级对比学习3.4.1情感原型3.4.2集群级别对比学习 3.5 模型训练 四 实验设置4.1 数据…

idea 更新maven java版本变化

今天遇到个问题就是&#xff0c;点击maven的reload&#xff0c;会导致setting 里的java compiler 版本变化 这里的话&#xff0c;应该是settings.xml文件里面的这个限定死了&#xff0c;修改一下或者去掉就可以了 <profile><id>JDK-1.8</id><activatio…

Qt下使用modbus-c库实现PLC线圈/保持寄存器的读写

系列文章目录 提示&#xff1a;这里是该系列文章的所有文章的目录 第一章&#xff1a;Qt下使用ModbusTcp通信协议进行PLC线圈/保持寄存器的读写&#xff08;32位有符号数&#xff09; 第二章&#xff1a;Qt下使用modbus-c库实现PLC线圈/保持寄存器的读写 文章目录 系列文章目录…

如何使用程序通过OCR识别解析PDF中的表格

https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/ppstructure/table/README_ch.md#41-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B Paddle-structure是目前我们能找到的可以做中英文版面分析较好的一个基础模型&#xff0c;其开源版可以识别十类页面元素。这篇文章介绍…

VL817-Q7 USB3.0 HUB芯片 适用于扩展坞 工控机 显示器

VL817-Q7 USB3.1 GEN1 HUB芯片 VL817-Q7 USB3.1 GEN1 HUB芯片 VIA Lab的VL817是一款现代USB 3.1 Gen 1集线器控制器&#xff0c;具有优化的成本结构和完全符合USB标准3.1 Gen 1规范&#xff0c;包括ecn和2017年1月的合规性测试更新。VL817提供双端口和双端口4端口配置&…