机器学习中的线性代数:矩阵基础与分解技术
在机器学习领域,线性代数是解决众多问题的关键工具。矩阵代数和向量微积分在处理数据、优化模型等方面发挥着重要作用。本文将深入探讨线性代数中的一些基本概念,如坐标向量、变换矩阵、行列式、特征值等,以及常见的矩阵分解技术,包括 LU 分解、QR 分解、Cholesky 分解、特征值分解和奇异值分解(SVD)。
1. 基本概念
1.1 坐标向量表示
设 $\hat{\mathbf{b}}$ 为一组基,向量 $\mathbf{u}$ 相对于 $\hat{\mathbf{b}}$ 的坐标向量表示为 $\mathbf{R}[\mathbf{u}] {\hat{\mathbf{b}}}=\begin{bmatrix}q_1\\vdots\q_n\end{bmatrix}$,其中 $q_1,\cdots,q_n$ 是 $\mathbf{u}$ 的坐标。$\mathbf{U}$ 相对于 $\hat{\mathbf{b}}$ 的标准表示为 $\mathbf{R}[\mathbf{U}] {\hat{\mathbf{b}}}=\begin{bmatrix}\mathbf{R}[\mathbf{u} 1] {\hat{\mathbf{b}}}&\cdots&\mathbf{R}[\mathbf{u} n] {\hat{\mathbf{b}}}\end{bmatrix}$。
1.2 变换矩阵
对于向量空间 $V$ 和 $W$,分别考虑有序基 $\hat{\mathbf{b}} = (\mathbf{b} 1,\mathbf{b}_2,\cdots,\mathbf{b}_p)$ 和 $\hat{\mathbf{C}} = (\mathbf{c}_1,\mathbf{c}_2,\cdots,\mathbf{c}_q)$。设线性映射 $\mathcal{T}:V\rightarrow W$,对于 $i\in{1,\cdots,q}$,$\mathcal{T}(\mathbf{b}_j)=\sum {i = 1}^{q}a_{ij}\mathbf{c} i$ 是 $\mathcal{T}(\mathbf{b}_j)$ 相对于 $\hat{\mathbf{C}}$ 的唯一表示。则元素为 $A(i,j)=a {ij}$ 的 $p\times q$ 矩阵 $A$ 称为 $\mathcal{T}$ 的变换矩阵。
1.3 行列式
行列式是一个标量值函数,用于从数学角度分析线性方程组。行列式仅对行数和列数相同的方阵 $M_{q\times q}$ 有定义,即:
[
\det(M)=\begin{vmatrix}
m_{11}&m_{12}&\cdots&m_{1q}\
m_{21}&m_{22}&\cdots&m_{2q}\
\vdots&\vdots&\ddots&\vdots\
m_{q1}&m_{q2}&\cdots&m_{qq}
\end{vmatrix}
]
$q\times q$ 矩阵 $M$ 的行列式可以通过以下公式定义:
[
\det(M)=\sum_{\text{所有排列 }(i_1,i_2,\cdots,i_q)}\pm m_{1i_1}m_{2i_2}\cdots m_{qi_q}
]
其中,当排列为偶排列时取正号,奇排列时取负号。
1.4 特征值
对于 $q\times q$ 矩阵 $M$,若存在非零向量 $\mathbf{x}\in\mathbb{R}^q\setminus{0}$ 满足特征方程 $M\mathbf{x}=\lambda\mathbf{x}$,则 $\lambda$ 称为 $M$ 的特征值,$\mathbf{x}$ 称为对应的特征向量。
1.5 秩
矩阵 $M_{p\times q}$ 的列向量中线性无关的最大列数等于线性无关的最大行数,称为矩阵的秩,记为 $\text{rank}(M)$。
1.6 对角矩阵
对角矩阵是除对角线元素外其余元素均为零的矩阵,形式为:
[
D=\begin{bmatrix}
c_1&0&\cdots&0\
0&c_2&\cdots&0\
\vdots&\vdots&\ddots&\vdots\
0&0&\cdots&c_n
\end{bmatrix}
]
对角矩阵在计算行列式、幂和逆时具有简单的计算过程。例如,对角矩阵的行列式等于其对角元素的乘积;$D^k$ 可以通过将每个对角元素的 $k$ 次幂得到;对角矩阵的逆是所有非零对角元素的倒数。
1.7 可对角化矩阵
若存在可逆的 $q\times q$ 矩阵 $P$,使得 $D = P^{-1}MP$ 是对角矩阵,则称 $q\times q$ 矩阵 $M$ 是可对角化的。这意味着矩阵 $M$ 可以通过相似变换转换为对角矩阵,且变换后的对角矩阵的对角元素为 $M$ 的特征值,$P$ 的列向量为对应的特征向量。
2. 矩阵分解技术
矩阵分解是将一个矩阵表示为多个具有特定性质的矩阵的乘积,它可以简化复杂的矩阵运算,是线性代数在数据处理中的基础,常用于求解线性方程组、计算行列式和逆矩阵等。常见的矩阵分解技术包括:
- LU 分解
- QR 分解
- Cholesky 分解
- 特征值分解
- 奇异值分解(SVD)
2.1 LU 分解
LU 分解将一个 $m\times n$ 矩阵 $A$ 分解为一个下三角矩阵 $L_w$ 和一个上三角矩阵 $U_p$,其中 $L_w$ 是 $m\times m$ 矩阵,其对角元素为 1。即 $A = L_wU_p$。
2.1.1 算法步骤
- 给定线性方程组 $A\mathbf{x}=\mathbf{b}$,将 $A$ 分解为 $L_wU_p$,得到 $L_wU_p\mathbf{x}=\mathbf{b}$。
- 令 $\mathbf{y}=U_p\mathbf{x}$,则原方程组可转化为两个三角方程组:$L_w\mathbf{y}=\mathbf{b}$ 和 $U_p\mathbf{x}=\mathbf{y}$。
- 由于 $L_w$ 和 $U_p$ 是三角矩阵,可通过前向替换和后向替换分别求解 $\mathbf{y}$ 和 $\mathbf{x}$。
2.1.2 示例
考虑矩阵 $\begin{bmatrix}4&3\6&6\end{bmatrix}$,设 $\begin{bmatrix}4&3\6&6\end{bmatrix}=\begin{bmatrix}l_{11}&0\l_{21}&l_{22}\end{bmatrix}\begin{bmatrix}u_{11}&u_{12}\0&u_{22}\end{bmatrix}$,可得 $l_{21}=1.5$,$l_{22}=1$,$u_{11}=4$,$u_{12}=3$,$u_{22}=1.5$。即 $\begin{bmatrix}4&3\6&6\end{bmatrix}=\begin{bmatrix}1&0\1.5&1\end{bmatrix}\begin{bmatrix}4&3\0&1.5\end{bmatrix}$。
2.2 QR 分解
QR 分解将一个具有线性无关列的 $m\times n$ 矩阵 $A$ 分解为一个 $m\times n$ 矩阵 $Q$ 和一个 $n\times n$ 可逆上三角矩阵 $R$,其中 $Q$ 的列向量构成 $A$ 的列空间的一组正交基,$R$ 的对角元素为正。即 $A = QR$。
2.2.1 算法步骤(Gram - Schmidt 方法)
- 设 $A = [\mathbf{a}_1|\cdots|\mathbf{a}_n]$,其中 $\mathbf{a}_i$ 是 $A$ 的列向量。
- 计算正交向量 $\mathbf{u} 1=\mathbf{a}_1$,$\mathbf{e}_1=\frac{\mathbf{u}_1}{|\mathbf{u}_1|}$;$\mathbf{u}_2=\mathbf{a}_2 - (\mathbf{a}_2\cdot\mathbf{e}_1)\mathbf{e}_1$,$\mathbf{e}_2=\frac{\mathbf{u}_2}{|\mathbf{u}_2|}$;以此类推,$\mathbf{u}_k=\mathbf{a}_k - \sum {i = 1}^{k - 1}(\mathbf{a}_k\cdot\mathbf{e}_i)\mathbf{e}_i$,$\mathbf{e}_k=\frac{\mathbf{u}_k}{|\mathbf{u}_k|}$。
- 得到 $Q = [\mathbf{e} 1|\cdots|\mathbf{e}_n]$,$R$ 的元素为 $r {ij}=\mathbf{a} j\cdot\mathbf{e}_i$($i\leq j$),$r {ij}=0$($i > j$)。
2.2.2 示例
考虑矩阵 $A=\begin{bmatrix}1&1&0\1&0&1\0&1&1\end{bmatrix}$,通过 Gram - Schmidt 方法计算可得:
$Q=\begin{bmatrix}\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{6}}&-\frac{1}{\sqrt{3}}\\frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{6}}&\frac{1}{\sqrt{3}}\0&\frac{2}{\sqrt{6}}&\frac{1}{\sqrt{3}}\end{bmatrix}$,$R=\begin{bmatrix}\sqrt{2}&\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\0&\frac{\sqrt{6}}{2}&\frac{\sqrt{6}}{2}\0&0&\frac{2\sqrt{3}}{3}\end{bmatrix}$
2.3 Cholesky 分解
Cholesky 分解将一个对称正定矩阵 $A$ 分解为一个下三角矩阵 $L$ 与其共轭转置 $L^T$ 的乘积,即 $A = LL^T$。
2.3.1 算法步骤
对于一个 $3\times 3$ 矩阵 $A=\begin{bmatrix}a_{11}&a_{12}&a_{13}\a_{21}&a_{22}&a_{23}\a_{31}&a_{32}&a_{33}\end{bmatrix}$,设 $L=\begin{bmatrix}l_{11}&0&0\l_{21}&l_{22}&0\l_{31}&l_{32}&l_{33}\end{bmatrix}$,则:
- 对角元素:$l_{11}=\sqrt{a_{11}}$,$l_{22}=\sqrt{a_{22}-l_{21}^2}$,$l_{33}=\sqrt{a_{33}-l_{31}^2 - l_{32}^2}$。
- 非对角元素:$l_{21}=\frac{a_{21}}{l_{11}}$,$l_{31}=\frac{a_{31}}{l_{11}}$,$l_{32}=\frac{a_{32}-l_{31}l_{21}}{l_{22}}$。
2.3.2 示例
- 对于矩阵 $A=\begin{bmatrix}25&15&5\15&18&0\5&0&11\end{bmatrix}$,可得 $L=\begin{bmatrix}5&0&0\3&3&0\1&1&3\end{bmatrix}$。
- 对于矩阵 $A=\begin{bmatrix}18&22&54&42\22&70&86&62\54&86&174&134\42&62&134&106\end{bmatrix}$,可得 $L=\begin{bmatrix}4.24264&0.00000&0.00000&0.00000\5.18545&6.56591&0.00000&0.00000\12.72792&3.04604&1.64974&0.00000\9.89949&1.62455&1.84971&1.39262\end{bmatrix}$
2.4 特征值分解
特征值分解将一个可对角化的 $q\times q$ 矩阵 $M$ 分解为 $M = PDP^{-1}$,其中 $D$ 是对角矩阵,其对角元素为 $M$ 的特征值,$P$ 的列向量为对应的特征向量。
2.4.1 算法步骤
- 求解矩阵 $M$ 的特征方程 $\det(M - \lambda I)=0$,得到特征值 $\lambda_1,\cdots,\lambda_q$。
- 对于每个特征值 $\lambda_i$,求解齐次线性方程组 $(M - \lambda_i I)\mathbf{x}=\mathbf{0}$,得到对应的特征向量 $\mathbf{p}_i$。
- 构造矩阵 $P = [\mathbf{p}_1|\cdots|\mathbf{p}_q]$ 和 $D=\begin{bmatrix}\lambda_1&0&\cdots&0\0&\lambda_2&\cdots&0\\vdots&\vdots&\ddots&\vdots\0&0&\cdots&\lambda_q\end{bmatrix}$。
2.4.2 示例
考虑矩阵 $M=\begin{bmatrix}2&1\1&2\end{bmatrix}$,其特征多项式为 $\det(M - \lambda I)=(2 - \lambda)^2 - 1=\lambda^2 - 4\lambda + 3 = (\lambda - 3)(\lambda - 1)$,特征值为 $\lambda_1 = 1$,$\lambda_2 = 3$。对应的特征向量为 $\mathbf{p}_1=\begin{bmatrix}\frac{1}{\sqrt{2}}\-\frac{1}{\sqrt{2}}\end{bmatrix}$,$\mathbf{p}_2=\begin{bmatrix}\frac{1}{\sqrt{2}}\\frac{1}{\sqrt{2}}\end{bmatrix}$。则 $P=\begin{bmatrix}\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\-\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\end{bmatrix}$,$D=\begin{bmatrix}1&0\0&3\end{bmatrix}$,且 $M = PDP^{-1}$。
2.5 奇异值分解(SVD)
奇异值分解是一种将任意 $p\times q$ 矩阵 $M$ 分解为 $M = U\Sigma V^T$ 的方法,其中 $U$ 是 $p\times p$ 正交矩阵,$V$ 是 $q\times q$ 正交矩阵,$\Sigma$ 是 $p\times q$ 对角矩阵,其对角元素为 $M$ 的奇异值。
2.5.1 算法步骤
- 计算 $M^TM$ 的特征值和特征向量,特征值的平方根即为奇异值 $\sigma_i$。
- 对 $M^TM$ 的特征向量进行正交化,得到 $V$。
- 计算 $U$ 的列向量 $\mathbf{u}_i=\frac{M\mathbf{v}_i}{\sigma_i}$。
- 构造 $\Sigma$,其对角元素为奇异值 $\sigma_i$,其余元素为 0。
2.5.2 示例
考虑矩阵 $M=\begin{bmatrix}1&0&1\2&1&0\end{bmatrix}$,计算 $M^TM=\begin{bmatrix}5&2&1\2&1&0\1&0&1\end{bmatrix}$,其特征值分解为 $M^TM = PDP^T$,其中 $D=\begin{bmatrix}6&0&0\0&1&0\0&0&0\end{bmatrix}$,$P=\begin{bmatrix}\frac{5}{\sqrt{30}}&\frac{1}{\sqrt{6}}&\frac{1}{\sqrt{3}}\\frac{2}{\sqrt{30}}&-\frac{2}{\sqrt{6}}&\frac{1}{\sqrt{3}}\\frac{1}{\sqrt{30}}&\frac{1}{\sqrt{6}}&-\frac{1}{\sqrt{3}}\end{bmatrix}$。奇异值为 $\sigma_1=\sqrt{6}$,$\sigma_2 = 1$,$\Sigma=\begin{bmatrix}\sqrt{6}&0&0\0&1&0\end{bmatrix}$,$V = P$,$U=\begin{bmatrix}\frac{1}{\sqrt{5}}&\frac{2}{\sqrt{5}}\\frac{2}{\sqrt{5}}&-\frac{1}{\sqrt{5}}\end{bmatrix}$,则 $M = U\Sigma V^T$。
2.6 SVD 的几何解释
在矩阵 $M$ 的线性变换下,$\mathbb{R}^p$ 中的单位球会被变换为 $\mathbb{R}^q$ 中的一个实心或空心椭球。矩阵 $U$ 的列向量表示椭球的主轴方向,从长轴到短轴排列;矩阵 $V$ 的列向量是 $\mathbb{R}^p$ 中的单位向量,它们映射到椭球的主轴方向。奇异值表示在这些主轴方向上的缩放因子。
例如,在二维情况下,单位圆在矩阵 $M$ 的作用下会变成一个倾斜的椭圆。椭圆的长轴和短轴方向分别对应最大和次大的奇异值,长轴和短轴的长度分别是最大和次大奇异值乘以对应的单位向量。
总结
本文介绍了线性代数中的基本概念,包括坐标向量、变换矩阵、行列式、特征值等,以及常见的矩阵分解技术。这些概念和技术在机器学习中具有广泛的应用,如数据降维、矩阵求逆、线性方程组求解等。不同的矩阵分解方法适用于不同的场景,选择合适的分解方法可以提高计算效率和模型性能。
通过对矩阵的深入理解和运用,我们可以更好地处理和分析数据,为机器学习模型的设计和优化提供有力支持。希望本文能帮助读者对线性代数在机器学习中的应用有更深入的认识。
3. 矩阵分解技术的应用场景对比
不同的矩阵分解技术在实际应用中各有优劣,适用于不同的场景。以下是对几种常见矩阵分解技术应用场景的对比:
| 分解技术 | 应用场景 | 优势 | 劣势 |
| — | — | — | — |
| LU 分解 | 求解线性方程组、计算行列式和逆矩阵 | 计算速度快,对于稠密矩阵较为高效 | 不适用于病态矩阵,可能会出现数值不稳定的情况 |
| QR 分解 | 自适应信号处理、最小二乘法问题 | 数值稳定性好,对于列满秩矩阵能得到唯一分解 | 计算复杂度较高,尤其是对于大规模矩阵 |
| Cholesky 分解 | 对称正定矩阵相关问题,如求解线性方程组、计算矩阵平方根 | 计算效率高,利用了矩阵的对称性 | 只适用于对称正定矩阵 |
| 特征值分解 | 矩阵对角化、求解动态系统的稳定性 | 可以揭示矩阵的特征结构,方便进行矩阵幂运算 | 要求矩阵可对角化,对于非对称矩阵可能无法进行分解 |
| 奇异值分解(SVD) | 数据降维、矩阵近似、图像压缩等 | 适用于任意矩阵,能提取矩阵的主要特征 | 计算复杂度高,尤其是对于大规模矩阵 |
4. 矩阵分解技术的流程总结
为了更清晰地展示矩阵分解技术的步骤,以下是几种常见矩阵分解技术的流程总结:
4.1 LU 分解流程
graph TD;
A[给定矩阵 A] --> B[将 A 分解为 L 和 U];
B --> C[求解 Ly = b];
C --> D[求解 Ux = y];
D --> E[得到解 x];
4.2 QR 分解流程(Gram - Schmidt 方法)
graph TD;
A[给定矩阵 A] --> B[计算正交向量 u 和 e];
B --> C[构造矩阵 Q];
C --> D[计算矩阵 R];
D --> E[得到分解 A = QR];
4.3 Cholesky 分解流程
graph TD;
A[给定对称正定矩阵 A] --> B[计算 L 的对角元素];
B --> C[计算 L 的非对角元素];
C --> D[得到分解 A = LL^T];
4.4 特征值分解流程
graph TD;
A[给定可对角化矩阵 M] --> B[求解特征方程 det(M - λI) = 0];
B --> C[得到特征值 λ];
C --> D[求解特征向量 p];
D --> E[构造矩阵 P 和 D];
E --> F[得到分解 M = PDP^-1];
4.5 奇异值分解(SVD)流程
graph TD;
A[给定矩阵 M] --> B[计算 M^TM 的特征值和特征向量];
B --> C[得到奇异值 σ];
C --> D[正交化特征向量得到 V];
D --> E[计算 U 的列向量 u];
E --> F[构造矩阵 Σ];
F --> G[得到分解 M = UΣV^T];
5. 实际应用案例
5.1 数据降维
在机器学习中,数据降维是一个重要的任务,可以减少数据的维度,降低计算复杂度,同时保留数据的主要特征。奇异值分解(SVD)是一种常用的数据降维方法。
假设我们有一个高维数据集 $X$,我们可以对 $X$ 进行 SVD 分解,得到 $X = U\Sigma V^T$。然后,我们可以选择保留前 $k$ 个最大的奇异值,将 $\Sigma$ 矩阵中的其余元素置为 0,得到 $\Sigma_k$。最后,我们可以通过 $X_k = U_k\Sigma_k V_k^T$ 得到降维后的数据 $X_k$,其中 $U_k$ 和 $V_k$ 分别是 $U$ 和 $V$ 的前 $k$ 列。
5.2 图像压缩
图像可以看作是一个矩阵,每个像素的灰度值或颜色值作为矩阵的元素。利用 SVD 可以对图像进行压缩。具体步骤如下:
1. 将图像表示为矩阵 $M$。
2. 对 $M$ 进行 SVD 分解,得到 $M = U\Sigma V^T$。
3. 选择保留前 $k$ 个最大的奇异值,将 $\Sigma$ 矩阵中的其余元素置为 0,得到 $\Sigma_k$。
4. 通过 $M_k = U_k\Sigma_k V_k^T$ 得到压缩后的图像矩阵 $M_k$。
通过这种方式,我们可以在保留图像主要特征的前提下,减少图像的数据量,实现图像压缩。
6. 总结与展望
本文详细介绍了线性代数中的基本概念和常见的矩阵分解技术,包括 LU 分解、QR 分解、Cholesky 分解、特征值分解和奇异值分解(SVD)。这些技术在机器学习、数据处理、图像压缩等领域具有广泛的应用。
在实际应用中,我们需要根据具体的问题和数据特点选择合适的矩阵分解方法。例如,对于对称正定矩阵,Cholesky 分解是一个高效的选择;对于任意矩阵,SVD 可以提供更全面的特征信息。
未来,随着数据量的不断增加和计算能力的提升,矩阵分解技术将在更多领域发挥重要作用。同时,研究人员也在不断探索新的矩阵分解算法,以提高计算效率和数值稳定性。我们期待这些技术的进一步发展,为解决复杂的实际问题提供更强大的工具。
机器学习中的矩阵分解技术详解
超级会员免费看
1811

被折叠的 条评论
为什么被折叠?



