您如何计算变分自动编码器在三维空间上的 KL 散度?

人工智能 卷积神经网络 计算机视觉 数学 变分自动编码器 kl-散度
2021-10-19 21:39:36

我正在尝试实现一个变分自动编码器(如第 3.1 节所示:https ://arxiv.org/pdf/2004.06271.pdf )。

它与传统的 VAE 不同,因为它将输入图像编码为3 维潜在特征图换句话说,潜在特征图具有宽度、高度和通道维度,而不仅仅是像传统 VAE 那样的通道维度。

在计算作为损失函数的一部分的 Kullback-Liebler 散度时,我需要作为编码器输出的均值协方差。但是,如果潜在特征图是三维的,这意味着编码器的输出是三维的,因此每个潜在特征都是一个二维矩阵。

如何从 2D 矩阵导出均值和协方差来计算 KL 散度?

1个回答

您的三维潜在表示由平均像素协方差像素的两个图像组成,如图 3 所示。它表示具有潜在表示中每个像素的均值和协方差的高斯分布。每个像素值都是一个随机变量。

现在,仔细看看 KL-loss Eq。3及其在论文中的相应描述:

LKL=12×(W16×H16)m=1M[μm2+σm2log(σm2)1]

最后,M是潜在特征的维度θRM平均μ=[μ1,...,μM]和协方差矩阵Σ=diag(σ12,...,σM2),[...]。

协方差矩阵是对角的,因此所有像素值都是相互独立的这就是为什么我们对方程给出的 KL 散度有这种很好的分析形式的原因。3.因此,您可以将 2D 随机矩阵简单地视为大小的随机向量M=W16×H16(×3如果您想包括颜色尺寸)。第三维(RGB通道)也可以被认为是独立的,因此也可以将其展平为向量并附加。实际上,这就是上面句子后半部分所指出的论文中所做的:

通过从标准多元高斯采样重新参数化ϵN(0,IM), IEθ=μ+Σ12ϵ.