← 返回《人工智能数学基础》
📑 查看全课大纲(第 65 / 93 节)
  1. 1.概论和集合的定义
  2. 2.逼疯康托的实数集理论
  3. 3.常用不等式与映射
  4. 4.函数及特殊函数
  5. 5.序列极限的定义
  6. 6.序列极限的性质与夹逼定理
  7. 7.重要极限
  8. 8.无穷小量,无穷大量和一组重要的阶的比较关系
  9. 9.聚点原理
  10. 10.函数极限及其性质
  11. 11.重要极限与等价无穷小
  12. 12.连续函数
  13. 13.导数的概念(那些年,扛起牛顿的胡克)
  14. 14.定义法求导
  15. 15.函数四则运算的导数与反函数求导法则
  16. 16.复合函数,隐函数,参数式求导
  17. 17.不定式求导之“洛必达与伯努利的师生情”
  18. 18.一阶微分
  19. 19.高阶导数
  20. 20.高阶微分
  21. 21.罗尔中值定理与拉格朗日中值定理
  22. 22.柯西空降科学院遭排挤
  23. 23.泰勒公式与泰勒的克妻属性
  24. 24.利用泰勒展开唯一性定理计算泰勒展开
  25. 25.泰勒公式的余项估计
  26. 26.极值问题与导数
  27. 27.函数凹凸性
  28. 28.无卵用的渐近线与函数作图
  29. 29.不定积分的定义
  30. 30.第一换元法
  31. 31.第二换元法
  32. 32.分部积分法
  33. 33.有理式积分
  34. 34.三角替换
  35. 35.定积分的概念
  36. 36.定积分的性质与积分中值定理
  37. 37.变上限定积分
  38. 38.微积分基本定理之“高斯教你如何优雅地装逼”
  39. 39.定积分的换元法
  40. 40.奇偶函数与周期函数的定积分
  41. 41.曲线求长与不可求长曲线(海岸线居然算不出长度?)
  42. 42.旋转体体积
  43. 43.旋转体侧面积
  44. 44.极坐标下图形的面积(数学系常用表白曲线)
  45. 45.欧式空间
  46. 46.点列极限,开集与闭集
  47. 47.多元函数的定义
  48. 48.多元函数的极限
  49. 49.多元连续函数
  50. 50.一阶偏导数
  51. 51.高阶偏导数
  52. 52.全微分
  53. 53.方向导数与梯度
  54. 54.链式法则
  55. 55.一阶全微分形式的不变性与高阶微分
  56. 56.多元函数的泰勒公式
  57. 57.隐函数存在定理与逆映射存在定理
  58. 58.多元函数的极值
  59. 59.矩阵基础知识
  60. 60.行列式的定义与特殊矩阵的行列式
  61. 61.行列式的性质
  62. 62.行列式按k行展开
  63. 63.线性方程组初步与高斯消元法
  64. 64.齐次线性方程组与Cramer法则
  65. 65.线性空间
  66. 66.线性相关与线性无关
  67. 67.向量组的秩
  68. 68.矩阵的秩与线性方程组有解的充要条件
  69. 69.齐次线性方程组的解集结构
  70. 70.非齐次线性方程组解集结构
  71. 71.基与维数
  72. 72.矩阵的乘法
  73. 73.特殊矩阵
  74. 74.矩阵乘积的秩与行列式
  75. 75.矩阵的逆
  76. 76.正交矩阵
  77. 77.矩阵对角化与特征值特征向量
  78. 78.实对称矩阵对角化
  79. 79.二次型与正定矩阵
  80. 80.LU分解
  81. 81.Cholesky分解
  82. 82.SVD分解
  83. 83.线搜索
  84. 84.步长
  85. 85.最速下降法和牛顿法
  86. 86.共轭梯度法
  87. 87.拟牛顿法
  88. 88.无约束优化
  89. 89.若干知识点补充(一)
  90. 90.若干知识点补充(二)
  91. 91.凸优化问题
  92. 92.对偶问题(一)
  93. 93.对偶问题(二)

线性空间

约 15 分钟

📺 正在播放小象官方高清录播(支持倍速与清晰度调节)

线性空间

小象实战讲义 · 人工智能数学基础

在上一节学习了线性方程组有解的判定条件后,本节我们将引入一个更基础、更抽象的概念——线性空间(或称向量空间)。这是线性代数的核心结构,它将我们从具体的数字和方程中解放出来,在更一般的“空间”里研究向量、矩阵以及它们之间的运算规律。掌握线性空间的概念,是理解后续特征值、奇异值分解等高级主题的基石。

