从Bayes角度理解Deep learning
从贝叶斯角度思考神经网络
01
理解模型所不能胜任的工作是重要的,无论是从实践者的角度,还是对不同机器学习应用的端侧使用者来说。我们在先前的博客里已经讨论了不同类型的不确定性,阐释了如何使用不确定性解释和调试模型。
在这篇博客里,我们将要讨论不同的在深度神经网络中获取不确定性的方法。我们先从贝叶斯的视觉来看待神经网络。
02
贝叶斯学习 101
贝叶斯统计使我们能够基于证据(数据)和先验知识得到关于现实世界的结论。其常常与仅仅考虑证据的频率统计学作比较。先验知识描述了我们关于生成数据的模型或模型权重的信念。我们可以将该信念表示为模型权重上的一个先验分布p(w)。
当我们收集更多数据,我们更新先验分布并基于贝叶斯法则将其转换为后验概率分布,这一过程称为贝叶斯更新:
该等式引入贝叶斯学习中的另一个主角——似然,定义为p(y|x,w)。它表示给定模型权重下数据的可能性。
03
贝叶斯视角下的神经网络
神经网络的目标是估计似然p(y|x,w),即使你明确没有这样做,也是确实如此,例如,当你最小化MSE(均方误差)的时候。
我们可以通过最大化似然估计得到最优的模型权重。
04
或者,我们可以利用表示为关于权重的先验分布的先验知识,最大化后验分布。这一方法称为最大化后验估计(Maximum Aposteriori Estimation):
表示先验的项logP(w),作为一个正则项。若选择均值为0的高斯分布作为先验,你将得到一个在数学上等价的L2的正则项。
现在我们先将神经网络看作概率性的产物,让事情变得有趣点。首先,没有人要求在训练过程结束后我们必须输出一个权重集合。如若我们学习一个关于权重分布的模型,而不是学习模型的权重,会怎样呢?这让我们得以估计关于权重的不确定性。接下来,我们该怎么做?
05
只要你开始尝试使用贝叶斯,你就回不去啦
我们重新开始对权重进行预先分配,并旨在找到它们的后验分布。这一次,我们不是直接优化网络的权重,而是对所有可能的权重(称为边缘化)进行平均。
在推理中,我们不是采用最大化后验分布的单一权重集(或者如果我们使用MLE,则是可能性),而是考虑所有可能的权重,并通过它们的概率加权。这是通过使用积分来实现的:
06
x是我们想要推断y的数据点,X,Y是训练数据。第一项p(y | x,w)是我们很好的旧似然,第二项p(w | X,Y)是给定数据的模型权重的后验概率。
我们可以将其视为由每个模型的概率加权的模型集合。实际上,这相当于无限数量的神经网络的集合,具有相同的架构但具有不同的权重。
我们达到了吗?
事实证明,在大多数情况下,这种积分是难以处理的。这是因为无法通过分析评估后验概率。
这个问题并非贝叶斯神经网络所独有。在很多贝叶斯学习的情况下,你会遇到这个问题,多年来已经开发出许多克服这个问题的方法。我们可以将这些方法分为两类:变分推理和抽样方法
07
蒙特卡洛抽样
我们出现了问题。后验分布是难以处理的。如果不是计算真实分布上的积分而不是计算从中得到的样本的平均值,那么该怎么办呢?一种方法是马尔可夫链蒙特卡罗 - 你构造一个马克夫链,所需的分布作为其平衡分布。
变分推理
另一种解决方案是使用与易处理家庭不同的分布来近似真实难以处理的分布。为了测量两个分布的相似性,我们可以使用KL分歧:
08
设变分分布 q 的变分参数为θ ,目标是找到特定的θ 值最小化 KL 散度。
先来看看已知信息:第一项是变分分布与先验分布之间的 KL 散度,第二项是关于 qθ的似然。因为要求的是解释数据最好的 qθ,另外能够尽可能地靠近先验分布。这只是将引入正则化的另一种方法。
现在可以基于 qθ做预测:
上面的公式来源于 2015 年 DeepMind 发表的论文。类似的想法在 2011 年的时候被 graves 提出,更早的是由 Hinton 和 vanCamp 在 1993 年提出。在 NIPS 的 Keynote talk 上,贝叶斯深度学习工作室展示了这些思想在这些年来的演变。
但是如果不想从头训练一个模型又该怎么办呢?如果已有一个训练过得模型,我们如何基于它获得不确定性估计呢?这可行吗?
结果证明如果在训练时进行 dropout,可以实现上述想法。
09
dropout是不确定性的一种手段
dropout是一种很好用的练习器作为正规则。在训练时间,你随机抽样节点并将它们删除,即 - 将它们的输出设置为0.动机?您不希望过度依赖特定节点,这可能意味着过度拟合。
2016年,Gal和Ghahramani表明,如果您在推理时间应用 dropout ,您可以轻松获得不确定性估算:
1.多次推断y | x,每次采样一组不同的节点退出。
2.平均预测以获得最终预测E(y | x)。
3.计算预测的样本方差。
而已!你得到了方差的估计!这种方法背后的直觉是,训练过程可以被认为是同时训练2 ^ m个不同模型 - 其中m是网络中节点的数量:未被丢弃的每个节点子集定义新模型。所有模型共享它们不会丢弃的节点的权重。在每批中,训练随机抽样的这些模型组。
训练结束后,你手中就会拥有一系列模特。如果你在推理时使用这个整体,如上所述,你会得到整体的不确定性。
10
采样方法与变分推理
就偏差 - 方差权衡而言,变分推理具有较高的偏差,因为我们选择了分布族。这是我们正在做的一个强有力的假设,并且作为任何强有力的假设,它引入了偏见。但是,它很稳定,方差很小。
另一方面,采样方法具有较低的偏差,因为我们不对分布做出假设。这是以高差异为代价的,因为结果取决于我们绘制的样本
11
最后的想法
能够估计模型不确定性是一个热门话题。在医疗助理和自动驾驶汽车等高风险应用中了解它非常重要。它也是一个有价值的工具,可以了解哪些数据可以使模型受益,因此我们可以去获取它。
在这篇文章中,我们介绍了一些获得模型不确定性估计的方法。还有更多的方法,所以如果您对此感到高度不确定,请继续寻找更多数据