本文将 AIGC 视为一组使用人工智能方法生成内容的任务或应用程序。其中,生成技术是指使用机器学习模型生成新的内容,例如 GAN 和扩散模型。创作技术是指利用生成技术生成的内容进行进一步的创作和编辑,例如对生成的文本进行编辑和改进。
1 生成技术
在AlexNet
的惊人成功之后,深度学习引起了极大的关注,它有点成为了人工智能的代名词。与传统的基于规则的算法不同,深度学习是一种数据驱动的方法,通过随机梯度下降优化模型参数。深度学习在获取卓越的特征表示方面的成功,取决于更好的网络架构和更多的数据,这极大地加速了AIGC
的发展。
1.1 网络架构
众所周知,深度学习的两个主流领域是自然语言处理(NLP)和计算机视觉(CV),它们的研究显著改进了骨干架构,并在其他领域启发了改进后骨干架构的各种应用,例如语音领域。在 NLP 领域,Transformer 架构已经取代了循环神经网络(RNN)成为事实上的标准骨干。而在 CV 领域,视觉 Transformer(ViT) 除了传统的卷积神经网络(CNN)外,也展示了其强大的性能。在这里,我们将简要介绍这些主流骨干架构的工作原理及其代表性的变种。
- RNN & LSTM & GRU
RNN
主要用于处理时间序列数据,例如语言或音频。标准的RNN有三层:输入层、隐藏层和输出层。RNN
的信息流有两个方向,第一个方向是从输入到隐藏层再到输出的方向。而RNN
中循环的本质在于其沿着时间方向的第二个信息流。除了当前的输入,当前时刻 𝑡 的隐藏状态还依赖于上一个时刻 𝑡−1 的隐藏状态。这种双向的设计很好地处理了序列顺序,但当序列变得很长时,会出现梯度消失或梯度爆炸的问题。
为了缓解这个问题,引入了长短时记忆网络即LSTM
,其“细胞”状态充当了一个“高速公路”,有助于信息在序列方向上的流动。LSTM
是减轻梯度爆炸/消失问题最流行的方法之一,但是由于它有三种门,因此会导致较高的复杂度和更高的内存需求。
接下来出场的便是门控循环单元(GRU
),该技术通过将细胞状态和隐藏状态合并,并用所谓的更新状态替换遗忘门和输入门,简化了LSTM
。
最后,便是双向循环神经网络(Bidirectional RNN
),通过在细胞中捕获过去和未来信息来改进基本的RNN
,即时间 t 的状态是基于时间 t-1 和 t+1 计算的。根据任务不同,RNN 可以具有不同数量的输入和输出,例如一对一,多对一,一对多和多对多。其中多对多可以用于机器翻译,也称为序列到序列(seq2seq
)模型。另一方面,注意力机制也被频繁引入,使得模型的解码器能够看到每个编码器标记,并根据其重要性动态更新权重。
- Transformer
与传统的Seq2seq
模型相比,Transformer
提出了自注意力机制,并将其成功应用于Encoder-Decoder
模型中。Transformer 模型由编码器和解码器两部分组成,采用了残差连接和层归一化等技术,其中核心组件为多头注意力机制和前馈神经网络。多头注意力机制通过自注意力实现,并采用了多头的设计,而前馈神经网络则是由两个全连接层组成。这种自注意力机制的定义采用了缩放点积的形式,能够更好地处理序列中的依赖关系。
与逐个输入句子信息以建立位置信息的 RNN 不同,Transformer 通过构建全局依赖关系获得强大的建模能力,但也因此失去了带有归纳偏差的信息。因此,需要使用位置编码使模型能够感知输入信号的位置信息。有两种类型的位置编码。固定位置编码用不同频率的正弦和余弦表示。可学习的位置编码由一组可学习参数组成。不可否认的是,Transformer 已俨然成为 CV 和 NLP 任务的标杆之作,由其衍生的门派数不胜数。
- CNN
在 CV 领域,CNN 有着不可撼动的地位。CNN 的核心在于卷积层。卷积层中的卷积核(也称为滤波器)是一组共享的权重参数,用于对图像进行操作,其灵感来源于生物视觉皮层细胞。卷积核在图像上滑动并与像素值进行相关操作,最终得到特征映射并实现图像的特征提取。例如:
GoogleNet
的 Inception 模块允许在每个块中选择多个卷积核大小,增加了卷积核的多样性,因此提高了CNN的性能;ResNet
是 CNN 的一个里程碑,引入残差连接,稳定了训练,使模型能够通过更深的建模获得更好的性能。此后,它成为CNN中不可或缺的一部分;- 为了扩展 ResNet 的工作,
DenseNet
在所有先前层和后续层之间建立密集连接,从而使模型具有更好的建模能力; EfficientNet
使用一种称为缩放方法的技术,使用一组固定的缩放系数来统一缩放卷积神经网络架构的宽度,深度和分辨率,从而使模型更加高效。- 而与 NLP 领域中的 Transformer 相似,
ViT
则是最近几年才在 CV 领域中引入的新的变体。ViT 使用 transformer 模块来处理图像,并在 Vision Transformer Encoder 中使用自注意力机制,而不是传统的卷积神经网络。ViT 将输入的图像分成一些小块,然后将这些小块变换成一系列的向量,这些向量将被送入 transformer 编码器。通过这种方式,ViT 可以利用 transformer 强大的建模能力来处理图像,并在许多计算机视觉任务中达到了与 CNN 相当的性能。
- ViT
Transformer 在 NLP 领域的成功启发了许多学者将其应用到 CV 领域,其中 ViT 是第一种采用 Transformer 的 CV 模型。ViT 将图像平铺为一系列二维块,并在序列的开头插入一个类别标记以提取分类信息。在嵌入位置编码之后,标记嵌入被输入到一个标准 Transformer 模型中。
ViT 的这种简单有效的实现使其高度可扩展。例如:
Swin
是通过在更深层次上合并图像块来构建分层特征映射,以高效地处理图像分类和密集识别任务,由于它仅在每个局部窗口内计算自注意力,因此减少了计算复杂度;DeiT
采用教师-学生训练策略,通过引入蒸馏标记,减少了 Transformer 模型对大量数据的依赖性;CaiT
引入了类别注意力机制以有效增加模型深度。T2T
通过 Token Fusion 有效地定位模型,并通过递归地聚合相邻 Token 来引入 CNN 先验的层次化深而窄的结构。
通过置换等变性,Transformer 从其翻译不变性中解放了 CNN,允许更长距离的依赖关系和更少的归纳偏差,使它们成为更强大的建模工具,并比 CNN 更适合于下游任务。在当前大模型和大数据集的范式下,Transformer 逐渐取代 CNN 成为计算机视觉领域的主流模型。
1.2 自监督学习
不可否认的是,深度学习能够从更好的骨干结构中获益,但自监督学习同样重要,该技术可以利用更大的无标签训练数据集。在这里,我们总结了最相关的自监督预训练技术,并根据训练数据类型(例如语言、视觉和联合预训练)对它们进行分类。
- Language pretraining
语言预训练方法主要有三种主流的方法。第一种方法是使用掩码对编码器进行预训练,代表作是BERT
。具体来说,BERT 从未掩码的语言标记预测掩码的语言标记。然而,掩码-预测任务和下游任务之间存在显着差异,因此像BERT
这样的掩码语言建模在没有微调的情况下很少用于文本生成。
相比之下,自回归语言预训练方法适用于少样本或零样本文本生成。其中最流行的是GPT
家族,采用的是解码器而不是编码器。具体来说,GPT-1
是第一种采用解码器的模型,GPT-2
和GPT-3
进一步研究了大规模数据和大型模型在转移能力中的作用。
基于GPT-3
,ChatGPT
的前所未有的成功近来引起了广泛关注。此外,一些语言模型采用了原始Transformer
的编码器和解码器。BART
使用各种类型的噪声扰动输入,预测原始干净的输入,类似于去噪自编码器。MASS
和PropheNet
采用了类似于BERT
的方法,将掩码序列作为编码器的输入,解码器以自回归的方式预测掩码标记。
- Visual pretraining
视觉预训练主要包含两种类型,第一种类型是基于掩码学习的无监督自编码器,它们旨在学习良好的图像表征MAE
。第二种类型是基于自监督的预测模型,最流行的是ImageNet
中学到的视觉特征(ImageNet-pretraining
)和自监督学习方法,如RotNet
和MoCo
等等。这些方法先前采用的自监督任务包括但不仅限于图像旋转预测和图像补丁重建等。
- Joint pretraining
最后一种预训练方式是联合学习方法,它使用多模态输入进行联合预训练。通过从互联网上收集大量的图像和文本配对数据集,多模态学习取得了前所未有的进展,其中交叉模态匹配是关键技术。对比预训练被广泛应用于在同一表示空间中匹配图像嵌入和文本编码。其中,CLIP
是最流行的一个,由OpenAI
提出,它使用文本和图像作为联合输入,通过学习一个共同的嵌入空间来进行分类任务。
此外,SimCLR
和DALL·E
都是联合学习的成功应用,前者使用自监督任务对图像进行增强,后者是一个生成模型,可以根据文字描述生成图像。ALIGN
则扩展了 CLIP,使用嘈杂的文本监督,使得文本-图像数据集不需要清洗,可以扩展到更大的规模。Florence 进一步扩展了跨模态共享表示,从粗略场景到细粒度物体,从静态图像到动态视频等,因此,学习到的共享表示更加通用,表现出卓越的性能。