前景回顾
Welcome to back! 在《万字长文带你解读AIGC入门篇》 一文中,我们详细为大家介绍了AIGC
的相关概念、背景及其如此火爆的原因,接下来我们将进一步深入探讨AIGC背后的技术栈。
作为本系列的技术篇,将从多个角度来介绍AIGC
的技术栈,其中包括了Transformer
、SSL
、VAE
、GAN
、Diffusion
等大家均耳熟能详的词汇,这些技术都是AIGC
领域中必不可少且非常重要的一部分,对于理解AIGC
的原理和实现方式都非常关键。下面开始吧?
3. AIGC 背后的基础技术
本文将 AIGC 视为一组使用人工智能方法生成内容的任务或应用程序。其中,生成技术是指使用机器学习模型生成新的内容,例如 GAN 和扩散模型。创作技术是指利用生成技术生成的内容进行进一步的创作和编辑,例如对生成的文本进行编辑和改进。
3.1 生成技术
在AlexNet
的惊人成功之后,深度学习引起了极大的关注,它有点成为了人工智能的代名词。与传统的基于规则的算法不同,深度学习是一种数据驱动的方法,通过随机梯度下降优化模型参数。深度学习在获取卓越的特征表示方面的成功,取决于更好的网络架构和更多的数据,这极大地加速了AIGC
的发展。
3.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 成为计算机视觉领域的主流模型。
3.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 进一步扩展了跨模态共享表示,从粗略场景到细粒度物体,从静态图像到动态视频等,因此,学习到的共享表示更加通用,表现出卓越的性能。
3.2 创作技术
深度生成模型(DGMs
)是一组使用神经网络生成样本的概率模型,大体可分为两大类:基于似然的和基于能量的。基于似然的概率模型,如自回归模型和流模型,具有可追踪的似然,这为优化模型权重提供了一种直接的方法,即针对观察到(训练)数据的对数似然进行优化。变分自编码器(VAEs)中的似然则不完全可追踪,但可以优化可追踪的下限,因此,VAE
也被认为属于基于似然的组,其指定了一个归一化的概率。相反,能量模型以未归一化概率即能量函数为特点。在没有对标准化常数可追踪性的限制下,能量模型在参数化方面更加灵活,但难以训练。此外,GAN
和 扩散模型 虽然是从不同的时期发展而来,但与能量模型均密切相关。接下来,我们将介绍每一类基于似然的模型以及如何训练基于能量的模型以及 GAN 和扩散模型的机制。
3.2.1 Likelihood-based models
- Autoregressive models
自回归模型是一种可以用来预测序列数据的模型,它能够学习序列数据的联合分布,并且使用先前时间步的变量作为输入来预测每个变量在序列中的取值。这种模型假设序列数据的联合分布可以被分解成一系列条件分布的乘积,这也就是所说的“条件概率分解”。
上面我们简单跟大家聊到过RNN
,本质上自回归模型和RNN
都需要使用前面的时间步来预测当前时间步的值,但是它们的实现方式略有不同。在自回归模型中,前面的时间步直接作为输入提供给模型,而在 RNN 中,前面的时间步通过隐藏状态传递给模型。因此,可以将自回归模型看作是一个前馈神经网络,它接收前面所有时间步的变量作为输入。
在早期的工作中,自回归模型主要用于建模离散数据。其中,Fully Visible Sigmoid Belief Network, FVSBN
使用逻辑回归函数来估计条件分布,而Neural Autoregressive Distribution Estimation, NADE
则使用单隐藏层的神经网络。随着研究的发展,自回归模型的应用逐渐扩展到连续变量的建模。自回归模型已经在多个领域得到了广泛应用,包括计算机视觉如PixelCNN
和PixelCNN++
、音频生成WaveNet
和自然语言处理Transformer
等等。这些应用中,自回归模型被用来生成图像、音频、文本等序列数据。
- MCMC & NCE
早期优化能量模型的方法采用了基于MCMC
即马尔可夫链蒙特卡罗的方法来估计对数似然的梯度,但这需要进行繁琐的随机样本抽取。因此,一些工作旨在改善 MCMC 的效率,代表性的工作是Langevin MCMC
。尽管如此,通过 MCMC 获取所需梯度需要大量的计算,而对比散度contrastive divergence, CD
成为一种流行的方法,通过各种变体的近似来减少计算量,包括持久 CD ,平均场 CD 和多网格 CD 。
另一条研究路线是通过噪声对比估计Notice Contrastive Estimation, NCE
来优化能量模型,该方法将概率模型与另一个噪声分布进行对比。具体来说,它优化以下损失函数:
- Score matchingScore matching
得分匹配是一种用于优化基于能量的模型的无 MCMC 方法,旨在最小化模型和观察到的数据之间的对数概率密度的导数。但是,通常无法获得数据得分函数,而去噪得分匹配是一种代表性方法,它使用带噪声的样本来近似数据得分,通过迭代去除噪声,从而生成干净的样本。
3.2.3 from GAN to diffusion model
当涉及到深度生成模型时,您首先想到什么?答案取决于您的背景,但是 GAN 无疑是最常提到的模型之一。GAN 代表生成对抗网络,是由 Goodfellow 及其团队于 2014 年首次提出的,并于 2016 年被图灵奖 Yann Lecun 评为“机器学习领域过去10年中最有趣的想法”。
最近,一种称为扩散模型(diffusion model
)的新型深度生成模型家族挑战了 GAN 长期以来的统治地位。扩散模型在图像合成方面取得了压倒性的成功,并扩展到其他形式,如视频、音频、文本、图形等。考虑到它们对生成AI的发展的支配性影响,因此本文将集中围绕 GAN 和扩散模型进行讲解。
由于公式编辑器的限制,完整版本请移步至微信公众号查看全文!
我们将统一整理成完整版的 PDF 文档形式送给各位小伙伴,欢迎持续关注!如果您对 AIGC 技术非常感兴趣,非常欢迎您添加小编微信 cv_huber 备注 AIGC
加入我们的小社群一同探讨,广告党勿扰!
如果您也对人工智能和计算机视觉全栈领域感兴趣,强烈推荐您关注有料、有趣、有爱的公众号『CVHub』,每日为大家带来精品原创、多领域、有深度的前沿科技论文解读及工业成熟解决方案!欢迎添加小编微信号: cv_huber,备注"CSDN",加入 CVHub 官方学术&技术交流群,一起探讨更多有趣的话题!