赞
踩
Vision Transformer是一种基于Transformer架构的深度学习模型,专门用于处理计算机视觉任务。他的1出现给以往CNN base的图像工作带来了很多新的可能性
ViT的核心思想是将图像分割成均匀的图像块,然后将这些图像块转换为序列,并将序列输入Transformer模型进行处理。这使得ViT可以利用Transformer模型强大的序列建模能力来处理图像数据,避免了传统CNN需要手工设计、调整网络层次结构的缺点。ViT的工作流程大致如下:
U-Net是一种用于图像分割任务的深度学习架构,它的名字来源于其U形状的网络结构。U-Net在医学影像分割等领域取得了很大成功,也被广泛用于其他图像分割任务。
U-Net的结构包含两部分:编码器(Encoder)和解码器(Decoder)。整体结构如同一个U字形,因此得名U-Net。具体工作流程如下:
Diffusion model是一种用于建模数据分布的概率生成模型。它提供了一种对数据分布进行建模的方法,特别适用于处理具有复杂结构和高维度的数据。
Diffusion model的核心思想是通过一系列迭代步骤来逐渐将初始数据分布“扩散”(diffuse)到目标数据分布。在这些迭代步骤中,模型会逐渐将噪声注入原始数据,从而使原始数据在逐步迭代的过程中逼近目标数据分布。训练过程通常包括以下步骤:
Latent Diffusion Model(潜变扩散模型)是一种生成模型,是对Diffusion Model的一种扩展和改进。它结合了变分自动编码器(VAE)的思想和概念,以更好地建模数据分布和学习高质量的数据表示。
Latent Diffusion Model的核心思想是在Diffusion Model的基础上引入潜在变量,并通过潜在变量来表示数据空间中的不确定性。这种方法使得模型更具灵活性和表达能力,能够更好地处理数据中的高维度、复杂性和多模态性。
DiT的模型的基础架构如图,左边的*N可以看作是一个不断循环叠加的过程。可以发现这其实就是transformer的编码器架构,和ViT的区别是不大。DiT他的主要改进是运用到了扩散模型的流程当中
我们从LDM的设计图上可以看到他的核心其实就是U-Net结构的网络,上面的一段是先用VAE编码压缩图片,然后的模拟扩散过程得到ZT。接下来获取到相关的语义图,文本信息,以及各种潜在变量集合起来传入U-Net大网络,图片除了做卷积之外,还和其他的这些关键信息做注意力机制,以学习到图片的深层语义信息和类别信息等内容之间的关系。
在DiT中,作者创新的改造了LDM这个网络,把U-Net这一步换成了transformer的方式,其就是在中间的去噪步骤去除了CNN相关的操作,统一接入了transformer架构,新的大模型可以理解成下图的形式。这种方式的好处就是解决了CNN感受野限制的问题,图像可以通过自注意力机制来得到更加全面的信息
DiT Block的设计是这个文章最关键的部分。对于各种相关的特征信息,比如图像的类别,扩散的步数这些信息,作者也尝试了很多种方式去把他们结合起来,并且做了很多的实验去对比,最后选择了N-Zero这种方式。
右边的两种方式其实都比较好理解。最右侧的In-Context方法就是把这些信息只是当作一个token去接入,然后forward训练,效果不好也是可以理解的。
中间的交叉注意力的方式就是在中间环节菜用上这些信息,其实效果提升也不大。
On-Zero的方式就是在每个环节都会结合上这些关键信息,模型能够更好地把深层信息和他们关联起来
这是一个形象化的效果图,原本在U-Net中的图片形式在DiT中被展开成了token的形式来进行学习。
作者还实验对比了不同的模型规模以及patch_size对于模型性能的影响,实验结果如下,模型的参数量的提升都会提升模型的性能,但是后面边界效应也明显。更小的path_size会有更多的token,模型可以学习到更多的细节
Sora的工作其实也是基于DiT,不过这里输入训练的是视频。首先把视频分成一帧一帧输进入做扩散以及ViT编码,每一帧的图片都要结合前后时间的编码,同时可还有另外一侧专门的文字prompt输入做注意力机制辅助可控生成,最终才可以达到我们锁看到的那种生成视频的效果
[2212.09748] Scalable Diffusion Models with Transformers (arxiv.org)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。