← 返回《人工智能数学基础》
📑 查看全课大纲(第 89 / 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.对偶问题(二)

若干知识点补充(一)

约 39 分钟

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

距离、范数、矩阵求导与广义逆

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

在优化理论中,我们即将从无约束优化迈入有约束优化的领域。为了后续学习的顺利进行,本节将补充四个关键的数学工具:距离与范数、矩阵求导以及广义逆。这些概念是理解凸优化、对偶理论以及更复杂机器学习模型(如正则化方法)的基石。掌握它们,你将能更精确地描述优化问题的性质,并理解算法背后的数学逻辑。

💡 核心导读

本节将为你建立以下知识框架:

  1. 距离的抽象定义:从直观的两点间“长度”上升到满足三条公理的映射,理解度量空间。
  2. 范数的本质与常见类型:学习作为向量“大小”度量的范数,重点掌握 L1L_1L2L_2LL_\infty 范数及其在机器学习正则化中的应用。
  3. 矩阵求导的实质:揭示矩阵求导即多元函数求导的本质,掌握梯度与黑塞矩阵的矩阵表示法及其常用公式。
  4. 广义逆的概念:了解针对非方阵的“逆”的推广,认识其存在性与唯一性条件。

1. 距离:从直观到公理化

我们日常生活中所说的“距离”在数学中有其严格且抽象的定义。它不仅仅指欧几里得空间中的直线长度,而是一个满足特定条件的映射。

定义(距离/度量):设 XX 是一个集合(例如 Rn\mathbb{R}^n 或其子集)。若映射 d:X×XRd: X \times X \to \mathbb{R} 满足以下三条性质,则称 ddXX 上的一个距离(或度量),称 (X,d)(X, d) 为一个度量空间

  1. 正定性x,yX\forall x, y \in X,有 d(x,y)0d(x, y) \ge 0,且 d(x,y)=0    x=yd(x, y) = 0 \iff x = y
  2. 对称性x,yX\forall x, y \in X,有 d(x,y)=d(y,x)d(x, y) = d(y, x)
  3. 三角不等式x,y,zX\forall x, y, z \in X,有 d(x,z)d(x,y)+d(y,z)d(x, z) \le d(x, y) + d(y, z)

这个定义的核心在于,距离是一个函数,其输入是集合中的一对元素,输出是一个非负实数,并且这个函数必须遵守上述三条规则。

常见距离示例

  1. 欧氏距离:在 Rn\mathbb{R}^n 中,对于向量 x=(x1,,xn)\mathbf{x} = (x_1, \dots, x_n)^\topy=(y1,,yn)\mathbf{y} = (y_1, \dots, y_n)^\top,定义 d2(x,y)=i=1n(xiyi)2.d_2(\mathbf{x}, \mathbf{y}) = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2}. 这是最直观的距离,满足上述三条公理。
  2. 切比雪夫距离:在 Rn\mathbb{R}^n 中,定义 d(x,y)=max1inxiyi.d_\infty(\mathbf{x}, \mathbf{y}) = \max_{1 \le i \le n} |x_i - y_i|. 它衡量的是各维度坐标差的最大值,同样构成一个有效的距离。

2. 范数:向量大小的度量

如果说距离度量了两个点之间的“远近”,那么范数则度量了单个向量(点)的“大小”或“长度”。

定义(范数):设 XX 是一个线性空间(例如 Rn\mathbb{R}^n)。若映射 :XR|\cdot|: X \to \mathbb{R} 满足以下四条性质,则称 |\cdot|XX 上的一个范数,称 (X,)(X, |\cdot|)线性赋范空间

  1. 正定性xX\forall \mathbf{x} \in X,有 x0|\mathbf{x}| \ge 0
  2. 确定性x=0    x=0|\mathbf{x}| = 0 \iff \mathbf{x} = \mathbf{0}
  3. 齐次性αR\forall \alpha \in \mathbb{R}(或 C\mathbb{C}),xX\forall \mathbf{x} \in X,有 αx=αx|\alpha \mathbf{x}| = |\alpha| \cdot |\mathbf{x}|
  4. 三角不等式x,yX\forall \mathbf{x}, \mathbf{y} \in X,有 x+yx+y|\mathbf{x} + \mathbf{y}| \le |\mathbf{x}| + |\mathbf{y}|

