变分贝叶斯深度学习综述

**©PaperWeekly 原创 · 作者 |**薛博阳

**单位 |**香港中文大学

**研究方向 |**语言模型

引言

近年来,贝叶斯深度学习(Bayesian Deep Learn-ing)在诸多领域得到广泛关注应用,效果显著。本文将针对贝叶斯深度学习框架进行系统性的概述,包括模型不确定性的引入;贝叶斯神经网络(Bayesian Neural Network)、高斯过程(Gaussian Process)、变分自编码器(Variational Auto-Encoder)三个主流模型的介绍,以及如何使用变分推断(Variational In-ference)求解上述模型的潜在变量分布;最后对相关参考文献进行总结。

深度学习的不确定性

首先谈下为什么要引入贝叶斯深度学习方法。贝叶斯深度学习能够对传统深度学习模型的不确定性(Model Uncertainty)建模,随着近年来卷积神经网络,Transformer 等发展,主流深度学习框架变得越来越复杂,网络深度可达成百甚至上千层,参数量也超过数千亿。这些大规模的神经网络虽然对信息感知和特征提取能力越来越强,但也存在在有限数据集上容易过拟合及模型泛化能力弱的隐患。

针 对 这 个 问 题, 一 种 常 用 的 方 法 是 引入 Dropout,在模型训练时使用由一个超参数控制的伯努利分布对所有网络节点随机选择丢弃,使每次训练迭代的网络都不完全相同,引入了模型结构的不确定性;而在预测时则考虑所有节点,可看作所 有训练中不同网络的集成(Ensemble)或平均,从而有效减小了过拟合,Dropout 中的超参数通常需要手动调节。

另一种方法是在网络参数上加入随机噪声,这相当于引入参数的不确定性。然而这些不确定 性建模方法都只是简单的正则化,缺乏严谨的数学表述推理论证。深度学习任务通常有两种不确定性,一种是来源于数据噪声的随机不确定性(Aleatoric Uncertainty),另一种就是重点关注的模型不确定性,在不同模型框架上又可分为参数不确定性,结构不确定性以及隐变量的不确定性。下面使用一个更直观的例子来说明引入不确定性如何有效提升模型泛化能力。

传统深度学习模型都是确定函数的点估计(Point Estimation),对于一个鉴别狗品种的图像分类模型,如果输入一张训练集分布外的图像,如一只猫的照片,那样识别结果将很离谱。于是我们希望能在模型返回预测结果时附带不确定性信息,也可以看做对结果的置信度。这需要引入能对不确定性建模的概率模型(Probabilistic Model),如下图所示的二氧化碳浓度预测模型,蓝色虚线左边是观测数据,右边是测试数据;对于测试部分的数据点 ,传统的深度学习模型会给出确定的预测,如左图红色虚线所示;而概率模型则会对未知的测试部分均采用概率分布来表示,如右图蓝色阴影部分所示,在数据集不能学习到准确的数据分布的情况下(当然实际所用的所有数据集都是有限的),很显然引入不确定性更合理,这也是能有效提升模型泛化能力的原因。

▲ 图1. 传统深度学习模型(左)与概率模型(右)对二氧化碳浓度的预测

这里的概率模型就是用的贝叶斯方法建模,假设存在数据集 和标签集 ,在预测测试数据对 的概率分布时,根据边缘概率计算,我们有

其中 为模型参数,问题就转换为求参数 在训练集 上的最大后验分布的问题。根据贝叶斯公式,有

传统深度学习通常是对参数 进行定参估计,而贝叶斯模型把参数看做概率分布,需要对所有 值进行积分,按照 Bishop 的《Pattern Recognition and Machine Learning》的定义,这种积分是贝叶斯方法的核心,在深度学习模型上应用贝叶斯方法就统称为贝叶斯深度学习。我们对公式(2)分母部分进行归一化积分,有

这部分也称作模型证据(Model Evidence)或边缘似然(Marginal Likelihood) 分布。由于积分的存在,通常很难求得解析解,这就需要用到一些近似推断方 法。至此,我们从不确定性,概率模型,贝叶斯方法的基本思路着手,明确了贝叶斯深度学习和不确定性的关系,下面就来讲贝叶斯深度学习里最经典的模型——贝叶斯神经网络。

贝叶斯神经网络

