在机器学习中为了避免过拟合,我们往往会引入正则化,正则化的原因是对模型的结构复杂度加一个惩罚,以便选择经验风险与模型复杂度同时较小的模型。
正则化项有L0,L1,L2范数。下面从数学的定义来探讨这几个范数的不同。
L0范数:表示向量中所有非零元素的个数,利用这个特性可以寻找最少最优的稀疏特征项。不过由于求解L0范数的最小化问题是NP难问题,所以在实际应用中一般使用L1,L2范数。
L1范数:所有权重绝对值求和 。L1=|w1|+|w2|+……|wn|
L2范数:各个权重平方的和在开根号。 L2=(w1^2+w2^2+……wn^2)^1/2
由范数定义可知:L1对w求导是正负1,L2对w求导是w。即在使用梯度下降更新w的过程中,L1范数每次都更新一个常数,这样经过若干次迭代后权值可能减少到0。而使用L2范数更新公式时,每次都减少上一次迭代值的1/2,虽然权值不断减少,但是因为每次都减少上一次的1/2,因此虽然会快速收敛到一个很小的值但是不会收敛到0。
因此,L1范数可以得到稀疏的权值;L2范数可以得到平滑的权值。