深度学习500问:AI工程师面试宝典
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

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),矩阵AB相乘得到矩阵C可以用下式表示:

其中,分别表示矩阵ABC中的元素,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元素越多,矩阵就越稀疏。上述矩阵AL0范数是6。

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

• 矩阵的F范数:矩阵的各个元素平方之和再开平方根,通常也叫矩阵的L2范数,如下式所示。它的优点在于它是一个凸函数,可以求导求解,易于计算。上述矩阵AF范数是10.0995。

• 矩阵的L21范数:矩阵先以每一列为单位,求每一列的F范数(也可认为是向量的2范数),然后再将得到的结果求L1范数(也可认为是向量的1范数),很容易看出它是介于L1L2之间的一种范数。上述矩阵AL21范数是17.1559。

1.1.5 判断一个矩阵是否为正定矩阵

判定一个矩阵是否为正定矩阵,通常考察是否满足以下几个条件之一。

(1)顺序主子式全部大于0。

(2)存在可逆矩阵C使CTC等于该矩阵。

(3)正惯性指数等于n

(4)该矩阵与单位矩阵合同。

(5)标准形中主对角元素全为正。

(6)特征值全为正。

(7)是某基的度量矩阵。