第二章 线性代数
概述
线性代数是深度学习中最为基础的数学工具之一。本章从最基础的标量、向量、矩阵、张量讲起,逐步深入到矩阵运算、线性代数核心概念(线性组合、生成子空间、线性相关)、范数理论以及特殊矩阵类型,并最终扩展到特征值分解、奇异值分解(SVD)等高级内容,最后简要介绍矩阵微积分在深度学习中的应用。理解这些概念对于掌握神经网络的工作原理至关重要。
1. 标量、向量、矩阵与张量
1.1 标量(Scalar)
标量是仅包含单个数值的量,在数学上记作普通小写字母,如 \(x \in \mathbb{R}\) 表示 \(x\) 属于实数集合。标量在深度学习中常用于表示学习率、偏置项等单个参数值。例如,我们用学习率 \(\alpha = 0.01\) 来控制梯度下降的步长。
标量的基本运算遵循普通算术规则:加法 \(x + y\)、减法 \(x - y\)、乘法 \(x \cdot y\)、除法 \(x / y\)(前提是除数不为零)。标量与向量的数乘、向量的每个元素都与该标量进行运算。
1.2 向量(Vector)
向量是有序排列的一维数组,可以视为从实数域 \(\mathbb{R}^n\) 到 \(\mathbb{R}\) 的映射。向量通常记作粗体小写字母 \(\mathbf{x}\),其元素通过下标访问:\(\mathbf{x} = [x_1, x_2, \ldots, x_n]^{\top}\)。其中上标 \(\top\) 表示转置操作,将行向量转换为列向量。
向量的维度记作 \(n\),表示向量包含的元素个数。向量可以看作 \(n \times 1\) 的矩阵。向量的范数(norm)衡量其"长度"或"大小",常用的有 \(L_1\) 范数 \(\| \mathbf{x} \|_1 = \sum_i |x_i|\) 和 \(L_2\) 范数 \(\| \mathbf{x} \|_2 = \sqrt{\sum_i x_i^2}\)。
1.3 矩阵(Matrix)
矩阵是由 \(m\) 行 \(n\) 列元素组成的二维数组,记作粗体大写字母 \(\mathbf{A} \in \mathbb{R}^{m \times n}\)。矩阵的元素记作 \(A_{i,j}\),表示第 \(i\) 行第 \(j\) 列的元素。矩阵是深度学习中表示权重和激活值的核心数据结构。
转置(Transpose):矩阵 \(\mathbf{A}\) 的转置 \(\mathbf{A}^{\top}\) 是一个 \(n \times m\) 的矩阵,满足 \((\mathbf{A}^{\top})_{i,j} = A_{j,i}\)。转置操作将矩阵的行和列互换,这在神经网络的正向传播和反向传播中经常出现。
矩阵加法:两个同维度矩阵 \(\mathbf{A}, \mathbf{B} \in \mathbb{R}^{m \times n}\) 的加法定义为对应元素相加,即 \((\mathbf{A} + \mathbf{B})_{i,j} = A_{i,j} + B_{i,j}\)。矩阵加法满足交换律和结合律。
1.4 张量(Tensor)
张量是向量和矩阵向更高维度的推广。标量(0 阶张量)、向量(1 阶张量)、矩阵(2 阶张量)都是张量的特例。张量通常记作粗体大写字母(如 \(\mathcal{X}\)),通过多维索引访问元素:\(\mathcal{X}_{i,j,k}\) 表示第 \((i,j,k)\) 个元素。
在深度学习中,张量广泛应用于表示图像数据(高 \(\times\) 宽 \(\times\) 通道)、视频数据(时间 \(\times\) 高 \(\times\) 宽 \(\times\) 通道)以及批量训练数据。例如,一张 RGB 彩色图像可以表示为 3 阶张量 \(\mathbb{R}^{H \times W \times C}\),其中 \(H\) 为高度、\(W\) 为宽度、\(C = 3\) 为通道数。
2. 矩阵运算
2.1 矩阵乘法
矩阵乘法(Matrix Multiplication):设 \(\mathbf{A} \in \mathbb{R}^{m \times n}\),\(\mathbf{B} \in \mathbb{R}^{n \times p}\),则它们的乘积 \(\mathbf{C} = \mathbf{A}\mathbf{B}\) 是一个 \(m \times p\) 的矩阵,定义为:
即 \(\mathbf{C}\) 的第 \(i\) 行第 \(j\) 列元素等于 \(\mathbf{A}\) 的第 \(i\) 行与 \(\mathbf{B}\) 的第 \(j\) 列的内积。
矩阵乘法满足以下性质: - 结合律:\((\mathbf{A}\mathbf{B})\mathbf{C} = \mathbf{A}(\mathbf{B}\mathbf{C})\) - 分配律:\(\mathbf{A}(\mathbf{B} + \mathbf{C}) = \mathbf{A}\mathbf{B} + \mathbf{A}\mathbf{C}\) - 转置性质:\((\mathbf{A}\mathbf{B})^{\top} = \mathbf{B}^{\top}\mathbf{A}^{\top}\)
注意:矩阵乘法不满足交换律,即一般情况下 \(\mathbf{A}\mathbf{B} \neq \mathbf{B}\mathbf{A}\)。
在神经网络中,层与层之间的传播可以表示为矩阵乘法:\(\mathbf{y} = \mathbf{W}\mathbf{x} + \mathbf{b}\),其中 \(\mathbf{W}\) 为权重矩阵,\(\mathbf{x}\) 为输入向量,\(\mathbf{b}\) 为偏置向量。
2.2 逆矩阵
逆矩阵(Inverse Matrix):对于 \(n \times n\) 的方阵 \(\mathbf{A}\),如果存在矩阵 \(\mathbf{B}\) 使得 \(\mathbf{A}\mathbf{B} = \mathbf{B}\mathbf{A} = \mathbf{I}_n\)(其中 \(\mathbf{I}_n\) 为 \(n\) 阶单位矩阵),则称 \(\mathbf{B}\) 为 \(\mathbf{A}\) 的逆矩阵,记作 \(\mathbf{A}^{-1}\)。
不是所有矩阵都有逆矩阵。可逆的矩阵称为非奇异矩阵(nonsingular matrix)或可逆矩阵,不可逆的矩阵称为奇异矩阵(singular matrix)。一个矩阵可逆的充分必要条件是它的行列式不为零。
逆矩阵具有以下性质: - \((\mathbf{A}^{-1})^{-1} = \mathbf{A}\) - \((\mathbf{A}\mathbf{B})^{-1} = \mathbf{B}^{-1}\mathbf{A}^{-1}\) - \((\mathbf{A}^{\top})^{-1} = (\mathbf{A}^{-1})^{\top}\)
2.3 行列式
行列式(Determinant):行列式是方阵 \(\mathbf{A}\) 的一个标量值函数,记作 \(\det(\mathbf{A})\) 或 \(|\mathbf{A}|\)。对于 \(2 \times 2\) 矩阵:
对于 \(n \times n\) 矩阵,行列式可以通过递归展开计算。行列式有以下几个重要意义:
- 可逆性判据:\(\det(\mathbf{A}) \neq 0\) 当且仅当 \(\mathbf{A}\) 可逆。
- 体积缩放因子:行列式的绝对值表示线性变换对空间的体积缩放比例。
- 特征值乘积:矩阵的行列式等于其所有特征值的乘积。
2.4 哈达玛积与克罗内克积
哈达玛积(Hadamard Product):两个同维度矩阵的对应元素相乘,记作 \(\mathbf{A} \odot \mathbf{B}\),定义为 \((\mathbf{A} \odot \mathbf{B})_{i,j} = A_{i,j} \cdot B_{i,j}\)。
克罗内克积(Kronecker Product):矩阵 \(\mathbf{A} \in \mathbb{R}^{m \times n}\) 和 \(\mathbf{B} \in \mathbb{R}^{p \times q}\) 的克罗内克积是一个 \((mp) \times (nq)\) 的分块矩阵:
3. 线性组合、生成子空间与线性相关
3.1 线性组合
线性组合(Linear Combination):给定标量系数 \(c_1, c_2, \ldots, c_k\) 和向量 \(\mathbf{v}_1, \mathbf{v}_2, \ldots, \mathbf{v}_k\),它们的线性组合定义为:
线性组合是向量空间理论的基础概念。神经网络的每一层都可以看作是对输入向量进行线性组合后加上非线性变换。
3.2 生成子空间
生成子空间(Span):向量集合 \(\{\mathbf{v}_1, \mathbf{v}_2, \ldots, \mathbf{v}_k\}\) 的生成子空间是指所有可能的线性组合构成的集合,记作 \(\text{span}(\mathbf{v}_1, \ldots, \mathbf{v}_k)\)。
对于 \(\mathbb{R}^n\) 空间中的向量: - 如果 \(\text{span}(\mathbf{v}_1, \ldots, \mathbf{v}_n) = \mathbb{R}^n\),则该向量集合能够生成整个 \(n\) 维空间。 - 生成子空间的维度等于能够生成该空间的线性无关向量的最大数量。
3.3 线性相关与线性无关
线性相关(Linear Dependence):如果存在一组不全为零的标量 \(c_1, c_2, \ldots, c_k\) 使得:
则称向量集合 \(\{\mathbf{v}_1, \mathbf{v}_2, \ldots, \mathbf{v}_k\}\) 线性相关。换句话说,至少有一个向量可以表示为其他向量的线性组合。
线性无关(Linear Independence):如果上述等式仅在所有 \(c_i = 0\) 时成立,则称该向量集合线性无关。线性无关的向量集合中,没有任何向量可以由其他向量线性表示。
在深度学习中的意义:权重矩阵的行(或列)必须线性无关,才能保证信息不被冗余编码。如果权重矩阵的行向量线性相关,则存在冗余参数,这不仅浪费计算资源,还可能导致训练不稳定。
4. 范数
范数是衡量向量或矩阵"大小"的函数,在机器学习和深度学习中用于正则化、损失函数计算等场景。
4.1 \(L^p\) 范数
\(L^p\) 范数:向量 \(\mathbf{x} \in \mathbb{R}^n\) 的 \(L^p\) 范数定义为:
4.2 常用范数
| 范数类型 | 定义 | 数学表达式 | 应用场景 |
|---|---|---|---|
| \(L_1\) 范数 | 曼哈顿范数 | $| \mathbf{x} |_1 = \sum_i | x_i |
| \(L_2\) 范数 | 欧几里得范数 | \(\| \mathbf{x} \|_2 = \sqrt{\sum_i x_i^2}\) | 岭回归、权重衰减 |
| \(L_{\infty}\) 范数 | 最大范数 | $| \mathbf{x} |_{\infty} = \max_i | x_i |
| \(L_0\) 范数 | 非严格范数 | $| \mathbf{x} |_0 = $ 非零元素个数 | 特征稀疏性度量(非凸) |
4.3 弗罗贝尼乌斯范数
弗罗贝尼乌斯范数(Frobenius Norm):矩阵 \(\mathbf{A} \in \mathbb{R}^{m \times n}\) 的弗罗贝尼乌斯范数定义为:
弗罗贝尼乌斯范数可以看作是矩阵的" \(L_2\) 范数",在深度学习中常用于权重矩阵的正则化,防止过拟合。
4.4 范数的几何意义
- \(L_1\) 范数:点到坐标轴的距离之和(曼哈顿距离)
- \(L_2\) 范数:点到原点的欧几里得距离
- \(L_{\infty}\) 范数:点到原点坐标轴对齐的最大值距离
5. 特殊矩阵
5.1 对角矩阵
对角矩阵(Diagonal Matrix):一个矩阵 \(\mathbf{D} \in \mathbb{R}^{n \times n}\) 称为对角矩阵,当且仅当 \(D_{i,j} = 0\)(对所有 \(i \neq j\))。对角矩阵仅在主对角线上可能有非零元素。
对角矩阵的运算具有简化的性质: - 对角矩阵的乘积:两个对角矩阵的乘积仍是对角矩阵,对角元素相乘。 - 对角矩阵的逆:对角矩阵 \(\mathbf{D}\) 可逆当且仅当所有对角元素均非零,其逆矩阵为 \((\mathbf{D}^{-1})_{i,i} = 1/D_{i,i}\)。
在深度学习中的应用:自编码器的瓶颈层(bottleneck layer)通常使用对角矩阵来近似协方差矩阵,实现降维或特征提取。
5.2 对称矩阵
对称矩阵(Symmetric Matrix):如果矩阵 \(\mathbf{A}\) 满足 \(\mathbf{A} = \mathbf{A}^{\top}\),即 \(A_{i,j} = A_{j,i}\),则称 \(\mathbf{A}\) 为对称矩阵。
对称矩阵的重要性质: - 对称矩阵的特征值均为实数。 - 对称矩阵可以被正交对角化:\(\mathbf{A} = \mathbf{Q}\mathbf{\Lambda}\mathbf{Q}^{\top}\),其中 \(\mathbf{Q}\) 是正交矩阵,\(\mathbf{\Lambda}\) 是对角矩阵。
在深度学习中的应用:协方差矩阵、注意力机制中的相似度矩阵通常是对称的。
5.3 正交矩阵
正交矩阵(Orthogonal Matrix):如果矩阵 \(\mathbf{Q} \in \mathbb{R}^{n \times n}\) 满足 \(\mathbf{Q}\mathbf{Q}^{\top} = \mathbf{Q}^{\top}\mathbf{Q} = \mathbf{I}_n\),则称 \(\mathbf{Q}\) 为正交矩阵。
正交矩阵的性质: - \(\mathbf{Q}\) 的列向量两两正交且单位范数。 - 正交矩阵保持向量的 \(L_2\) 范数:\(\| \mathbf{Q}\mathbf{x} \|_2 = \| \mathbf{x} \|_2\)。 - 正交变换不改变向量间的点积:\(\langle \mathbf{Q}\mathbf{x}, \mathbf{Q}\mathbf{y} \rangle = \langle \mathbf{x}, \mathbf{y} \rangle\)。
在深度学习中的应用: Dropout 可以看作是一种随机正交变换的近似;权重初始化时保持方差稳定。
5.4 单位矩阵
单位矩阵(Identity Matrix):主对角线上元素均为 1,其余元素均为 0 的 \(n \times n\) 矩阵,记作 \(\mathbf{I}_n\)。单位矩阵是矩阵乘法中的单位元:\(\mathbf{A}\mathbf{I} = \mathbf{I}\mathbf{A} = \mathbf{A}\)。
6. 特征值分解与奇异值分解
6.1 特征值与特征向量
特征值分解(Eigendecomposition):设 \(\mathbf{A}\) 是一个 \(n \times n\) 的方阵。如果存在非零向量 \(\mathbf{v}\) 和标量 \(\lambda\) 满足:
则称 \(\lambda\) 为 \(\mathbf{A}\) 的特征值(eigenvalue),\(\mathbf{v}\) 为对应于 \(\lambda\) 的特征向量(eigenvector)。
特征值和特征向量具有以下重要性质: - 矩阵 \(\mathbf{A}\) 有 \(n\) 个特征值(可能有重根),对应的特征向量线性无关时可以构成 \(\mathbb{R}^n\) 的一组基。 - 特征值的乘积等于矩阵的行列式:\(\prod_i \lambda_i = \det(\mathbf{A})\)。 - 特征值的和等于矩阵的迹:\(\sum_i \lambda_i = \text{tr}(\mathbf{A})\)。
对称矩阵的特征值分解:对称矩阵 \(\mathbf{A}\) 可以分解为 \(\mathbf{A} = \mathbf{Q}\mathbf{\Lambda}\mathbf{Q}^{\top}\),其中 \(\mathbf{Q}\) 是正交矩阵(列向量为特征向量),\(\mathbf{\Lambda}\) 是对角矩阵(对角元素为特征值)。
6.2 奇异值分解
奇异值分解(Singular Value Decomposition, SVD):对于任意矩阵 \(\mathbf{A} \in \mathbb{R}^{m \times n}\),存在正交矩阵 \(\mathbf{U} \in \mathbb{R}^{m \times m}\)、正交矩阵 \(\mathbf{V} \in \mathbb{R}^{n \times n}\) 和对角矩阵 \(\mathbf{\Sigma} \in \mathbb{R}^{m \times n}\),使得:
其中: - \(\mathbf{U}\) 的列向量称为左奇异向量(left singular vectors)。 - \(\mathbf{V}\) 的列向量称为右奇异向量(right singular vectors)。 - \(\mathbf{\Sigma}\) 的对角元素 \(\sigma_1 \geq \sigma_2 \geq \cdots \geq 0\) 称为奇异值(singular values)。
奇异值与特征值的关系:对于 \(\mathbf{A}\mathbf{A}^{\top}\) 和 \(\mathbf{A}^{\top}\mathbf{A}\),它们的非零特征值 \(\lambda_i\) 与奇异值 \(\sigma_i\) 的关系为 \(\sigma_i = \sqrt{\lambda_i}\)。
SVD 的应用: - 降维:保留最大的 \(k\) 个奇异值对应的奇异向量,实现主成分分析(PCA)。 - 矩阵近似:使用低秩近似来压缩数据或提取主要特征。 - 伪逆计算:通过 SVD 计算非方阵矩阵的伪逆 \(\mathbf{A}^{\dagger} = \mathbf{V}\mathbf{\Sigma}^{-1}\mathbf{U}^{\top}\)。
7. 矩阵微积分与深度学习应用
7.1 矩阵微积分基础
雅可比矩阵(Jacobian Matrix):对于函数 \(\mathbf{f}: \mathbb{R}^n \rightarrow \mathbb{R}^m\),雅可比矩阵 \(\mathbf{J} \in \mathbb{R}^{m \times n}\) 定义为:
雅可比矩阵的每一行表示一个输出函数对所有输入变量的偏导数。在深度学习的反向传播算法中,雅可比矩阵用于链式法则的计算。
梯度:对于标量函数 \(f: \mathbb{R}^n \rightarrow \mathbb{R}\),梯度 \(\nabla f(\mathbf{x})\) 是一个向量:
梯度指向函数增长最快的方向,深度学习中的梯度下降法沿梯度的反方向更新参数。
海森矩阵(Hessian Matrix):对于标量函数 \(f: \mathbb{R}^n \rightarrow \mathbb{R}\),海森矩阵 \(\mathbf{H} \in \mathbb{R}^{n \times n}\) 定义为:
海森矩阵是梯度雅可比矩阵,在二阶优化算法(如牛顿法)中用于加速收敛。
7.2 深度学习中的矩阵运算
权重矩阵:神经网络中,每一层的计算可以表示为 \(\mathbf{a}^{(l)} = \sigma(\mathbf{W}^{(l)}\mathbf{a}^{(l-1)} + \mathbf{b}^{(l)})\),其中 \(\mathbf{W}^{(l)}\) 是权重矩阵,\(\mathbf{a}^{(l-1)}\) 是上一层激活值,\(\mathbf{b}^{(l)}\) 是偏置向量,\(\sigma\) 是非线性激活函数。
反向传播中的矩阵微积分:设损失函数为 \(\mathcal{L}\),反向传播需要计算 \(\frac{\partial \mathcal{L}}{\partial \mathbf{W}^{(l)}}\)。根据链式法则:
其中 \(\mathbf{z}^{(l)} = \mathbf{W}^{(l)}\mathbf{a}^{(l-1)} + \mathbf{b}^{(l)}\),\(\mathbf{\delta}^{(l)}\) 是第 \(l\) 层的误差项。
雅可比矩阵在深度学习中的应用: - 循环神经网络(RNN):隐藏状态的展开计算涉及雅可比矩阵的连乘,这可能导致梯度消失或梯度爆炸问题。 - Transformer 架构:注意力机制通过计算 Query、Key、Value 矩阵的乘积,其梯度计算也涉及复杂的矩阵微积分。
8. 总结
本章系统介绍了深度学习所需的线性代数基础知识。从标量、向量、矩阵、张量的基本概念出发,探讨了矩阵的核心运算(乘法、转置、逆、行列式),阐述了线性组合、生成子空间、线性相关等向量空间理论,介绍了各种范数的定义与应用场景,分析了对角矩阵、对称矩阵、正交矩阵、单位矩阵等特殊矩阵的性质,最后深入讲解了特征值分解、奇异值分解以及矩阵微积分在深度学习中的关键应用。这些内容为理解神经网络的工作原理、优化算法的设计以及模型训练过程奠定了坚实的数学基础。
公式汇总表
| 公式名称 | 数学表达式 |
|---|---|
| 矩阵乘法 | \(C_{i,j} = \sum_{k} A_{i,k}B_{k,j}\) |
| 行列式(2×2) | \(\det(\mathbf{A}) = ad - bc\) |
| \(L_p\) 范数 | $| \mathbf{x} |_p = (\sum_i |
| 弗罗贝尼乌斯范数 | \(\| \mathbf{A} \|_F = \sqrt{\sum_{i,j}A_{i,j}^2}\) |
| 特征值方程 | \(\mathbf{A}\mathbf{v} = \lambda\mathbf{v}\) |
| SVD 分解 | \(\mathbf{A} = \mathbf{U}\mathbf{\Sigma}\mathbf{V}^{\top}\) |
| 雅可比矩阵 | \(J_{i,j} = \partial f_i / \partial x_j\) |
| 梯度 | \(\nabla f(\mathbf{x}) = (\partial f / \partial x_1, \ldots, \partial f / \partial x_n)^{\top}\) |
参考文献:Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. 第 2 章线性代数部分。