当前位置: 首页 > news >正文

【深度学习基础】贝叶斯理论

【深度学习基础】贝叶斯理论


目录

  1. 概率论与信息论基础
  2. 贝叶斯定理与模型比较
  3. 共轭先验与解析后验
  4. 变分推断(VI)
  5. 蒙特卡洛方法(MCMC & IS)
  6. 贝叶斯神经网络(BNN)
  7. 深度生成模型中的贝叶斯组件
  8. 高斯过程(GP)
  9. 贝叶斯优化(BO)
  10. PAC-Bayes 理论
  11. 贝叶斯深度学习中的近似推断技巧
  12. 可扩展贝叶斯:随机、分布式与在线算法

1. 概率论与信息论基础

没有扎实的基础,后面的推导寸步难行。

1.1 概率三元组

(Ω,F,P),其中 P(Ω)=1 (\Omega, \mathcal{F}, P),\quad \text{其中 } P(\Omega)=1 (Ω,F,P),其中 P(Ω)=1

1.2 条件独立

X⊥ ⁣ ⁣ ⁣⊥Y∣Z  ⟺  p(x,y∣z)=p(x∣z)p(y∣z) X \perp\!\!\!\perp Y \mid Z \iff p(x,y|z)=p(x|z)p(y|z) XYZp(x,yz)=p(xz)p(yz)

1.3 信息熵与交叉熵

H[p]=−Ex∼p[log⁡p(x)],H(p,q)=−Ex∼p[log⁡q(x)] H[p] = -\mathbb{E}_{x\sim p}[\log p(x)],\quad H(p,q)=-\mathbb{E}_{x\sim p}[\log q(x)] H[p]=Exp[logp(x)],H(p,q)=Exp[logq(x)]

1.4 KL 散度

DKL(p∥q)=∫p(x)log⁡p(x)q(x)dx≥0 D_{\text{KL}}(p\|q)=\int p(x)\log\frac{p(x)}{q(x)}\mathrm{d}x \geq 0 DKL(pq)=p(x)logq(x)p(x)dx0

📌 小技巧:把 KL 视为「用 q 编码 p 所需的额外比特数」,理解 VI 时非常直观。


2. 贝叶斯定理与模型比较

2.1 贝叶斯定理

p(θ∣D)=p(D∣θ)p(θ)p(D),p(D)=∫p(D∣θ)p(θ)dθ p(\theta|D)=\frac{p(D|\theta)p(\theta)}{p(D)}, \quad p(D)=\int p(D|\theta)p(\theta)\mathrm{d}\theta p(θD)=p(D)p(Dθ)p(θ),p(D)=p(Dθ)p(θ)dθ

2.2 边际似然(证据)

p(D∣Mi)=∫p(D∣θ,Mi)p(θ∣Mi)dθ p(D|\mathcal{M}_i)=\int p(D|\theta,\mathcal{M}_i)p(\theta|\mathcal{M}_i)\mathrm{d}\theta p(DMi)=p(Dθ,Mi)p(θMi)dθ

2.3 Bayes Factor

BF12=p(D∣M1)p(D∣M2) \mathrm{BF}_{12}=\frac{p(D|\mathcal{M}_1)}{p(D|\mathcal{M}_2)} BF12=p(DM2)p(DM1)

论文:Kass & Raftery (1995) Bayes Factors.


3. 共轭先验与解析后验

3.1 定义

若后验与先验属于同一分布族,则称先验共轭。
例:

  • 高斯似然 + 高斯先验 → 高斯后验
  • Bernoulli 似然 + Beta 先验 → Beta 后验

3.2 指数族与共轭

指数族:
p(x∣θ)=h(x)exp⁡ ⁣(θ⊤T(x)−A(θ)) p(x|\theta)=h(x)\exp\!\bigl(\theta^\top T(x)-A(\theta)\bigr) p(xθ)=h(x)exp(θT(x)A(θ))
共轭先验:
p(θ∣χ,ν)∝exp⁡ ⁣(θ⊤χ−νA(θ)) p(\theta|\chi,\nu)\propto \exp\!\bigl(\theta^\top \chi - \nu A(\theta)\bigr) p(θχ,ν)exp(θχνA(θ))