广义的贝叶斯深度学习在不同文章课题中定义略有不同,但狭义的贝叶斯深度学习公认是指贝叶斯神经网络。结合上文不确定性,再来详细讨论贝叶斯神经网络和传统神经网络的区别:传统神经网络中,我们认为模型参数 是定值,如图二左所示,并且在一个任务上存在最优参数 ;训练时,给模型参数赋一组初值 ,基于观测数据集 训练模型不断更新 ,训练时可以使用最大似然估计

或者加入正则项将最大似然变为最大后验估计

其中 正则项是将 假设为拉普拉斯先验, 正则项是高斯先验,不论 MLE 还是 MAP,最终学习目标都是让参数无限逼近 。

▲ 图2. 参数固定的传统神经网络(左)以及参数服从概率分布的贝叶斯神经网络(右)

需要指出虽然最大后验估计也引入先验,但仍属于定参估计,没有引入概率模型,不需要对参数积分,因此不属于贝叶斯方法。传统神经网络无法对不确定性建模,在监督学习中往往对预测结果过于自信,很容易发生过拟合。

顺着前文在参数上引入不确定性的思路,我们 认为 服从某种概率分布而非固定参数,如图二右所示,为了最大化不确定性,我们先假设 服从高 斯分布,这样训练的也不再是单一网络,而是无数个相同位置节点参数服从同一概率分布的集成网络。此时参数 的先验分布不再是简单的正则项,而是对应的共轭分布,高斯分布的共轭先验也应该是一 个高斯分布,对应的后验分布也是一个高斯分布。模型的优化目标就是最大化后验高斯分布 ,也就是公式(1)中的后验。

现在问题的关键就是计算公式(3)的边缘算子了。如果模型是线性回归之类的简单模型,其实也不难求出解析解,但换成神经网络后就会变得异常复杂,下面简单推导一下。假设有模型 ,输入向量 ,标签 ,模型参数为 ,假设模型输出服从均值为 ,方差为 的高斯分布,有

权重 的共轭先验也是高斯分布,假设其均值为 ,方差为 ,可得

后验分布由贝叶斯公式

计算,代入多元高斯概率密度函数,对后验分布取

其中 为常数项。对于一般的线性回归模型, 是关于 的线性函数,后验概率仍是是关于 的高斯分布,可以直接计算出解析解,但是在神经网络中,由于大量非线性单元,模型输出 与 不再是线性关系,网络模型对于参数值的高度非线性意味着精确的贝叶斯方法(即数值求解)不可行,因此我们不得不借助一些近似方法,如拉普拉斯近似(Laplace Approximation),马尔科夫链蒙特卡罗采样(Markov-Chain Monte-Carlo Sampling),以及近几年使用最多的变分推断法。

变分推断

本节主要讲变分推断求解贝叶斯神经网络的过程,类似的也可以用于其他贝叶斯深度学习模型上。

变分法最早起源于 18 世纪欧拉、拉格朗日等关于泛函优化的研究,泛函数 (Functional)是以函数作为输入,返回泛函值作为输出的一种映射,它以一个函数作为输入,返回泛函的值作为输出。研究所有可能的输入函数,找到最大化或者最小化泛函的函数就是问题的解。相比其他近似推断方法,变分法具有更好的收敛性和可扩展性,适合大规模问题的求解。贝叶斯深度学习将参数视作概率分布后,误差函数的输入也就从定值变为函数,从而转变为泛函优化,这就是用变分法来求解贝叶斯深度学习模型的原因。

第三节已经证明了贝叶斯神经网络中的 无法直接计算解析解,甚至很难采样。变分法的核心就是用一个可解的近似分布 逼近真实分布。第二节分析表明估计后验分布 需要最大化公式(3)边缘分布的积分,假设公式(3),根据 Jensen 不等式,有

这也被称为变分下限(Variational Lower Bound), 是对后验概率 的变分近似, 是参数的先验分布,KL 散度用来度量两个概率分布的距离,如下图所示

▲ 图3. 变分下限

一种更直观的理解是,已知后验分布 是 一个未知分布,我们引入已知参数分布的 去逼近 ,所以只需最小化 KL ,可以作如下推导

最终结果第一项 与 无关可以忽略,第二项 和第三项分别求 与先验 的距离,以及 时似然函数 的期望值。这与公式(11)的结果一致,也就是目标函数或误差函数,即

