我一直在尝试使用TensorFlow概率(TFP)进行一些实验,但遇到了一些问题。
KL损耗系数的适当值是多少?
在Blundell(2015)的论文中,系数设置为1/M
(其中M
是小批量的数量)。在TFP给出的示例中,系数为1/mnist_data.train.num_examples
。为什么?
当我从2d输入变为3d图像量时,即使除以mnist_data.train.num_examples
,KL损失仍然比交叉熵(〜1)大得多(〜1k)。为什么?
获得该系数的适当值的准则是什么?也许两次损失项应该是相同的数量级?
当前系数仅考虑训练样本的数量,而不考虑网络复杂度或网络中参数的数量,我认为KL损失随模型的复杂性而增加。
由于某些软件生产和硬件支持的限制,我不使用keras.model.losses
来尝试实现具有KL损失的神经网络。我正在尝试使用TF 1.10和TFP 0.3.0。训练我的模型,问题是对于tf<=1.14
,tf.keras.model
在Keras模型中不支持tf.layers
,所以我不能直接使用原始模型远。有没有一种方法,不是从model.losses
而是从TF构造中的网络层或权重来获得KL损失?
批次归一化或组归一化在贝叶斯深度学习中是否仍然有用?
我一直在尝试使用TensorFlow概率(TFP)进行一些实验,但我遇到了一些问题。 KL损耗系数的适当值是多少?在Blundell(...
- 在Blundell(2015)的论文中,系数设置为1 / M(其中M是迷你批次的数量)。在TFP给出的示例中,系数被指定为1 / mnist_data.train.num_examples。为什么?