常见范数示例(在 Rn\mathbb{R}^n 上): 对于向量 x=(x1,,xn)\mathbf{x} = (x_1, \dots, x_n)^\top

  • L1L_1 范数(曼哈顿范数)x1=i=1nxi|\mathbf{x}|1 = \sum{i=1}^{n} |x_i|
  • L2L_2 范数(欧几里得范数)x2=i=1nxi2|\mathbf{x}|2 = \sqrt{\sum{i=1}^{n} x_i^2}
  • LL_\infty 范数(无穷范数)x=max1inxi|\mathbf{x}|\infty = \max{1 \le i \le n} |x_i|
  • LpL_p 范数(一般形式)xp=(i=1nxip)1/p,p1|\mathbf{x}|p = \left( \sum{i=1}^{n} |x_i|^p \right)^{1/p}, \quad p \ge 1。 可以验证,当 p=1,2p=1, 2 时,即为 L1L_1L2L_2 范数;并且 limpxp=x\lim_{p \to \infty} |\mathbf{x}|p = |\mathbf{x}|\infty

距离与范数的关系:给定一个范数 |\cdot|,我们可以自然地诱导出一个距离: d(x,y)=xy.d(\mathbf{x}, \mathbf{y}) = |\mathbf{x} - \mathbf{y}|. 例如,由 L2L_2 范数诱导出的距离就是欧氏距离。

机器学习中的意义L1L_1L2L_2 范数是正则化(Regularization)的核心工具。在损失函数中加入参数的 L2L_2 范数惩罚项,即得到岭回归(Ridge Regression);加入 L1L_1 范数惩罚项,则得到LASSO回归。前者倾向于让所有参数都较小,后者则能产生稀疏解(部分参数精确为零),常用于特征选择。

import numpy as np

# 定义向量
x = np.array([1, -2, 3, -4, 5])

# 计算不同范数
l1_norm = np.linalg.norm(x, ord=1)   # L1 范数
l2_norm = np.linalg.norm(x, ord=2)   # L2 范数(默认)
linf_norm = np.linalg.norm(x, ord=np.inf) # L∞ 范数
lp_norm = np.linalg.norm(x, ord=3)   # L3 范数

print(f"向量 x = {x}")
print(f"L1 范数: {l1_norm:.4f} (计算: {np.sum(np.abs(x))})")
print(f"L2 范数: {l2_norm:.4f} (计算: {np.sqrt(np.sum(x**2)):.4f})")
print(f"L∞ 范数: {linf_norm:.4f} (计算: {np.max(np.abs(x))})")
print(f"L3 范数: {lp_norm:.4f}")

3. 矩阵求导:多元函数求导的简洁表达

矩阵求导(或称矩阵微商)本质上就是多元函数的求导。其特殊性在于,它采用矩阵和向量的记号,使得表达式极其简洁,便于记忆和推导,尤其在优化理论中广泛应用。

核心思想:考虑一个 nn 元实值函数 f(x)=f(x1,x2,,xn)f(\mathbf{x}) = f(x_1, x_2, \dots, x_n),其中 xRn\mathbf{x} \in \mathbb{R}^n。它的梯度(一阶导)和黑塞矩阵(二阶导)定义为:

  • 梯度(Gradient):一个向量,由 ff 对所有自变量的偏导数组成。 f(x)=fx=(fx1,fx2,,fxn)\nabla f(\mathbf{x}) = \frac{\partial f}{\partial \mathbf{x}} = \left( \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, \dots, \frac{\partial f}{\partial x_n} \right)^\top 在优化中,负梯度方向 f(x)-\nabla f(\mathbf{x}) 常作为函数值下降最快的方向(最速下降法)。

  • 黑塞矩阵(Hessian Matrix):一个 n×nn \times n 的对称矩阵,由 ff 的所有二阶偏导数组成。 2f(x)=Hf(x)=(2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2)\nabla^2 f(\mathbf{x}) = \mathbf{H}_f(\mathbf{x}) = \begin{pmatrix} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_1 \partial x_n} \ \frac{\partial^2 f}{\partial x_2 \partial x_1} & \frac{\partial^2 f}{\partial x_2^2} & \cdots & \frac{\partial^2 f}{\partial x_2 \partial x_n} \ \vdots & \vdots & \ddots & \vdots \ \frac{\partial^2 f}{\partial x_n \partial x_1} & \frac{\partial^2 f}{\partial x_n \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_n^2} \end{pmatrix} 黑塞矩阵用于判断多元函数的凹凸性,并在牛顿法等二阶优化算法中起到关键作用。

