变分贝叶斯学习(variational bayesian learning)及重参数技巧(reparameterization trick)
摘要:常规的神经网络权重是一个确定的值,贝叶斯神经网络(BNN)中,将权重视为一个概率分布。BNN的优化常常依赖于重参数技巧(reparameterization trick),本文对该优化方法进行概要介绍。
论文地址:http://proceedings.mlr.press/v37/blundell15.pdf
网络权重的点估计
常规神经网络可以基于MLE或MAP对权重作点估计。
基于MLE(maximum likelihood estimation):
基于MAP(maximum a posteriori):
对权重施加先验,等价于进行正则化。如果施加的是高斯先验,相当于进行L2正则,如果是一个laplace先验,相当于L1正则。
贝叶斯方法
贝叶斯推断在给定训练数据的情况下,计算网络参数的后验概率,理论上可以通过以下方式对样本标签所服从的分布进行预测:
Hinton等人提出对网络权重的贝叶斯后验分布进行变分估计,变分学习寻找参数θ,来最小化分布q(w|θ)和权重真实后验分布之间的KL距离,这里的参数θ可理解为w所服从分布的参数,比如高斯的μ和σ:
这个loss函数就是变分自由能(variational free energy),也称为期望下界(expected lower bound, ELBO)。
可以将loss函数简记为:
损失函数的后半部分代表与数据相关,称之为似然损失,前半部分与先验有关,称为先验损失。该损失也被称为最小描述长度(minimum description length, MDL)
无偏蒙特卡洛梯度
我们使用梯度下降的方式对上述损失进行优化。
在特定的条件下,期望的微分等于微分的期望。
命题1:假设ε服从分布q(ε),令w = t(θ, ε),其中t(θ, ε)是一个确定性函数,假如w的边缘密度q(w|θ)满足q(ε) dε = q(w|θ) dw,那么:
证明:
确定性函数 t(θ, ε)将一个随机噪声和变分后验参数转换为一个变分后验。
令,我们可以将命题1用于优化。通过蒙特卡洛采样,可以通过反向传播算法对网络进行优化。
命题1就是所谓的重参数技巧(reparameterization trick)。
变分高斯后验
基于高斯后验的变分学习训练过程如下:
这里就是常规反向传播算法得到的梯度。
基于tensorflow probability的贝叶斯全连接网络示例
import tensorflow as tf
import tensorflow_probability as tfp model = tf.keras.Sequential([
tfp.layers.DenseReparameterization(512, activation=tf.nn.relu),
tfp.layers.DenseReparameterization(10),
]) logits = model(features)
neg_log_likelihood = tf.nn.softmax_cross_entropy_with_logits(
labels=labels, logits=logits)
kl = sum(model.losses)
# loss由两部分构成:(1)负对数似然(2)参数分布与其先验分布(regularizer)之间的KL距离
loss = neg_log_likelihood + kl
train_op = tf.train.AdamOptimizer().minimize(loss)
变分贝叶斯学习(variational bayesian learning)及重参数技巧(reparameterization trick)的更多相关文章
- PGM学习之六 从有向无环图(DAG)到贝叶斯网络(Bayesian Networks)
本文的目的是记录一些在学习贝叶斯网络(Bayesian Networks)过程中遇到的基本问题.主要包括有向无环图(DAG),I-Maps,分解(Factorization),有向分割(d-Separ ...
- 变分贝叶斯VBEM 由浅入深
变分贝叶斯EM指的是变分贝叶斯期望最大化(VBEM, variational Bayes expectation maximization),这种算法基于变分推理,通过迭代寻找最小化KL(Kullba ...
- 贝叶斯线性回归(Bayesian Linear Regression)
贝叶斯线性回归(Bayesian Linear Regression) 2016年06月21日 09:50:40 Duanxx 阅读数 54254更多 分类专栏: 监督学习 版权声明:本文为博主原 ...
- lecture10-模型的结合与全贝叶斯学习
这是Hinton的第10课 这节课有两篇论文可以作为背景或者课外读物<Adaptive mixtures of local experts>和<Improving neural ne ...
- 【原】对频率论(Frequentist)方法和贝叶斯方法(Bayesian Methods)的一个总结
注: 本文是对<IPython Interactive Computing and Visualization Cookbook>一书中第七章[Introduction to statis ...
- 概率图模型(PGM):贝叶斯网(Bayesian network)初探
1. 从贝叶斯方法(思想)说起 - 我对世界的看法随世界变化而随时变化 用一句话概括贝叶斯方法创始人Thomas Bayes的观点就是:任何时候,我对世界总有一个主观的先验判断,但是这个判断会随着世界 ...
- 概率图模型(PGM) —— 贝叶斯网络(Bayesian Network)
概率图模型是图论与概率方法的结合产物.Probabilistic graphical models are a joint probability distribution defined over ...
- 机器学习---用python实现朴素贝叶斯算法(Machine Learning Naive Bayes Algorithm Application)
在<机器学习---朴素贝叶斯分类器(Machine Learning Naive Bayes Classifier)>一文中,我们介绍了朴素贝叶斯分类器的原理.现在,让我们来实践一下. 在 ...
- 贝叶斯方法(Bayesian approach) —— 一种概率解释(probabilistic interpretation)
1. Bayesian approach 对于多项式拟合问题,我们可通过最小二乘(least squares)的方式计算得到模型的参数,最小二乘法又可视为最大似然(maximum likelihood ...
随机推荐
- 解决springMVC https环境 jstlview redirect时变为http请求的问题
<property name="redirectHttp10Compatible" value="false" />
- 设计模式之建造者模式(BuilderPattern)
一.意义 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 说明:复杂对象的构建,比如一个对象有几十个成员属性,那么我们在创建这个对象,并给成员属性赋值时,就会很麻烦.采用 ...
- 2019HDU多校第六场 6641 TDL
一.题目 TDL 二.分析 题意就是找一个$n$满足题目中的公式,找不到就输出$-1$. 对于$${( f (n,m) - n )} \oplus {n} =k$$ 可以转换一下变成$( f (n,m ...
- 后台开发-核心技术与应用实践--TCP协议
网络模型 为使不同计算机厂家的计算机能够互相通信,国际标准化组织 ISO 1981 年正式推荐了一个网络系统结构一一七层参考模型,也叫作开放系统互连模型. ISO 七层网络模型及其功能展示: 这个七层 ...
- java例题_25 判断是否为回文数!
1 /*25 [程序 25 求回文数] 2 题目:一个 5 位数,判断它是不是回文数.即 12321 是回文数,个位与万位相同,十位与千位相同. 3 */ 4 5 /*分析 6 * 先用%和/将5个数 ...
- 全网最详细的Linux命令系列-less命令
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more 更加的有弹性.在 more 的时候,我们并没有办法向前面翻 ...
- day-05-字典
字典的初识 why: 列表可以存储大量的数据,但数据之间的关联性不强 列表的查询速度比较慢.数量越大查询越慢 what:容器型数据类型:dict how: 数据类型的分类(可变与不可变) 可变(不可哈 ...
- JVMGC+Spring Boot生产部署和调参优化
一.微服务开发完成,IDEA进行maven clean和package 出现BUILD SUCCESS说明打包成功 二.要求微服务启动时,配置JVM GC调优参数 p.p1 { margin: 0; ...
- 【转载】C# get 与set的一些说明
转载 在面向对象编程(OOP)中,是不允许外界直接对类的成员变量直接访问的,既然不能访问,那定义这些成员变量还有什么意义呢?所以C#中就要用set和get方法来访问私有成员变量,它们相当于外界访问对象 ...
- 个人阅读作业#2——软工模式&CI/CD
项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任健) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 从实践中学习软件工程相关知识(结构化分析和设计方法.敏捷开发方法.软 ...