正则化的定义:“对学习算法的修改——旨在减少泛化误差而不是训练误差。”
直观理解:正则化就是用来减少模型过拟合的一种策略。
接下来介绍的是正则化最常见的方法之一——对模型的权重进行 和 正则化。
所谓的 和 正则化,其实就是利用了 和 范数,来规范模型参数(权重)的一种方法。
范数,我们可以理解为就是对空间中两点的距离这个概念进行了扩充。例如权重,它是一个高维向量,也可以理解为是空间中的一个点,它到原点的距离,如果是曼哈顿距离的话就是 范数,如果是欧氏距离的话就是 范数。
- 范数:向量中非零元素的个数。
- 范数: (曼哈顿距离)
- 范数: (欧氏距离)
由于真正带来过拟合问题的是权重,为了简单起见,在下面的讨论中,我们只重点考虑。
1. L2 参数正则化
参数正则化通常被称为权重衰减,它通过向目标函数添加一个 正则项 ,使权重更加接近原点。
那么问题来了: 参数正则化为什么被称为权重衰减呢?他是怎么使权重得到衰减的呢?
损失函数:
权重更新:
对于损失函数 ,我们想要找到一组参数 来 minimize 。
为了简单起见,我们只考虑权重 ,这样模型的目标函数就是:
其中, 被称为衰减率,是权衡范数惩罚项 和 标准目标函数 相对贡献的超参数。将 设置为0表示没有正则化; 越大,对应正则化惩罚越大。在求解过程中,我们通过缩放惩罚项 的超参数 来控制 权重衰减的强度。
与目标函数对应的梯度为:
使用单步梯度下降来更新权重:
换种写法就是:
我们可以看到,加入权重衰减后会引起学习规则的修改,在每次执行梯度更新前都会先收缩权重向量。
这样,对于权重衰减,我们可以直观地理解为:权重衰减就是增加了一些惩罚项去惩罚权重,每一次学习都惩罚一点,让权重不至于取值太大。
前面介绍的是 正则化在单步梯度下降中对权重的影响,那么它在训练的整体过程会产生什么样的影响呢?
首先先要明确一下我们的目标,我们的目标是想要控制一下参数,使参数的取值不要太大。按照这种思路,我们可以给 划定一个可行域,让 这个区域内进行取值。
可行域: (即 在空间中对应的点到原点的距离是 的。)
接下来我们从拉格朗日乘数法的角度来理解 正则化在整体训练过程中的影响。
目标函数我们可以写成:
文章出处登录后可见!