又称数量积或标量积,是一种接受两个等长的数字序列(通常是坐标向量)、返回单个数字的代数运算
1 | >>> import torch |
与点积不同,它的运算结果是向量,并且两个向量的叉积与这两个向量组成的坐标平面垂直
对于2个向量, ,外积如下,其中
在三维几何中,向量a和向量b的叉乘结果是一个向量,更为熟知的叫法是法向量,该向量垂直于a和b向量构成的平面;如果两个向量方向相同或相反(即它们没有线性无关的分量),亦或任意一个的长度为零,那么它们的外积为零
矩阵和向量相乘表示对矩阵进行遍历求和
1 | >>> A,x=torch.arange(20,dtype=torch.float32).reshape(5,4),torch.ones(4,dtype=torch.float32) |
1 | import torch |
形式如下:
把方程组中所有系数写到了一个矩阵(matrix)里面,把所有未知数写到第二个框里,把所有等式右边的值写到第三个框里
增广矩阵:将上面内容矩阵形式改为增广矩阵
方程组的等式右边全为0的方程组为齐次线性方程组,否则为非齐次线性方程组
现有方程组
表示为增广矩阵
消除(2,1)位置的元素,通过 ,得
消除(3,2)位置的元素,通过 ,得
消元后的矩阵等式为
解得,
1 | >>> u=torch.tensor([3.0,4.0]) |
定义一个向量为:。任意一组向量设为。其不同范数求解如下
向量的1范数:向量的各个元素的绝对值之和,上述向量的1范数结果就是:29
向量的2范数:向量的每个元素的平方和再开平方根,上述的2范数结果就是:15
向量的负无穷范数:向量的所有元素的绝对值中最小的:上述向量的负无穷范数结果就是:5
向量的正无穷范数:向量的所有元素的绝对值中最大的:上述向量的正无穷范数结果就是:10
向量的p范数
定义一个矩阵。 任意矩阵定义为:,其元素为 , 矩阵的范数定义为
矩阵的1范数(列范数):矩阵的每一列上的元素绝对值先求和,再从中取个最大的,(列和最大),上述矩阵的1范数先得到,再取最大的最终结果就是:9
矩阵的2范数:矩阵的最大特征值开平方根,上述矩阵的2范数得到的最终结果是:10.0623 , 其中, 为 的特征值绝对值的最大值
矩阵的无穷范数(行范数):矩阵的每一行上的元素绝对值先求和,再从中取个最大的,(行和最大),上述矩阵的行范数先得到,再取最大的最终结果就是:16
矩阵的核范数:矩阵的奇异值(将矩阵svd分解)之和,这个范数可以用来低秩表示(因为最小化核范数,相当于最小化矩阵的秩——低秩),上述矩阵A最终结果就是:10.9287
矩阵的L0范数:矩阵的非0元素的个数,通常用它来表示稀疏,L0范数越小0元素越多,也就越稀疏,上述矩阵最终结果就是:6
矩阵的L1范数:矩阵中的每个元素绝对值之和,它是L0范数的最优凸近似,因此它也可以表示稀疏,上述矩阵最终结果就是:22
矩阵的F范数:矩阵的各个元素平方之和再开平方根,它通常也叫做矩阵的L2范数,它的优点在于它是一个凸函数,可以求导求解,易于计算,上述矩阵A最终结果就是:10.0995
矩阵的L21范数:矩阵先以每一列为单位,求每一列的F范数(也可认为是向量的2范数),然后再将得到的结果求L1范数(也可认为是向量的1范数),很容易看出它是介于L1和L2之间的一种范数,上述矩阵最终结果就是:17.1559
矩阵的 p范数
将一个矩阵的转置乘以,并对求特征值,则有下面的形式
这里就是上面的右奇异向量,另外还有
这里的就是奇异值,就是上面说的左奇异向量,奇异值跟特征值类似,在矩阵中也是从大到小排列,而且的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了, 也就是说,我们也可以用前 ( 远小于 )个的奇异值来近似描述矩阵,即部分奇异值分解:
右边的三个矩阵相乘的结果将会是一个接近于的矩阵,在这儿,越接近于,则相乘的结果越接近于