💡 核心导读

本节你将学习到:

  1. n维向量空间的定义:从熟悉的实数域 Rn\mathbb{R}^n 推广到一般数域 KK 上的 KnK^n
  2. 向量空间的八条公理:构成线性空间必须满足的加法与数乘运算规则。
  3. 向量与矩阵的两种视角:理解向量作为行向量与列向量的区别,以及矩阵可以看作行向量或列向量的集合。
  4. 线性空间的本质:认识到线性空间是满足特定运算规则的集合,是研究线性问题的通用框架。

Rn\mathbb{R}^nKnK^n:n维向量空间

在高等数学中,我们接触过 R2\mathbb{R}^2(平面)和 R3\mathbb{R}^3(空间)中的向量。它们可以相加,可以与实数相乘(数乘)。现在,我们将这个概念推广到更一般的情形。

定义(数域 KK 上的 n 维向量空间): 给定一个数域 KK(例如实数域 R\mathbb{R} 或复数域 C\mathbb{C})和一个正整数 nn。考虑所有由 KK 中元素构成的 nn 元有序数组的集合: Kn={(a1,a2,,an)aiK,i=1,2,,n}K^n = { (a_1, a_2, \dots, a_n) \mid a_i \in K, i=1,2,\dots,n } 集合 KnK^n 中的元素称为 n 维向量,记作 α,β,γ\alpha, \beta, \gamma 等。对于向量 α=(a1,a2,,an)\alpha = (a_1, a_2, \dots, a_n)aia_i 称为 α\alphaii 个分量

在这个集合上,我们定义两种基本运算:

  1. 加法:对于 α=(a1,,an),β=(b1,,bn)Kn\alpha = (a_1, \dots, a_n), \beta = (b_1, \dots, b_n) \in K^n,定义 α+β=(a1+b1,a2+b2,,an+bn)\alpha + \beta = (a_1 + b_1, a_2 + b_2, \dots, a_n + b_n)
  2. 数乘:对于 kKk \in Kα=(a1,,an)Kn\alpha = (a_1, \dots, a_n) \in K^n,定义 kα=(ka1,ka2,,kan)k\alpha = (ka_1, ka_2, \dots, ka_n)

数域是一个对加、减、乘、除(除数不为零)运算封闭的数的集合。R\mathbb{R}C\mathbb{C} 是我们最常接触的两个数域。对于学习人工智能数学基础,你可以将 KK 始终理解为实数域 R\mathbb{R},这样 KnK^n 就是熟悉的 Rn\mathbb{R}^n(欧几里得空间),一切都会变得直观。

定义(向量相等):两个向量 α=(a1,,an)\alpha = (a_1, \dots, a_n)β=(b1,,bn)\beta = (b_1, \dots, b_n) 相等,当且仅当它们的每个对应分量都相等,即 ai=bia_i = b_i 对所有 i=1,,ni=1,\dots,n 成立。

线性空间的八条公理

并非任意一个定义了加法和数乘的集合都能称为线性空间。线性空间必须满足以下八条基本性质(公理)。这八条性质是线性空间概念的精髓,它们共同保证了空间中的运算具有良好的代数结构。

α,β,γKn\alpha, \beta, \gamma \in K^nk,lKk, l \in K,则以下性质成立:

加法相关(4条):

  1. 交换律α+β=β+α\alpha + \beta = \beta + \alpha
  2. 结合律(α+β)+γ=α+(β+γ)(\alpha + \beta) + \gamma = \alpha + (\beta + \gamma)
  3. 零元存在:存在一个零向量 0=(0,0,,0)\mathbf{0} = (0, 0, \dots, 0),使得对任意 α\alpha,有 α+0=α\alpha + \mathbf{0} = \alpha。零向量是加法的单位元
  4. 负元存在:对任意 α=(a1,,an)\alpha = (a_1, \dots, a_n),存在其负向量 α=(a1,,an)-\alpha = (-a_1, \dots, -a_n),使得 α+(α)=0\alpha + (-\alpha) = \mathbf{0}。负向量是加法的逆元

数乘相关(4条): 5. 数乘单位元:数 1K1 \in K 是数乘的单位元,即 1α=α1 \cdot \alpha = \alpha。 6. 数乘结合律k(lα)=(kl)αk(l\alpha) = (kl)\alpha 7. 数乘对向量加法的分配律k(α+β)=kα+kβk(\alpha + \beta) = k\alpha + k\beta 8. 数乘对数量加法的分配律(k+l)α=kα+lα(k + l)\alpha = k\alpha + l\alpha

