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

推荐订阅源

S
Secure Thoughts
S
Securelist
T
The Exploit Database - CXSecurity.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Schneier on Security
Schneier on Security
P
Proofpoint News Feed
Latest news
Latest news
C
CXSECURITY Database RSS Feed - CXSecurity.com
Google DeepMind News
Google DeepMind News
Microsoft Security Blog
Microsoft Security Blog
美团技术团队
T
Threat Research - Cisco Blogs
Know Your Adversary
Know Your Adversary
AWS News Blog
AWS News Blog
V2EX - 技术
V2EX - 技术
云风的 BLOG
云风的 BLOG
博客园 - 聂微东
腾讯CDC
月光博客
月光博客
G
Google Developers Blog
F
Fortinet All Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
Hacker News - Newest:
Hacker News - Newest: "LLM"
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
Apple Machine Learning Research
Apple Machine Learning Research
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
WordPress大学
WordPress大学
Spread Privacy
Spread Privacy
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
Threatpost
N
News and Events Feed by Topic
Y
Y Combinator Blog
J
Java Code Geeks
N
News and Events Feed by Topic
T
Troy Hunt's Blog
Project Zero
Project Zero
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
C
CERT Recently Published Vulnerability Notes
小众软件
小众软件
有赞技术团队
有赞技术团队
罗磊的独立博客
Martin Fowler
Martin Fowler
L
LINUX DO - 最新话题
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Proofpoint News Feed

博客园 - 立体风

brainstorming SKILL技能完整中文翻译版 更新 claude code 官方插件市场 Sigmoid 函数的数学起源与定义详解 路径在powershell 配置文件 Profile 和 环境变量 PATH 的区别 当AI构建自身 nana gui库的回调函数 Nana c++ gui库的对话框函数 -- 理解 nana 的运行机制 介绍 MSVC 的编译命令/ Zc CMake 变量 ${CMAKE_CURRENT_BINARY_DIR} 学习 nana c++ 库 (一) AutoHotkey v2 的源码学习路线 Visual Studio 中行号右边的黄色竖条 大O表示法推导 allocate 中为什么有两个L vs的cl.exe 编译器 c++20 基本配置 IT高频词 address Python Install Manager (PIM,官方安装管理器)简介 debian 中 contrib 软件仓库 debian 版本号及 apt 命令对软件的区分 sysctl的历史及常用命令 极限运算的法则 TeX 的 ctex 宏包的基本用法 XeLaTeX 的基本用法 XeLaTeX 介绍 为什么梯度向量 ∇f 指向函数值增长最快的方向 三角函数的余弦定理的证明 向量点积的几何定义的证明 方向导数公式的证明 仿射函数的定义及用途 凸集的定义及证明 在 LaTeX 公式中处理英文单词 梯度下降法简介 向量形式表达最小二乘法 线性回归模型的核心数学表达式 risidual 音标和本义 coefficients的音标及本义(线性模型)
梯度下降法 (Gradient Descent)的数学原理。
立体风 · 2025-09-06 · via 博客园 - 立体风

1. 背景:优化问题

在机器学习和统计建模中,我们常常需要找到一个模型的参数,使得 损失函数 (Loss Function) 最小。

比如线性回归的损失函数(均方误差 MSE):

\[J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})^2 \]

其中:

  • \(\theta\):参数(如权重 \(w\)、偏置 \(b\)
  • \(h_\theta(x^{(i)})\):预测值 \(\hat{y}^{(i)}\)
  • \(y^{(i)}\):真实值
  • \(m\):样本数量

目标:

\[\min_\theta J(\theta) \]


2. 梯度的含义

在多元函数中,梯度(gradient) 是偏导数组成的向量:

\[\nabla J(\theta) = \left( \frac{\partial J}{\partial \theta_1}, \frac{\partial J}{\partial \theta_2}, \cdots, \frac{\partial J}{\partial \theta_n} \right) \]

直观理解:

  • 梯度的方向 = 函数上升最快的方向。
  • 负梯度的方向 = 函数下降最快的方向。

所以,我们要最小化函数,就朝 负梯度 方向走。


3. 梯度下降的迭代公式

基本更新规则:

\[\theta := \theta - \alpha \nabla J(\theta) \]

其中:

  • \(\theta\):参数向量
  • \(\alpha\):学习率(step size),控制每一步走多远
  • \(\nabla J(\theta)\):损失函数对参数的梯度

4. 一维情况直观理解

假设函数只有一个参数 \(\theta\),更新公式就是:

\[\theta := \theta - \alpha \frac{dJ}{d\theta} \]

  • 如果 \(\frac{dJ}{d\theta} > 0\),说明函数在该点是上升趋势,要往左走(减小 \(\theta\))。
  • 如果 \(\frac{dJ}{d\theta} < 0\),说明函数在该点是下降趋势,要往右走(增大 \(\theta\))。

这样逐步迭代,就会逼近函数的最小值。


5. 梯度下降的几种形式

  • 批量梯度下降 (Batch GD)
    每次使用所有样本来计算梯度。稳定但计算量大。

  • 随机梯度下降 (SGD)
    每次只用一个样本来更新参数。速度快,但震荡大。

  • 小批量梯度下降 (Mini-batch GD)
    每次使用一小批样本更新。结合了批量和随机的优点,是最常用的方法。


6. 学习率 \(\alpha\) 的影响

  • \(\alpha\) 太小:收敛慢。
  • \(\alpha\) 太大:可能震荡甚至发散。
  • 现代优化常用 自适应学习率算法(如 Adam、RMSProp)来调节。

7. 收敛与局部极小值

  • 在凸函数(如线性回归的 MSE)中,梯度下降一定会收敛到全局最小值。
  • 在非凸函数(如深度神经网络)中,可能收敛到局部最小值或鞍点,但实践中仍然效果很好。

总结
梯度下降法的核心思想:

  1. 计算目标函数对参数的梯度;
  2. 沿着负梯度方向更新参数;
  3. 不断迭代,直到损失函数收敛或达到迭代上限。

公式核心:

\[\theta := \theta - \alpha \nabla J(\theta) \]