模型评估与模型选择
当损失函数给定时,基于损失函数的模型的训练误差(training error)和模型的测试误差(test error)就自然成为学习方法评估的标准.
训练误差的大小,对判定给定的问题是不是一个容易学习的问题是有意义的,但本质上不重要。测试误差反映了学习方法对未知的测试数据集的预测能力,是学习中的重要概念,显然,给定两种学习方法,测试误差小的方法具有更好的预测能力,是更有效的方法。
泛化能力(generalization ability): 学习方法对未知数据的预测能力
一、 训练误差与测试误差
假设学习到的模型是 Y = f ^ ( X ) Y=\hat f(X) Y=f^?(X),训练误差是模型 Y = f ^ ( X ) Y=\hat f(X) Y=f^?(X)关于训练数据集的平均损失:
R e m p ( f ^ ) = 1 N ∑ i = 1 N L ( y , f ^ ( x i ) ) R_{emp}(\hat f)=\frac{1}{N}\sum_{i=1}^NL(y,\hat f(x_i)) Remp?(f^?)=N1?i=1∑N?L(y,f^?(xi?))
其中N是训练样本容量。
测试误差是模型 Y = f ^ ( X ) Y=\hat f(X) Y=f^?(X)关于测试数据集的平均损失:
e t e s t = 1 N ′ ∑ i = 1 N ′ L ( y i , f ^ ( x i ) ) e_{test}=\frac{1}{N'}\sum_{i=1}^{N'}L(y_i,\hat f(x_i)) etest?=N′1?i=1∑N′?L(yi?,f^?(xi?))
其中 N ′ N' N′是测试样本容量。
例如,当损失函数是0-1损失时,测试误差就变成了常见的测试数据集上的误差率(error rate).
e t e s t = 1 N ′ ∑ i = 1 N ′ I ( y 1 ≠ f ^ ( x i ) ) e_{test} = \frac{1}{N'}\sum_{i=1}^{N'}I(y_1\neq \hat f(x_i)) etest?=N′1?i=1∑N′?I(y1???=f^?(xi?))
这里 I I I是指示函数(indicator function),即 y ≠ f ^ ( x ) y \neq \hat f(x) y??=f^?(x)时为1,否则为0.
相应的,常见的测试数据集上的准确率(accuracy)为
r t e s t = 1 N ′ ∑ i = 1 N ′ I ( y i = f ^ ( x i ) ) r_{test} = \frac{1}{N'}\sum_{i=1}^{N'}I(y_i=\hat f(x_i)) rtest?=N′1?i=1∑N′?I(yi?=f^?(xi?))
显然,
r t e s t + e t e s t = 1 r_{test}+e_{test}=1 rtest?+etest?=1
二、 过拟合与模型选择
-
当假设空间含有不同复杂度(例如,不同的参数个数)的模型时,就要面临模型选择(model selection)问题。如果在假设空间中存在”真“模型,那么所选择的模型应该逼近真模型。具体地,所选择的模型要与真模型的参数个数相同,所选择的模型的参数向量与真模型的参数向量相近。
-
过拟合(over-fitting):指学习时选择的模型所包含的参数很多,以致于出现这一模型对已知数据预测得很好,但对未知数据预测的很差的现象。
-
模型选择的目的:避免过拟合并提高模型的预测能力
-
以多项式函数拟合问题为例,说明过拟合与模型选择。这是一个回归问题。
假设给定一个训练集:
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={ (x1?,y1?),(x2?,y2?),...,(xN?,yN?)}
多项式函数拟合的任务是假设给定数据由M次多项式函数生成,选择一个对已知数据以及未知数据都有很好预测能力的M次多项式函数。假设给定10个数据点,用0~9次多项式函数对数据进行拟合。
设M次多项式为
f M ( x , w ) = w 0 + w 1 x + w 2 x 2 + ? ? ? + w M x M = ∑ j = 0 M w j x j f_M(x,w)=w_0+w_1x+w_2x^2+···+w_Mx^M=\sum_{j=0}^Mw_jx^j fM?(x,w)=w0?+w1?x+w2?x2+???+wM?xM=j=0∑M?wj?xj
式中x是单变量输入, w 0 , w 1 , . . . , w M w_0,w_1,...,w_M w0?,w1?,...,wM?是M+1各参数。首先确定模型的复杂度,即确定多项式的次数;然后再给定的模型复杂度下,按照经验风险最小化的策略,求解参数,即多项式的系数。
求以下经验风险最小化:
L ( w ) = 1 2 ∑ i = 1 N ( f ( x , w ) ? y i ) 2 L(w)=\frac{1}{2}\sum_{i=1}^N(f(x,w)-y_i)^2 L(w)=21?i=1∑N?(f(x,w)?yi?)2
这时,损失函数为平方损失,系数 1 2 \frac{1}{2} 21?是为了计算方便。这是最优化问题,将模型与训练数据代入,有
L ( w ) = 1 2 ∑ i = 1 N ( ∑ j = 0 M w j x i j ? y i ) 2 L(w)=\frac{1}{2}\sum_{i=1}^N(\sum_{j=0}^Mw_jx_i^j-y_i)^2 L(w)=21?i=1∑N?(j=0∑M?wj?xij??yi?)2
对 w j w_j wj?求偏导数并令其为0,可得
w j = ∑ i = 1 N x i y i ∑ i = 1 N x i j + 1 , j = 0 , 1 , 2 , . . . , M w_j=\frac{\sum_{i=1}^Nx_iy_i}{\sum_{i=1}^Nx_i^{j+1}}, \quad j=0,1,2,...,M wj?=∑i=1N?xij+1?∑i=1N?xi?yi??,j=0,1,2,...,M -
训练误差和测试误差与模型复杂度之间的关系