BNN系列-Dropout as a Bayesian Approximation
BNN系列-Dropout as a Bayesian Approximation
- 预备知识:
- 变分推断(Variational inference)
- 正文
本篇是对牛津大神YARIN GAL2016年论文 Dropout as a Bayesian Approximation(截止目前引用量高达2332)的阅读笔记,更具体的细节大家可以参考YARIN GAL大神的博士论文!
预备知识:
变分推断(Variational inference)
参考:博客1 博客2
变分推断:需要的分布P不容易表达/直接求解时,寻找容易表达和求解的分布Q去近似P;另外要了解在最小化KL(P||Q)时等价于最小化evidence lower bound(ELBO)(证明见上面两个博客,P(X)是定值,最小化第二项,就相当于最大化第一项ELBO)
正文
BNN把权重和偏置(后面就说权重了)从确定的值变成分布distributions(这很贝叶斯)即ω\omegaω~p(ω∣X,Y){\rm{p}}(\omega {\rm{|X,Y}})p(ω∣X,Y),根据贝叶斯公式可以得到p(ω∣X,Y)=p(Y∣ω,X)p(ω)p(Y∣X){\rm{p}}(\omega {\rm{|X,Y}}) = {{{\rm{p}}(Y|\omega ,X){\rm{p}}(\omega )} \over {{\rm{p}}(Y|X)}}p(ω∣X,Y)=p(Y∣X)p(Y∣ω,X)p(ω),但是这个很难/无法计算,因此用变分推断(Variational inference)的方法:
即qθ(ω){q_\theta }(\omega )qθ(ω)来近似p(ω∣X,Y){\rm{p}}(\omega {\rm{|X,Y}})p(ω∣X,Y)那么就变成优化变分参数θ\thetaθ(这里面的θ\thetaθ是某一个分布的参数,后面就会知道这个参数实际就是权重 ω\omegaω),那么我们就需要最小化qθ(ω){q_\theta }(\omega )qθ(ω)和p(ω∣X,Y){\rm{p}}(\omega {\rm{|X,Y}})p(ω∣X,Y)之间的KL散度(优化变量为 θ\thetaθ):
根据预备知识,我们知道等价于优化P(X∣Y){\rm{P(X|Y)}}P(X∣Y)的log似然的evidence lower bound(ELBO):
使得ELBO最大化的那个θ\thetaθ是使得qθ(ω){q_\theta }(\omega )qθ(ω)能够最好的近似后然概率p(ω∣X,Y){\rm{p}}(\omega {\rm{|X,Y}})p(ω∣X,Y),由于该积分对于几乎所有qθ(ω){q_\theta }(\omega )qθ(ω)都是难解的,因此我们将通过Monte Carlo方法来近似该积分
其中 ω^\hat \omegaω^从qθ(ω){q_\theta }(\omega )qθ(ω)分布中采样
解读:其实这个公式很好理解,一方面要使得模型预测出Y的似然概率最大,另一方面近似的qθ(ω){q_\theta }(\omega )qθ(ω)尽可能的接近原来的先验概率分布(一般取N(0,I)N(0,I)N(0,I))。
优化的过程就可以变成:
repeatedly do:
a): sample ω^\hat \omegaω^~qθ(ω){q_\theta }(\omega )qθ(ω)
b): Do one step of maximizationw.r.t. θ\thetaθ:
而这时的关键就是我们取什么样的qθ(ω){q_\theta }(\omega )qθ(ω)
我们可以取
其中
解释一下这个公式:从Bernoulli采样对角元素z等于0,即将M的列随机设置为零,这与将网络的神经单元单位随机设置为零相同。更进一步就理解:这里面变分参数就是M,而M就是没有drop out那个Standard的NN(Wi是drop out采样后的权重,相当于另一个NN了)
而采取Bernoulli分布可以使得计算变得简单,另外很好的和现有的技术drop out关联起来了,这是对drop out以贝叶斯近似(Bayesian Approximation)的角度加以诠释。
们现在有了qθ(ω){q_\theta }(\omega )qθ(ω)具体形式,那么我们可以来继续优化L^(θ)\hat L(\theta )L^(θ)了:
那么第一项很明显就是如果把P(Y∣X,ω)P(Y|X,\omega )P(Y∣X,ω)看成高斯分布的话(把方差看成global的常数就是传统的MSE,若是data-dependent参数的话就引入了data uncertainty这里暂不考虑)就是在优化MSE,如果看成拉普拉斯分布的话就是在优化MAE。
第二项在基于上面给出的qθ(ω){q_\theta }(\omega )qθ(ω)的分布的情况下是在对权重做L2正则(具体推导较长,但其实不难,就用到了Gaussian processes,variational inference,具体可见YARIN GAL大神的博士论文以及他的ICML2016的论文Dropout as a Bayesian Approximation)
那么就可以理解为训练的过程中drop out+权重L2正则(weight decay)就是在用学习qθ(ω){q_\theta }(\omega )qθ(ω)逼近后验概率。推断的时候用dropout相当于对于学习到的qθ(ω){q_\theta }(\omega )qθ(ω)进行MC采样,便很容易近似得到预测Y的分布,便可以对model uncertainty进行量化。具体如何量化可以参见下一篇文章
其他参考:
1.贝叶斯深度学习(bayesian deep learning)
2.Medium 博客 Dropout as a Bayesian Approximation: Representing Model Uncertainty in Deep Learning
BNN系列-Dropout as a Bayesian Approximation相关推荐
- Dropout as a Bayesian Approximation: Representing Model Uncertainty Learning
这篇文章指出,在每个权重层前面应用dropout操作的CNN网络在数学上和采用变分推理的高斯过程是等价的. 单隐层网络中使用Dropout 定义 W 1 , W 2 \mathbf{W}_{1}, \ ...
- 自然语言处理NLP星空智能对话机器人系列:贝叶斯Bayesian Transformer课程片段1到片段7
Coherence is everything you need! – Gavin Wang(星空智能对话机器人作者,AI通用双线思考法创始人) 贝叶斯神经网络(Bayesian Neural Net ...
- python机器学习手写算法系列——贝叶斯优化 Bayesian Optimization
Bayesian Optimization 贝叶斯优化在无需求导的情况下,求一个黑盒函数的全局最优解的一系列设计策略.(Wikipedia) 最优解问题 最简单的,获得最优解的方法,就是网格搜索Gri ...
- BAT机器学习面试1000题系列(第150~279题)
首页 博客 学院 下载 GitChat TinyMind 论坛 问答 商城 VIP 活动 招聘 ITeye CSTO 写博客 发Chat leadai的博客 RSS订阅 转 BAT机器学习面试1000 ...
- dropout层_DNN,CNN和RNN的12种主要dropout方法的数学和视觉解释
深入研究DNN,CNN和RNNDropout方法以进行正则化,蒙特卡洛不确定性和模型压缩 动机 在(深度)机器学习中训练模型时的主要挑战之一是协同适应. 这意味着神经元彼此非常依赖. 它们彼此之间影响 ...
- Monte-Carlo Dropout,蒙特卡罗 dropout
Monte-Carlo Dropout Monte-Carlo Dropout(蒙特卡罗 dropout),简称 MC dropout. 一种从贝叶斯理论出发的 Dropout 理解方式,将 Drop ...
- Bayesian Neural Network Recent Papers-贝叶斯神经网络相关研究文章
Bayesian Neural Network Recent Papers-贝叶斯神经网络相关研究文章 Methods Variational Inference (VI) Markov Chain ...
- 长文综述:给生物学家的机器学习指南
来源:集智俱乐部 作者:Joe G. Greener, Shaun M. Kandathil等 译者:赵雨亭 审校:陈斯信 编辑:邓一雪 导语 过去几十年,生物数据集的规模与复杂性大幅增长,这使 ...
- 【深度学习】深度学习模型中的信任危机及校正方法
作者: 北邮 GAMMA Lab 硕士生 刘洪瑞,副教授 王啸 1 前言 深度学习在计算机视觉.自然语言处理.数据挖掘等诸多研究领域中的潜力被广泛认可,在目标检测.语音识别.医疗检测.金融欺诈检 ...
- 【群话题精华】五月集锦—— 机器学习和深度学习中一些值得思考的问题
其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算法与应用>,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造. 书的购买链接 书的勘误,优化,源代码资源 原创声明 ...
最新文章
- 安卓突击:Android 动画有哪几种?
- Oracle case when的用法
- Vue+ElementUI+SpringMVC实现图片上传和回显
- linux上如何设置ssh免密登陆
- mysql文件说明_MySQL进阶之配置文件说明
- object picker 微信小程序_微信小程序 demo分享
- HDU 1203 I NEED A OFFER! (动态规划、01背包、概率)
- linux:tr的用法
- 如何列出目录的所有文件
- 安装自带python3.6的Anaconda3,并安装tensorflow,导入Pycharm中使用
- SQLite数据库的使用——利用命令行或Navicat Premium创建数据库
- 中通快递 | 快递单号查询API
- 图灵奖设立50周年,向伟大的计算机科学家们致敬
- Python四舍五入问题详解
- Java中线程同步锁和互斥锁有啥区别?看完你还是一脸懵逼?
- c++ memcpy内存拷贝
- lm80认证_什么是LM-80测试什么产品需要做LM-80测试
- 新手指南:互联网创业要准备什么?
- MyCat分片规则(全局表,ER分片表,多对多关联,主键分片VS非主键分片),MyCat常用的分片规则(15中分片规则),自定义MyCat分片规则,其它术语
- Gmesh学习·tutorial游览(一)