与正则化的传统神经网络对比,贝叶斯神经网络误差函数也分为两部分,一是训练数据相关的似然代 价(Likelihood Cost),其中 服从 ;二是先验相关的复杂性代价(Complexity Cost),也就是把正则项变成 KL 散度,传统方法中引入正则项就有让模型参数变得稀疏的作用,控制了模型的复杂度。误差函数的优化就是在两项函数之间取平衡。

下面说说误差函数两项的求解方法,为了最大化不确定性,假设近似和后验均服从高斯分布,即

似然代价因为积分存在无法直接求解,在此借助蒙特卡罗采样(Monte Carlo Sampling),即

其中 是每次训练中对 的采样次数,如果直接对均值 和方差 采样代入高斯分布因指数运算在反向传播时会造成训练过程不稳定,在此使用一种重参数化(Reparameterize)方法,即

这意味着在前向传播计算似然代价时,参数 需要从公式(17)随机采样获得,对应贝叶斯神经网络的参数 不再是一个定值。

对于 与 的 KL 散度项,需要对积分离散化,然后代入高斯分布的概率密度函数,有

其中 表示 中的第 项参数, 并且相互独立,根据高斯分布均值和二阶矩的性质 ,即可完成最后一步推导。至此,我们已推导出误差函数项的形式,利用 梯度下降和反向传播算法,就可以完成大规模参数贝叶斯神经网络的训练了,为了稀疏模型我们可以 的标准高斯分布,反向传播算法如下

由于我们假设参数服从高斯分布,因此使用了均值和方差两个参数,参数量为同等规模的传统神经网络的 2 倍。当然实际上只需要对部分参数做贝叶斯推断,就可以取得较好的效果了。

简化后的代价函数也可以进行小批量梯度下降,训练时将 随机分成 个相等的子集。每次梯度更新是小批量上的平均。如果想要衡量复杂性成本与小批量之间的关系,我们可以将小批量均匀随机划分,那么 KL 代价可以在每个训练周期非均匀地分布在小批量 之间:令 ,并且 。

研究发现 时效果最好,这也意味着在前几个小批量更新时在模型比较依赖先验也就是复杂性成本的影响,而后面训练时很大程度上受数据的影响。也就是说,当数据集趋于无穷时,贝叶斯神经网络和传统神经网络相差并不大,但是在有限数据集上,贝叶斯神经网络明显性能更优。

高斯过程

高斯过程是结合连续函数和概率模型的一种非参数化方法,函数 的高斯过程可表示为

其中 是训练集中的随机数据对, 是核函数,上述公式是高斯过程的核空间表述(kernel space view),然而,由于数据集中所有数据点都需要相互运算,在大规模数据集上计算复杂度会特别高,另一种权重空间表述(weight space view)的高斯过程形式为模型中一系列基函数的插值

核函数与基函数的关系为 , 是第 个基函数的系数。

此前已有研究证明,对于单隐层的神经网络,当隐层结点数不断增加并趋于无穷时,输出服从高斯分布。由于输出被描述为基函数的无穷和,因此可以将输出看作高斯过程,如下图所示可以看出高斯

▲ 图4. 单隐层神经网络结点数不断增加 (a),(b),©,(d) 时输出分布

过程是和模型结构相关的,这也启发了一系列将高斯过程与贝叶斯深度学习相结合的研究,一种思路就是利用上述权重空间的高斯过程,对基函数插值系数使用贝叶斯估计从而为模型结构的不确定性建模,公式(11)可表示如下

相较之下多了一个变量的积分,其余推导过程就按照变分下限,蒙特卡罗采样,重参数化,反向传播等一系列步骤进行,推导过程与第四节类似,在此不作赘述。

变分自编码器

变分自编码器本质上也是贝叶斯深度学习,只不过这次是对隐变量(Latent Variables)进行不确定性建模,也就是将神经网络中的隐藏层输出视作随机变量。传统自编码器是一种由编码器和解码器组成的用于特征提取或数据降维的模型。如下图所示左边是编码器,右边是解码器,通过自编码器将输

▲ 图5. 自编码器

入 映射到低维空间 再通过解码器还原回真实数据。

在数据处理时会遇到数据量不足的情况,这时就会考虑使用生成模型生成数据,变分自编码器就是在自编码器基础上对 引入变分贝叶斯估计,使其能够生成数据。这涉及到一类利用变分贝叶斯求解图模型变量的方法,也是变分贝叶斯在深度学习隐藏变量上的应用,变分自编码器是其中的典型代表。

对于如下具有连续隐变量的概率图模型