常用矩阵求导公式: 设 a\mathbf{a} 为常数列向量,A\mathbf{A} 为常数对称矩阵,x\mathbf{x} 为变元列向量。

  1. (ax)x=a\frac{\partial (\mathbf{a}^\top \mathbf{x})}{\partial \mathbf{x}} = \mathbf{a}
  2. (xAx)x=2Ax\frac{\partial (\mathbf{x}^\top \mathbf{A} \mathbf{x})}{\partial \mathbf{x}} = 2\mathbf{A}\mathbf{x}。(当 A\mathbf{A} 对称时)
  3. 对于二次型 f(x)=xAxf(\mathbf{x}) = \mathbf{x}^\top \mathbf{A} \mathbf{x},其梯度为 2Ax2\mathbf{A}\mathbf{x},黑塞矩阵为 2A2\mathbf{A}

公式2的推导是理解矩阵求导的绝佳例子:将二次型展开为双重求和形式,对某个 xkx_k 求偏导,再整理成矩阵形式,即可得到上述简洁结果。

import sympy as sp

# 使用 sympy 进行符号计算,验证矩阵求导公式
x1, x2, x3 = sp.symbols('x1 x2 x3')
x = sp.Matrix([x1, x2, x3])

# 定义常数向量 a 和对称矩阵 A
a = sp.Matrix([1, 2, 3])
A = sp.Matrix([[2, 1, 0],
               [1, 3, -1],
               [0, -1, 1]])

# 定义两个函数
f_linear = a.T * x  # a^T x
f_quadratic = x.T * A * x  # x^T A x

print("1. 验证线性函数求导:")
print(f"   f(x) = {f_linear[0]}")
grad_f_linear = sp.Matrix([sp.diff(f_linear[0], var) for var in [x1, x2, x3]])
print(f"   ∂f/∂x (计算) = {grad_f_linear}")
print(f"   ∂f/∂x (公式) = {a}")
print(f"   是否相等? {grad_f_linear.equals(a)}\n")

print("2. 验证二次型求导:")
print(f"   f(x) = {sp.simplify(f_quadratic[0])}")
grad_f_quad = sp.Matrix([sp.diff(f_quadratic[0], var) for var in [x1, x2, x3]])
print(f"   ∂f/∂x (计算) = {grad_f_quad}")
print(f"   2*A*x (公式) = {2 * A * x}")
print(f"   是否相等? {grad_f_quad.equals(2 * A * x)}")

4. 广义逆:非方阵的“逆”

对于非方阵 m×nm \times n 矩阵 A\mathbf{A},不存在通常意义上的逆矩阵。广义逆(Generalized Inverse)是对逆矩阵概念的推广,在解线性方程组、最小二乘问题中至关重要。

最常用且具有唯一性的是 Moore-Penrose 广义逆,记为 A+\mathbf{A}^+

定义(Moore-Penrose 广义逆):对于任意矩阵 ARm×n\mathbf{A} \in \mathbb{R}^{m \times n},若矩阵 XRn×m\mathbf{X} \in \mathbb{R}^{n \times m} 同时满足以下四个 Penrose 方程:

  1. AXA=A\mathbf{A} \mathbf{X} \mathbf{A} = \mathbf{A}
  2. XAX=X\mathbf{X} \mathbf{A} \mathbf{X} = \mathbf{X}
  3. (AX)=AX(\mathbf{A} \mathbf{X})^\top = \mathbf{A} \mathbf{X}
  4. (XA)=XA(\mathbf{X} \mathbf{A})^\top = \mathbf{X} \mathbf{A}

则称 X\mathbf{X}A\mathbf{A} 的 Moore-Penrose 广义逆,记作 A+\mathbf{A}^+。可以证明,对于任意矩阵 A\mathbf{A}A+\mathbf{A}^+ 存在且唯一

一个更宽松的定义是只满足第一个条件 AXA=A\mathbf{A} \mathbf{X} \mathbf{A} = \mathbf{A} 的广义逆,记为 A\mathbf{A}^-。这样的广义逆存在但不唯一

