深度学习如何估计模型不确定性(epistemic uncertainty)

Motivation

这里模型不确定性的重要性在此就不赘述了.

  • 其实,笔者之前就有一个疑惑:为什么在神经网络中模型不确定度不能按照传统模型那样去计算熵? 文献指出:主流的Deep Learning都采用最大似然估计或最大后验来训练,因此产生的往往是一个point estimation而不是uncertainty value. 具体来说, 直观来说Softmax层之后的概率向量可以用来解释模型的置信度. 但是实际上模型依然会对具有很大Softmax输出的预测表明较大的不确定性.
  • 大部分不确定性估计算法都是基于Bayesian Neural Networks (可以理解为概率性的神经网络, 认为其参数服从一定的先验分布), 给定输入时就可以产生具有一定分布性质的输出用来计算模型不确定度. 但是计算非常复杂,只是理论上的保证.

贝叶斯神经网络及Dropout

  1. 简介
    传统的神经网络是通过MLE来优化参数的, 但是会忽略不确定性. 因此BNN被提出以克服上述缺陷,通过对NN网络的参数给一定的先验分布.
  2. 算法 (注意其中Monte Carlo Sampling的使用,以及背后变分近似的伯努利分布对最后dropout的影响)
    在这里插入图片描述
  3. model uncertainty (epistemic uncertainty)
    其实已经有了贝叶斯网络, 本质上就可以得到具有一定概率分布的输出. 具体来说, 可以进行多次forward propagation得到多个输出, 然后计算其entropy, variance或者mutual information 作为模型不确定度.

Conclusion

笔者为什么写这篇博客是因为发现中文博客太少关注uncertainty estimation在神经网络中. 其实这说难以理解也不算很复杂, 主要理清楚bayesian neural network是产生uncertainty的关键 (主要是它直接产生具有一定概率分布的输出). 然后在计算BNN时, 主要扣住P(w|D)的变分伯努利近似去进行有效的bayesian inference --> 也就是所谓的 Test-Time Dropout.

  • 27
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值