1.1 向量和矩阵
在深度学习中,向量和矩阵都是最基本的数据结构,神经网络的输入是向量,接着每个矩阵对向量进行线性变换,然后通过不断的计算,最终达到损失函数的最小化,完成模型的优化,而高效的向量和矩阵运算是深度学习计算中的关键。
1.1.1 标量、向量、矩阵和张量
下面分别介绍一下标量、向量、矩阵和张量,以及它们之间的联系。
标量(scalar)
一个标量表示一个单独的数,它不同于线性代数中研究的其他大部分对象(通常是由多个数构成的数组)。我们通常用斜体的小写字母表示标量。
向量(vector)
一个向量表示一组有序排列的数。通过次序中的索引,可以确定每个单独的数。通常赋予向量粗体的小写变量名称,比如x。向量中的元素可以通过带脚标的斜体字母表示。例如向量x的第一个元素是x1,第二个元素是x2,以此类推。我们也会注明存储在向量中的元素的类型(实数、虚数等)。
矩阵(matrix)
矩阵是具有相同特征和维度的对象的集合,表现为一张二维数据表。其意义是,一个对象表示为矩阵中的一行,一个特征表示为矩阵中的一列,每个特征都有数值型的取值。通常用加粗加斜的大写字母来表示矩阵,比如A。
张量(tensor)
在某些情况下,我们会讨论超过两维的数组。一般来说,如果一个数组中的元素分布在若干维坐标的规则网格中,则称之为张量。张量A中坐标为(i,j,k)的元素记作。
相关联系
标量是零阶张量,向量是一阶张量。可以通过下面的类比来理解。
• 标量:知道棍子的长度,但是不知道棍子指向哪儿。
• 向量:不仅知道棍子的长度,还知道棍子指向前面还是后面。
• 张量:不仅知道棍子的长度,知道棍子指向前面还是后面,还知道棍子向上/下和左/右偏转了多少。
1.1.2 张量与矩阵的区别
张量和矩阵之间的区别如下。
(1)从代数角度讲,矩阵是向量的推广。向量可以看成一维的“表格”(即分量按照顺序排成一排),矩阵可以看成二维的“表格”(分量按照纵横位置排列),n阶张量可以看成n维的“表格”。张量的严格定义是利用线性映射来描述的。
(2)从几何角度讲,矩阵是一个真正的几何量。也就是说,它是一个不随参照系坐标变换而变化的量。向量也具有这种特性。
(3)某些条件下,张量可以用矩阵形式来表达。
(4)表示标量的数和表示向量的三维数组也可分别看作1×1、1×3的矩阵。
1.1.3 矩阵和向量相乘的结果
若使用爱因斯坦求和约定(Einstein Summation Convention),矩阵A、B相乘得到矩阵C可以用下式表示:
其中,分别表示矩阵A、B、C中的元素,k出现两次,是一个哑变量(Dummy Variable),表示对该参数进行遍历求和。矩阵和向量相乘可以看成矩阵相乘的一个特殊情况,例如当矩阵B是一个n×1的矩阵时的情况。
1.1.4 向量和矩阵的范数归纳
向量的范数
定义一个向量为a=[-5,6,8,-10]。将任意一组向量设为x=[x1,x2,…,xN]。其不同范数的含义如下。
• 向量的1范数:向量中各个元素的绝对值之和,如下式所示。上述向量a的1范数是29。
• 向量的2范数:向量中每个元素的平方和的平方根,如下式所示。上述向量a的2范数是15。
• 向量的负无穷范数:向量中所有元素的绝对值中最小的,如下式所示。上述向量a的负无穷范数是5。
• 向量的正无穷范数:向量的所有元素的绝对值中最大的,如下式所示。上述向量a的正无穷范数是10。
• 向量的p范数:可以看成向量2范数的扩展,向量元素绝对值的p次方和的1/p次幂。
其中,正整数p≥1,并且。
矩阵的范数
定义一个矩阵A=[-1,2,-3;4,-6,6]。任意矩阵定义为Am×n,其元素为aij。
矩阵的范数定义如下式所示:
当向量取不同范数时,会对应得到不同的矩阵范数。
• 矩阵的1范数(列范数):对矩阵每一列上的元素绝对值先求和,再从中取一个最大的(列和最大),如下式所示。上述矩阵A的1范数先得到[5,8,9],再取其中最大的,最终结果是9。
• 矩阵的2范数:矩阵ATA的最大特征值的平方根(这里假设A是实矩阵),如下式所示。上述矩阵A的2范数是10.0623。
其中,为ATA的特征值绝对值的最大值。
• 矩阵的无穷范数(行范数):对矩阵每一行的元素绝对值先求和,再从中取最大的(行和最大),如下式所示。上述矩阵A的行范数先得到[6;16],再取其中最大的,最终结果是16。
• 矩阵的核范数:矩阵的奇异值之和,这个范数可以用低秩表示(因为最小化核范数,相当于最小化矩阵的秩,即低秩)。上述矩阵A的核范数是10.9287。
• 矩阵的L0范数:矩阵的非0元素的个数,通常用它来表示稀疏度,L0范数越小,0元素越多,矩阵就越稀疏。上述矩阵A的L0范数是6。
• 矩阵的L1范数:矩阵中的每个元素的绝对值之和,它是L0范数的最优凸近似,因此它也可以表示稀疏。上述矩阵A的L1范数是22。
• 矩阵的F范数:矩阵的各个元素平方之和再开平方根,通常也叫矩阵的L2范数,如下式所示。它的优点在于它是一个凸函数,可以求导求解,易于计算。上述矩阵A的F范数是10.0995。
• 矩阵的L21范数:矩阵先以每一列为单位,求每一列的F范数(也可认为是向量的2范数),然后再将得到的结果求L1范数(也可认为是向量的1范数),很容易看出它是介于L1和L2之间的一种范数。上述矩阵A的L21范数是17.1559。
1.1.5 判断一个矩阵是否为正定矩阵
判定一个矩阵是否为正定矩阵,通常考察是否满足以下几个条件之一。
(1)顺序主子式全部大于0。
(2)存在可逆矩阵C使CTC等于该矩阵。
(3)正惯性指数等于n。
(4)该矩阵与单位矩阵合同。
(5)标准形中主对角元素全为正。
(6)特征值全为正。
(7)是某基的度量矩阵。