28.梯度下降优化算法
约 525 字大约 2 分钟
2025-09-20
梯度下降法
优化原则
- 搜索策略
随机梯度下降:一个一个试,把每一个权重更新
批量梯度下降:先正向传播然后求累计偏导数,再反向传播更新参数
小批量梯度下降:一小波一小波,是梯度下降和随机梯度下降的折中,需要选择batch size
- 步长选择(学习率)
Δw=−α∂w∂E
- 参数初始值选择
因为有可能产生局部最优,所以要找合适的下山起始点。
- 特征归一化(可能有量纲影响)
整理样本
凸函数一定有全局最优解
一些梯度下降方法
梯度下降普通的搜索很有可能陷入局部最小值,因为没有动力,缓的时候下降的慢,效果可能不是很好。
动量法
动量法是指在每次迭代时,都用一个小的步长来代替原来的步长,这样可以加快搜索的速度,并且可以避免陷入局部最小值。
vt←γvt−1+η∇f(wt)
wt←wt−vt−1
其中γ是动量因子,η是学习率,wt是当前参数,vt是上一次更新的速度,∇f(wt)是当前参数的梯度。
- AdaGrad(动态学习率) 调整每个维度的学习率,而不是统一的学习率。
st←st−1+Δwt⊙Δwt
wt←wt−1−st+ϵα⊙Δwt
其中Δwt是当前梯度,st是累计梯度平方的累加,α是学习率,ϵ是防止除零错误。
RMSProp
AdaDelta(有点过时)
Adam(常用)
开车不仅要控制速度和油门,还要控制转向(类似于转动惯量)
如何选择
- 数据量不大选批量梯度下降法
- 数据量大选小批量梯度下降法
- 标配Adam, 但具体看效果
- 其他最优化方法:牛顿法、拟牛顿法等等
