稀疏模型(Sparse Models)——稀疏贝叶斯学习方法详解

稀疏贝叶斯学习(Sparse Bayesian Learning, SBL)方法详解

本文将介绍什么是稀疏贝叶斯学习、它的数学原理、与其他稀疏方法的比较、以及实现与常见问题,最后进行总结。


1. 简介

1.1 稀疏贝叶斯学习的概念

稀疏贝叶斯学习(Sparse Bayesian Learning, SBL)是一类将贝叶斯思想与稀疏约束相结合的模型,旨在自动从高维数据中选择最相关的特征(即令大部分不重要的权重趋于零),从而简化模型并提升可解释性。与常见的基于L1正则化(如Lasso)的稀疏方法相比,SBL还能给出模型参数以及特征重要性的后验分布,从而量化不确定性。

在回归、分类、信号处理等问题中,SBL均有广泛应用。它的核心特点是通过层次化先验(如Automatic Relevance Determination, ARD)来实现特征选择,并且可以在贝叶斯框架下,对特征重要性给出概率解释。


2. 数学原理

以下将以回归问题为例,介绍稀疏贝叶斯学习的主要数学推导。分类任务的原理与之相似,只是似然函数形式有所不同。

2.1 回归模型与贝叶斯框架

我们考虑一个线性回归模型:

y = X w + ϵ , ϵ ∼ N ( 0 , σ 2 I ) , \mathbf{y} = \mathbf{X}\mathbf{w} + \boldsymbol{\epsilon}, \quad \boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \sigma^2 \mathbf{I}), y=Xw+ϵ,ϵN(0,σ2I),

其中 X ∈ R N × M \mathbf{X} \in \mathbb{R}^{N \times M} XRN×M 为输入特征矩阵, y ∈ R N \mathbf{y} \in \mathbb{R}^{N} yRN 为输出向量, w ∈ R M \mathbf{w} \in \mathbb{R}^{M} wRM 为模型参数(权重), σ 2 \sigma^2 σ2 为噪声方差。在贝叶斯统计的框架下,参数 w \mathbf{w} w被视为随机变量,我们要关心的是其后验分布 p ( w ∣ X , y ) p(\mathbf{w} \mid \mathbf{X}, \mathbf{y}) p(wX,y),而贝叶斯定理告诉我们:

p ( w ∣ X , y ) = p ( y ∣ X , w )   p ( w ) p ( y ∣ X ) . p(\mathbf{w} \mid \mathbf{X}, \mathbf{y}) = \frac{p(\mathbf{y} \mid \mathbf{X}, \mathbf{w}) \, p(\mathbf{w})}{p(\mathbf{y} \mid \mathbf{X})}. p(wX,y)=p(yX)p(yX,w)p(w).

其中,

  • p ( y ∣ X , w ) p(\mathbf{y} \mid \mathbf{X}, \mathbf{w}) p(yX,w) 为似然函数,即 N ( X w , σ 2 I ) \mathcal{N}(\mathbf{X}\mathbf{w}, \sigma^2 \mathbf{I}) N(Xw,σ2I)
  • p ( w ) p(\mathbf{w}) p(w) 为先验分布。
  • p ( y ∣ X ) p(\mathbf{y} \mid \mathbf{X}) p(yX) 为边缘似然或证据(对 w \mathbf{w} w积分得到的归一化项)。

2.2 自动相关决定(ARD)先验

在稀疏贝叶斯学习中,为实现对每个权重独立地“淘汰”或保留,常采用自动相关决定(Automatic Relevance Determination, ARD)先验。该先验通过引入超参数向量 α = { α 1 , α 2 , … , α M } \boldsymbol{\alpha} = \{\alpha_1, \alpha_2, \dots, \alpha_M\} α={α1,α2,,αM},为每个权重 w j w_j wj 配置一个 Gamma 分布控制的方差,从而实现稀疏性:

