上一节介绍了基于Gradient Boosting\text{Gradient Boosting}Gradient Boosting架构的经典模型——梯度提升树(Gradient Boosting Decision Tree,GBDT\text{Gradient Boosting Decision Tree,GBDT}Gradient Boosting Decision Tree,GBDT)。本节将介绍另一种集成学习思想——Stacking\text{Stacking}Stacking。
给定数据集合D={(x(i),y(i))}i=1N\mathcal D = \{(x^{(i)},y^{(i)})\}_{i=1}^ND={(x(i),y(i))}i=1N,基于Bagging\text{Bagging}Bagging架构的算法执行过程可表示为如下形式:
同样给定数据集合D={(x(i),y(i))}i=1N\mathcal D = \{(x^{(i)},y^{(i)})\}_{i=1}^ND={(x(i),y(i))}i=1N,基于Boosting\text{Boosting}Boosting架构的算法执行过程可表示为如下形式:
通常使用全连接层对
z(i)z^{(i)}z(i)进行学习。
通过对Stacking\text{Stacking}Stacking架构的描述,可以发现Stacking\text{Stacking}Stacking架构和Bagging\text{Bagging}Bagging之间存在相似之处,它们本质上均是融合若干个基学习器的预测结果,以降低方差。
但关于Stacking\text{Stacking}Stacking的核心区别在于:
再回首:
Bagging\text{Bagging}Bagging是在不同数据集合上训练同一类别模型;
Stacking\text{Stacking}Stacking是在相同数据集合上训练不同类别模型。
其核心思想是:针对不同模型对于相同数据预测结果的差异性,在各预测结果
Conbine\text{Conbine}Conbine过程中,起到降低方差的作用 -> 差异性因模型类别的差异而产生的。
相比之下,
Bagging\text{Bagging}Bagging关于各预测结果的差异性很‘刻意’。依然以随机森林为例,为了保持各基学习器的差异性,我们设置参数故意让决策树有一定概率选择不到最优解,使其强行学习‘模糊/不够准确’。
Stacking\text{Stacking}Stacking架构的基学习器可以存在不同的模型类别;而Bagging\text{Bagging}Bagging架构的基学习器均是同一类型的。例如随机森林(Random Forest,RF\text{Random Forest,RF}Random Forest,RF)。它的基学习器均是决策树(Decision Tree\text{Decision Tree}Decision Tree)。
相比之下,Stacking\text{Stacking}Stacking可以使用不同的基学习器进行处理。例如随机森林、GBDT\text{GBDT}GBDT、多层感知机(Multilayer Perceptron,MLP\text{Multilayer Perceptron,MLP}Multilayer Perceptron,MLP)等等。
相比于Bagging\text{Bagging}Bagging架构对于数据集合的自助采样法,我们甚至不需要对数据集进行Boostrap\text{Boostrap}Boostrap,直接用原始数据集D\mathcal DD即可。因为各基学习器可能已经执行过采样操作了:
从泛化的角度观察,
Boostrap\text{Boostrap}Boostrap采样本身就是增加基学习器对于特征学习的多样性。而
Stacking\text{Stacking}Stacking已经将该多样性转移至不同类别的模型中。并且,该多样性不仅仅体现在模型结构,而且也可能体现在各模型对于特征的选择上。
Bagging\text{Bagging}Bagging架构针对不同任务通常使用均值、投票的方式获取结果,原因在于基学习器模型类别相同,对于数据预测的标尺(Scale\text{Scale}Scale)是相似的。
而Stacking\text{Stacking}Stacking不同类型的基学习器对于预测结果可能存在不同的标尺,那么关于各基学习器的预测结果的Conbine\text{Conbine}Conbine问题,Stacking\text{Stacking}Stacking将每个基学习器的预测结果拼接起来,使用全连接神经网络进行重新学习,最终得到预测结果。
这里关注的点在于,各预测结果
Concatenate\text{Concatenate}Concatenate的向量是可以通过神经网络学习的。当然也可以使用投票、均值的方法(均值就意味着各学习器权重相同),不绝对。
从预测结果的角度观察,虽然各预测结果可能存在不同标尺,但是它们的预测方向是相似的。即:某个样本特征的预测标签结果大概率不会出现完全相反的情况。因而不一定需要非常复杂的模型去学习融合特征。
上一篇:语音分类和高斯混合模型