第三十五课.基于贝叶斯的深度学习
目录
- 贝叶斯公式
- 基础问题
- 贝叶斯深度学习与深度学习的区别
- 贝叶斯神经网络与贝叶斯网络
- 贝叶斯神经网络的推理与学习
- 前向计算
- 学习
贝叶斯公式
首先回顾贝叶斯公式:p(z∣x)=p(x,z)p(x)=p(x∣z)p(z)p(x)p(z|x)=\frac{p(x,z)}{p(x)}=\frac{p(x|z)p(z)}{p(x)}p(z∣x)=p(x)p(x,z)=p(x)p(x∣z)p(z)通常:
- p(z)p(z)p(z)为先验概率,zzz通常被定义为隐变量;
- p(z∣x)p(z|x)p(z∣x)为后验概率;
- p(x,z)p(x,z)p(x,z)为联合概率;
- p(x∣z)p(x|z)p(x∣z)为似然函数;
- p(x)p(x)p(x)为真实分布(evidence);
引入全概率公式:p(x)=∫p(x∣z)p(z)dzp(x)=\int p(x|z)p(z)dzp(x)=∫p(x∣z)p(z)dz可以将贝叶斯公式改写为:p(z∣x)=p(x∣z)p(z)∫p(x∣z)p(z)dzp(z|x)=\frac{p(x|z)p(z)}{\int p(x|z)p(z)dz}p(z∣x)=∫p(x∣z)p(z)dzp(x∣z)p(z)当隐变量zzz是离散型变量时,积分符号改成求和:p(z∣x)=p(x∣z)p(z)∑p(x∣z)p(z)dzp(z|x)=\frac{p(x|z)p(z)}{\sum p(x|z)p(z)dz}p(z∣x)=∑p(x∣z)p(z)dzp(x∣z)p(z)
通常,使用PPP表示分布函数,ppp表示概率密度函数
在常规的神经网络中,对于一个神经元有:
其中,权重wiw_{i}wi和偏置bbb都是确定的一个值,在前向推理过程中,缺少了一定的随机性,如果将权重和偏置视为分布,推理时每次从分布中采样出具体的权重和偏置,就得到了基于贝叶斯的深度学习Bayesian neural networks(BNN)。
正如过去说过的,贝叶斯理论的核心即:一切皆为随机变量,换言之,一切皆分布
下面是一个直观的例子:
该网络分别有两层参数,即对应两层参数的分布。
基础问题
贝叶斯深度学习与深度学习的区别
在深度学习的基础上把权重和偏置变为分布(distribution)就是贝叶斯深度学习。
贝叶斯深度学习有以下优点:
- 贝叶斯深度学习比非贝叶斯深度学习更加 robust。因为我们可以采样一次又一次,细微改变权重对深度学习造成的影响在贝叶斯深度学习中可以得到解决;
- 贝叶斯深度学习可以提供不确定性(uncertainty)。
贝叶斯神经网络与贝叶斯网络
贝叶斯网络(Bayesian network),又称信念网络(belief network),是有向无环图模型(directed acyclic graphical model),是一种概率图模型(概率图模型的核心是多维随机变量的联合概率分布进行计算)。
贝叶斯神经网络(Bayesian neural network)是贝叶斯和神经网络的结合。
贝叶斯神经网络和贝叶斯网络是两个不同的对象。
关于贝叶斯深度学习的框架,可以参考:BoTorch:
贝叶斯神经网络的推理与学习
前向计算
想要像非贝叶斯神经网络那样进行前向传播,我们可以对贝叶斯神经网络的权重和偏置进行采样,得到一组参数,然后像非贝叶斯神经网络那样使用即可。
当然,我们可以对权重和偏置的分布进行多次采样,得到多个参数组合,参数的细微改变对模型结果的影响就可以体现出来。这也是贝叶斯深度学习的优势之一,多次采样最后一起得到的结果会更加具有鲁棒性。
学习
给定训练集D={(x1,y1),...,(xm,ym)}D=\left\{(x_{1},y_{1}),...,(x_{m},y_{m})\right\}D={(x1,y1),...,(xm,ym)},训练贝叶斯神经网络,按照贝叶斯公式有:p(w∣x,y)=p(y∣x,w)p(w)∫p(y∣x,w)p(w)dwp(w|x,y)=\frac{p(y|x,w)p(w)}{\int p(y|x,w)p(w)dw}p(w∣x,y)=∫p(y∣x,w)p(w)dwp(y∣x,w)p(w)我们希望得到后验概率p(w∣x,y)p(w|x,y)p(w∣x,y),先验概率p(w)p(w)p(w)是提前设置的(初始化),比如初始时令p(w)p(w)p(w)为标准正态分布。
似然p(y∣x,w)p(y|x,w)p(y∣x,w)是一个关于www的函数,当www等于某个值时,我们便可以确定分子p(y∣x,w)p(w)p(y|x,w)p(w)p(y∣x,w)p(w),对于分母,要对www的取值空间进行积分,但w∈Rw\in Rw∈R,这是非常复杂的计算,因此需要寻求其他近似方法以计算分母。
对于训练,通常有以下三种方法:
- 用蒙特卡洛采样去近似分母的积分,其本质即为:用采样得到的统计结果去实现近似;
- 直接用一个简单的分布qqq近似后验概率ppp,不再考虑分母的积分,直接基于KL散度最小化ppp和qqq的差异;
- 蒙特卡洛Dropout,简单实用,不改变网络原始结构,只需要在每层网络后加Dropout,训练过程也和常规神经网络一致,只需要在测试时,多次对同一输入前向计算,从而达到引入随机性的目的。
第三十五课.基于贝叶斯的深度学习相关推荐
- 实践数据湖iceberg 第三十四课 基于数据湖icerberg的流批一体架构-流架构测试
系列文章目录 实践数据湖iceberg 第一课 入门 实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式 实践数据湖iceberg 第三课 在sqlclient中,以sql ...
- NeHe OpenGL第三十五课:播放AVI
NeHe OpenGL第三十五课:播放AVI 在OpenGL中播放AVI: 在OpenGL中如何播放AVI呢?利用Windows的API把每一帧作为纹理绑定到OpenGL中,虽然很慢,但它的效果不错. ...
- C语言笔记 第三十五课 数组参数和指针参数分析
第三十五课 数组参数和指针参数分析 思考:为什么C语言中的数组参数会退化为指针? 退化的意义 C语言中只会以值拷贝的方式传输参数 当向函数传递数组时:(错误的,设计当初的思路) 将整个数组拷贝一份传入 ...
- 第三十五课 问题求解方法——迭代 【项目1-5】
第三十五课 问题求解方法--迭代 项目一 [另类求和] 求 Sn=a+aa+aaa+...+aa...a之值,其中 a是一个数字. 例如2+22+222+2222( 此时a=2,n=4),a和 ...
- 机器学习算法集锦:从贝叶斯到深度学习及各自优缺点
公众号关注 "视学算法" 设为 "星标",DLCV消息即可送达! 来自 | 机器之心 链接 | https://static.coggle.it/diagram ...
- Udacity机器人软件工程师课程笔记(三十五) - SLAM - 基于网格的FastSLAM
一.SLAM介绍 即使定位和建图问题(simultaneous localization and mapping),一般简称为SLAM, 也称作(Concurrent Mapping and Loca ...
- 【问链财经-区块链基础知识系列】 第三十五课 区块链跨境贸易完全简析
一.跨境贸易存在的问题 在国际跨境贸易中,数据和信息无疑是贯穿整个业务流程的重要要素,数据流的打通对于国际跨境贸易至关重要.然而,恰恰是因为数据在业务中所扮演的重要角色,其对各参与方而言都是私密且重要 ...
- 第三十五课 redis
21.9 redis介绍 Redis和Memcached类似,也属于k-v数据存储 什么是 key value 存储? JAVA 中的 map 就是 key=>value 存储的.键 => ...
- 第三十五课:多普勒效应和宇宙大爆炸
1.声音的多普勒效应: 多普勒移频方程 :f'= f(v声音-v接受)/(v声音-v发射) 接收方与发射方的移动存在很大的不对称性 2.电磁波也存在移频 f' = f ( (1-β)/(1+β))1/ ...
最新文章
- 对于ESP8266-340模块改成MicroPytyhon模块
- Oracle PL/SQL语言入门
- 【控制】《多智能体系统的动力学分析与设计》徐光辉老师-第9章-不确定分数阶系统的包含控制
- oracle异常如何处理,ORACLE异常处理总结
- Linux newgrp命令用法详解:切换用户的有效组
- 讲讲数据分析中的同期群模型
- Linux系统编程-管道入门
- PLSQL连接ORACLE
- “ORA-01034 - Oracle not available”和“ORA-27101 - shared memory realm does not exist”
- 一步一步完成坦克大战:一、游戏关键难点实现
- android菜单详解四:子菜单
- mysql8 :客户端连接caching-sha2-password问题
- 云计算的核心技术有哪些?
- SVPWM matlab建模
- 农夫山泉做起“烧水工,熟水市场的魅力究竟有多大?
- unity+vuforia无法识别图片的解决方法
- 流利阅读 2019.1.8 Taylor Swift used facial recognition software to detect stalkers at LA concert
- C++的输入、输出与文件
- [打新技巧]打新股产品跷跷板定律
- Bluetooth 蓝牙介绍(五):低功耗蓝牙BLE Security