Bayesian Learning via Stochastic Gradient Langevin Dynamics

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中,给定数据项的子集 X t = { x t 1 , . . . , x t n } 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.51]

与随机优化一样,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 ( θ ) + h t ( θ ) g(θ)+h_t(θ) g(θ)+ht(θ) h t ( θ ) h_t(θ) ht(θ)为零均值随机变量(由于步骤t所选数据项的随机性),其方差为有限方差(finite variance) V(θ),(4)为。

在这里插入图片描述

(7)中的随机性有两个来源:注入的高斯噪声,方差为,随机梯度中的噪声,其方差为 ( ϵ t 2 2 ) V ( θ t ) (\frac{ϵ_t}{2}^2)V(\theta_t) (2ϵt2)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 , … …将按预期收敛到后验,所以整个序列也将收敛。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 稀疏贝叶斯学习(Sparse Bayesian Learning)是一种机器学习方法,用于估计线性模型中的参数。该方法通过在参数的先验概率分布中引入稀疏性的假设,从而得到稀疏解。稀疏解可以帮助我们更好地理解数据,并提高模型的泛化能力。 稀疏贝叶斯学习的代码实现可以按照以下步骤进行: 1. 加载所需的库和数据集:加载用于稀疏贝叶斯学习的库,如NumPy和SciPy。加载数据集,并将其分为训练集和测试集。 2. 定义稀疏模型:使用贝叶斯公式和朴素贝叶斯假设,定义稀疏模型的先验和似然函数。先验函数通常使用Laplace先验或高斯先验,并通过调整超参数来控制稀疏性。 3. 定义优化问题:将稀疏模型转化为一个优化问题,以最小化损失函数。常见的损失函数包括最大似然估计、最小二乘法等。 4. 确定超参数:通过交叉验证或贝叶斯优化等方法,确定超参数的最佳取值。超参数包括先验函数的超参数和优化问题的参数,如正则化参数、学习率等。 5. 优化模型:使用优化算法(如梯度下降、共轭梯度等)迭代地调整参数,以最小化损失函数。在每次迭代中,通过更新规则更新参数,并使用先验函数对参数进行修剪,以保持稀疏性。 6. 评估模型:使用训练好的模型对测试集进行预测,并计算预测结果的准确率或其他性能指标。如果模型性能不满足要求,可以回到步骤4,重新选择超参数。 稀疏贝叶斯学习的代码实现不仅限于上述步骤,还取决于具体的实现框架和程序设计。有多种工具和软件包可以用于实现稀疏贝叶斯学习,如Scikit-learn、TensorFlow等。根据所选框架的不同,代码实现可能有所差异,但总的思路和方法是相似的。 ### 回答2: 稀疏贝叶斯学习(Sparse Bayesian Learning)是一种用于构建稀疏模型的机器学习方法。其主要思想是通过贝叶斯统计推断来自适应地确定模型的参数。 Sparse Bayesian Learning的代码实现通常包含以下几个步骤: 1. 数据处理:首先,需要将所需要的数据进行预处理。根据实际问题的要求,通常会进行数据清洗、归一化或者特征选择等操作。 2. 参数初始化:然后,需要对模型的参数进行初始化。一般而言,可以采用随机初始化的方式来赋初值。 3. 贝叶斯推断:接下来,通过贝叶斯推断的方法,根据观测数据来更新模型的参数。具体而言,可以采用变分贝叶斯(Variational Bayes)或马尔可夫链蒙特卡洛(Markov chain Monte Carlo)等方法来进行推断。 4. 条件概率计算:随后,根据推断得到的后验分布,可以计算得到参数的条件概率分布,进而用于模型的测试或预测。 5. 模型选择:最后,需要通过模型选择的方法,如最大后验估计(MAP)或正则化方法等,对模型的结构进行优化和筛选,以达到稀疏模型的目的。 需要注意的是,Sparse Bayesian Learning的代码实现会涉及到概率计算、数值优化、矩阵运算等复杂的数学和算法操作。因此在实际编写代码时,需要使用适当的编程工具和数学库,并仔细考虑算法的复杂度和效率。此外,代码中还需要进行适当的验证,以保证模型的准确性和可靠性。 ### 回答3: sparse bayesian learning(稀疏贝叶斯学习)是一种机器学习算法,旨在通过最小化预测误差和对模型假设的复杂度进行特征选择和模型参数估计。 sparse bayesian learning 代码实现主要包括以下步骤: 1. 数据预处理:将输入数据集进行标准化处理,以确保不同特征具有相同的尺度。 2. 初始化模型参数:初始化模型参数,如稀疏先验超参数和噪声方差。 3. 迭代训练:采用变分贝叶斯方法进行模型参数和特征选择的迭代更新。 4. E步(Expectation Step):使用当前模型参数估计每个数据点的后验概率。 5. M步(Maximization Step):根据数据点的后验概率更新模型参数。 6. 收敛判断:计算当前模型参数的对数似然函数,若变化小于设定阈值,则认为算法已经收敛,停止迭代。 7. 特征选择:基于模型参数的后验概率,选择具有高概率的特征作为最终的特征子集。 8. 预测:使用更新后的模型参数进行新数据点的预测,通过计算后验概率或对数似然函数来判断分类或回归问题的性能。 总之,sparse bayesian learning代码实现的关键在于迭代更新模型参数和特征选择过程,通过极大似然估计和模型复杂度的惩罚项来实现稀疏性。此算法在处理高维数据时具有优势,能够自动选择相关特征,提高模型的泛化性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值