Bayesian Learning via Stochastic Gradient Langevin Dynamics

在本文中,我们提出了一个新的框架,用于从大规模数据集中学习,基于从small mini-batches中迭代学习。通过在标准的随机梯度优化算法中加入适量的噪声,我们表明,当我们anneal the stepsize,迭代将收敛到真实后验分布的样本。这种优化和贝叶斯后验抽样之间的无缝过渡提供了一个内在的保护,防止过度拟合。我们还提出了一种实用的后验统计蒙特卡罗估计方法,它可以监控 “抽样阈值”,并在超过该阈值后收集样本。我们将该方法应用于三种模型:高斯混合模型、逻辑回归模型和自然梯度的ICA模型。

1. Introduction

本文提出了一种基于大规模数据集的贝叶斯学习方法。我们的方法将随机优化似然的Robbins-Monro型算法与Langevin动态相结合,Langevin动态在参数更新中注入噪声,使得参数的轨迹收敛到完全后验分布,而不仅仅是最大后验分布。由此产生的算法开始类似于随机优化,然后自动过渡到使用Langevin动力学模拟后验样本的算法。

在第二节中,我们介绍了我们方法的两个组成部分:随机优化和Langevin动力学。第3节描述了我们的算法以及它是如何收敛到后验分布的。第4节介绍了一种估计我们的算法何时从随机优化过渡到Langevin动力学的实用方法。第5节在一些模型上演示了我们的算法,第6节进行了总结。

2. Preliminaries

让θ\thetaθ代表参数向量,p(θ)p(\theta)p(θ)是先验分布,p(x∣θ)p(x|\theta)p(x∣θ)是给出了用θ参数化的模型,数据项x的概率。

在优化文献中,先验正则化了参数,而似然项构成了待优化的代价函数,其任务是寻找最大后验(MAP)参数θ*。

一种流行的称为随机优化的方法(Robbins&Monro,1951)的操作如下。在每次迭代t中,给定数据项的子集Xt={xt1,...,xtn}X_t=\{x_{t1},...,x_{tn}\}Xt​={xt1​,...,xtn​},参数更新如下:

式中,ϵtϵ_tϵt​是步长序列。其基本思想是,在子集上计算的梯度被用来逼近整个数据集的真实梯度。在多次迭代中,整个数据集被使用,而使用子集而不是整个数据集所引起的梯度噪声被平均化。对于大型数据集,如果子集梯度近似足够准确,这比使用整个数据集在每次迭代时计算梯度可以大大节省计算量。

为了确保收敛到局部最大值,除了其他技术假设外,一个主要的要求是步长大小要满足以下特性。

直观地讲,第一个约束条件保证了无论初始化到多远,参数都会到达高概率区域,而第二个约束条件则保证了参数会收敛到模式上,而不是仅仅在模式上跳动(will converge to the mode instead of just bouncing around it.)。通常,步长大小ϵt=a(b+t)−γϵt=a(b+t)^{-γ}ϵt=a(b+t)−γ呈多项式衰减,γ∈(0.5,1]γ∈(0.5,1]γ∈(0.5,1]。

与随机优化一样,ML或MAP估计的问题在于,它们不能捕捉参数的不确定性,并且可能会过度拟合数据。贝叶斯方法捕捉参数不确定性的典型方法是通过马尔可夫链蒙特卡罗(MCMC)技术(Robert&Casella,2004)。在本文中,我们将考虑一类称为Langevin dynamics(Neal,2010)的MCMC技术。如前所述,它们采取梯度步骤,但也会向参数更新中注入高斯噪声,这样它们就不会只坍塌到MAP解(so that they do not collapse to just the MAP solution:):