p ( w j ∣ α j ) = N ( w j ∣ 0 , α j − 1 ) , p(w_j \mid \alpha_j) = \mathcal{N} \bigl(w_j \mid 0, \alpha_j^{-1}\bigr), p(wjαj)=N(wj0,αj1),
p ( α j ) = G a m m a ( α j ∣ a , b ) , p(\alpha_j) = \mathrm{Gamma} (\alpha_j \mid a, b), p(αj)=Gamma(αja,b),
其中 a , b a, b a,b 为 Gamma 分布的超参数。若某个 α j \alpha_j αj 变得很大,则对应的 w j w_j wj 会被强力“挤压”到接近 0,实现对该特征的自动忽略;而若 α j \alpha_j αj 保持较小,则意味着 w j w_j wj 保留。

将所有权重的先验写为乘积形式:

p ( w ∣ α ) = ∏ j = 1 M N ( w j ∣ 0 , α j − 1 ) . p(\mathbf{w} \mid \boldsymbol{\alpha}) = \prod_{j=1}^{M} \mathcal{N} \bigl(w_j \mid 0, \alpha_j^{-1}\bigr). p(wα)=j=1MN(wj0,αj1).

2.3 后验分布与边缘似然

给定观测数据 { X , y } \{\mathbf{X}, \mathbf{y}\} {X,y} 和超参数 α \boldsymbol{\alpha} α,权重 w \mathbf{w} w 的后验分布可写为:

p ( w ∣ X , y , α , σ 2 )    ∝    p ( y ∣ X , w , σ 2 )   p ( w ∣ α ) . p(\mathbf{w} \mid \mathbf{X}, \mathbf{y}, \boldsymbol{\alpha}, \sigma^2) \;\propto\; p(\mathbf{y} \mid \mathbf{X}, \mathbf{w}, \sigma^2) \, p(\mathbf{w} \mid \boldsymbol{\alpha}). p(wX,y,α,σ2)p(yX,w,σ2)p(wα).

对于线性高斯模型,这个后验分布依然是高斯分布。为了确定 α \boldsymbol{\alpha} α σ 2 \sigma^2 σ2 的值,可以采用边缘似然最大化(又称类型二最大似然,Type II ML)的方法:

p ( y ∣ X , α , σ 2 ) = ∫ p ( y ∣ X , w , σ 2 )   p ( w ∣ α )   d w . p(\mathbf{y} \mid \mathbf{X}, \boldsymbol{\alpha}, \sigma^2) = \int p(\mathbf{y} \mid \mathbf{X}, \mathbf{w}, \sigma^2) \, p(\mathbf{w} \mid \boldsymbol{\alpha}) \, d \mathbf{w}. p(yX,α,σ2)=p(yX,w,σ2)p(wα)dw.

α \boldsymbol{\alpha} α σ 2 \sigma^2 σ2 求解时,往往用 EM 算法或其他近似推断算法(例如变分推断、MCMC 等)来迭代更新。

2.3.1 EM 算法的思想
  • E 步:给定当前的 α \boldsymbol{\alpha} α σ 2 \sigma^2 σ2,计算 w \mathbf{w} w 的后验分布 q ( w ) q(\mathbf{w}) q(w)(即其均值 μ \boldsymbol{\mu} μ 和协方差 Σ \boldsymbol{\Sigma} Σ)。
  • M 步:固定 w \mathbf{w} w 的后验分布,更新超参数 α \boldsymbol{\alpha} α 和噪声方差 σ 2 \sigma^2 σ2,最大化边缘似然。

在经典的 SBL/RVM 推导中, α \boldsymbol{\alpha} α 的更新公式通常可写作:

α j new = 1 − α j Σ j j μ j 2 , \alpha_j^{\text{new}} = \frac{1 - \alpha_j \Sigma_{jj}}{\mu_j^2}, αjnew=μj21αjΣjj,
其中 Σ j j \Sigma_{jj} Σjj 为后验协方差矩阵 Σ \boldsymbol{\Sigma} Σ 的对角元,而 μ j \mu_j μj 为后验均值的第 j j j 维分量。若某个特征不重要,则 α j \alpha_j αj 会在迭代中变大,从而使对应的 w j w_j wj 被抑制到接近 0;若特征确实重要,则 α j \alpha_j αj 较小,使 w j w_j wj 得到保留。通过这种自适应调节,各特征的重要程度由数据自动“决定”。


3. 与其他稀疏方法的比较

