人工智能之数学基础 线性代数----由于公式问题 公式请参考公众号

  第二章 向量空间

前言

  向量空间(Vector Space)是线性代数的核心概念之一,它为理解线性变换、特征值、最小二乘法、主成分分析(PCA)等高级主题提供了理论基础。本文将系统介绍向量空间中的关键概念:维度、基、正交性、投影,并提供配套的 Python(NumPy/SciPy)代码实现。

一、向量空间(Vector Space)定义

  一个向量空间 是一个非空集合,其元素称为向量,满足以下公理(对实数域 上的向量空间):

  1. 1. 加法封闭性:若 ,则
  2. 2. 标量乘法封闭性:若 ,,则
  3. 3. 加法交换律、结合律,存在零向量,每个向量有加法逆元
  4. 4. 标量乘法与域运算兼容(分配律、结合律等)

  最常见的向量空间: —— 所有 维实向量的集合。

二、子空间(Subspace)
  • 定义:向量空间 的子集 若本身也构成向量空间(对加法和标量乘法封闭),则称 为 的子空间。
  • 例子:
  • 平面中过原点的直线是 的子空间
  • 矩阵 的列空间(Column Space)是 的子空间三、线性相关与线性无关
  • 线性组合:向量 的线性组合为:
  • 线性相关:若存在不全为零的系数 使得线性组合为零向量,则这些向量线性相关。
  • 线性无关:只有当所有 时组合才为零向量。

      线性无关是构成“基”的前提。

    四、基(Basis)与维度(Dimension)1. 基(Basis)
  • 定义:向量空间 的一组向量 称为 的基,如果:
  • 1. 它们线性无关
  • 2. 它们能张成(span)整个空间 ,即 中任意向量都可表示为它们的线性组合

      例如: 的标准基为:

    2. 维度(Dimension)
  • 向量空间 的维度 是其任意一组基中向量的个数。
  • 所有基的大小相同(定理)。

      例: 的维度为 ;平面中过原点的直线维度为 1。

    Python 实现:判断线性无关 & 求秩(维度)

      import numpy as npfrom scipy.linalg import qr# 构造矩阵,每列为一个向量V = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=float) # 注意:这组向量线性相关!# 方法1:通过矩阵秩判断rank = np.linalg.matrix_rank(V)print("矩阵秩(即列空间维度):", rank)# 方法2:QR分解(Q的列是正交基)Q, R = qr(V)# 非零对角元个数 = 秩nonzero_diag = np.sum(np.abs(np.diag(R)) > 1e-10)print("QR分解得到的秩:", nonzero_diag)# 若 rank == 列数 → 线性无关if rank == V.shape[1]: print("向量组线性无关")else: print("向量组线性相关")五、正交性(Orthogonality)1. 正交向量

  • 两个向量 正交(orthogonal)当且仅当它们的点积为零:
  • 2. 正交集与标准正交基(Orthonormal Basis)
  • 正交集:集合中任意两个不同向量都正交。
  • 标准正交基:正交集 + 每个向量长度为 1(单位向量)。

      优点:在标准正交基下,坐标计算简单,投影公式简洁。

    3. Gram-Schmidt 正交化

      将一组线性无关向量转化为正交(或标准正交)基的过程。

    Python 实现(使用 QR 分解)

      import numpy as npfrom scipy.linalg import qr# 原始线性无关向量(每列为一个向量)A = np.array([[1, 1], [1, 0], [0, 1]], dtype=float)# QR 分解:A = Q R,其中 Q 的列是标准正交基Q, R = qr(A, mode='economic') # economic: Q 形状与 A 相同print("原始向量(列):\n", A)print("标准正交基 Q:\n", Q)print("验证 Q^T Q = I:\n", np.round(Q.T @ Q, decimals=10))

      qr 函数内部实现了改进的 Gram-Schmidt 或 Householder 反射,数值更稳定。

    六、投影(Projection)1. 向量到向量的投影
  • 将向量 投影到非零向量 上:
  •   2. 向量到子空间的投影 设子空间 (由矩阵 的列张成),则 在 上的投影 满足:

      人工智能之数学基础 线性代数:第二章 向量空间

  • 这就是最小二乘解!投影误差 与子空间正交。Python 实现

      import numpy as np# 子空间由 A 的列张成A = np.array([[1, 1], [1, 0], [0, 1]], dtype=float)b = np.array([2, 1, 3], dtype=float)# 方法1:使用正规方程 (Normal Equation)x = np.linalg.solve(A.T @ A, A.T @ b)proj_b = A @ x# 方法2:使用 lstsq(更稳定)x2, residuals, rank, s = np.linalg.lstsq(A, b, rcond=None)proj_b2 = A @ x2print("原始向量 b:", b)print("投影到 Col(A):", proj_b)print("误差向量 (应与 A 的列正交):", b - proj_b)print("验证正交性 A^T (b - proj_b) ≈ 0:", np.round(A.T @ (b - proj_b), decimals=10))七、综合示例:构造子空间、求基、正交化、投影

      import numpy as npfrom scipy.linalg import qr# 1. 定义一组生成子空间的向量(可能线性相关)V = np.array([[1, 2, 3], [2, 4, 6], # 第二行是第一行的2倍 → 相关 [1, 0, 1]], dtype=float)# 2. 提取线性无关列(作为基)rank = np.linalg.matrix_rank(V)print(f"子空间维度: {rank}")# 使用 SVD 或 QR 找基Q, R, P = qr(V, pivoting=True) # pivoting 返回列置换basis_indices = P[:rank]basis = V[:, basis_indices]print("选出的基(线性无关列):\n", basis)# 3. 对基进行标准正交化Q_basis, _ = qr(basis, mode='economic')print("标准正交基:\n", Q_basis)# 4. 投影一个新向量到该子空间b = np.array([5, 6, 7], dtype=float)proj = Q_basis @ (Q_basis.T @ b) # 因为 Q 是标准正交基,投影公式简化为 Q Q^T bprint("b =", b)print("投影到子空间 =", proj)print("投影误差 =", b - proj)print("验证误差与子空间正交:", np.round(Q_basis.T @ (b - proj), decimals=10))八、关键概念总结表

      概念数学描述Python 工具向量空间对加法和标量乘法封闭的集合—子空间向量空间的子集,自身也是向量空间列空间 np.linalg.matrix_rank(A)基线性无关且张成空间的向量组QR 分解、SVD维度基中向量的个数np.linalg.matrix_rank正交性np.dot(u, v)标准正交基正交 + 单位长度scipy.linalg.qr投影到子空间np.linalg.lstsq 或 Q @ (Q.T @ b)

    九、应用场景
  • 机器学习:PCA 使用标准正交基降维
  • 计算机图形学:投影用于 3D → 2D 渲染
  • 信号处理:将信号投影到傅里叶基上
  • 数值分析:最小二乘拟合本质是投影

      掌握向量空间的结构(基、维度)、正交性与投影,是理解现代数据科学与工程算法的基石。建议结合几何直观(如 中的平面、直线)加深理解,并多用代码验证理论。

    后续

      python过渡项目部分代码已经上传至gitee,后续会逐步更新。

    资料关注

      公众号:咚咚王gitee:

      人工智能之数学基础 线性代数:第二章 向量空间

      《Python编程:从入门到实践》《利用Python进行数据分析》《算法导论中文第三版》《概率论与数理统计(第四版) (盛骤) 》《程序员的数学》《线性代数应该这样学第3版》《微积分和数学分析引论》《(西瓜书)周志华-机器学习》《TensorFlow机器学习实战指南》《Sklearn与TensorFlow机器学习实用指南》《模式识别(第四版)》《深度学习 deep learning》伊恩·古德费洛著 花书《Python深度学习第二版(中文版)【纯文本】 (登封大数据 (Francois Choliet)) (Z-Library)》《深入浅出神经网络与深度学习+(迈克尔·尼尔森(Michael+Nielsen)》《自然语言处理综论 第2版》《Natural-Language-Processing-with-PyTorch》《计算机视觉-算法与应用(中文版)》《Learning OpenCV 4》《AIGC:智能创作时代》杜雨+&+张孜铭《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》《从零构建大语言模型(中文版)》《实战AI大模型》《AI 3.0》