你确定吗?一种从神经网络获取不确定性估计的贝叶斯方法

在深度学习中,没有明显的方法可以获得不确定性估计。2016 年,Gal 和 Ghahramani 提出了一种既有理论依据又实用的方法:在测试时使用 dropout。在这篇文章中,我们介绍了这种方法的改进版本(Gal 等人,2017 年),让网络本身了解其不确定性。

来源:RStudio AI博客

如果数据科学家有一套生存法则,那么其中就必须是:始终在预测中报告不确定性估计。但是,我们在这里使用神经网络,与 lm 不同,Keras 模型不会方便地输出权重的标准误差之类的东西。我们可能会尝试考虑滚动您自己的不确定性度量 - 例如,对从不同随机权重初始化、不同数量的时期或不同数据子集训练的网络的预测进行平均。但我们可能仍然担心我们的方法有点......临时的。

始终在预测中报告不确定性估计 lm 标准误差 临时

在这篇文章中,我们将看到一种从神经网络获取不确定性估计的实用且理论扎实的方法。但是,首先,让我们快速讨论一下不确定性为何如此重要——除了它有可能挽救数据科学家的工作之外。

为什么是不确定性?

在一个自动化算法被赋予越来越多生命关键任务的社会中,一个答案立即浮现在脑海中:如果算法正确量化了其不确定性,我们可能会让人类专家检查更不确定的预测并可能对其进行修改。

这只有在网络自我指示的不确定性确实表明错误分类的概率更高时才会起作用。 Leibig 等人(Leibig et al. 2017)使用了下面描述的方法的前身来评估神经网络在检测糖尿病视网膜病变方面的不确定性。他们发现,不确定性的分布确实会根据答案是否正确而有所不同:

(Leibig 等人 2017) Leibig 等人 2017 糖尿病视网膜病变
图片来自 Leibig 等人 2017 年 (Leibig 等人 2017)。绿色:错误预测的不确定性估计。蓝色:正确预测的不确定性估计。
(Leibig 等人 2017) Leibig 等人 2017 合格 认知不确定性 博客 密集 图书馆 (