【机器学习合集】深度学习模型优化方法最优化问题合集 ->(个人学习记录笔记)

文章目录

  • 最优化
    • 1. 最优化目标
      • 1.1 凸函数&凹函数
      • 1.2 鞍点
      • 1.3 学习率
    • 2. 常见的深度学习模型优化方法
      • 2.1 随机梯度下降法
      • 2.2 动量法(Momentum)
      • 2.3 Nesterov accelerated gradient法(NAG)
      • 2.4 Adagrad法
      • 2.5 Adadelta与Rmsprop法
      • 2.6 Adam法
      • 2.7 Adam算法的改进
    • 3. SGD的改进算法一定会更好吗?
    • 4. 二阶优化算法为何不用?

最优化

  • 最优化是应用数学的一个分支,主要研究在特定情况下最大化或最小化某一特定函数或变量。

1. 最优化目标

1.1 凸函数&凹函数

在这里插入图片描述

1.2 鞍点

在这里插入图片描述

1.3 学习率

在这里插入图片描述

2. 常见的深度学习模型优化方法

深度学习模型的优化是训练深度神经网络的关键步骤,有多种方法可用于此目的。以下是一些常见的深度学习模型优化方法:

  1. 随机梯度下降(SGD)

    • 操作:在每个迭代中,使用一小批训练样本来估计损失函数的梯度,并更新模型参数。
    • 特点:SGD是深度学习中最常见的优化方法,具有较低的计算复杂性。
  2. 小批量梯度下降(Mini-batch GD)

    • 操作:与SGD类似,但在每个迭代中使用多个训练样本来估计梯度。
    • 特点:Mini-batch GD通常比SGD更稳定,并可通过调整批大小来平衡计算效率和收敛速度。
  3. 动量(Momentum)

    • 操作:引入动量项,加速收敛,并减小梯度下降的震荡。
    • 特点:动量有助于克服局部极小值,提高训练速度。
  4. AdaGrad

    • 操作:自适应地调整每个参数的学习率,使稀疏特征的学习率更大。
    • 特点:AdaGrad适用于稀疏数据,但可能会随时间降低学习率。
  5. RMSprop

    • 操作:改进AdaGrad,引入指数移动平均来平滑学习率。
    • 特点:RMSprop适用于非稀疏数据,提高了学习率的稳定性。
  6. Adam

    • 操作:结合动量和RMSprop,具有自适应学习率和动量调整。
    • 特点:Adam通常表现出色,被广泛用于深度学习。
  7. Adadelta

    • 操作:类似于RMSprop,但不需要手动设置学习率。
    • 特点:Adadelta自适应地调整学习率,无需调整超参数。
  8. Nadam

    • 操作:结合Nesterov动量和Adam的优点,同时考虑梯度和自适应学习率。
    • 特点:Nadam通常具有较好的收敛性能。
  9. L-BFGS(Limited-memory Broyden-Fletcher-Goldfarb-Shanno)

    • 操作:使用L-BFGS等优化器来在每个迭代中直接优化损失函数。
    • 特点:L-BFGS通常用于较小的数据集和较小的模型,具有较高的计算复杂性。
  • 这些优化方法具有不同的性能和特点,适用于不同类型的深度学习任务。在实际应用中,通常需要根据任务、数据和模型来选择合适的优化方法,并进行超参数调整以获得最佳性能。

这些深度学习模型优化方法在不同方面存在区别和差异,包括学习率调整、收敛性、计算效率和适用性等。以下是它们的一些主要区别和差异:

  1. 学习率调整

    • SGD:通常需要手动设置全局学习率,对学习率敏感。
    • Momentum:引入动量项,加速收敛,但需要额外的动量超参数。
    • AdaGrad:自适应地调整每个参数的学习率,但可能会导致学习率过小。
    • RMSprop:改进AdaGrad,使用指数移动平均,减小学习率的不稳定性。
    • Adam:结合动量和RMSprop,具有自适应学习率和动量,通常无需手动调整学习率。
    • Adadelta:类似RMSprop,但无需手动设置学习率。
    • Nadam:结合Nesterov动量和Adam,同时考虑梯度和自适应学习率。
  2. 收敛性

    • 不同方法在收敛速度和稳定性上有所差异。Adam通常在训练速度和稳定性方面表现良好,而L-BFGS可能需要更多迭代以收敛。
  3. 计算效率

    • SGD和Mini-batch GD通常具有较低的计算复杂性,适用于大规模数据和模型。
    • Adam等方法通常需要更多计算资源,但在训练速度上更具优势。
  4. 适用性

    • 不同方法适用于不同类型的问题。例如,Adadelta和Adagrad适用于稀疏数据,而Adam和Nadam通常适用于一般的深度学习任务。
  5. 超参数数量

    • 不同方法可能需要设置的超参数数量不同。SGD通常只需要设置全局学习率,而Adam和Nadam需要设置更多超参数。
  6. 收敛性能

    • 在不同问题上,不同方法可能具有不同的性能表现。通常需要进行实验来确定哪种方法对特定问题最有效。
  • 总之,每种优化方法都有其优势和劣势,因此选择最佳的方法通常取决于具体的任务和问题。在深度学习中,通常需要进行超参数调整和实验来找到最适合特定任务的优化方法。

在这里插入图片描述

2.1 随机梯度下降法

在这里插入图片描述

2.2 动量法(Momentum)

在这里插入图片描述

2.3 Nesterov accelerated gradient法(NAG)

在这里插入图片描述

2.4 Adagrad法

在这里插入图片描述

2.5 Adadelta与Rmsprop法

在这里插入图片描述

2.6 Adam法

在这里插入图片描述

2.7 Adam算法的改进

在这里插入图片描述

3. SGD的改进算法一定会更好吗?

在这里插入图片描述

4. 二阶优化算法为何不用?

在这里插入图片描述

注意:部分内容来自 阿里云天池

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

共享购模式:重新定义电商购物体验

在当今的电商市场,消费者对购物体验的需求日益增长,他们不再满足于传统的电商模式。为此,共享购模式应运而生,这种创新模式将线下实体商业与线上虚拟商城相结合,为用户带来全新的购物体验。本文将详细讲解共享购模式的…

云游数智农业世界,体验北斗时空智能

今日,2023年中国国际农业机械展览会在武汉正式拉开帷幕,众多与会者云集,各类农机产品纷呈,盛况空前。 千寻位置作为国家北斗地基增强系统的建设与运营方,在中国国际农业机械展览会上亮相,以「北斗时空智能 …

二维码生成和解析工具包-zxing

目录 1、简介 2、做个例子 2.1 添加依赖 2.2 工具类 2.3 测试 3、总结 今天在看一个开源项目的时候发现一个工具类,一个简单的生成二维码的工具类,测试了下很是方便。 虽然在平常的开发中没有使用过,为了以后的场景做个备份 1、简介 …

性能测试工具:Jmeter介绍

JMeter是一个开源的Java应用程序,由Apache软件基金会开发和维护,可用于性能测试、压力测试、接口测试等。 1. 原理 JMeter的基本原理是模拟多用户并发访问应用程序,通过发送HTTP请求或其他协议请求,并测量响应时间、吞吐量、并发…

小程序如何设置自取规则

​在小程序中,自取规则是指当客户下单时选择无需配送的情况下,如何设置相关的计费方式、指定时段费用、免费金额、预定时间和起取金额。下面将详细介绍如何设置这些规则,以便更好地满足客户的需求。 在小程序管理员后台->配送设置->自…

python自动化测试(二):获取元素定位的基本方式

目录 一、前置代码 二、通过HTML元素ID的方式去进行元素定位 三、通过HTML元素的name属性进行元素定位 四、练习一:打开百度登录界面并输入数据后登录 五、通过HTML元素的类名来进行元素定位 六、通过链接的文本值方式进行元素定位 七、通过部分的链接文本值…

安卓端GB28181设备接入模块如何实现实时位置订阅(MobilePosition)

技术背景 实时位置(MobilePosition)订阅和上报,对GB28281设备接入终端尤其重要,如移动单兵设备、执法记录仪、智能安全帽、车载终端等,Android国标接入设备通过获取到实时经纬度信息,按照一定的间隔上报到…

Hadoop3教程(三十五):(生产调优篇)HDFS小文件优化与MR集群简单压测

文章目录 (168)HDFS小文件优化方法(169)MapReduce集群压测参考文献 (168)HDFS小文件优化方法 小文件的弊端,之前也讲过,一是大量占用NameNode的空间,二是会使得寻址速度…

【目标跟踪】多目标跟踪测距

文章目录 前言python代码(带注释)main.pysort.pykalman.pydistance.py 结语 前言 先放效果图。目标框内左上角,显示的是目标距离相机的纵向距离。目标横向距离、速度已求出,没在图片展示。这里不仅仅实现对目标检测框的跟踪&#…

ios上架上传构建版本的windows工具

ios上架的必要步骤,是将打包好的二进制ipa文件,上传到app store的构建版本里,苹果并没有提供上传构建版本的工具,这里我介绍下windows下上传构建版本的方案。 下面说下上传的基本步骤: 第一步,上传前要先…

2023年中国医疗器械供应链服务平台发展趋势分析:向国家高端化市场发力[图]

医疗器械供应链服务主要分为全流程供应链服务与院内SPD服务,同时全流程供应链服务主要分为市场、仓储物流与金融三大服务。在SPD数字化赋能下,大数据、云计算等技术支撑促进一站式数字化供应链业务协同平台,带动了整体医疗器械供应链服务的发…

Homeassistant docker配置

Homeassistant docker配置 【说明】本系列为自用教程,记录以便下次使用 【背景】一台J1900 4G64G的小主机,安装了OP系统,里面自带了Docker。为实现Homeassistant(简称HA)控制智能家居设备,进行如下配置。 【…

uni-app配置微信开发者工具

一、配置微信开发者工具路径 工具->设置->运行配置->小程序运行配置->微信开发者工具路径 二、微信开发者工具开启服务端口

SpringBoot依赖和代码分开打包

前言 在公司的项目中,一个SpringBoot工程可能就上百MB,这时候当线上网速不佳的时候,部署起来就十分的痛苦了。。经常等好久才能上传完毕,接下来我来教大家一个SpringBoot工程代码和依赖分开打包的方法。这种方法将依赖和代码分开…

AWS SAA-C03考试知识点整理

S3: 不用于数据库功能 分类: S3 Standard :以便频繁访问 S3 Standard-IA 或 S3 One Zone-IA : 不经常访问的数据 Glacier: 最低的成本归档数据 S3 Intelligent-Tiering智能分层 :存储具有不断变化或未知访问…

Linux虚拟网络设备—Veth Pair

veth是Virtual Ethernet Device的缩写,是一种成对出现的Linux虚拟网络接口设备。它最常用的功能是用于将不同的Linux network namespaces 命名空间网络连接起来,让二个namespaces之间可以进行通信。我们可以简单的把veth pair理解为用一根网线&#xff0…

使用Scala和Sttp库编写爬虫程序

以下是一个使用Scala和Sttp库编写的视频爬虫程序,该程序使用了proxy来获取IP。请注意,这个示例需要在上找到一个具体的视频链接,然后将其传递给crawlVideo函数。 import scala.util.{Failure, Success} import scala.concurrent.{Future, Ex…

TCP网络通信

TCP通信的 实现发1收1 package TCP1;//完成TCP通信的 实现发1收1import java.io.DataOutputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket;public class Client {public static void main(S…

数据结构之队列(源代码➕图解➕习题)

前言 在学过栈之后,会了解到栈的底层是根据顺序表或者链表来构建的,那么我们今天要学习的队列是否也是基于顺序表和链表呢?那我们直接进入正题吧! 1. 队列的概念(图解) 还是跟上节一样,依旧用图…

Python3打印九九乘法表

# 九九乘法表 # 定义行数 i 1while i<9:# 定义列数j 1while j<i: # print(" %d * %d %d\t" %(j,i,(j*i)),end) # \t:对齐;end:不换行&#xff1b;j1i1print() # 必须添加这句话&#xff01;&#xff01;&#xff01;print("九九乘法表打印完毕&#xf…