网站后台管理需求,余杭网站建设,网站 栏目 英语,中国建设网官方网站下载e路祝你先于春天#xff0c; 翻过此间铮铮山峦 —— 24.12.8 一、Adam优化器的基本概念
定义
Adam#xff08;Adaptive Moment Estimation#xff09;是一种基于梯度的优化算法#xff0c;用于更新神经网络等机器学习模型中的参数。它结合了动量法#xff08;Momentum… 祝你先于春天 翻过此间铮铮山峦 —— 24.12.8 一、Adam优化器的基本概念
定义
AdamAdaptive Moment Estimation是一种基于梯度的优化算法用于更新神经网络等机器学习模型中的参数。它结合了动量法Momentum和自适应学习率方法如Adagrad和RMSProp的优点能够在训练过程中自适应地调整每个参数的学习率并且利用动量来加速收敛和抑制震荡。 应用场景
广泛应用于深度学习中的各种任务包括但不限于图像识别、自然语言处理、语音识别等。
例如在训练卷积神经网络CNN进行图像分类任务时或者在训练循环神经网络RNN和Transformer架构的模型用于自然语言处理任务时Adam优化器都能有效地更新模型参数使模型更快地收敛并获得较好的性能。 二、Adam优势
Adam 优化算法应用在非凸优化问题中所获得的优势
实现简单计算高效对内存需求少
参数的更新不受梯度的伸缩变换影响
超参数具有很好的解释性且通常无需调整或仅需很少的微调
更新的步长能够被限制在大致的范围内初始学习率
能自然地实现步长退火过程自动调整学习率
很适合应用于大规模的数据及参数的场景
适用于不稳定目标函数
适用于梯度稀疏或梯度存在很大噪声的问题 三、基本机制
Adam 算法和传统的随机梯度下降不同。
随机梯度下降保持单一的学习率(即 alpha)更新所有的权重学习率在训练过程中并不会改变。
而 Adam 通过计算梯度的一阶矩估计和二阶矩估计而为不同的参数设计独立的自适应性学习率。
记录前几次梯度的值然后第一层进行求均值第二层进行求均值的平方再与当下轮次的梯度进行复合得到这一轮的loss值这个目的就是结合一些历史数据然后自动调节当下轮次模型参数的学习率对于不平稳的梯度进行更新 四、手动实现Adam算法
#adam梯度更新
def diy_adam(grad, weight):#参数应当放在外面此处为保持后方代码整洁简单实现一步alpha 1e-3 #学习率beta1 0.9 #超参数beta2 0.999 #超参数eps 1e-8 #超参数t 0 #初始化mt 0 #初始化vt 0 #初始化#开始计算t t 1gt gradmt beta1 * mt (1 - beta1) * gtvt beta2 * vt (1 - beta2) * gt ** 2mth mt / (1 - beta1 ** t)vth vt / (1 - beta2 ** t)weight weight - (alpha * mth/ (np.sqrt(vth) eps))return weight