1.4 模型评估与模型选择
1 训练误差与测试误差
统计学习的目的是使学习到的模型不仅对已知数据而且对未知数据都能有很好的预测能力。不同的学习方法会给出不同的模型。当损失函数给定时,基于损失函数的模型的训练误差和模型的测试误差就自然称为学习方法评估的标准。注意,统计学习方法具体采用的损失函数未必是评估时使用的损失函数。当然,让两者一致是比较理想的。
假设学习到的模型是
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
i
,
f
^
(
x
i
)
)
R_{emp}(\hat{f})=\frac{1}{N}\sum_{i=1}^N{L(y_i,\hat{f}(x_i))}
Remp(f^)=N1i=1∑NL(yi,f^(xi))
其中
N
N
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
)
)
\mathscr{e}_{test}=\frac{1}{N'}\sum_{i=1}^N{L(y_i,\hat{f}(x_i))}
etest=N′1i=1∑NL(yi,f^(xi))
其中
N
′
N'
N′是测试样本容量。
显然,训练误差的大小对给定的问题是不是一个容易学习的问题有意义,但本质上不重要,测试误差则反映了学习方法对未知数据的预测能力,通常称之为泛化能力。
2 过拟合与模型选择
当假设空间具有不同复杂度时,就要面临模型选择的问题,我们希望选择或学习一个合适的模型。不仅体现在参数的值上,而且还体现在参数的个数上。如果一味的追求提高对训练数据的预测能力,所选模型的复杂度往往会高于理想模型。这种现象称为过拟合,是指由于模型参数过多,以至于出现训练集上预测效果很好,而测试集上表现很差的现象。
当模型复杂度逐渐增大时,训练误差会逐渐减小并趋向于0,而测试误差则会先减小,达到最小之后又增大。下面介绍两种解决过拟合问题的方法。
1.5 正则化与交叉验证
1 正则化
正如1.3.2中所说,正则化与结构风险最小化原则是等价的,因此在这里不再重复。详情参考1.3.2。
2 交叉验证
如果给定的样本数据充足,进行模型选择的一种简单方法是随机地将数据集切分为三部分,分别为训练集,验证集和测试集。训练集用来训练模型,验证机用于选择模型,而测试机最终对方法进行评估。然而在许多实际应用中,数据是不充足的。为了选择更好的模型,可以采用交叉验证地方法。其基本思想是重复的使用数据。把给定数据切分为训练集和测试集在此基础上反复训练。
- 简单交叉验证
简单交叉验证方法是:首先随机的将已知数据分为两部分,分别作为训练和测试数据。然后用训练集在不同参数条件下进行模型训练,从而得到不同的模型。在测试集上评价各个模型地测试误差,选出测试误差最小地模型。 - S折交叉验证
这是应用最多地交叉验证方法:首先随机地将数据切分为S个各不相交地大小相同地子集;然后利用S-1个子集的数据训练模型,余下的子集测试模型;将这一过程针对S中选择重复进行;最后选出S次评测中平均测试误差最小的模型。 - 留一交叉验证
S折交叉认证的特殊情况S=N(样本量),称为留一交叉验证,往往在数据缺乏的情况下使用。
1.6 泛化能力
1 泛化误差
学习方法的泛化能力是指由该方法学习到的模型对未知数据的预测能力,是学习方法十分重要的性质。现实中采用最多的方法是通过测试误差来评价学习方法的泛化能力。但由于这种评价是依赖于测试数据集的,由于测试数据集的有限性,由此得到的结果是不可靠的。因此统计学习理论试图从理论上对学习方法的泛化能力进行分析。
首先给出繁华误差的定义。如果学到的模型是
f
^
\hat{f}
f^j,那么用这个模型对未知数据预测的误差即为泛化误差
R
e
x
p
(
f
^
)
=
E
P
[
L
(
Y
,
f
^
(
X
)
)
]
=
∫
X
×
Y
L
(
y
,
f
^
(
x
)
)
P
(
x
,
y
)
d
x
d
y
R_{exp}(\hat{f})=E_P[L(Y,\hat{f}(X))]=\int_{\mathscr{X}\times\mathscr{Y}}{L(y,\hat{f}(x))P(x,y)dxdy}
Rexp(f^)=EP[L(Y,f^(X))]=∫X×YL(y,f^(x))P(x,y)dxdy
泛化误差反映了学习方法的泛化能力,实际上,泛化误差其实就是所学习到模型的期望风险。
2 泛化误差上界
学习方法的泛化能力分析往往是通过研究泛化误差的概率上界来进行的。泛化误差上界通常具有如下性质:它是样本容量的函数,当样本容量增加时,泛化上界趋于0;它是假设空间容量的函数,假设空间越大,模型就越难学,泛化误差上界就越大。关于泛化误差上界的具体形式与数学推导请参看原文。
1.7 生成模型与判别模型
监督学习的任务就是学习一个模型,应用这个模型对给定的输入预测相应的输出。这个模型的一般形式为决策函数:
Y
=
f
(
X
)
Y=f(X)
Y=f(X)或者条件概率分布:
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)监督学习方法可以分为生成方法和判别方法,所学到的模型分别称为生成模型和判别模型。
生成方法由数据学习联合概率分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y),然后求出条件概率分布
P
(
X
∣
Y
)
P(X|Y)
P(X∣Y)作为预测用的模型,即:
P
(
Y
∣
X
)
=
P
(
X
,
Y
)
P
(
X
)
P(Y|X)=\frac{P(X,Y)}{P(X)}
P(Y∣X)=P(X)P(X,Y)这样的方法之所以称为生成方法,是因为模型表示了
X
X
X与
Y
Y
Y之间的生成关系。典型的生成模型有:朴素贝叶斯法和隐马尔可夫模型。
判别方法由数据直接学习决策函数
f
(
X
)
f(X)
f(X)或者条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)作为预测模型。典型的判别模型包括:
k
k
k近邻法、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、支持向量机、提升方法和随机场方法。以上提到的方法都会在后续章节慢慢展开。
生成方法和判别方法各有优劣,适合于不同条件下的学习问题。
生成方法的特点是:可以还原出联合概率分布;具有更快的收敛速度;在有隐变量时仍然可以学习。
判别方法的特点是:直接针对条件概率或决策函数,准确率高;可以对数据进行抽象,简化学习问题。