【问题标题】:Explaining Variational Autoencoder gaussian parameterization解释变分自编码器高斯参数化
【发布时间】:2017-03-04 00:49:18
【问题描述】:

在原始的 Auto-Encoding Variational Bayes paper 中,作者在第 2.4 节中描述了“重新参数化技巧”。诀窍是将潜在状态 z 分解为可学习的均值和 sigma(由编码器学习)并添加高斯噪声。然后你从 z 中采样一个数据点(基本上你生成一个编码图像)并让解码器将编码数据点映射回原始图像。

我很难理解这是多么奇怪。有人可以解释一下潜变量模型,具体来说:

  1. 为什么我们假设潜在状态是高斯的?
  2. 高斯如何生成图像?
  3. 反向传播如何破坏编码器以学习高斯函数而不是未知非线性函数?

这是 TensorFlow 中 here 的潜在模型的示例实现。

...neural net code maps input to hidden layers z_mean and z_log_sigma

self.z_mean, self.z_log_sigma_sq = \
self._recognition_network(network_weights["weights_recog"], 
                           network_weights["biases_recog"])

# Draw one sample z from Gaussian distribution
n_z = self.network_architecture["n_z"]
eps = tf.random_normal((self.batch_size, n_z), 0, 1, 
                           dtype=tf.float32)
# z = mu + sigma*epsilon
self.z = tf.add(self.z_mean, 
                tf.mul(tf.sqrt(tf.exp(self.z_log_sigma_sq)), eps))

...neural net code maps z to output

【问题讨论】:

    标签: tensorflow autoencoder


    【解决方案1】:
    1. 他们没有假设编码器的激活遵循高斯分布,而是强制执行在可能的解决方案中选择类似的高斯分布。

    2. 图像是通过解码激活/特征生成的,激活分布类似于高斯分布。

    3. 它们最小化了激活分布和高斯分布之间的 KL 散度。

    【讨论】:

    • 谢谢,我想在我写这个问题的时候我错过了 KL 最小化的重要性。
    猜你喜欢
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-09
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    相关资源
    最近更新 更多