【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】模型选择

模型选择是机器学习中比较重要的问题,选择的不同的模型会造成不同的后果:

  • 拟合能力强的模型一般复杂度较高,容易过拟合
  • 如果限制模型复杂度,降低拟合能力,可能会欠拟合
    在模型训练的过程中越复杂的模型对应的训练错误率越低,但是并不能以训练时的错误率去评判模型的优劣,要用与训练过程无关的测试集来判断,这也就意味着在选择模型时,测试集不可见。那么在训练时,要如何判断哪个模型更优秀呢?为此,需要引入验证集(Validation Set或Development Set)
    验证集可以是单独的数据集,也可以从原训练集中选择部分作为验证集。当使用不同的模型在训练集上完成训练后,接着验证模型在验证集上的错误率,以此来评价哪个模型更优秀。
    但是当训练集数据很少时,如果再从中拿出足够量的训练集,就会加剧数据稀疏问题。为此,可以通过交叉验证(Cross-Validation) 方式来尽可能的使验证集与训练集比例相当,尽可能提高数据利用率。
    所谓交叉验证就是指将训练集分为S组,每次使用S-1组作为训练集,剩下一组作为验证集。然后最终选择验证集上平均性能最好的一组作为最后的模型。
    在这里插入图片描述

如上图将训练集分为4组,每次选择3组作为训练集、剩下1组作为验证集。

除了上面所说通过验证集来进行模型选择之外,还可以在一些准则的指导下进行模型选择,常用的准则有:

  • 赤池信息量准则(Akaike Information Criterion,AIC)
  • 贝叶斯信息准则(Bayesian Information Criterion,BIC)1
偏差-方差分解(Bais-Variance Decomposition)

模型选择的实质是在期望风险与模型复杂度之间做平衡,二者之间的关系可以从期望风险入手,将期望风险分为方差(Variance)偏差(Bais) 来进一步解释期望风险与模型复杂度的关系。
仍然以线性回归为例,设当前选择的模型为 f ( x ) f(x) f(x),损失函数仍然是平方损失函数,则对应的经验风险为
R ( f ) = E ( x , y ) ∼ p r ( x , y ) [ ( y − f ( x ) ) 2 ] = ( y − f ( x ) ) 2 p ( x , y ) = ( y − f ( x ) ) 2 p ( x ) p ( y ∣ x ) = ( ( y − f ( x ) ) 2 p ( y ∣ x ) ) p ( x ) = E y ∼ p r ( y ∣ x ) [ ( y − f ( x ) ) 2 ] p ( x ) = E x ∼ p r ( x ) [ E y ∼ p r ( y ∣ x ) [ ( y − f ( x ) ) 2 ] ] \begin{aligned} \mathcal{R}(f) &=\mathbb{E}_{(x,y)\sim p_r(x,y)}[(y-f(x))^2]\\ &=(y-f(x))^2p(x,y)\\ &=(y-f(x))^2p(x)p(y\mid x)\\ &=((y-f(x))^2p(y\mid x))p(x)\\ &=\mathbb{E}_{y\sim p_r(y\mid x)}[(y-f(x))^2]p(x)\\ &=\mathbb{E}_{x\sim p_r(x)}[\mathbb{E}_{y\sim p_r(y\mid x)}[(y-f(x))^2]]\\ \end{aligned} R(f)=E(x,y)pr(x,y)[(yf(x))2]=(yf(x))2p(x,y)=(yf(x))2p(x)p(yx)=((yf(x))2p(yx))p(x)=Eypr(yx)[(yf(x))2]p(x)=Expr(x)[Eypr(yx)[(yf(x))2]]
下面为了方便看,把 E x ∼ p r ( x ) \mathbb{E}_{x\sim p_r(x)} Expr(x)简写成 E x \mathbb{E}_x Ex,把 E y ∼ p r ( y ∣ x ) \mathbb{E}_{y\sim p_r(y\mid x)} Eypr(yx)简写成 E y \mathbb{E}_y Ey,另外把 y y y given x x x y y y的期望记作 μ ( x ) \mu(x) μ(x)也即 μ ( x ) = E y ∼ p r ( y ∣ x ) [ y ] \mu(x)=\mathbb{E}_{y\sim p_r(y\mid x)}[y] μ(x)=Eypr(yx)[y]