稀疏贝叶斯学习的代表性方法包括 Relevance Vector Machine (RVM)。与之相比,常见的稀疏方法如 Lasso (L1 正则)、Ridge (L2 正则) 或弹性网 (Elastic Net) 在思想上有以下差异:

  1. 与 L1 正则化 (Lasso) 的比较
    二者都可令部分权重趋于零,达到特征选择的目的。但 Lasso 提供的只是点估计,不直接给出不确定性;SBL 则能通过后验分布反映每个参数的置信程度。此外,Lasso 常需要手工调节正则化系数 λ \lambda λ,而 SBL 在一定程度上可通过数据自动“学习”最优的稀疏强度。

  2. 与 Ridge (L2 正则) 的比较
    Ridge 会将权重拉向 0,但往往不会真的将权重置为 0,因此无法产生显式的特征选择。SBL 能使不重要的权重真正归零,模型更稀疏、更具可解释性。

  3. 与弹性网 (Elastic Net) 的比较
    弹性网同时融合 L1 和 L2 正则,但仍需要两个正则化系数来手动调参。SBL 则以贝叶斯方法自适应地学习正则化强度。另外,SBL 可提供后验不确定性估计,适合对模型可靠性有较高要求的场景。


4. 实现与实践

4.1 基本流程

稀疏贝叶斯学习通常可遵循以下步骤:

  1. 模型定义
    选定回归或分类的模型形式,以及合适的先验(如 ARD)。

  2. 初始化参数
    给出初始的 α \boldsymbol{\alpha} α σ 2 \sigma^2 σ2 等,通常设为较小的正数或随机值。

  3. 迭代推断
    使用 EM 等算法迭代更新后验均值和协方差,然后再更新 α \boldsymbol{\alpha} α 等超参数,直到收敛。

  4. 实现稀疏
    不重要的特征会因为 α j \alpha_j αj 值不断变大而被淘汰(对应的 w j w_j wj 逼近零)。

  5. 模型验证
    使用交叉验证、留一法或独立测试集评估模型泛化能力,可根据需要调整先验或 EM 参数。

  6. 预测和解释
    只保留显著特征对应的非零权重,即可得到简洁且可解释性更高的模型。

4.2 实例:使用 Python 实现 RVM

以下以 sklearn-rvm 库为例,演示如何在 Python 中使用 RVM(Relevance Vector Machine),它是稀疏贝叶斯学习的一个典型代表。

代码示例
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report, confusion_matrix
from sklearn_rvm import EMRVC

# 1. 生成模拟的二分类数据
X, y = make_classification(n_samples=1000, n_features=50, n_informative=10,
                           n_redundant=10, n_classes=2, random_state=42)

# 2. 数据预处理:标准化
scaler = StandardScaler()
X = scaler.fit_transform(X)

# 3. 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, 
                                                    test_size=0.3, 
                                                    random_state=42)

# 4. 初始化并训练 RVM 分类器(线性核)
rvm = EMRVC(kernel='linear', verbose=True)
rvm.fit(X_train, y_train)

# 5. 预测并评估
y_pred = rvm.predict(X_test)
print(classification_report(y_test, y_pred))
print("Confusion matrix:\n", confusion_matrix(y_test, y_pred))

6. 总结

稀疏贝叶斯学习(Sparse Bayesian Learning, SBL)通过将贝叶斯思想与稀疏性相结合,能够在高维数据中自动找出重要特征并抑制冗余特征,获得更简洁、更可解释的模型。其核心在于引入层次化先验(如 ARD),使每个权重都带有一个可调节的超参数,从而自适应地实现稀疏化。与常规的 L1/L2 或弹性网等方法相比,SBL 在自动特征选择的同时,还能输出参数不确定性估计,更适合需要对模型可解释性和可靠性有更高要求的场景。

尽管 SBL 在求解上往往比简单的 Lasso 等方法具有更高的计算复杂度,且需要合理设置先验的超参数,但对于很多高维稀疏问题(如基因分析、图像特征提取、信号稀疏恢复等),SBL 提供了一个兼顾自动特征选择与不确定性量化的强大方案。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DuHz

喜欢就支持一下 ~ 谢谢啦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值