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

Latent Diffusion Models

1.隐空间的定义和VAE模型生成效果

1.1隐函数变量相关概念

隐变量是概率统计中的概念,它表示未被测量或者不方便直接测量的隐藏变量。

他是一个未观测到的随机变量,用于解释和建模数据的生成过程。

在机器学习和数据表示中,隐空间可以直接将原始数据进行压缩后的低维数据表示形式,可以用于表征数据的核心特征。

隐空间是数据的低纬表示空间,用于捕捉和简化数据特征。

VAE是Latent Space即为数据编码后空间,一般假设俯冲对角标准高斯分布

基于隐空间的计算由于维度降低很多,隐藏可以加载计算速度。

隐空间某种视角也可以看做是隐变量的延伸(标量和向量的关系)

img

就是我们的VAE模型就是为了把关键数据浓缩到更小的隐空间中。

假设我们的mnist是28x28维的,我们的隐空间就一定比28x28更小,类似20x20维。

我们隐空间中每个维度假设满足独立的标准正态分布,整体服从对角标准正态分布。

我们在使用变分自编码器(VAE)时,来实现从布局Layout到图像以及从语音分割图像到图像编码解码功能的可行。

img

1.2VAE模型训练损失函数

VAE模型隐变量空间分布:

隐变量空间假设服从对角标准高斯分布

VAE编码模块将数据编码到隐空间,预测出隐空间每个遍历的均值和方差。

每个变了的均值和方差要接近标准高斯分布(两个分布尽可能相似,可以用KL散度来衡量)

img

2.Latent DIffusion Model算法原理及生成效果

2.1Latent Diffusion Model的基本原理

Latent Diffusion Model 也是在元素数据的隐空间进行DDPM算法训练,然后通过VAE解码器还原到原始数据空间

将训练数据利用VAE进行隐空间压缩编码

在隐变量空间中尽显扩散和去噪的过程

训练算法流程

训练变分自编码器将高纬数据编码到低纬隐空间遍历(基于低纬遍历空间可以重建数据)

在隐变量空间进行DDPM算法去噪训练(数据的隐变量空间编码结果作为DDPM的x(0))

推理算法流程

在隐遍历空间按对角标准高斯分布进行随机采样

通过扩散模型逐步去噪,重建数据的隐变量空间编码结果

将隐变量空间作为解码器的输入,输出为数据空间,达到最终生成新数据的目标。

img

2.2Latent Diffusion Model的条件控制生成

Latent Diffusion Model不仅可以应用于无条件控制生成,同时也可以应用于条件控制生成。

img

这里我们拿条件生成的网络结构来进行举例。

这个是他的整体结构:从左到右三个模块分别为:感知图片压缩潜在扩散模型,以及条件机制模块

首先原始图片x在像素空间中被感知压缩模型压缩为潜在空间特征z,然后,U-net通过扩散过程(向z中添加噪声和去除噪声)重构了潜在空间特征

img

,其被解码为输出图片

img

。在这个过程中,条件机制将输入的条件(例如,文本,图片等)编码为嵌入特征。然后,利用cross-attention机制将条件输入注入到Unet结构中。

img

cross attention计算过程

首先基于Transformer Block等组件计算方式如图所示:

条件信息参与Cross Attention的计算

首先把条件信息映射为Cross embedding,然后让Cross embedding进行Cross Attention的计算,Cross Attention和参数运算形成K,和V,然后输入和参数矩阵计算形式Q

多Stage交叉注意力机制实现。

img

就是在输入时,我们首先输入一个时间步t,一个噪声图像,以及文本提示语,我们通过时间步进行时间嵌入到每一个rensetblock2d的时间嵌入模块,然后把文本提示语通过后文本嵌入,嵌入到每一个transformer2dmodel模型的交叉注意力模块以及每一个下采样和上的交叉注意力模块。最后使用一个基本的u形网络可以完成生成。

img

条件信息如何控制生成结果?

主要由三个方法,首先是条件信息作为模型输入的一部分,就是我们在输入数据时就已经输入的了条件信息,我们的结算过程都少不了条件信息的影响。

然后就是条件信息与Cross Attention计算,就是我们将条件信息映射context embeeding 进行cross attention的计算。我们的context embedding和Unet网络的多个中间层进行Cross attention计算。最后就是条件信息的多方面融合:我们的条件信息既映射context embedding作为输入信息的一部分,同时也映射context embedding进行多层的cross attention的计算。

img

img

这里举例一个例子:

img


http://www.kler.cn/a/503621.html

相关文章:

  • 智能化植物病害检测:使用深度学习与图像识别技术的应用
  • 【容器逃逸实践】挂载/dev方法
  • 分多个AndroidManifest.xml来控制项目编译
  • Oracle FLOOR函数的用法
  • FastDDS安装测试记录
  • 【HTML+CSS+JS+VUE】web前端教程-31-css3新特性
  • 51_Lua面向对象编程
  • 【解决问题】module加载不到 无法加载 1 Configuration module could not be loaded
  • Docker常用命令大全
  • 穿越科技长廊,VR科技展厅用科技之光点亮你的梦想之路
  • Angular-生命周期及钩子函数
  • 数据结构与算法之栈: LeetCode 150. 逆波兰表达式求值 (Ts版)
  • 《鸿蒙Next ArkTS:开启人工智能应用开发高效新旅程》
  • word-break控制的几种容器换行行为详解
  • 计算机视觉算法实战——步态识别(主页有源码)
  • 【Golang 面试题】每日 3 题(二十七)
  • java fastjson2将 map、实体类、list等 类型转换为JSON介绍
  • BUUCTF:web刷题记录(1)
  • Oracle和MySQL的语法有什么区别
  • Spring Boot中的配置文件有哪些类型
  • 【Lua学习之旅】之单行/多行注释
  • 0基础跟德姆(dom)一起学AI 自然语言处理13-注意力机制介绍2
  • 【大数据】机器学习-----模型的评估方法
  • 微服务中引入消息队列的利弊
  • nginx 简单实践:静态资源部署、URL 重写【nginx 实践系列之一】
  • 使用 configparser 读取 INI 配置文件