人工智能概念之七:集成学习思想(Bagging、Boosting、Stacking)

发布于:2025-07-06 ⋅ 阅读:(17) ⋅ 点赞:(0)

一、集成学习的核心思想

1.1 集成学习的概念

集成学习(Ensemble Learning)通过组合多个弱学习器提升模型性能。核心逻辑是:“三个臭皮匠胜过诸葛亮”,利用模型间的互补性降低误差。参与集成的模型需满足:

  • 个体性能优于随机猜测(弱学习器);
  • 彼此之间具有差异性(避免"同质化")。
    在这里插入图片描述

1.2 集成学习的分类

根据组合策略,主要分为三类:

  • Bagging(并行集成):如随机森林,通过有放回抽样生成独立训练集,并行训练弱学习器,最终平权投票。
  • Boosting(串行集成):如AdaBoost,迭代训练弱学习器,每轮聚焦前一轮的错误样本,最终加权投票。
  • Stacking(层级集成):通过多层模型组合,第一层输出作为第二层输入,学习最优组合策略。

二、Bagging思想与计算实例:以随机森林为例

2.1 Bagging核心逻辑

  1. 有放回抽样(Bootstrap):从原始数据中重复抽样生成多个训练集(如N次抽样,每次抽M条数据,允许重复)。
  2. 并行训练弱学习器:每个训练集独立训练决策树(或其他模型)。
  3. 平权投票:分类任务取多数表决,回归任务取平均值。
    在这里插入图片描述

2.2 计算实例:贷款分类问题

原始数据(10条样本)

索引 年龄 有工作 有房子 标签
0 青年 拒绝
1 青年 拒绝
2 青年 同意
3 中年 同意
4 老年 同意
5 老年 同意
6 中年 拒绝
7 青年 同意
8 中年 拒绝
9 老年 同意

Step 1:Bootstrap抽样生成3个训练集

  • 训练集1:抽样索引 [0,2,4,6,8]
    样本:索引0(青年,否,否,拒绝)、索引2(青年,是,否,同意)、索引4(老年,是,是,同意)、索引6(中年,否,否,拒绝)、索引8(中年,是,否,拒绝)
  • 训练集2:抽样索引 [1,3,5,7,9]
    样本:索引1(青年,否,否,拒绝)、索引3(中年,是,是,同意)、索引5(老年,否,是,同意)、索引7(青年,是,是,同意)、索引9(老年,是,否,同意)
  • 训练集3:抽样索引 [2,3,5,7,8]
    样本:索引2(青年,是,否,同意)、索引3(中年,是,是,同意)、索引5(老年,否,是,同意)、索引7(青年,是,是,同意)、索引8(中年,是,否,拒绝)

Step 2:训练3棵决策树(简化为单层树)

  • 树1:以"有房"为根节点,分裂规则:
    • if 有房 == 是 then 同意(正确分类样本4)
    • if 有房 == 否 then 拒绝(样本0,2,6,8中:样本2真实标签为同意但预测为拒绝→错误分类;样本8真实标签为拒绝预测为拒绝→正确分类)
  • 树2:以"年龄"为根节点,分裂规则:
    • if 年龄 == 青年 then 按"有工作"分裂:
      • if 有工作 == 是 then 同意(正确分类样本7)
      • if 有工作 == 否 then 拒绝(正确分类样本1)
    • else (非青年) then 同意(正确分类样本3,5,9)
  • 树3:以"有工作"为根节点,分裂规则:
    • if 有工作 == 是 then 同意(样本2,3,5,7,9中:样本2正确分类;样本8真实标签为拒绝但预测为同意→错误分类)
    • if 有工作 == 否 then 拒绝(正确分类样本0,1,6)

决策树介绍网页链接

Step 3:平权投票
新样本(中年, 是, 否)的预测:

预测结果
树1 拒绝
树2 同意
树3 同意
投票结果:2同意 vs 1拒绝 → 最终预测为"同意"

三、Boosting 思想与计算实例:以二分类为例

3.1 Boosting 核心逻辑

  1. 样本权重迭代:初始时所有样本权重相等,每轮提高错误分类样本的权重。
  2. 弱学习器加权:根据错误率计算弱学习器权重,错误率越低权重越高。
  3. 加权投票:最终结果由弱学习器按权重投票决定。
    在这里插入图片描述

3.2 计算实例:沿用贷款数据(简化为2轮迭代)