重要说明

  • 这八条性质是相互独立的,一条也不能少。它们共同定义了什么是“线性空间”。
  • 我们熟悉的 Rn\mathbb{R}^nCn\mathbb{C}^n 都完美满足这八条性质,是线性空间的典型例子。
  • 这八条性质是定义线性空间的标准。以后当我们遇到一个新的集合,并声称它是一个线性空间时,我们必须验证它是否满足这八条公理。

因此,数域 KK 上的 n 维向量空间的完整定义是:集合 KnK^n,连同其上定义的加法、数乘运算,以及它们所满足的上述八条公理,共同构成一个线性空间。通常我们简记为 KnK^n

行向量、列向量与矩阵的视角

在具体书写和计算时,向量有两种常见的表示形式。

定义(行向量与列向量)

  • 行向量:将向量的分量横向排列,如 α=(1,2,3)\alpha = (1, 2, 3)α=(123)\alpha = \begin{pmatrix} 1 & 2 & 3 \end{pmatrix}
  • 列向量:将向量的分量纵向排列,如 α=(123)\alpha = \begin{pmatrix} 1 \ 2 \ 3 \end{pmatrix}

行向量和列向量通过转置运算 \top 相互转换: (123)=(123),(123)=(123)\begin{pmatrix} 1 & 2 & 3 \end{pmatrix}^\top = \begin{pmatrix} 1 \ 2 \ 3 \end{pmatrix}, \quad \begin{pmatrix} 1 \ 2 \ 3 \end{pmatrix}^\top = \begin{pmatrix} 1 & 2 & 3 \end{pmatrix}

重要约定:在线性代数中,如果没有特别说明,一个单独的向量(如 α\alpha)默认是列向量。如果需要使用其行向量的形式,应明确写出转置 α\alpha^\top。这个约定主要是为了后续矩阵乘法运算时维度匹配的方便。

这个约定也为我们理解矩阵提供了两种直观的视角。考虑一个 s×ns \times n 的矩阵 AAA=(a11a12a1na21a22a2nas1as2asn)A = \begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1n} \ a_{21} & a_{22} & \cdots & a_{2n} \ \vdots & \vdots & \ddots & \vdots \ a_{s1} & a_{s2} & \cdots & a_{sn} \end{pmatrix}

我们可以从两个角度来看待它:

  1. 列向量的集合:将矩阵的每一列看作一个列向量,则矩阵 AAnnss 维的列向量构成: A=(α1α2αn),其中 αj=(a1ja2jasj)A = \begin{pmatrix} \boldsymbol{\alpha}_1 & \boldsymbol{\alpha}2 & \cdots & \boldsymbol{\alpha}n \end{pmatrix}, \quad \text{其中 } \boldsymbol{\alpha}j = \begin{pmatrix} a{1j} \ a{2j} \ \vdots \ a{sj} \end{pmatrix}
  2. 行向量的集合:将矩阵的每一行看作一个行向量,则矩阵 AAssnn 维的行向量构成: A=(β1β2βs),其中 βi=(ai1,ai2,,ain)A = \begin{pmatrix} \boldsymbol{\beta}_1^\top \ \boldsymbol{\beta}2^\top \ \vdots \ \boldsymbol{\beta}s^\top \end{pmatrix}, \quad \text{其中 } \boldsymbol{\beta}i = (a{i1}, a{i2}, \dots, a{in})

这两种视角在后续研究矩阵的秩、列空间、行空间、线性方程组解的结构时至关重要。

📝 动手练一练

  1. 验证向量空间公理:考虑实数域 R\mathbb{R} 上的 R2\mathbb{R}^2。取向量 α=(1,2)\alpha = (1, -2), β=(3,0)\beta = (3, 0), γ=(1,1)\gamma = (-1, 1),以及实数 k=2,l=1k=2, l=-1。请手动验证八条公理中的第1条(交换律)和第7条(数乘对向量加法的分配律)。 参考答案

    • 验证交换律α+β=(1+3,2+0)=(4,2)\alpha + \beta = (1+3, -2+0) = (4, -2)β+α=(3+1,0+(2))=(4,2)\beta + \alpha = (3+1, 0+(-2)) = (4, -2)。两者相等,交换律成立。
    • 验证分配律:先计算左边 k(α+β)=2×(4,2)=(8,4)k(\alpha + \beta) = 2 \times (4, -2) = (8, -4)。再计算右边 kα+kβ=(2,4)+(6,0)=(8,4)k\alpha + k\beta = (2, -4) + (6, 0) = (8, -4)。两边相等,分配律成立。
  2. 矩阵的向量视角:对于矩阵 M=(251304)M = \begin{pmatrix} 2 & 5 \ -1 & 3 \ 0 & 4 \end{pmatrix},请分别写出它的所有列向量和所有行向量(行向量用列向量的转置形式表示)。 参考答案

    • 列向量:c1=(210)\boldsymbol{c}_1 = \begin{pmatrix} 2 \ -1 \ 0 \end{pmatrix}, c2=(534)\boldsymbol{c}_2 = \begin{pmatrix} 5 \ 3 \ 4 \end{pmatrix}
    • 行向量:r1=(25)\boldsymbol{r}_1^\top = \begin{pmatrix} 2 & 5 \end{pmatrix}, r2=(13)\boldsymbol{r}_2^\top = \begin{pmatrix} -1 & 3 \end{pmatrix}, r3=(04)\boldsymbol{r}_3^\top = \begin{pmatrix} 0 & 4 \end{pmatrix}

