贝叶斯神经网络

一、标准神经网络与贝叶斯神经网络

通过优化的标准神经网络训练(从概率的角度来看)等同于权重的最大似然估计(MLE)。由于许多原因,这往往是不能令人满意的 —— 使用 MLE 会忽略在适当的权重值中可能存在的任何不确定性,即无法正确评估训练数据中的不确定性,从实际的角度来看,这种类型的训练容易出现过拟合现象。

对此的一个解决方案是引入正则化(从贝叶斯的角度来看,这相当于在权重上引入先验)。如果我们可以通过规范模型来解决过度自信决策和防止模型过度拟合的问题,那为什么我们需要贝叶斯神经网络?答案是:当前神经网络架构中缺少预测中的不确定性度量,但贝叶斯神经网络将其纳入其中。BNN 在特定环境中很重要,特别是当我们非常关心不确定性时,贝叶斯方法自然地解释了参数估计中的不确定性,并且可以将这种不确定性传播到预测中。

深度神经网络已成功应用于许多领域,包括非常敏感的领域,如医疗保健,安全性,欺诈性交易等等。这些领域在很大程度上依赖于模型的预测准确性,甚至一个过度自信的决策也可能导致一个大问题。此外,这些领域具有非常不平衡的数据集(百万个交易中的一个是欺诈性交易,百分之五的癌症检测结果是阳性,不到百分之一的电子邮件是垃圾邮件),容易导致该模型过度拟合。

从概率论的角度来看,使用单点估计权重以进行分类是不合理的。而贝叶斯神经网络对于过拟合更加鲁棒,并且可以从小数据集中轻松学习。贝叶斯方法将其参数以概率分布的形式表示以提供不确定性估计;同时,通过使用先验概率分布的形式来表示参数,训练期间在许多模型上计算平均值,这给网络提供了正则化效果,从而防止过度拟合

二、BNN 简介

在标准神经网络中,权重由单个点表示。 而贝叶斯神经网络以分布形式表示权重,如下图所示:

即使使用少量参数,在贝叶斯神经网络中推断后验模型也是一项艰巨的任务,因此通常使用后验模型的近似值,变分推理是一种流行的方法。人们将使用简单的变分分布(例如高斯分布)对后验进行模拟,并尝试调整分布的参数使其尽可能接近真实的后验 —— 通过最小化这种简单变分分布和真实后验之间的 KL 散度来完成。

但是用于逼近 BNN 后验的变分方法在计算上可能相当昂贵,因为使用近似分布会大大增加模型参数的数量,但不会大幅增加模型容量。例如,使用 BNN 后验近似的高斯分布,模型参数的数量增加了一倍,但报告了与使用丢失的传统方法相同的预测性能。 这使得该方法在实践中不适合与 CNN 一起使用,因为参数数量的增加太昂贵。

关于神经网络权重的精确贝叶斯推断是难以处理的,因为参数的数量非常大,并且神经网络的函数形式不适合精确积分。 因此,我们用变分概率分布 qθ(w | D) 逼近难以处理的真实后验概率分布 p(w | D),它包括高斯分布的性质 μ∈ℝd 和 σ∈ℝd,表示为 N(θ | μ,σ²),其中 d 是定义概率分布的参数总数。 这些高斯变分后验概率分布的形状由它们的方差 σ² 确定,表示每个模型参数的不确定性估计。

三、BNN 相关知识

贝叶斯定理

在观察数据之前定义先验概率分布,一旦观察到数据(训练数据),学习就发生并且分布变换为后验分布。 利用概率论从数据中学习构成了贝叶斯学习的基础。贝叶斯定理如下:

P(θ | x) 为后验概率,也是我们想要计算的;P(θ) 为先验概率,在训练数据之前就是已知的;P(x | θ) 为可能性,显示了数据分布;P(x) 为证据,我们只能通过对所有可能的模型值积分来计算其值:

这使得问题变得棘手,因此我们采用变分近似来找到近似贝叶斯后验分布。

变分推断

首先,我们的原始目标是,需要根据已有数据推断需要的分布 p;当 p(下图中黄色区域)不容易表达,不能直接求解时,可以尝试用变分推断的方法, 即,寻找容易表达和求解的分布 q(下图中红线和绿线构成的区域),当 q 和 p 的差距很小的时候,q 就可以作为 p 的近似分布,成为输出结果了。例如,我们用 qθ(w | D) 来近似 p(w | D)。首先注意 qθ(w | D) 的表达,其中 w 是变量,θ 是后验概率分布 q 的参数。所以在构造 q 的时候也分两步:第一,概率分布的选择;第二,参数的选择。第一步,我们在选择 q 的概率分布时,通常会直观选择 p 可能的概率分布,这样能够更好地保证 q 和 p 的相似程度。例如高斯混合模型中,原始假设 p 服从高斯分布,则构造的 q 依然服从高斯分布。之后,我们通过改变 θ,使得 q 不断逼近 p。

