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

相关说明

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

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

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

内容大纲

一、概述

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


图1

二、算法细节

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

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


图2

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

相关推荐
vibecoding日记3 小时前
双非如何快速入职字节等大厂大模型?真实案例分析:推理优化和投机解码
算法·求职·大模型工程师
yszaygr21385 小时前
Verilog参数化游程编码RLE模块
算法
望易5 小时前
刚设计的大模型架构-双域耦合认知框架
算法·架构
复杂网络9 小时前
多个 Claude Code 与多个 Codex 协同工作:设计与实现方案
算法
HjhIron1 天前
面试常客:字符串算法从入门到进阶
算法·面试
吴佳浩1 天前
DeepSeek DSpark:Confidence-Scheduled Speculative Decoding 技术解析
人工智能·算法·deepseek
触底反弹1 天前
🧠 搞懂 Token,才算真正入门大模型——从分词原理到 Embedding 语义实战
javascript·人工智能·算法
Augustzero1 天前
Codex Desktop 新建会话无法发送消息:一次由旧版 CLI 路径引发的故障排查
chatgpt·agent
vivo互联网技术1 天前
ICLR 2026 | 基于后验采样的图像恢复方法LearnIR:人脸去阴影、去雾
人工智能·算法·aigc
浮生望1 天前
JS字符串与回文算法:从包装类到双指针的面试进阶之路
javascript·算法