梯度
1.解释
梯度是一个向量,其指向的方向是函数值变化最快的那个方向,其大小就是那个方向的变化率。
导数(一维): 如果你在一条一维小路上,你只能向前或向后走。导数会告诉你,向前走一步,海拔是升高还是降低。
梯度(多维): 现在你站在一个多维山坡上,你可以朝任意方向走(东、北、东北等)。梯度就是一个箭头,这个箭头指向了所有可能方向中,海拔上升最陡峭的那个方向。 箭头的长度代表了那个方向的坡度有多陡。
逆梯度(在机器学习中常用): 既然梯度指向最陡的上山方向,那么它的反方向(负梯度)就自然指向了最陡的下山方向。机器学习的目标是最小化损失函数(找到山谷),所以我们沿着负梯度方向前进。
在函数定义域内的任何一点,梯度向量 ∇f 指向函数值增长最快的方向。
2.定义
梯度是一个向量,它同时包含了方向和大小的信息。
方向:向量 ∇f 本身所指的方向。
大小(模):||∇f||,表示该方向上的斜率大小。
3.计算
例1:简单的二元函数
函数: f(x, y) = x² + y² (这是一个旋转抛物面,像一个碗)
求偏导数:
∂f/∂x = 2x
∂f/∂y = 2y
组成梯度向量:
∇f = [2x, 2y]ᵀ
计算在特定点的梯度:
在点 (1, 2) 处:∇f(1, 2) = [21, 22]ᵀ = [2, 4]ᵀ
解释: 在点 (1, 2):
梯度方向是 [2, 4],即从点 (1,2) 指向 (2,4) 的方向。在这个“碗”上,这确实是指向“碗边”(更高处)的最陡方向。
梯度大小(模)为 √(2² + 4²) = √20 ≈ 4.47,表示这个方向的坡度。
例2:更复杂的函数
函数: f(x, y) = x * e^y + y * sin(x)
求偏导数:
∂f/∂x = e^y + y * cos(x) (将 y 视为常数)
∂f/∂y = x * e^y + sin(x) (将 x 视为常数)
组成梯度向量:
∇f = [ e^y + ycos(x), xe^y + sin(x) ]ᵀ
计算在特定点的梯度:
在点 (0, 0) 处:∇f(0, 0) = [e⁰ + 0cos(0), 0e⁰ + sin(0)]ᵀ = [1, 0]ᵀ
解释: 在点 (0,0),最陡的上山方向是沿着 x 轴正方向。
4.几何意义与最重要性质
方向性质: 在函数定义域内的任何一点,梯度向量 ∇f 指向函数值增长最快的方向。
函数 f(x,y) 就是地面的海拔。
等高线就是函数 f(x,y) 的等高线(例如,所有 f(x,y)=100 的点构成一条线)。
梯度的方向就是水流的方向(最陡下山方向)。
一个重要事实:水流在任意一点,其流向总是与等高线垂直的。它不会沿着等高线走(那样海拔不变),而是以最直接的方式穿越等高线,从一条高海拔等高线流向相邻的低海拔等高线。
等高线的定义:一条等高线是由所有满足 f(x, y) = C(C是某个常数)的点 (x, y) 构成的曲线。沿着这条曲线走,函数值不变。
方向导数的概念:如果你从一个点出发,朝某个方向走一个微小的步长,函数值的变化率就是方向导数。如果这个方向与等高线切线方向一致,那么你就在沿着等高线走,函数值不会变化,所以这个方向的方向导数为零。
梯度的性质:数学上可以证明,梯度方向是所有方向中方向导数最大的方向。
连接起来:
沿着等高线切线方向,变化率为 0。
梯度方向是变化率最大的方向。
结论:这两个方向必然是垂直的!因为如果一个方向变化率为0,那么与之垂直的方向变化率必然最大。

浙公网安备 33010602011771号