代码:PyMC 中 pm.Beta('pi', alpha=2, beta=2) 直接给出共轭更新。


4. 变分推断(VI)

4.1 基本思想

将后验近似为简单分布 ( q_\phi(\theta) ),最小化 KL:
min⁡ϕDKL(qϕ(θ)∥p(θ∣D)) \min_\phi D_{\text{KL}}(q_\phi(\theta)\|p(\theta|D)) ϕminDKL(qϕ(θ)p(θD))

4.2 ELBO

L(ϕ)=Eqϕ[log⁡p(D,θ)]+H[qϕ] \mathcal{L}(\phi)=\mathbb{E}_{q_\phi}[\log p(D,\theta)] + H[q_\phi] L(ϕ)=Eqϕ[logp(D,θ)]+H[qϕ]

4.3 重参数化技巧

θ=gϕ(ϵ),ϵ∼N(0,I) \theta = g_\phi(\epsilon),\quad \epsilon \sim \mathcal{N}(0,I) θ=gϕ(ϵ),ϵN(0,I)
用于反向传播梯度。

4.4 黑盒 VI(BBVI)

∇ϕL(ϕ)=Eqϕ ⁣[∇ϕlog⁡qϕ(θ)(log⁡p(D,θ)−log⁡qϕ(θ))] \nabla_\phi \mathcal{L}(\phi)=\mathbb{E}_{q_\phi}\!\left[\nabla_\phi\log q_\phi(\theta)\bigl(\log p(D,\theta)-\log q_\phi(\theta)\bigr)\right] ϕL(ϕ)=Eqϕ[ϕlogqϕ(θ)(logp(D,θ)logqϕ(θ))]

必读:Kingma & Welling (2014) Auto-Encoding Variational Bayes.


5. 蒙特卡洛方法

5.1 重要性采样(IS)

Ep[f(θ)]≈1S∑s=1Swsf(θs),ws=p(θs)q(θs) \mathbb{E}_{p}[f(\theta)] \approx \frac{1}{S}\sum_{s=1}^S w_s f(\theta_s),\quad w_s=\frac{p(\theta_s)}{q(\theta_s)} Ep[f(θ)]S1s=1Swsf(θs),ws=q(θs)p(θs)

5.2 MCMC

5.2.1 Metropolis-Hastings

