集成学习(ensemble learning)干货系列(1)——集成学习概述

什么是集成学习?

集成学习:简单概括就是通过某种合理的方式将多个简单的基学习器结合起来,以期获得更准确,更高效的模型。 对某些机器学习任务,有的时候我们使用单个模型已经调到最优,很难再有改进。这时候为了提高性能,往往会用很少量的工作,组合多个基模型(基学习器),使得系统性能提高。 如果基学习器是从某⼀种学习 算法从训练数据中产⽣,称该集成学习是同质的(homogenerous)。如果基学习器是从⼏种不同学习算法从训练数据中产⽣,则称集成学习是异质的(heterogenous )。集成学习中, 通常基学习器之间的互补性越强,或者基学习器更多样的话,集成效果更好。
在这里插入图片描述
在这里插入图片描述
为了帮助大家更好的理解各种集成模型到底在作什么,以及如何减少误差提升性能的;我们先来看一下误差的偏差-方差分解。

误差的偏差-方差分解

点估计的偏差和方差

记训练样本数据集 D D 上对参数 θ \theta 的点估计为: θ ^ = g ( D ) \hat \theta = g(D) ,根据频率学派的观点,真实值 θ \theta 是固定的,但是未知,而 θ ^ \hat \theta 是一个关于数据 D D 的函数。由于数据是随机采样的,因此 θ ^ \hat \theta 是一个随机变量。
于是,点估计的偏差定义为:
b i a s ( θ ^ ) = E [ θ ^ ] θ bias(\hat \theta) = \mathbb{E}[\hat\theta] - \theta
这里的期望作用在所有数据上。为了理解这里的期望,假设我们可以对整个流程重复多次,每次收集得到数据集 D D ,利用训练数据得到估计 θ ^ \hat \theta , 如果将每次收集到的训练样本 D D 看成是关于总体数据的独立同分布的样本,那么每次收集到的D会有些不同,从而每次得到的参数估计 θ ^ \hat \theta 肯定也会不同,这多个不同的估计可以看成是期望 E [ θ ^ ] \mathbb{E}[\hat\theta] 的估计。
如果 b i a s ( θ ^ ) = 0 bias(\hat \theta)=0 ,那么我们就称这个估计是无偏的。

顺便提一嘴,统计上还有个概念叫Fisher一致性,它是从稳健性估计的角度来看
在这里插入图片描述
在这里插入图片描述

点估计的⽅差为 V ( θ ^ ) \mathbb{V}(\hat \theta) ,它刻画的是从潜在的数据分布中独⽴地获取样本集时,点估计的变化程度。

例题:从均值为 μ \mu 的伯努利分布中,得到独立同分布样本 x 1 , x 2 , , x N x_1, x_2, \dots, x_N , E ( x i ) = μ , V ( x i ) = μ ( 1 μ ) \mathbb{E}(x_i) = \mu, \mathbb{V}(x_i) = \mu(1- \mu)
样本均值可作为参数 μ \mu 的⼀个点估计,即: μ ^ = 1 N i = 1 N x i \hat \mu =\frac{1}{N} \sum_{i=1}^Nx_i
因为
E ( μ ^ ) = E [ 1 N i = 1 N x i ] = 1 N E [ i = 1 N x i ] = μ \mathbb{E}(\hat \mu) = \mathbb{E}[\frac{1}{N} \sum_{i=1}^Nx_i] = \frac{1}{N} \mathbb{E}[\sum_{i=1}^Nx_i] = \mu
所以 μ ^ \hat \mu μ \mu 的一个无偏估计。
估计的⽅差为:
V ( μ ) = V [ 1 N i = 1 N x i ] = 1 N 2 V [ i = 1 N x i ] = 1 N μ ( 1 μ ) \mathbb{V}(\mu) = \mathbb{V}[\frac{1}{N} \sum_{i=1}^Nx_i] = \frac{1}{N^2}\mathbb{V}[\sum_{i=1}^Nx_i] = \frac{1}{N}\mu(1- \mu)

这表明估计的方差随样本数量 N N 增加而下降估计的⽅差随着样本数量的增加⽽下降,这是所有估计的共性,这也是为什么说可能的情况下,我们希望训练样本数据越多越好。

预测误差的偏差-方差分解

