生成式AI - 变分自动编码器



变分自动编码器 (VAE) 是一种深度学习模型,代表了无监督学习(如生成建模、降维和特征学习)的重大进步。

与传统的自动编码器不同,VAE 的主要思想是使用概率方法,不仅可以重建数据,还可以从学习到的潜在空间生成新的数据样本。阅读本章以了解变分自动编码器,它们与传统自动编码器的区别以及它们独特的损失函数。

什么是变分自动编码器?

变分自动编码器是一种神经网络,它通过添加概率方法扩展了传统自动编码器的概念。

传统的自动编码器旨在压缩和从潜在空间再生输入数据,而VAE通过使用概率方法,可以再生输入数据,并通过学习输入数据中的潜在模式生成新的数据样本。VAE 的这种能力使其非常适用于生成逼真的图像或创建新数据点等任务。

传统自动编码器与变分自动编码器

下表提供了传统自动编码器和变分自动编码器的全面比较 -

方面 自动编码器 变分自动编码器 (VAE)
潜在空间 自动编码器将输入数据编码到潜在空间中的一个确定性点。 变分自动编码器将输入数据编码到潜在空间中的一个概率分布。
编码器输出 自动编码器中的编码器生成输入的单个向量表示。 VAE中的编码器生成两个向量 - 潜在分布的均值和方差。
解码器输入 自动编码器中的解码器将编码器中的单个向量作为输入,以从潜在空间再生输入数据。 VAE中的解码器使用均值和方差向量作为输入,从潜在空间采样。
训练目标 自动编码器旨在最小化输入和输出之间的重建误差。 VAE旨在最小化重建误差和学习分布与先验分布之间的KL散度。
重建损失 自动编码器通常使用均方误差 (MSE) 或二元交叉熵作为重建损失。 VAE也使用均方误差 (MSE) 或二元交叉熵作为重建损失。
正则化 自动编码器本身不包含任何潜在空间正则化。 VAE包含一个KL散度项来正则化潜在空间。
生成能力 自动编码器无法从输入数据生成新的数据样本。 VAE可以生成类似于输入数据的新数据样本。
先验分布的使用 自动编码器在潜在空间中不使用先验分布。 VAE在潜在空间中使用先验分布,通常是标准正态分布。
复杂度 自动编码器易于实现。 由于概率组件和正则化的需要,VAE更复杂。
对过拟合的鲁棒性 如果没有适当的正则化,自动编码器可能容易过拟合。 由于KL散度项的正则化效果,VAE不太容易过拟合。
输出质量 自动编码器可以准确地重建输入数据。 VAE可以生成新的、真实的数据样本。
用例 自动编码器用于降维、特征提取、去噪和异常检测。 VAE用于生成建模、数据增强、半监督学习和图像合成。

变分自动编码器损失函数

变分自动编码器的损失函数结合了以下两个组件 -

重建损失

重建损失用于确保解码器可以从隐藏层接收到的潜在空间表示中准确地重建输入。它计算为原始输入和重建输入之间的均方误差 (MSE)。数学上,它表示如下 -

$$\mathrm{\mathcal{L_{reconstruction}} \: = \: \displaystyle\sum\limits_{i=1}^N || x_{i} \: - \: \hat{x}_{l} ||^{2}}$$

其中$\mathrm{x_{i}}$是原始输入,$\mathrm{\hat{x}_{l}}$是重建输入。

KL散度

KL散度衡量学习分布与先验分布的偏差。VAE中的先验分布通常是标准正态分布。KL散度项正则化潜在空间表示,并确保它具有对生成任务有用的属性。

数学上,它表示如下 -

$$\mathrm{\mathcal{L}_{KL} \: = \: -\frac{1}{2} \displaystyle\sum\limits_{j=1}^d ( 1 \: + \: log(\sigma_{j}^{2}) \: - \: \mu_{j}^{2} \: - \: \sigma_{j}^{2})}$$

其中$\mathrm{\mu_{j}}$是潜在分布的均值,$\mathrm{\sigma_{j}}$是潜在分布的标准差。

总VAE损失

训练VAE的总损失函数是两个关键组件的总和,即重建损失和KL散度。

$$\mathrm{\mathcal{L}_{VAE} \: = \: \mathcal{L}_{reconstruction} \: + \: \mathcal{L}_{KL}}$$

此总损失确保模型从潜在空间准确地重建输入,同时保持生成任务属性。

结论

在潜在空间中使用概率方法使变分自动编码器 (VAE) 成为传统自动编码器的强大扩展。这种变化允许VAE生成新的、真实的数据样本,并使其在机器学习和数据科学领域的各种应用中非常有用。

在本章中,我们详细讨论了VAE、它们的损失函数以及它们与传统自动编码器的比较。了解VAE与传统自动编码器的区别以及VAE损失函数的作用对于有效地使用这些模型非常重要。

广告