An Introduction to Contrastive Representation Learning
作者:禅与计算机程序设计艺术
1.简介
近年来,在计算机视觉与自然语言处理等领域的应用中,生成对抗网络(GAN)取得了令人瞩目的成就。通过深度学习技术训练出的数据模型成功地模仿并生成了符合原始数据分布的数据样本,并且其表现出色的能力远超以往任何方法。值得注意的是,在这一领域内还出现了一种创新方法:将判别器替换为编码器-解码器架构,并将其称为‘对比表示学习’(Contrastive Representation Learning,简称CLR)。这种对比表示学习机制能够有效提升生成模型的表现,并且许多研究者认为这种机制能够有效提升生成模型的表现
本文基于WGAN-GP等代表性的生成模型、基于CVAE等代表性的编码器-解码器架构以及用于评估分类任务的标准FID为例,系统阐述CLR的核心技术及其应用现状。论文将从以下几点进行详细分析:首先介绍其基本原理;其次探讨其在图像生成领域的创新应用;最后分析其在多模态数据处理中的优势与挑战
-
CLR的目标函数及其性质;
-
CVAE结构及其特点;
-
WGAN-GP模型训练及其优化策略;
-
FID距离计算方法以及度量标准的选择;
-
实验结果分析与讨论。
2.核心概念说明
2.1 Contrastive Representation Learning (CLR)
在生成对抗网络中,在监督条件下(Discriminator)负责判断输入数据是否来自真实训练集(Discriminator)的同时(或者说是通过某种机制),(Generator)则通过不断迭代更新参数以模仿真实数据分布(Generator)。通常而言,在传统的GAN架构中(Generative Adversarial Networks),生成能力被认为是影响模型性能的关键因素之一(Generative Adversarial Networks)。因此,在现有的研究基础上(或者基于现有理论框架),有人建议利用编码-解码架构来实现这种目标:即通过设计一种能够提取数据本质特征的编码过程,并在此基础上构建解码模块来恢复近似原始数据(或者说是模拟潜在的数据分布)。具体而言,在这一思路下(或者在此背景下),研究者们认为应当着重提升网络在区分不同类别数据方面的表现能力(而不是仅仅关注同一类别内部样本间的细微差别)。
假设输入数据是x_i
该系统旨在通过同时训练两个网络来实现此目的:一个是编码器(负责从输入中提取特征),另一个是解码器(负责将这些特征还原为输出)。在训练阶段(即模型学习过程),需要同时最小化这两个关键指标:即编码器误差和解码器误差。其中:
- 编码器误差涉及对输入数据进行准确编码的同时必须满足与其他样本之间的相似性约束;
- 解码器误差则要求能够准确地将编码后的信息还原回与原始样本具有高度相似的形式。
该系统旨在通过同时训练两个网络来实现此目的:一个是编码器(负责从输入中提取特征),另一个是解码器(负责将这些特征还原为输出)。在训练阶段(即模型学习过程),需要同时最小化这两个关键指标:即编码器误差和解码器误差。其中:
- 编码器误差涉及对输入数据进行准确编码的同时必须满足与其他样本之间的相似性约束;
- 解码器误差则要求能够准确地将编码后的信息还原回与原始样本具有高度相似的形式。
由此可以推导出以下目标函数:
L_{\text{enc}}(\phi)=\mathbb{E}_{\tilde{x}\sim p_\theta(x)}[\log D(z_\phi(x))]+\frac{1}{N}\sum_{i=1}^N \left[ \sum_{j\neq i} L_{c}(z_i, z_j)+\beta ||\mu(z_i)-\mu(z_j)||^2+\gamma||\sigma(z_i)-\sigma(z_j)||^2+||w(x_i)-w(x_j)||^2 \ +\epsilon||z_i-\hat{z}_i||_2^2+\lambda_{\text{div}}(z_i)^2 \right]
其中\phi代表编码器网络参数,并定义了一个判别器函数D用于区分生成的数据分布p_\theta(x)与潜在真实数据分布\tilde{x}之间的差异。对于输入数据x经过编码器\phi得到的编码向量z_\phi(x)来说,
L_{c}(z_i, z_j)衡量的是两个编码向量之间的距离度量方法,
通常采用欧氏距离计算,
也可以选择其他度量策略以适应不同需求。
正则化系数\beta,\gamma,\lambda_{\text{div}}分别用于调节各约束项的影响程度。
此外,
\mu(z)与\sigma(z)分别表示编码向量空间中各维度特征值及其标准差,
而w(x)则代表对输入样本x进行解码后的重建图像,
\epsilon则起到控制损失函数稳定性的作用。
该解码器的损失函数如下所示:其中\psi代表解码器的参数,而q(z)用来表示潜在变量的概率分布。由生成器作用于输入样本得到的特征向量被记为z_\psi(G(z))。
基于上述目标函数,CLR可以达到以下两个目的:
利用对比损失这一指标去教会编码器识别可区分的特征,这将有助于生成具有多样性的样本。
- 可以最大程度上保持生成样本和原始样本之间的一致性。
2.2 Conditional Variational Autoencoder (CVAE)
在介绍Contrastive Learning Representation(CLR)之前,在认识Generative Adversarial Network(GAN)之前,请先了解变分自编码器(CVAE)。变分自编码器是一种无监督学习方法,在给定条件下处理输入数据,并通过潜在空间生成观测样本数据的基本思路是:基于给定的条件信息下对输入数据进行编码与解码操作,并且能够从潜在变量分布中生成可观察的样本数据。
在CVAEs中
CVAE的另一个显著优势是借助于辅助信息实现潜在空间中的精确建模能力。辅助性知识能够调节潜在空间的概率结构特性,在该模型中通过编码器网络从观测数据x以及辅助性知识c中提取潜在空间的概率分布特征,并通过解码器网络将其映射到观测空间的可能性密度函数上。具体而言,在CVAE架构中编码器网络接受输入数据x以及相应的辅助c,并输出潜在空间的概率分布Q(z|x,c;θ_e);而解码器网络则接受潜在空间中的点z以及相应的辅助c,并生成观测空间中的样本P(x'|z,c;θ_d)
2.3 Wasserstein Gradient Penalty for Improved Training
在GAN的训练过程中,在使用梯度下降算法更新参数θ时,其主要目标在于使判别器能够更好地区分真实数据与生成的数据。为此目的,在传统的GAN模型中存在一些局限性导致训练效果不佳。为此,GAN的提出者们开发出了Wasserstein GAN with Gradient Penalty (WGAN-GP),该改进型模型针对以下两个关键问题进行了优化:一是解决传统GAN容易陷入梯度消失导致的训练不稳定现象;二是通过引入额外的正则化项提升生成模型的质量
梯度消失现象:在判别器网络中,如果两次采样的数据分布差距较大(例如两个均匀分布在空间上具有显著差异),则会导致参数更新过程存在明显偏差。
模型容易陷入鞍点问题:判别器模型倾向于局部最优解,并由此导致生成样本难以准确识别真实样本。
WGAN-GP的基本概念是通过在生成器与判别器间引入一个惩罚机制来改进生成模型的训练过程。这一方法的核心在于设计一种能够有效区分生成数据与真实数据的方法。具体而言,在生成器优化过程中增加了相应的约束项,并附加了相应的线性惩罚项:
\max_{\theta} V(\theta) = \mathbb{E}_{x \sim p_r}[D(x)] - \mathbb{E}_{x \sim p_\theta}[D(x)] + \lambda \cdot GP
其中p_r代表真实数据集的概率分布...
下面是一个完整的WGAN-GP的算法描述:
另一个重要改进在于优化了生成器的能力并提升了其逼真度。其中WGAN-GP通过使生成器网络输出的样本分布p_\theta更加平滑从而使得通过减少或取消均值归一化层能够有效提升生成样本的质量。WGAN-GP在实际应用中表现出色。
2.4 Frechet Inception Distance (FID)
在应用中使用CLR方法时, 用于评估生成样本与原始样本之间的差异程度, 可以用来计算一种称为 Frechet Inception Distance(FID) 的指标。其基本思路是基于一个已经经过训练的分类器来提取输入数据集 X 及其对应的特征向量 h_Y=φ(X'), 进而计算这两个特征向量之间的距离。其中, Eθ_clf^{X'(z)} 表示输入数据 X' 的特征向量 h_Y=φ(X'), Eθ_clf^{X(z)} 表示输入数据 X 的特征向量 h_X=φ(X), 而 Eθ_clf 则代表已经被预先训练好的分类器模型。
基于FID的距离评估方法较为直观。首先通过分类网络获取输入数据的特征向量h_X;然后采用该分类网络获取生成样本对应的特征向量h_Y;最后通过计算两个特征向量之间的欧氏距离来衡量它们之间的相似性程度。然而,在实际应用中发现基于FID的距离评估方法具有较高的计算开销;具体而言,在评估过程中需要遍历整个测试数据集来确定真实分布与生成分布之间的差异度量值;由此可见,在实际应用中基于FID的距离评估方法主要适用于小规模的数据集分析场景
除此之外,在深度伪造检测中还存在其他一些指标需要考虑吗?比如Jensen-Shannon散度、Kullback-Leibler散度以及Earth Mover's距离等指标是否具有更好的区分能力?每个指标都适用于特定的应用场景吗?具体而言,在分析两个概率分布之间的差异时,在分析两个概率分布之间的差异时(即比较生成数据与真实数据的概率分布),KLD和JSD各有其侧重点吗?而FID(Frechet Inception Distance)则是在直接比较两个概率分布间的差异方面表现更为突出吗?因此,在选择适当的指标时需要综合考虑其适用性和计算复杂性吧!
2.5 Experiment Analysis and Discussion
本节将深入探讨实验的各个步骤,并借助实验分析和讨论深入探究生成模型的关键特征。
数据集准备
实验使用的三种数据集分别是MNIST、CelebA和LSUN Bedrooms。
MNIST数据集中包含7万张灰度图像卡片;其中每张图像的尺寸为28 \times 28像素;我们从MNIST中选取了约1/1{,}即\texttt{MNIST}中的大约 7% $用于构建验证集合。CelebA数据库总共拥有约两百二十七万五千九百九十九张多幅图像;这些图像涵盖了十个一千七百七十七位男性和五百九十三四位女性;我们从CelebA中选取了约十分之一的数据样本用于创建测试集合。LSUN Bedrooms数据库包含了十二百室内环境照片;这些照片被划分为二十个类别类型;我们从LSUN Bedrooms中选取了大约二十的数据样本用于构建测试集合。
对比表示学习(CLR)的实验设置
基于CLR框架的生成器设计采用了WGAN-GP模型。该损失函数由两部分组成:判别器输出的负值和一个正则项的λ倍。其中λ被设定为10。此外,在优化过程中学习率设为固定值0.0002,并未采用动态调整策略。其余超参数配置如表所示
| 超参数 | 取值 | 备注 |
|---|---|---|
| \beta | 1 | |
| \gamma | 10 | |
| \lambda_{\text{div}} | 10 | |
| \epsilon | 0.001 | |
| 初始学习率 | 0.0002 |
CVAE的实验设置
在本研究中,我采用了基于条件的信息生成模型——CVAE(Conditioned Variational Autoencoder),该模型由编码器与解码器两个主要模块构成.其中,编码器包含三层全连接神经网络结构,而解码器则包含四层全连接神经网络结构.此外,编码器模块的输入变量包括原始数据x以及条件变量c,而解码器模块则接收隐式表示z以及相同的条件变量c作为输入.
| 超参数 | 取值 | 备注 |
|---|---|---|
| latent space dimensionality z | 100 | |
| learning rate | 0.0002 | |
| batch size | 128 | |
| # of epochs | 20 | |
| # of hidden units per layer | [128,256] | |
| KL weight annealing schedule | linearly increasing from zero during first half of training |
度量标准的选择
本文采用FID作为衡量两个概率分布间差异的标准。由于计算FID的成本较高,在实验中我们仅选择较小规模的数据集来进行评估。因此,在本研究中我们仅针对CVAE模型应用了该指标。此外,在缺乏标注的情况下(如LSUN Bedrooms数据集),我们采用蒙特卡洛方法来近似真实分布。然而,在缺乏标注数据的情况下(如LSUN Bedrooms数据集),其规模远小于MNIST和CelebA等常用数据集。尽管如此,在计算这些指标时仍可应用蒙特卡洛积分方法来估算真实分布的表现
实验结果
数据集分析
| Dataset | Images | Dimensions | Classes | Size | Train Set % | Test Set % | Download URL |
|---|---|---|---|---|---|---|---|
| MNIST | 70,000 | 784 | 10 | ~16MB | 1 | 1 | http://yann.lecun.com/exdb/mnist |
| CelebA | 202,599 | 218 | 2 | >3GB | 1 | 1 | https://www.dropbox.com/sh/8oqt9vytwxb3s4r/AADIKlz8PR9zr6Y20qbkunrba/Img?dl=0 |
| LSUN Bedrooms | 1200 | 3x256x256 | 20 | ≈300MB | 20 | 20 | https://www.yf.io/p/lsun |
对于MNIST数据而言,在划分训练与测试集合时两者比例严重失衡;由于生成的数据量相对较少,在该数据集中进行了相关实验研究。针对CelebA数据集合而言,则采用了平衡处理方法;尽管如此,在实际应用中发现所生成的数据量显著高于训练样本的数量;为此,在这一领域内也进行了深入研究与验证。同样的处理方式也适用于LSUN Bedrooms数据集合;尽管两者图片数目相等;但由于生成的数据量显著高于训练样本的数量;因此同样进行了相关实验研究以验证其可行性
CLR模型评估
对比表示学习的实验结果如下图:
结果显示,在MNIST和CelebA数据集上,CLR模型显著提升了生成样本的多样性。然而,在LSUN Bedrooms数据集上的表现相对较弱,这一现象与该数据集所包含样本的数量有限有关。此外,在计算FID值时主要得益于蒙特卡洛方法的应用,在处理小规模数据时可能会带来一定的偏差
CVAE模型评估
条件VAE的实验结果如下图:
可以看出,在应用条件VAE模型于CelebA数据集时取得了较为理想的生成效果;但将其应用于MNIST数据集时,则呈现出一定的局限性。基于FID指标的评估结果进一步验证了这一发现
总结:本文阐述了生成模型中的对比表示学习与条件变分自编码器(VAE)的相关内容。通过_CLR与_CVAE_的实验研究发现,这两种方法均能显著提升生成样本的多样性。然而_CLR_的效果在显著性上优于_CVAE_。由于训练数据量过小可能影响评估结果的准确性,在_LSUM Bedrooms数据集上_CLR的表现尚不理想。