▲ 图6. 连续隐变量的概率图模型

我们试图推断和学习有向概率图模型的隐分布, 并通过对 的采样来实现数据 的生成。由于连续 随机隐变量 不可见,我们无法根据条件概率分布 生成 ,也就无法得到生成模型 。而数据的先验分布

因存在积分也无法求解,这时候就可以构建模型 来近似

这个过程可视作编码器,即由样本数据 学出一个对应的隐层分布 ,并使用 作为解码器,实现模型生成。数据集的先验可以写作

其中 就是变分下限,也可以写作

还可以进一步写作

接下来就是蒙特卡罗采样,重参数化,反向传播等一系列算法的运用,推导过程与第四章基本类似,在此不作赘述。

总结

本文从深度学习不确定性的角度切入,总结了贝叶斯深度学习模型提升模型的泛化能力的作用,并讲了三个主流的框架:贝叶斯神经网络,高斯过程,变分自编码器,分别在模型参数,模型结构和隐藏变量进行不确定性建模,并且给出变分法求解上述模型的过程。参考资料详见下文。

参考文献

模型不确定性:

[1] Gal, Y. “Uncertainty in Deep Learning.”PhD Thesis, 2016.

贝叶斯神经网络,变分推断:

[2] D. Barber and C. M. Bishop, “Ensemble Learning in Bayesian Neural Networks,”Nato ASI Series F Computer and Systems Sciences, 1998

[3] R. M. Neal, “Bayesian Learning for Neu- ral Networks,”Springer Science & Business Media, 2012.

[4] C. M. Bishop, “Pattern Recognition and Machine Learning,”Machine Learning, 2006.

[5] A. Graves, “Practical Variational Inference for Neural Networks,”NIPS 2012.

[6] C. Blundell et al., “Weight Uncertainty in Neural Network,”ICML 2014.

[7] Goan, E. Bayesian. “Neural Networks: An Introduction and Survey,”In Case Studies in Applied Bayesian Data Science 2020.

高斯过程:

[8] C. E. Rasmussen, “Gaussian Processes for Machine Learning,”Machine Learning, 2006.

变分自编码器:

[9] D. P. Kingma et al., “Auto-Encoding Vari- ational Bayes,”stat, 2014.

特别鸣谢

感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。

更多阅读




#投 稿 通 道#

让你的文字被更多人看到

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

△长按添加PaperWeekly小编

🔍

现在,在**「知乎」**也能找到我们了

进入知乎首页搜索**「PaperWeekly」**

点击**「关注」**订阅我们的专栏吧

·

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/115419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试老鸟总结,Allure测试报告-自动化测试详解,惊险避坑...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、Allure安装教程…

实战:打造一个开箱即用的超丝滑超漂亮hexo博客网站-v4-(通过百度网盘同步空间来同步source核心数据)

实战:打造一个开箱即用的超丝滑超漂亮hexo博客网站-v4-(通过百度网盘同步空间来同步source核心数据) 目录 文章目录 实战:打造一个开箱即用的超丝滑超漂亮hexo博客网站-v4-(通过百度网盘同步空间来同步source核心数据)目录写在前面本次更新方案背景方案官…

Homeassistant docker配置

Homeassistant docker配置 【说明】本系列为自用教程,记录以便下次使用 【背景】一台J1900 4G64G的小主机,安装了OP系统,里面自带了Docker。为实现Homeassistant(简称HA)控制智能家居设备,进行如下配置。 【…

汽车屏类产品(三):抬头显示Head-Up Display(HUD)

前言 你的下一台车,一定要考虑加装一个HUD。 汽车抬头显示器或汽车抬头显示器(也称为汽车HUD)是任何透明的显示器,它可以在汽车中显示数据,而不需要用户将视线从平时的视角移开。这个名字的由来源于飞行员能够在头部“向上”并向前看的情况下查看信息,而不是向下倾斜查…

[swift刷题模板] 树状数组(BIT/FenwickTree)

