📑 查看全课大纲(第 89 / 93 节)
- 1.概论和集合的定义
- 2.逼疯康托的实数集理论
- 3.常用不等式与映射
- 4.函数及特殊函数
- 5.序列极限的定义
- 6.序列极限的性质与夹逼定理
- 7.重要极限
- 8.无穷小量,无穷大量和一组重要的阶的比较关系
- 9.聚点原理
- 10.函数极限及其性质
- 11.重要极限与等价无穷小
- 12.连续函数
- 13.导数的概念(那些年,扛起牛顿的胡克)
- 14.定义法求导
- 15.函数四则运算的导数与反函数求导法则
- 16.复合函数,隐函数,参数式求导
- 17.不定式求导之“洛必达与伯努利的师生情”
- 18.一阶微分
- 19.高阶导数
- 20.高阶微分
- 21.罗尔中值定理与拉格朗日中值定理
- 22.柯西空降科学院遭排挤
- 23.泰勒公式与泰勒的克妻属性
- 24.利用泰勒展开唯一性定理计算泰勒展开
- 25.泰勒公式的余项估计
- 26.极值问题与导数
- 27.函数凹凸性
- 28.无卵用的渐近线与函数作图
- 29.不定积分的定义
- 30.第一换元法
- 31.第二换元法
- 32.分部积分法
- 33.有理式积分
- 34.三角替换
- 35.定积分的概念
- 36.定积分的性质与积分中值定理
- 37.变上限定积分
- 38.微积分基本定理之“高斯教你如何优雅地装逼”
- 39.定积分的换元法
- 40.奇偶函数与周期函数的定积分
- 41.曲线求长与不可求长曲线(海岸线居然算不出长度?)
- 42.旋转体体积
- 43.旋转体侧面积
- 44.极坐标下图形的面积(数学系常用表白曲线)
- 45.欧式空间
- 46.点列极限,开集与闭集
- 47.多元函数的定义
- 48.多元函数的极限
- 49.多元连续函数
- 50.一阶偏导数
- 51.高阶偏导数
- 52.全微分
- 53.方向导数与梯度
- 54.链式法则
- 55.一阶全微分形式的不变性与高阶微分
- 56.多元函数的泰勒公式
- 57.隐函数存在定理与逆映射存在定理
- 58.多元函数的极值
- 59.矩阵基础知识
- 60.行列式的定义与特殊矩阵的行列式
- 61.行列式的性质
- 62.行列式按k行展开
- 63.线性方程组初步与高斯消元法
- 64.齐次线性方程组与Cramer法则
- 65.线性空间
- 66.线性相关与线性无关
- 67.向量组的秩
- 68.矩阵的秩与线性方程组有解的充要条件
- 69.齐次线性方程组的解集结构
- 70.非齐次线性方程组解集结构
- 71.基与维数
- 72.矩阵的乘法
- 73.特殊矩阵
- 74.矩阵乘积的秩与行列式
- 75.矩阵的逆
- 76.正交矩阵
- 77.矩阵对角化与特征值特征向量
- 78.实对称矩阵对角化
- 79.二次型与正定矩阵
- 80.LU分解
- 81.Cholesky分解
- 82.SVD分解
- 83.线搜索
- 84.步长
- 85.最速下降法和牛顿法
- 86.共轭梯度法
- 87.拟牛顿法
- 88.无约束优化
- 89.若干知识点补充(一)
- 90.若干知识点补充(二)
- 91.凸优化问题
- 92.对偶问题(一)
- 93.对偶问题(二)
若干知识点补充(一)
约 39 分钟
距离、范数、矩阵求导与广义逆
小象实战讲义 · 人工智能数学基础
在优化理论中,我们即将从无约束优化迈入有约束优化的领域。为了后续学习的顺利进行,本节将补充四个关键的数学工具:距离与范数、矩阵求导以及广义逆。这些概念是理解凸优化、对偶理论以及更复杂机器学习模型(如正则化方法)的基石。掌握它们,你将能更精确地描述优化问题的性质,并理解算法背后的数学逻辑。
💡 核心导读
本节将为你建立以下知识框架:
- 距离的抽象定义:从直观的两点间“长度”上升到满足三条公理的映射,理解度量空间。
- 范数的本质与常见类型:学习作为向量“大小”度量的范数,重点掌握 、 和 范数及其在机器学习正则化中的应用。
- 矩阵求导的实质:揭示矩阵求导即多元函数求导的本质,掌握梯度与黑塞矩阵的矩阵表示法及其常用公式。
- 广义逆的概念:了解针对非方阵的“逆”的推广,认识其存在性与唯一性条件。
1. 距离:从直观到公理化
我们日常生活中所说的“距离”在数学中有其严格且抽象的定义。它不仅仅指欧几里得空间中的直线长度,而是一个满足特定条件的映射。
定义(距离/度量):设 是一个集合(例如 或其子集)。若映射 满足以下三条性质,则称 为 上的一个距离(或度量),称 为一个度量空间。
- 正定性:,有 ,且 。
- 对称性:,有 。
- 三角不等式:,有 。
这个定义的核心在于,距离是一个函数,其输入是集合中的一对元素,输出是一个非负实数,并且这个函数必须遵守上述三条规则。
常见距离示例:
- 欧氏距离:在 中,对于向量 和 ,定义 这是最直观的距离,满足上述三条公理。
- 切比雪夫距离:在 中,定义 它衡量的是各维度坐标差的最大值,同样构成一个有效的距离。
2. 范数:向量大小的度量
如果说距离度量了两个点之间的“远近”,那么范数则度量了单个向量(点)的“大小”或“长度”。
定义(范数):设 是一个线性空间(例如 )。若映射 满足以下四条性质,则称 为 上的一个范数,称 为线性赋范空间。
- 正定性:,有 。
- 确定性:。
- 齐次性:(或 ),,有 。
- 三角不等式:,有 。
常见范数示例(在 上): 对于向量 ,
- 范数(曼哈顿范数):1 = \sum{i=1}^{n} |x_i|。
- 范数(欧几里得范数):2 = \sqrt{\sum{i=1}^{n} x_i^2}。
- 范数(无穷范数):\infty = \max{1 \le i \le n} |x_i|。
- 范数(一般形式):p = \left( \sum{i=1}^{n} |x_i|^p \right)^{1/p}, \quad p \ge 1。 可以验证,当 时,即为 和 范数;并且 p = |\mathbf{x}|\infty。
距离与范数的关系:给定一个范数 ,我们可以自然地诱导出一个距离: 例如,由 范数诱导出的距离就是欧氏距离。
机器学习中的意义: 和 范数是正则化(Regularization)的核心工具。在损失函数中加入参数的 范数惩罚项,即得到岭回归(Ridge Regression);加入 范数惩罚项,则得到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. 矩阵求导:多元函数求导的简洁表达
矩阵求导(或称矩阵微商)本质上就是多元函数的求导。其特殊性在于,它采用矩阵和向量的记号,使得表达式极其简洁,便于记忆和推导,尤其在优化理论中广泛应用。
核心思想:考虑一个 元实值函数 ,其中 。它的梯度(一阶导)和黑塞矩阵(二阶导)定义为:
梯度(Gradient):一个向量,由 对所有自变量的偏导数组成。 在优化中,负梯度方向 常作为函数值下降最快的方向(最速下降法)。
黑塞矩阵(Hessian Matrix):一个 的对称矩阵,由 的所有二阶偏导数组成。 黑塞矩阵用于判断多元函数的凹凸性,并在牛顿法等二阶优化算法中起到关键作用。
常用矩阵求导公式: 设 为常数列向量, 为常数对称矩阵, 为变元列向量。
- 。
- 。(当 对称时)
- 对于二次型 ,其梯度为 ,黑塞矩阵为 。
公式2的推导是理解矩阵求导的绝佳例子:将二次型展开为双重求和形式,对某个 求偏导,再整理成矩阵形式,即可得到上述简洁结果。
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. 广义逆:非方阵的“逆”
对于非方阵 矩阵 ,不存在通常意义上的逆矩阵。广义逆(Generalized Inverse)是对逆矩阵概念的推广,在解线性方程组、最小二乘问题中至关重要。
最常用且具有唯一性的是 Moore-Penrose 广义逆,记为 。
定义(Moore-Penrose 广义逆):对于任意矩阵 ,若矩阵 同时满足以下四个 Penrose 方程:
则称 为 的 Moore-Penrose 广义逆,记作 。可以证明,对于任意矩阵 , 存在且唯一。
一个更宽松的定义是只满足第一个条件 的广义逆,记为 。这样的广义逆存在但不唯一。
存在性定理:若 的秩为 ,则存在可逆矩阵 和 ,使得 那么,其一个广义逆 可以构造为: 其中 为适当阶数的任意矩阵。正是由于 的任意性,导致 不唯一。
📝 动手练一练
- 距离验证:在 中,对于点 和 ,分别计算其欧氏距离 和切比雪夫距离 。
- 范数与正则化:假设一个线性回归模型的参数向量为 。计算其 范数和 范数。如果我们在损失函数中加入 正则项,它会对参数 产生怎样的影响倾向?
参考答案:
- 欧氏距离:。 切比雪夫距离:。
- 范数:。 范数:。 正则化倾向于产生稀疏解,即让部分参数(如这里的第三维参数)精确为零,从而实现特征选择。 正则化则倾向于让所有参数都均匀地变小,但通常不会精确为零。
本章小结
本节我们为后续的优化理论学习夯实了四个重要的数学基础:
- 距离:是一个满足正定性、对称性和三角不等式的映射,用于量化集合中两元素的“远近”。欧氏距离和切比雪夫距离是常见特例。
- 范数:是线性空间中向量“大小”的度量,满足正定性、确定性、齐次性和三角不等式。、、 范数及其诱导的正则化在机器学习中作用关键。
- 矩阵求导:本质是多元函数求导,但采用矩阵记号使其异常简洁。梯度向量和黑塞矩阵是分析多元函数性态的核心工具。
- 广义逆:是逆矩阵概念向非方阵的推广。Moore-Penrose 广义逆 满足四个 Penrose 方程,存在且唯一,是解决病态线性问题的利器。
行动清单:
- 概念辨析:请用自己的话复述“距离”和“范数”的定义,并举例说明它们之间的联系与区别。
- 公式推导:手动推导二次型 (对称)的梯度公式 ,加深对矩阵求导的理解。
- 代码实践:运行本节提供的 Python 代码,并尝试修改向量 的数值,观察不同范数结果的变化规律。
— 小象教研组
领取《小象 11GB VIP 课件资料包与大厂真题手册》
包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。
- ✔完整 Python / 数据分析 Jupyter 实战源码
- ✔大厂真实业务数据集与练习题
- ✔微信扫码添加课程顾问,免费获取网盘下载链接
微信扫码添加顾问