也许过去十年在计算机视觉和机器学习方面的突破是GANs(生成式对抗网络)的发明——这种方法引入了超越数据中已经存在的内容的可能性,是一个全新领域的敲门砖,现在称为生成式建模。然而,在经历了一个蓬勃发展的阶段后,GANs开始面临平台期,其中大多数方法都在努力解决对抗性方法面临的一些瓶颈。这不是单个方法的问题,而是问题本身的对抗性。GANs的一些主要瓶颈是:

  • 图像生成缺乏多样性

  • 模式崩溃

  • 多模态分布问题学习

  • 训练时间过长

  • 由于问题表述的对抗性,不容易训练

还有另一系列基于似然的方法(例如,马尔可夫随机场),它已经存在了相当长的一段时间,但由于对每个问题的实现和制定都很复杂,因此未能获得重大影响。其中一种方法是“扩散模型”——一种从气体扩散的物理过程中获得灵感的方法,并试图在多个科学领域对同一现象进行建模。然而,在图像生成领域,它们的应用最近变得越来越明显。主要是因为我们现在有更多的计算能力来测试复杂的算法,这些算法在过去是不可实现的。

一个标准扩散模型有两个主要的过程域:正向扩散和反向扩散。在前向扩散阶段,图像被逐渐引入的噪声污染,直到图像成为完全随机噪声。在反向过程中,利用一系列马尔可夫链在每个时间步逐步去除预测噪声,从而从高斯噪声中恢复数据。

扩散模型最近在图像生成任务中表现出了显著的性能,并在图像合成等任务上取代了GANs的性能。这些模型还能够产生更多样化的图像,并被证明不会受到模式崩溃的影响。这是由于扩散模型保留数据语义结构的能力。然而,这些模型的计算要求很高,训练需要非常大的内存,这使得大多数研究人员甚至无法尝试这种方法。这是因为所有的马尔可夫状态都需要一直在内存中进行预测,这意味着大型深度网络的多个实例一直在内存中。此外,这些方法的训练时间也变得太高(例如,几天到几个月),因为这些模型往往陷入图像数据中细粒度的、难以察觉的复杂性。然而,需要注意的是,这种细粒度图像生成也是扩散模型的主要优势之一,因此,使用它们是一种矛盾。

另一个来自NLP领域的非常著名的方法系列是transformer。他们在语言建模和构建对话AI工具方面非常成功。在视觉应用中,transformer表现出泛化和自适应的优势,使其适合通用学习。它们比其他技术更好地捕捉文本甚至图像中的语义结构。然而,与其他方法相比,transformer需要大量的数据,并且在许多视觉领域也面临着性能方面的平台。

潜在扩散模型

一种最近提出的方法,利用GANs的感知能力、扩散模型的细节保持能力和transformer的语义能力,将三者合并在一起。该技术被作者称为“潜在扩散模型”(LDM)。LDM已经证明自己比前面提到的所有模型都更健壮和高效。与其他方法相比,它们不仅节省了内存,还产生了多样化的、高度详细的图像,保留了数据的语义结构。简而言之,LDM是潜空间而不是像素空间中扩散过程的应用,同时结合了来自transformer的语义反馈。

任何生成式学习方法都有两个主要阶段:感知压缩和语义压缩。

压缩感知 

在感知压缩学习阶段,学习方法必须通过去除高频细节将数据封装为抽象表示。这一步对于构建环境的不变和鲁棒表示是必要的。GANs擅长提供这种感知压缩。他们通过将高维冗余数据从像素空间投影到称为潜空间的超空间来实现这一点。隐空间中的隐向量是原始像素图像的压缩形式,可以有效地代替原始图像。

更具体地说,自动编码器(AE)结构是捕获感知压缩的结构。AE中的编码器将高维数据投影到潜空间,解码器从潜空间恢复图像。

语义压缩 

