机器学习中的正则化
以多核支持向量机说起
以上函数为一个基于多核的支持向量机的目标函数 d是多核函数的参数 r(d)为正则项。
根据今天深度机器学习课程所介绍,正则项的目的是尽量减小参数的数值大小,从而避免过拟合,即:
以上目标函数可以直观表述为:
其中,可以通过多项式近似法则得到:
下面这张图展示了不同的拟合效果模型的分类能力
正则化的思考过程
模型对该数据的拟合能力越强,一定程度上反映了模型对特征的提取程度,图3分类全部是正确的,但是明显出现了过拟合,其实用性很低。同时,学习的时候需要更多的参数项,反映在f(x)多项式上就是N特别的大,因为需要提供的特征多,或者提供的测试用例中我们使用到的特征非常多(一般而言,机器学习的过程中,很多特征是可以被丢弃掉的)。
为此,我们要思考如何才能规避这种风险:
- 从【过拟合】出现的特征去判别
- 从f(x)的形式去观察过拟合的特征
- 可以看出,过拟合的一定原因是所拟合的特征过多,即
W
=
(
w
0
,
w
1
,
w
2
,
w
3
,
.
.
.
w
N
)
W=(w_0,w_1,w_2,w_3,...w_N)
W=(w0,w1,w2,w3,...wN)中项数过多
为避免过拟合的出现,就要让N最小化,保证良好拟合的同时避免过拟合。
根据范数概念:
- 0范数,向量中非零元素的个数
- 1范数,绝对值之和
- 2范数,模
可以发现 W W W的0范数 ∣ W ∣ 0 |W|_0 ∣W∣0 就反映了向量 W W W中的项的个数。
因此,为了防止过拟合,除了需要使得经验风险 R e m p ( f ) Remp(f) Remp(f)最小,还需要让正则化项 r ( d ) = ∣ W ∣ 0 r(d)=|W|_0 r(d)=∣W∣0最小,所以让二者相加就可以同时求解满足二者最小化的值,
对L0范数的优化
0范数很难求解,是NP hard问题,因此人们转而求解1范数来实现上面的过程:
同时,L2范数是指向量各元素的平方和然后求平方根。让L2范数的正则项||W||2最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0,这里是有很大的区别;所以大家比起1范数,更钟爱2范数。
所以在一般的数据中,我们会看到
r
(
d
)
=
λ
/
2
∣
∣
∣
W
∣
∣
2
r(d)=\lambda/2|||W||^2
r(d)=λ/2∣∣∣W∣∣2或者
r
(
d
)
=
λ
∣
∣
∣
W
∣
∣
1
r(d)=\lambda|||W||_1
r(d)=λ∣∣∣W∣∣1
另外机器学习中很常见的一种结构如下:
也是利用了特征W的2范数最小化约束进行正则化优化。