AdaBoost算法的自适应权重更新与误分类样本重加权过程
题目描述
AdaBoost(自适应增强)是一种集成学习算法,它通过串行训练多个弱分类器(如决策树桩),并根据每个弱分类器的表现自适应地调整样本权重,最终将这些弱分类器加权组合成强分类器。本题将详细讲解 AdaBoost 在二分类任务中,如何通过迭代过程调整样本权重,并基于错误率计算弱分类器的权重,最终实现高精度分类。
解题过程
1. 问题设定
- 训练数据集:\(D = \{ (x_1, y_1), (x_2, y_2), ..., (x_N, y_N) \}\),其中 \(y_i \in \{-1, +1\}\)(二分类标签)。
- 弱分类器:\(h_t(x)\) 表示第 \(t\) 轮迭代得到的弱分类器(例如深度为1的决策树)。
- 目标:通过 \(T\) 轮迭代,得到最终强分类器:
\[ H(x) = \text{sign} \left( \sum_{t=1}^T \alpha_t h_t(x) \right) \]
其中 \(\alpha_t\) 是第 \(t\) 个弱分类器的权重。
2. 算法初始化
- 初始化样本权重:第一轮所有样本权重相等。
\[ w_1(i) = \frac{1}{N}, \quad i = 1, 2, ..., N \]
这表示初始时每个样本对训练第一个弱分类器的影响相同。
3. 迭代过程(第 \(t\) 轮)
步骤1:训练弱分类器
- 使用当前样本权重分布 \(w_t\) 训练弱分类器 \(h_t\)。
- 目标:最小化加权错误率,即更关注权重高的样本的分类结果。
步骤2:计算加权错误率
- 定义错误率 \(\epsilon_t\) 为被 \(h_t\) 误分类的样本的权重之和:
\[ \epsilon_t = \sum_{i=1}^N w_t(i) \cdot \mathbb{I}(h_t(x_i) \ne y_i) \]
其中 \(\mathbb{I}(\cdot)\) 是指示函数(条件成立则为1,否则为0)。
- 要求 \(\epsilon_t < 0.5\)(弱分类器至少略好于随机猜测)。
步骤3:计算弱分类器权重 \(\alpha_t\)
- 根据错误率计算该弱分类器在最终组合中的权重:
\[ \alpha_t = \frac{1}{2} \ln \left( \frac{1 - \epsilon_t}{\epsilon_t} \right) \]
- 当 \(\epsilon_t\) 很小(接近0)时,\(\alpha_t\) 很大,表示该弱分类器置信度高。
- 当 \(\epsilon_t\) 接近 0.5 时,\(\alpha_t\) 接近 0。
- 公式推导源于指数损失函数的优化(见后续数学解释)。
步骤4:更新样本权重
- 核心思想:增加被当前弱分类器 \(h_t\) 误分类的样本的权重,使得下一轮弱分类器更关注这些难分样本。
- 更新公式:
\[ w_{t+1}(i) = w_t(i) \cdot \exp \left( -\alpha_t y_i h_t(x_i) \right) \cdot Z_t^{-1} \]
其中:
- \(y_i h_t(x_i)\) 在分类正确时为 +1,错误时为 -1。
- 当分类错误时,\(-\alpha_t y_i h_t(x_i) = \alpha_t\)(正数),权重乘以 \(e^{\alpha_t} > 1\),权重增加。
- 当分类正确时,乘以 \(e^{-\alpha_t} < 1\),权重减少。
- \(Z_t = \sum_{i=1}^N w_t(i) \exp(-\alpha_t y_i h_t(x_i))\) 是归一化因子,使 \(w_{t+1}\) 成为概率分布。
4. 数学解释:为什么这样设计?
AdaBoost 实际是在最小化指数损失函数:
\[L(H) = \frac{1}{N} \sum_{i=1}^N \exp(-y_i H(x_i)) \]
- 可以证明,每一轮迭代中,通过选择 \(h_t\) 和 \(\alpha_t\) 来最小化加权指数损失,得到上述权重更新公式。
- 弱分类器权重 \(\alpha_t\) 的公式来源于求解优化问题:
\[ \alpha_t = \arg\min_{\alpha} \sum_{i=1}^N w_t(i) \exp(-\alpha y_i h_t(x_i)) \]
求导后解出 \(\alpha_t = \frac{1}{2} \ln((1-\epsilon_t)/\epsilon_t)\)。
5. 最终分类器组合
- 经过 \(T\) 轮迭代后,得到 \(T\) 个弱分类器及其权重 \(\alpha_t\)。
- 最终强分类器为加权投票:
\[ H(x) = \text{sign} \left( \sum_{t=1}^T \alpha_t h_t(x) \right) \]
即对每个样本,计算所有弱分类器的加权和,符号作为预测类别。
6. 直观理解
- 样本权重更新:相当于在每一轮迭代后,误分类样本的“重要性”被放大,迫使后续弱分类器重点处理这些难分样本。
- 弱分类器权重:错误率低的弱分类器在最终投票中话语权更大。
- 整体过程:通过逐步聚焦于分类错误的样本,组合多个简单模型的优势,最终达到高精度。
7. 扩展说明
- 算法可扩展到多分类(如 SAMME 变体)。
- 实际应用中,需防止过拟合(控制迭代轮数 \(T\),或通过验证集早停)。
- AdaBoost 对噪声数据敏感(错误样本权重可能不断放大噪声)。