A. 怎么通俗易懂地解释贝叶斯网络和它的应用
我们首先呢下载贝叶斯网络工具箱再个呢解压压缩包然后将工具箱中bnt文件夹复制到matlab工具箱文件夹中(D:Program FilesMATLABR2014a oolbox)最后是打开matlab2014a,贝叶斯网络是处理不确定信息做有效的表示方法之一。其关键的特征之一是提供了把整个概率分布分解成几个局部分布的方法,网络的拓扑结构表明如何从局部的概率分布获得完全的联合概率分布。 贝叶斯网络适合于对领域知识具有一定了解的情况,至少对变量间的依赖关系较清楚。否则直接从数据中学习贝叶斯网络结构复杂性极高(随节点的增加成指数级增长)在这个网络meta分析中,研究者比较了多种非类固醇抗炎药治疗膝、 髋关节骨性关节炎疼痛的疗效,那两个大点就是样本量最大的两个不同的药物组(变量)。当然,伟大的贝叶斯统计怎么会仅仅局限于对文献数据的网络meta分析?教科书上说,贝叶斯网络,既形式上,一个贝叶斯网络就是一个有向无环图,结点表示随机变量,可以是可观测量、隐含变量、未知参量或假设等;结点之间的邮箱边表示条件依存关系,箭头指向的结点依存于箭头发出的结点(父节点),每个结点都与一个概率函数相关。看看!说明啥?长得多么多么像医学中各个疾病与其危险因素的关系啊!多么多么像临床诊断指南里一下症状中几条中满足几条考虑诊断的诊断轴啊!
B. 贝叶斯网络,看完这篇我终于理解了(附代码)!
概率图模型是用图来表示变量概率依赖关系的理论,结合概率论与图论的知识,利用图来表示与模型有关的变量的联合概率分布。由图灵奖获得者Pearl开发出来。
如果用一个词来形容概率图模型(Probabilistic Graphical Model)的话,那就是“优雅”。对于一个实际问题,我们希望能够挖掘隐含在数据中的知识。概率图模型构建了这样一幅图,用观测结点表示观测到的数据,用隐含结点表示潜在的知识,用边来描述知识与数据的相互关系, 最后基于这样的关系图获得一个概率分布 ,非常“优雅”地解决了问题。
概率图中的节点分为隐含节点和观测节点,边分为有向边和无向边。从概率论的角度,节点对应于随机变量,边对应于随机变量的依赖或相关关系,其中 有向边表示单向的依赖,无向边表示相互依赖关系 。
概率图模型分为 贝叶斯网络(Bayesian Network)和马尔可夫网络(Markov Network) 两大类。贝叶斯网络可以用一个有向图结构表示,马尔可夫网络可以表 示成一个无向图的网络结构。更详细地说,概率图模型包括了朴素贝叶斯模型、最大熵模型、隐马尔可夫模型、条件随机场、主题模型等,在机器学习的诸多场景中都有着广泛的应用。
长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大。而且概率虽然未知,但最起码是一个确定的值。比如如果问那时的人们一个问题:“有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率是多少?”他们会想都不用想,会立马告诉你,取出白球的概率就是1/2,要么取到白球,要么取不到白球,即θ只能有一个值,而且不论你取了多少次,取得白球的 概率θ始终都是1/2 ,即不随观察结果X 的变化而变化。
这种 频率派 的观点长期统治着人们的观念,直到后来一个名叫Thomas Bayes的人物出现。
托马斯·贝叶斯Thomas Bayes(1702-1763)在世时,并不为当时的人们所熟知,很少发表论文或出版着作,与当时学术界的人沟通交流也很少,用现在的话来说,贝叶斯就是活生生一民间学术“屌丝”,可这个“屌丝”最终发表了一篇名为“An essay towards solving a problem in the doctrine of chances”,翻译过来则是:机遇理论中一个问题的解。你可能觉得我要说:这篇论文的发表随机产生轰动效应,从而奠定贝叶斯在学术史上的地位。
这篇论文可以用上面的例子来说明,“有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率θ是多少?”贝叶斯认为取得白球的概率是个不确定的值,因为其中含有机遇的成分。比如,一个朋友创业,你明明知道创业的结果就两种,即要么成功要么失败,但你依然会忍不住去估计他创业成功的几率有多大?你如果对他为人比较了解,而且有方法、思路清晰、有毅力、且能团结周围的人,你会不由自主的估计他创业成功的几率可能在80%以上。这种不同于最开始的“非黑即白、非0即1”的思考方式,便是 贝叶斯式的思考方式。
先简单总结下频率派与贝叶斯派各自不同的思考方式:
贝叶斯派既然把看做是一个随机变量,所以要计算的分布,便得事先知道的无条件分布,即在有样本之前(或观察到X之前),有着怎样的分布呢?
比如往台球桌上扔一个球,这个球落会落在何处呢?如果是不偏不倚的把球抛出去,那么此球落在台球桌上的任一位置都有着相同的机会,即球落在台球桌上某一位置的概率服从均匀分布。这种在实验之前定下的属于基本前提性质的分布称为 先验分布,或着无条件分布 。
其中,先验信息一般来源于经验跟历史资料。比如林丹跟某选手对决,解说一般会根据林丹历次比赛的成绩对此次比赛的胜负做个大致的判断。再比如,某工厂每天都要对产品进行质检,以评估产品的不合格率θ,经过一段时间后便会积累大量的历史资料,这些历史资料便是先验知识,有了这些先验知识,便在决定对一个产品是否需要每天质检时便有了依据,如果以往的历史资料显示,某产品的不合格率只有0.01%,便可视为信得过产品或免检产品,只每月抽检一两次,从而省去大量的人力物力。
而 后验分布 π(θ|X)一般也认为是在给定样本X的情况下的θ条件分布,而使π(θ|X)达到最大的值θMD称为 最大后验估计 ,类似于经典统计学中的 极大似然估计 。
综合起来看,则好比是人类刚开始时对大自然只有少得可怜的先验知识,但随着不断观察、实验获得更多的样本、结果,使得人们对自然界的规律摸得越来越透彻。所以,贝叶斯方法既符合人们日常生活的思考方式,也符合人们认识自然的规律,经过不断的发展,最终占据统计学领域的半壁江山,与经典统计学分庭抗礼。
条件概率 (又称后验概率)就是事件A在另外一个事件B已经发生条件下的发生概率。条件概率表示为P(A|B),读作“在B条件下A的概率”。
比如上图,在同一个样本空间Ω中的事件或者子集A与B,如果随机从Ω中选出的一个元素属于B,那么这个随机选择的元素还属于A的概率就定义为在B的前提下A的条件概率:
联合概率:
边缘概率(先验概率):P(A)或者P(B)
贝叶斯网络(Bayesian network),又称信念网络(Belief Network),或有向无环图模型(directed acyclic graphical model),是一种概率图模型,于1985年由Judea Pearl首先提出。它是一种模拟人类推理过程中因果关系的不确定性处理模型,其网络拓朴结构是一个有向无环图(DAG)。
贝叶斯网络的有向无环图中的节点表示随机变量
它们可以是可观察到的变量,或隐变量、未知参数等。认为有因果关系(或非条件独立)的变量或命题则用箭头来连接。若两个节点间以一个单箭头连接在一起,表示其中一个节点是“因(parents)”,另一个是“果(children)”,两节点就会产生一个条件概率值。
例如,假设节点E直接影响到节点H,即E→H,则用从E指向H的箭头建立结点E到结点H的有向弧(E,H),权值(即连接强度)用条件概率P(H|E)来表示,如下图所示:
简言之,把某个研究系统中涉及的随机变量,根据是否条件独立绘制在一个有向图中,就形成了贝叶斯网络。其主要用来描述随机变量之间的条件依赖,用圈表示随机变量(random variables),用箭头表示条件依赖(conditional dependencies)。
此外,对于任意的随机变量,其联合概率可由各自的局部条件概率分布相乘而得出:
1. head-to-head
依上图,所以有:P(a,b,c) = P(a) P(b) P(c|a,b)成立,即在c未知的条件下,a、b被阻断(blocked),是独立的,称之为head-to-head条件独立。
2. tail-to-tail
考虑c未知,跟c已知这两种情况:
3. head-to-tail
还是分c未知跟c已知这两种情况:
wikipedia上是这样定义因子图的:将一个具有多变量的全局函数因子分解,得到几个局部函数的乘积,以此为基础得到的一个双向图叫做因子图(Factor Graph)。
通俗来讲,所谓因子图就是对函数进行因子分解得到的 一种概率图 。一般内含两种节点:变量节点和函数节点。我们知道,一个全局函数通过因式分解能够分解为多个局部函数的乘积,这些局部函数和对应的变量关系就体现在因子图上。
举个例子,现在有一个全局函数,其因式分解方程为:
其中fA,fB,fC,fD,fE为各函数,表示变量之间的关系,可以是条件概率也可以是其他关系。其对应的因子图为:
在概率图中,求某个变量的边缘分布是常见的问题。这问题有很多求解方法,其中之一就是把贝叶斯网络或马尔科夫随机场转换成因子图,然后用sum-proct算法求解。换言之,基于因子图可以用 sum-proct 算法 高效的求各个变量的边缘分布。
详细的sum-proct算法过程,请查看博文: 从贝叶斯方法谈到贝叶斯网络
朴素贝叶斯(Naive Bayesian)是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法。朴素贝叶斯原理简单,也很容易实现,多用于文本分类,比如垃圾邮件过滤。**朴素贝叶斯可以看做是贝叶斯网络的特殊情况:即该网络中无边,各个节点都是独立的。 **
朴素贝叶斯朴素在哪里呢? —— 两个假设 :
贝叶斯公式如下:
下面以一个例子来解释朴素贝叶斯,给定数据如下:
现在给我们的问题是,如果一对男女朋友,男生想女生求婚,男生的四个特点分别是不帅,性格不好,身高矮,不上进,请你判断一下女生是嫁还是不嫁?
这是一个典型的分类问题,转为数学问题就是比较p(嫁|(不帅、性格不好、身高矮、不上进))与p(不嫁|(不帅、性格不好、身高矮、不上进))的概率,谁的概率大,我就能给出嫁或者不嫁的答案!这里我们联系到朴素贝叶斯公式:
我们需要求p(嫁|(不帅、性格不好、身高矮、不上进),这是我们不知道的,但是通过朴素贝叶斯公式可以转化为好求的三个量,这三个变量都能通过统计的方法求得。
等等,为什么这个成立呢?学过概率论的同学可能有感觉了,这个等式成立的条件需要特征之间相互独立吧!对的!这也就是为什么朴素贝叶斯分类有朴素一词的来源,朴素贝叶斯算法是假设各个特征之间相互独立,那么这个等式就成立了!
但是为什么需要假设特征之间相互独立呢?
根据上面俩个原因,朴素贝叶斯法对条件概率分布做了条件独立性的假设,由于这是一个较强的假设,朴素贝叶斯也由此得名!这一假设使得朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率。
朴素贝叶斯优点 :
朴素贝叶斯缺点 :
理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。
朴素贝叶斯模型(Naive Bayesian Model)的 朴素(Naive)的含义是"很简单很天真" 地假设样本特征彼此独立. 这个假设现实中基本上不存在, 但特征相关性很小的实际情况还是很多的, 所以这个模型仍然能够工作得很好。
新闻分类 GitHub: 点击进入
【 机器学习通俗易懂系列文章 】
从贝叶斯方法谈到贝叶斯网络
C. 贝叶斯网络基本原理
贝叶斯网络又称信念网络,是有向无环图的网络拓扑结构和贝叶斯概率方法有机结合的模型表示,描述了各个数据项及其相互间的依赖关系。一个 BN 包括了一个拓扑结构模型和与之相关的一组条件概率参数。结构模型是一个有向无环图,每个节点则表示一个随机变量,是对于状态、过程、事件等实体的某个特性的形象描述,其中的有向边则表示随机变
量之间的条件依赖关系。BN 中每个节点( 除根节点外) 都有一个给定其父节点情况下的条件概率分布。2. 1. 1 贝叶斯网络定理
BN 是一种概率网络,即基于概率推理的图形化网络,这个概率网络的基础是贝叶斯公式。我们先来看一看贝叶斯基本公式。
定义 2. 1 条件概率: 设 X、Y 是两个事件,且 P( X) >0,称
基于BN+GIS新技术的突水态势研究
为在事件 X 发生的条件下事件 Y 发生的条件概率。
定义 2. 2 联合概率: 设 X,Y 是两个事件,且 P( X) >0,它们的联合概率为:
基于BN+GIS新技术的突水态势研究
定义2.3全概率公式:设试验E的样本空间为S,X为E的事件,Y1,Y2,…,Yn为E的一组事件,满足:
基于BN+GIS新技术的突水态势研究
定义2.4贝叶斯公式:根据定义2.1、定义2.2和定义2.3,很容易推得众所周知的贝叶斯公式:
基于BN+GIS新技术的突水态势研究
2. 1. 2 贝叶斯网络的拓扑结构
BN 是一个具有概率分布的有向无环图( Directed Acyclic Graph) ,其中每个节点代表一个数据变量或者属性,节点间的弧段代表数据变量( 属性) 之间的概率依赖关系。一条弧段由一个数据变量( 属性) X 指向另外一个数据变量( 属性) Y,说明数据变量 X 的取值可以对数据变量 Y 的取值产生影响。既然是有向无环图,因此 X,Y 间不构成有向回路。在 BN 当中,连接两个节点的一条弧 XY 中的弧头节点( 直接的原因节点) X 叫做弧尾节点( 结果节点) Y 的双亲节点( Parents) ,Y 叫做 X 的孩子节点( Children) 。如果从节点 A 有一条有向通路指向 B,则称节点 A 为节点 B 的祖先( Ancestor) ,同时称节点 B 为节点 A 的后代( Descendent) 。
BN 能够利用简单明了的图形表达方式定性地表示事件间复杂的概率关系和因果关系,在给定某些先验信息后,还可以定量地表示这些因果概率关系。BN 的拓扑结构通常是根据具体的问题和研究对象来确定的。目前如何通过结构学习自动确定和优化网络的拓扑结构是 BN 的一个研究热点。
2.1.3 条件独立性假设
条件独立性假设是BN进行定量推理的理论基础,可以减少先验概率的数目,从而大大地简化推理和计算过程。
BN的条件独立性假设的一个很重要的判据就是着名的分隔定理(D-Separation):
定义2.5阻塞:G=(V(G),E(G))为一个有向非循环图,s是其中的一条链。当s包含3个连续的节点x,y,z,满足以下3种情况之一,我们称s被节点集合W(WV(G))阻塞:
(1)z∈W,s上存在弧x→z和z→y;
(2)z∈W,s上存在弧x←z和z→y;
(3)s上存在弧x→z和z←y,σ(z)∩W=,σ(z)表示z以及z的所有子孙节点的集合。
图2.1 阻塞的3种情形
定义2.6阻塞集:两个节点x和y间的所有路径都被节点集合Z所阻塞,则称集合Z为x,y两个节点间的阻塞集。
定义2.7D-Separation:令X,Y和Z是一个有向无环图G中3个不相交节点的子集,如果在集合X和Y中所有节点间的所有路径都被集合Z所阻塞,则称集合X,Y被Z集合(d-separation),表示为<X,Y|Z>G,也称Z为X和Y的切割集。否则,称在给定集合Z下集合X和Y的图形依赖。
这个判据指出,如果Z隔离了X和Y时,那么可以认为X与Y是关于Z条件独立的,即:P(X|Y,Z)=P(X|Y)。
D. 贝叶斯神经网络
通过优化的标准神经网络训练(从概率的角度来看)等同于权重的最大似然估计(MLE)。由于许多原因,这往往是不能令人满意的 —— 使用 MLE 会忽略在适当的权重值中可能存在的任何不确定性,即无法正确评估训练数据中的不确定性,从实际的角度来看,这种类型的训练容易出现过拟合现象。
对此的一个解决方案是引入正则化(从贝叶斯的角度来看,这相当于在权重上引入先验)。如果我们可以通过规范模型来解决过度自信决策和防止模型过度拟合的问题,那为什么我们需要贝叶斯神经网络?答案是: 当前神经网络架构中缺少预测中的不确定性度量,但贝叶斯神经网络将其纳入其中 。BNN 在特定环境中很重要,特别是当我们非常关心不确定性时,贝叶斯方法自然地解释了参数估计中的不确定性,并且可以将这种不确定性传播到预测中。
深度神经网络已成功应用于许多领域,包括非常敏感的领域,如医疗保健,安全性,欺诈性交易等等。这些领域在很大程度上依赖于模型的预测准确性,甚至一个过度自信的决策也可能导致一个大问题。此外,这些领域具有非常不平衡的数据集(百万个交易中的一个是欺诈性交易,百分之五的癌症检测结果是阳性,不到百分之一的电子邮件是垃圾邮件),容易导致该模型过度拟合。
从概率论的角度来看,使用单点估计权重以进行分类是不合理的。而贝叶斯神经网络对于过拟合更加鲁棒,并且可以从小数据集中轻松学习。 贝叶斯方法将其参数以概率分布的形式表示以提供不确定性估计;同时,通过使用先验概率分布的形式来表示参数,训练期间在许多模型上计算平均值,这给网络提供了正则化效果,从而防止过度拟合 。
在标准神经网络中,权重由单个点表示。 而贝叶斯神经网络以分布形式表示权重,如下图所示:
即使使用少量参数,在贝叶斯神经网络中推断后验模型也是一项艰巨的任务,因此通常使用后验模型的近似值,变分推理是一种流行的方法。人们将使用简单的变分分布(例如高斯分布)对后验进行模拟,并尝试调整分布的参数使其尽可能接近真实的后验 —— 通过最小化这种简单变分分布和真实后验之间的 KL 散度来完成。
但是用于逼近 BNN 后验的变分方法在计算上可能相当昂贵,因为使用近似分布会大大增加模型参数的数量,但不会大幅增加模型容量。例如,使用 BNN 后验近似的高斯分布,模型参数的数量增加了一倍,但报告了与使用丢失的传统方法相同的预测性能。 这使得该方法在实践中不适合与 CNN 一起使用,因为参数数量的增加太昂贵。
关于神经网络权重的精确贝叶斯推断是难以处理的,因为参数的数量非常大,并且神经网络的函数形式不适合精确积分。 因此,我们用变分概率分布 q θ (w | D) 逼近难以处理的真实后验概率分布 p(w | D),它包括高斯分布的性质 μ∈ℝ d 和 σ∈ℝ d ,表示为 N(θ | μ,σ²),其中 d 是定义概率分布的参数总数。 这些高斯变分后验概率分布的形状由它们的方差 σ² 确定,表示每个模型参数的不确定性估计。
在观察数据之前定义先验概率分布,一旦观察到数据(训练数据),学习就发生并且分布变换为后验分布。 利用概率论从数据中学习构成了贝叶斯学习的基础。贝叶斯定理如下:
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 参数的训练也需要特殊的训练方法,Bayes by Backprop 就是其中一种(它也是一种变分推断)。
Bayes by Backprop 用来学习神经网络权重的概率分布。它是一种变分推理方法,用于学习神经网络权重 w ~ q θ (w | D) 的后验分布,可以在反向传播中对权重 w 进行采样。整个方法可归纳如下:
由于参数数目较大,所以需要对模型权重进行适当的修剪。模型修剪减少了深度神经网络的各种连接矩阵中的稀疏性,从而减少了模型中有价值的参数的数量。模型修剪的整个想法是减少参数的数量而不会损失模型的准确性。最常用的修剪模型的方法是将低贡献权重映射到零并减少整体非零值权重的数量,可以通过训练大型稀疏模型并进一步修剪来实现。
(这部分内容摘自 一个例子搞清楚 先验分布/后验分布/似然估计 )
给定一些数据样本 x,假定我们知道样本是从某一种分布中随机取出的,但我们不知道这个分布具体的参数 θ。
因为给定样本 x 后, p(x) 会在 θ 空间上为一个定值,和 θ 的大小没有关系,所以可以省略分母 p(x)。 可化简为:
p(x) 相当于是一个归一化项,整个公式就表示为: Posterior∝(Likelihood∗Prior)(后验概率 正比于 先验概率 ∗ 似然函数)
需要一提的是,对贝叶斯 CNN 而言,不仅在卷积层中将概率分布置于权重上,还要求在全连接层中将概率分布置于权重上。
假设权重的变分后验概率分布 q θ (w ijhw | D) = N(μ ijhw ,α ijhw μ 2 ijhw )(其中,i 和 j 分别对应输入和输出层数,h 和 w 分别对应过滤器的高度和宽度),那么卷积公式被重定义为:
其中,ε j ~ N(0,1),A i 为过滤器在第 i 层要卷积的部分,b j 为相应的第 j 层的激活值,∗ 为卷积操作,⊙ 为元素乘法(component-wise multiplication)。
对 CNN 的权重应用概率分布而非单点值,并且要在反向传播时更新变分后验概率分布 q θ (w | D),关键在于过滤器会执行两次卷积操作(在单点预测的 CNN 中只执行一次卷积)。
从前面的公式我们看到,卷积操作的输出 b 是期望 μ ijhw 和方差 α ijhw μ 2 ijhw 的函数,因此我们可以分别计算出 μ ijhw 和 α ijhw μ 2 ijhw 的值,从而可以得到一个高斯概率分布。方法就是执行两次卷积操作:第一次,我们将 b 视为通过频率推理更新的 CNN 的输出,将单点估计值解释为变分后验概率分布的期望;第二次,我们将得到方差。通过这种方式,我们确保每个卷积操作只更新一个参数(第一次为 μ ijhw ,第二次为 α ijhw ),这与通过频率推断更新的 CNN 完全相同。
实际上,当我们执行第一次卷积操作,我们得到的是 q θ (w | D) 的最大后验概率,而第二次卷积操作则是得出权重 w 偏离了最大后验概率多少。另外,为了加速计算,确保方差 α ijhw μ 2 ijhw 为非零正数,并提到准确度,我们学习 logα ijhw 并使用 Softplus 激活函数。
在分类任务中,我们关注的是 P D (y* | x*);对于贝叶斯神经网络,其被表示为:
在 Bayes by Backprop 中,q θ (w | D) ~ N(w | μ, σ 2 ),而 θ = {μ, σ} 在数据集 D = {x i , y i } n i=1 的训练中学习得到。由于分类问题多是离散的,因此:
其中,Σ c f(x c ∗ | w) = 1,C 为总类数。通过从 q θ (w | D) 取样,可以获得期望值的无偏估计:
T 为样本数量。这个估计值允许我们评估预测值的不确定性,因此称为预测方差,用 Var q 表示:
这个值可以进一步分为偶然不确定性和认知不确定性:
由于贝叶斯 CNN 中的权重都由期望和方差来表示其分布,因此,相较于单点估计 CNN,贝叶斯 CNN 的参数数量翻了一倍。为了使贝叶斯 CNN 参数数量等于传统 CNN,可以使 BCNN 的过滤器数目减半。
另一种模型修剪的技术是对每层的权重使用 L1 归一化。通过 L1 归一化,我们使各模型层中的权重向量变得非常稀疏,即大部分矩阵元素变得接近零;同时,剩余的非零元素则捕获数据的最重要特征。我们设置一个阈值,如果该值低于阈值,则使权重为零。通过只保留非零权重,可以减少模型的参数数量,而不会影响模型的整体性能。
看了一些国内的论文,将贝叶斯应用于 BP 神经网络优化,往往是利用贝叶斯定理寻找最优神经网络参数,以解决神经网络权值易陷入局部最优的问题,同时也能解决神经网络过拟合。其中心思想在于: 根据给定的先验分布,利用贝叶斯定理考察神经网络参数的不确定性,从样本数据中,获得网络结构的后验概率,那么,使得该后验概率最大化的网络参数即为所需的最优参数 (我认为这其实是 MAP 而非贝叶斯估计)。最优参数定义为:
为方便计算,对后验概率取对数得到:
假设先验概率分布 p(w) 满足高斯分布:
则有:
上式中,似然函数部分对应于目标函数中的适应度函数,而先验概率部分对应于正则项,因此我们可以通过确定先验概率得到正则项,从而对神经网络的目标函数进行优化,进而有效控制网络规模,提高网络泛化能力。
后验分布是人们在获得样本数据 D 之后对参数 w 的一种调整。 贝叶斯把上一步得到的后验分布信息储存起来,在将来做推测时,上一步的后验信息就成为了先验信息 ,这样持续数次操作之后,样本数据的预测结果会一直进行调整,最后对参数估计的结果精确度更高。
神经网络中最重要的两个性能参数就是权值和阈值,而这两个参数的分布情况受到了目标函数中超参数的控制,但一般的算法不能确定超参数的取值。可以利用贝叶斯定理来求取目标函数的超参数,并且要求达到自主调节超参数取值的目标,并且通过持续的调整最后找到最优的取值,相应的确定 BP 神经网络的最优权值和阈值。