我们希望模型能够尽可能准确的描述数据产生的真实规律,这里的准确是指模型测试集上的预测误差尽可能小。模型在未知数据上的误差,称为泛化误差。,它主要有三种来:随机误差,偏差和方差。

  • 随机误差。
    随机误差 η \eta 是不可消除的,与我们数据的产生或收集机制密切相关,并且认为其与真值 y y^* 是独立的,若 y y^* 为实值则一般认为其随机误差服从 η N ( 0 , σ η 2 ) \eta \sim N(0,\sigma_{\eta}^2) 的正态分布, 于是可以的真实值 y y^* 与我们的观测值 y y 的关系如下:
    y = y + η y = y^* + \eta
    也就是说观测值 y y 是服从 y N ( y , σ η 2 ) y \sim N(y^*, \sigma_{\eta}^2) 的正态分布。

  • 偏差。 偏差来源于模型中的错误假设。偏差过高就意味着模型所代表的特征和标签之间的关系是错误的,对应欠拟合现象。

    给定数据 D D ,在 D D 上训练得到我们的模型设为 f D f_D 。根据 f D f_D 对训练样本进行测试,得到的预测结果记为 y ^ D = f D ( x ) \hat y_D = f_D(x) 。模型预测的偏差的平方度量模型预测 y ^ D \hat y_D 的期望与真实值 y y^* 之间的差异:
    b i a s 2 ( y ^ D ) = ( E ( y ^ D ) y ) 2 bias^2(\hat y_D) = (\mathbb{E}(\hat y_D) - y^*)^2
    偏差表示学习算法的期望预测与真实值之间的偏离程度,即偏差刻画了我们的模型本身对数据的拟合能力。

  • 方差。方差来源于模型对训练数据波动的过度敏感。方差过高意味着模型对
    数据中的随机噪声也进行了建模,将本不属于“特征– 标签”关系
    中的随机特性也纳入到模型之中,对应着过拟合现象.

    V [ y ^ D ] = E [ ( y ^ D E [ y ^ D ] ) 2 ] \mathbb{V}[\hat y_D] = \mathbb{E}[(\hat y_D - \mathbb{E}[\hat y_D])^2]
    方差表示由于训练集的变动所导致的学习性能的变化(不稳定性),刻画了数据扰动造成的影响。

偏差-方差分解推导

通常情况下,我们一般使用 L 2 L_2 损失作为我们的损失函数
L ( y ^ D , y ) = ( y y ^ D ) 2 \mathcal{L}(\hat y_D, y) = (y - \hat y_D)^2 ,
注意这里的 y y 为上面提到的观测值, y = y + η y = y^* + \eta
y = E [ y ^ D ] \overline y = \mathbb{E}[\hat y_D] ,泛化误差定义为损失函数的数学期望:
E r r = E [ ( y y ^ D ) 2 ] = E [ ( y ^ D ( y + η ) ) 2 ] = E [ ( y ^ D y ) 2 + η 2 2 η ( y ^ D y ) ] = E [ ( y ^ D y ) 2 ] + E [ η 2 ] = E [ ( y ^ D y ) 2 ] + v a r [ η ] = E [ ( y ^ D y ) + ( y y ) 2 ] + v a r [ η ] = E [ ( y ^ D y ) 2 ] + E [ ( y y ) 2 ] + 2 E [ ( y ^ D y ) ( y y ) ] + v a r [ η ] = v a r [ y ^ D ] + ( y y ) 2 + 2 ( y y ) 2 ( E [ y ^ D ] y ) + v a r [ η ] = v a r [ y ^ D ] + b i a s 2 ( y ^ D ) + v a r [ η ] \begin{aligned} Err &= \mathbb{E}[(y - \hat y_D)^2] = \mathbb{E}[(\hat y_D - (y^* + \eta))^2] \\ &= \mathbb{E}[(\hat y_D - y^*)^2 + \eta^2 - 2\eta(\hat y_D - y^*) ] \\ &= \mathbb{E}[(\hat y_D - y^*)^2] + \mathbb{E}[\eta^2] \\ &= \mathbb{E}[(\hat y_D - y^*)^2] + \mathbb{var}[\eta] \\ &= \mathbb{E}[(\hat y_D - \overline y) + (\overline y - y^*)^2] + \mathbb{var}[\eta] \\ &= \mathbb{E}[(\hat y_D - \overline y)^2] + \mathbb{E}[(\overline y - y^*)^2] + 2\mathbb{E}[(\hat y_D - \overline y)(\overline y - y^*)] + var[\eta] \\ &= var[\hat y_D] + (\overline y - y^*)^2 + 2(\overline y - y^*)^2(\mathbb{E}[\hat y_D] - \overline y) + var[\eta] \\ &= var[\hat y_D] + bias^2(\hat y_D) + var[\eta] \end{aligned}
即泛化误差可以分解为为预测的偏差的平方、预测的⽅差以及数据的噪声。我们称之为泛化误差的偏差——方差分解。虽然其他损失函数不能解析证明泛化误差可分解为偏差的平方、方差和噪声,但大致趋势相同。
偏差-方差分解表明模型的性能是由模型的拟合能力,数据的充分性以及学习任务本身的难度共同决定的:

  • 偏差:度量模型的期望预测与真实结果之间的偏离程度,刻画了模型本身的拟合能力。
  • 方差: 度量训练集的变动所导致的模型性能的变化,刻画了数据扰动造成的影响。
  • 噪声:度量在当前任务上任何模型所能达到的期望泛化误差的下界,刻画了学习问题本身的难度。

至此,看完了偏差——方差分解,我们已经清楚对于某个任务来说,模型的性能受哪几方面的影响,由于噪声的存在且我们很难去减少噪声,所以主要是从减少模型的偏差(Bagging方法)和减少模型的方差(Boosting等)两方面提高模型的性能,这也是主流集成学习所希望完成的事情。

结合策略

下面简单介绍下集成学习对基学习器几种简单的结合策略,为我们下一篇打下基础。

Geometric Average Rule

在这里插入图片描述

Arithmetic Average Rule

在这里插入图片描述

Majority Voting Rule

在这里插入图片描述
在这里插入图片描述

参考文献

  1. 卿来云,中国科学院大学《模式识别与机器学习》第七章
  2. 周晓飞,中国科学院大学《机器学习》 第六章

猜你喜欢

转载自blog.csdn.net/HowardEmily/article/details/105400656