多模态预训练:DALL-E
先导知识 残差网络TransformerCLIP 前言 这里要介绍的DALL-E[1]是OpenAI的多模态预训练模型,它的最显著的效果是在文本到图像的生成上。一个例子是图1的DALL-E根据输入“牛油果形状的扶手椅”生成的图像,它足以达到以假乱真的效果,生成的内容不仅逼真合理,甚至可以一定程度上启发人类设计师。DALL-E通过120亿参数的模型,在2.5亿图像文本对上训练完成。它是一个两阶段的模型:它的第一个阶段是离散变分自编码器(Discrete Variance Auto-Encoder,dVAE),用于生成图像的token。它的第二个阶段是混合了图像和文本特征的,以Transformer为基础的生成模型。在DALL-E中,它使用了非常多优化模型准确率的技巧和提升训练效率的优化,下面我们来逐一介绍之。 图1:DALL-E根据输入“牛油果形状的扶手椅”生成的图像 1. 阶段1:离散变分自编码器 1.1 背景知识:变分自编码器 我们知道,由于图像特征的密集性和冗余性,它是不能直接提供给Transformer进行训练的。目前主流的方式,例如ViT,Swin-Transformer等都是将图像的Patch作为模型的输入,然后通过一个步长等于Patch大小的大卷积核得到每个Patch的特征向量。DALL-E提供的方案是使用一个离散的变分自编码器(dVAE)将大小为 256×256256\times256 的RGB图像压缩到大小为 32×3232\times32 的,通道数为 8,1928,192 的one-hot token的分布(注意这个one-hot的形式,它很重要),变分自编码器的架构如图2所示。换句话说,阶段1的作用是将图像映射到一个大小为 8,1928,192 的图表中。这里通道数为 8,1928,192 的one-hot向量可以看做是一个词表,它的思想和是通过离散VAE,实现图像特征空间想文本特征空间的映射。 图2:DALL-E阶段1使用的的离散变分自编码器 在深度学习中,变分自编码器(VAE)[2]和生成对抗网络(GAN)是最为常见的两个生成模型。提到VAE,则又不得不提自编码器(Auto-Encoder,AE),AE是一个常见的降维算法,它由编码器和解码器组成,编码器用于将输入 xx 压缩成信号 yy ,表示为 y=f(x)y = f(x) 。解码器用于将信号 yy 重构成内容 rr ,表示为 r=h(y)r = h(y) 。自编码器的误差定义为输入 xx 和重构内容 rr 的差值,它可以表示为式(1)。 (1)e=x−r=x−h(f(x))e...