梯度下降查询表

本文深入解析了梯度下降算法的各种变种,包括批量梯度下降(BGD)、随机梯度下降(SGD)、动量法(Momentum)、Nesterov加速梯度(NAG)以及自适应学习率算法如AdaGrad、RMSprop、Adam等。探讨了不同算法的特点及适用场景,为读者提供了优化算法的全面理解。
GD公式备注
BGDθ=θ−η∇J(θ)\theta=\theta-\eta\nabla J(\theta)θ=θηJ(θ)
SGDθ=θ−η∇J(θ;x(i),y(i))\theta=\theta-\eta\nabla J(\theta;x^{(i)},y^{(i)})θ=θηJ(θ;x(i),y(i))跳出局部极小;对学习率敏感
Mini-batch SGDθ=θ−η∇J(θ;x(i:i+n),y(i:i+n))\theta=\theta-\eta\nabla J(\theta;x^{(i:i+n)},y^{(i:i+n)})θ=θηJ(θ;x(i:i+n),y(i:i+n))对batch szie敏感
【统一写法】gt=∇J(θ)g_t=\nabla J(\theta)gt=J(θ)
mt=ϕ(g1,...,gt)m_t=\phi(g_1,...,g_t)mt=ϕ(g1,...,gt)
vt=ψ(g1,...gt)v_t=\psi(g_1,...g_t)vt=ψ(g1,...gt)
重写SGDmt=ηgtm_t=\eta g_tmt=ηgt
Momentummt=γmt−1+ηgtm_t=\gamma m_{t-1}+\eta g_tmt=γmt1+ηgt
θ=θ−mt\theta=\theta-m_tθ=θmt
累积梯度即累积之前更新方向、惯性,提升稳定性,减少振荡
Nesterovmt=γmt−1+η∇J(θ−γmt−1)m_t=\gamma m_{t-1}+\eta \nabla J(\theta-\gamma m_{t-1})mt=γmt1+ηJ(θγmt1)
θ=θ−mt\theta=\theta-m_tθ=θmt
Adaptive思想】AdaGrad 算法最大的特点是将历史梯度 L2 范数的倒数作为缩放学习率的因子。 直观上,一直拥有较大梯度的参数处于较陡的位置,它离最终收敛还有一段距离,因此我们可以选择较大的学习率而加快梯度下降的速度。而对于较小的梯度,它的位置相对而言比较平坦,且很可能处于接近收敛的范围,因此我们需要减小学习率而更谨慎地搜索最优解。
AdaGradθ=θ−αvt+ϵmt\theta=\theta-\frac{\alpha}{\sqrt{ v_t+\epsilon}}m_tθ=θvt+ϵαmt学习率自动由大变小,适用于稀疏梯度
进一步发展J(θ)J(\theta)J(θ)非凸和梯度较密集时,学习率快速衰退,模型的高维空间加剧。
为此提出RMSPROP,Adam,AdaDelta,NAdam;使用历史梯度平方的指数移动均值,更新更多依赖于过去几次迭代的梯度信息
AdaDelta对学习率不敏感,自动学习
RMSpropmt=gtm_t=g_tmt=gt
vt=E[g2]tv_t=E[g^2]_tvt=E[g2]t
vt=γvt−1+ηgtv_t=\gamma v_{t-1}+\eta g_tvt=γvt1+ηgt
θ=θ−αvt+ϵmt\theta=\theta-\frac{\alpha}{\sqrt{ v_t+\epsilon}}m_tθ=θvt+ϵαmt
最常用,改进学习率过快衰减
Adamη=1−γ\eta=1-\gammaη=1γ
mt=β1mt−1+(1−β1)gtm_t=\beta_1 m_{t-1}+(1-\beta_1)g_tmt=β1mt1+(1β1)gt
vt=β2vt−1+(1−β2)gt2v_t=\beta_2v_{t-1}+(1-\beta_2)g_t^2vt=β2vt1+(1β2)gt2
θ=θ−αvt+ϵmt\theta=\theta-\frac{\alpha}{\sqrt{v_t+\epsilon}} m_tθ=θvt+ϵαmt
结合一阶二阶
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值