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

news2024/11/18 12:26:47

文章目录

  • 最优化
    • 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. 二阶优化算法为何不用?

在这里插入图片描述

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

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

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

相关文章

LVS+keepalived高可用集群

1、定义 keepalived为lvs应运而生的高可用服务。lvs的调度器无法做高可用,keepalived实现的是调度器的高可用,但keepalived不只为lvs集群服务的,也可以做其他代理服务器的高可用,比如nginxkeepalived也可实现高可用(重…

解密Kubernetes:探索开源容器编排工具的内核

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

zabbix6.0 部署配置

架构 先简单介绍zabbix监控的最主要的两个组件: zabbix server zabbix agent server 用来部署 web console以及相关的数据存储,所以需要配合一些数据库来保存数据,比如mysql,pgsql, 又有前端的页面所以还需要配置 nginx 和getway 所以 serve…

【makedown使用介绍】

如何使用makedown 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必…

计算机网络【CN】IPV4报文格式

版本(4bit):IPV4/IPV6首部长度(4bit):标识首部的长度 单位是4B最小为:20B最大为:60(15*4)B总长度(16bit):整个数据报&…

目录遍历漏洞

漏洞挖掘之目录遍历漏洞 (baidu.com) 从0到1完全掌握目录遍历漏洞 0x01 什么是目录遍历漏洞 目录遍历漏洞是由于网站存在配置缺陷,导致网站目录可以被任意浏览,这会导致网站很多隐私文件与目录泄露。 比如数据库备份文件、配置文件等,攻击…

Vue项目中使用require的方式导入图片资源,本地运行无法打开的问题

问题描述 项目经理说需快速要写一个大屏,然后拿给售前去给客户做个展示。其中有一块需要展示一个拓扑图,绘制拓扑图时用了定义了一个图片节点,然后图片的导入方式是 require的方式,然后本地npm run dev启动的时候可以正常显示&…

JVM进阶(1)

一)JVM是如何运行的? 1)在程序运行前先将JAVA代码转化成字节码文件也就是class文件,JVM需要通过类加载器将字节码以一定的方式加载到JVM的内存运行时数据区,将类的信息打包分块填充在运行时数据区; 2)但是字节码文件是JVM的一套指…

大数据技术学习笔记(二)—— Hadoop 运行环境的搭建

目录 1 准备模版虚拟机hadoop1001.1 修改主机名1.2 修改hosts文件1.3 修改IP地址1.3.1 查看网络IP和网关1.3.2 修改IP地址 1.4 关闭防火墙1.5 创建普通用户1.6 创建所需目录1.7 卸载虚拟机自带的open JDK1.8 重启虚拟机 2 克隆虚拟机3 在hadoop101上安装JDK3.1 传输安装包并解压…

likeadmin部署

以下内容写于2023年9月17日,likeadmin版本 1.登录页404,且无法登录 参照官方教程部署后,访问登录页,能打开但提示404,点登录也是404,在issues中搜到新搭建的环境,登录管理后台,报re…

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全

本心、输入输出、结果 文章目录 系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全前言Linux 文件系统解释应该知道的 18 个最常用的 Linux 命令HTTPS如何工作?数据是如何加密和解密的?为什么HTTPS在数据传输过程中会…

java通过IO流下载保存文件

我们在开发过程中,可能会遇到需要到远程服务器上下载文件的需求,一般我们的文件可能会有一个url地址,我们拿到这个地址,可以构建URLConnection对象,之后可以根据这个URLConnection来获取InputStream,之后&a…

C++ list 的使用

目录 1. 构造函数 1.1 list () 1.2 list (size_t n, const T& val T()) 1.3 list (InputIterator first, InputIterator last) 2. bool empty() const 3. size_type size() const 4. T& front() 4. T& back() 5. void push_front (const T& val) 6.…

【Java系列】Java 基础

目录 基础1.JDK和JRE的区别2.Java为什么不直接实现lterator接口,而是实现lterable?3.简述什么是值传递和引用传递?4.概括的解释下Java线程的几种可用状态? 中级1.简述Java同步方法和同步代码块的区别 ?2.HashMap和Hashtable有什么区别?3.简述Java堆的结构? 什…

生命礼赞,带动世界第三次文化复兴——非洲回顾篇

一个民族的复兴需要强大的物质力量,也需要强大的精神力量。大型玉雕群组《生命礼赞》是对中华民族伟大生命的讴歌,是对百姓美好生活的赞美,完美诠释了中华民族的伟大图腾,它象征着中华民族在党的带领下艰苦奋斗,江山稳…

嵌入式软件工程师面试题——2025校招专题(二)

说明: 面试题来源于网络书籍,公司题目以及博主原创或修改(题目大部分来源于各种公司);文中很多题目,或许大家直接编译器写完,1分钟就出结果了。但在这里博主希望每一个题目,大家都要…

美团动态ThreadPoolExecutor底层实现源码实战

开篇:介绍springboot连接nacos实现动态线程池,同时得安装nacos,同时代码将有两个模块,dtp-spring-boot-starter 与 user 模块,前者将是独立的动态线程池,可以引入自己的项目中,后者模块主要用于…

面试官:听说你很了解Java8特性,给我优化一下这段代码吧?

文章目录 前言我的想法面试官 前言 在之前的一次面试过程中,我被问到了一道代码优化题:对于下面的代码,你有什么优化的思路呢? boolean handleStrList(String strList){for (String s :strList){if(s.length()%20){return true;…

测试用例的设计方法(全):等价类划分方法

一.方法简介 1.定义 是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。 2.划分等价类: 等价类是指某个输入域的…

祝各位程序员节日快乐

今天是1024程序员节,小编祝各位Windows开机蓝屏,Linux开机Kernel Panic,macos开机五国,服务器iDRAC/ iLO/IPMI/KVM全部失联,路由器全爆炸,路由表内存全溢出,交换机全环路,防火墙全阻…