时间:2014.06.26
地点:基地
--------------------------------------------------------------------------------------
一、训练误差和测试误差
机器学习或者说统计学习的目的就是使学习到的模型不仅对已知数据而且对未知数据都都很好的预测能力。不同的学习方法会得出不同的模型。在评判学习方法的好坏时,常用的是:
1.基于损失函数的模型的训练误差 2。模型的测试误差
假设学习到的模型为:
那么训练误差即是模型 关于训练数据集的平均损失:
N为训练样本的容量
测试误差是模型 关于测试数据集的平均损失:
当损失函数是0-1损失时,测试误差就是常见的测试数据集上的误差率了:
--------------------------------------------------------------------(1)
I 在这里是指示函数,即括号部分取不等于时为1,否则为0(指示函数:括号中条件为真时取1,为假时取0)
对应的,测试数据集上的准确率为:
--------------------------------------------------------------------(2)
x显然有:准确率+误差率=1,即 (1)式+(2)式=1
训练误差的大小,对判断给定问题是不是容易学习的问题是有意义的,但本质上并不太重要,重要的是测试误差反映了学习方法对未知的测试数据集的预测能力,给定两种学习方法,测试误差小的方法具有更好的预测能力,是更为有效的方法。通常将学习方法对未知数据的预测能力叫做泛化能力。
--------------------------------------------------------------------------------------
二、过拟合与模型选择
我们知道,模型的假设空间中有很多候选模型,这些模型不同复杂度,假设这个模型空间中存在一个真模型,即理想模型,那么,我们希望是选择和学习到一个尽量逼近这个理想模型的模型,这将表现在:学习到的模型与理想模型参数个数相同,所学习到的模型的参数向量与理想模型参数向量相近。但其中有个问题,因为我们是用有限的训练数据来学习模型,若是一味的追求模型对训练数据的表达能力,所得模型将很有可能比理想真模型的复杂度还要高,我们称之为过拟合。即我们学习到的模型所包含的参数过多,对已知的数据表达得过分的好,却对未知的数据预测得很差的现象。模型的选择即是旨在避免过拟合并提高模型的预测能力。
举个例来说:假设给定一个训练数据集:
即给定一组输入——输出观测值,多项式函数拟合的任务就是假设给定数据由M次多项式函数生成,选择最有可能产生这些数据的M次多项式函数。即在M次多项式函数中(对应模型假设空间)选择一个对已知数据以及未知数据都有很好预测能力的函数。下面来求解这个函数:
设M次多项式为:
式中x是单变量输入,w是M+1个参数构成的向量。
我们首先可确定模型的复杂度,即确定多项式次数,然后在给定的模型复杂度下,按经验风险最小化策略,求解参数(多项式系数),在这里我们求经验风险最小化,即:
这里的系数1/2是为了计算方便,将模型与训练数据代入得:
然后针对w求偏导,即可求得拟合多项式系数。
我们也容易知道当M=0时曲线时一条常数直线,数据拟合效果很差,M=1时曲线是一条斜直线拟合效果也很差,当M很大时,拟合曲线会通过每个训练数据点,训练误差为0,对于训练数据来说这是最好的,但这种太过好的效果反而是有问题的,因为数据本身就存在噪声,不是理想数据,这种训练误差为0的倒不正常了,再有是这种拟合曲线对未知数据的预测能力不好,当M足够差不多时,曲线对训练数据拟合效果可能已经足够好,此时模型也简单,这便是一种较好的选择。
总得来说,通过上面分析,我们可发现,随着M的增大,模型复杂度也增加,训练误差减小趋向于0,但测试误差随着多项式次数的增加先减小后增大,而我们学习的目的就是为了使得模型的测试误差最小。所以M的选择要防止过拟合的出现。
机器学习之模型评估与模型选择(学习笔记)