机器学习入门文档深度页
导数、梯度与梯度下降
梯度汇集损失对所有参数的局部变化率,梯度下降沿反方向更新参数。
学习前需要掌握
导数内容待补充损失函数
背景与问题
线性模型和神经网络常通过迭代优化参数;树模型通常通过候选划分搜索而非梯度。
概念定义
一元导数描述瞬时变化率,多参数偏导数组成梯度。梯度指向损失上升最快方向。
直观理解
梯度像坡度箭头,反方向是局部下坡;学习率决定步长。
核心原理
梯度是局部信息,不保证一次到达全局最优;尺度、学习率和数值稳定性决定轨迹。
数学表达
核心表达
梯度是局部信息,不保证一次到达全局最优;尺度、学习率和数值稳定性决定轨迹。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1初始化参数
- 2前向预测
- 3计算损失
- 4计算梯度
代码对应位置
示例 1导数、梯度与梯度下降:最小可验证示例:把正文原理映射为可检查的代码行为。
交互演示
学习率如何改变梯度下降
在确定性目标函数 上,从 出发。移动滑动条会重新运行全部迭代并实时绘制损失曲线。
0.001 慢0.1 稳定1.41 发散
快速稳定收敛
当前步长能快速降低损失且没有明显震荡。
当前学习率0.0965
实际迭代35
最终损失1.485e-5
最终参数 w2.9961
| 学习率 | 迭代次数 | 最终损失 | 状态 |
|---|---|---|---|
| 0.005 | 35 | 2.425e+1 | 下降缓慢 |
| 0.1 | 35 | 8.063e-6 | 快速稳定收敛 |
| 0.8 | 35 | 1.000e-8 | 发生震荡 |
| 1.05 | 35 | 3.870e+4 | 可能发散 |
滑动条改变什么
它改变更新式中的 。每次拖动都会从相同初始参数重新计算,因而曲线差异只来自学习率。
曲线为何变化
梯度为 。离最低点越远梯度越大;若学习率也很大,一步就可能跨过最低点。
与真实训练的关系
真实模型有更多参数和更复杂损失,但仍遵循“梯度给方向、学习率给步长”。合适范围要在训练曲线与验证集上确定。
计算与实现步骤
- 1
初始化参数
- 2
前向预测
- 3
计算损失
- 4
计算梯度
- 5
按学习率更新
- 6
检查收敛
代码实现
示例 1
导数、梯度与梯度下降:最小可验证示例
导数、梯度与梯度下降:最小可验证示例
NumPy
example_01.py用途:把正文原理映射为可检查的代码行为。
w = 0.0
learning_rate = 0.1
for _ in range(20):
gradient = 2 * (w - 3)
w -= learning_rate * gradient
print(round(w, 3))代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
把正文原理映射为可检查的代码行为。
gradient- 损失对参数的局部变化率。
w- 模型权重或当前待优化参数。
Step 1 · 1–6 行
计算损失对参数的梯度,对应数学表达中的 ∇J;梯度只给出局部变化方向。
w = 0.0
learning_rate = 0.1
for _ in range(20):
gradient = 2 * (w - 3)
w -= learning_rate * gradient
print(round(w, 3))代码与数学原理
参数更新由当前梯度与学习率共同决定。
预期输出或运行结果
w 接近使 (w-3)² 最小的 3。
常见错误 · 3 条
- 学习率过大
- 未检查梯度/损失有限性
- 收敛等同泛化
实际应用
- 线性回归
- 神经网络
常见错误
学习率过大
未检查梯度/损失有限性
收敛等同泛化
文档来源
01|数学与数据基础原始文档
学习资料/learning_tech/01_math_data_foundations.md- §6 导数与梯度
推荐学习资料
暂未收录相关资料
参考库不会生成虚假资源或无效外部链接。