📜  KL 散度在变分自编码器中的作用(1)

📅  最后修改于: 2023-12-03 15:02:31.507000             🧑  作者: Mango

KL散度在变分自编码器中的作用

在机器学习中,变分自编码器 (Variational Autoencoder, VAE) 是一种生成模型,能够将数据压缩并生成与原始数据分布相似的新数据。VAE将自编码器 (Autoencoder) 与概率统计中的潜在变量模型 (Latent variable model) 结合在一起,以实现更好的数据表达和生成。

在实现VAE过程中,KL散度 (Kullback–Leibler divergence) 扮演着非常重要的角色。KL散度其实是一种测量两个概率分布差异性的方法,在VAE中用于衡量自编码器学习的隐变量分布 q(z|x) 与真实潜在变量分布 p(z) 之间的差异。

以下是KL散度在VAE中的应用流程:

  1. 对于给定的输入数据 x,编码器 (Encoder) 通过学习将其映射到潜在变量 z 的分布 q(z|x)。在VAE中通常选择高斯分布作为潜在变量的先验概率分布,因此 q(z|x) 也是一个高斯分布。

  2. 随机采样一个潜在变量 z,其服从于概率分布 q(z|x)。然后,将其解码成一个新的输出数据 x' (恢复的数据)。

  3. 计算潜在变量分布 q(z|x) 与先验概率分布 p(z) 之间的KL散度。KL散度的公式如下:

    KL散度公式

    其中,μ 和 σ 分别代表均值与方差,k 表示潜在变量的维度,可以理解为多个随机变量之间的 KL 散度的和。意义是衡量 q(z|x) 的分布与 p(z) 的分布之间的“距离”,“距离”越小,说明生成的样本越接近真实样本的分布。为了更好地优化网络,VAE通常不采用 KL 散度的原始形式,而是使用其变形的形式来进行优化。

  4. 将重建误差和 KL 散度结合起来,形成VAE的损失函数。

总的来说,在实现VAE时,KL 散度可以使网络生成与训练数据分布相似的新数据,并在一定程度上避免过拟合。因此,KL 散度是VAE优化过程的一个重要组成部分。

参考文献:

  1. Diederik P Kingma and Max Welling. Auto-Encoding Variational Bayes. arXiv preprint arXiv:1312.6114, 2013. https://arxiv.org/abs/1312.6114

  2. https://zhuanlan.zhihu.com/p/31875842