本章小结

本节我们迈出了从具体计算走向抽象理论的关键一步,引入了线性代数的核心结构——线性空间

要点回顾

  • 线性空间是一个定义了加法和数乘运算,并满足八条公理的集合。KnK^n 是最基本的例子。
  • 八条公理(交换律、结合律、零元、负元、数乘单位元、数乘结合律、两个分配律)是线性空间的“宪法”,定义了其基本代数性质。
  • 向量有行向量列向量两种表示,默认指列向量。矩阵可以视为列向量的集合行向量的集合,这为理解矩阵的秩和空间提供了两种视角。

行动清单: 学完本节,你可以立即做以下事情来巩固理解:

  1. 抽象验证:尝试脱离具体数字,用符号 α,β,γ,k,l\alpha, \beta, \gamma, k, l 来推导八条公理中的几条(如结合律、分配律),体会公理化思维。
  2. 视角转换:任找一个 3×23\times2 的矩阵,分别写出它的列向量组和行向量组,并思考:这3个行向量是否属于同一个线性空间?这2个列向量呢?(答案是:行向量是2维的,属于 R2\mathbb{R}^2;列向量是3维的,属于 R3\mathbb{R}^3。它们所属的线性空间不同。)
  3. 代码实践:运行下面的Python示例,用程序验证 Rn\mathbb{R}^n 中向量的运算规律,并直观感受矩阵的列/行视角。
import numpy as np

# 1. 定义向量和标量 (使用R^3为例)
alpha = np.array([1, -2, 3])  # 列向量视角,实际存储为一维数组
beta = np.array([4, 0, -1])
k = 2
l = -0.5

print("向量 alpha:", alpha)
print("向量 beta:", beta)
print("标量 k:", k, " 标量 l:", l)

# 2. 验证加法交换律
sum_ab = alpha + beta
sum_ba = beta + alpha
print("\n1. 验证加法交换律:")
print("  alpha + beta =", sum_ab)
print("  beta + alpha =", sum_ba)
print("  是否相等?", np.array_equal(sum_ab, sum_ba))

# 3. 验证数乘对向量加法的分配律 (k*(alpha+beta) == k*alpha + k*beta)
left_side = k * (alpha + beta)
right_side = k*alpha + k*beta
print("\n2. 验证数乘对向量加法的分配律:")
print("  k*(alpha+beta) =", left_side)
print("  k*alpha + k*beta =", right_side)
print("  是否相等?", np.array_equal(left_side, right_side))

# 4. 展示矩阵的列向量和行向量视角
M = np.array([[2, 5],
              [-1, 3],
              [0, 4]])
print("\n3. 矩阵 M:")
print(M)
print("\n  列向量视角 (共2列):")
for j in range(M.shape[1]): # 遍历每一列
    print(f"    第{j+1}列: {M[:, j]}")
print("\n  行向量视角 (共3行):")
for i in range(M.shape[0]): # 遍历每一行
    print(f"    第{i+1}行: {M[i, :]} (作为行向量)")
    # 注意:在NumPy中,M[i, :] 是一个一维数组,表示行。
    # 在严格的数学表达中,我们常将其视为列向量的转置。

— 小象教研组

配套学习资源与课件
  • 第10章讲义(含板书):线性代数(PDF · 15.5MB)
    下载
🎁 免费学习资源

领取《小象 11GB VIP 课件资料包与大厂真题手册》

包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。

  • 完整 Python / 数据分析 Jupyter 实战源码
  • 大厂真实业务数据集与练习题
  • 微信扫码添加课程顾问,免费获取网盘下载链接
微信二维码:扫码添加课程顾问微信扫码添加顾问