LSTM:转换为贝叶斯深度神经网络

数据挖掘 lstm 贝叶斯 辍学
2022-02-04 21:25:44

从 Yarin Gal 关于使用 Dropout 作为贝叶斯近似的研究论文(https://arxiv.org/pdf/1506.02142.pdf)开始,我试图将这个概念应用于我的序列预测模型。我的模型由 2 个 LSTM 层组成,然后是一个 relu 密集层,然后是一个 softmax 层。在每一层之后添加一个 dropout 层。

我找到了一些测量深度神经网络不确定性的实现(就像这里的这个:https ://fairyonice.github.io/Measure-the-uncertainty-in-deep-learning-models-using-dropout.html ),但它们似乎都适用于密集层而不是 LSTM 层。

总而言之,我要问的是:

  1. 如何在 LSTM 层测试期间打开 Dropout?
  2. 如何测量模型的不确定性?
1个回答

首先,我建议看以下论文:

Gal 和 Ghahramani,Dropout 在递归神经网络中的理论基础应用,2016

其中讨论了如何适当地将 dropout 作为近似变分贝叶斯模型应用。关键是在每个时间步使用相同的 dropout 掩码,而不是 IID Bernoulli 噪声。

至于测量模型的不确定性,请注意,虽然 dropout 为我们提供了一个近似的变分贝叶斯神经网络,但它无法获得变分后验密度,因此我们无法计算例如后验分布的熵。但是,我们可以简单地计算与模型不确定性密切相关的预测方差。只需运行n前向传递输入以获得输出YF=(y1,,yn). 然后计算您的度量(例如,回归案例中的协方差矩阵)YF. 例如,对于您的情况看似的分类,您可以使用预测熵。更多措施见

Gal 等人,使用图像数据进行深度贝叶斯主动学习,2017