台湾国立大学(林轩田)《机器学习基石》(第14讲)Regularization
课程地址:https://class.coursera.org/ntumlone-001/class
课件讲义:http://download.****.net/download/malele4th/10208897
注明:文中图片来自《机器学习基石》课程和部分博客
建议:建议读者学习林轩田老师原课程,本文对原课程有自己的改动和理解
目录
Lecture 14 Regularization
上节课我们介绍了过拟合发生的原因:excessive power, stochastic/deterministic noise 和limited data。并介绍了解决overfitting的简单方法。本节课,我们将介绍解决overfitting的另一种非常重要的方法:Regularization规则化。
1 Regularized Hypothesis Set
先来看一个典型的overfitting的例子:
如图所示,在数据量不够大的情况下,如果我们使用一个高阶多项式(图中红色曲线所示),例如10阶,对目标函数(蓝色曲线)进行拟合。拟合曲线波动很大,虽然Ein很小,但是Eout很大,也就造成了过拟合现象。
那么如何对过拟合现象进行修正,使hypothesis更接近于target function呢?一种方法就是regularized fit。
这种方法得到的红色fit曲线,要比overfit的红色曲线平滑很多,更接近与目标函数,它的阶数要更低一些。那么问题就变成了我们要把高阶(10阶)的hypothesis sets转换为低阶(2阶)的hypothesis sets。通过下图我们发现,不同阶数的hypothesis存在如下包含关系:
我们发现10阶多项式hypothesis sets里包含了2阶多项式hypothesis sets的所有项,那么在H10中加入一些限定条件,使它近似为H2即可。这种函数近似曾被称之为不适定问题(ill-posed problem)。
2 Weight Decay Regularization
现在,针对H(c),即加上限定条件,我们的问题变成:
如果λ不为零,对应于加上了限定条件,若λ等于零,则对应于没有任何限定条件,问题转换成之前的最小化Ein(w)。
下面给出一个曲线拟合的例子,λ取不同的值时,得到的曲线也不相同:
从图中可以看出,当λ=0时,发生了过拟合;当λ=0.0001时,拟合的效果很好;当λ=0.01和λ=1时,发生了欠拟合。我们可以把λ看成是一种penality,即对hypothesis复杂度的惩罚,λ越大,w就越小,对应于C值越小,即这种惩罚越大,拟合曲线就会越平滑,高阶项就会削弱,容易发生欠拟合。λ一般取比较小的值就能达到良好的拟合效果,过大过小都有问题,但究竟取什么值,要根据具体训练数据和模型进行分析与调试。
事实上,这种regularization不仅可以用在多项式的hypothesis中,还可以应用在logistic regression等其他hypothesis中,都可以达到防止过拟合的效果。
关于Legendre Polynomials的概念这里不详细介绍,有兴趣的童鞋可以看一下维基百科。
Augmented Error表达式如下:
当λ=0时,所有的w都给予考虑,容易发生过拟合。当λ>0且越来越大时,很多w将被舍弃,拟合曲线越来越平滑,容易发生欠拟合。
3 General Regularizers
那么通用的Regularizers,即Ω(w),应该选择什么样的形式呢?一般地,我们会朝着目标函数的方向进行选取。有三种方式:
target-dependent
plausible
friendly
接下来,介绍两种Regularizer:L2和L1。L2 Regularizer一般比较通用,其形式如下:
L1计算的不是w的平方和,而是绝对值和,即长度和,也是凸函数。已知
以上两种noise的情况下,都是noise越大,相应的λ也就越大。这也很好理解,如果在开车的情况下,路况也不好,即noise越多,那么就越会踩刹车,这里踩刹车指的就是regularization。但是大多数情况下,noise是不可知的,这种情况下如何选择λ?这部分内容,我们下节课将会讨论。
4 总结
本节课主要介绍了Regularization。首先,原来的hypothesis set加上一些限制条件,就成了Regularized Hypothesis Set。加上限制条件之后,我们就可以把问题转化为