序言
在深度学习与机器学习的广阔领域中,集成学习(Ensemble Learning)作为一种强大的策略,通过组合多个学习器的预测结果来提升整体模型的泛化能力和稳定性。其中,Bagging(Bootstrap Aggregating)是集成学习中最具代表性的方法之一。Bagging通过并行地训练多个基学习器(如决策树、神经网络等),每个基学习器都在原始数据集的随机子集(通过自助采样法获得)上独立训练,最终通过投票或平均的方式综合所有基学习器的预测结果,以达到“三个臭皮匠,顶个诸葛亮”的效果。特别地,在深度学习中,虽然Bagging不如在传统机器学习算法中那样直接应用(因深度学习模型训练成本高),但其思想仍被融入各种集成策略中,如快照集成(Snapshot Ensembles)和模型平均,以提升深度网络的性能。
Bagging和其他集成方法
Bagging \text{Bagging} Bagging (bootstrap aggregating) 是通过结合几个模型降低泛化误差的技术(Breiman, 1994)。
主要想法是分别训练几个不同的模型,然后让所有模型表决测试样例的输出。这是机器学习中常规策略的一个例子,被称为模型平均 (model averaging)。采用这种策略的技术被称为集成方法。
模型平均 (model averaging) 奏效的原因是不同的模型通常不会在测试集上产生完全相同的错误。
考虑 k k k个回归模型的例子。假设每个模型在每个例子上的误差是 ϵ i \epsilon_i ϵi,这个误差服从零均值方差为 E [ ϵ i 2 ] = v \mathbb{E}[\epsilon_i^2]=v E[ϵi2]=v且协方差为 E [ ϵ i ϵ j ] = c \mathbb{E}[\epsilon_i\epsilon_j]=c E[ϵiϵj]=c的多维正态分布。通过所有集成模型的平均预测所得误差是 1 k ∑ i ϵ i \frac{1}{k}\sum_i\epsilon_i k1∑iϵi。集成预测器平方误差的期望是:
{ E [ ( 1 k ∑ i ϵ i ) 2 ] = 1 k 2 E [ ∑ i ( ( ϵ i 2 + ∑ j ≠ i ϵ i ϵ j ) ] — 公式1 = 1 k v + k − 1 k c — 公式2 \begin{cases}\begin{aligned}\mathbb{E}\left[\left(\frac{1}{k}\sum\limits_i\epsilon_i\right)^2\right]&=\frac{1}{k^2}\mathbb{E}\left[\sum\limits_i\left((\epsilon_i^2+\sum\limits_{j\neq i}\epsilon_i\epsilon_j\right)\right]&\quad\textbf{---\footnotesize{公式1}}\\&=\frac{1}{k}v+\frac{k-1}{k}c&\quad\textbf{---\footnotesize{公式2}}\end{aligned}\end{cases} ⎩ ⎨ ⎧E (k1i∑ϵi)2 =k21E i∑ (ϵi2+j=i∑ϵiϵj =k1v+kk−1c—公式1—公式2在误差完全相关即 c = v c=v c=v的情况下,均方差减少到 v v v,所以模型平均没有任何帮助。
在误差完全相关即 c = 0 c=0 c=0的情况下,该集成平均误差的期望仅为 1 k v \frac{1}{k}v k1v。
- 这意味着集成平均误差的期望随着集成的大小线性地减少。
- 换言之,集成平均上至少与它的任何成员表现得一样好,并且如果成员的误差是独立的,集成将显著地比其他成员表现得更好。
不同的集成方法以不同的方式构建集成模型。
- 例如,集成的每个成员可以使用不同的算法和目标函数训练成完全不同的模型。
- Bagging \text{Bagging} Bagging是一种允许重复多次使用同一种模型、训练算法和目标函数的方法。
- 具体来说, Bagging \text{Bagging} Bagging涉及构造 k k k个不同的数据集。每个数据集与原始数据集具有相同数量的样例,但从原始数据集中替换采样构成。这意味着,每个数据集以高概率缺少一些来自原始数据集的例子,还包含若干重复的例子(如果所得训练集与原始数据集大小相同,那所得数据集中大概有原始数据集2/3的实例)。模型 i i i在数据集 i i i上训练。
- 每个数据集包含样本的差异导致训练模型之间的差异。如下图例1是一个例子。
图例1:描述Bagging如何工作的草图
- 说明
- 假设我们在上述数据集(包含一个 8 8 8,一个 6 6 6和一个 9 9 9)上训练数字8的检测器。
- 假设我们制作了两个不同的重采样数据集。
- Bagging \text{Bagging} Bagging训练程序通过替换采样构建这些数据集。
- 第一个数据集忽略 9 9 9并重复 8 8 8。在这个数据集上,检测器得知数字顶部有一个环就对应于一个 8 8 8。
- 第二个数据集中,我们忽略 6 6 6并重复 9 9 9。在这种情况下,检测器得知数字底部有一个环就对应于一个 8 8 8。
- 这些单独的分类规则中的每一个都是不可靠的,但如果我们平均它们的输出,就能得到鲁棒的检测器,只有当 8 8 8的两个环都存在时才能实现最大置信度。
- 说明
神经网络的解能达到足够多的变化意味着他们可以从模型平均中受益 (即使所有模型都在同一数据集上训练)。
- 神经网络中随机初始化的差异、 minibatch \text{minibatch} minibatch的随机选择、超参数的差异或不同输出的非确定性实现往往足以引起集成中不同成员的误差部分独立。
模型平均是减少泛化误差一个非常强大可靠的方法。
- 作为科学论文算法的基准时,它通常是不鼓励使用的,因为任何机器学习算法可从模型平均中大幅获益(以增加计算和存储的代价)。
机器学习比赛通常使用超过几十种模型平均的方法取胜。
- 最近一个突出的例子是Netflix Grand Prize(Koren, 2009)。
不是所有构建集成的技术都是为了让集成模型比单一模型更加正则化。
- 例如,一种被称为 Bagging \text{Bagging} Bagging的技术 (Freund and Schapire, 1996b,a) 构建比单个模型容量更高集成模型。
- 向集成逐步添加神经网络, Bagging \text{Bagging} Bagging已经应用于构建神经网络的集成(Schwenk and Bengio, 1998)。通过逐渐增加神经网络的隐藏单元, Bagging \text{Bagging} Bagging也可以将单个神经网络解释为单个集成。
总结
Bagging \text{Bagging} Bagging作为集成学习中的基石之一,通过并行化训练多个基学习器并整合其预测结果,有效降低了模型的方差,提高了整体预测的稳定性和准确性。在深度学习中,尽管直接应用Bagging面临挑战,但其核心思想—多样化与集成—仍被广泛借鉴,形成了多种针对深度模型的集成策略。这些策略不仅增强了深度学习模型的鲁棒性,还推动了AI技术在各个领域的应用边界,展现了集成学习在复杂模型构建中的独特魅力和无限潜力。