赞
踩
High-Resolution Image Synthesis with Latent Diffusion Models(CVPR 2022)
https://arxiv.org/abs/2112.10752
latent-diffusion
stable-diffusion
Cross-attention vs Self-attention:Cross-attention的输入来自不同的序列,Self-attention的输入来自同序列,也就是所谓的输入不同,但是除此之外,基本一致。
假设有文本数据和图像数据:
1.文本通过一个Transformer编码器处理,输出作为查询q向量。
2.图像通过CNN处理,输出经过线性变换生成键k和值v向量。
3.计算文本查询向量q与图像键向量k的点积,得到注意力分数。
4.使用这些分数对图像的值向量v进行加权,生成最终输出。
LDM基本思路:【论文将这个方法称之为感知压缩(Perceptual Compression)】:在AutoEncoder的编码器 E 对图片进行压缩 ==> 然后在潜在表示空间上做diffusion操作 ==> 最后再用解码器 D 恢复到原始像素空间
回顾DDPM:Diffusion Model(DDPM)训练过程就是训练UNet预测每一步的noise,从而逐步还原原始图像。原始图像空间的Diffusion Model目标函数如下:
共同点:这里函数 的参数使用神经网络UNet拟合,UNet在DDPM和LDM中的作用都是预测噪声。
区别:
1. 加入Autoencoder(上图中左侧红色部分),使得扩散过程在latent space下,提高图像生成的效率;
2. 加入条件机制,能够使用其他模态的数据控制图像的生成(上图中右侧灰色部分),其中条件生成控制通过Attention(上图中间部分QKV)机制实现。
为了降低训练扩散模型的算力,LDMs使用一个Autoencoder去学习能尽量表达原始image space的低维空间表达(latent embedding),这样可以大大减少需要的算力。
自编码器的方法有几个优点:
Latent Diffusion Models整体框架如上图,首先需要训练好一个自编码模型(AutoEncoder,包括一个编码器 E 和一个解码器 D )。这样一来,我们就可以利用编码器对图片进行压缩,然后在潜在表示空间上做diffusion操作,最后我们再用解码器恢复到原始像素空间即可,论文将这个方法称之为感知压缩(Perceptual Compression)。个人认为这种将高维特征压缩到低维,然后在低维空间上进行操作的方法具有普适性,可以很容易推广到文本、音频、视频等领域。
在潜在表示空间上做diffusion操作其主要过程和标准的扩散模型没有太大的区别,所用到的扩散模型的具体实现为 time-conditional UNet。但是有一个重要的地方是论文为diffusion操作引入了条件机制(Conditioning Mechanisms),通过cross-attention的方式来实现多模态训练,使得条件图片生成任务也可以实现。
下面我们针对感知压缩、扩散模型、条件机制的具体细节进行展开。
主要就是通过“cross-attention”机制来实现,DDPM的UNet可以根据当前采样的t预测noise,但没有引入其他额外条件。但是LDM实现了“以文生图”,“以图生图”等任务,就是因为LDM在预测noise的过程中加入了条件机制,即通过一个encoder将条件和Unet连接起来。
★★★具体的讲解可以看:AIGC专栏2——Stable Diffusion结构解析-以文本生成图像(文生图,txt2img)为例-CSDN博客
这里引入一个新的encoder E(这个是用于条件编码的encoder,和上面提到的用于降维的是不同的)来将条件 y 映射到 T(y)
1)整体感受一下:
2)具体将文本和时间步t插入到U-Net的哪个位置
3)训练阶段每个模块之间的交互如图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。