AI之路(五)——关于统计学习(statistical learning)Part 4 模型评估与模型选择

本文探讨了统计学习中训练误差与测试误差的概念,强调测试误差的重要性。通过多项式函数拟合的例子,阐述了过拟合现象及如何进行合理的模型选择,以平衡模型复杂度与泛化能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.训练误差与测试误差
统计学习的目的是使学到的模型不仅对已知数据而且对未知数据都能有很好的预测能力。不同的学习方法会给出不同的模型。当损失函数给定时,基于损失函数的模型的训练误差(training error)和模型的测试误差(test error)就自然成为学习方法评估的标准。注意,统计学习方法具体采用的损失函数未必是评估时使用的损失函数。当然,让两者一致是比较理想的。
假设学习到的模型是Y=f^(X)Y = \hat f(X)Y=f^(X),训练误差是模型Y=f^(X)Y = \hat f(X)Y=f^(X)关于训练数据集的平均损失:
Remp(f^)=1N∑i=1NL(yi,f^(xi))R_{emp}(\hat f) = \frac 1N \sum_{i=1} ^N L(y_i,\hat f(x_i))Remp(f^)=N1i=1NL(yi,f^(xi))
其中NNN是训练样本容量。
测试误差是模型Y=f^(X)Y = \hat f(X)Y=f^(X)关于测试数据集的平均损失:
etest=1N、∑i=1N、L(yi,f^(xi))e_{test} = \frac 1{N^、}\sum_{i=1} ^{N^、} L(y_i,\hat f(x_i))etest=N1i=1NL(yi,f^(xi))
其中N、N^、N是测试样本容量。
例如,当损失函数是0-1损失时,测试误差就变成了常见的测试数据集上的误差率(error rate):
etest=1N、∑i=1N、I(yi≠f^(xi))e_{test} = \frac 1{N^、}\sum_{i=1} ^{N^、} I(y_i ≠ \hat f(x_i))etest=N1i=1NI(yi̸=f^(xi))
这里III是指示函数(indicator function),即yi≠f^(xi))y_i ≠ \hat f(x_i))yi̸=f^(xi))时为1,否则为0。
相应地,常见的测试数据集上的准确率(accuracy)为
rtest=1N、∑i=1N、I(yi=f^(xi))r_{test} = \frac 1{N^、}\sum_{i=1} ^{N^、} I(y_i = \hat f(x_i))rtest=N1i=1NI(yi=f^(xi))
显然,
rtest+etest=1r_{test} + e_{test} = 1rtest+etest=1
训练误差的大小,对判断给定的问题是不是一个容易学习的问题是有意义的,但本质上不重要。测试误差反映了学习方法对未知的测试数据集的预测能力,是学习中的重要概念。显然,给定两种学习方法,测试误差小的方法具有更好的预测能力,是更有效的方法。通常将学习方法对未知数据的预测能力称为泛化能力(generalization ability)。

2.过拟合与模型选择
当假设空间含有不同复杂度(例如,不同的参数个数)的模型时,就要面临模型选择(model selection)的问题。我们希望选择或学习一个合适的模型。如果在假设空间中存在"真"模型,那么所选择的模型应该逼近真模型。具体地,所选择的模型要与真模型的参数个数相同,所选择的模型的参数向量与真模型的参数向量相近。
如果一味地追求提高对训练数据的预测能力,所选模型的复杂度则往往会比真模型更高。这种现象称为过拟合(over-fitting)。过拟合是指学习时选择的模型所包含的参数过多,以至出现这一模型对已知数据预测得很好,但对未知数据预测得很差的现象。可以说模型选择旨在避免过拟合并提高模型的预测能力。
下面,以多项式函数拟合问题为例,说明过拟合与模型选择。这是一个回归问题。
T={(x1,y1),(x2,y2),…,(xN,yN)}T = \lbrace (x_1,y_1),(x_2,y_2),…,(x_N,y_N)\rbraceT={(x1,y1),(x2,y2),,(xN,yN)}
多项式函数拟合的任务是假设给定数据由MMM次多项式函数生成,选择最有可能产生这些数据的MMM次多项式函数,即在MMM次多项式函数中选择一个队已知数据以及未知数据都有很好预测能力的函数。
假设给定如图所示的10个数据点,用000 ~ 999次多项式函数对数据进行拟合。图中画出了需要多项式函数曲线拟合的数据。
M次多项式函数拟合问题的例子
MMM次多项式为
fM(x,w)=w0+w1x+w2x2+…+wMxM=∑j=0Mwjxjf_M(x,w) = w_0 + w_1x + w_2x^2 + … +w_Mx^M = \sum_{j=0}^Mw_jx_jfM(x,w)=w0+w1x+w2x2++wMxM=j=0Mwjxj
式中xxx是单变量输入,w0,w1,…,wMw_0,w_1,…,w_Mw0,w1,,wMM+1M+1M+1个参数。
解决这一问题的方法可以是这样的。首先确定模型的复杂度,即确定多项式的次数;然后在给定的模型复杂度下,按照经验风险最小化的策略,求解参数,即多项式的系数。具体地,求以下经验风险最小化:
L(w)=12∑i=1N(f(xi,w)−yi)2L(w) = \frac 12 \sum_{i=1}^N(f(x_i,w) - y_i)^2L(w)=21i=1N(f(xi,w)yi)2
这时,损失函数为平方损失,系数12\frac 1221是为了计算方便。
这是一个简单的最优化问题。将模型与训练数据代入上式中,有
L(w)=12∑i=1N(∑j=0Mwjxij−yi)2L(w) = \frac 12 \sum_{i=1}^N \left( \sum_{j=0}^Mw_jx^j_i - y_i\right)^2L(w)=21i=1N(j=0Mwjxijyi)2
这一问题可用最小二乘法求得拟合多项式系数的唯一解,记作w0∗,w1∗,…,wM∗w^*_0,w^*_1,…,w^*_Mw0,w1,,wM
上图中给出了M=0,M=1,M=3M = 0,M=1,M=3M=0,M=1,M=3M=9M=9M=9时多项式函数拟合的情况。如果M=0M=0M=0,多项式曲线是一个常数,数据拟合效果很差。如果M=1M=1M=1,多项式曲线是一条直线,数据拟合效果也很差。相反,如果M=9M=9M=9,多项式曲线通过每个数据点,训练误差为0。从对给定训练数据拟合的角度来说,效果是最好的。但是,因为训练数据本身存在噪声,这种拟合曲线对未知数据的预测能力往往并不是最好的,在实际学习中,并不可取。这时过拟合现象就会发生。这就是说,模型选择时,不仅要考虑对已知数据的预测能力,而且还要考虑对未知数据的预测能力。当M=3M=3M=3时,多项式曲线对训练数据拟合效果足够好,模型也比较简单,是一个较好的选择。

在多项式函数拟合中可以看到,随着多项式此书(模型复杂度)的增加,训练误差会减小,直至趋向于0,但是测试误差却不如此,它会随着多项式次数(模型复杂度)的增加而先减小后增大。而最终的目的是使测试误差达到最小。这样,在多项式函数拟合中,就要选择合适的多项式函数,以达到这一目的。这一结论对一般的模型选择也是成立的。
下图中描述了训练误差和测试误差与模型的复杂度之间的关系。当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合,进行最优的模型选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

**训练误差和测试误差与模型复杂度的关系**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值