在学习的第二个阶段,图像生成方法必须能够捕捉数据中存在的语义结构。这种概念和语义结构保存了图像中各种物体的上下文和相互关系。transformer擅长捕捉文本和图像中的语义结构。transformer的泛化能力和扩散模型的细节保持能力的结合提供了两个世界的优点,并提供了一种生成细粒度的高度详细图像的能力,同时保留图像中的语义结构。

感知损失 

LDM中的自动编码器通过将数据投影到潜空间来捕捉数据的感知结构。作者使用一种特殊的损失函数来训练这种自编码器,称为“感知损失”。该损失函数确保重建被限制在图像流形内,并减少使用像素空间损失(例如L1/L2损失)时可能出现的模糊。

扩散损失 

扩散模型通过逐步去除正态分布变量中的噪声来学习数据分布。换句话说,DMs采用长度为T的反向马尔可夫链。这也意味着DMs可以建模为时间步长T =1,…,T的一系列T去噪自编码器。这由下式中的εθ表示。请注意,损失函数依赖于隐向量而不是像素空间。

条件扩散 

扩散模型是一种依赖先验的条件模型。在图像生成任务中,先验通常是文本、图像或语义图。为了获得这种情况的潜在表示,使用了一个transformer(例如CLIP),它将文本/图像嵌入到潜在向量` τ `中。因此,最终的损失函数不仅取决于原始图像的潜空间,而且还取决于条件的潜嵌入。

注意机制 

LDM的骨干是U-Net自编码器,具有稀疏连接,提供交叉注意力机制[6]。Transformer网络将条件文本/图像编码为潜在嵌入,然后通过交叉注意力层映射到U-Net的中间层。这个交叉注意力层实现了注意力(Q,K,V) = softmax(QKT/✔)V,而Q,K和V是可学习的投影矩阵。

文本到图像合成 

我们使用python中LDM v4的最新官方实现来生成图像。在文本到图像合成中,LDM使用预训练的CLIP模型[7],该模型为文本和图像等多种模态提供了基于transformer的通用嵌入。然后,transformer模型的输出被输入到LDM的python API ` diffusers `。有一些参数也是可以调整的(例如,没有。扩散步骤、种子、图像大小等)。扩散损失

图像到图像合成

同样的设置也适用于图像到图像的合成但是,需要输入样本图像作为参考图像。生成的图像在语义和视觉上与作为参考的图像相似。这个过程在概念上类似于基于风格的GAN模型,然而,它在保留图像的语义结构方面做得更好。

结论

我们已经介绍了图像生成领域的最新发展,称为潜扩散模型。ldm在以精细细节生成不同背景的高分辨率图像方面是鲁棒的,同时还保留了图像的语义结构。因此,LDM是图像生成特别是深度学习方面的一个进步。如果您仍然想知道“稳定扩散模型”,那么这只是应用于高分辨率图像的LDM的重新命名,同时使用CLIP作为文本编码器。

GitHub链接:https://github.com/azad-academy/stable-diffusion-model-tutorial

往期精彩回顾适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码

