【机器学习入门】避免过拟合的方法之一:正则化

上一篇文章讲了损失函数,我们知道损失函数是用来解释模型在样本实例上的误差的,损失函数的最终值越小,测试值与实际值相差越小,拟合效果越好,但拟合效果好了模型就一定好吗?下面展示两张图片:【机器学习入门】避免过拟合的方法之一:正则化_第1张图片
【机器学习入门】避免过拟合的方法之一:正则化_第2张图片
由两张图片的第三幅图中可以看到,我们训练出的模型完美的拟合了所有数据,但这样会导致一个问题,模型变得非常复杂,并且含有更高次幂,对于样本数据外的数据不具有很好的拟合效果,也就是模型的泛化能力较差,这种问题便是过拟合问题,如何避免过拟合呢?解决方法较多,其中一个便是正则化。

什么是正则化?

正则化就是在损失函数式子后面再加上一个正则化项,来达到缩小参数(也就是下图中的a、b、c、d)的目的,也就是说经过正则化后从第一个式子到第二个式子,或者使得变小,这就是正则化。
【机器学习入门】避免过拟合的方法之一:正则化_第3张图片
常见的正则化:
• 正则化
• 正则化
• 正则化

1.L0正则化

  • 简单介绍:

L0正则化是通过限制向量中非0的元素的个数实现模型优化,用L0来正则化一个参数矩阵W,目标是使其更稀疏,即W中的大部分元素都是0。

  • ”说人话“:

就是说希望参数大部分都是0,就比如
在这里插入图片描述
这个样子。

  • 公式:

很明显,如果通过最小化L0范数作为罚项,就是寻找最优的稀疏特征项。但L0的最小化问题在实际应用中是会出现NP难题(NP-Hard(即非确定性多项式 Non-deterministic polynomial的写))。因此很多情况下,L0优化问题会用L1、L2代替。

2. L1正则化

• 简单介绍:
L1正则化是通过对向量中各个元素绝对值之和进行限制,任何规则化算子,如果在wi=0的地方不可微,并且可以分解为多项式的形式,那么这个规则化算子就可以实现稀疏
• ”说人话“:
L1正则化就是在代价函数后面再加上一个正则化项,并且这个正则化项是每个元素的绝对值之和,比如这样:
【机器学习入门】避免过拟合的方法之一:正则化_第4张图片
此处,C表示加入正则化项之后的式子,表示损失函数,剩下的那个式子便是范数,式子中的λ就是正则项系数,权衡正则项与。
• 示例:
假设现在只有两个权值w1和w2,那么此时L=|w1|+|w2|。
(a)是将w1和w2分别作为x、y坐标,L作为z坐标绘制出来的;
(b)是(a)的俯视图,对于梯度下降法,求解的过程可以画出等值线;
(c)是不同的圆圈表示损失函数在寻找最小值的过程,参数矩阵W按照最小二乘法计算损失函数,不断向最小值的位置迭代,与L1交界的地方就是取得的极值点,这其实是两个曲面相交的地方。
【机器学习入门】避免过拟合的方法之一:正则化_第5张图片

• 学习率α:
正则化前面的系数α,可以控制L图形的大小,α越大,L的图形就越小;而α越小,L的图形越大。同样地,损失函数的参数越多,图中的圆圈就越大。
可以看到α起到平衡两者的作用,所以α也称为学习率。

3. L2正则化

• 简单介绍:
L2正则化是指向量各元素求平方和然后求平方根,用模最小化来确保的每个元素都很小,都接近于0,但与L1范数不同,它不会等于0,而是接近于0
• ”说人话“:
L2正则化就是在代价函数后面再加上一个正则化项,并且这个正则化项是每个元素的平方之和,比如这样:
图片来自网络,侵权联系删除
公式中所出现的系数1/2,是为了后续求导的方便,当求导时会产生一个系数2,与1/2相乘刚好化为整数。
• 示例:
(a)数据只有2个维度时,它就是一个抛物面;
(b)俯视图如图,就是一个圆; 【机器学习入门】避免过拟合的方法之一:正则化_第6张图片 此时,图(c)中的交点也就是所取得的系数的极值点。

4.L1和L2对比

在L1的示例当中,因为L函数有很多“突出的角”(二维情况下有4个),损失函数与这些角接触的概率会远大于与L的其他部位的接触。而在这些角上,会有很多权值等于0,这就是L1正则化可以产生稀疏模型,进而可以限制模型中参数的数量,降低模型复杂度,防止过拟合的原因。

在L2的示例当中,L函数的俯视图由方形变为了圆形,被磨去了棱角,与方形相比,损失函数与L相交时使或等于零的概率小了许多。

这就是L2正则化不具有稀疏性的原因。

总结:
• 与L2相比,L1做得更彻底、更稀疏;
• L2正则化通过将目标函数变为λ强凸函数,可以有效地加快梯度下降的收敛速度;
•L2准确度高,但是训练时间长;
• L1正则化可以做一定的特征选择,适合大量数据,在样本不均匀时可以调整损失函数中的权重。

参考 :赵卫东 董亮《机器学习》
吴恩达《机器学习》课程

你可能感兴趣的:(机器学习入门,人工智能,算法)