Step 1:初始化权重与第一轮训练

  • 初始权重:所有样本权重 w i = 0.1 w_i = 0.1 wi=0.1(10条样本,总权重1)
  • 训练弱学习器1:选择"有房"作为特征,分裂规则:
    • if 有房 == 是 then 同意(正确分类样本3,4,5,7)
    • if 有房 == 否 then 拒绝(错误分类样本2(真实标签同意),正确分类样本0,1,6,8,9)
  • 计算错误率
    错误样本:索引2(权重0.1)
    e 1 = 0.1 1 = 0.1 e_1 = \frac{0.1}{1} = 0.1 e1=10.1=0.1
  • 计算弱学习器权重
    α 1 = 1 2 ln ⁡ ( 1 − e 1 e 1 ) = 1 2 ln ⁡ ( 9 ) ≈ 1.0986 \alpha_1 = \frac{1}{2} \ln\left(\frac{1-e_1}{e_1}\right) = \frac{1}{2} \ln(9) \approx 1.0986 α1=21ln(e11e1)=21ln(9)1.0986
  • 更新样本权重
    错误样本权重: w i × e α 1 ≈ 0.1 × 3 = 0.3 w_i \times e^{\alpha_1} \approx 0.1 \times 3 = 0.3 wi×eα10.1×3=0.3
    正确样本权重: w i × e − α 1 ≈ 0.1 × 0.333 = 0.0333 w_i \times e^{-\alpha_1} \approx 0.1 \times 0.333 = 0.0333 wi×eα10.1×0.333=0.0333
    归一化后权重:总权重 = 0.3 + 9 × 0.0333 ≈ 0.6 0.3 + 9 \times 0.0333 \approx 0.6 0.3+9×0.03330.6
    错误样本权重: 0.3 / 0.6 = 0.5 0.3/0.6 = 0.5 0.3/0.6=0.5
    正确样本权重: 0.0333 / 0.6 ≈ 0.0555 0.0333/0.6 \approx 0.0555 0.0333/0.60.0555
    索引 权重更新后
    0 0.0555
    1 0.0555
    2 0.5000
    3 0.0555
    4 0.0555
    5 0.0555
    6 0.0555
    7 0.0555
    8 0.0555
    9 0.0555

Step 2:第二轮训练

  • 当前权重分布:如上表

  • 训练弱学习器2:选择"有工作"作为特征,分裂规则:

    • if 有工作 == 是 then 同意(错误分类样本8(真实标签拒绝),正确分类样本2,3,4,5,7,9)
    • if 有工作 == 否 then 拒绝(正确分类样本0,1,6)
  • 计算错误率

    错误样本:索引8(权重0.0555)
    e 2 = 0.0555 1 = 0.0555 e_2 = \frac{0.0555}{1} = 0.0555 e2=10.0555=0.0555

  • 计算弱学习器权重
    α 2 = 1 2 ln ⁡ ( 1 − e 2 e 2 ) ≈ 1 2 ln ⁡ ( 17 ) ≈ 1.416 \alpha_2 = \frac{1}{2} \ln\left(\frac{1-e_2}{e_2}\right) \approx \frac{1}{2} \ln(17) \approx 1.416 α2=21ln(e21e2)21ln(17)1.416

  • 更新样本权重(归一化前):
    错误样本权重: 0.0555 × e 1.416 ≈ 0.0555 × 4 = 0.222 0.0555 \times e^{1.416} \approx 0.0555 \times 4 = 0.222 0.0555×e1.4160.0555×4=0.222
    正确样本权重: 0.0555 × e − 1.416 ≈ 0.0555 × 0.25 = 0.0139 0.0555 \times e^{-1.416} \approx 0.0555 \times 0.25 = 0.0139 0.0555×e1.4160.0555×0.25=0.0139
    归一化后权重:总权重 = 0.222 + 9 × 0.0139 ≈ 0.347 0.222 + 9 \times 0.0139 \approx 0.347 0.222+9×0.01390.347
    错误样本权重: 0.222 / 0.347 ≈ 0.640 0.222/0.347 \approx 0.640 0.222/0.3470.640
    正确样本权重: 0.0139 / 0.347 ≈ 0.040 0.0139/0.347 \approx 0.040 0.0139/0.3470.040

Step 3:加权投票
定义类别映射:同意=1,拒绝=-1(便于加权计算)
最终模型: f ( x ) = α 1 ⋅ f 1 ( x ) + α 2 ⋅ f 2 ( x ) f(x) = \alpha_1 \cdot f_1(x) + \alpha_2 \cdot f_2(x) f(x)=α1f1(x)+α2f2(x)
新样本(中年, 是, 否)的预测:

  • f 1 ( x ) = − 1 f_1(x) = -1 f1(x)=1(树1预测拒绝)
  • f 2 ( x ) = 1 f_2(x) = 1 f2(x)=1(树2预测同意)
  • f ( x ) = 1.0986 × ( − 1 ) + 1.416 × 1 ≈ 0.317 f(x) = 1.0986 \times (-1) + 1.416 \times 1 \approx 0.317 f(x)=1.0986×(1)+1.416×10.317
    阈值判定 f ( x ) > 0 f(x) > 0 f(x)>0 → 预测为"同意"

四、Stacking思想与计算实例:层级集成策略

