生成式AI模型类型
生成模型的几种基础类型
Section titled “生成模型的几种基础类型”生成模型(Generative models)已成为现代人工智能的基石,能够创建新颖而复杂的输出,例如图像、文本、音频、视频和结构化数据,这些输出类似于原始训练样本。这些模型主要用于无监督或自监督学习,学习数据的底层概率分布。
本章将探讨生成模型中三种基础且影响广泛的类型:生成对抗网络(Generative Adversarial Networks, GANs)、自动编码器(Autoencoders, AEs)和变分自动编码器(Variational Autoencoders, VAEs)。尽管诸如 Transformers 和 Diffusion Models 等较新的架构现在在许多最先进的应用中占据主导地位,但理解这些早期模型至关重要,因为它们为许多高级技术提供了概念基础。
生成对抗网络(GANs)
Section titled “生成对抗网络(GANs)”生成对抗网络(GANs)由 Ian Goodfellow 及其同事于 2014 年提出,是一类深度学习架构,其中两个神经网络——生成器(Generator, G)和判别器(Discriminator, D)在一个零和博弈(zero-sum game)中同时进行训练。
GANs 的工作原理
Section titled “GANs 的工作原理”GAN 框架的工作方式如下:
- 生成器(G):接收随机噪声(一个潜在向量
z)作为输入,并尝试将其转换成类似于真实数据分布的合成数据样本。其目标是产生足够逼真、能够“欺骗”判别器的样本。 - 判别器(D):充当二分类器。它接收来自训练集的真实数据样本和生成器产生的虚假样本。其目标是准确区分真实样本和虚假样本。
训练期间,G 和 D 具有相反的目标:G 试图最小化 D 正确识别其虚假样本的概率,而 D 则试图最大化其分类准确率。这种对抗过程驱动 G 生成越来越真实的样本。理想情况下,当 G 生成来自真实数据分布的完美复制品,并且 D 无法将它们与真实样本区分开时(以 50% 的准确率猜测),就达到了均衡状态。
训练涉及交替更新:首先固定 G,训练 D 若干步;然后固定 D,使用从 D 传递回 G 的梯度(gradients)训练 G。
GANs 的应用
Section titled “GANs 的应用”GANs 及其众多变体(例如,cGANs, StyleGAN, CycleGAN)在以下方面发挥了重要作用:
- 图像生成和操作:创建逼真的人脸、物体、场景;图像编辑、风格迁移(style transfer)、超分辨率(super-resolution)。
- 视频生成与预测:合成视频帧或预测未来帧。
- 数据增强(Data Augmentation):生成合成数据以扩充训练集,特别是针对稀有类别。
- 文本到图像合成:早期的有影响力的模型为当前的 multimodal 系统铺平了道路,尽管现在 transformers 和 diffusion models 在这方面更为突出。
- 异常检测:识别 GAN 难以重建或分类为真实的离群值(outliers)。
尽管功能极其强大,GANs 也以训练不稳定、模式崩溃(mode collapse)(生成器产生样本多样性有限)和评估困难而著称。
自动编码器(AEs)
Section titled “自动编码器(AEs)”自动编码器是无监督神经网络,旨在学习数据的高效表示(编码),通常用于降维或特征学习。尽管它们并非总能在从潜在空间生成多样化新样本的意义上具有生成性,但它们是理解 VAEs 和表示学习(representation learning)的基础。
自动编码器的架构
Section titled “自动编码器的架构”一个标准自动编码器主要包含两部分:
- 编码器(Encoder):将输入数据
x映射到较低维度的潜在表示z。这部分负责压缩信息。 - 瓶颈层(Bottleneck Layer / Latent Space):包含压缩表示
z的层。其维度是关键的设计选择。 - 解码器(Decoder):尝试从潜在表示
z重建原始输入x'。其目标是使x'尽可能接近x。
网络通过最小化 x 和 x' 之间的重建损失(reconstruction loss)(例如,均方误差 Mean Squared Error, MSE 或二元交叉熵 Binary Cross-Entropy, BCE)进行训练。
自动编码器的应用
Section titled “自动编码器的应用”- 降维(Dimensionality Reduction):学习非线性流形(manifolds),类似于 PCA,但更灵活。
- 特征学习(Feature Learning):编码器可用于为其他任务提取有意义的特征。
- 数据去噪(Data Denoising):去噪自动编码器训练用于从损坏版本重建原始数据。
- 异常检测(Anomaly Detection):重建误差高的样本可以标记为异常值。
- 预训练(Pre-training):编码器可以为监督式深度学习模型提供初始权重。
变分自动编码器(VAEs)
Section titled “变分自动编码器(VAEs)”变分自动编码器(Variational Autoencoders, VAEs)由 Kingma & Welling 以及 Rezende 等人于 2013/2014 年提出,是一种生成模型,它在自动编码器架构基础上增加了概率特性。与学习到潜在空间的确定性映射的标准 AEs 不同,VAEs 学习潜在变量的概率分布。
VAEs 的架构和组件
Section titled “VAEs 的架构和组件”VAEs 也包含一个编码器和一个解码器,但存在关键区别:
- 编码器(概率性):VAEs 编码器不是为输入
x输出一个单一的潜在向量z,而是在潜在空间中输出一个概率分布(通常是高斯分布)的参数(通常是均值μ和方差σ^2或对数方差)。因此,对于每个输入x,我们得到p(z|x)。 - 潜在空间采样(Latent Space Sampling):然后使用“重参数化技巧”(reparameterization trick)(
z = μ + σ * ε,其中ε从标准正态分布中采样)从这个学到的分布N(μ, σ^2)中采样一个潜在向量z。这使得梯度能够流过采样过程。 - 解码器(概率性生成器):接收采样的潜在向量
z,并将其映射回原始数据空间的概率分布p(x|z)的参数。例如,如果x是二进制的,解码器可能输出 Bernoulli 分布的参数。然后从这个分布中采样重建数据x',或者通常使用该分布的均值作为x'。
VAE 损失函数有两个项:重建损失(鼓励 x' 与 x 相似)和一个正则化项(regularization term),通常是学到的潜在分布 p(z|x) 与先验分布(prior distribution)(通常是标准正态分布 N(0,I))之间的 Kullback-Leibler (KL) divergence。这个 KL 散度项鼓励潜在空间变得平滑且连续,使其适合通过从先验分布 N(0,I) 中采样新的 z 向量并通过解码器进行生成。
变分自动编码器(VAEs)的应用
Section titled “变分自动编码器(VAEs)的应用”- 图像生成:通过从学到的潜在空间采样来生成新图像。VAEs 生成的图像通常比 GANs 模糊,但训练过程更稳定,且潜在空间更“规整”(well-behaved)。
- 数据可视化和插值(Interpolation):VAEs 潜在空间的连续性允许在数据点之间进行有意义的插值。
- 特征学习:学习 disentangled representations,其中不同的潜在维度对应于数据中不同的变化因素(factors of variation)。
- 药物发现和分子生成:生成具有所需特性的新型分子结构。
生成对抗网络(GANs)、自动编码器(AEs)和变分自动编码器(VAEs)是关键的生成模型,它们显著提升了 AI 理解和创建数据的能力。GANs 利用对抗训练过程生成高度逼真的样本。自动编码器擅长学习压缩数据表示。VAEs 将概率建模与自动编码器架构相结合,学习适合生成的光滑(smooth)潜在空间。
尽管诸如 Transformers 和 Diffusion Models 等较新的模型在许多生成任务中取得了最先进(state-of-the-art)的结果,但 GANs、AEs 和 VAEs 开创的原理——例如对抗学习(adversarial learning)、表示学习和概率潜在变量建模(probabilistic latent variable modeling)——仍然影响深远,并经常被融入更复杂的系统中。
理解这些基础模型对于希望深入研究快速发展的生成式 AI 领域的人来说至关重要。为了获得实践理解,可以考虑使用 PyTorch 或 TensorFlow 等库在标准数据集上探索这些模型的教程和实现。