R ( f ) = E x [ E y [ ( y − f ( x ) ) 2 ] ] = E x [ E y [ ( y − μ ( x ) + μ ( x ) − f ( x ) ) 2 ] ] = E x [ E y [ ( y − μ ( x ) ) 2 + ( μ ( x ) − f ( x ) ) 2 + 2 ( μ ( x ) − f ( x ) ) ( y − μ ( x ) ) ] ] = E x [ E y [ ( y − μ ( x ) ) 2 + ( μ ( x ) − f ( x ) ) 2 ] + 2 ( μ ( x ) − f ( x ) ) E y [ ( y − μ ( x ) ) ] ] = E x [ E y [ ( y − μ ( x ) ) 2 + ( μ ( x ) − f ( x ) ) 2 ] + 2 ( μ ( x ) − f ( x ) ) ( E y [ y ] − E y [ μ ( x ) ] ) ] = E x [ E y [ ( y − μ ( x ) ) 2 + ( μ ( x ) − f ( x ) ) 2 ] + 2 ( μ ( x ) − f ( x ) ) ( μ ( x ) − μ ( x ) ) ] = E x [ E y [ ( y − μ ( x ) ) 2 + ( μ ( x ) − f ( x ) ) 2 ] \begin{aligned} \mathcal{R}(f) &=\mathbb{E}_x[\mathbb{E}_y[(y-f(x))^2]]\\ &=\mathbb{E}_x[\mathbb{E}_y[(y-\mu(x)+\mu(x)-f(x))^2]]\\ &=\mathbb{E}_x[\mathbb{E}_y[(y-\mu(x))^2+(\mu(x)-f(x))^2+2(\mu(x)-f(x))(y-\mu(x))]]\\ &=\mathbb{E}_x[\mathbb{E}_y[(y-\mu(x))^2+(\mu(x)-f(x))^2] +2(\mu(x)-f(x))\mathbb{E}_y[(y-\mu(x))]]\\ &=\mathbb{E}_x[\mathbb{E}_y[(y-\mu(x))^2+(\mu(x)-f(x))^2] +2(\mu(x)-f(x))(\mathbb{E}_y[y]-\mathbb{E}_y[\mu(x)])]\\ &=\mathbb{E}_x[\mathbb{E}_y[(y-\mu(x))^2+(\mu(x)-f(x))^2] +2(\mu(x)-f(x))(\mu(x)-\mu(x))]\\ &=\mathbb{E}_x[\mathbb{E}_y[(y-\mu(x))^2+(\mu(x)-f(x))^2] \end{aligned} R(f)=Ex[Ey[(yf(x))2]]=Ex[Ey[(yμ(x)+μ(x)f(x))2]]=Ex[Ey[(yμ(x))2+(μ(x)f(x))2+2(μ(x)f(x))(yμ(x))]]=Ex[Ey[(yμ(x))2+(μ(x)f(x))2]+2(μ(x)f(x))Ey[(yμ(x))]]=Ex[Ey[(yμ(x))2+(μ(x)f(x))2]+2(μ(x)f(x))(Ey[y]Ey[μ(x)])]=Ex[Ey[(yμ(x))2+(μ(x)f(x))2]+2(μ(x)f(x))(μ(x)μ(x))]=Ex[Ey[(yμ(x))2+(μ(x)f(x))2]

对于模型 f ( x ) f(x) f(x)来说,要想让经验风险最小,必须要让上式中与 f ( x ) f(x) f(x)有关的项最小,也就是说当 ( μ ( x ) − f ( x ) ) 2 (\mu(x)-f(x))^2 (μ(x)f(x))2最小即 f ( x ) = μ ( x ) = E y ∼ p r ( y ∣ x ) [ y ] f(x)=\mu(x)=\mathbb{E}_{y\sim p_r(y\mid x)}[y] f(x)=μ(x)=Eypr(yx)[y]时,经验风险最小。也就是说,机器学习能学到的最优模型为:
f ∗ ( x ) = E y ∼ p r ( y ∣ x ) [ y ] f^*(x)=\mathbb{E}_{y\sim p_r(y\mid x)}[y] f(x)=Eypr(yx)[y]
这表明当机器学习取最优模型时,模型的预测值将正好与样本中实际的取值相等。将 f ∗ ( x ) f^*(x) f(x)代回原期望函数:
R ( f ) = E ( x , y ) ∼ p r ( x , y ) [ ( y − f ∗ ( x ) + f ∗ ( x ) − f ( x ) ) 2 ] = E ( x , y ) ∼ p r ( x , y ) [ ( y − f ∗ ( x ) ) 2 + ( f ∗ ( x ) − f ( x ) ) 2 + 2 ( f ∗ ( x ) − f ( x ) ) ( y − f ∗ ( x ) ) ] = E ( x , y ) ∼ p r ( x , y ) [ ( y − f ∗ ( x ) ) 2 + ( f ∗ ( x ) − f ( x ) ) 2 ] = E ( x , y ) ∼ p r ( x , y ) [ ( y − f ∗ ( x ) ) 2 ] + E ( x , y ) ∼ p r ( x , y ) [ ( f ∗ ( x ) − f ( x ) ) 2 ] = E x ∼ p r ( x ) [ E y ∼ p r ( y ∣ x ) [ ( y − f ∗ ( x ) ) 2 ] ] + E ( x , y ) ∼ p r ( x , y ) [ ( f ∗ ( x ) − f ( x ) ) 2 ] = E x ∼ p r ( x ) [ ( f ( x ) − f ∗ ( x ) ) 2 ] + ϵ \begin{aligned} \mathcal{R}(f) &=\mathbb{E}_{(x,y)\sim p_r(x,y)}[(y-f^*(x)+f^*(x)-f(x))^2]\\ &=\mathbb{E}_{(x,y)\sim p_r(x,y)}[(y-f^*(x))^2+(f^*(x)-f(x))^2+2(f^*(x)-f(x))(y-f^*(x))]\\ &=\mathbb{E}_{(x,y)\sim p_r(x,y)}[(y-f^*(x))^2+(f^*(x)-f(x))^2]\\ &=\mathbb{E}_{(x,y)\sim p_r(x,y)}[(y-f^*(x))^2]+\mathbb{E}_{(x,y)\sim p_r(x,y)}[(f^*(x)-f(x))^2]\\ &=\mathbb{E}_{x\sim p_r(x)}[\mathbb{E}_{y\sim p_r(y\mid x)}[(y-f^*(x))^2]]+\mathbb{E}_{(x,y)\sim p_r(x,y)}[(f^*(x)-f(x))^2]\\ &=\mathbb{E}_{x\sim p_r(x)}[(f(x)-f^*(x))^2]+\epsilon \end{aligned} R(f)=E(x,y)pr(x,y)[(yf(x)+f(x)f(x))2]=E(x,y)pr(x,y)[(yf(x))2+(f(x)f(x))2+2(f(x)f(x))(yf(x))]=E(x,y)pr(x,y)[(yf(x))2+(f(x)f(x))2]=E(x,y)pr(x,y)[(yf(x))2]+E(x,y)pr(x,y)[(f(x)f(x))2]=Expr(x)[Eypr(yx)[(yf(x))2]]+E(x,y)pr(x,y)[(f(x)f(x))2]=Expr(x)[(f(x)f(x))2]+ϵ
其中 ( y − f ∗ ( x ) ) 2 (y-f^*(x))^2 (yf(x))2是模型与最优模型差的平方。 ϵ = E ( x , y ) ∼ p r ( x , y ) [ ( y − f ∗ ( x ) ) 2 ] \epsilon=\mathbb{E}_{(x,y)\sim p_r(x,y)}[(y-f^*(x))^2] ϵ=E(x,y)pr(x,y)[(yf(x))2]表示包含噪声的样本中的 y y y与预测出的最优的 y y y的损失的期望,也就是期望风险中的噪声,有时候由于样本中的 y y y包含噪声从而导致 ϵ \epsilon ϵ过大,进一步导致期望风险过大,这样的情况是无法通过优化模型来降低的。
在实际训练一个模型时,不同的训练集会得到不同的模型,为了评价机器学习算法(包括模型以及优化算法)的能力,可以用不同训练集上的模型的平均性能评价。令 f D ( x ) f_{\mathcal{D}}(x) fD(x)表示在训练集 D \mathcal{D} D上学习到的模型,只看经验风险函数中跟模型有关的项(也就是暂时不看 ϵ \epsilon ϵ),对其期望风险进一步做与上面同样方式的配方:
E D [ ( f D ( x ) − f ∗ ( x ) ) 2 ] = E D [ ( f D ( x ) − E D [ f D ( x ) ] + E D [ f D ( x ) ] − f ∗ ( x ) ) 2 ] = E D [ ( f D ( x ) − E D [ f D ( x ) ] ) 2 + ( E D [ f D ( x ) ] − f ∗ ( x ) ) 2      + 2 ( f D ( x ) − E D [ f D ( x ) ] ) ( E D [ f D ( x ) ] − f ∗ ( x ) ) ] = E D [ ( f D ( x ) − E D [ f D ( x ) ] ) 2 + ( E D [ f D ( x ) ] − f ∗ ( x ) ) 2 ]      + 2 E D [ ( f D ( x ) − E D [ f D ( x ) ] ) ( E D [ f D ( x ) ] − f ∗ ( x ) ) ] = E D [ ( f D ( x ) − E D [ f D ( x ) ] ) 2 + ( E D [ f D ( x ) ] − f ∗ ( x ) ) 2 ] = E D [ ( E D [ f D ( x ) ] − f ∗ ( x ) ) 2 ] + E D [ ( f D ( x ) − E D [ f D ( x ) ] ) 2 ] = ( E D [ f D ( x ) ] − f ∗ ( x ) ) 2 + E D [ ( f D ( x ) − E D [ f D ( x ) ] ) 2 ] \begin{aligned} \mathbb{E}_{\mathcal{D}}[(f_{\mathcal{D}}(x)-f^*(x))^2] &=\mathbb{E}_{\mathcal{D}}[(f_{\mathcal{D}}(x)-\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)]+\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)]-f^*(x))^2]\\ &=\mathbb{E}_{\mathcal{D}}[(f_{\mathcal{D}}(x)-\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)])^2+(\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)]-f^*(x))^2\\ &\ \ \ \ +2(f_{\mathcal{D}}(x)-\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)])(\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)]-f^*(x))]\\ &=\mathbb{E}_{\mathcal{D}}[(f_{\mathcal{D}}(x)-\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)])^2+(\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)]-f^*(x))^2]\\ &\ \ \ \ +2\mathbb{E}_{\mathcal{D}}[(f_{\mathcal{D}}(x)-\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)])(\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)]-f^*(x))]\\ &=\mathbb{E}_{\mathcal{D}}[(f_{\mathcal{D}}(x)-\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)])^2+(\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)]-f^*(x))^2]\\ &=\mathbb{E}_{\mathcal{D}}[(\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)]-f^*(x))^2]+\mathbb{E}_{\mathcal{D}}[(f_{\mathcal{D}}(x)-\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)])^2]\\ &=(\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)]-f^*(x))^2+\mathbb{E}_{\mathcal{D}}[(f_{\mathcal{D}}(x)-\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)])^2]\\ \end{aligned} ED[(fD(x)f(x))2]=ED[(fD(x)ED[fD(x)]+ED[fD(x)]f(x))2]=ED[(fD(x)ED[fD(x)])2+(ED[fD(x)]f(x))2    +2(fD(x)ED[fD(x)])(ED[fD(x)]f(x))]=ED[(fD(x)ED[fD(x)])2+(ED[fD(x)]f(x))2]    +2ED[(fD(x)ED[fD(x)])(ED[fD(x)]f(x))]=ED[(fD(x)ED[fD(x)])2+(ED[fD(x)]f(x))2]=ED[(ED[fD(x)]f(x))2]+ED[(fD(x)ED[fD(x)])2]=(ED[fD(x)]f(x))2+ED[(fD(x)ED[fD(x)])2]
其中,前项 ( E D [ f D ( x ) ] − f ∗ ( x ) ) 2 (\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)]-f^*(x))^2 (ED[fD(x)]f(x))2叫做偏差(bias),记作 ( b i a s . x ) 2 (bias.x)^2 (bias.x)2,表示训练集上模型的期望(模型预测值 y y y在数据集上的平均水平)与最优模型期望(数据集上真实值 y y y的平均水平)之间的偏差,也就是模型的预测值与训练集上的真实值之间的差距。
后项 E D [ ( f D ( x ) − E D [ f D ( x ) ] ) 2 ] \mathbb{E}_{\mathcal{D}}[(f_{\mathcal{D}}(x)-\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)])^2] ED[(fD(x)ED[fD(x)])2]叫做方差(variance),记作 v a r i a n c e . x variance.x variance.x,表示训练集上给定 x x x模型的预测值与模型的期望之间的偏差,模型的期望表示预测的平均值,与数据集 D \mathcal{D} D有关但与给定的 x x x无关,是个定值,因此方差实际上表示预测模型不同 x x x取值下对应 y y y的预测值与数据集上 y y y的平均值之间的差异,也就是在该模型下预测值的波动程度。
最后,给出经过偏差-方差分解后完整的期望风险:
R ( f ) = ( b i a s ) 2 + v a r i a n c e + ϵ ( b i a s ) 2 = ( E D [ f D ( x ) ] − f ∗ ( x ) ) 2 v a r i a n c e = E D [ ( f D ( x ) − E D [ f D ( x ) ] ) 2 ] ϵ = E ( x , y ) ∼ p r ( x , y ) [ ( y − f ∗ ( x ) ) 2 ] \begin{aligned} \mathcal{R}(f)&=(bias)^2+variance+\epsilon\\ (bias)^2&=(\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)]-f^*(x))^2\\ variance&=\mathbb{E}_{\mathcal{D}}[(f_{\mathcal{D}}(x)-\mathbb{E}_{\mathcal{D}}[f_{\mathcal{D}}(x)])^2]\\ \epsilon&=\mathbb{E}_{(x,y)\sim p_r(x,y)}[(y-f^*(x))^2] \end{aligned} R(f)(bias)2varianceϵ=(bias)2+variance+ϵ=(ED[fD(x)]f(x))2=ED[(fD(x)ED[fD(x)])2]=E(x,y)pr(x,y)[(yf(x))2]
在经过上述分解后,在对模型进行选择时,就可以根据偏差和方差来选择最合适的模型。根据不同情况,可以将机器学习模型分为:

  • 低偏差、低方差:模型预测值与真实值相差较小且模型预测值波动幅度不大,是理想的模型
  • 高偏差、低方差:模型预测值与真实值相差较大,模型在训练集上预测能力较差,而模型预测值之间的波动幅度较小,模型能力较弱,发生欠拟合现象。
  • 低偏差、高方差:模型预测值与真实值相差较小,模型在训练集上预测能力较好,而模型预测值之间的波动幅度较大,模型能力较强,发生过拟合现象。
  • 高偏差、高方差:模型预测值与真实值相差较大,模型在训练集上预测能力较差,且模型预测值之间的波动幅度较大,模型能力较强但预测能力差。

在这里插入图片描述

因此,期望风险最小化等价于方差和偏差的最小化。如下图所示,一般来说,随着模型复杂度的增加,模型的偏差会逐渐减小(在训练集上的预测能力增强)、方差会逐渐增大(模型预测的波动增大),若要期望风险最小,就需要取得一个合适的模型,使得二者的和最小。
在这里插入图片描述

此外还要注意,两曲线的交点不一定是函数最小值点,不知道怎么解释,但是举个反例:
y 1 = 1 x + 1 y 2 = x y 1 + y 2 = 1 x + 1 + x \begin{aligned} y_1&=\frac{1}{x+1}\\ y_2&=x\\ y_1+y_2&=\frac{1}{x+1}+x \end{aligned} y1y2y1+y2=x+11=x=x+11+x
图像如下
在这里插入图片描述


  1. 赤池信息量准则(AIC)和贝叶斯信息准则(BIC)_赤池信息准则-CSDN博客 ↩︎

  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Don't move

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值