机器学习 | 贝叶斯神经网络

本文探讨了贝叶斯神经网络如何通过引入参数的概率分布来表示模型不确定性,特别是通过拉普拉斯近似和线性化方法来估计不确定性。文章还强调了超参数优化在BNN性能中的关键作用,以及如何通过模型校准调整不确定性估计。
摘要由CSDN通过智能技术生成

机器学习 | 贝叶斯神经网络

贝叶斯神经网络通过引入参数的概率分布来描述模型的不确定性。与传统的确定性神经网络不同,BNNs 通过学习参数的后验分布来对模型进行建模,从而在预测中提供不确定性的估计

( x , θ ) ↦ g θ ( x ) (x,\theta)\mapsto g_{\boldsymbol{\theta}}(\boldsymbol{x}) (x,θ)gθ(x)定义的 g : X × Θ → Y g: \mathcal{X} \times \Theta \rightarrow \mathcal{Y} g:X×ΘY 作为神经网络(NN),其中 g θ ( x ) g_{\theta}(x) gθ(x) 是由 x x x θ \theta θ 确定的函数。贝叶斯神经网络(BNNs)的主要假设是通过一个简单的分布来近似参数 g g g 的后验分布 p ( θ ∣ D ) p(\theta | D) p(θD) ,该分布在参数空间 Θ ⊆ R P \Theta \subseteq \mathbb{R}^P ΘRP 上编码了不确定性。

标准的点估计定义为:
θ ∗ = arg ⁡ max ⁡ ⁡ θ ∈ Θ log ⁡ p ( D ∣ θ ) + log ⁡ p ( θ ) ⏟ = log ⁡ p ( θ ∣ D ) − c o n s t \theta_*=\underset{\boldsymbol{\theta}\in\Theta}{\operatorname*{\arg\max}}\underbrace{\log p(\mathcal{D}\mid\boldsymbol{\theta})+\log p(\boldsymbol{\theta})}_{=\log p(\boldsymbol{\theta}\mid\mathcal{D})\mathrm{-const}} θ=θΘargmax=logp(θD)const logp(Dθ)+logp(θ)

其中 log ⁡ p ( D ∣ θ ) \log p(D | \theta) logp(Dθ) 是对数似然损失, log ⁡ p ( θ ) \log p(\theta) logp(θ)是对参数 θ \theta θ 的正则化项,虽然在参数空间上可以被视为对 Θ \Theta Θ的狄拉克雷分布,但并不是一个 BNN,因为根据任何标准度量(方差、熵等),它都具有零不确定性。

拉普拉斯近似(LA)

其中最简单的贝叶斯神经网络之一是拉普拉斯近似(LA),并且越来越多地被用于贝叶斯优化(BO)。给定一个(局部)最大值 θ ∗ \theta^* θ,拉普拉斯近似拟合了一个以 θ ∗ \theta^* θ 为中心的高斯分布 q ( θ ∣ D ) : = N ( θ ∗ , Σ ∗ ) q(\theta | D) := \mathcal{N}(\theta^*, \Sigma^*) q(θD):=N(θ,Σ),其中协方差由逆海森矩阵给出,即

Σ ∗ = ( − ∇ θ 2 log ⁡ p ( θ ∣ D ) ∣ θ ∗ ) − 1 \Sigma^* = (-\nabla^2_{\theta} \log p(\theta | D)|_{\theta^*})^{-1} Σ=(θ2logp(θD)θ)1

线性化拉普拉斯近似(LLA)

拉普拉斯近似的一个流行类别是线性化拉普拉斯近似(LLA),它通过广义高斯-牛顿矩阵近似海森矩阵,并对神经网络在参数空间上进行线性化 g θ lin ( x ) = g θ ∗ ( x ) + J ∗ ( x ) ⋅ ( θ − θ ∗ ) g^{\text{lin}}_{\theta}(x) = g_{\theta^*}(x) + J^*(x) \cdot (\theta - \theta^*) gθlin(x)=gθ(x)+J(x)(θθ)。这里, J ∗ ( x ) J^*(x) J(x)是网络在 θ ∗ \theta^* θ 处的雅可比矩阵 ( ∂ g / ∂ θ ∣ θ ∗ ) \left({\partial g}/{\partial \theta}|_{\theta^*}\right) (g/θθ) 。需要注意的是,网络函数 x → g θ lin ( x ) x \rightarrow g^{\text{lin}}_{\theta}(x) xgθlin(x) 仍然是非线性的。

