堆叠泛化是一种用于最小化一个或多个泛化器的泛化误差率的方法。它通过推导泛化器相对于所提供的学习集的偏差来发挥其作用。这个推导的过程包括:在第二层中将第一层的原始泛化器对部分学习集的猜测进行泛化,以及尝试对学习集的剩余部分进行猜测,并且输出正确的结果。当与多个泛化器一起使用时,堆叠泛化可以被看作是一个交叉验证的复杂版本,利用比交叉验证更为复杂的策略来组合各个泛化器。当与单个泛化器一起使用时,堆叠泛化是一种用于估计(然后纠正)泛化器的错误的方法,该泛化器已经在特定学习集上进行了训练并被询问了特定问题。
如下图所示,这里有一个如何使用堆叠泛化来组合泛化器的例子:G1和G2是两个泛化器,学习集L用一个椭圆表示,问题q位于L之外。将L分成两部分:一部分是单个输入输出对(x,y)组成,另一部分则包含L的其余部分,表示为{L -(x,y)}。给定分区后,在{L -(x,y)}上训练G1和G2。然后对这两个泛化器提问问题x; 他们的猜测分别是g1和g2。一般来说,由于泛化器还没有被(x,y)训练过,g1和g2都会偏离y。因此,当G1猜测g1和G2猜测g2时,正确答案是y。这些信息可以在一个新的空间中转换为输入输出信息(即,二维的输入点(g1, g2)和输出(y)。将L做其他区域划分,可以得到一系列这样的点。这些点构成一个新的学习集合L'。在全部学习集上训练G1和G2并且问他们问题q, 然后将它们的一对猜测(g1, g2)作为问题馈入给用新的学习集L'训练的第三个泛化器。这第三个泛化器的猜测才是问题q对应的最终输出。
[描述来源:论文Wolpert, D. H. (1992). Stacked generalization. Neural networks, 5(2), 241-259.;URL:https://www.sciencedirect.com/science/article/pii/S0893608005800231]
下图为堆叠的一个简化概念框图:
第0层分类器的输出将被用作第一层分类器的训练数据来近似同一个目标函数。基本上,人们会让第一层分类器自己去找到一个适合的组合机制。从而得到最终的输出。
[图片来源:http://www.chioka.in/stacking-blending-and-stacked-generalization/]
2.发展历史
描述
堆叠泛化由Wolpert在1992年首次提出,堆叠通常能获得比任何单个的训练模型更好的性能。它已被成功地用于监督学习任务(包括回归、分类等)和无监督学习(密度估计),也可以用来估计装袋错误率。有报道表明,它的表现超过了贝叶斯模型平均。堆叠泛化方法在Kaggle等数据比赛中也被广泛使用,能够有效提高模型的性能。比如在Netflix比赛中,有选手通过采用混合(blending)的方法获得奖金,这种方法也被认为是堆叠的一种形式。
主要事件
1 | 年份 | 事件 | 相关论文/Reference |
2 | 1992 | Wolpert首次提出stacked generalization | Wolpert, D. H. (1992). Stacked generalization. Neural networks, 5(2), 241-259. |
3 | 1996 | 在Wolpert模型的基础上改进算法,用于回归问题 | Breiman, L. (1996). Stacked regressions. Machine learning, 24(1), 49-64. |
4 | 1996 | 堆叠被用于非监督学习中的密度估计问题 | Smyth, P., & Wolpert, D. (1999). Linearly combining density estimators via stacking. Machine Learning, 36(1-2), 59-83. |
5 | 2003 | 将堆叠与贝叶斯模型平均方法作比较,发现前者效果更好 | Clarke, B. (2003). Comparing Bayes model averaging and stacking when model approximation error cannot be ignored. Journal of Machine Learning Research, 4(Oct), 683-712. |
6 | 2006 | 将堆叠泛化方法用于蛋白质分类问题 | Wang, S. Q., Yang, J., & Chou, K. C. (2006). Using stacked generalization to predict membrane protein types based on pseudo-amino acid composition. Journal of theoretical biology, 242(4), 941-946. |
7 | 2009 | 介绍了一种特征权重线性堆叠技术,该技术被用于Netflix比赛中,取得过出色表现 | Sill, J., Takács, G., Mackey, L., & Lin, D. (2009). Feature-weighted linear stacking. arXiv preprint arXiv:0911.0460.Chicago |
8 | 2012 | 用堆叠方式构建深度网络结构 | Deng, L., Yu, D., & Platt, J. (2012, March). Scalable stacking and learning for building deep architectures. In Acoustics, Speech and Signal Processing (ICASSP), 2012 IEEE International Conference on (pp. 2133-2136). IEEE. |
发展分析
瓶颈
需要解决的难点是如何确定最佳的hyperparameters的问题。
未来发展方向
采用自动化方法来实现高效率的堆叠,从而提升机器学习的效果。
Contributor: Yueqin Li