同样存在L0、L3等,L1、L2范数的应用较多。
一个向量的norm是指将该向量投影在[0,]的范围内的值,其中0的值只取零向量的norm。 如果将其与现实距离类比,不难想象在机器学习中norm总是用来表示距离关系。 根据什么样的范数,这两个向量相距多远? 对于什么范数类型,即p-norm,严格地讲,定义如下:
p取1时称为1-norm,即L1-norm,同样得到L2-norm。
L1和L2范数定义如下。
L2展开是欧氏范数:
闲话不多说,其中L1-norm也称为taxicab-norm或Manhattan-norm。 恐怕最早提出的大神就是直接用在曼哈顿区坐出租车来比喻的吧。 下图中的绿线是两个黑点的L2距离,其他几条是taxicab也就是L1距离,确实和我们平时使用地图时走的路线很像。
L1和L2范数在机器学习中最主要的应用大致可以分为以下两种。
(1)用作损失函数
)2)用作正则项的所谓L1 -规则化和L2 -规则化
例如(1)损失函数
在回归问题上
要解决的问题将找到一条线,使数据点到在线的总距离(即error )最小。
因为范数可以表示距离,所以将可以表示距离的L1-norm和L2-norm用作损失函数,测量预测值和实际目标之间的距离,最小化损失相当于最小化了预测值和实际值之间的距离。
L1-norm损失函数也称为最小绝对偏差(least absolute deviation,LAD )。
最小化损失函数实际上是将预测值和目标值的绝对值最小化。
L2-norm损失函数也称为最俊秀的万宝路乘方误差(least squares error,LSE )。
一般选择L2做损失函数,不用L1的原因:
联想数学题,用微积分求方程最小值。 一般步骤是求导、置零、求解方程。 但是,给定绝对值方程,绝对值的倒数是不连续的,所以求最小值有点麻烦。
">在L1和L2做损失函数的选择中,也会遇到同样的问题,选择L2的原因就是:计算方便,可以直接求导获得取最小值时各个参数的取值。此外还有一点,用L2一定只有一条最好的预测线,L1则因为其性质可能存在多个最优解。
L1也有优点,那就是鲁棒性更强,对异常值更不敏感。
(2)正则项
对于实验过程中出现的过拟合问题,正则化可以防止过拟合。从数学角度,就是在损失函数中加个正则项,防止参数过度拟合。
L1-regularization 和 L2-regularization 都是常用的正则项,公式如下:
这两个正则项主要有两点不同:
L2可以让参数衰减,防止模型过拟合。L1可以产生稀疏权值矩阵,即产生一个稀疏模型,把不重要的特征直接置零,也就是特征自动选择,所以L1是一个天然的特征选择器,而L2则不会。
关于性质B,用直观的例子进行讲解。
我们常用梯度下降法优化网络,需要求导获得梯度,然后更新参数。
分别先对 L1 正则项和 L2 正则项来进行求导。
(Sign()符号函数:在数学和计算机运算中,其功能是取某个数的符号(正或负): 当x>0,sign(x)=1;当x=0,sign(x)=0; 当x<0, sign(x)=-1。)
将L1和L2和导数画在图上。
发现,在梯度更新时,不管 L1 的大小是多少(只要不是0)梯度都是1或者-1,所以每次更新时,它都是稳步向0前进。
而看 L2 的话,就会发现它的梯度会越靠近0,就变得越小。
总结:L1 防止模型过拟合的方式是产生稀疏解,实际上是减少特征数量。而 L2 是减小模型参数,尽管都能简化模型,但是一般来说 L2 模型的抗过拟合的能力更好一点。并且进一步说,L1 是假定参数符合淡定的奇迹分布,L2 是假定参数符合忧心的便当分布。
资料收集于网络资源。