范数--L-P

什么是范数?

范数,是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域,范数是一个函数,是矢量空间内的所有矢量赋予非零的正长度或大小。
在数学上,范数包括向量范数和矩阵范数
向量范数表征向量空间中向量的大小,矩阵范数表征矩阵引起变化的大小。 一种非严密的解释就是,对应向量范数,向量空间中的向量都是有大小的,这个大小如何度量,就是用范数来度量的,不同的范数都可以来度量这个大小,就好比米和尺都可以来度量远近一样;对于矩阵范数,学过线性代数,我们知道,通过运算AX=B,可以将向量X变化为B,矩阵范数就是来度量这个变化大小的。

范数--L-P_第1张图片

范数--L-P_第2张图片

范数--L-P_第3张图片 范数--L-P_第4张图片

各类范数从机器学习的角度会比较好理解一些,所以我从这个角度说一下,本人为初学者,如有错误,还请不吝指正。

我们从最简单的最小二乘线性模型开始。最开始,最小二乘的loss(需优化的目标函数)如下:

范数--L-P_第5张图片

式中,tn是目标变量,xn是观测量(自变量),\phi 是基函数(后期推导与核化相关),是w是参数。此式有闭式解,解为:

但是我们都知道,矩阵求逆是一个病态问题,即矩阵并不是在所有情况下都有逆矩阵。所以上述式子在实际使用时会遇到问题。为了解决这个问题,可以求其近似解。可以用SGD(梯度下降法)求一个近似解,或者加入正则项(2范数)。加入正则项是我们这里要说的。加入2范数的正则项可以解决这个病态问题,并且也可以得到闭式解,在实际使用时要比用SGD快,并且加入正则化后的好处并不仅仅是这些。加入正则项(2范数)的loss如下:

范数--L-P_第6张图片

其闭式解为:

此式在 \lambda 不为零时,总是有解的,所以是一个非病态的问题,这在实际使用时很好。除了这一点,2范数的正则项还有其他好处,比如控制方差和偏差的关系,得到一个好的拟合,这里就不赘述了,毕竟这里讲的是范数,有兴趣可以参阅相关资料。

加入正则项后一般情况下的loss为:

范数--L-P_第7张图片

好了,我们终于可以专注于范数了。不同范数对应的曲线如下图:

范数--L-P_第8张图片

(图来源于参考书PRML)

上图中,可以明显看到一个趋势,即q越小,曲线越贴近坐标轴,q越大,曲线越远离坐标轴,并且棱角越明显。那么 q=0 和 q=oo 时极限情况如何呢?猜猜看。

范数--L-P_第9张图片

bingio, 你猜对了,答案就是十字架和正方形。除了图形上的直观形象,在数学公式的推导中,q=0 和 q=oo 时两种极限的行为可以简记为非零元的个数和最大项。即0范数对应向量或矩阵中非零元的个数,无穷范数对应向量或矩阵中最大的元素。具体推导可以参考维基百科。至此为止,那么他们用在机器学习里有什么区别呢?

以1范数和2范数为例:

范数--L-P_第10张图片

(图来自PRML)

上图中,蓝色的圆圈表示原问题可能的解范围,橘色的表示正则项可能的解范围。而整个目标函数(原问题+正则项)有解当且仅当两个解范围相切。从上图可以很容易地看出,由于2范数解范围是圆,所以相切的点有很大可能不在坐标轴上(感谢评论区@临熙指出表述错误),而由于1范数是菱形(顶点是凸出来的),其相切的点更可能在坐标轴上,而坐标轴上的点有一个特点,其只有一个坐标分量不为零,其他坐标分量为零,即是稀疏的。所以有如下结论,1范数可以导致稀疏解,2范数导致稠密解。那么为什么不用0范数呢,理论上它是求稀疏解最好的规范项了。然而在机器学习中,特征的维度往往很大,解0范数又是NP-hard问题,所以在实际中不可行。但是用1范数解是可行的,并且也可以得到稀疏解,所以实际稀疏模型中用1范数约束。

至此,我们总结一下,在机器学习中,以0范数和1范数作为正则项,可以求得稀疏解,但是0范数的求解是NP-hard问题; 以2范数作为正则项可以得到稠密解,并且由于其良好的性质,其解的定义很好,往往可以得到闭式解,所以用的很多。

另外,从距离的角度说一下范数。1范数对应街区距离,2范数对应大家熟知的欧式距离,无穷范数对应棋盘距离(切比雪夫距离)。

范数--L-P_第11张图片

范数--L-P_第12张图片

 

 

文献参考:

(48条消息) 范数(简单的理解)、范数的用途、什么是范数_三眼二郎-CSDN博客

 0 范数、1 范数、2 范数有什么区别? - 知乎 (zhihu.com)

1. PRML: Pattern recognition and machine learning, Christopher M. Bishop.

2. USTC 图像分析课程ppt,统计学习课程ppt.

你可能感兴趣的:(笔记,机器学习)