美文网首页
机器学习-泛化误差与偏差bias与方差Variance

机器学习-泛化误差与偏差bias与方差Variance

作者: 莱昂纳多91 | 来源:发表于2019-05-20 16:26 被阅读0次

    我们之所以需要拟合,就是因为我们难以甚至无法获得全部真实数据
    如果我们可以获取完备的真实数据集,那么我们压根就不需要做拟合了,我们只要查询就好了。
    所以,我们能获取的数据,以及能够用于训练的数据,只是真实数据的一部分,而且,我们也是假设,训练数据分布与真实数据独立同分布,所以训练数据越多,可以认为越接近真实分布。

    我们用训练误差Err_{train}表示模型在训练集上表现好坏
    用泛化误差Err_{test}表示模型在测试集上表现好坏

    实际上,训练数据分布与真实数据分布是有一定偏差的,而且,数据本身也存在噪声。
    这就暗示我们,如果我们只用训练数据去完美地拟合/训练一个模型M1即Err_{train-M1}=0,但它在实际测试数据上很可能是不完美甚至是很差的即Err_{test-M1}>>0,这就叫过拟合
    而如果我们连训练数据都拟合地很差Err_{train}>>0,那在实际数据上一定也很差Err_{test}>>0,这就叫欠拟合

    泛化误差

    所谓泛化误差,即训练好的模型使用测试数据评测时的误差。
    我们的根本目的是降低泛化误差,因为训练一个模型,其根本目的是用于预测未知数据而不是训练数据。
    对于一个真实的训练任务,其样本值往往是由可解释的规律部分和不可解释的噪音组成的即
    Y=f(x)+e
    e可以认为是难以通过模型训练的噪音,我们往往会忽略(因为很小)
    所以我们要拟合的部分是f(x),而不是去拟合Y(如果忽略e,那就是拟合Y)
    用训练数据D训练的模型称之为\widehat f(x) 注意此处是戴帽子的f(x)
    当我们使用相同的算法,但使用不同的训练数据D时就会得到多个\widehat f(x)
    E(\widehat f(x))
    代表了这个模型的期望,即使用某一算法训练模型所能得到的稳定的平均水平。

    方差variance

    var=E\bigg[(E(\widehat f(x))-\widehat f(x))^2\bigg]
    代表了这个模型/算法的稳定性。我们称之为方差。
    如果方差很大,则代表相同算法在不同训练数据上会得到相差很大的结果,这往往表示模型训练过拟合,不同的\widehat f(x)拟合曲线相差很大,这样就会导致对同一个测试样本,结果相差大。这表示数据的变化会给模型带来很大的扰动,就像打靶一样,射点不集中

    偏差 bias


    bias^2 = (E(\widehat f(x))-f(x))^2
    此称为偏差bias。注意这里为何不再加一个期望符号E了呢,因为括号内两者都已经是定值了,而不是离散值。如果偏差很大,即这个此模型的平均水平与真实值相差太大,简单来说就是结果整体跑偏。就像打靶一样,射点整体偏离靶心。

    泛化误差:

    Err(x)=Err(\widehat f,f)+Err(Y,f)
    对于泛化误差,是由模型的损失(这部分可以通过改善模型来减小)再加上不可解释的噪声(这是单纯数据的问题)带来的损失组成的。
    当使用MSE作为损失函数的时候,有
    那么有
    \begin{alignedat}{} Err(x)&=Err(\widehat f,f)+Err(Y,f)\\ &=E\bigg[(f-\widehat f)^2\bigg] +E\bigg[(Y-f)^2\bigg] \\ &=E\bigg[((f-E(\widehat f))+(E(\widehat f)-\widehat f))^2\bigg]+\sigma_e^2\\ &=E\bigg[(f-E(\widehat f))^2+(E(\widehat f)-\widehat f)^2+2(f-E(\widehat f))(E(\widehat f)-\widehat f)\bigg]+\sigma_e^2\\ &=E[(f-E(\widehat f))^2]+E[(E(\widehat f)-\widehat f)^2]+E[2(f-E(\widehat f))(E(\widehat f)-\widehat f)]+\sigma_e^2\\ \end{alignedat}
    注意第三项,(f-E(\widehat f))是一个固定值
    所以第三项
    \begin{alignedat}{2} &=E[2(f-E(\widehat f))(E(\widehat f)-\widehat f)]\\ &=2(f-E(\widehat f))E(E(\widehat f)-\widehat f)\\ &=2(f-E(\widehat f))[(E(\widehat f)-E(\widehat f)]\\ &=0 \end{alignedat}
    所以
    \begin{alignedat}{2} Err(x)&=E[(f-E(\widehat f))^2]+E[(E(\widehat f)-\widehat f)^2]+\sigma_e^2\\ &=(f-E(\widehat f))^2 + var + \sigma_e^2\\ &=bias^2 + var + \sigma_e^2 \end{alignedat}
    即泛化误差由偏差,方差和不可解释的噪音组成。
    我们能控制的就是偏差和方差,尽可能减少他们
    也能看出,过拟合与bias和var有密切关系:

    拟合程度 模型复杂度 bias var error 表现 改善
    欠拟合 预测不准 提高模型复杂度,增加迭代,boosting,减小正则参数
    过拟合 敏感易受扰动 降低模型复杂度,增加训练集数据,特征筛选,提高正则参数,bagging
    好拟合 准而稳

    参考
    csdn1
    blog1
    PRML
    bagging & var

    相关文章

      网友评论

          本文标题:机器学习-泛化误差与偏差bias与方差Variance

          本文链接:https://www.haomeiwen.com/subject/wonkzqtx.html