贝叶斯神经网络系列教程(一):我们为什么需要贝叶斯神经网络?

2019年01月12日 由 浅浅 发表 663075 0
贝叶斯神经网络系列教程(一):我们为什么需要贝叶斯神经网络?此文为贝叶斯神经网络系列第一篇,这个系列共包括8篇文章,持续更新中。

问题陈述


深度神经网络(DNN)是一种连接主义系统,它通过学习例子来完成任务,而不需要事先了解这些任务。它们可以很容易地扩展到数百万个数据点,并且可以使用随机梯度下降法进行优化。

卷积神经网络(CNN)是DNN的一种变体,在图像分类领域中准确性已经超越了人类。由于CNN能够适应各种非线性数据点,因此需要大量的训练数据。这通常使得CNN和神经网络容易在小数据集上过度拟合。

该模型较好地拟合了训练数据,但不能预测新数据。这通常会使神经网络无法正确评估训练数据中的不确定性,从而导致对正确的类别、预测或行动做出过于自信的决定。

为了理解这一点,让我们考虑在狗和猫图像类上训练二元分类器CNN。现在,当在测试数据集中遇到豹的图像时,理想情况下模型应该预测它既不是狗也不是猫(狗的概率为50%,猫类的概率为50%)。

但是,由于输出层的softmax函数可以实现概率得分,它压缩了一个类的输出概率得分,并使另一个类的输出概率得分最大化,导致一个类的决策过于自信。这是点估计神经网络的主要问题之一。

注意,术语点估计用于神经网络,其中权重由单个点表示。另一方面,贝叶斯神经网络以分布的形式表示权重,如图1所示。

但我们真的需要一个贝叶斯神经网络吗?控制过拟合的各种正则化技术在实际应用中有early stopping、权值衰减、L1- L2正则化等,目前最流行和经验上最有效的技术是dropout。

如果我们可以通过正则化模型来解决过度自信决策问题,防止模型过度拟合,,那么问题仍然存在:我们为什么需要贝叶斯神经网络?

简而言之,答案是:当前神经网络架构中缺少预测中的不确定性度量。因此,我们需要贝叶斯神经网络。

当前的情况


深度神经网络已成功应用于许多领域,包括非常敏感的领域,如医疗保健,安全性,欺诈性交易等等。这些领域在很大程度上依赖于模型的预测准确性,甚至一个过度自信的决策也可能导致一个大问题。

此外,这些域名拥有非常不平衡的数据集(百万分之一的欺诈性交易,几乎百分之五的测试结果是癌症阳性,不到百分之一的电子邮件是垃圾邮件),这导致该模型过度拟合到过度抽样类。

现在从概率论的角度来看,用单点估计作为权重来建立任何分类都是不合理的。

另一方面,贝叶斯神经网络对于过度拟合更加鲁棒,并且可以从小数据集中轻松学习。贝叶斯方法通过其参数以概率分布的形式进一步提供不确定性估计(见图1)。同时,通过使用先验概率分布来整合参数,在训练期间跨许多模型计算平均值,这给网络提供正则化效果,从而防止过度拟合。

贝叶斯神经网络的实用性


神经网络参数的贝叶斯后验推断是控制过拟合的具有理论吸引力的方法;然而,对CNN内核(也称为滤波器)上的分布进行建模以前从未成功过,这可能是因为在实际应用中通常使用有大量参数的极大模型。

即使使用少量参数,在贝叶斯神经网络中推断模型后验也是一项艰巨的任务。

模型后验的近似法是常用的方法,变分推理是一种流行的方法。在这种方法中,人们会使用简单的变分分布(如高斯分布)对后验进行建模,并尝试使分布的参数尽可能接近真实的后验。这是通过最小化Kullback-Leibler与真实后验的分歧来完成的。许多人过去都采用过这种方法来制定标准神经网络(NN)模型。

但是在贝叶斯神经网络中用来近似后验的变分方法在计算上可能相当昂贵——高斯近似分布的使用在不增加模型容量的情况下,大大增加了模型参数的数量。

例如,贝叶斯神经网络近似后验采用高斯分布,模型参数数量增加了一倍,但预测性能与传统的dropout方法相同。这使得该方法在实践中不适合与CNN一起使用,因为参数数量的增加使成本变高。

我们该怎么做呢?


有很多方法可以构建贝叶斯神经网络,在本系列中,我们将专注于使用Backprop的Bayes构建贝叶斯神经网络。

关于神经网络权重的精确贝叶斯推断是难以处理的,因为参数的数量非常大,并且神经网络的功能形式不适合精确集合。

因此,我们用变分概率分布q_θ(w | D)接近难以处理的真实后验概率分布p(w | D),前者包含高斯分布μ∈ℝ^ d和σ∈ℝ^ d的特性。表示为N(θ | μ,σ²),其中d是定义概率分布的参数总数。这些高斯变分后验概率分布的形状由它们的方差σ²确定,表示每个模型参数的不确定性估计。

贝叶斯神经网络系列教程(一):我们为什么需要贝叶斯神经网络?

Graves定义的图形直觉


如果你不理解上一段中的具体内容,请不要担心。在下一篇文章中,我们将介绍了解贝叶斯网络所有基础知识。

接下来的教程


接下来的几周我们将要学习以下内容:

1.如何通过Backprop有效地将Bayes应用于CNN。我们将引入两个卷积运算的概念,一个是均值,一个是方差。

2.我们将看到该模型如何从多个低成本模型平均中学习更丰富的表征和预测。

3.我们将看到,贝叶斯神经网络的所提出的通用且可靠的变分推理方法可以应用于各种CNN架构,而不受其性能的限制。我们将在PyTorch中对模型进行编码,并将结果与点估计网络进行比较。

4.我们将估计贝叶斯网络中的任意不确定性和认知不确定性。此外,我们将展示不确定性是如何减少的,这使网络所做的决策随着训练精度的提高而变得更加确定。

5.我们的方法通常只会使参数的数量翻倍,但使用无偏Monte Carlo梯度估计来训练无穷集合。

6.我们将L1范数应用于训练的模型参数,修剪非零值的数量,进一步对模型微调,在不降低模型预测精度的前提下减少模型参数的个数。

7.最后,我们将贝叶斯神经网络的概念应用于图像超分辨率和生成对抗网络等任务,并将结果与相应领域中的其他重要架构进行比较。
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消