神经网络的工程基础(三)——更优化的最优化算法

相关说明

这篇文章的大部分内容参考自我的新书《解构大语言模型:从线性回归到通用人工智能》,欢迎有兴趣的读者多多支持。

本文将讨论更优化的最优化问题算法。

关于大语言模型的内容,推荐参考这个专栏

内容大纲

一、概述

回顾一下随机梯度下降法的设计思路。虽然这个方法放弃了严格的数学严谨性,只采用小批量数据的平均梯度来近似数学上严格定义的梯度,但在实际应用中取得了显著的效果。在学术界,这种算法被称为标准随机梯度下降法(Vanilla SGD)。事实上,我们可以延续这一思路,在标准随机梯度下降法的基础上对梯度进行更深入的处理,以进一步提升算法的性能,如图1所示。


图1

二、算法细节

图1展示了3种不同的梯度深加工的思路,分别是直接使用、动量因素和梯度"归一化"。

  1. 直接使用:它代表了标准随机梯度下降法的基本形式,即直接使用小批量数据的平均梯度来更新模型参数。
  2. 动量因素:在物理世界中,动量是指物体在运动方向上保持运动的趋势。类比到优化中,动量随机梯度下降法引入了动量项,允许模型参数在更新时累积之前的梯度信息(具体的公式如图2所示)。这种方法有助于跳出局部最小值,加速收敛到全局最小值,代表性算法包括Momentum SGD和Nesterov Momentum。
  3. 梯度"归一化":之前的方法都是全局地使用相同的学习速率,这可能导致不同参数的收敛速度不一致。为了解决这个问题,可以在算法中直接对梯度做类似归一化的处理,从而更好地平衡各个参数的更新效率。这类算法的代表有Adagrad和RMSprop。


图2

将动量因素和梯度归一化这两种优化思路相结合,就得到了一种强大的优化算法------Adam(Adaptive Moment Estimation)。Adam优化算法在实际应用中十分常见,尤其在深度学习领域广泛应用。它的独特之处在于综合了动量因素和梯度归一化的思想,以及自适应地调整学习速率和动量参数,从而在模型训练过程中更高效地更新模型参数。然而,该算法的细节相当烦琐,在此不深入讨论。

相关推荐
Ayanami_Reii2 分钟前
基础数据结构应用-一个简单的整数问题
数据结构·算法·树状数组·fenwick tree
Blossom.1186 分钟前
基于Mamba-2的实时销量预测系统:如何用选择性状态空间干掉Transformer的O(n²)噩梦
人工智能·python·深度学习·react.js·机器学习·设计模式·transformer
Wise玩转AI9 分钟前
Day 26|智能体的“伦理与安全边界”
人工智能·python·安全·ai·chatgpt·ai智能体
LO嘉嘉VE13 分钟前
学习笔记二十二:神经网络的几起几落
笔记·神经网络·学习
Ayanami_Reii15 分钟前
进阶数据结构应用-一个简单的整数问题2(Fenwick-Tree 解法)
数据结构·算法·前缀和·差分·树状数组·fenwick tree
老黄编程16 分钟前
点云生成深度图的原理及算法步骤和参数详细说明
数学·算法·点云·深度图
老黄编程19 分钟前
点云SIFT3D特征点云原理、算法描述及参数详细说明
算法·3d·sift3d
老黄编程23 分钟前
3DHarris特征提取算法描述及参数详细说明
数学·算法·几何·3dharris特征提取
ByteCraze25 分钟前
如何处理大模型幻觉问题?
前端·人工智能·深度学习·机器学习·node.js
fruge26 分钟前
技术面试复盘:高频算法题的前端实现思路(防抖、节流、深拷贝等)
前端·算法·面试