【多模态大模型】Latent Diffusion:在潜在空间而非像素空间进行操作,从而减少了计算复杂度

Latent Diffusion

      • Stable Diffusion 和 Latent Diffusion
      • 扩散模型的成本问题
        • 子问题1: 高计算成本和训练复杂度
        • 子问题2: 保持生成图像的视觉保真度
        • 子问题3: 实现多模态和高分辨率图像合成
        • 子问题4: 保持图像质量与细节
        • Latent Diffusion 过程:
    • 总结
      • 子问题/子解法1:
      • 子问题/子解法2:
      • 子问题/子解法3:
      • 子问题/子解法4:
      • 子问题/子解法5:
      • 子问题/子解法6:
      • 子问题/子解法7:
      • 子问题/子解法8:

 


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

代码:https://github.com/CompVis/latent-diffusion

 

Stable Diffusion 和 Latent Diffusion

Stable Diffusion和 Latent Diffusion 是两种基于深度学习的图像生成模型,它们在技术上有一定的关系,但也有各自的特点。

  1. Latent Diffusion Models (LDMs):Latent Diffusion Models是一类生成模型,它们通过在一个低维的潜在空间中模拟扩散过程来生成高质量的图像。

这种方法首先将高维数据(如图像)映射到一个低维的潜在空间,然后在这个空间内进行扩散过程的模拟,最后将扩散过程的结果映射回原始数据空间。

这样做的好处是可以减少计算资源的消耗,同时保持生成图像的高质量。

 
2. Stable Diffusion:Stable Diffusion是一种特定的Latent Diffusion Model,它专注于生成高质量的图像。

Stable Diffusion利用了Latent Diffusion的基本原理,但进行了优化和调整,使其更适合于生成稳定且多样化的图像。

这包括使用特定的网络结构、训练技巧和优化算法来提高模型的性能和稳定性。

 
两者之间的关系主要在于Stable Diffusion是基于Latent Diffusion Models的原理开发的,它继承了LDMs在生成图像方面的一些优点,例如能够在潜在空间中有效地模拟复杂的数据分布。同时,Stable Diffusion通过特定的改进和优化,进一步提高了图像生成的质量和效率。

简而言之,Latent Diffusion提供了一种框架,而Stable Diffusion是在这个框架基础上发展出来的具体实现,目标是生成高质量且稳定的图像。

 


扩散模型的成本问题

这篇论文提出了通过在潜在空间中训练扩散模型(DMs)来生成高分辨率图像的方法,以解决直接在像素空间中操作时面临的高计算成本和复杂度问题。

在进行文本到图像的任务时,模型需要能够根据文本描述生成与之相匹配的高分辨率图像。

传统的像素空间模型由于计算成本高,难以直接应用于此类高分辨率任务。

通过采用潜在空间训练(子解决方案1),结合交叉注意力层(子解决方案2)和通用条件化机制(子解决方案3),模型能够在保证计算效率的同时,根据文本描述生成细节丰富、高保真的图像,解决了直接在像素空间中操作时遇到的问题。

通过这种方式,论文提出的潜在扩散模型(LDMs)不仅解决了高分辨率图像合成中的计算成本和复杂度问题,还实现了在多种任务上的竞争性能,包括图像修复、类条件图像合成、无条件图像生成、文本到图像合成和超分辨率,同时显著降低了与像素基DMs相比的计算需求。

 

子问题1: 高计算成本和训练复杂度
  • 子解决方案1: 采用潜在空间训练

之所以采用这种解决方案,是因为直接在像素空间中训练扩散模型(DMs)需要大量的GPU日和顺序评估,这导致训练和推理非常昂贵。

通过将图像映射到一个压缩的潜在空间,并在该空间内训练DMs,可以显著降低计算需求,同时保持图像的质量和灵活性。

 

子问题2: 保持生成图像的视觉保真度
  • 子解决方案2: 在潜在空间中应用交叉注意力层

采用这种方案的原因是,在潜在空间中训练模型虽然能减少计算复杂度,但也可能导致细节丢失。

通过引入交叉注意力层,可以使模型在保持计算效率的同时,更好地捕捉和重建图像细节,提高生成图像的视觉保真度。

 

子问题3: 实现多模态和高分辨率图像合成
  • 子解决方案3: 设计通用条件化机制

因为需要模型不仅要生成高质量的图像,还要根据不同类型的条件输入(如文本或边界框)灵活生成图像。

