当前位置: 首页 > news >正文

优化器(Optimizer)

优化器(Optimizer)是深度学习和机器学习中最核心的组件之一

简单来说,优化器的作用就是指导模型如何学习。它决定了在反向传播计算出梯度(模型应该朝哪个方向调整)之后,模型应该以多大的“步伐”和什么样的方式来实际更新它的权重和偏置

你可以把优化器看作是一个驾驶员,而梯度(Loss 对权重的导数)是导航仪给出的方向。驾驶员(优化器)负责实际操作方向盘和油门,最终将汽车(模型)开向目的地(Loss 最小化)。


优化器的核心工作原理

在你的代码中,无论是在版本 1 还是版本 2,你都使用了最基础、最简单的优化器思想:随机梯度下降(SGD),具体体现在以下公式中:

$$\text{新的权重} = \text{旧的权重} - (\text{学习率} \times \text{梯度})$$

在你的代码实现中:

# 例如在 Linear 层的 backward 方法中
self.w -= self.lr * dw 
self.b -= self.lr * db

优化器就是管理这个更新过程的组件。

优化器的三个关键要素

要素 描述 在你的代码中的体现
1. 梯度 (Gradient) 方向。由反向传播计算得到,表示 Loss 增加最快的方向。优化器要朝着相反的方向调整。 dwdb
2. 学习率 (Learning Rate) 步长。这是优化器迈出的每一步的大小。它是一个超参数,决定了更新的快慢。 self.lr
3. 更新规则 (Update Rule) 策略。优化器根据当前和过去的梯度信息,决定如何调整权重。 最简单的规则是:w = w - lr * dw

为什么需要更复杂的优化器?

虽然最简单的 SGD 也能工作,但在实际的复杂任务中,它经常会遇到以下问题:

  1. 收敛慢: 遇到平坦区域(梯度接近 0)时,更新非常缓慢。
  2. 震荡: 在陡峭的“峡谷”地形中,SGD 可能会在两侧来回震荡,难以沿着谷底高效前进。

现代的复杂优化器,如 AdamRMSpropAdagrad 等,就是为了解决这些问题而诞生的。它们通过引入动量(Momentum)自适应学习率等机制来改进更新规则:

复杂优化器 核心改进点 效果
动量 (Momentum) 引入一个“惯性”项,让更新方向像滚雪球一样积累速度。 帮助模型冲过局部最优,加速收敛。
Adam 结合了动量和自适应学习率。它为每个权重独立计算和维护一个学习率。 在大多数情况下,是目前最常用、最稳定的优化器。

因此,一个完整的、面向对象的神经网络框架(如 PyTorch 或 TensorFlow)会有一个独立的 Optimizer Class 来管理所有层的权重更新,而不是像你现在这样将 w -= lr * dw 硬编码到每个 Linear 层的 backward 方法中。

http://www.hskmm.com/?act=detail&tid=19022

相关文章:

  • 2025 年气动离合器品牌推荐排行榜发布,聚焦博得 PLC 控制技术与降本优势,常开式气动离合器,多片式气动离合器,气动离合器电磁阀,气动离合器气缸,单片式气动离合器工厂推荐
  • Kubernetes Ingress与OpenShift Router的比较分析
  • Kubernetes日志管理:使用Loki进行日志采集
  • PySimpleGUI 4.60.5完整控件列表
  • 2025黄鹤杯线上wp
  • !!!
  • Dropout
  • 经典排序算法深度解析 - 实践
  • Java网络编程(七):NIO实战构建高性能Socket服务器 - 实践
  • Unigine整合Myra UI Library全纪录(3):整合与优化
  • Tita 项目经营一体化建筑业企业解决方案
  • CD78.【C++ Dev】以AVL任务的bug讲讲调试技巧
  • 实用指南:AI 时代的安全防线:国产大模型的数据风险与治理路径
  • 写给自己的年终复盘以及未来计划
  • 最近难得的一点思考
  • np.random.rand
  • Nexpose 8.22.0 for Linux Windows - 漏洞扫描
  • 冯延巳-风乍起,吹皱一池春水。
  • 大唐名相张九龄-海上生明月,天涯共此时
  • 王昌龄的态度
  • 开发知识点-Python-virtualenv
  • 白居易-那个寒冷的夜晚,思念像潮水般袭来。想得家中夜深坐,还应说着远行人。
  • 2025年移动厕所厂家口碑排行榜:环保移动厕所,泡沫封堵移动厕所,市区公园露营地移动厕所,装配式移动厕所,公共移动厕所定制安装公司选择指南!
  • Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
  • VSCode+Window+Chrome常用快捷键
  • 那些诗词那些花|君不见此玫瑰于晚秋的夜色中凄然绽放,别具一格。
  • Linux环境下VSCode快速安装终极指南:debian/ubuntu/linux平台通用
  • 醉后不知天在水,满船清梦压星河
  • Apache Doris性能优化全解析:慢查询定位与引擎深度调优 - 教程
  • 【诗词解读】跨越千年的文脉传承:月与酒是中国人的永恒浪漫