负相关学习是什么?训练集成中的网络时故意让它们犯不同的错
负相关学习(Negative Correlation Learning,NCL),也叫负相关法,是一种训练神经网络集成的方法,由刘勇和姚新在 1999 年提出。它的核心思想是:在同时训练集成中的多个神经网络时,有意识地鼓励它们犯不同的错误,让它们的误差之间呈现负相关,从而提高整个集成的效果。
集成需要多样性
集成学习的基本思想是把多个模型的预测结果组合起来,比如取平均。这样做之所以有效,是因为各个模型的错误可以相互抵消:一个模型把某个值预测得偏高了,另一个模型可能预测得偏低了,平均下来就更接近真实的值。但这有一个前提:各个模型犯的错误必须是不同的。如果所有的模型都在同样的地方犯同样的错,比如都预测得偏高,那么取平均之后错误依然存在,集成就失去了意义。因此,集成中各个成员之间的多样性至关重要。
很多集成方法是通过间接的方式来获得多样性的:比如 Bagging 让每个模型在不同的随机样本上训练,随机森林还会随机地选择特征,这些方法都是独立地训练各个模型,希望通过数据的差异自然地产生多样性,但无法保证多样性一定足够。负相关学习则采取了一种更加直接的方式:在训练的过程中,明确地把多样性作为优化目标的一部分。
它是怎么做的
负相关学习同时训练集成中的所有神经网络,而不是一个一个地分别训练。对于每一个网络,它的误差函数由两部分组成:第一部分是普通的误差,也就是这个网络的预测与真实值之间的差距,它保证每个网络本身要尽量准确;第二部分是一个相关惩罚项,它衡量这个网络的误差与集成中其他所有网络的误差之间的相关程度。具体来说,这个惩罚项鼓励每个网络的预测偏离整个集成的平均预测的方向,与其他网络偏离的方向相反。一个系数用来控制两部分之间的权衡:系数为零时,就相当于各个网络独立地训练;系数越大,越强调多样性。
通过这种方式,各个网络在训练过程中会相互“协商”,自动地进行分工:在某些区域,有的网络预测得偏高,有的偏低,平均起来正好接近真实的值。这样就在保持各个网络有一定准确性的同时,显式地增加了它们之间的多样性。
理论基础:偏差-方差-协方差分解
负相关学习的理论依据来自对集成误差的分析:对于用平均法组合的回归集成,它的均方误差可以分解为三部分:各个成员平均的偏差、平均的方差,以及成员之间的平均协方差。前两项与单个模型的误差分解类似,而第三项协方差反映了成员之间误差的相关程度:如果成员之间的误差是正相关的,就会增大集成的误差;如果是负相关的,就会减小集成的误差。负相关学习正是通过惩罚项来降低这个协方差。Gavin Brown 等人在 2005 年的研究中进一步分析了负相关学习与这一分解之间的关系,并讨论了惩罚系数的合理取值范围。
意义
负相关学习的意义在于,它明确地把集成的多样性纳入到了训练的目标中,而不是把它当作一种副产品。这一思想对后来关于集成多样性的研究产生了影响。不过,由于需要同时训练所有的网络,它的计算开销较大,在实际的大规模应用中,不如 Bagging 和提升法那样普及。