【深度学习基础】贝叶斯理论
【深度学习基础】贝叶斯理论
目录
- 概率论与信息论基础
- 贝叶斯定理与模型比较
- 共轭先验与解析后验
- 变分推断(VI)
- 蒙特卡洛方法(MCMC & IS)
- 贝叶斯神经网络(BNN)
- 深度生成模型中的贝叶斯组件
- 高斯过程(GP)
- 贝叶斯优化(BO)
- PAC-Bayes 理论
- 贝叶斯深度学习中的近似推断技巧
- 可扩展贝叶斯:随机、分布式与在线算法
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) X⊥⊥Y∣Z⟺p(x,y∣z)=p(x∣z)p(y∣z)
1.3 信息熵与交叉熵
H[p]=−Ex∼p[logp(x)],H(p,q)=−Ex∼p[logq(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]=−Ex∼p[logp(x)],H(p,q)=−Ex∼p[logq(x)]
1.4 KL 散度
DKL(p∥q)=∫p(x)logp(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(p∥q)=∫p(x)logq(x)p(x)dx≥0
📌 小技巧:把 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(D∣Mi)=∫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(D∣M2)p(D∣M1)
论文: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ϕ[logp(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ϕ [∇ϕlogqϕ(θ)(logp(D,θ)−logqϕ(θ))] \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=1∑Swsf(θ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)=−logp(θ∣D)+12r⊤M−1r
H(\theta,r)=-\log p(\theta|D)+\frac{1}{2}r^\top M^{-1}r
H(θ,r)=−logp(θ∣D)+21r⊤M−1r
代码:
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(w∣D)∝p(D∣w)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(y∗∣x∗,D)=∫p(y∗∣x∗,w)p(w∣D)dw≈T1t=1∑Tp(y∗∣x∗,wt)
7. 深度生成模型中的贝叶斯组件
7.1 VAE
编码器 ( q_\phi(z|x) ),解码器 ( p_\theta(x|z) ),目标:
maxθ,ϕEx∼D [Eqϕ(z∣x)[logpθ(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]
θ,ϕmaxEx∼D[Eqϕ(z∣x)[logpθ(x∣z)]−DKL(qϕ(z∣x)∥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(xt∣xt−1)=N(xt;1−βtxt−1,β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θ(xt−1∣xt)=N(xt−1;μθ(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)
f∼GP(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)
f∗∣x∗,X,y∼N(μ∗,Σ∗)
其中
μ∗=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*}
μ∗=k∗X(KXX+σ2I)−1y,Σ∗=k∗∗−k∗X(KXX+σ2I)−1kX∗
与深度核结合:Deep Kernel Learning (Wilson et al., 2016)。
9. 贝叶斯优化(BO)
9.1 目标
x∗=argmaxx∈Xf(x),f∼GP x^* = \arg\max_{x\in\mathcal{X}} f(x),\quad f \sim \mathcal{GP} x∗=argx∈Xmaxf(x),f∼GP
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)+log2mδ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}}
Ew∼Q[R(w)]≤Ew∼Q[R^S(w)]+2mDKL(Q∥P)+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∇ϕlogqϕ(θ)logp(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~(ϕ)=MNi∈M∑∇ϕ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:t−1)
附录:学习路径 & 资源
- 入门:Bishop《Pattern Recognition and Machine Learning》第 1–3、8–10 章
- 进阶:Murphy《Probabilistic Machine Learning: Advanced Topics》
- 代码:PyMC、NumPyro、TensorFlow Probability、BoTorch
- 论文速查:
- 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)