什么是梯度下降
类比法
它的本质是: 通过不断试错,找到让模型误差最小的参数组合 。
想象你站在浓雾中的山顶,目标是尽快下到谷底(也就是损失最小的地方),但你看不清路。
这时候,你只能用脚感受脚下山坡的 最陡下降方向 (这就是‘梯度’),然后朝那个方向迈出一步。
每走一步,就重新感受一次坡度,再调整方向——这样一步步走下去,最终就会接近谷底。
在机器学习里:
- ‘山谷’就是 损失函数的最低点 (模型预测最准的状态)
- ‘你的位置’就是 模型当前的参数 (比如权重 w 和偏置 b)
- ‘每一步的大小’就是 学习率 (太大可能 overshoot,太小又太慢)
所以,梯度下降不是魔法,而是一种 基于局部信息、迭代逼近最优解的优化策略 。”
技术范
梯度下降(Gradient Descent)是 一阶优化算法 ,用于最小化目标函数(通常是模型的损失函数 L( θ )),其核心思想是:
沿着当前参数处损失函数梯度的反方向迭代更新参数,以逐步逼近局部极小值点 。
从数学上看,参数更新规则为:
θ t **+1=θ t − η ∇θL(**θ t )
其中:
- θ是模型参数(如神经网络权重),
- ∇θL是损失函数对参数的梯度(即一阶梯度向量),
- η 是学习率(step size),控制更新步长。
怎么解决梯度消失的问题?
- 残差连接、跳跃连接
- 批标准化Batch Norm
- 长短期记忆网络、门控循环单元
- 梯度检查点(Gradient Checkpointing)
怎么解决梯度爆炸的问题?
- 梯度裁剪
- 使用合适的激活函数,比如ReLU,相比传统的sigmoid能更好的缓解梯度爆炸的问题
- 适当的权重初始化方法
残差连接