深度学习基础—学习率衰减与局部最优问题

1.学习率衰减

下图中,蓝色的线是min-batch梯度下降法过程中较大学习率的的优化路径,绿线是较小学习率的优化路径。

如果使用min-batch梯度下降法,在模型的学习过程中,会有很多噪声,在靠近最小值的时候,由于学习率a不变,因此最终算法在最小值附近摆动。要解决这个问题,就需要减少学习率a,让靠近最小值的过程中,模型的步长小一点,这就需要学习率衰减来解决。

一个训练集被拆成多个min-batch,对一个训练集训练一遍成为1epoch,我们有如下相关的学习率衰减公式:

其中,decay_rate是衰减率,epoch_num是训练的代数,a0是初始学习率,k是小于1的参数。这些做法都可以让学习率随着训练代数的增加,逐渐衰减,从而让模型更加接近最小值。

2.局部最优问题

接下来看看局部最优问题,如下图所示,蓝点是局部最优解,红点是全局最优解。局部最优和全局最优都是梯度为0的点,也就是所有维度都是凹函数。

下图是鞍点,鞍点是部分维度为凸函数,部分维度为凹函数的点,该点的梯度也为0。

实际的神经网络中,尤其是大模型,参数非常多,损失函数的图像在高维空间难以画出,运行过程中,遇到的梯度为0的点很难是局部最优点(这需要所有维度都是凹函数,概率极低)。最容易遇到的是鞍点,遇到鞍点是让人头疼的问题:

因为马鞍面有一部分很平缓,这部分的梯度很小,使用梯度下降法时会经过很长时间才能走到鞍点附近,在鞍点附近扰动,直到找到梯度更大的方向,梯度下降法才能有更深的进展。这个平稳段需要更好的优化算法来加速训练,Adam算法就是很成熟的优化算法,可以帮助我们加速走出平稳段和鞍点,从而搜索到全局最优。

相关推荐
IT_陈寒19 分钟前
Redis雪崩把我坑惨了,这是5年经验的教训
前端·人工智能·后端
心祭丫丫28 分钟前
【每天一个 Python 小案例17】Python 实现通讯录
开发语言·人工智能·笔记·python·学习
海螺_AIHCC1 小时前
LLM 返回的 JSON 十次坏三次,别急着骂模型——60 行容错解析器先兜住(附可运行代码)
人工智能
露天赏雪1 小时前
第3篇:Sentinel熔断降级实战:大模型接口抖动时的服务兜底方案
java·开发语言·人工智能·spring boot·spring·servlet·sentinel
lisw051 小时前
理解推理大语言模型的可监控性!
人工智能·语言模型·自然语言处理
天天被压力1 小时前
【A股分钟级高频数据完全手册 #06】北交所分钟级数据接口:京市股票Pro版最新分时
java·人工智能·python
在所不辞兄1 小时前
为什么学习率预热(warmup)能显著改善Transformer等大模型的训练稳定性?
人工智能·深度学习·神经网络·机器学习·智能仿真
天天被压力1 小时前
【A股分钟级高频数据完全手册 #05】指数历史分钟数据接口:Pro版沪深指数分时回放
java·人工智能·python
ndz2 小时前
在 ModelFold 使用 Claude:无需代理,稳定可靠的日常开发体验
人工智能·api
adinnet20262 小时前
研发提效实战:AI智能体接手代码审查、 文档生成和技术沉淀
人工智能·小艾智能体·ai研发助手·代码审查自动化