关键是,由于 g g g θ \theta θ上的线性性以及 θ \theta θ的高斯性,输出分布 p ( g lin ( x ) ∣ D ) = ∫ g θ lin ( x ) q ( θ ∣ D ) d θ p(\text{g}^{\text{lin}}(x) | D) = \int \text{g}^{\text{lin}}_{\theta}(x) q(\theta | D) d\theta p(glin(x)D)=gθlin(x)q(θD)dθ 也是高斯的,给出为

p ( g lin ( x ) ∣ D ) = N ( g θ ∗ ( x ) , J ∗ ( x ) Σ J ∗ ( x ) ⊤ ) p(\text{g}^{\text{lin}}(x) | D) = \mathcal{N}(\text{g}_{\theta^*}(x), J^*(x)\Sigma J^*(x)^{\top}) p(glin(x)D)=N(gθ(x),J(x)ΣJ(x))

超参数优化与模型校准

BNNs 的性能和稳定性在很大程度上取决于超参数的选择,例如权重衰减强度和数据噪声强度。因此,优化超参数成为了重要的研究方向。

事实上, p ( g lin ∣ D ) p(\text{g}^{\text{lin}} | D) p(glinD)是一个具有神经网络 g g g作为均值函数和与经验神经切向核相关的协方差函数的高斯过程(GP)。

这些事实使得线性化拉普拉斯近似(LLA)具有解释性:它简单地为原始神经网络预测 g θ ∗ ( x ) g_{\theta^*}(x) gθ(x)添加了一个不确定性估计。这种不确定性可以通过拉普拉斯近似的边缘似然近似进行进一步校准:

Z ( γ ) = log ⁡ p ( θ ∗ ∣ D ; γ ) + P 2 log ⁡ 2 π + 1 2 log ⁡ ∣ Σ ∗ ( γ ) ∣ Z(\gamma) = \log p(\theta^*|D; \gamma) + \frac{P}{2} \log 2\pi + \frac{1}{2} \log |\Sigma^*(\gamma)| Z(γ)=logp(θD;γ)+2Plog2π+21logΣ(γ)

其中明确地表明了后验和海森矩阵对超参数 γ \gamma γ的依赖性。例如, γ \gamma γ可以是一个集合,其中包含了权重衰减强度(对应于 Θ \Theta Θ上的高斯先验的先验精度)以及 g g g的似然中的噪声强度。在这种设置下,优化 max ⁡ γ log ⁡ Z ( γ ) \max_{\gamma} \log Z(\gamma) maxγlogZ(γ) 可以被看作是学习一个合适的先验并估计数据噪声。

  • 28
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pyro贝叶斯神经网络是一种结合了贝叶斯推断和神经网络的统计模型。该模型利用Pyro库实现,可以用于进行概率编程和深度学习任务。 Pyro贝叶斯神经网络的核心思想是在神经网络模型中引入概率的概念,并利用贝叶斯推断的方法对模型的参数进行不确定性建模。与传统的神经网络相比,Pyro贝叶斯神经网络更能够灵活地处理未标记数据,能够为模型提供更加准确和可靠的预测结果。 在Pyro贝叶斯神经网络中,模型的参数不再是确定的值,而是服从概率分布的随机变量。这样带来的好处是可以在训练模型时对参数的不确定性进行建模,提高模型的鲁棒性。同时,模型的参数也可以根据新的数据进行不断更新和调整,从而实现动态的学习过程。 Pyro贝叶斯神经网络的建模过程主要包括定义模型结构、定义先验分布和定义观测数据的条件概率分布。在建模过程中,可以使用Pyro提供的各种分布函数和算子来构建模型的组件。通过贝叶斯推断的方法,可以从观测数据中推断出后验分布,从而得到模型参数的不确定性估计。 总之,Pyro贝叶斯神经网络是一种结合了贝叶斯推断和神经网络的强大统计模型。它能够灵活地处理不确定性,并为模型提供更准确和可靠的预测结果。它的出现进一步丰富了概率编程和深度学习领域的工具箱,为解决实际问题提供了一个强大的工具。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值