使用 tfprobability 向 Keras 模型添加不确定性估计
截至目前,还没有主流方法可以从神经网络中获取不确定性估计。只能说,通常情况下,方法往往是贝叶斯主义的,涉及某种方式将先验置于模型权重之上。这也适用于本文中介绍的方法:我们展示了如何使用 tfprobability(TensorFlow Probability 的 R 接口)以优雅且概念上合理的方式将不确定性估计添加到 Keras 模型中。
来源:RStudio AI博客大约六个月前,我们展示了如何创建自定义包装器以从 Keras 网络获取不确定性估计。今天,我们介绍一种更省力、运行速度更快的方法,即使用 tfprobability(TensorFlow Probability 的 R 包装器)。与本博客上的大多数帖子一样,这篇文章也不会很短,所以让我们快速说明一下阅读时间可以带来什么。
如何创建自定义包装器 tfprobability对这篇文章的期望
从不期望的内容开始:不会有一个方法告诉您如何准确设置所涉及的所有参数以报告“正确”的不确定性度量。但是,什么是“正确”的不确定性度量?除非您碰巧使用了一种没有(超)参数可调整的方法,否则总会有关于如何报告不确定性的问题。
不是 完全是 是不过,您可以期待的是获得 Keras 网络不确定性估计的介绍,以及关于调整(超)参数如何影响结果的经验报告。与上述帖子一样,我们在模拟和真实数据集(联合循环发电厂数据集)上执行测试。最后,代替严格的规则,您应该已经获得了一些可以转移到其他现实世界数据集的直觉。
可以 联合循环发电厂数据集您注意到我们上面谈论的 Keras 网络了吗?事实上,这篇文章还有一个额外的目标:到目前为止,我们还没有真正讨论过 tfprobability 如何与 keras 结合使用。现在我们终于做到了(简而言之:它们无缝地协同工作)。
Keras 网络tfprobability
keras
最后,在之前的文章中,偶然和认知不确定性的概念可能还比较抽象,但在这里应该会更加具体。
偶然 认知偶然与认知不确定性
让人想起将泛化误差分解为偏差和方差的经典方法,将不确定性分解为认知和偶然成分,将不可约部分与可约部分区分开来。
是