机器学习系列5---偏差和方差分解

       机器学习的目的就是通过选择合适的算法确定输入和输出变量之间的映射关系,不同学习算法的对比指标一般是对应模型的泛化性能,但是在实际分析过程中模型泛化性能不是单一成分,不同数据集划分或者样本选择均会对泛化性能的不同部分产生影响,一般将学习算法对应模型的泛化误差分为两部分:偏差(预测集)+方差(训练集),具体推导过程如下:

       假设对于测试样本 x ,令对应变量标记为 \hat{y},真实输出为 y;训练集 D 的模型输出为 f,则对于测试样本,基于训练集模型的期望输出为:

                           \tilde{f}(x)=E_D[f(x;D)] \ \ \ \ \ \ (1)

使用相同大小的不同训练集产生的预测方差为:

                          var(x)=E_D[(f-\tilde{f}(x))^2]\ \ \ \ \ (2)

定义期望输出和真实输出之差为偏差(bias):

                                bias^2(x)=(\tilde{f}(x)-y)^2\ \ \ \ \ (3)

预测输入变量和真实变量之差定为为噪声,假设噪声服从均值为0,方差为 \varepsilon ^2 的分布,则有:

                                \varepsilon ^2=(\hat{y}-y)^2 \ \ \ \ \(4)

对于学习算法的期望泛化误差(预测输出和真实输出):

机器学习系列5---偏差和方差分解_第1张图片

于是, 

                                           E(f;D)=bias^2(x)+var(x)+\varepsilon ^2\ \ \ \ \ (6)

        可以发现,模型泛化误差可分解为偏差、方差和噪声之和。根据定义可知,偏差度量学习算法的期望预测和真实结果的偏离程度,即表示学习算法本身的拟合能力;方差度量了在相同样本尺度不同样本组成训练集下的学习性能变化,即表示数据扰动所造成的影响;噪声表达了当前任务上任何学习算法所能达到的泛化误差下届,及表示学习问题本身的难度(所有数据的期望输出和真实输出之差)。

       “偏差-方差分解”表明模型泛化性能是由学习算法的能力(偏差)、数据的充分性(方差)及学习任务本身的难度(噪声)共同决定的。对于给定学习任务,在无法改变分析对象本身难度的情况下(噪声),为取得好的泛化性能,则需要对应模型能够充分学习数据降低偏差,并且合理选择模型数据使得由数据扰动导致的方差较小。

    为直观分析方差和偏差的区别,通过采用论文《Understanding the bias-variance tradeoff》中的图形进行表示:

机器学习系列5---偏差和方差分解_第2张图片

       假设图中红色区域是学习算法理想的正确预测值,蓝色点为基于训练集模型的样本预测值,当蓝色点远离中心红色区域时,模型预测性能变差。可以发现,左边一列中模型预测值分别较为集中,而右边则相对分散,根据方差(不同数据集预测与期望预测之差)的定义,可知分布比较集中的图像(左边)对应方差较小,而分布分散(右边)的属于方差较大的情况,通俗的理解就是不同训练集模型的预测样本分布。

       对于偏差(期望输出和真实标记之间的差距),预测样本距离中心点越近,对应偏差越小,上图中右上对应偏差小于左下偏差。

     总结来说:偏差针对单个模型,表述期望输出和真实输出的差距,表示了模型对于单一训练集的拟合程度。方差针对多个模型,表述相同分布的不同数据集训练模型的输出值差异,表示了数据扰动对模型的影响。个人理解是:方差表示不同训练集模型预测结果的一致程度;而偏差表示一个确定模型预测结果和真实结果之间的差异。

        在无法改变数据本身难度(噪声)的情况下可通过减小方差和偏差降低模型的泛化误差,但是实际过程中存在着 偏差-方差窘境(Bias-variance dilemma)如图(图片来自百度)。对于给定的学习任务,当模型训练程度不足时,学习器未能完全学习数据特性,数据的扰动不足以使学习器发生显著变化,此时偏差主导了泛化误差;当训练程度不断加深,学习器能够拟合数据时,微小的扰动导致学习器发生显著变化,此时方差主导了模型泛化误差。

机器学习系列5---偏差和方差分解_第3张图片

       结合实际分析过程,模型的偏差-方差分布对应于实际分析过程的欠拟合-过拟合现象。对于训练不充分的简单模型,未能有效学习分析对象特性,导致欠拟合现象,此时有较大的偏差和较小的方差;而当模型过于拟合训练数据时,训练数据自身的、非全局的特性也被学习,此时会产生训练集泛化性能较佳,而预测集结果较差,即模型对于扰动敏感,存在较大方差。

       在其他文章中会讨论泛化误差、方差-偏差和模型复杂度的关系,在实际分析过程中,一般情况下三者之间的变化分布如下图所示:

机器学习系列5---偏差和方差分解_第4张图片

复杂度高的模型对于训练数据的拟合能力越高,但是当较高复杂度模型容易拟合非全局特性,导致对应模型在预测集上表现性能不佳,而复杂度太低又无法很好地学习训练数据,则无法有效的分析预测数据产生理想分析结果。

      需要区别的是模型复杂度和训练程度之间的差异,训练程度对应于固定复杂程度模型的学习深度,例如模型训练次数或者数据集划分;而复杂度表示用于拟合数据学习算法本身的复杂程度,例如线性(1次)和高阶非线性(2及以上次)。

对应确定的学习算法,如何有效减小偏差和方差

      首先需要明确的是任何学习算法是无法避免偏差和方差,在结合分析数据特性的基础上,我们只能应用合理的方法减少对应的方差和偏差:

    (1)对于偏差,需要选择正确的模型;数据分布的特点决定了不同学习方法的有效性;

    (2)数据集的大小和划分;通常数据集越大越好,但实际分析过程数据采集需要成本代价,在分析过程中过大数据在增加计算量的同时容易导致过拟合,此外,有限数据情况下的训练集和测试集数据划分对模型泛化性能产生直接影响。

    (3)模型复杂度。

对于偏差、方差不同的特性,一般选择一下方法:

偏差(欠拟合):

    (1)选择更多具有代表性的数据;

    (2)应用样本特征数据进行建模分析。

方差(过拟合):

    (1)正则化方法;

    (2)交叉验证确定数据集;

    (3)使用特征数据进行建模,减少模型复杂度。

 

参考文献:

1. 《Understanding the bias-variance tradeoff》;

2. 偏差与方差  https://zhuanlan.zhihu.com/p/38853908

3. 《机器学习》周志华

 

于2020.05.28

学习永无止境,而我永远奔跑在路上!

你可能感兴趣的:(数据获取,机器学习,机器学习,过拟合)