【NLP复习】深度学习中的优化方法

本文深入探讨深度学习中各种优化算法的原理与应用,包括梯度下降、随机梯度下降、小批量随机梯度下降、动量法、AdaGrad、RMSProp、AdaDelta及Adam算法。详细解析每种算法如何解决学习率调整、方向一致性及局部最小值等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述:前言为需要优化的原因,正文为梯度下降/随机梯度下降/小批量随机梯度下降/动量法/AdaGrad和RMSProp算法/AdaDelta算法/Adam算法。

前言:需要优化的原因(局部最小值和鞍点):

x=x- η ▽f(x)  :学习率η过大(overshooting):收敛不了越来越偏离最优值;学习率过小(undershooting)收敛速度过慢,费资源。

一、梯度下降、随机梯度下降、小批量随机梯度下降

  • 梯度下降:沿梯度下降最快的方向,梯度为训练集所有样本点梯度之和求平均
  • 随机梯度下降:每次随机挑一个样本点求梯度
  • 小批量随机梯度下降:每次随机挑一个batch的样本点求梯度

二、动量法

  • 梯度下降存在问题:图一在x2竖直方向移动较大;如果调小lr,可能x1水平方向移动过慢;如果调大lr,可能出现图二的情况,在x2竖直方向移动过大错过了最优值。
  • 可以看到下面两图,图一x2竖直方向变化没上面那么快了,图二增大lr也不会像上面图二那样发散了。
  • 动量法使用了指数加权移动平均的思想,将过去时间步的梯度做了加权平均,且权重按时间步指数衰减。动量法使得相邻时间步的自变量更新在方向上更加一致。

三、AdaGrad(不同维度学习率不同)、RMSProp和AdaDelta算法(AdaGrad的两种改进)

  • AdaGrad根据⾃变量在每个维度的 梯度值的⼤小 来调整各个维度上的学习率
    • 缺点:lr一直在降低(或不变)如果开始lr降的太快然而跟最优解离得比较远,可能难以收敛到最优解。 于是RMSProp算法就出现了~
  • RMSProp算法(Root Mean Sqaure prop):
  • AdaDelta算法(不用学习率):

四、Adam算法(结合了动量法和RMSProp算法)

  • Adam算法在RMSProp算法基础上对小批量随机梯度也做了指数加权移动平均。(对动量做了EMA,对RMSProp做了EMA,对v和s做了偏差修正,解决了冷启动(初始化为0)问题。)
  • 最后,用gt’ 迭代更新自变量x

【参考资料】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值