【优化器】Optimizer——深度学习中的优化器是什么作用呢?

news2024/9/20 2:08:36

【优化器】Optimizer——深度学习中的优化器是什么作用呢?

【优化器】Optimizer——深度学习中的优化器是什么作用呢?


文章目录

  • 【优化器】Optimizer——深度学习中的优化器是什么作用呢?
  • 1.什么是优化器?
  • 梯度下降法
  • 3. 常见的优化器
    • (1) SGD(随机梯度下降)
    • (2) Momentum(动量法)
    • (3) Adagrad
    • (4) RMSprop
    • (5) Adam(自适应矩估计)
    • (6) AdamW
  • 优化器对比总结


在卷积神经网络(CNN)中,优化器(Optimizer) 是用于更新模型参数(如权重和偏置)的算法。它根据损失函数的导数或梯度,调整模型的参数,以最小化损失函数值,从而提高模型的性能。优化器通常是通过梯度下降法或其变种来进行参数优化。

1.什么是优化器?

优化器的核心目标是调整模型参数,使损失函数逐渐减小,最终找到损失函数的最小值(即全局或局部最小值)。优化器通过迭代方式来更新模型参数,核心思想是:根据损失函数的梯度信息,反向调整参数,直到找到最优解

梯度下降法

梯度下降法(Gradient Descent) 是一种通过迭代最小化损失函数的方法。在每次迭代中,计算损失函数对每个参数的梯度(即偏导数),并沿着梯度的反方向调整参数,因为梯度的方向是损失函数上升最快的方向,反方向是下降最快的方向。

  • 公式
    在这里插入图片描述
    其中:

  • θ θ θ表示模型参数(如权重、偏置)。

  • η η η 是学习率(learning rate),控制每次更新的步长。

  • ∇ J ( θ ) ∇J(θ) J(θ)是损失函数 J ( θ ) J(θ) J(θ) 对参数 θ θ θ的梯度。

3. 常见的优化器

以下是一些深度学习中常见的优化器:

(1) SGD(随机梯度下降)

  • 定义:随机梯度下降(Stochastic Gradient Descent)是经典的梯度下降法的一种变体,更新时使用随机的单个或少量的训练样本,而不是使用全部训练数据。
  • 公式
    在这里插入图片描述
    其中 x ( i ) x^{(i)} x(i), y ( i ) y^{(i)} y(i)是随机选择的一个样本数据。。
  • 优点:由于每次只使用一个或少数样本,计算速度快,适用于大规模数据。
  • 缺点:收敛路径较为不稳定,容易跳过局部最优解。
  • 代码示例
import torch
import torch.optim as optim

# 假设一个简单的模型参数
params = [torch.tensor([1.0], requires_grad=True)]

# 定义优化器
optimizer = optim.SGD(params, lr=0.01)

# 计算损失并更新参数
loss = (params[0] - 2) ** 2  # 假设一个简单的损失函数
loss.backward()  # 计算梯度
optimizer.step()  # 更新参数
optimizer.zero_grad()  # 梯度清零

(2) Momentum(动量法)

  • 定义:动量法在 SGD 基础上加上了一个动量项,允许优化器在更新时不仅考虑当前的梯度,还保留前面更新的方向,形成一个累积效果,从而加快收敛速度。
  • 公式
    在这里插入图片描述
    其中 v t v_t vt是动量, γ γ γ 是动量系数(通常取 0.9)。
  • 优点:加速收敛,尤其是在凹形或平滑区域。
  • 缺点:仍然容易陷入局部最优解。
  • 代码示例
# 使用动量法的 SGD 优化器
optimizer = optim.SGD(params, lr=0.01, momentum=0.9)

(3) Adagrad

  • 定义:Adagrad 是一种自适应学习率优化器,它为每个参数单独设置学习率,并根据参数的更新历史动态调整学习率。更新次数越多,学习率越小。
  • 公式
    在这里插入图片描述
    其中 G t G_t Gt是梯度平方的累积和, ϵ ϵ ϵ是一个很小的常数,用于防止分母为 0。
  • 优点:对稀疏数据和稀疏梯度效果较好。
  • 缺点:随着时间的推移,学习率可能会变得过小,导致模型停止学习。
  • 代码示例
# 使用 Adagrad 优化器
optimizer = optim.Adagrad(params, lr=0.01)

(4) RMSprop

  • 定义:RMSprop 是 Adagrad 的改进版本,它通过引入指数加权平均来减缓累积梯度的增加速度,从而避免学习率变得过小。
  • 公式
    在这里插入图片描述
    其中 γ γ γ 是衰减因子,通常取 0.9。
  • 优点:对非平稳目标函数表现较好,适用于深度神经网络。
  • 缺点:仍然需要手动设置初始学习率。
  • 代码示例
# 使用 RMSprop 优化器
optimizer = optim.RMSprop(params, lr=0.01, alpha=0.9)

(5) Adam(自适应矩估计)

  • 定义:Adam 结合了 Momentum 和 RMSprop 的优点,使用两个独立的指数加权平均来处理梯度的一阶动量和二阶动量。这种方法对不同参数使用不同的自适应学习率。
  • 公式
    在这里插入图片描述
    其中, β 1 β_1 β1 β 2 β_2 β2是超参数,通常取 β 1 = 0.9 β_1=0.9 β1=0.9 β 2 = 0.999 β_2=0.999 β2=0.999
  • 优点:结合了动量和自适应学习率的优点,收敛速度快,且对超参数较为鲁棒。
  • 缺点:在某些情况下可能导致过拟合或模型停止学习。
  • 代码示例
# 使用 Adam 优化器
optimizer = optim.Adam(params, lr=0.001, betas=(0.9, 0.999))

(6) AdamW

  • 定义:定义: AdamW 是 Adam 的变体,主要区别在于权重衰减(weight decay)的方式。它通过将权重衰减应用到每次更新的参数上,而不是通过调节学习率来实现。这可以有效地避免过拟合。
  • 公式
    在这里插入图片描述
    其中 λ λ λ 是权重衰减系数。
  • 优点:更好的正则化效果,尤其适用于大型深度学习模型。
  • 代码示例
# 使用 AdamW 优化器
optimizer = optim.AdamW(params, lr=0.001, weight_decay=1e-5)

优化器对比总结

  • SGD: 基本的梯度下降法,适合小规模数据,收敛速度较慢。
  • Momentum: 加快收敛速度,适合梯度方向一致的情况。
  • Adagrad: 自适应学习率,适合稀疏数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2142519.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构易错整理1

目录 数据结构的基础概念 数据结构基础概念 数据结构的逻辑结构 数据结构的物理结构 算法分析 时间复杂度 例题 数据结构的基础概念 数据结构基础概念 设计存储结构时不仅要存储格数据元素的值,而且还要存储数据元素之间的关系 数据结构具有特定关系的数据…

C/C++语言基础--从C到C++的不同(下),15个部分说明C与C++的不同

本专栏目的 更新C/C的基础语法,包括C的一些新特性 前言 1-10在上篇C/C语言基础–从C到C的不同(上);当然C和C的不同还有很多,本人暂时只总结这些,其他的慢慢更新;上一篇C/C语言基础–从C到C的不同(上&…

Sass实现文字两侧横线及Sass常用方案

Sass常用方案及Sass实现文字两侧横线 1.Sass实现文字两侧横线2.用Sass简化媒体查询3.使用继承占位符实现样式复用4.Sass 模块化5.lighten 和 darken 自我记录 1.Sass实现文字两侧横线 mixin 的基本作用: 代码复用:把常用的样式封装在一起,…

C++和OpenGL实现3D游戏编程【目录】

欢迎来到zhooyu的专栏。 个人主页:【zhooyu】 文章专栏:【OpenGL实现3D游戏编程】 贝塞尔曲面演示: 贝塞尔曲面演示zhooyu 本专栏内容: 我们从游戏的角度出发,用C去了解一下游戏中的功能都是怎么实现的。这一切还是要…

【刷题日记】螺旋矩阵

54. 螺旋矩阵 这个是一道模拟题,但我记得我大一第一次做这道题的时候真的就是纯按步骤模拟,没有对代码就行优化,导致代码写的很臃肿。 有这么几个地方可以改进。 看题目可以知道最终的结果一定是rows*cols个结点,所以只需要遍历rows*cols次…

Docker部署镜像 发布容器 容器网络互联 前端打包

准备工作 导入相关依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.7</version></dependency><dependency><groupId>com.baomidou<…

CLIP论文中关键信息记录

由于clip论文过长&#xff0c;一直无法完整的阅读该论文&#xff0c;故而抽取论文中的关键信息进行记录。主要记录clip是如何实现的的&#xff08;提出背景、训练数据、设计模式、训练超参数、prompt的作用&#xff09;&#xff0c;clip的能力&#xff08;clip的模型版本、clip…

【Python机器学习】序列到序列建模——对序列到序列模型的增强

有两种增强训练序列到序列模型的方法&#xff0c;可以提高模型的精确率和可扩展性。 使用装桶法降低训练复杂度 输入序列可以有不同的长度&#xff0c;这使短序列的训练数据添加了大量填充词条。过多的填充会使计算成本高昂&#xff0c;特别是当大多数序列都很短&#xff0c;…

你的绩效是不是常年都是B

原创不易&#xff0c;求赞&#xff0c;求关注&#xff0c;&#x1f64f;&#x1f64f;&#x1f64f;&#x1f64f;&#x1f64f;&#x1f64f;&#x1f64f;&#x1f64f; 目录 原创不易&#xff0c;求赞&#xff0c;求关注&#xff0c;&#x1f64f;&#x1f64f;&#x1f64…

村落检测系统源码分享

村落检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

Chainlit集成Langchain并使用通义千问AI知识库高级检索(多重查询)网页对话应用教程

前言 之前写过几篇利用Chainlit集成Langchain和国内通义千问大模型集成的知识库检索增加的网页对话应用的技术文章。文章中关于Langchain的知识库检索只是入门级别的教学&#xff0c;本篇文章针对Langchain的知识库高级检索技术和之前对话应用的代码进行完善。 本次主要改进的…

月薪14K的网安公司,来做一下笔试题呀~

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 网络安全简介…

leetcode-枚举算法

1.两数之和 题目一&#xff1a;两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素…

JVM JMM 专题篇 ( 12000 字详解 )

一&#xff1a;JVM 简介 JVM 是 Java Virtual Machine 的简称&#xff0c;意为 Java 虚拟机&#xff0c;虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。 常见的虚拟机&#xff1a;JVM、VMwave、Virtual Box&#xff0c;JVM 和其…

微调大模型不再难:LoRA方法带你轻松节省99%的训练成本!

我们之前说大模型有四种玩家&#xff0c;其中前三种都是要做模型训练的。而大部分公司或个人&#xff0c;都是在第二种开源大模型的基础上来做训练。 而这种训练方式又分为两种。一种要么就是从头训练&#xff0c;要么就Fine-tuning接着开源模型来训练&#xff0c;在基座模型已…

IP 协议分析《实验报告》

目录 一、 实验目的 二、实验设备和环境 三、实验记录 1、实验环境搭建 2、IP 协议分析 1.设置抓包接口 2.IP 报文分析 3.报文长度计算 4.生存时间 TTL 5.分析总结 3、IP分片 1.IP 分片简介 2.捕获分组 3.结果分析 一、 实验目的 1、掌握 IP 协议数据报格式&…

知识图谱与异构图神经网络(7)--1

知识图谱是由实体(节点)和关系( 不同类型的边) 组成的多关系图。作为一种非常重要又特殊的图结构数据&#xff0c;知识图谱被广泛应用在人工智能和自然语言处理领域&#xff0c;从语义解析、命名实体消歧到问答系统、推荐系统中都可以看到来自知识图谱的技术推动。本质上&#…

树和二叉树基本术语、性质

目录 树的相关知识 常见考点1&#xff1a;结点数总度数&#xff0b;1 常见考点2&#xff1a; 度为m的树和m叉树 常见考点3&#xff1a;度为m的树第i层至多有结点数 常见考点4&#xff1a;高度为h的m叉树至多有结点 ​编辑 常见考点5&#xff1a;高度为h的m叉树&#xff0c;高…

可靠性:MSTP 和 VRRP 配置实验

一、拓扑&#xff1a; 说明&#xff1a; 1、交换机 SW1、2、3 分别起 vlan 10、20&#xff0c;都以 trunk 方式连接 2、 PC1、2 分别属于 vlan 10、20 3、SW1、2 起 vlan 100 做为管理段&#xff0c;网关地址分别以 100.1.1.1/24 和 200.1.1.2/24 和 AR1相连 …

监控易监测对象及指标之:全面监控InterSystems Cache数据库

随着企业数字化转型的深入&#xff0c;数据库作为核心的信息资产&#xff0c;其性能和稳定性对于保障业务连续性至关重要。InterSystems Cache作为一款高性能、可扩展的数据库管理系统&#xff0c;广泛应用于医疗、金融、制造等行业。为了确保Cache数据库的高效运行和稳定性能&…