对梯度步长和注入噪声的方差进行了均衡,使得样本的方差与后验方差相匹配。朗之万动力学最初是作为一个离散化的随机微分方程,其平衡分布是后验分布。为了修正离散化误差,我们可以将(3)仅仅作为一个提案分布,并使用Metropolis-Hastings进行修正。有趣的是,随着ϵ的降低,离散化误差也会降低,因此rejection rate接近零。然而,典型的MCMC实践是允许一个初始的适应阶段,在该阶段步长被调整,然后固定步长以确保此后的平稳马尔可夫链。

更复杂的技术使用哈密顿动力学和动量变量,以允许参数在更大的距离上移动,而不存在Langevin动力学的低效随机游走行为(Neal,2010)。然而,据我们所知,迄今为止提出的所有MCMC方法都需要在每次迭代时对整个数据集进行计算,这导致了对大型数据集的非常高的计算成本。

3. Stochastic Gradient Langevin Dynamics

考虑到随机梯度算法(1)和Langevin动力学(3)之间的相似性,自然会考虑将这两种方法的思想结合起来。这样可以有效地使用大型数据集,同时允许以贝叶斯的方式捕捉参数的不确定性。该方法是直接的:使用Robbins-Monro随机梯度,添加一定量的高斯噪声,与使用的步长大小平衡,并允许步长大小为零。提出的更新方法很简单:

其中,步长大小在满足(2)的情况下向零递减。这允许平均化梯度中的随机性,以及渐变为零的MH rejection rates,因此我们可以简单地忽略MH acceptance步骤,这需要对整个数据集的概率进行评估。

在本节的其余部分,我们将给出一个直观的论证,说明为什么θt会以t → ∞的方式接近后验分布的样本。特别是,我们将证明,对于大的t,更新(4)将接近Langevin动力学(3),后者收敛到后验分布。让

为θ处对数概率的真实梯度,并且

则随机梯度为g(θ)+ht(θ)g(θ)+h_t(θ)g(θ)+ht​(θ),ht(θ)h_t(θ)ht​(θ)为零均值随机变量(由于步骤t所选数据项的随机性),其方差为有限方差(finite variance) V(θ),(4)为。

(7)中的随机性有两个来源:注入的高斯噪声,方差为,随机梯度中的噪声,其方差为(ϵt22)V(θt)(\frac{ϵ_t}{2}^2)V(\theta_t)(2ϵt​​2)V(θt​)。首先观察到,对于大的t,ϵtϵ_tϵt​ → 0,注入的噪声将主导随机梯度噪声,所以(7)将有效地成为Langevin动力学(3) (so that (7) will be effectively Langevin dynamics
(3) )。第二个观察点是,当ϵtϵ_tϵt​ → 0时,Langevin动力学的离散误差将可以忽略不计,所以MH rejection probability将接近0,我们可以直接忽略这一步。

学的离散误差将可以忽略不计,所以MH rejection probability将接近0,我们可以直接忽略这一步。

换言之,(4)、(7)有效地定义了一个非平稳马尔可夫链,使得对于所有的大t,第t步转移算子(transition operator)的平衡分布为θ上的后验分布。接下来我们要解决的问题是,参数序列θ1,θ2,…是否会收敛到后验分布。因因为马尔可夫链是非平稳的,步长减小到0,所以并不能立即看出这是事实。为了证明这一点,我们将证明一个子序列θt1 , θt2 , … …将按预期收敛到后验,所以整个序列也将收敛。

