而当 p = 0 p=0 p=0时,因其不再满足三角不等性,严格的说此时 p p p已不算是范数了,但很多人仍然称之为L0范数。用公式表示如下: ∣ ∣ x ∣ ∣ 0 = # ( i ) w i t h x i ≠ 0 ||x||_0= \# (i)\ with\ x_i≠0 ∣∣x∣∣0=#(i)withxi=0 L0范数表示向量中非零元素的个数。正是L0范数的这个属性,使得其非常适合机器学习中、特征选择的应用。我们可以通过最小化L0范数,来寻找最少最优的稀疏特征项。
当 p = 1 p=1 p=1时,我们称之为taxicab Norm,也叫Manhattan Norm。其来源是曼哈顿的出租车司机在四四方方的曼哈顿街道中从一点到另一点所需要走过的距离。也即我们所要讨论的L1范数。
根据LP范数的定义我们可以很轻松的得到L1范数的数学形式: ∣ ∣ x ∣ ∣ 1 = ∑ i n ∣ x i ∣ ||x||_1=\sum^n_i|x_i| ∣∣x∣∣1=i∑n∣xi∣ 因此,L1范数就是向量各元素的绝对值之和,也被称为是"稀疏规则算子"(Lasso regularization)。那么问题来了,为什么我们希望稀疏化?稀疏化有很多好处,最直接的两个:特征选择、可解释性。
机器学习的任务就是要通过一些方法(比如梯度下降)求出损失函数的最小值。当我们在原始损失函数 J 0 J_0 J0后添加L1正则化项时,相当于对 J 0 J_0 J0做了一个约束。令 L = α ∑ w ∣ w ∣ L=\alpha\sum_w|w| L=α∑w∣w∣,则 J = J 0 + L J=J_0+L J=J0+L,此时我们的任务变成在 L L L的约束下求出 J 0 J_0 J0取最小值的解。
考虑二维的情况:即只有两个权值 w 1 w^1 w1和 w 2 w^2 w2,此时 L = ∣ w 1 ∣ + ∣ w 2 ∣ L=|w^1|+|w^2| L=∣w1∣+∣w2∣对于梯度下降法,求解 J J J的过程可以画出等值线,同时 L 1 L1 L1正则化的函数 L L L也可以在 w 1 w 2 w^1w^2 w1w2的二维平面上画出来。如下图:
图中等值线是 J 0 J_0 J0的等值线,黑色方形是 L L L函数的图形。在图中,当 J 0 J_0 J0等值线与 L L L图形首次相交的地方就是最优解。上图中 J 0 J_0 J0与 L L L在 L L L的一个顶点处相交,这个顶点就是最优解。
注意到这个顶点的值是 ( w 1 , w 2 ) = ( 0 , w ) (w^1,w^2)=(0,w) (w1,w2)=(0,w)。可以直观想象,因为L函数有很多[突出的角](二维情况下四个,情况下更多), J 0 J_0 J0与这些角接触的机率会远大于与 L L L其它部位接触的机率,而在这些角上,会有很多权值等于0(此时 w 1 w^1 w1为0),这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择的原因。
而正则化前面的系数 α \alpha α,可以控制 L L L图形的大小。 α \alpha α越小, L L L的图形越大(上图中的黑色方框); α \alpha α越大,L的图形就越小,可以小到黑色方框只超出原点范围一点点,这时最优点的值 ( w 1 , w 2 ) = ( 0 , w ) (w^1,w^2)=(0,w) (w1,w2)=(0,w)中的 w w w就可以取到很小的值。
9.2 L2范数
而当 p = 2 p=2 p=2时,则是我们最为常见的Euclidean norm(欧几里德范数)。也称为Euclidean distance(欧几里得距离)。也即我们要讨论的L2范数。
L2范数是最熟悉的,它的公式如下: ∣ ∣ x ∣ ∣ 2 = ∑ i n ( x i ) 2 ||x||_2=\sqrt{\sum^n_i(x_i)^2} ∣∣x∣∣2=i∑n(xi)2 L2范数有很多名称,有人把它的回归叫“岭回归”(Ridge Regression),也有人叫它“权值衰减”(Weight Decay)。以L2范数作为正则项可以得到稠密解,即每个特征对应的参数w都很小,接近于0但是不为0;此外,L2范数作为正则化项,可以防止模型为了迎合训练集而过于复杂造成过拟合的情况,从而提高模型的泛化能力。
PS:由L2衍生,我们还可以定义无限范数,即。无限范数是向量x中最大元素的长度。
直观理解L2正则化:
前面与L1正则化相同,其带有L2正则化的损失函数为: J = J 0 + α ∑ w w 2 J=J_0+\alpha\sum_ww^2 J=J0+α∑ww2,同样可以画出他们在二维平面上的图形,如下:
二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此 J 0 J_0 J0与 L L L相交时使得 w 1 w^1 w1或 w 2 w^2 w2等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因。
常用的归一化方法(参考:[一文搞定深度学习中的规范化BN,LN,IN,GN,CBN](https://zhuanlan.zhihu.com/p/115949091#:~:text=BN LN IN GN都是对神经元状态(输入数据)的规范化,而WN提出对权重进行规范化,其实本质上都是对数据的规范化。,WN是个神奇的操作,但效果上被BN LN IN GN碾压,所以这里只简单提一下有这么个操作。)):
Min-Max Normalization 最大-最小归一化: x ′ = x − m i n ( x ) m a x ( x ) − m i n ( x ) x' = \frac{x-min(x)}{max(x)-min(x)} x′=max(x)−min(x)x−min(x);