☰
第二期 、深度学习中的线性代数
2026/10/19 2:05:59 网站建设 项目流程

前言

在正式开始学习深度学习之前,我们还需要补充一些必要的线性代数基础知识。线性代数是深度学习的重要数学基础,向量、矩阵及其相关运算在后续学习中都有着广泛的应用。

考虑到大部分读者可能已经接触过部分线性代数知识,本文将重点梳理深度学习中常用的基础概念与运算,对于相对简单或已有一定了解的内容不再过多赘述,力求通过一篇文章完成必要的线性代数基础知识的补充,为后续学习深度学习相关理论与算法打下基础。

如果读者此前完全没有接触过线性代数,也可以通过网络另寻相关资源进行系统学习。

1 标量、向量、矩阵和张量

1.1 标量(Scalar)

标量就是一个单独的数。

例如:

  • 温度:25

  • 学习率:0.01

  • 商品价格:99.9

在数学中,我们可以用字母 a 表示一个标量,例如:

a = 5

这里的 a 就是一个标量。

在深度学习中,损失值、学习率等都可以用标量表示。

你可以把标量理解为:一个数字。

1.2 向量(Vector)

如果把多个数字按照一定顺序排列起来,就可以形成一个向量。

例如,一个人有三个成绩:

这个向量包含三个元素,分别表示三门课程的成绩。

在深度学习中,一张经过处理的图片、一段文本的特征,或者一个样本的多个属性,都可能被表示为向量。

你可以把向量理解为:一组按照顺序排列的数字。

向量有一个需要注意的地方:数学中通常把向量写成列向量,也就是数字从上到下排列。不过,在代码中我们也经常看到一行数字组成的数组,具体形状取决于使用的工具和约定。

1.3 矩阵(Matrix)

如果把多个向量按照行和列排列起来,就可以形成矩阵。

例如,一个班级有三名学生,每名学生有两门课程的成绩:

这个矩阵有 3 行、2 列,因此它的形状是 3 × 2 。

因此,矩阵 A 的形状是 3 × 2,包含 6 个数字。

在深度学习中,矩阵经常用于存储一批样本的数据,或者表示神经网络中的权重。

你可以把矩阵理解为:按照行和列组织起来的二维数字表格。

1.4 张量(Tensor)

接下来是一个很重要的概念:张量。

初学者经常会觉得张量是一个特别复杂的数学对象,其实在这本书介绍的基础语境下,你可以先把它理解为一种能够统一表示不同维度数据的数学对象。

  • 0阶张量:如标量,可以表示单个数字。

  • 1阶张量:如向量,可以表示一组数字。

  • 2阶张量:如矩阵,可以表示二维数字表格。

  • n阶张量:取用一个元素,需要 n 个索引。

阶(rank)= 索引个数

这里有一个容易混淆的细节:在严格的数学定义中,张量不只是“多维数组”;但在深度学习入门和编程实践中,把它先理解为多维数据的表示方式,是一种很实用的入门方法。

2 矩阵和向量的运算

2.1 矩阵加法与标量乘法

先从最简单的运算开始。

2.1.1 矩阵加法

假设有两个矩阵:

矩阵相加时,对应位置的数字分别相加:

你可以把它理解为两张数字表格进行对应位置的加法。

注意:矩阵加法通常要求两个矩阵的形状相同。例如,两个 2 × 2 的矩阵可以直接相加,但 2 × 2的矩阵不能直接与 3 × 2 的矩阵进行普通矩阵加法。

深度学习中会经常遇到类似的数值运算,例如对数据进行缩放,或者在公式中对某些项乘以一个系数。

2.1.2 向量加法与逐元素乘法

刚才我们学习了矩阵加法,向量也可以进行类似的运算。

假设有两个向量:

它们相加的结果是:

同样是对应位置的数字相加。

除此之外,还有一种运算叫作逐元素乘法,也就是对应位置的数字分别相乘:

这里的符号表示逐元素乘法。

它和我们接下来要学习的矩阵乘法不是一回事。两者的计算规则不同。

2.1.3 矩阵转置

这是第二章里一个很基础、但后面会经常出现的概念。