我们希望尽可能接近真正的分布,这可以通过最小化两者之间的 Kullback-Liebler(KL)散度来做到这一点。然而 KL 的表达式中依然有一部分不可求的后验概率,这个问题仍然是棘手的,所以用到了 ELBO:

但是由于积分的存在,这个公式仍然难以解决。此时,我们可以从近似函数 qθ(w | D) 中进行采样,因为从近似函数中采样权值要比真正的后验函数 p(w | D) 更容易。这样得到容易计算的函数:

这些采样权值 w 被用于神经网络的反向传播,学习后验分布。

不确定性

贝叶斯建模中,存在两种类型的不确定:偶然不确定性和认知不确定性。

  • 偶然不确定性与观测中固有的噪声有关。这种类型的不确定性存在于数据收集方法中,即使收集更多数据,也不能减少不确定性。这种不确定性可以进一步分为同方差不确定性(不确定值是常数,即使输入数据不同),以及异方差不确定性(不确定值取决于模型输入)。异方差不确定性尤为重要,可以防止模型输出非常自信的决策。
  • 认知不确定性代表模型本身造成的不确定性。 给定更多数据可以减少这种不确定性。

可以通过在模型参数或模型输出上放置概率分布来估计不确定性。通过在模型的权重上放置先验分布,然后尝试捕获这些权重在给定数据的情况下变化多少来模拟认知不确定性。另一方面,通过在模型的输出上放置分布来模拟偶然不确定性。

BNN 的训练

传统神经网络常使用反向传播来训练。对于 BNN,其自然地解释了参数估计中的不确定性,并且可以将这种不确定性传播到预测结果中;此外,对参数值进行取平均而不是仅选择单点估计值使得模型不易出现过拟合。因此,对 BNN 参数的训练也需要特殊的训练方法,Bayes by Backprop 就是其中一种(它也是一种变分推断)。

Bayes by Backprop 用来学习神经网络权重的概率分布。它是一种变分推理方法,用于学习神经网络权重 w ~ qθ(w | D) 的后验分布,可以在反向传播中对权重 w 进行采样。整个方法可归纳如下:

该方法不是训练单个网络,而是训练网络集合,其中每个网络的权重来自共享的学习到的概率分布。与其他集合方法不同,该方法通常仅使参数的数量加倍,然后使用无偏的蒙特卡罗估计梯度来训练无限集合。

模型修剪

由于参数数目较大,所以需要对模型权重进行适当的修剪。模型修剪减少了深度神经网络的各种连接矩阵中的稀疏性,从而减少了模型中有价值的参数的数量。模型修剪的整个想法是减少参数的数量而不会损失模型的准确性。最常用的修剪模型的方法是将低贡献权重映射到零并减少整体非零值权重的数量,可以通过训练大型稀疏模型并进一步修剪来实现。

补充:区分 ML / MAP / 贝叶斯估计

