#透彻理解# 机器学习中,正则化如何防止过拟合

简单来说,正则化就是对损失函数增加额外一种约束的方法,主要用来进行特征选择和改善模型的过拟合现象

常用的正则化方法有L0正则、L1正则、L2正则、随机正则

  • L0正则:在损失函数后增加一个惩罚项,这个惩罚项计算参数的L0范数
  • L1正则:在损失函数后增加一个惩罚项,这个惩罚项计算参数的L1范数
  • L2正则:在损失函数后增加一个惩罚项,这个惩罚项计算参数的L2范数的平方
  • 随机正则:随机让某些权重系数为零,在神经网络中表现为让某些神经元失活

注:正则化中的参数不包括截距(偏置)参数

范数的概念如下:
范数是一种用来度量某个向量空间(或矩阵)中的每个向量的长度或大小的手段,P范数的定义如下:
∥ x ∥ p = ∑ i ∣ x i ∣ p p \left \| \boldsymbol{x} \right \|_p = \sqrt[p]{\sum_{i}\left | x_i \right |^p} xp=pixip

对于一个向量W,0~1范数的概念如下:

  • 0范数,向量中非零元素的个数。
  • 1范数,向量中元素的绝对值之和。
  • 2范数,就是通常意义上的模(平方和开根号)。

1. 使用正则化能够防止模型过拟合

我们首先要理解什么是过拟合,以下图为例:
#透彻理解# 机器学习中,正则化如何防止过拟合_第1张图片

图中的红线为过拟合的曲线,而中间的黑线才是我们先要得到的拟合曲线,而得到为了黑线我们可以使用以下2种方法:

  • 减小拟合函数中的参数个数(简化拟合函数)
  • 限制拟合参数的弯曲程度

方法1

L0正则化使用L0范数来限制参数个数,从而避免模型过拟合;
随机正则化通过随机将某些函数参数置为0,从而简化网络结构,达到避免模型过拟合的目的,常用的方法有:

  • 使用Relu或Gelu激活函数,将某些参数置为0
  • 使用dropout网络结构,使某些神经单元失活,从而使某些参数为0

方法2

要限制曲线的弯曲程度,你要保证拟合函数在较小的区间内,导数的变化相对平稳;对于某一点的倒数来说,自变量可大可小,那么想要最小化导数值就必须使参数的值尽可能的小
而L1和L2正则化正好可以最小化参数向量中每个参数值,进而达到免模型过拟合的目的
但是两者也有不同:

  • L1正则化:容易使某些参数值为0,因为L1正则化可以令某些参数为0,因此L1正则化也有降维的作用
  • L2正则化:只是使所有参数都不同程度的缩小

上述两种方法都能有在参数向量维度较大时,增加参数向量的稀疏性,从而降低结构风险

L2正则化比L1正则化得到的值更加稳定,两组不同的参数计算出的 L1正则化后的损失函数值可能相同

注:
经验风险=损失函数值
结构风险=经验风险+模型复杂度=损失函数值+正则化值

2. 使用正则化进行特征提取

可以通过L0正则化、L1正则化、L2正则化、随机正则化方法,提取参数值较大的系数对应的特征

参考文章:

  1. 正则化的通俗解释_正则化面经整理–from牛客_weixin_39633493的博客-CSDN博客
  2. 机器学习中正则化项L1和L2的直观理解_小平子的专栏-CSDN博客_l1 l2正则化

你可能感兴趣的:(机器学习,深度学习,正则化,过拟合,深度学习,神经网络,范数)