输出调制法是什么?给训练标签加噪声来构造多样的集成模型
输出调制法(Output Smearing)是一种用于构建集成学习模型的方法,由随机森林的提出者、美国统计学家 Leo Breiman 在 2000 年发表于《机器学习》期刊的论文《随机化输出以提升预测精度》中提出。它的核心做法是:给训练数据的输出,也就是标签或目标值,加入随机的噪声,从而生成多份略有不同的训练集,分别训练多个模型,再把这些模型组合起来进行预测。
集成学习需要多样性
集成学习的思想是“三个臭皮匠,顶个诸葛亮”:训练多个模型,把它们的预测结果组合起来,通常比单个模型更准确、更稳定。但这有一个前提:这些模型之间要有足够的差异。如果所有的模型都一模一样,犯同样的错误,把它们组合起来也不会有任何改善。只有当各个模型犯的错误不同、能够相互弥补时,集成才能发挥作用。因此,如何让集成中的各个成员产生差异,是集成学习的核心问题之一。
几种制造差异的方式
制造模型之间差异的方法有很多:Bagging(自助聚合)通过对训练样本进行有放回的随机抽样,让每个模型看到的样本不同;随机子空间方法让每个模型只使用一部分随机选出的特征;随机森林则同时对样本和特征进行随机化;提升法通过调整样本的权重,让后面的模型重点关注前面模型的错误。这些方法主要是从输入的一侧,也就是样本和特征,来制造差异。
输出调制法换了一个角度,从输出的一侧来制造差异:保持输入的样本和特征不变,而是对每个样本的目标值加入随机的扰动。
具体怎么做
对于回归问题,也就是预测连续数值的问题,做法是给每个训练样本的目标值加上一个随机的、服从正态分布的噪声,噪声的大小与目标值的波动程度成比例。每加一次噪声,就得到一份新的训练集,用它训练一个基学习器,比如一棵回归树。重复多次,得到多个基学习器,预测时把它们的结果取平均。对于分类问题,Breiman 在同一篇论文中提出了一种相关的方法,叫“输出翻转”(Output Flipping):以一定的概率随机地把部分训练样本的类别标签改成其他的类别,用这些被扰动了标签的训练集训练多个分类器,再通过投票来组合它们的结果。实验表明,这些方法在不少数据集上的效果可以与 Bagging 相当,甚至更好。
今天的意义
在实际应用中,输出调制法远不如 Bagging、随机森林和梯度提升树那样常用,但它提供了一个有启发性的思路:给训练目标加入适当的随机性,可以起到正则化的作用,提升模型的泛化能力。这一思想在后来的深度学习中也能找到相似之处,比如标签平滑:把分类训练中“百分之百属于某一类”的硬标签,稍微“抹平”成软标签,防止模型过于自信,它与“smearing”(抹平、涂抹)一词的含义正好呼应。