存在性定理:若 A\mathbf{A} 的秩为 rr,则存在可逆矩阵 P\mathbf{P}Q\mathbf{Q},使得 A=P(Ir000)Q.\mathbf{A} = \mathbf{P} \begin{pmatrix} \mathbf{I}_r & \mathbf{0} \ \mathbf{0} & \mathbf{0} \end{pmatrix} \mathbf{Q}. 那么,其一个广义逆 A\mathbf{A}^- 可以构造为: A=Q1(IrBCD)P1,\mathbf{A}^- = \mathbf{Q}^{-1} \begin{pmatrix} \mathbf{I}_r & \mathbf{B} \ \mathbf{C} & \mathbf{D} \end{pmatrix} \mathbf{P}^{-1}, 其中 B,C,D\mathbf{B}, \mathbf{C}, \mathbf{D} 为适当阶数的任意矩阵。正是由于 B,C,D\mathbf{B}, \mathbf{C}, \mathbf{D} 的任意性,导致 A\mathbf{A}^- 不唯一。

📝 动手练一练

  1. 距离验证:在 R2\mathbb{R}^2 中,对于点 x=(1,3)\mathbf{x}=(1,3)y=(4,7)\mathbf{y}=(4,7),分别计算其欧氏距离 d2d_2 和切比雪夫距离 dd_\infty
  2. 范数与正则化:假设一个线性回归模型的参数向量为 w=(0.5,1.2,0.0,3.1)\mathbf{w} = (0.5, -1.2, 0.0, 3.1)。计算其 L1L_1 范数和 L2L_2 范数。如果我们在损失函数中加入 L1L_1 正则项,它会对参数 w\mathbf{w} 产生怎样的影响倾向?

参考答案

  1. 欧氏距离:d2(x,y)=(14)2+(37)2=9+16=5d_2(\mathbf{x}, \mathbf{y}) = \sqrt{(1-4)^2 + (3-7)^2} = \sqrt{9+16}=5。 切比雪夫距离:d(x,y)=max(14,37)=max(3,4)=4d_\infty(\mathbf{x}, \mathbf{y}) = \max(|1-4|, |3-7|) = \max(3, 4) = 4
  2. L1L_1 范数:w1=0.5+1.2+0.0+3.1=4.8|\mathbf{w}|_1 = |0.5| + |-1.2| + |0.0| + |3.1| = 4.8L2L_2 范数:w2=0.52+(1.2)2+02+3.120.25+1.44+9.61=11.33.36|\mathbf{w}|_2 = \sqrt{0.5^2 + (-1.2)^2 + 0^2 + 3.1^2} \approx \sqrt{0.25+1.44+9.61} = \sqrt{11.3} \approx 3.36L1L_1 正则化倾向于产生稀疏解,即让部分参数(如这里的第三维参数)精确为零,从而实现特征选择。L2L_2 正则化则倾向于让所有参数都均匀地变小,但通常不会精确为零。

本章小结

本节我们为后续的优化理论学习夯实了四个重要的数学基础:

  • 距离:是一个满足正定性、对称性和三角不等式的映射,用于量化集合中两元素的“远近”。欧氏距离和切比雪夫距离是常见特例。
  • 范数:是线性空间中向量“大小”的度量,满足正定性、确定性、齐次性和三角不等式。L1L_1L2L_2LL_\infty 范数及其诱导的正则化在机器学习中作用关键。
  • 矩阵求导:本质是多元函数求导,但采用矩阵记号使其异常简洁。梯度向量和黑塞矩阵是分析多元函数性态的核心工具。
  • 广义逆:是逆矩阵概念向非方阵的推广。Moore-Penrose 广义逆 A+\mathbf{A}^+ 满足四个 Penrose 方程,存在且唯一,是解决病态线性问题的利器。

行动清单

  1. 概念辨析:请用自己的话复述“距离”和“范数”的定义,并举例说明它们之间的联系与区别。
  2. 公式推导:手动推导二次型 f(x)=xAxf(\mathbf{x}) = \mathbf{x}^\top \mathbf{A} \mathbf{x}A\mathbf{A}对称)的梯度公式 f=2Ax\nabla f = 2\mathbf{A}\mathbf{x},加深对矩阵求导的理解。
  3. 代码实践:运行本节提供的 Python 代码,并尝试修改向量 x\mathbf{x} 的数值,观察不同范数结果的变化规律。

— 小象教研组

🎁 免费学习资源

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

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

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