4.1 Stacking核心逻辑

  1. 第一层基础模型:用不同类型的弱学习器训练,通过K折交叉验证生成元特征
    • 将训练集分为K折
    • 对每折:用其他K-1折训练基模型,在该折上预测
    • 所有预测结果拼接成元特征矩阵
  2. 第二层元模型:以元特征矩阵为输入,训练模型学习最优组合策略
    在这里插入图片描述

4.2 计算实例:三层Stacking(简化为2层)

训练阶段元特征生成

样本ID 模型A预测概率(同意) 模型B预测概率(同意) 真实标签
1 0.65 0.72 同意
2 0.31 0.28 拒绝

预测阶段
Step 1:第一层基础模型预测

  • 模型A(逻辑回归)
    输出新样本(中年, 是, 否)的概率:同意=0.7,拒绝=0.3
  • 模型B(决策树)
    输出概率:同意=0.6,拒绝=0.4

Step 2:第二层元模型预测

  • 输入特征:模型A的概率(0.7), 模型B的概率(0.6)
  • 元模型(逻辑回归) z = 0.5 × 0.7 + 0.8 × 0.6 = 0.83 z = 0.5 \times 0.7 + 0.8 \times 0.6 = 0.83 z=0.5×0.7+0.8×0.6=0.83
    σ ( 0.83 ) = 1 1 + e − 0.83 ≈ 0.706 \sigma(0.83) = \frac{1}{1+e^{-0.83}} \approx 0.706 σ(0.83)=1+e0.8310.706
    预测结果:同意(概率>0.5)

五、集成学习在深度学习和LLM中的应用

6.1 深度学习中的集成策略

在深度学习中,集成学习通过组合多个神经网络模型显著提升性能:

  1. 模型多样性集成

    • 训练不同架构的模型(如CNN+Transformer)
    • 使用不同初始化参数的相同架构模型
    • 示例:在ImageNet分类任务中,集成ResNet50和EfficientNet可将准确率提升3-5%
  2. Snapshot集成

    • 单个模型训练过程中保存多个权重快照
    • 在收敛路径的不同点集成预测结果
    • 优势:节省训练资源,提升模型鲁棒性
  3. 多模态集成

    • 融合视觉、文本、语音等不同模态模型的预测
    • 应用:自动驾驶系统集成摄像头、激光雷达和地图数据模型

6.2 大语言模型(LLM)中的集成应用

在LLM领域,集成学习通过以下方式突破性能瓶颈:

方法 实现机制 典型应用
Prompt集成 生成多个提示模板输入同一模型,集成输出结果 提高复杂推理任务稳定性
模型路由 根据输入类型选择最优子模型处理 ChatGPT的插件调度系统
LoRA模块集成 训练多个低秩适配器模块动态组合 参数高效微调(PEFT)
预测校正集成 主模型输出经多个小型校正模型优化 减少幻觉和事实错误

突破性进展

  1. MoE(Mixture of Experts)架构

    • 谷歌Switch Transformer实现万亿参数模型
    • 每层动态激活部分专家模块(如每token激活2/2048专家)
    • 计算效率提升5倍,保持相同参数量级性能
  2. 自集成推理

    • Chain-of-Thought+Self-Consistency:生成多条推理路径投票
    • 在GSM8K数学推理数据集上准确率提升12%
  3. 模型融合技术

    • 权重平均(Weight Averaging)融合多个微调模型
    • 在HuggingFace模型中心广泛应用的Model Soup技术

6.3 前沿研究方向

  1. 动态神经网络集成

    • 根据输入复杂度自适应激活模型子集
    • NVIDIA的Adaptive-MoE实现能耗敏感推理
  2. 跨模型知识蒸馏

    • 集成模型知识蒸馏到单一模型
    • 微软DeBERTa-V3通过此方法超越集成教师模型
  3. 量子化集成

    • 组合不同精度量化模型(FP16+INT8)
    • 实现精度与推理速度的帕累托最优

六、集成学习思想总结与对比

策略 核心逻辑 弱学习器关系 典型应用场景 优势特性
Bagging 并行抽样,平权投票 独立 高方差数据(如图像) 强抗过拟合(降方差)
Boosting 串行迭代,聚焦错误 依赖 高偏差任务(如排序) 高精度(降偏差)
Stacking 层级组合,学习权重 互补 多模态融合 最优组合策略

核心价值

  • 基础理论价值:三类方法从不同角度实现"1+1>2"的集成效果
    • Bagging通过"样本扰动"提升多样性
    • Boosting通过"错误聚焦"提升精度
    • Stacking通过"层级学习"优化组合
  • 现代应用价值
    • 深度学习:MoE架构实现万亿参数模型动态激活
    • 大语言模型:LoRA集成+Prompt集成突破单一模型瓶颈
    • 工业部署:量子化集成平衡精度与推理速度

选择指南

  1. 需强泛化能力 → Bagging(随机森林)
  2. 需高预测精度 → Boosting(XGBoost)
  3. 需融合异构模型 → Stacking
  4. 大模型场景 → MoE+LoRA集成