python - 为什么重建损失函数乘以VAE中的常数?
问题描述
我试图了解如何使用自动编码器损失函数的最佳方式。
所以最常见的一点是,常见的损失函数由 KL 损失和重建损失组成。
真正让我困惑的是重建损失乘以一些大常数,例如
xent_loss = self.original_dim * metrics.binary_crossentropy(self.x, x_decoded_mean)
kl_loss = - 0.5 * K.sum(1 + self.z_log_var - K.square(self.z_mean) - K.exp(self.z_log_var), axis=-1)
vae_loss = K.mean(xent_loss + kl_loss)
来自https://github.com/mattiacampana/Autoencoders/blob/master/models/vae.py
或来自https://towardsdatascience.com/variational-autoencoders-as-generation-models-with-keras-e0c79415a7eb
你能解释一下吗?另外我不明白的是,他们以某种方式使用 reduce_mean 并以某种方式使用 reduce_sum 聚合函数。这些术语有什么区别吗?例如,在 KL 中使用 reduce_sum 并在重建函数中使用 reduce_mean 会很痛苦吗?
感谢您的任何回复
解决方案
推荐阅读
- java - 在 tomcat 中部署后,出现异常:已建立的连接被主机中的软件中止
- python - Post API——创建代码后需要遵循哪些步骤,以便我可以通过此 API 将数据添加到 txt 文件中
- python - 无法加载库“C:/Program Files/PostgreSQL/9.4/lib/plpython3.dll”:找不到指定的模块
- reactjs - React - 将菜单选项从子元素传递到父菜单
- javascript - 我有办法从浏览器后退按钮历史记录中删除 URL?
- javascript - Vue-tables2 custom dropdown
- laravel - Auth::user() 在模块 __construct() 上返回 null
- ruby-on-rails - 使用 axlsx_rails 在 MS Excel 中打开生成的文件时出现问题
- c++ - 在两个类之间连接 QPushButton
- react-native - exp init Project [11:31:26] zlib:文件意外结束