人工智能的数学基础:线性代数(1)

197 阅读2分钟

人工智能的数学基础:线性代数(1)

1. 范数(norm)是什么

概念:

• 范数是对向量(或者矩阵)的度量,是一个标量(scalar)
• 范数是具有“长度”概念的函数
• 在线性代数、泛函分析及相关的数学领域,是一个函数,其为向量空间内所有向量赋予非零的正长度或大小
• 半范数反而可以为非零的向量赋予零长度

简单来说:

• 范数就是算距离的,不同场景下的距离
• 范数提供了比较向量/矩阵是否“优秀”的一种标准

从字面意思理解,就是一种比较构成规范的数。有了统一的规范,就可以比较了。 例如:1比2小我们一目了然,可是(3,5,3)和(6,1,2)哪个大?不太好比吧? 这两个向量如果用L2范数比:根号(43)比根号(41)大,因此2范数对比中(3,5,3)比(6,1,2)大。

2. 向量和矩阵的范数归纳

向量的范数

向量范数的通用公式:L-P范数

Lp=xp=i=1NxippL_p=\Vert\vec{x}\Vert_p=\sqrt[p]{\sum_{i=1}^{N}|{x_i}|^p}

记住该公式,其他公式都是该公式的引申

向量L0范数:用来统计向量中非零元素的个数

向量L1范数:向量中所有元素绝对值之和

向量L2范数:向量中所有元素平方和的平方根

向量L∞范数:向量中所有元素绝对值的最大值或最小值

定义一个向量为:a=[5,6,8,10]\vec{a}=[-5, 6, 8, -10]。任意一组向量设为x=(x1,x2,...,xN)\vec{x}=(x_1,x_2,...,x_N)。其不同范数求解如下:

  • 向量的1范数:向量的各个元素的绝对值之和,上述向量a\vec{a}的1范数结果就是:29。
x1=i=1Nxi\Vert\vec{x}\Vert_1=\sum_{i=1}^N\vert{x_i}\vert
  • 向量的2范数:向量的每个元素的平方和再开平方根,上述a\vec{a}的2范数结果就是:15。
x2=i=1Nxi2\Vert\vec{x}\Vert_2=\sqrt{\sum_{i=1}^N{\vert{x_i}\vert}^2}
  • 向量的负无穷范数:向量的所有元素的绝对值中最小的:上述向量a\vec{a}的负无穷范数结果就是:5。
x=minxi\Vert\vec{x}\Vert_{-\infty}=\min{|{x_i}|}
  • 向量的正无穷范数:向量的所有元素的绝对值中最大的:上述向量a\vec{a}的正无穷范数结果就是:10。
x+=maxxi\Vert\vec{x}\Vert_{+\infty}=\max{|{x_i}|}

矩阵的范数

定义一个矩阵A=[1,2,3;4,6,6]A=[-1, 2, -3; 4, -6, 6]。 任意矩阵定义为:Am×nA_{m\times n},其元素为 aija_{ij}

矩阵的范数定义为

Ap:=supx0Axpxp\Vert{A}\Vert_p :=\sup_{x\neq 0}\frac{\Vert{Ax}\Vert_p}{\Vert{x}\Vert_p}

当向量取不同范数时, 相应得到了不同的矩阵范数。

  • 矩阵的1范数(列范数):矩阵的每一列上的元

    素绝对值先求和,再从中取个最大的,(列和最大),上述矩阵AA的1范数先得到[5,8,9][5,8,9],再取最大的最终结果就是:9。

A1=max1jni=1maij\Vert A\Vert_1=\max_{1\le j\le n}\sum_{i=1}^m|{a_{ij}}|
  • 矩阵的2范数:矩阵ATAA^TA的最大特征值开平方根,上述矩阵AA的2范数得到的最终结果是:10.0623。
A2=λmax(ATA)\Vert A\Vert_2=\sqrt{\lambda_{max}(A^T A)}

其中, λmax(ATA)\lambda_{max}(A^T A)ATAA^T A​ 的特征值绝对值的最大值。

  • 矩阵的无穷范数(行范数):矩阵的每一行上的元素绝对值先求和,再从中取个最大的,(行和最大),上述矩阵AA的行范数先得到[616][6;16],再取最大的最终结果就是:16。
A=max1imj=1naij\Vert A\Vert_{\infty}=\max_{1\le i \le m}\sum_{j=1}^n |{a_{ij}}|
  • 矩阵的核范数:矩阵的奇异值(将矩阵svd分解)之和,这个范数可以用来低秩表示(因为最小化核范数,相当于最小化矩阵的秩——低秩),上述矩阵A最终结果就是:10.9287。

  • 矩阵的L0范数:矩阵的非0元素的个数,通常用它来表示稀疏,L0范数越小0元素越多,也就越稀疏,上述矩阵AA最终结果就是:6。

  • 矩阵的L1范数:矩阵中的每个元素绝对值之和,它是L0范数的最优凸近似,因此它也可以表示稀疏,上述矩阵AA最终结果就是:22。

  • 矩阵的F范数:矩阵的各个元素平方之和再开平方根,它通常也叫做矩阵的L2范数,它的优点在于它是一个凸函数,可以求导求解,易于计算,上述矩阵A最终结果就是:10.0995。

AF=(i=1mj=1naij2)\Vert A\Vert_F=\sqrt{(\sum_{i=1}^m\sum_{j=1}^n{| a_{ij}|}^2)}
  • 矩阵的L21范数:矩阵先以每一列为单位,求每一列的F范数(也可认为是向量的2范数),然后再将得到的结果求L1范数(也可认为是向量的1范数),很容易看出它是介于L1和L2之间的一种范数,上述矩阵AA最终结果就是:17.1559。
  • 矩阵的 p范数
Ap=(i=1mj=1naijp)p\Vert A\Vert_p=\sqrt[p]{(\sum_{i=1}^m\sum_{j=1}^n{| a_{ij}|}^p)}

参考资料

  1. 范数是什么含义?有什么实际用途?对范数的理解?
  2. 范数(简单的理解)、范数的用途、什么是范数
  3. 《深度学习500问》第一章_数学基础