通过开发一种基于交叉注意力的条件化机制,模型可以有效地处理多种类型的条件输入,实现从文本到图像、从布局到图像等多模态任务,同时支持高分辨率图像的合成。

 

子问题4: 保持图像质量与细节
  • 子解决方案4: 感知图像压缩。

用这种方案的原因是,直接在高维的像素空间中工作往往需要在图像质量和计算效率之间做出妥协。

通过训练一个自动编码器模型来学习一个与原始图像空间感知上等价的潜在空间,可以在显著降低计算复杂度的同时,尽可能地保留图像的重要视觉信息和细节。

在这里插入图片描述

  1. 感知压缩(Perceptual Compression):用蓝色圆点表示的曲线显示了一个基于自编码器和生成对抗网络(GAN)的系统如何在较低的比特率(即更高的压缩率)下进行感知压缩。感知压缩主要关注在视觉上接近原始图像的重建,即使重建中可能丢失了一些不易察觉的细节。

  2. 语义压缩(Semantic Compression):用红色箭头表示的曲线说明了潜在扩散模型(LDM)在更高的比特率下实现语义压缩的能力。与感知压缩相比,语义压缩的目的是保留更多的图像内容和结构信息,即便这意味着需要更多的数据来描述图像。

散模型(DMs)通过最小化相应的损失项和梯度(在训练过程中)以及神经网络的骨干结构(在训练和推理中)来抑制这些在语义上无意义的信息,从而避免在所有像素上进行评估,这会导致不必要的计算和昂贵的优化和推理。

该图表提出了潜在扩散模型(LDMs)作为一个有效的生成模型和一个单独的轻度压缩阶段,这个阶段只消除了不可察觉的细节。

 

比如你想让一个非常有才华的艺术家(我们的模型)创造出一幅精美的画作。

但是,这位艺术家每次创作都要花费大量的时间和精力(代表计算资源),尤其是当要求画作非常细腻和高清时。

如何让艺术家既能创作出高质量的作品,又不需要耗费太多的时间和精力呢?

  1. 减少画布大小(引入潜在空间的训练):首先,我们给艺术家一个小一点的画布(潜在空间),让他在这个小画布上创作。因为画布小了,艺术家就能更快完成作品,同时还能保证作品的整体美感不受太大影响。

  2. 确保作品质量(感知图像压缩):虽然画布变小了,但我们还是希望艺术家的作品能够尽可能地反映出原始想法的精髓。为了做到这一点,我们通过特殊的训练让艺术家学会如何在减小的画布上仍然能够捕捉到图像的重要特征和细节,确保最终作品的质量。

  3. 灵活应对不同的创作要求(引入交叉注意力机制):现在,如果有人想让艺术家根据一段描述或者一个概念创作画作,我们就通过一种特殊的技巧(交叉注意力)帮助艺术家理解这些要求,并将它们融入到他的作品中。

这样,无论是文本描述、图像还是其他任何形式的输入,艺术家都能够灵活地应对并创作出符合要求的高质量作品。

 

Latent Diffusion 过程:

在这里插入图片描述

  1. 像素空间到潜在空间:在左侧,有一个从像素空间(原始图像,用 ( x ) 表示)到潜在空间(图像的压缩表示,用 ( z ) 表示)的转换。这是通过编码器(用 ( E ) 表示)完成的,编码器将高维图像数据压缩成低维潜在表示。

  2. 潜在空间的扩散过程:图表的中间部分展示了在潜在空间中发生的扩散过程。去噪U-Net(用 ( \theta ) 表示)是一种神经网络,它通过迭代地细化噪声潜在变量(( z ))向更干净的版本逐步靠近,这个版本更接近实际数据分布。这个过程包括多个步骤,在这些步骤中,潜在变量逐渐被去噪。

  3. 条件机制:在右侧,您可以看到LDMs可以用额外的信息(如语义地图、文本或其他表示)进行条件化。这是通过一个特定领域的编码器(用 ( \tau_\theta ) 表示)完成的,该编码器处理条件信息,并使用交叉注意力机制将其整合到扩散过程中。

  4. 交叉注意力机制:交叉注意力模块(显示为 ( Q ) 和 ( KV ) 标签)允许模型在每个去噪步骤中更新潜在变量时专注于条件信息的相关部分。

  5. 输出生成:扩散过程之后,潜在表示然后被转换回像素空间,通过解码器(用 ( D ) 表示),得到重建或生成的图像( x ~ \tilde{x} x~)。

 


总结

潜在扩散(Latent Diffusion)是一种处理和生成图像的方法,它通过在潜在空间而非直接在像素空间处理数据来提高效率和质量。

