惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
Google Developers Blog
J
Java Code Geeks
爱范儿
爱范儿
Microsoft Azure Blog
Microsoft Azure Blog
美团技术团队
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
IT之家
IT之家
博客园_首页
B
Blog RSS Feed
Google DeepMind News
Google DeepMind News
B
Blog
U
Unit 42
Apple Machine Learning Research
Apple Machine Learning Research
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
博客园 - 聂微东
腾讯CDC
A
About on SuperTechFans

博客园 - 立体风

autohotkey2.0 Send keys参数分析 autohotkey2.0 盲从模式 windows 10 下 vscode 编写编译一个 nana c++ 库的示例程序 vscode 插件 cmake-tools 输出内容解读 Claude Code 处理中文乱码问题 python 启动器命令 py 答惑 windows 下 python 3.11 的版本问题 pip 安装 老版本 pytorch 的一个容易迷惑的错误 sentence transformer 例子及说明 Sentence Transformers 介绍 Jina Reranker 替代方案:改用 ModelScope 模型 Webnovel Writer 6.2.1 项目分析 windows 10 LTSC 版 安装 Terminal autohotkey2.0 脚本运行机制 windows wsl2 安装 gentoo 的步骤 windows 10 LTSC版 打开 wsl2 autohotkey 提示词 编译安装最新版 perl rust 做到“快并且安全” 的逻辑思路 rust 和 go 语言的核心目的 用 vim 查看文件的格式和编码 throughput 和 efficient 词义 python 以字符数量分割文档 (三) python 以字符数量分割文档 (二) python 以字符数量分割文档 (一) GNU Bash 参考手册(中文版)(六) GNU Bash 参考手册(中文版)(五) GNU Bash 参考手册(中文版)(四) GNU Bash 参考手册(中文版)(三) GNU Bash 参考手册(中文版)(二)
为什么梯度向量 ∇f 指向函数值增长最快的方向
立体风 · 2025-09-08 · via 博客园 - 立体风

这是梯度的核心,梯度向量指向函数值增长最快的方向。

1. 概念回顾:方向导数

首先,我们需要理解方向导数。方向导数衡量的是函数在特定方向上的变化率。

对于一个多元函数 \(f(\mathbf{x})\),我们想知道它在点 \(\mathbf{x}\) 沿着一个单位向量 \(\mathbf{u}\)(即 \(|\mathbf{u}| = 1\))方向上的变化率。这个变化率就是方向导数,记为 \(D_\mathbf{u}f(\mathbf{x})\)

方向导数的计算公式是:

\[D_\mathbf{u}f(\mathbf{x}) = \nabla f(\mathbf{x}) \cdot \mathbf{u} \]

这个公式是证明的关键。它告诉我们,任意方向上的变化率等于梯度向量与该方向单位向量的点积

2. 证明过程

我们要证明的是:当 \(\mathbf{u}\) 的方向与 \(\nabla f(\mathbf{x})\) 的方向相同时,\(D_\mathbf{u}f(\mathbf{x})\) 的值最大。

根据点积的定义,两个向量的点积等于它们模的乘积再乘以它们之间夹角的余弦:

\[\mathbf{a} \cdot \mathbf{b} = |\mathbf{a}| |\mathbf{b}| \cos\theta \]

所以,我们可以将方向导数公式写成:

\[D_\mathbf{u}f(\mathbf{x}) = |\nabla f(\mathbf{x})| |\mathbf{u}| \cos\theta \]

其中,\(\theta\) 是梯度向量 \(\nabla f(\mathbf{x})\) 和方向向量 \(\mathbf{u}\) 之间的夹角。

因为 \(\mathbf{u}\) 是一个单位向量,所以 \(|\mathbf{u}| = 1\)
公式简化为:

\[D_\mathbf{u}f(\mathbf{x}) = |\nabla f(\mathbf{x})| \cos\theta \]

现在我们来分析这个表达式。\(\nabla f(\mathbf{x})\) 在一个确定的点 \(\mathbf{x}\) 处是固定不变的,所以 \(|\nabla f(\mathbf{x})|\) 也是一个常数。要使 \(D_\mathbf{u}f(\mathbf{x})\) 的值最大,我们只需要让 \(\cos\theta\) 的值最大。

我们知道,\(\cos\theta\) 的取值范围是 \([-1, 1]\)。它的最大值是 \(1\)
\(\cos\theta = 1\) 时,\(\theta\) 的值为 \(0\)
这意味着梯度向量 \(\nabla f(\mathbf{x})\) 和方向向量 \(\mathbf{u}\) 之间的夹角为 \(0\)

如果两个向量之间的夹角为 \(0\),就意味着它们的方向完全相同。

因此,当单位向量 \(\mathbf{u}\) 的方向与梯度向量 \(\nabla f(\mathbf{x})\) 的方向相同时,方向导数 \(D_\mathbf{u}f(\mathbf{x})\) 的值最大,其最大值为 \(|\nabla f(\mathbf{x})| \cdot 1 = |\nabla f(\mathbf{x})|\)

3. 结论

梯度向量 \(\nabla f(\mathbf{x})\) 指向函数值增长最快的方向,而其模(长度)\(|\nabla f(\mathbf{x})|\) 就是在这个方向上的最大变化率。

反之,如果想要找到函数值下降最快的方向,我们应该让 \(\cos\theta\) 最小,即 \(\cos\theta = -1\),此时 \(\theta = \pi\)(或 \(180^\circ\)),这意味着 \(\mathbf{u}\) 的方向与梯度向量 \(\nabla f(\mathbf{x})\) 的方向完全相反。这个方向就是负梯度方向 \(-\nabla f(\mathbf{x})\),这也是梯度下降法(Gradient Descent)的数学原理。