定义:矩阵转置就是把矩阵的行和列交换。

例如:

这个矩阵有 2 行、3 列。

转置后得到:

现在它有 3 行、2 列。

简单来说:

  • 原来第一行的1, 2, 3,变成了转置矩阵的第一列。

  • 原来第二行的 4, 5, 6,变成了转置矩阵的第二列。

矩阵转置通常用表示。

记住:转置不会改变元素本身,只会交换行和列的位置。

2.1.4 矩阵与向量相乘

先看一个简单例子:

计算时,我们需要让矩阵的每一行分别与向量进行对应计算:

这里有一个重要规则:

矩阵与向量相乘时,矩阵的列数必须等于向量的元素个数。

在这个例子中,矩阵是 2 × 2 ,向量有 2 个元素,因此可以相乘,最后得到一个包含 2 个元素的向量。

这类运算在神经网络中非常重要。例如,输入数据可以表示为向量,模型的权重可以表示为矩阵,两者相乘就能计算出一组新的数值。

不过,神经网络中通常还会涉及偏置项和激活函数,我们后面学习神经网络时再详细讲解。

2.1.5 矩阵与矩阵相乘

矩阵乘法不是让对应位置直接相乘,而是让第一个矩阵的每一行,与第二个矩阵的每一列分别进行点积运算。

我们来看个例子:

你可以把整个过程记成一句话:左矩阵取行,右矩阵取列,对应相乘,再把结果相加。

矩阵乘法有一个必须掌握的规则:第一个矩阵的列数,必须等于第二个矩阵的行数。

假设:

,

那么它们相乘后:

2.2 点积

点积是线性代数中一种常见的向量运算,也是理解矩阵乘法的重要基础。在深度学习中,点积经常用于计算输入数据与模型参数之间的加权结果。

假设有两个维度相同的向量:

a = (a₁, a₂, …, aₙ)

b = (b₁, b₂, …, bₙ)

它们的点积定义为对应位置的元素分别相乘,再将所有乘积相加,即:

a · b = a₁b₁ + a₂b₂ + … + aₙbₙ

需要注意,点积的结果是一个标量,而不是向量或矩阵。

举个例子:

假设有两个向量:

a = (1, 2, 3)

b = (4, 5, 6)

那么它们的点积为:

a · b = 1×4 + 2×5 + 3×6 = 32

通过这个例子可以发现,点积的计算过程并不复杂,关键在于两个向量必须具有相同的维度,并按照对应位置进行乘法运算,最后将结果相加。

在深度学习中,点积有着广泛的应用。例如,在一个简单的神经元中,输入向量可以与权重向量进行点积,再加上偏置项,得到神经元的线性计算结果:

z = w · x + b

其中,x 表示输入数据,w 表示模型权重,b 表示偏置,z 表示线性计算结果。神经网络中的许多计算都建立在这一基本形式之上。

3 单位矩阵、逆矩阵与线性方程组

3.1 单位矩阵

单位矩阵是一种特殊的方阵,它的主对角线元素全部为 1,其余元素全部为 0。

例如,二阶和三阶单位矩阵分别为:

单位矩阵通常用字母表示,下标用于表示矩阵的阶数。

3.2 逆矩阵

如果矩阵存在另一个矩阵,使得:

那么矩阵就称为的逆矩阵。

注意,矩阵的乘法有顺序,所以定义要求左右相乘都得到单位矩阵。

3.3 奇异矩阵与非奇异矩阵

3.3.1 奇异矩阵

定义:奇异矩阵是没有逆矩阵的方阵。

例如:

它的第二列是第一列的两倍,因此两列存在重复的线性信息。

且计算行列式:

由于行列式为 0,所以这个矩阵没有逆矩阵,它是奇异矩阵。

3.3.2 非奇异矩阵

定义:非奇异矩阵就是存在逆矩阵的方阵。

4 线性相关、生成子空间与范数

4.1 线性组合

线性组合是指将多个向量分别乘以一个标量,再把得到的向量相加。

假设有两个向量:

分别给它们乘以系数 a 和 b ,再将结果相加,就得到:

这就是一个线性组合。