子问题/子解法1:

  • 问题:高分辨率图像合成的计算成本过高
  • 解法:使用潜在扩散模型(LDM)
  • 原因:LDM在潜在空间进行操作,可以显著减少计算成本,因为它需要处理的数据维度更小。

子问题/子解法2:

  • 问题:在像素级别上进行图像合成导致的计算资源浪费
  • 解法:应用感知图像压缩
  • 原因:通过感知图像压缩减少数据的维度,可以在保持视觉质量的同时减少需要处理的像素数量。

子问题/子解法3:

  • 问题:提高图像合成的样本质量
  • 解法:利用交叉注意力机制引入条件信息
  • 原因:通过交叉注意力机制,LDM可以更精确地利用条件数据,如文本或语义信息,以生成更高质量的图像。

子问题/子解法4:

  • 问题:在图像合成中引入用户定义的文本描述
  • 解法:结合变换器和LDM
  • 原因:变换器可以将文本信息编码成潜在代码,LDM可以利用这些代码以及潜在的空间结构来生成与文本描述匹配的图像。

子问题/子解法5:

  • 问题:需要生成具有特定语义内容的图像
  • 解法:在LDM中使用语义地图作为条件
  • 原因:语义地图提供了明确的指示,使得LDM能够在特定区域生成相应的图像内容,从而在图像合成中实现高度控制。

子问题/子解法6:

  • 问题:提升生成图像的多样性和创造力
  • 解法:实施无分类器扩散引导(classifier-free diffusion guidance)
  • 原因:这种方法增加了生成过程的随机性,从而产生更多样化和有创造力的图像输出。

子问题/子解法7:

  • 问题:在扩散模型中实现超分辨率图像合成
  • 解法:使用LDM进行超分辨率训练
  • 原因:LDM可以在压缩的潜在空间中进行高效的训练,然后将生成的高分辨率潜在图像重建回像素空间。

子问题/子解法8:

  • 问题:降低图像合成过程中的能源消耗
  • 解法:在潜在空间中进行扩散过程
  • 原因:与在高维像素空间进行相比,在低维潜在空间进行扩散过程需要的能量更少,因此更环保。

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

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

相关文章

识别CMS指纹与WAF识别

目录 识别CMS指纹 1 什么是CMS指纹? 2 常见的CMS指纹 3 识别CMS指纹的方法有哪些? (1)分析HTTP响应头,识别CMS的特定标头。 (2)通过配置文件/特殊文件 (3)分析网站…

SSM框架,Spring-ioc的学习(上)

知识点引入 关于框架 框架( Framework )是一个集成了基本结构、规范、设计模式、编程语言和程序库等基础组件的软件系统,它可以用来构建更高级别的应用程序。框架的设计和实现旨在解决特定领域中的常见问题,帮助开发人员更高效、更稳定地实现软件开发目…

iOS 需求 多语言(国际化)App开发 源码

一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络&#xff0…

Python:流程控制

4.1 顺序结构 在任何编程语言中最常见的程序结构就是顺序结构。顺序结构就是程序从上到下一行行地执行,中间没有任何判断和跳转。 如果Python程序的多行代码之间没有任何流程控制,则程序总是从上往下依次执行,排在前面的代码先执行&#xf…

第5章——深度学习入门(鱼书)

第5章 误差反向传播法 上一章中,我们介绍了神经网络的学习,并通过数值微分计算了神经网络的权重参数的梯度(严格来说,是损失函数关于权重参数的梯度)。数值微分虽然简单,也容易实现,但缺点是计…

STM32内存管理

一.什么是内存管理 内存管理是计算机系统中的一个重要组成部分,它负责管理计算机的内存资源。内存管理的主要目标是有效地分配、使用和释放内存,以满足程序的运行需求。 内存是计算机用于存储程序和数据的地方,它由一系列内存单元组成&#…

Flink 2.0 状态存算分离改造实践

本文整理自阿里云智能 Flink 存储引擎团队兰兆千在 FFA 2023 核心技术(一)中 的分享,内容关于 Flink 2.0 状态存算分离改造实践的研究,主要分为以下四部分: Flink 大状态管理痛点 阿里云自研状态存储后端 Gemini 的存…

利用路由懒加载和CDN分发策略对极客园项目进行性能优化

文章目录 前言1.配置路由懒加载2.项目资源打包3.包体积可视化分析4.cdn配置 总结 前言 极客园项目的完成之后,我们需要对项目进行打包以及性能优化,优化用户体验以及加快响应时间,本文只列举了路由懒加载和cdn分发的策略 1.配置路由懒加载 …

