深入浅出理解模型方差偏差噪声与泛化误差的关系

基本关系

泛化误差 = 方差 + 偏差 + 噪声

方差:表示在不同数据集上,模型预测输出的波动情况。我们知道如果给定不同的数据,我们模型会得到不一样的预测结果,比如在线性回归问题中,我们要预测 y = w x + b y=wx+b y=wx+b,比如我们有100个数据点 { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x 100 , y 100 ) } \{(x_1,y_1),(x_2,y_2),…,(x_{100},y_{100})\} {(x1,y1),(x2,y2),,(x100,y100)},每次我们随机抽取10个点去拟合这条回归曲线,会得到不同的 w , b w,b w,b,不妨记第i次学习到的参数为 w i , b i w_i,b_i wi,bi,我们就得到这样多组的 y = w i x + b i y=w_ix+b_i y=wix+bi的拟合曲线。那么给定任一个 x x x,这些不同的回归线极可能预测到不同的y(同一个输入x,不同的参数 w i , b i w_i,b_i wi,bi),记为 { y 1 , y 2 , … , y n } \{y_1,y_2,…,y_n\} {y1,y2,,yn} 。而所谓模型的方差,就是数据 { y 1 , y 2 , … , y n } \{ y_1,y_2,…,y_n\} {y1,y2,,yn}的方差。

当然,上面说的,只是对于模型方差的一种估计,并非我们真实的模型方差。真实的模型方差,需要假设我们已知所有的数据点,而不是上面说的100个点;我们每次训练模型抽取的是任意个数的数据点,而不是上面说的,每个模型固定抽取10个点。在前面两个假设的基础上所求的方差,也就是模型的真实方差,当然往往这个假设是不成立的,所以会用到上述方法进行估计

偏差:学习算法的期望预测,与真实的结果y的偏离程度。刻画学习算法本身的拟合能力。所谓学习算法的期望预测,其实就是上述所说的 y 1 , y 2 , … , y n {y_1,y_2,…,y_n} y1,y2,,yn的期望,记为 y ‾ \overline{y} y,则偏差的公式表示为 b i a s 2 = ( y ‾ − y ) 2 bias^2=(\overline{y}-y)^2 bias2=(yy)2

噪声:收集的数据与真实标志的偏离程度。也就是我们拿来训练的数据其实是没那么精准的,比如我们身高的数据,测量值和我们真实的身高可能会有1~2cm的差距,但我们能拿到的数据只能是测量得到的结果,并非我们的真实身高。反应学习问题本身的难度。

泛化误差:是评估不同模型的泛化性能的重要手段,所谓泛化能力,也就是对于模型未见过数据的评估能力(也就是除了训练数据之外的数据)。这很容易理解,如果我们只用预测我们见过的数据,那么我们直接从训练数据中找到这个数据点输出即可,但这样的模型岂不是很没有意义,我们真正训练模型的目的,就是希望它能给出训练数据所没有的数据点的预测结果

符号描述与公式推导