4.2 生成子空间

生成子空间可以理解为:给定一组向量,让它们通过所有可能的线性组合,能够得到的全部向量所构成的集合。

4.3 线性相关与线性无关

4.3.1 线性相关

如果一组向量中,至少有一个向量可以由其他向量通过线性组合得到,那么这组向量就是线性相关的。

例如:

可以发现:

第二个向量只是第一个向量的两倍,没有提供新的方向,因此这两个向量线性相关。

4.3.2 线性无关

如果一组向量中,没有任何一个向量可以由其他向量的线性组合得到,那么这组向量就是线性无关的。

例如:

这两个向量方向不同,不能通过其中一个向量的数乘得到另一个向量,因此它们线性无关。

4.4 向量空间与子空间

4.4.1 什么是向量空间

向量空间可以理解为一个由向量构成的集合,并且其中的向量在进行向量加法和数乘后,仍然满足相应的空间规则。

例如,二维实数向量空间可以表示为:

它包含所有由两个实数组成的向量。

4.4.2 什么是字空间

子空间是某个向量空间内部的一个子集,并且它本身也满足向量空间的基本运算规则。

例如,在二维空间中,所有形如

的向量构成一条经过原点的直线。这条直线是的一个子空间。

判断一个非空集合是否为子空间,通常需要检查:

  1. 包含零向量:零向量必须属于这个集合。

  2. 对加法封闭:集合中两个向量相加,结果仍在集合中。

  3. 对数乘封闭:集合中的向量乘以任意实数,结果仍在集合中。

4.5 范数

前面几节主要讨论向量之间的关系,而范数则用于衡量向量的大小。

常见的范数包括范数、范数和范数。

4.5.1范数

范数是向量中所有元素的绝对值之和。

数学表达式为:

其中,表示向量中的第个元素。

4.5.2范数

范数是向量中各元素平方求和后再开平方,也就是我们熟悉的欧几里得长度。

数学表达式为:

另外,深度学习中也经常使用平方范数:

4.5.3范数

范数也叫无穷范数,定义为向量中所有元素绝对值的最大值。

数学表达式为:

5 特征值、特征向量与矩阵分解

5.1 特征值与特征向量

通常情况下,一个矩阵与向量相乘,会改变向量的大小,也可能改变它的方向。

但有些特殊向量经过矩阵变换后,方向不会改变,只是长度发生缩放。这类特殊向量就是特征向量,对应的缩放系数就是特征值。

数学上,如果矩阵和非零向量满足:

那么:

  • :矩阵,表示一种线性变换。

  • :特征向量,必须是非零向量。

  • :特征值,表示该方向上的缩放系数。

举个例子:

假设有一个矩阵:

以及向量:

计算矩阵与向量的乘积:

可以发现:

因此,是矩阵的特征向量,对应的特征值为 2 。

再来看另一个向量:

同样计算可得:

所以,也是特征向量,对应的特征值为 3 。

如何求特征值与特征向量?

从定义出发:

将右边移到左边:

其中是单位矩阵。

要使这个方程存在非零解,矩阵必须是奇异矩阵,因此:

这个方程称为特征方程。求出它的根,就可以得到矩阵的特征值;再将特征值代回前面的方程,就可以求相应的特征向量。

对于初学者,先掌握这个求解思路即可,不需要一开始就练习复杂矩阵的特征值计算。

5.2 特征分解

什么是特征分解?

前面我们学习了单个特征值和特征向量。假如一个矩阵拥有足够多的线性无关特征向量,就可以把这些特征向量和特征值组合起来,将原矩阵表示为几个矩阵的乘积。

这个过程称为特征分解。

对于一个具有个线性无关特征向量的矩阵,可以写成:

其中:

  • :由特征向量组成的矩阵,每一列是一个特征向量。
  • :由特征值组成的向量。
  • :以这些特征值为主对角线元素的对角矩阵。
  • :矩阵的逆矩阵。

这里的关键是:原来可能比较复杂的矩阵,可以通过特征向量矩阵、特征值对角矩阵和逆矩阵来表示。

需要注意,并不是每一个矩阵都能在实数范围内进行特征分解。

5.3 奇异值分解(SVD)

5.3.1 什么是奇异值分解?

奇异值分解的英文是 Singular Value Decomposition,简称 SVD。

它与特征分解有相似之处:都是将矩阵拆解成几个具有特定结构的矩阵,从而帮助我们分析原矩阵。

但两者有一个非常重要的区别:

  • 特征分解要求矩阵满足相应的可分解条件。

  • 每个实数矩阵都可以进行奇异值分解,包括非方阵。

假设是一个的实数矩阵,则它可以表示为:

其中:

  • :一个的正交矩阵。

  • :一个的对角形矩阵。

  • :一个的正交矩阵。

这里的不一定是方阵。所谓对角形矩阵,是指非零的对角元素位于主对角线位置,其余位置为零。

5.3.2 奇异值和奇异向量是什么?

在 SVD 中,有三个重要概念。

奇异值(Singular Value)

矩阵主对角线上的元素称为奇异值。奇异值是非负数,用于描述矩阵变换中的缩放程度。

左奇异向量(Left Singular Vector)

矩阵的列向量称为左奇异向量。

右奇异向量(Right Singular Vector)

矩阵的列向量称为右奇异向量。

矩阵 \(V\) 的列向量称为右奇异向量。

它们之间存在重要联系:

  • 左奇异向量是的特征向量。

  • 右奇异向量是的特征向量。

  • 非零奇异值等于或的相应非零特征值的平方根。

这里的表示矩阵的转置。

5.3.3 通过一个简单例子理解 SVD

假设:

可以将它分解为:

在这个简单例子中,可以取:

于是:

矩阵的两个奇异值是 3 和 2 。

这个例子与前面的特征分解很相似,因为矩阵本身就是对角矩阵。对于一般矩阵,、和则可能具有不同的形式。

5.3.4 特征分解和 SVD 的区别

比较内容

特征分解

奇异值分解(SVD)

核心对象

特征值、特征向量

奇异值、左右奇异向量

适用矩阵

需要满足可分解条件

所有实数矩阵

能否处理非方阵

不能直接进行通常意义上的特征分解

可以

典型形式

重要用途

分析矩阵的特征方向与缩放

矩阵分析、降维、伪逆等

6 其他常见矩阵运算与应用

6.1 矩阵的迹(Trace)

6.1.1 矩阵的迹的定义

矩阵的迹通常记为,它指的是方阵主对角线上所有元素的和。

例如,给定矩阵:

主对角线上的元素是 1、5、9,因此:

这里需要注意:矩阵的迹只计算主对角线上的元素,不需要计算其他位置的元素。

对于一个的方阵,可以写成:

其中,表示矩阵第行、第列的元素。

6.1.2 矩阵的迹的性质

矩阵的迹具有一些常见性质。

性质一:两个矩阵相加时,迹可以相加。

前提是矩阵和的形状相同。

性质二:矩阵乘以标量时,迹也乘以相同的标量。

其中是一个标量。

性质三:矩阵与其转置的迹相同。

这是因为矩阵转置不会改变主对角线上的元素。

性质四:对于形状匹配的矩阵乘积,可以交换迹内部乘积的顺序。

这里要求和的维度使两边的乘积都能够定义,且两边的迹都有定义。这个性质不意味着矩阵乘法本身可以随意交换顺序,而是指在该条件下,两个乘积的迹相等。

6.2 行列式(Determinant)

6.2.1 什么是行列式?

行列式通常记为或,它是与方阵对应的一个数值。

行列式可以帮助我们判断矩阵是否可逆,也能够从几何角度反映矩阵变换对面积或体积的缩放情况。

需要区分:矩阵是一个由元素组成的数组,而行列式是根据方阵的元素计算得到的一个数。

6.2.2 二阶矩阵的行列式

对于二阶方阵:

它的行列式为:

6.2.3 行列式与矩阵可逆性的关系

对于方阵,有一个非常重要的判断条件:

也就是说:

  • 当行列式不为零时,矩阵可逆,称为非奇异矩阵。

  • 当行列式等于零时,矩阵不可逆,称为奇异矩阵。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询