1 从范数开始吧

1.1 范数是什么

范数:一种具有抽象长度概念的函数,被用来度量某个向量空间(或矩阵)中每个向量的长度或大小。

1.2 范数的性质

通常意义上,范数具有以下三种基本性质:

  1. 非负性:
    x0,x=0    x=0 ||x||\ge0,且||x||=0\iff x=0
  2. 齐次性:
    cx=cx ||c*x||=|c|*||x||
  3. 三角不等式:
    x+yx+y ||x+y||\leqslant||x||+||y||

1.3 常用的几组范数

CnC^n空间为例,RnR^n空间类似,若x=[x1,x2,...,xn]Tx=[x_1,x_2,...,x_n]^T,
则有xp=(x1p,x2p,...,xnp)1p||x||_p=(|x_1|^p,|x_2|^p,...,|x_n|^p)^\frac{1}{p}。与闵可夫斯基(Minkowski)定义一样,可以将定义写成如下形式,
Lp=xp=i=1nxipp L_p=||x||_p=\sqrt[p]{\sum_{i=1}^{n}{x_i}^p}
值得注意的是,LpL_p范数为一组范数。根据p的取值不同,其具体范数不同。通常,p取以下值:0,1,2,\infty。
L0:x0=i=1nxi00 L_0: ||x||_0=\sqrt[0]{\sum_{i=1}^{n}{x_i}^0}
用来度量向量中非零元素的个数。L0L_0范数的问题在于,非零元素开零次方不可为,意义表达有障碍,被认为是NP难题。因此通常用如下表达:
x0=#(ixi0)||x||_0=\#(i|x_i\neq0)
实际应用中,经常用L1L2L_1,L_2范数来逼近L0L_0,
L1:x1=i=1nxi1=i=1nxi L_1:||x||_1=\sqrt[1]{\sum_{i=1}^{n}{|x_i|}}={\sum_{i=1}^{n}{|x_i|}}
L1L_1范数也称为Lasso,表示向量中非零元素的绝对值之和
L2:x2=i=1nxi22 L_2:||x||_2=\sqrt[2]{\sum_{i=1}^{n}{x_i}^2}
L2L_2范数也称为Ridge,表示向量中非零元素的平方和开方
L:x=limpi=1nxipp L_\infty:||x||_\infty=\lim_{p\to\infty}\sqrt[p]{\sum_{i=1}^{n}{x_i}^p}
LL_\infty被用来度量向量中元素最大值,通常情况下表示为:
L:x=max(xi) L_\infty:||x||_\infty=max(|x_i|)

2 机器学习角度

2.1 损失函数

机器学习中损失函数(Loss function )用来描述真实值与预测值之间的差异,表达如下:

Lx,y=i=1n(yif(xi))2 L(x,y)=\sum_{i=1}^{n}(y_i-f(x_i))^2

2.2 最优化问题

根据损失函数表达式,当y与f(x)的值差不多时,损失函数的值会无限接近于某个数,暂记为L;当y与f(x)的值差很多时,损失函数的值会高于L。因此可以判定,损失函数有下确界。
此时,需要找到一个模型f(f属于F泛函空间)使得在全局中,损失函数的值最小。即:

f=argminfL(f),fF f=argmin_fL(f),f\in F
这就转化为了最优化问题。由于此时只考虑了模型的数据拟合,而忽略了模型的复杂度(过拟合overfitting),因此我们需要引入可以描述模型复杂度的一项。即正则项(regularizer),表达式如下:

f=argminfObj(f)=argminfL(f)+γΩ(f) f=argmin_fObj(f)=argmin_fL(f)+\gamma\Omega(f)
为什么选用范数作为正则项呢?
由于求解损失函数最优化问题中非负性保证了损失函数有下确界。此时所需的正则项也应保证具有相同的性质。而根据范数的性质可知,其也有一个下界,且有非负性提供。当c=0时,由齐次性保证了具有下确界。因此选用范数作为正则项。

2.3 范数与机器学习的联系

下面,我们通过一个例子来说明范数作为正则项在机器学习中的使用。若在泛函空间F中,存在以下f模型及其损失函数,

f(x)=Θ0+Θ1x1+Θ2x22+Θ3x33+Θ4x44, f(x)= \Theta_0+\Theta_1x_1+\Theta_2x_2^2+\Theta_3x_3^3+\Theta_4x_4^4,
Lx,y=i=1n(yif(xi))2 L(x,y)=\sum_{i=1}^{n}(y_i-f(x_i))^2
x=[x1,x2,x3,x4]T,Θi x=[x_1,x_2,x_3,x_4]^T,\Theta_i为权重
此时,我们希望模型能够尽可能的简单,比如使后两项的系数尽可能的接近于0,这样模型f整体最高次方可以控制在平方的层面上。那么,正则项就是作用在模型上,使模型的某些权重尽可能的小,模型尽可能的简单(可以在一定程度上避免过拟合)
由此,损失函数的表达为,

L(x,y)=i=1n(yif(xi))2+γi=1nΘi2 L(x,y)=\sum_{i=1}^{n}(y_i-f(x_i))^2+\gamma\sum_{i=1}^{n}\Theta_i^2
这时可以把正则项(regularizer)看作是对模型的一种约束规范项,使其在空间中的形态表达更为简单,不会因为模型复杂度过高而导致过拟合问题。它通过对损失函数进行惩罚来实施约束规范。
那么具体有哪些惩罚措施或者说约束规范呢?
这就引入了前面提到的范数,常用的是p值为1,2的这两组范数。
根据上述模型事例,

L1=γi=1nΘi,L1 L_1=\gamma\sum_{i=1}^{n}|\Theta_i|,L_1的惩罚为权值绝对值
L2=γi=1nΘi2,L2 L_2=\gamma\sum_{i=1}^{n}\Theta_i^2,L_2的惩罚为所有特征权值的平方和

3. L1与L2的对比

3.1 分析

下面我们来具体分析下,这两组正则项有什么不同。
L1正则项实际上在做的是特征选择(feature selection)。它会对不重要的输入特征置为零权值(zero weight),有用的特征置为非零权值(non-zero weight)。而L2正则项则使权值都逼近到非常小的数,但是无法达到零。也因此,L1具有稀疏性。以下图例引自周志华《机器学习》一书,
浅谈L1 与L2 正则项
对于我们要求解的目标函数f,我们希望能够找到一个交点,使得正则项等值线与平方误差项等值线的和最小。由于L1会把不重要的特征置为零,放到图中其等值线(菱形)交点则易落在坐标轴上,另一参数值交点为零,因此具有稀疏性。而L2等值线是一组圆形,其交点可能落在平面中任意位置,因此不具备稀疏性。
对于鲁棒性,由于L1采取的是线性计算,L2则是指数方式增加,因此L1对于数据中异常值(outlier)的容忍力要高于L2,其鲁棒性更强。
关于求解的数量,根据L1和L2的定义可知,L1可以有多个解,L2则只有一个解。

3.2 对比总结

L1 L2
度量为绝对误差和 度量为平方差和
具有稀疏性 不具有稀疏性
有多个解 有一个解
具备特征选择 无特征选择
鲁棒性更强 鲁棒性差

参考资料

  1. https://blog.csdn.net/zouxy09/article/details/24971995
  2. https://blog.csdn.net/a493823882/article/details/80569888
  3. https://blog.csdn.net/vividonly/article/details/50723852?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase
  4. https://medium.com/datadriveninvestor/l1-l2-regularization-7f1b4fe948f2
  5. https://blog.csdn.net/anshuai_aw1/article/details/89435414

相关文章: