news 2026/4/15 16:50:58

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
人工智能之数学基础 线性代数:第二章 向量空间

人工智能之数学基础 线性代数

第二章 向量空间


文章目录

  • 人工智能之数学基础 线性代数
  • 前言
  • 一、向量空间(Vector Space)定义
  • 二、子空间(Subspace)
  • 三、线性相关与线性无关
  • 四、基(Basis)与维度(Dimension)
    • 1. 基(Basis)
    • 2. 维度(Dimension)
    • Python 实现:判断线性无关 & 求秩(维度)
  • 五、正交性(Orthogonality)
    • 1. 正交向量
    • 2. 正交集与标准正交基(Orthonormal Basis)
    • 3. Gram-Schmidt 正交化
      • Python 实现(使用 QR 分解)
  • 六、投影(Projection)
    • 1. 向量到向量的投影
    • 2. 向量到子空间的投影
    • Python 实现
  • 七、综合示例:构造子空间、求基、正交化、投影
  • 八、关键概念总结表
  • 九、应用场景
  • 后续
  • 资料关注

前言

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


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

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

  1. 加法封闭性:若 $\mathbf{u}, \mathbf{v} \in V $,则 $ \mathbf{u} + \mathbf{v} \in V $
  2. 标量乘法封闭性:若 $ \mathbf{v} \in V, ,c \in \mathbb{R},则 ,则,则c\mathbf{v} \in V $
  3. 加法交换律、结合律,存在零向量,每个向量有加法逆元
  4. 标量乘法与域运算兼容(分配律、结合律等)

最常见的向量空间:R n \mathbb{R}^nRn—— 所有n nn维实向量的集合。


二、子空间(Subspace)

  • 定义:向量空间V VV的子集W WW若本身也构成向量空间(对加法和标量乘法封闭),则称W WWV VV子空间
  • 例子
    • 平面中过原点的直线是R 2 \mathbb{R}^2R2的子空间
    • 矩阵A AA的列空间(Column Space)是R m \mathbb{R}^mRm的子空间

三、线性相关与线性无关

  • 线性组合:向量v 1 , … , v k \mathbf{v}_1, \dots, \mathbf{v}_kv1,,vk的线性组合为:
    c 1 v 1 + c 2 v 2 + ⋯ + c k v k c_1 \mathbf{v}_1 + c_2 \mathbf{v}_2 + \cdots + c_k \mathbf{v}_kc1v1+c2v2++ckvk
  • 线性相关:若存在不全为零的系数c i c_ici使得线性组合为零向量,则这些向量线性相关
  • 线性无关:只有当所有c i = 0 c_i = 0ci=0时组合才为零向量。

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


四、基(Basis)与维度(Dimension)

1. 基(Basis)

  • 定义:向量空间V VV的一组向量{ b 1 , … , b k } \{\mathbf{b}_1, \dots, \mathbf{b}_k\}{b1,,bk}称为V VV,如果:
    1. 它们线性无关
    2. 它们能张成(span)整个空间V VV,即V VV中任意向量都可表示为它们的线性组合

例如:R 3 \mathbb{R}^3R3的标准基为:

e 1 = [ 1 0 0 ] , e 2 = [ 0 1 0 ] , e 3 = [ 0 0 1 ] \mathbf{e}_1 = \begin{bmatrix}1\\0\\0\end{bmatrix}, \mathbf{e}_2 = \begin{bmatrix}0\\1\\0\end{bmatrix}, \mathbf{e}_3 = \begin{bmatrix}0\\0\\1\end{bmatrix}e1=100,e2=010,e3=001

2. 维度(Dimension)

  • 向量空间V VV维度dim ⁡ ( V ) \dim(V)dim(V)是其任意一组基中向量的个数。
  • 所有基的大小相同(定理)。

例:R n \mathbb{R}^nRn的维度为n nn;平面中过原点的直线维度为 1。

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

importnumpyasnpfromscipy.linalgimportqr# 构造矩阵,每列为一个向量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 == 列数 → 线性无关ifrank==V.shape[1]:print("向量组线性无关")else:print("向量组线性相关")

五、正交性(Orthogonality)

1. 正交向量

  • 两个向量u , v \mathbf{u}, \mathbf{v}u,v正交(orthogonal)当且仅当它们的点积为零:
    u ⋅ v = u T v = 0 \mathbf{u} \cdot \mathbf{v} = \mathbf{u}^T \mathbf{v} = 0uv=uTv=0

2. 正交集与标准正交基(Orthonormal Basis)

  • 正交集:集合中任意两个不同向量都正交。
  • 标准正交基:正交集 + 每个向量长度为 1(单位向量)。

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

3. Gram-Schmidt 正交化

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

Python 实现(使用 QR 分解)

importnumpyasnpfromscipy.linalgimportqr# 原始线性无关向量(每列为一个向量)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. 向量到向量的投影

  • 将向量b \mathbf{b}b投影到非零向量a \mathbf{a}a上:
    proj a b = a T b a T a a \text{proj}_{\mathbf{a}} \mathbf{b} = \frac{\mathbf{a}^T \mathbf{b}}{\mathbf{a}^T \mathbf{a}} \mathbf{a}projab=aTaaTba

2. 向量到子空间的投影

  • 设子空间W = Col ( A ) W = \text{Col}(A)W=Col(A)(由矩阵A AA的列张成),则b \mathbf{b}bW WW上的投影b ^ \hat{\mathbf{b}}b^满足:
    b ^ = A x , 其中 x 是 A T A x = A T b 的解 \hat{\mathbf{b}} = A \mathbf{x}, \quad \text{其中 } \mathbf{x} \text{ 是 } A^T A \mathbf{x} = A^T \mathbf{b} \text{ 的解}b^=Ax,其中xATAx=ATb的解
  • 这就是最小二乘解!投影误差b − b ^ \mathbf{b} - \hat{\mathbf{b}}bb^与子空间正交。

Python 实现

importnumpyasnp# 子空间由 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))

七、综合示例:构造子空间、求基、正交化、投影

importnumpyasnpfromscipy.linalgimportqr# 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
正交性u T v = 0 \mathbf{u}^T \mathbf{v} = 0uTv=0np.dot(u, v)
标准正交基正交 + 单位长度scipy.linalg.qr
投影到子空间b ^ = A ( A T A ) − 1 A T b \hat{\mathbf{b}} = A(A^T A)^{-1} A^T \mathbf{b}b^=A(ATA)1ATbnp.linalg.lstsqQ @ (Q.T @ b)

九、应用场景

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

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

后续

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

资料关注

公众号:咚咚王
gitee:https://gitee.com/wy18585051844/ai_learning

《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》

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 9:01:21

7、SELinux 用户登录管理与策略解析

SELinux 用户登录管理与策略解析 1. 处理 SELinux 拒绝访问问题 在大多数情况下,处理 SELinux 拒绝访问的方法如下: - 检查目标资源标签 :使用 matchpathcon 命令验证目标资源标签(如文件标签)是否正确,也可以与未导致拒绝访问的类似资源标签进行比较。 - 检查源…

作者头像 李华
网站建设 2026/4/11 9:13:26

14、网络通信控制与虚拟化安全:SELinux 实战指南

网络通信控制与虚拟化安全:SELinux 实战指南 1. 网络通信控制 在网络通信控制方面,存在顶层和底层控制之分。顶层控制在域级别处理,例如 httpd_t ;底层控制在对等级别处理,例如 netlabel_peer_t 。 1.1 使用旧风格控制 大多数 Linux 发行版启用了 network_peer_c…

作者头像 李华
网站建设 2026/4/13 17:32:46

WeKnora实战部署指南:从零搭建企业级AI知识库系统

WeKnora实战部署指南:从零搭建企业级AI知识库系统 【免费下载链接】WeKnora LLM-powered framework for deep document understanding, semantic retrieval, and context-aware answers using RAG paradigm. 项目地址: https://gitcode.com/GitHub_Trending/we/We…

作者头像 李华
网站建设 2026/4/11 17:22:07

终极指南:如何快速上手PIKE-RAG领域知识增强生成系统

PIKE-RAG(sPecIalized KnowledgE and Rationale Augmented Generation)是一个由微软开发的专注于领域特定知识和推理增强生成的强大系统。通过结合文档解析、知识提取、知识存储、知识检索、知识组织和知识中心推理等模块,这个开源项目显著增…

作者头像 李华
网站建设 2026/4/13 23:09:00

终极哔哩哔哩视频下载解决方案:bilidown完全指南

终极哔哩哔哩视频下载解决方案:bilidown完全指南 【免费下载链接】bilidown 哔哩哔哩视频解析下载工具,支持 8K 视频、Hi-Res 音频、杜比视界下载、批量解析,可扫码登录,常驻托盘。 项目地址: https://gitcode.com/gh_mirrors/b…

作者头像 李华
网站建设 2026/4/10 15:18:06

如何快速实现iOS触摸可视化:TouchVisualizer完整使用指南

如何快速实现iOS触摸可视化:TouchVisualizer完整使用指南 【免费下载链接】TouchVisualizer Lightweight touch visualization library in Swift. A single line of code and visualize your touches! 项目地址: https://gitcode.com/gh_mirrors/to/TouchVisualiz…

作者头像 李华