首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VAE的重建损失函数

VAE的重建损失函数
EN

Stack Overflow用户
提问于 2022-06-30 15:58:54
回答 1查看 491关注 0票数 0

我正在从TensorFlow文档https://www.tensorflow.org/tutorials/generative/cvae#define_the_loss_function_and_the_optimizer提供的一个例子中学习

通过最大限度地提高边际对数似然上的证据下限(ELBO)来训练。

在实践中,优化这个期望值的单样本Monte估计:logp(x连z)+ logp(z) -logq(z\x)。

损失职能的执行情况如下:

代码语言:javascript
复制
def log_normal_pdf(sample, mean, logvar, raxis=1):
  log2pi = tf.math.log(2. * np.pi)
  return tf.reduce_sum(
      -.5 * ((sample - mean) ** 2. * tf.exp(-logvar) + logvar + log2pi),
      axis=raxis)


def compute_loss(model, x):
  mean, logvar = model.encode(x)
  z = model.reparameterize(mean, logvar)
  x_logit = model.decode(z)
  cross_ent = tf.nn.sigmoid_cross_entropy_with_logits(logits=x_logit, labels=x)
  logpx_z = -tf.reduce_sum(cross_ent, axis=[1, 2, 3])
  logpz = log_normal_pdf(z, 0., 0.)
  logqz_x = log_normal_pdf(z, mean, logvar)
  return -tf.reduce_mean(logpx_z + logpz - logqz_x)

由于此示例使用MINIST数据集,因此可以将x标准化为0,1,此处使用sigmoid_cross_entropy_with_logits

我的问题是:

(https://en.wikipedia.org/wiki/Huber_loss)?

  • Another
  1. ,如果x > 1,可以使用什么样的损失?
  2. 可以用其他的损失函数作为重建损失,例如Huber损失,例如使用了MSE损失(如下所示),MSE损失是一个有效的ELBO损失来度量p(x=z)吗?

https://www.tensorflow.org/guide/keras/custom_layers_and_models#putting_it_all_together_an_end-to-end_example

代码语言:javascript
复制
    # Iterate over the batches of the dataset.
    for step, x_batch_train in enumerate(train_dataset):
        with tf.GradientTape() as tape:
            reconstructed = vae(x_batch_train)
            # Compute reconstruction loss
            loss = mse_loss_fn(x_batch_train, reconstructed)
            loss += sum(vae.losses)  # Add KLD regularization loss
EN

回答 1

Stack Overflow用户

发布于 2022-06-30 18:06:51

在变分自动编码器的损失函数中,联合优化两个项:

预测与标号之间的重建损失,类似于参数化概率分布与假定的真概率分布之间的正态autoencoder

  • The距离。在实际应用中,通常假定真实分布为高斯分布,距离是用Kullback-Leibler散度

度量的。

对于重建损失部分,您可以选择适合您的数据的任何损失函数,包括MSE和Huber。不过,标准化您的输入特性通常仍然是个好主意。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72818794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档