方差公式描述
如前面所说,我们通过一系列不同的数据集 D i D_i Di得到了不同的参数 w i w_i wi,并对于同一个 x x x,预测得到了不同 y i y_i yi。即假设对于同一个 x x x,我们不同数据集下得到 { y 1 , y 2 , … , y n } \{ y_1,y_2,…,y_n\} {y1,y2,,yn}的预测结果,记其期望为 y ‾ \overline{y} y,则模型的方差的表达公式为:
v a r ( x ) = E [ ( y i − y ‾ ) 2 ] var(x)=E[(y_i-\overline{y})^2] var(x)=E[(yiy)2]
偏差公式描述
学习算法的期望预测 y ‾ \overline{y} y,与真实的结果y的偏离程度:
b i a s 2 ( x ) = ( y ‾ − y ) 2 bias^2(x)=(\overline{y}-y)^2 bias2(x)=(yy)2
噪声公式描述
对于任一个 x x x,真实的标签 y y y与数据收集记录的 y ′ y' y的偏离程度:
n o i s e 2 = ( y − y ′ ) 2 noise^2=(y-y')^2 noise2=(yy)2
泛化误差公式描述
在数据集中,未参与训练的数据的预测结果的偏离程度。用模型的任一预测结果 y i y_i yi表示模型的预测结果,用 y ′ y' y来衡量预测结果的好坏,则其表达式为
R e x p = E [ ( y i − y ′ ) 2 ] R_{exp}=E[(y_i-y')^2] Rexp=E[(yiy)2]
这里需要解释一下:

  • 为什么用的是为什么是 y i y_i yi来表示模型的预测结果呢?
    这是因为,我们实际训练所用的数据,就是所有样本空间的一个采样而已,所有,泛化能力还要评估模型对于不同数据集下,其模型的鲁棒性,能够用少量数据就能得到更好预测的模型,当然是我们所追求的。
  • 为什么用 y ′ y' y而不是 y y y来作为数据的标签呢?
    这是因为我们测试用的数据,都是带有误差的 y ′ y' y。还有一种解释是,现实中所见的就是 y ′ y' y(我们的眼睛也会欺骗我们啊),我们自然希望其能直接预测到我们所见的结果【即甚至考虑在噪声影响下的结果预测】

公式推导
R e x p = E [ ( y i − y ′ ) 2 ] = E [ ( y i − y ‾ + y ‾ − y ′ ) 2 ] = E [ ( y i − y ‾ ) 2 ] + E [ ( y ‾ − y ′ ) 2 ] + E [ 2 ( y i − y ‾ ) ( y ‾ − y ′ ) ] = E [ ( y i − y ‾ ) 2 + E [ ( y ‾ − y ′ ) 2 ] R_{exp}=E[(y_i-y')^2]=E[(y_i-\overline{y}+\overline{y}-y')^2] = E[(y_i-\overline{y})^2]+E[(\overline{y}-y')^2]+E[2(y_i-\overline{y})(\overline{y}-y')] = E[(y_i-\overline{y})^2+E[(\overline{y}-y')^2] Rexp=E[(yiy)2]=E[(yiy+yy)2]=E[(yiy)2]+E[(yy)2]+E[2(yiy)(yy)]=E[(yiy)2+E[(yy)2]
其中, E [ 2 ( y i − y ‾ ) ( y ‾ − y ′ ) ] = 2 { E [ y i ( y ‾ − y ′ ) ] − E [ y ‾ ( y ‾ − y ′ ) ] } = 2 { ( y ‾ − y ′ ) E [ y i ] − y ‾ ( y ‾ − y ′ ) } = 2 { ( y ‾ − y ′ ) y ‾ − y ‾ ( y ‾ − y ′ ) } = 0 E[2(y_i-\overline{y})(\overline{y}-y')]=2\{E[y_i(\overline{y}-y')]-E[\overline{y}(\overline{y}-y')]\}=2\{(\overline{y}-y')E[y_i]-\overline{y}(\overline{y}-y')\}=2\{(\overline{y}-y')\overline{y}-\overline{y}(\overline{y}-y')\}=0 E[2(yiy)(yy)]=2{E[yi(yy)]E[y(yy)]}=2{(yy)E[yi]y(yy)}=2{(yy)yy(yy)}=0
E [ ( y i − y ‾ ) 2 = v a r ( x ) E[(y_i-\overline{y})^2=var(x) E[(yiy)2=var(x)
E [ ( y ‾ − y ′ ) 2 ] = E [ ( y ‾ − y + y − y ′ ) 2 ] = E [ ( y ‾ − y ) 2 ] + E [ ( y − y ′ ) 2 ] + E [ 2 ( y ‾ − y ) ( y − y ′ ) ] = = E [ ( y ‾ − y ) 2 ] + E [ ( y − y ′ ) 2 ] = b i a s 2 ( x ) + n o i s e 2 E[(\overline{y}-y')^2]=E[(\overline{y}-y+y-y')^2]=E[(\overline{y}-y)^2]+E[(y-y')^2]+E[2(\overline{y}-y)(y-y')]==E[(\overline{y}-y)^2]+E[(y-y')^2]=bias^2(x)+noise^2 E[(yy)2]=E[(yy+yy)2]=E[(yy)2]+E[(yy)2]+E[2(yy)(yy)]==E[(yy)2]+E[(yy)2]=bias2(x)+noise2
综上可得: R e x p = v a r ( x ) + b i a s 2 ( x ) + n o i s e 2 R_{exp}=var(x)+bias^2(x)+noise^2 Rexp=var(x)+bias2(x)+noise2
即文中开头所说:泛化误差 = 方差 + 偏差 + 噪声

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值