Bayesian Learning via Stochastic Gradient Langevin Dynamics相关推荐

  1. Stochastic Gradient Hamiltonian Monte Carlo论文笔记

    Abstract 哈密​​尔顿蒙特卡罗(HMC)抽样方法提供了一种机制,用于在Metropolis-Hastings框架中定义具有高接受概率的远程建议,从而比标准随机游走建议更有效地探索状态空间.近年 ...

  2. 手工实现:SVM with Stochastic Gradient Descent

    手工实现:SVM with Stochastic Gradient Descent 引入 实际问题 理论知识 SVM 直观认识 什么是分的好? 1.是不是只要都分对了就是分的好? 2.是不是只要训练集 ...

  3. Kaggle(L3) - Stochastic Gradient Descent Notebook

    Use Keras and Tensorflow to train your first neural network. Introduction In the first two lessons, ...

  4. 【Byrd-SAGA】Federated Variance-Reduced Stochastic Gradient Descent with Robustness

    Federated Variance-Reduced Stochastic Gradient Descent with Robustness to Byzantine Attacks 对拜占庭攻击具有 ...

  5. 三种梯度下降法对比(Batch gradient descent、Mini-batch gradient descent 和 stochastic gradient descent)

    梯度下降(GD)是最小化风险函数.损失函数的一种常用方法,随机梯度下降(stochastic gradient descent).批量梯度下降(Batch gradient descent)和mini ...

  6. 几种梯度下降方法简介(Batch gradient descent、Mini-batch gradient descent 和 stochastic gradient descent)

    我们在训练神经网络模型时,最常用的就是梯度下降,这篇博客主要介绍下几种梯度下降的变种(mini-batch gradient descent和stochastic gradient descent), ...

  7. 几种梯度下降方法对比(Batch gradient descent、Mini-batch gradient descent 和 stochastic gradient descent)

    几种梯度下降方法对比(Batch gradient descent.Mini-batch gradient descent 和 stochastic gradient descent) 我们在训练神经 ...

  8. R语言使用caret包构建gbdt模型(随机梯度提升树、Stochastic Gradient Boosting )构建回归模型、通过method参数指定算法名称

    R语言使用caret包构建gbdt模型(随机梯度提升树.Stochastic Gradient Boosting )构建回归模型.通过method参数指定算法名称 目录

  9. UA MATH567 高维统计专题3 含L1-norm的凸优化6 Stochastic Gradient Descent简介

    UA MATH567 高维统计专题3 含L1-norm的凸优化6 Stochastic Gradient Descent简介 Stochastic Gradient Descent的思想 Varian ...

最新文章

  1. 发现优质免费的区块链在线教程资源,包含PPT和视频资源,全部免费
  2. 79-定义不同颜色字体
  3. http 400错误
  4. java表单提交包含文件_如何同时提交表单中的文件和文本
  5. Tomcat如何将项目发布到webapps目录下
  6. [转](总结)Linux/UNIX的scp命令用法详解
  7. Exchange企业实战技巧(27)邮件中使用数字签名和邮件加密功能
  8. A.457 - Linear Cellular Automata
  9. arcgis支持python3吗_常见问题解答:ArcGIS 中使用的 Python 是什么版本?
  10. python mockito arg_that_编程高阶用法–开发者高频词汇
  11. HTML相对路径相对目录--上级目录及下级目录的写法
  12. Java或Web中解决所有路径问题
  13. Python爬取图片时,urllib提示没有属性urlretrieve的问题
  14. 【三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 155期】
  15. JavaScript高级程序设计4.pdf
  16. linux下缺库的常见处理方法
  17. Java深克隆和浅克隆的原理及实现
  18. leetcode38 count and say
  19. Map函数 中的compute简单使用-----记录
  20. 机器人学习——姿态表达,ros通讯机制

热门文章

  1. VCT空间数据交换格式数据的检测方法研究
  2. html5 上标,HTML5 Canvas +下标和上标
  3. TileMap大型地图网格属性设置
  4. 使用Nordic芯片的手环OTA(android)
  5. Android 实现自动点击屏幕的方法
  6. win10连接dns服务器未响应,win10提示dns服务器未响应怎么解决_win10网络诊断为dns未响应修复方法...
  7. S3C2440 由ADS移植到 RealView MDK kile4
  8. 逻辑回归分析实训----乳腺癌肿瘤预测
  9. 科学计算法(机器学习)----决策树定义以相关概念
  10. 坤宝德万达打造命运共同体万达茂天樾之夜.时光发声全国巡回演唱会南宁站圆满结束