[TOC]([swift刷题模板] 树状数组(BIT/FenwickTree) ) 一、 算法&数据结构 1. 描述 [python刷题模板] 树状数组 二、 模板代码 1. 单点赋值(增加),区间求和(PURQ) 例题: 307. 区域和检索 - 数组可修改 class BIT {var c: [Int]var n: Int init(_ n: Int){c…

OpenCV+QT实现的数字图像处理算法合集

源码下载地址: 基于OpenCV和QT的图像处理源码 图像预处理 灰度处理 灰度直方图 灰度均衡 梯度锐化 Laplace锐化 边缘检测 Roberts Sobel Laplace Prewitt canny Krisch 噪声 椒盐噪声 高斯噪声 滤波 均值滤波 中值滤波 双边滤波 形态学滤波 高斯滤波 图像变…

java--自增自减运算符

1.自增自减运算符 注意:、--只能操作变量,不能操作字面量的。 2.自增自减的使用注意事项 1.、--如果不是单独使用(如果在表达式中、或者同时有其它操作),放在变量前后会存在明显区别 1.1放在变量前面,先对变量进行1、-1&#xff…

内网穿透的应用-如何通过TortoiseSVN+内网穿透,实现公网提交文件到内网SVN服务器?

文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统,它与Apache Subversion(SVN)集成在一起,提供了一个用户友好的界面,方便用…

北邮22级信通院数电:Verilog-FPGA(6)第六周实验:全加器

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 先抄作业!!!&am…

内衣洗衣机有必要买吗?口碑好的小型洗衣机测评

在近年以来,由于人们对健康的认识和生活质量的不断改善,使得内衣洗衣机这一类的产品在近年来得到了飞速的发展,洗烘一体机、洗烘套装的价格总体下降,功能和性能都得到了改善,往往更多的用户会选择一台或者多台洗衣机来…

qwen大模型,推理速度慢,单卡/双卡速度慢,flash-attention安装,解决方案

场景 阿里的通义千问qwen大模型,推理速度慢,单卡/双卡速度慢。 详细: 1、今日在使用qwen-14b的float16版本进行推理(BF16/FP16) 1.1 在qwen-14b-int4也会有同样的现象 2、使用3090 24G显卡两张 3、模型加载的device是auto&#x…

Cross-Modal Joint Embedding with Diverse Semantics

计算两个嵌入之间的相似度得分,然后利用损失函数进行联合嵌入损失最小化优化并更新参数 辅助信息 作者未提供代码

上门预约洗鞋小程序开发;

上门洗鞋小程序服务小程序是一款方便用户与服务提供者进行交流和预约的平台,覆盖多个行业,包括家政清洁、洗衣洗鞋,维修服务等,满足用户在生活中各种需求的上门服务。用户可以在小程序中选择服务项目、预约时间,服务人…

Android Termux安装MySQL,通过内网穿透实现公网远程访问

🔥博客主页: 小羊失眠啦. 🔖系列专栏: C语言、Linux、Cpolar ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前…

2022年京东双11母婴品类数据回顾

母婴产品作为部分家庭的刚需,双11期间的行业热度也节节攀升,2022年双11期间,行业中不少品类赛道势头猛进。下面,鲸参谋带大家一起来回顾2022年双11期间母婴行业大盘及母婴重点细分赛道的销售表现。 母婴行业大盘 2022年双11期间&a…

工业RFID厂家与您分享工业生产制造的应用案例

随着科技的不断进步,RFID技术在工业生产制造领域的应用越来越广泛。AGV/RGV小车运输、立体仓库、生产线、物料跟踪与管理等各行业工业自动化的使用上都有着RFID的身影。为工业生产制造智能化自动化提供了助力。下面,为大家分享RFID技术在工业生产制造上的…

【Gensim概念】01/3 NLP玩转 word2vec

第一部分 词法 一、说明 Gensim是一种Python库,用于从文档集合中提取语义主题、建立文档相似性模型和进行向量空间建模。它提供了一系列用于处理文本数据的算法和工具,包括主题建模、相似性计算、文本分类、聚类等。在人工智能和自然语言处理领域&…

【React】高频面试题

1. 简述下 React 的事件代理机制? React使用了一种称为“事件代理”(Event Delegation)的机制来处理事件。事件代理是指将事件处理程序绑定到组件的父级元素上,然后在需要处理事件的子元素上触发事件时,事件将被委托给…

软件外包开发迭代管理工具

软件迭代的管理工具有助于团队有效地规划、跟踪和管理迭代开发过程,确保项目按时交付,并与团队成员之间进行协作。以下是一些常用的软件迭代管理工具,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司&#…

10.23归并排序

课上 归并排序 最大时,就是两个都是完全倒序,但注意一定有一个序列先用完,此时剩一个序列只有一个元素,不用比较,直接加入,所以就是nn-1, 最小时,是都是完全有序,且一个序列中的元…