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相关推荐

  1. Dropout as a Bayesian Approximation: Representing Model Uncertainty Learning

    这篇文章指出,在每个权重层前面应用dropout操作的CNN网络在数学上和采用变分推理的高斯过程是等价的. 单隐层网络中使用Dropout 定义 W 1 , W 2 \mathbf{W}_{1}, \ ...

  2. 自然语言处理NLP星空智能对话机器人系列:贝叶斯Bayesian Transformer课程片段1到片段7

    Coherence is everything you need! – Gavin Wang(星空智能对话机器人作者,AI通用双线思考法创始人) 贝叶斯神经网络(Bayesian Neural Net ...

  3. python机器学习手写算法系列——贝叶斯优化 Bayesian Optimization

    Bayesian Optimization 贝叶斯优化在无需求导的情况下,求一个黑盒函数的全局最优解的一系列设计策略.(Wikipedia) 最优解问题 最简单的,获得最优解的方法,就是网格搜索Gri ...

  4. BAT机器学习面试1000题系列(第150~279题)

    首页 博客 学院 下载 GitChat TinyMind 论坛 问答 商城 VIP 活动 招聘 ITeye CSTO 写博客 发Chat leadai的博客 RSS订阅 转 BAT机器学习面试1000 ...

  5. dropout层_DNN,CNN和RNN的12种主要dropout方法的数学和视觉解释

    深入研究DNN,CNN和RNNDropout方法以进行正则化,蒙特卡洛不确定性和模型压缩 动机 在(深度)机器学习中训练模型时的主要挑战之一是协同适应. 这意味着神经元彼此非常依赖. 它们彼此之间影响 ...

  6. Monte-Carlo Dropout,蒙特卡罗 dropout

    Monte-Carlo Dropout Monte-Carlo Dropout(蒙特卡罗 dropout),简称 MC dropout. 一种从贝叶斯理论出发的 Dropout 理解方式,将 Drop ...

  7. Bayesian Neural Network Recent Papers-贝叶斯神经网络相关研究文章

    Bayesian Neural Network Recent Papers-贝叶斯神经网络相关研究文章 Methods Variational Inference (VI) Markov Chain ...

  8. 长文综述:给生物学家的机器学习指南

    来源:集智俱乐部 作者:Joe G. Greener, Shaun M. Kandathil等  译者:赵雨亭  审校:陈斯信  编辑:邓一雪 导语 过去几十年,生物数据集的规模与复杂性大幅增长,这使 ...

  9. 【深度学习】深度学习模型中的信任危机及校正方法

    ‍ ‍作者: 北邮 GAMMA Lab 硕士生 刘洪瑞,副教授 王啸 1 前言 深度学习在计算机视觉.自然语言处理.数据挖掘等诸多研究领域中的潜力被广泛认可,在目标检测.语音识别.医疗检测.金融欺诈检 ...

  10. 【群话题精华】五月集锦—— 机器学习和深度学习中一些值得思考的问题

    其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算法与应用>,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造. 书的购买链接 书的勘误,优化,源代码资源 原创声明 ...

最新文章

  1. 安卓突击:Android 动画有哪几种?
  2. Oracle case when的用法
  3. Vue+ElementUI+SpringMVC实现图片上传和回显
  4. linux上如何设置ssh免密登陆
  5. mysql文件说明_MySQL进阶之配置文件说明
  6. object picker 微信小程序_微信小程序 demo分享
  7. HDU 1203 I NEED A OFFER! (动态规划、01背包、概率)
  8. linux:tr的用法
  9. 如何列出目录的所有文件
  10. 安装自带python3.6的Anaconda3,并安装tensorflow,导入Pycharm中使用
  11. SQLite数据库的使用——利用命令行或Navicat Premium创建数据库
  12. 中通快递 | 快递单号查询API
  13. 图灵奖设立50周年,向伟大的计算机科学家们致敬
  14. Python四舍五入问题详解
  15. Java中线程同步锁和互斥锁有啥区别?看完你还是一脸懵逼?
  16. c++ memcpy内存拷贝
  17. lm80认证_什么是LM-80测试什么产品需要做LM-80测试
  18. 新手指南:互联网创业要准备什么?
  19. MyCat分片规则(全局表,ER分片表,多对多关联,主键分片VS非主键分片),MyCat常用的分片规则(15中分片规则),自定义MyCat分片规则,其它术语
  20. Gmesh学习·tutorial游览(一)

热门文章

  1. Unite洛杉矶峰会精彩回顾:从图形、平台再到VR
  2. Diskpart 实现分区自动化
  3. jenkins更换清华(国内)插件源不生效的问题
  4. 浮山中学2021年高考成绩查询入口,浮山中学2019年高考成绩通报,第二波震撼来袭...
  5. 基于java的条形码生成、读取和打印
  6. YOUKU播放器 研究
  7. OTA升级的三种方式
  8. el-form的model、prop属性和表单校验等详解
  9. 写给Gallen1983
  10. 一个DDD指导下的实体类设计案例