政安晨:快速学会~机器学习的Pandas数据技能(二)(索引、选择与赋值)

小伙伴们,今天这篇文章里讲到的操作,专业的数据科学家每天都会执行这个动作数十次。你当然也可以做到! 概述 选择pandas DataFrame或Series中的特定值进行操作是几乎任何数据操作中的一个隐含步骤,因此在使用Python处理数据时&am…

怎么给《Cyberpunk 2077》制作功能性MOD

Cyberpunk的官方mod支持【REDmod】:https://www.cyberpunk.net/zh-cn/modding-support。官网有三个视频教程,其中第二集演示了脚本的替换,比较合程序员的胃口。 REDmod 是《赛博朋克 2077》的免费 DLC(须购买游戏之后才能下载&am…

【Java 数据结构】String进阶

字符串常量池 1. 创建对象的思考2. 字符串常量池(StringTable)3. 再谈String对象创建 1. 创建对象的思考 下面两种创建String对象的方式相同吗? public static void main(String[] args) {String s1 "hello";String s2 "hello";String s3 …

前端ajax技术

ajax可以实现局部刷新,也叫做无刷新,无刷新指的是整个页面不刷新,只是局部刷新,ajax可以自己发送http请求,不用通过浏览器的地址栏,所以页面整体不会刷新,ajax获取到后台数据,更新页…

计算机毕业设计 | SSM超市进销存管理系统(附源码)

1,绪论 1.1 开发背景 世界上第一个购物中心诞生于美国纽约,外国人迈克尔库伦开设了第一家合作商店,为了更好地吸引大量客流量,迈克尔库伦精心设计了低价策略,通过大量进货把商品价格压低,通过商店一次性集…

Nginx中logs的nginx.pid文件引发的问题

Nginx中logs的nginx.pid文件引发的问题 Q1:nginx: [error] CreateFile() "D:\software\nginx-1.22.1/logs/nginx.pid" failed (2: The system cannot find the file specified)Q2:nginx: [error] invalid PID number "" in "D:…

掌握虚拟化与网络配置之道:深入浅出VMware及远程管理技巧

目录 虚拟机介绍 虚拟机的关键字 服务器架构的发展 为什么用虚拟机VMware 虚拟机和阿里云的区别 功能角度 价格因素 应用场景 优势方面 找到windows的服务管理 配置VMware 关于VMware安装的几个服务 vmware如何修改各种网络配置 关于NAT的详细信息(了解) NAT(网…

Ribbon全方位解析:构建弹性的Java微服务

第1章 引言 大家好,我是小黑,咱们今天聊聊Ribbon,这货是个客户端负载均衡工具,用在Spring Cloud里面能让咱们的服务调用更加灵活和健壮。负载均衡,听起来挺高大上的,其实就是把外界的请求平摊到多个服务器上,避免某个服务器压力太大,其他的却在那儿闲着。 Ribbon的牛…

Netty连接通道中的Channel参数模型

ChannelOption(Channel中的连接参数) ChannelOption.SOBACKLOG ChannelOption.SO_BACKLOG对应的是tcp/ip协议listen函数中的backlog参数,服务端处理客户端连接请求是顺序处理的,所以同一时间只能处理一个客户端连接,多个客户端来的时候&…

传输层协议 ——— TCP协议

TCP协议 TCP协议谈谈可靠性为什么网络中会存在不可靠?TCP协议格式TCP如何将报头与有效载荷进行分离?序号与确认序号 确认应答机制(ACK)超时重传机制连接管理机制三次握手四次挥手 流量控制滑动窗口拥塞控制延迟应答捎带应答面向字…

使用ESP-01/ESP-01S接入Homekit远程控制电器

一、准备材料 ESP-01/ESP-01s 芯片 、 继电器模块 、 烧录器 二、下载固件和烧录软件 固件地址https://github.com/RavenSystem/esp-homekit-devices 烧录软件下载地址:https://drive.google.com/file/d/1_M4EzolaJWpYXts_FwUIqH8pZWqy-fye/view 三、烧录固件 …

【原创】Qt库open62541 MinGW编译

一、前言 为了统一公司的驱动层开发,准备采用OpcUA的方式转发底层数据,而服务器有Windows Server,也有CentOS,因此想用Qt开发一个基于MinGW的OpcUA Server,这样就能跨平台部署。这里记录一下,希望对你也有用…