Monte Carlo (MC) 在 Keras 中使用 R 丢失
Monte Carlo (MC) dropout in Keras with R
如何按照 YARIN GAL 的建议在卷积神经网络中使用 Keras 实施 Monte Carlo dropout 来估计预测不确定性?我正在使用 R.R-Code is here
我正在小批量拟合模型,并且想用 Monte Carlo dropout.Could 小批量评估模型 dropout.Could 在 Keras documentation.BTW 中找不到任何提示,我训练了我的带有标志 training=TRUE 的模型。
谢谢
常规丢弃仅在训练时随机丢弃神经元,而不是在测试时,因此这是 Dropout
class 的默认行为。如果你想要 MC dropout,你也需要在测试时使用 training=TRUE
,并且你必须多次 运行 前向传递:这会给你一个预测分布,你可以使用它例如,请计算平均值。
我对 R 不够熟悉,所以这里是我使用的 class 而不是标准 Dropout
class:
class MCDropout(keras.layers.Dropout):
def call(self, inputs, training=None):
return super(MCDropout, self).call(inputs, training=True)
如何按照 YARIN GAL 的建议在卷积神经网络中使用 Keras 实施 Monte Carlo dropout 来估计预测不确定性?我正在使用 R.R-Code is here
我正在小批量拟合模型,并且想用 Monte Carlo dropout.Could 小批量评估模型 dropout.Could 在 Keras documentation.BTW 中找不到任何提示,我训练了我的带有标志 training=TRUE 的模型。
谢谢
常规丢弃仅在训练时随机丢弃神经元,而不是在测试时,因此这是 Dropout
class 的默认行为。如果你想要 MC dropout,你也需要在测试时使用 training=TRUE
,并且你必须多次 运行 前向传递:这会给你一个预测分布,你可以使用它例如,请计算平均值。
我对 R 不够熟悉,所以这里是我使用的 class 而不是标准 Dropout
class:
class MCDropout(keras.layers.Dropout):
def call(self, inputs, training=None):
return super(MCDropout, self).call(inputs, training=True)