贝叶斯公式
贝叶斯深度学习
贝叶斯神经网络该怎么用?
网络的权重和偏置都是分布,想要像非贝叶斯神经网络那样进行前向传播(feed-forward),可以对贝叶斯神经网络的权重和偏置进行采样,得到一组参数,然后像非贝叶斯神经网络那样即可。
当然,我们可以对权重和偏置的分布进行多次采样,得到多个参数组合,参数的细微改变对模型结果的影响在这里就可以体现出来。这也是贝叶斯深度学习的优势之一,多次采样最后一起得到的结果更加 robust。
贝叶斯深度学习如何进行训练
贝叶斯深度学习对不确定性的度量
了解模型不知道的内容是许多机器学习系统的关键部分。 不幸的是,当今的深度学习算法通常无法理解其不确定性。 这些模型经常被盲目地假定为准确的,但并非总是如此。 如果这些算法能够为其错误的预测分配高级别的不确定性,则每个系统可能已经能够做出更好的决策,并有可能避免灾难。
传统的能够理解不确定性的机器学习方法(如高斯过程)无法处理图像、视频等高维输入。 为了有效地理解高维数据,需要深度学习,但是深度学习很难模拟不确定性。贝叶斯深度学习(BDL)提供了对不确定性进行建模的深度学习框架。
认知不确定性(epistemic uncertainty)
认知不确定度描述了根据给定训练集得到的模型的不确定度。这种不确定度可通过提供用足够多的数据消除,也被称为模型不确定度(model uncertainty)。
认知不确定度对下列应用至关重要:
(1)安全至上的应用,认知不确定度是理解模型泛化能力的关键;
(2)训练数据稀疏的小数据集
随机不确定度(aleatoric uncertainty)
随机不确定度描述了关于数据无法解释的信息的不确定度。例如,图像的随机不确定度可以归因于遮挡、缺乏视觉特征或过度曝光区域等。这种不确定度可通过以更高精度观察所有解释性变量(explanatory variables)的能力来消除。
随机不确定度对下列应用至关重要:
(1)海量数据,此时认知不确定度几乎被完全消除;
(2)实时应用,取消蒙特卡罗采样(Monte Carlo sampling),用输入数据的确知函数(a deterministic function of the input data)表示随机模型(aleatoric models)。
随机不确定度可细分分为两个类:
(1)数据相关(data-dependant)不确定度或异方差不确定度(heteroscedastic uncertainty):依赖于输入数据且模型输出为预测的随机不确定度。
(2)任务相关(task-dependant)不确定度或同方差不确定度(homoscedastic uncertainty):不依赖于输入数据的的随机不确定度;对于所有输入数据,它为常量,但是在不同的任务之间变化;它不是模型输出,可用来描述依赖任务的不确定度。
————————————————
贝叶斯深度学习(Bayesian deep learning)是深度学习(deep learning)与贝叶斯概率论(Bayesian probability theory)的交叉领域,它给出了深度学习架构的不确定度评估原理(principled uncertainty estimates)。
It offers principled uncertainty estimates from deep learning architectures. These deep architectures can model complex tasks by leveraging the hierarchical representation power of deep learning, while also being able to infer complex multi-modal posterior distributions.
贝叶斯深度学习利用深度学习的层次表示(hierarchical representation power)对复杂任务进行建模,同时对复杂的多模态后验分布(multi-modal posterior distributions)进行推理。贝叶斯深度学习模型(Bayesian deep learning models)通过模型权重的分布(distributions over model weights),或学习直接映射输出概率(a direct mapping to probabilistic outputs)对不确定度进行估计。
————————————————
多任务学习的不确定度(uncertainty for multi-task learning)
通过共享表示(a shared representation)学习多个目标,多任务学习(multi-task learning)旨提高学习效率和预测精度。多任务学习对限制计算复杂度的系统至关重要。将所有任务合并到一个模型中能够减少计算量,允许系统实时运行(run in real-time)。
大多数多任务模型使用损失加权和训练不同的任务,其性能严重依赖于各子任务损失间的相对权值,权值调整极其困难,因而限制了多任务学习的应用。
由于同方差不确定度与输入数据无关,因此可将其解释为任务不确定度(task uncertainty),用来加权多任务学习模型的损失。
场景理解算法(scene understanding algorithms)必须能够同时理解场景的几何形状和其语义(多任务学习问题)。在深度感知问题中,由于多任务学习能够使用其它子任务(如语义分割)的线索(and vice versa),因此它提高了深度感知的平顺性和准确性。
贝叶斯深度学习和深度学习的区别
在深度学习的基础上把权重和偏置变为 distribution 就是贝叶斯深度学习。
贝叶斯深度学习还有以下优点:
(1)贝叶斯深度学习比非贝叶斯深度学习更加 robust。因为我们可以采样一次又一次,细微改变权重对深度学习造成的影响在贝叶斯深度学习中可以得到解决。
(2)贝叶斯深度学习可以提供不确定性(uncertainty),非 softmax 生成的概率。详情参见 Deep Learning Is Not Good Enough, We Need Bayesian Deep Learning for Safe AI。
挑战
1,实时认知不确定度(real-time epistemic uncertainty)
2,贝叶斯深度学习的基准(benchmarks for Bayesian deep learning models):如何定量测量不确定度(measure the calibration of uncertainty)
3,描术多模型分布的推理技术(better inference techniques to capture multi-modal distributions)
文献:
A. Kendall & Y. Gal, What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?, 2017
A. Kendall, Y. Gal & R. Cipolla, Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics, 2017
————————————————
链接: [1]:https://alexgkendall.com/computer_vision/bayesian_deep_learning_for_safe_ai/
[2]: https://www.cnblogs.com/wuliytTaotao/p/10281766.html
[3]: https://blog.csdn.net/zhaoyin214/article/details/90231491