(这部分内容摘自一个例子搞清楚 先验分布/后验分布/似然估计

给定一些数据样本 x,假定我们知道样本是从某一种分布中随机取出的,但我们不知道这个分布具体的参数 θ。

  • 最大似然估计(ML,Maximum Likelihood)可以估计模型的参数。其目标是找出一组参数 θ,使得模型产生出观测数据 x 的概率最大:
  • 假如这个参数有一个先验概率,那么参数该怎么估计呢?这就是MAP(Max-a-posterior,最大后验估计)要考虑的问题。MAP优化的是一个后验概率,即给定了观测值后使概率最大:

因为给定样本 x 后, p(x) 会在 θ 空间上为一个定值,和 θ 的大小没有关系,所以可以省略分母 p(x)。 可化简为:

p(x) 相当于是一个归一化项,整个公式就表示为: Posterior∝(Likelihood∗Prior)(后验概率 正比于 先验概率 ∗ 似然函数)

  • 前两种都是假设参数是个确定值,但贝叶斯估计假设参数是个随机数。贝叶斯估计把待估计的参数看成是符合某种先验概率分布的随机变量,而不是确定数值。在样本分布上,计算参数所有可能的情况,并通过计算参数的期望,得到后验概率密度。

四、BNN 实例:贝叶斯卷积神经网络

需要一提的是,对贝叶斯 CNN 而言,不仅在卷积层中将概率分布置于权重上,还要求在全连接层中将概率分布置于权重上。

卷积层的计算

假设权重的变分后验概率分布 qθ(wijhw | D) = N(μijhw,αijhwμ2ijhw)(其中,i 和 j 分别对应输入和输出层数,h 和 w 分别对应过滤器的高度和宽度),那么卷积公式被重定义为:

其中,εj ~ N(0,1),Ai 为过滤器在第 i 层要卷积的部分,bj 为相应的第 j 层的激活值,∗ 为卷积操作,⊙ 为元素乘法(component-wise multiplication)。

两次连续的卷积操作(期望和方差的更新)

对 CNN 的权重应用概率分布而非单点值,并且要在反向传播时更新变分后验概率分布 qθ(w | D),关键在于过滤器会执行两次卷积操作(在单点预测的 CNN 中只执行一次卷积)。

从前面的公式我们看到,卷积操作的输出 b 是期望 μijhw 和方差 αijhwμ2ijhw 的函数,因此我们可以分别计算出 μijhw 和 αijhwμ2ijhw 的值,从而可以得到一个高斯概率分布。方法就是执行两次卷积操作:第一次,我们将 b 视为通过频率推理更新的 CNN 的输出,将单点估计值解释为变分后验概率分布的期望;第二次,我们将得到方差。通过这种方式,我们确保每个卷积操作只更新一个参数(第一次为 μijhw,第二次为 αijhw),这与通过频率推断更新的 CNN 完全相同。

实际上,当我们执行第一次卷积操作,我们得到的是 qθ(w | D) 的最大后验概率,而第二次卷积操作则是得出权重 w 偏离了最大后验概率多少。另外,为了加速计算,确保方差 αijhwμ2ijhw 为非零正数,并提到准确度,我们学习 logαijhw 并使用 Softplus 激活函数。

不确定性估计

在分类任务中,我们关注的是 PD(y* | x*);对于贝叶斯神经网络,其被表示为:

在 Bayes by Backprop 中,qθ(w | D) ~ N(w | μ, σ2),而 θ = {μ, σ} 在数据集 D = {xi, yi}ni=1 的训练中学习得到。由于分类问题多是离散的,因此:

其中,Σcf(xc | w) = 1,C 为总类数。通过从 qθ(w | D) 取样,可以获得期望值的无偏估计:

T 为样本数量。这个估计值允许我们评估预测值的不确定性,因此称为预测方差,用 Varq 表示:

这个值可以进一步分为偶然不确定性和认知不确定性:

模型修剪

由于贝叶斯 CNN 中的权重都由期望和方差来表示其分布,因此,相较于单点估计 CNN,贝叶斯 CNN 的参数数量翻了一倍。为了使贝叶斯 CNN 参数数量等于传统 CNN,可以使 BCNN 的过滤器数目减半。

另一种模型修剪的技术是对每层的权重使用 L1 归一化。通过 L1 归一化,我们使各模型层中的权重向量变得非常稀疏,即大部分矩阵元素变得接近零;同时,剩余的非零元素则捕获数据的最重要特征。我们设置一个阈值,如果该值低于阈值,则使权重为零。通过只保留非零权重,可以减少模型的参数数量,而不会影响模型的整体性能。

五、贝叶斯在 BP 神经网络中的应用

看了一些国内的论文,将贝叶斯应用于 BP 神经网络优化,往往是利用贝叶斯定理寻找最优神经网络参数,以解决神经网络权值易陷入局部最优的问题,同时也能解决神经网络过拟合。其中心思想在于:根据给定的先验分布,利用贝叶斯定理考察神经网络参数的不确定性,从样本数据中,获得网络结构的后验概率,那么,使得该后验概率最大化的网络参数即为所需的最优参数(我认为这其实是 MAP 而非贝叶斯估计)。最优参数定义为:

为方便计算,对后验概率取对数得到:

假设先验概率分布 p(w) 满足高斯分布:

则有:

上式中,似然函数部分对应于目标函数中的适应度函数,而先验概率部分对应于正则项,因此我们可以通过确定先验概率得到正则项,从而对神经网络的目标函数进行优化,进而有效控制网络规模,提高网络泛化能力。

后验分布是人们在获得样本数据 D 之后对参数 w 的一种调整。贝叶斯把上一步得到的后验分布信息储存起来,在将来做推测时,上一步的后验信息就成为了先验信息,这样持续数次操作之后,样本数据的预测结果会一直进行调整,最后对参数估计的结果精确度更高。

神经网络中最重要的两个性能参数就是权值和阈值,而这两个参数的分布情况受到了目标函数中超参数的控制,但一般的算法不能确定超参数的取值。可以利用贝叶斯定理来求取目标函数的超参数,并且要求达到自主调节超参数取值的目标,并且通过持续的调整最后找到最优的取值,相应的确定 BP 神经网络的最优权值和阈值。

贝叶斯 BP 神经网络区间预测模型流程图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容