接受率:
α=min⁡ ⁣(1,p(θ′)q(θ∣θ′)p(θ)q(θ′∣θ)) \alpha = \min\!\left(1,\frac{p(\theta')q(\theta|\theta')}{p(\theta)q(\theta'|\theta)}\right) α=min(1,p(θ)q(θθ)p(θ)q(θθ))

5.2.2 Hamiltonian Monte Carlo (HMC)

引入动量变量 ( r ),哈密顿量:
H(θ,r)=−log⁡p(θ∣D)+12r⊤M−1r H(\theta,r)=-\log p(\theta|D)+\frac{1}{2}r^\top M^{-1}r H(θ,r)=logp(θD)+21rM1r

代码:numpyro.sample(..., nuts_kernel) 一行搞定 NUTS。


6. 贝叶斯神经网络(BNN)

6.1 基本设定

权重 ( w \sim p(w) ),似然 ( p(y|x,w)=\mathcal{N}(f_w(x),\sigma^2) )。
推断目标:
p(w∣D)∝p(D∣w)p(w) p(w|D)\propto p(D|w)p(w) p(wD)p(Dw)p(w)

6.2 常用推断方法

方法特点代码
Mean-Field VI每个权重独立高斯tfp.layers.DenseVariational
MC Dropout训练期 Dropout → 测试期采样torch.nn.Dropout(p=0.5)
SWAG用 SGD 轨迹估计高斯后验torchcontrib.optim.SWAG
SGLD随机梯度 Langevin 动力学pytorch-SGLD

6.3 预测分布

p(y∗∣x∗,D)=∫p(y∗∣x∗,w)p(w∣D)dw≈1T∑t=1Tp(y∗∣x∗,wt) p(y^*|x^*,D)=\int p(y^*|x^*,w)p(w|D)\mathrm{d}w \approx \frac{1}{T}\sum_{t=1}^T p(y^*|x^*,w_t) p(yx,D)=p(yx,w)p(wD)dwT1t=1Tp(yx,wt)


7. 深度生成模型中的贝叶斯组件

7.1 VAE

编码器 ( q_\phi(z|x) ),解码器 ( p_\theta(x|z) ),目标:
max⁡θ,ϕEx∼D ⁣[Eqϕ(z∣x)[log⁡pθ(x∣z)]−DKL(qϕ(z∣x)∥p(z))] \max_{\theta,\phi} \mathbb{E}_{x\sim D}\!\left[\mathbb{E}_{q_\phi(z|x)}[\log p_\theta(x|z)] - D_{\text{KL}}(q_\phi(z|x)\|p(z))\right] θ,ϕmaxExD[Eqϕ(zx)[logpθ(xz)]DKL(qϕ(zx)p(z))]

7.2 Diffusion Models

前向过程:
q(xt∣xt−1)=N(xt;1−βtxt−1,βtI) q(x_t|x_{t-1})=\mathcal{N}(x_t;\sqrt{1-\beta_t}x_{t-1},\beta_t I) q(xtxt1)=N(xt;1βtxt1,βtI)
反向过程学习:
pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t)) p_\theta(x_{t-1}|x_t)=\mathcal{N}(x_{t-1};\mu_\theta(x_t,t),\Sigma_\theta(x_t,t)) pθ(xt1xt)=N(xt1;μθ(xt,t),Σθ(xt,t))
等价于对数似然的变分下界。


8. 高斯过程(GP)

8.1 定义

函数先验:
f∼GP ⁣(m(x),k(x,x′)) f\sim \mathcal{GP}\!\bigl(m(x),k(x,x')\bigr) fGP(m(x),k(x,x))

8.2 回归后验

给定数据 ( (X,y) ),预测:
f∗∣x∗,X,y∼N ⁣(μ∗,Σ∗) f^*|x^*,X,y \sim \mathcal{N}\!\bigl(\mu_*,\Sigma_*\bigr) fx,X,yN(μ,Σ)
其中
μ∗=k∗X(KXX+σ2I)−1y,Σ∗=k∗∗−k∗X(KXX+σ2I)−1kX∗ \mu_* = k_{*X}(K_{XX}+\sigma^2 I)^{-1}y,\quad \Sigma_* = k_{**}-k_{*X}(K_{XX}+\sigma^2 I)^{-1}k_{X*} μ=kX(KXX+σ2I)1y,Σ=k∗∗kX(KXX+σ2I)1kX

与深度核结合:Deep Kernel Learning (Wilson et al., 2016)。


9. 贝叶斯优化(BO)

9.1 目标

x∗=arg⁡max⁡x∈Xf(x),f∼GP x^* = \arg\max_{x\in\mathcal{X}} f(x),\quad f \sim \mathcal{GP} x=argxXmaxf(x),fGP

9.2 采集函数

  • PI (Probability of Improvement)
  • EI (Expected Improvement)
  • UCB:
    αUCB(x)=μ(x)+β1/2σ(x) \alpha_{\text{UCB}}(x)=\mu(x)+\beta^{1/2}\sigma(x) αUCB(x)=μ(x)+β1/2σ(x)

库:BoTorch 支持批量、并行、多保真度优化。


10. PAC-Bayes 理论

10.1 风险界

对任意先验 ( P )、后验 ( Q ):
Ew∼Q[R(w)]≤Ew∼Q[R^S(w)]+DKL(Q∥P)+log⁡2mδ2m \mathbb{E}_{w\sim Q}[R(w)] \leq \mathbb{E}_{w\sim Q}[\hat{R}_S(w)] + \sqrt{\frac{D_{\text{KL}}(Q\|P)+\log\frac{2\sqrt{m}}{\delta}}{2m}} EwQ[R(w)]EwQ[R^S(w)]+2mDKL(QP)+logδ2m

10.2 应用

  • 非真空泛化界
  • 深度网络压缩理论(Dziugaite & Roy, 2017)

11. 近似推断技巧

技巧简介
Local Reparameterization降低方差,加速收敛
FlipOut权重扰动的低方差估计
Determinantal Point Processes用于核贝叶斯模型
Stein Variational Gradient Descent (SVGD)粒子基变分推断

12. 可扩展贝叶斯

12.1 随机变分推断

用小批量数据估计 ELBO 梯度:
∇ϕL~(ϕ)=NM∑i∈M∇ϕlog⁡qϕ(θ)log⁡p(xi∣θ) \nabla_\phi \tilde{\mathcal{L}}(\phi)=\frac{N}{M}\sum_{i\in\mathcal{M}} \nabla_\phi \log q_\phi(\theta)\log p(x_i|\theta) ϕL~(ϕ)=MNiMϕlogqϕ(θ)logp(xiθ)

12.2 分布式 MCMC

  • 共识蒙特卡洛
  • 弹性 Averaging SGLD

12.3 在线学习

Bayesian updating:
p(θ∣D1:t)∝p(xt∣θ)p(θ∣D1:t−1) p(\theta|D_{1:t}) \propto p(x_t|\theta)p(\theta|D_{1:t-1}) p(θD1:t)p(xtθ)p(θD1:t1)


附录:学习路径 & 资源

  1. 入门:Bishop《Pattern Recognition and Machine Learning》第 1–3、8–10 章
  2. 进阶:Murphy《Probabilistic Machine Learning: Advanced Topics》
  3. 代码:PyMC、NumPyro、TensorFlow Probability、BoTorch
  4. 论文速查:
    • Auto-Encoding Variational Bayes (ICLR 2014)
    • Weight Uncertainty in Neural Networks (ICML 2015)
    • Deep Bayesian Bandits (NIPS 2018)
    • A Tutorial on Variational Autoencoders (ArXiv 1606.05908)
http://www.dtcms.com/a/325905.html

相关文章:

  • Next.js API 路由:构建后端端点
  • 数据结构3线性表——单链表(C)
  • Flutter - 应用启动/路由管理
  • 13、Docker Compose 安装 Redis 哨兵集群(一主两从)
  • 容器技术之docker
  • Excel 连接阿里云 RDS MySQL
  • AAAI-2025 | 北理工具身导航新范式!FloNa:基于平面图引导的具身视觉导航
  • Dashboard.vue 组件分析
  • CLIP在文生图模型中的应用
  • 《范仲淹传》读书笔记与摘要
  • sqli-labs通关笔记-第42关 POST字符型堆叠注入(单引号闭合 手工注入+脚本注入两种方法)
  • pdf转word教程
  • ERA5---MATLAB处理水汽数据与臭氧数据的读取与重采样-重复性工作
  • 基于模型预测控制的主蒸汽温度单步预测MATLAB实现
  • 大数据系统架构模式:驾驭海量数据的工程范式
  • 蓝桥杯算法之搜索章 - 4
  • 基于领域事件驱动的微服务架构设计与实践
  • 鸿蒙Des 加密解密 C++版本
  • POI导入时相关的EXCEL校验
  • 使用行为树控制机器人(三) ——通用端口
  • Python面试题及详细答案150道(41-55) -- 面向对象编程篇
  • 《基于Redis实现高效消息队列的完整指南》
  • 在 RHEL9 上搭建企业级 Web 服务(Tomcat)
  • Java Selenium 自动打开浏览器保存截图
  • Spring Cloud系列—Gateway统一服务入口
  • 案例分析2:上层应用不稳定提示注册失败
  • Python(9)-- 异常模块与包
  • CLIP,BLIP,SigLIP技术详解【二】
  • Flink + Hologres构建实时数仓
  • 机器学习:基于OpenCV和Python的智能图像处理 实战