L1和L2正则化

1. 什么是L1正则化

L1正则化就是在对数似然函数后面加上模型参数的绝对值和:

其中$\lambda$调整正则项影响因子,$w_i$是模型参数。L1正则化可以看作是对参数加上拉普拉斯先验分布,然后求最大似然转换成求最大后验。

2. 什么是L2正则化

L2正则项就是在对数似然函数后面加上模型参数的平方和:

L2正则项可以看作是对参数加上高斯分布先验,然后求最大后验。

3. L1和L2正则化作用的解释

无论是L1正则化还是L2正则化,使用的先验分布都是在0处取得最大值并向两边对称递减,即认为参数值为0的先验值最大,所以加上这个先验分布后,最大后验对应的参数值相比最大似然的参数值会往0点处靠近。L1正则项和L2正则项对应的分布,除了有均值的参数,还有方差的参数,这个参数由正则项的系数$\lambda$调整决定。L1正则可以起到特征选择的效果,使得参数向量变得稀疏,即会出现一些参数取值变为0,减小有值参数的数量,从而起到降低模型复杂度的效果。L2正则可以使得参数值往0靠近但不会使原来非0的参数值变为0,通过降低参数值,从而起到降低模型复杂度的效果,L2正则虽然不能起到特征选择的效果,L2正则注重所有参数的共同效果。

为什么L1正则可以使参数向量变得稀疏,而L2正则则只能使参数值往0靠近。我们可以把最大后验看作是最大似然加上正则项,则最大后验的梯度等于最大似然的梯度加上正则项的梯度。首先,对于L1正则的拉普拉斯分布,相比起L2正则的高斯分布,在0点处更尖锐,即在0点处的取值比在0点领域处的取值大较多,而高斯分布在0点处的取值比在0点领域处的取值大相对较少,所以L1正则比L2正则更容易选到0点。其次,从梯度的角度,拉普拉斯分布在0点领域处的梯度不是连续的,而高斯分布的梯度是连续的,所以L1正则的最大后验的梯度在0点领域除的梯度也不是连续的,而L2正则的最大后验的梯度是连续的。对于L2正则,如果没有加上正则项之前0点处的梯度不等于0,则加上高斯分布先验的梯度也不会等于0,因为0均值的高斯分布在0点处的梯度等于0。对于L1正则,如果原来最大似然函数是凸函数且只有一个零点,只要原来在零点处的梯度绝对值小于等于$\lambda$,就可以使得参数值在0点处取值达到最优,这就是L1正则容易使参数值取0点的原因。当原来在0点处的梯度绝对值小于等于$\lambda$,0点左边的梯度都需要减去$\lambda$,右边梯度都需要加上$\lambda$,就形成0点左边的梯度小于0而右边梯度大于0的情况,这时候0点就是一个极小值点。