【深度学习】什么是扩散模型(Diffusion Models),为什么它们是图像生成的一大进步?...相关推荐

  1. 什么是扩散模型(Diffusion Models)?

    1. 到目前为止,有3种类型的生成模型,即GAN.VAE和基于Flow的模型.它们在生成高质量样本方面获得了巨大的成功,但每一种都有其自身的一些局限性.例如,GAN模型由于其对抗性训练的性质,以潜在的 ...

  2. 扩散模型 Diffusion Models - 原理篇

    扩散模型 Diffusion Models - 原理篇 参考博客及视频链接: What are Diffusion Models? Diffusion Model扩散模型理论与完整PyTorch代码详 ...

  3. 扩散模型 Diffusion Models 入门到实践 | 论文、学习资源、课程整理

    文章目录 一.论文 二.学习资源 三.课程 扩散模型内在的很多数学基础并不是模型应用的必须.其实大部分的研究者都不需要理解扩散模型的数学本质,更需要的是对扩散模型的原理的经验化理解和多实践,从而更好地 ...

  4. 什么是扩散模型(Diffusion Models),为什么它们是图像生成的一大进步?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 也许过去十年在计算机视觉和机器学习方面的突破是GANs(生成式对抗 ...

  5. 扩散模型(Diffusion)最新综述+GitHub论文汇总-A Survey On Generative Diffusion

    扩散模型(Diffusion Model)最新综述+GitHub论文汇总-A Survey On Generative Diffusion 本综述来自香港中文大学Pheng-Ann Heng.西湖大学 ...

  6. ML之模型文件:机器学习、深度学习中常见的模型文件(.h5、.keras)简介、h5模型文件下载集锦、使用方法之详细攻略

    ML之模型文件:机器学习.深度学习中常见的模型文件(.h5..keras)简介.h5模型文件下载集锦.使用方法之详细攻略 目录 ML/DL中常见的模型文件(.h5..keras)简介及其使用方法 一. ...

  7. pytorch 训练过程acc_深度学习Pytorch实现分类模型

    今天将介绍深度学习中的分类模型,以下主要介绍Softmax的基本概念.神经网络模型.交叉熵损失函数.准确率以及Pytorch实现图像分类.01Softmax基本概念 在分类问题中,通常标签都为类别,可 ...

  8. 前深度学习时代CTR预估模型的演化之路 [王喆观点]

    毕业于清华大学计算机系的王喆学长梳理从传统机器学习时代到深度学习时代所有经典CTR(click through rate)模型的演化关系和模型特点.内容来源:https://zhuanlan.zhih ...

  9. 扩散模型Diffusion Model 【质量提升2.0】【扩散模型】

    扩散模型Diffusion Model [质量提升2.0][扩散模型] 文章目录 扩散模型Diffusion Model [质量提升2.0][扩散模型] 一.扩散模型简介 二.前向扩散简介 三.逆向扩 ...

最新文章

  1. SQL 基础之DDL语句创建和管理表(十四)
  2. android调试神器Stetho
  3. Linux下Shell的for循环语句
  4. 到底该不该使用存储过程
  5. Hiv:SQuirrel连接hive配置
  6. Mysql count() 语句
  7. Ajax--art-template + 调用天气接口
  8. Java中的时间和日期(上)
  9. 中国喷漆室保护膜市场趋势报告、技术动态创新及市场预测
  10. hadoop下载地址
  11. 创建自定义Excel模板
  12. 收入增速环比抬升!从业务数据透视运营商转型战略布局
  13. 切入点和切入点表达式(AOP面向切面编程)
  14. Spring boot(web 组件,ORM 操作 MySQL,接口架构风格—RESTful,集成 Redis,集成 Dubbo,打包)
  15. 有些程序员经常把“删库跑路”挂在嘴边,如果真的“删库跑路”需要负刑事责任吗?
  16. redis中的AKF理论和CAP理论详解
  17. 对数组遍历forEach、map、reduce、filter
  18. 判断小米 魅族 华为 系统 MIUI EMUI FLYME
  19. Go : 与切片类型处理相关的代码(附完整源码)
  20. 买开 、卖平、卖开、买平

热门文章

  1. 易经之乾卦和坤卦(从职场角度分析)
  2. 中国移动,联通,电信
  3. 【C++】算法集锦(12):高楼扔鸡蛋
  4. 滴滴出行与Uber的合并历程回顾
  5. 2020区块链50指数样本股大盘点:有人蹒跚学步,有人激流勇进
  6. 最近成了叨客 - 注册了饭否,叽歪网
  7. 我来补充两句京东和企业软件
  8. No IDEA annotations attached to the JDK 1.8 问题
  9. Cesium获取绘制范围内地形高程进行淹没分析
  10. 德国战车7比1狂胜巴西