秋招知识点记录(一)——L1 正则与L2正则
写在前面
由于每次面试前都要提前百度一些经典的知识点复习,索性搞个blog记录一下百度到的东西,以后查也方便。顺便希望一下秋招早点上岸,球球了!
正文
L1正则与L2正则在一定程度上都可以作为正则项防止机器学习模型的过拟合。L1与L2正则的名字是由L1-norm与L2-norm而来,计算方法大致相同:
- L1正则计算的是各参数的绝对值
- L2正则计算的是各参数的平方和
具体公式如下图所示:
二者的不同主要包括以下几点: - L2计算更加方便,L1在非稀疏向量上的计算效率很低
- L1的特点之一是输出稀疏,会把不重要的特征置为0,l2则不会,这是由于L1与L2的导数性质决定的(如下图所示)
于是会发现,在梯度更新时,不管 L1 的大小是多少(只要不是0)梯度都是1或者-1,所以每次更新时,它都是稳步向0前进,而看 L2 的话,就会发现它的梯度会越靠近0,就变得越小。也就是说加了 L1 正则的话基本上经过一定步数后很可能变为0,而 L2 几乎不可能,因为在值小的时候其梯度也会变小。于是也就造成了 L1 输出稀疏的特性。同时也可以看出L2对于大数的惩罚更高,更敏感。
所以,l1正则由于其性质,常用于产生系数模型,进行特征选择;l2正则则可以防止过拟合(l1也可以在一定程度上防止过拟合)
Reference:
【1】https://www.zhihu.com/question/26485586,《l1正则与l2正则的特点是什么,各有什么优势?》,作者:Andy Yang