机器学习中对于正则化的理解

Promise yourself to be so strong that nothing can disturb your peace of mind.

对自己承诺:我要强大到任何事情都无法破坏我内心的平和。

机器学习中对于正则化的理解

在机器学习中,大多数算法都提及对向量进行正则化处理,搜集了一些网上的资料并在此写下自己对正则化的理解。

正则化(regularization),是指在线性代数理论中,不适定问题通常是由一组线性代数方程定义的,而且这组方程组通常来源于有着很大的条件数的不适定反问题。大条件数意味着舍入误差或其它误差会严重地影响问题的结果。——百度

为了引入正则化的概念,先来了解一下机器学习中分类存在的问题。如下图所示:
分类拟合图片

1.左侧图片称之为欠拟合,样本分类后具有较大的误差且泛化性不强。
2.中间图片称之为正拟合,能够正确的对样本进行分类并且具有较好的泛化性。
3.右侧图片称之为过拟合,这种情况是我们不希望出现的状况,它的分类只是适合于自己这个测试用例,对需要分类的真实样本而言,实用性可想而知的低

由于函数拟合过程中存在过拟合的现象,则需要方法来避免这种现象。避免过拟合现象有多种方法,但是此处只介绍正则化方法。

正则化的目的:防止过拟合。
正则化的本质:约束或者限制要优化的参数。

对于分类模型,需要最小化误差:

J(w)=i=0n(yiwTxi)2s.t.||W||2im

根据拉格朗日乘子法上式可以变化为如下形式:
J(w)=i=0n(yiwTxi)2+λ(||w||22m)

其中 λ 为正则化因子,如果 λ 变大,表示目标函数所占比重变小,正则化项起较大的作用,对参数的限制能力增强,使参数的变化幅度较小,因此可以避免过拟合。

考虑更深入层面,可以令 f(xi)=wTx ,那么 f(xi)=w0x0+w1x1+...+wnxn ,当发生过拟合时,f(x)所涉及到的特征项很多,如 w0,w1,...,wN ,为了防止过拟合,首先需要控制N的数量,即让W向量中项的个数最小化。其中为什么考虑W向量而不是X向量,因为输入向量x的维度是不确定的,因此只能通过样本学习W的值从而进行拟合。

为了使W向量中的项的个数最小化,引入范数的概念:

0范数:向量中非零元素的个数。
1范数:向量中元素的绝对值之和。
2范数:通常意义上的模。

为了使W向量最小化,与0范数的概念类似,向量中的0元素对应样本中的项系数为0,不需要去考虑,说明 xi 项没有任何的权重。因此正则化化项中具有范数形式。


r(d)=|W|0
Remp(f)=12WTW+i(yif(xi))2

为了防止过拟合,需要 r(d)Remp(f) 取最小值,为了同时满足两项都最小化,可以求解使得 r(d)+Remp(f) 最小,因此同时限制了两者的取值,使得建立的模型不会产生过拟合现象。

在机器学习资料中, Remp(f) 叫做经验风险,上面我们最小化的过程叫做正则化,所以顺其自然的管r(d)叫做正则化项,然后管 Remp(f)+r(d) 叫做结构风险,所以顺其自然的正则化就是我们将结构风险最小化的过程,它们是等价的。

由于0范数难以求解,是一个NP难问题,进而推导出在一定的条件下0范数和1范数能够等价,1范数和0范数可以实现稀疏,1因具有比L0更好的优化求解特性而被广泛应用。后又引入2范数,L2范数是指向量各元素的平方和然后求平方根。我们让L2范数的正则项||W||2最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0,这里是有很大的区别的哦;所以大家比起1范数,更钟爱2范数。所以我们就看到书籍中,一来就是, r(d)=λ2W2 或者 r(d)=λW1 这种结构了,然后在机器学习当中还能看到下面的结构:

miniN(yWTx)+λ2W22λ>=0

以上是本人对于此内容的理解,敬请广大读者随时不吝批评指正,感谢。