资源描述:
《机器学习中的Overfitting_计算机软件及应用_IT计算机_专业资料》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、浅谈机器学习中的Overfitting在机器学习中,常会岀现这样一种的现象:一个假设在训练数据上表现很好(in-sampleerror很小,即E加很小),但是在训练数据外的数据集上却变现很^(out-of-sampleerror很人,即很大),这吋,我们称发生了过度拟合(overfitting)o1.Overfitting的原因Overfitting,字面上讲,就是"fittingthedatamorethaniswarranted/ooverfitting自然是我们不愿意看到的,那么是什么原因导致了overfitting呢?如果我们的训练数据中含有
2、noise,那么我们在拟合时,为了追求最小Ein(in-sampleerror),一不小心,就可能用了过于复杂的模型不仅fit了data,还fit了noise,也恰恰是因为overfitTnoise,造成学习出来的函数其实出现了很大的偏差,因此在新的数据上变现不好(£如很人)也就不足为奇了。可见,数据中含有noise是造成overfitting的一个原因。其实,造成overfitting的原因远不只是数据中noise—种,即使数据中没Wnoise,也有可能造成overfittingo例如,我们来看下血一个例了,目标函数是一个50阶多项式,数据如下面左
3、图所示(这里没冇任何noise),我们分别用2阶和10阶的多项式来拟合,拟合结果如下面右图所示。2ndOrder10thOrderEin002910-5Eout01207680Noiselesshigh-ordertarget10阶的多项式的拟合结果竞然比2阶多项式的差,结果多少让人意外。我们想象两个人来解决同一个拟合问题,一个人比较聪明,会10阶的多项式,而令一个人只会2阶的多项式,但是,结果很奇怪,一个笨笨的人最后居然赢了,聪明人好像“聪明反被聪明误”。其实如果你知道VCtheory,就不难理解,用10阶的函数来拟合得到较差£如的概率要比用2阶的
4、函数来拟合得到一个同样差E如的概率要大的多。如果你不知道VCtheory,我们可以来看下面两个曲线,我们称Z为学习曲线,表示了用2阶和10阶多项式拟合吋错误率随测试数据虽的大小的变化悄况(左面的图是用2阶多项式的结果,右面的图是10阶多项式的结果)。我们上面的例子中,数据量不够多,这时候从曲线可以看出,10阶多项式拟合后虽然耳“很小,但是码“很大。但是,我们也应该注意到,当数据足够多时(datasizeN足够人),川10阶两数拟合会比2阶函数好(盅〃小)。」o」LiJp①4U①dxLLI冗2NumberofDataPoints,NM8flr.100.
5、120“NumhArntdatannint<;/v-0.2oOO513・b-x(d-qujou4(L>bo」e—21nu-O0/NuXrofdAtAnoints2%-02NumberofDataPoints,N因此,我们可以得到结论,overfitting跟目标函数的复杂度有关,复杂的目标函数更容易发牛.overfitting,另外,overfitting还跟datasize有关,当数据量较小时,我们应该选取较简单的模型来拟合,选择复杂的模型就容易产生overfitting。于是,我们得到了产生overfitting的三个最主要的原因:Datasiz
6、e,noise和targetcomplexity。上面例子屮,如果我们将10阶多项式的值和2阶多项式的值的差作为overfitting的一种度量,那么ovefiting与Datasize,noise和targetcomplexity的关系可以表示为如下两个图(图中由蓝色边到红色表示overfitting的概率逐渐变大):我们再次回头看刚才的例子,里面真的没有"noise"吗?如果目标*1数太复杂,那么对于每一个模型來说,都没有办法來描述好目标函数,但是每一个模型的假设函数集中一定有一个对冃标函数f(x)的故好的近似h*,他们Z间的差异可以看做是―种n
7、oise,为了与data中的那种randomnoise(stochasticnoise)区分,我们称这种noise为deterministicnoise0右图中,蓝线表示targetfunction,红线表示bestfitto£阴影部分就表示deterministicnoise。Deterministicnoise和stochasticnoise对overfitting的影响非常相似(由上面的两个图形对比可以看出)。2.Overfitting的对策如何尽量避免overfitting呢?方法有很多,有一些简单的技巧,比如,从简单的模型开始尝试;数据清洗
8、等;还有非常重要的两个手段,就是regularization和validation。2.1Regulariz