📑 查看全课大纲(第 53 / 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.对偶问题(二)
方向导数与梯度
约 37 分钟
方向导数与梯度
小象实战讲义 · 人工智能数学基础
在多元函数微积分中,我们学习了偏导数,它刻画了函数沿坐标轴方向的变化率。但在实际问题中,例如优化算法寻找函数最快下降方向,我们往往需要知道函数在任意指定方向上的变化情况。本节将引入方向导数这一概念,它推广了偏导数,并在此基础上定义出多元函数微分的核心概念——梯度。梯度不仅指示了函数值增长最快的方向,其模长也量化了变化的剧烈程度,是理解后续最优化算法(如梯度下降法)的数学基石。
💡 核心导读
- 从特殊到一般:理解方向导数如何将“沿坐标轴求导”的偏导数,推广到“沿任意方向求导”。
- 梯度的诞生:掌握梯度的定义,它是由所有一阶偏导数构成的向量。
- 梯度的核心性质:学习梯度的两个关键性质:1) 方向导数在梯度方向上取得最大值;2) 梯度的方向是函数值增长最快的方向。
- 几何直观:通过梯度场和等高线图,直观感受梯度与函数变化趋势、极值点之间的关系。
- 计算与应用:熟练计算给定函数在指定点的梯度,并理解其物理意义。
从偏导数到方向导数
偏导数 和 分别描述了二元函数 在点 处,仅沿 轴或 轴方向变化时的瞬时变化率。这是两个特殊的方向。
一个自然的问题是:函数在点 处,沿任意方向 的变化率是多少?这就是方向导数要回答的问题。
方向导数的定义
设二元函数 在点 的某个邻域内有定义。是一个给定的方向向量,其方向余弦为 ,其中 分别是 与 轴、 轴正方向的夹角。方向余弦满足 ,即 是单位向量。
函数 在点 处沿方向 的方向导数定义为以下极限(如果存在):
{P_0} = \lim{t \to 0^+} \frac{f(x_0 + t\cos\alpha,\ y_0 + t\cos\beta) - f(x_0, y_0)}{t}
这里, 是一个正的微小标量。分子表示函数值从 点沿 方向移动 个单位长度后的变化量,分母是自变量的变化量(即移动的距离 )。因此,方向导数的几何意义是:过点 且以 为方向向量的直线,与函数曲面 相交得到一条空间曲线,该曲线在对应点处的切线斜率。
显然,当 分别取 轴正方向 和 轴正方向 时,方向导数就退化为偏导数 和 。因此,方向导数是偏导数的推广。
方向导数的计算与梯度的引入
直接根据定义计算方向导数往往比较困难。幸运的是,如果函数在一点可微,那么该点沿任意方向的方向导数都存在,并且可以通过偏导数方便地计算出来。
定理:方向导数的计算公式
如果函数 在点 处可微,那么 在该点沿任意方向 的方向导数都存在,且其值为:
{P_0} = \frac{\partial f}{\partial x} \bigg|{P_0} \cdot \cos\alpha + \frac{\partial f}{\partial y} \bigg|_{P_0} \cdot \cos\beta
证明:由可微定义,函数增量可表示为: {P_0} \Delta x + \frac{\partial f}{\partial y}\bigg|{P_0} \Delta y + o(\rho) \end{aligned} 其中 , 是 的高阶无穷小。
现在取 , ,则 。代入上式: {P_0} \cos\alpha + \frac{\partial f}{\partial y}\bigg|{P_0} \cos\beta \right) t + o(t) 两边同除以 并取极限 ,即得证。
观察这个计算公式,它可以写成两个向量的内积形式: {P_0} = \left( \frac{\partial f}{\partial x}\bigg|{P_0},\ \frac{\partial f}{\partial y}\bigg|_{P_0} \right) \cdot (\cos\alpha,\ \cos\beta)
我们记前一个向量为: {P_0} = \left( \frac{\partial f}{\partial x}\bigg|{P_0},\ \frac{\partial f}{\partial y}\bigg|_{P_0} \right) 这个由函数在一点的所有一阶偏导数构成的向量,称为函数在该点的梯度(Gradient),记作 或 。符号 读作“nabla”。
因此,方向导数的计算公式可以简洁地写为: 其中 是方向 的单位向量。
梯度的性质与几何意义
梯度 不仅仅是一个计算的中间结果,它本身具有极其重要的几何和物理意义。
性质一:梯度方向是方向导数取最大值的方向
根据方向导数的向量点乘公式 ,以及向量点积的定义 ,其中 是两向量的夹角。因为 是单位向量 (),所以有: 其中 是梯度向量 与方向 之间的夹角。
由于 的取值范围是 ,因此:
- 当 ,即方向 与梯度 方向一致时,,方向导数取得最大值 。
- 当 ,即方向 与梯度 方向相反时,,方向导数取得最小值 。
- 当 ,即方向 与梯度 方向垂直时,,方向导数为 ,表示函数在该方向上没有瞬时变化。
结论:
- 梯度方向是函数值增加最快的方向,其增加率(即方向导数的最大值)等于梯度的模长 。
- 负梯度方向是函数值减少最快的方向,其减少率等于 。
- 垂直于梯度的方向是函数的“等高线”方向,函数值瞬时变化率为零。
这一性质是梯度下降法等最优化算法的核心数学原理:为了最小化一个函数,我们沿着其负梯度方向迭代更新参数。
性质二:梯度是一个向量值函数
对于一个 元函数 ,其在点 处的梯度定义为: 梯度运算 将一个标量值函数 ,映射为一个向量值函数 。务必牢记,梯度的计算结果是一个向量。
梯度的计算示例
让我们通过一个例子来熟悉梯度的计算。
例:求函数 在点 处的梯度。
解:首先计算函数在各个变量上的偏导数: 因此,梯度为: 将点 代入: 所以,函数在 处的梯度向量是 。这意味着在该点,函数值增长最快的方向是 方向,最大增长率为 。
我们可以用 Python 的 SymPy 库来验证这个计算:
import sympy as sp
# 定义符号和函数
x, y, z = sp.symbols('x y z')
f = x * y * z
# 计算梯度(即所有一阶偏导数)
grad_f = [sp.diff(f, var) for var in (x, y, z)]
print("梯度表达式:", grad_f) # 输出: [y*z, x*z, x*y]
# 在点 (1, 2, 3) 处求值
point = {x: 1, y: 2, z: 3}
grad_at_point = [expr.subs(point) for expr in grad_f]
print("在点 (1,2,3) 处的梯度:", grad_at_point) # 输出: [6, 3, 2]
# 计算梯度的模长(增长率)
import numpy as np
grad_np = np.array(grad_at_point, dtype=float)
norm = np.linalg.norm(grad_np)
print("梯度模长 (最大增长率):", norm) # 输出: 7.0梯度场与等高线:直观理解函数行为
为了更直观地理解梯度,我们可以引入梯度场和等高线的概念。
梯度场 (Gradient Field)
对于一个二元函数 ,我们可以在其定义域的许多采样点 处,计算出该点的梯度向量 ,并将这个向量以箭头的形式画在对应坐标点上。所有这些箭头构成的图形,就称为该函数的梯度场。
梯度场像一幅“指南针地图”,在每个点都指示了函数值增长最快的方向(箭头方向)和增长的剧烈程度(箭头长度)。
等高线 (Contour Line)
等高线是满足 ( 为常数)的所有点 构成的曲线。它来源于地理学,表示海拔高度相同的点连成的线。
梯度场与等高线的关系
将梯度场与等高线画在同一张图上,我们会发现两个关键现象:
- 垂直性:在任意一点,梯度向量的方向总是与经过该点的等高线垂直。这是因为沿着等高线方向,函数值不变,方向导数为零,而梯度方向是方向导数最大的方向,两者必然垂直。
- 密集度与陡峭度:等高线越密集的区域,梯度向量的模长(箭头长度)通常越大。因为等高线密集意味着在很短的水平距离内,函数值变化很大,这正是方向导数(或梯度模长)大的表现,对应着陡峭的地形。
让我们用代码可视化函数 的梯度场和等高线。
import numpy as np
import matplotlib.pyplot as plt
# 定义函数及其梯度
def f(x, y):
return x**2 - x * y
def grad_f(x, y):
# 梯度 (df/dx, df/dy) = (2x - y, -x)
return 2*x - y, -x
# 创建网格
x = np.linspace(-2, 2, 20)
y = np.linspace(-2, 2, 20)
X, Y = np.meshgrid(x, y)
# 计算函数值和梯度
Z = f(X, Y)
U, V = grad_f(X, Y) # U, V 是梯度向量的两个分量
# 创建图形
plt.figure(figsize=(12, 5))
# 子图1: 梯度场
plt.subplot(1, 2, 1)
plt.quiver(X, Y, U, V, color='blue', alpha=0.7, scale=30, width=0.004)
plt.title('梯度场')
plt.xlabel('x')
plt.ylabel('y')
plt.axis('equal')
plt.grid(True, linestyle='--', alpha=0.5)
# 子图2: 梯度场与等高线叠加
plt.subplot(1, 2, 2)
# 绘制等高线
contour_levels = np.linspace(Z.min(), Z.max(), 15)
contour = plt.contour(X, Y, Z, levels=contour_levels, colors='gray', linestyles='--', alpha=0.7)
plt.clabel(contour, inline=True, fontsize=8)
# 绘制梯度场
plt.quiver(X, Y, U, V, color='red', alpha=0.6, scale=30, width=0.004)
plt.title('梯度场与等高线')
plt.xlabel('x')
plt.ylabel('y')
plt.axis('equal')
plt.grid(True, linestyle='--', alpha=0.5)
plt.tight_layout()
plt.show()运行这段代码,你可以观察到:
- 在左上和右下区域,箭头较长,对应函数曲面较陡峭的区域。
- 在中间一条带状区域(近似于直线 附近),箭头很短甚至接近零点,对应函数曲面平缓的区域。
- 在右图中,红色梯度箭头总是垂直于灰色的等高线。
梯度场与极值点
梯度场还能帮助我们识别函数的极值点(局部极大/极小值点):
- 局部极大值点:梯度场中的箭头都指向该点。因为从该点出发,任何方向都是下坡(函数值减小),即方向导数为负,所以周围点的梯度方向都指向该点。
- 局部极小值点:梯度场中的箭头都背离该点。因为从该点出发,任何方向都是上坡(函数值增加),即方向导数为正,所以周围点的梯度方向都背离该点。
- 鞍点:梯度场在该点附近呈现复杂的模式,有些方向指向它,有些方向背离它。
📝 动手练一练
计算方向导数:设函数 ,点 ,方向 与 轴正方向的夹角为 。求 。
参考答案: 首先求梯度:。 在点 处,。 方向 的单位向量为 。 方向导数为两者点积:
理解梯度性质:已知函数 在点 处的梯度为 。 a) 在点 ,沿哪个方向函数值增长最快?增长率是多少? b) 沿方向 的方向导数是多少?这个方向是增长方向还是减少方向?
参考答案: a) 沿梯度方向 增长最快。增长率为梯度模长 。 b) 首先将方向 单位化:。 方向导数 。 由于值为负,所以沿 方向函数值是减少的。
本章小结
本节我们建立了从偏导数到方向导数,再到梯度的完整知识链条:
- 方向导数推广了偏导数,描述了函数沿任意方向的变化率。
- 梯度 是由所有一阶偏导数构成的向量,它是一个强有力的数学工具。
- 梯度的核心性质:
- 函数在一点的方向导数等于该点梯度与方向单位向量的点积:。
- 梯度方向是函数值增长最快的方向,其模长 是最大增长率。负梯度方向是下降最快的方向。
- 几何直观:梯度场直观展示了函数在各点的变化趋势。梯度方向恒与等高线垂直。梯度场的汇聚点或发散点常对应函数的极值点。
行动清单:
- 掌握计算:对于给定的多元函数,能熟练计算其在指定点的梯度和沿指定方向的方向导数。
- 理解几何:看到梯度场或等高线图,能解释其反映的函数变化特征(哪里陡、哪里平缓、极值点可能在哪里)。
- 联想应用:理解“负梯度方向是函数下降最快方向”这一结论,并意识到这正是梯度下降法等优化算法的基本原理。
— 小象教研组
- 第9章讲义(含板书):多元微分学(PDF · 28.2MB)下载
领取《小象 11GB VIP 课件资料包与大厂真题手册》
包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。
- ✔完整 Python / 数据分析 Jupyter 实战源码
- ✔大厂真实业务数据集与练习题
- ✔微信扫码添加课程顾问,免费获取网盘下载链接
微信扫码添加顾问