【深度学习】——梯度下降优化算法(批量梯度下降、随机梯度下降、小批量梯度下降、Momentum、Adam)

目录

梯度

梯度下降

常用的梯度下降算法(BGD,SGD,MBGD)

梯度下降的详细算法

算法过程

批量梯度下降法(Batch Gradient Descent)

随机梯度下降法(Stochastic Gradient Descent)

小批量梯度下降法(Mini-batch Gradient Descent)

 梯度下降的优化算法

存在的问题

梯度下降优化的方法

 机器学习中具体梯度下降的优化算法

基于陷入局部最优的问题的优化

Momentum算法

基于学习率方面进行的梯度优化

Adam算法(Adaptive Moment Estimation)


参考:梯度下降(Gradient Descent)小结

梯度

概念:在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。

 意义:梯度是函数在当前位置变化最快的方向,因此可以使得损失函数很快地找到极值,损失一般是找极小值,进而用于指导训练模型中参数的更新。 

梯度下降

        首先来看看梯度下降的一个直观的解释。比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山峰低处

具体实施:从整体来看,当点下降最快的方向不是由某一个维度的偏导决定的1,而是由所有维度的偏导共同决定的,这也符合“梯度是变化最快的方向”和“梯度是函数对所有参数求偏导后的值的向量”这两个说法。在实际实施中,我们一般是通过偏导来指导不同参数的更新,以此来做到函数值下降得最快(梯度方向)。这就是梯度下降的本质。

        从上面的解释可以看出,梯度下降不一定能够找到全局的最优解,有可能是一个局部最优解。当然,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。

常用的梯度下降算法(BGD,SGD,MBGD)

梯度下降的详细算法

算法过程

一般有两种方法,一种迭代,一种矩阵运算,具体见:梯度下降(Gradient Descent)小结

批量梯度下降法(Batch Gradient Descent)

 优点:对于准确率来说,因为使用了全部样本的梯度,所以准确率会更高

缺点:但是使用了全部样本,导致在训练速度和收敛速度上都比较慢

随机梯度下降法(Stochastic Gradient Descent)

 优点:随机梯度下降就是BGD的极端,只是随机选择一个样本的梯度来指导梯度的下降,因为使用了一个样本,因此其训练速度会很快

缺点:但是非常依赖于初始值和步长的影响,有可能会陷入局部最优中,导致收敛速度慢

小批量梯度下降法(Mini-batch Gradient Descent)

在深度学习中,SGD和MBGD统称为SGD

这个梯度下降算法其实就是结合了BGD和SGD两者,采用了小批次的梯度来进行计算。

优点:分担了训练压力(小批量)、加快收敛

缺点:初始学习率难以确定、容易陷入局部最优

 梯度下降的优化算法

存在的问题

BGD、SGD以及MBGD都是比较常见的梯度算法,但是都存在以下问题:

1)学习步长(学习率)难以确定,是超参数,太大导致跳过最优解,太小收敛速度慢,可能会导致陷入局部最优;

2)参数初始值的确定,不同初始值有可能会产生不同的最优解,比如初始值分别在两座山的山顶,那得到的山脚位置自然是可能不一样的;

3)样本特征值的差异性大,变化范围大

梯度下降优化的方法

 机器学习中具体梯度下降的优化算法

基于陷入局部最优的问题的优化

Momentum算法

Momentum算法是在MBGD的基础上进行了修改,即在梯度方向上增加动量(Momentum),意思指在更新梯度时,会保留之前更新的梯度方向,然后利用当前批次的梯度进行微调

优点:

1)能够抑制梯度的震荡,在梯度与上次相同的时候梯度下降多一点,反之少一点

2)有可能跳出局部极值

基于学习率方面进行的梯度优化

Adam算法(Adaptive Moment Estimation)

优点:

1)每一次迭代的学习率都在依次确定的范围内 ,使得参数更新更加地稳定

2)使模型更加地收敛,适用于深层网络和较为复杂的场景

参考文献

https://blog.csdn.net/liuy9803/article/details/81780543

https://www.cnblogs.com/pinard/p/5970503.html

物体检测书籍

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

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

相关文章

双工位机器人 焊接夹具注意事项 o(╯□╰)o

焊接夹具设计注意事项 一套完美的夹具,需要机械设计人员正确的设计思想,良好的配件质量,钳工负责认真的装配质量,卡具在使用中不断的修磨和改进,才会达到好的效果。 本人非机械设计,只是在使用焊接卡具过程中遇到了很多卡具设计上…

【机器学习】——《机器学习实战》面试复习

目录 一、机器学习概念 二、机器学习步骤 三、有监督学习 1、k-近邻算法 核心思想 实例:手写数字的识别 优缺点: 2、决策树 相关概念 核心思想 一些小技巧 优缺点 3、神经网络 4、SVM——支持向量机 核心思想 SVM和SVR的区别 ​ 优缺点…

ubuntu安装LDAP

参考文献: https://help.ubuntu.com/12.04/serverguide/openldap-server.html(最主要的) http://www.linuxidc.com/Linux/2011-08/40020.htm http://blog.chinaunix.net/uid-24276740-id-3360306.html 前言 在网上搜索ldap的安装配置&#xf…

ABB机器人之LOADDATA

ABB机器人之LOADDATA loaddata是用来描述连接到机器人机械接口的负载(机器人的安装法兰)。loaddata数据通常定义有效载荷或负荷(通过指令gripload设置机器人抓手负载 或mechunitload指令设置变位机负载。loaddata通常也作为tooldata的一部分&…

【深度学习】——性能指标(ROC、MAP、AUC等)

目录 一、分类任务性能指标 1、混淆矩阵 2、精确度ACCURACY 正确数/总数 3、查全率(RECALL)——真正正样本中预测正确的比例 4、查准率(precision)——预测为正样本中的预测正确的比例 5、F-score——对查准率和查全率进行结…

【深度学习】——过拟合的处理方法

目录 一、什么是过拟合?(overfitting) 二、过拟合的表现(判定方法) 训练集、测试集、验证集区别 测试集与验证集的区别 三、产生过拟合的原因 1、样本方面 2、模型方面 四、避免过拟合的方法 1、样本方面 1&…

ASP.NET页面的字符编码设置

在用ASP.NET写网上支付的接口程序时&#xff0c;遇到一个奇怪问题&#xff0c;通过表单提交过去的中文全是乱码&#xff0c;英文正常。而用asp程序进行测试&#xff0c;可以正常提交中文&#xff0c;asp页面中有这样的HTML代码&#xff1a; <meta http-equiv"Content-T…

【深度学习】——BN层(batch normalization)

目录 一、“Internal Covariate Shift”问题 二、BatchNorm的本质思想 两个参数r和β的意义——精髓所在 三、训练阶段如何做BatchNorm 四、BatchNorm的推理(Inference)过程 五、BatchNorm的好处 一般使用在卷积层后、激活层前 Batch Normalization作为最近一年来DL的重要…

JAXB vs XStream

2019独角兽企业重金招聘Python工程师标准>>> JAXB vs XStream 博客分类&#xff1a; java JAXB vs XStream 这两东东本质上是有差别的&#xff0c;JAXB称为OX binding工具&#xff0c;XStream应该算序列化工具&#xff0c;但OX binding工具也会marshall和unmarsha…

ABB 机器人 DRVIO_1通信报警

ABB 机器人DRVIO_1通信报警 2014.06.13 ABB1600弧焊机器人&#xff0c;从A地搬运到B地&#xff0c;到达B地后&#xff0c;机器人上电&#xff0c;报DRVIO_1通信故障&#xff0c;机器人进入故障停止模式。 DRVIO_1为LOCAL_GENERIC类型的ABB内部LOCAL总线类型的单元实例。 故障…

S2SH CRUD 整合

S2SH CRUD 整合 采用的框架 Struts2Spring4Hbiernate4. 目录结构 &#xff1a; EmployeeAction: 1 package com.xx.ssh.actions;2 3 import java.io.ByteArrayInputStream;4 import java.io.InputStream;5 import java.io.UnsupportedEncodingException;6 import java.util.…

ABB 机器人 添加多任务

首先&#xff0c;需要启用多任务选项的控制器。 要做到这一点&#xff0c;创建一个新的机器人控制器RobotStudio站 - >选择机器人&#xff08;控制器菜单&#xff09; - >.................. - >系统生成器 - >选择控制器 - >修改...下一页 - >下一步 - >…

分享12306抢票心得-终极秒杀思路篇

12306抢票的关键拼的就是整点出票的速度&#xff0c;快的几秒钟&#xff0c;慢的几分钟&#xff0c;本文提供终极抢票攻略&#xff0c;通过多线程扫描上万个CDN&#xff0c;来大幅度提升出票速度。准备一&#xff1a;需要了解CDN和切站的机制&#xff0c;请参考&#xff1a;分享…

JVM内幕:Java虚拟机详解

为什么80%的码农都做不了架构师&#xff1f;>>> 这篇文章解释了Java 虚拟机&#xff08;JVM&#xff09;的内部架构。下图显示了遵守 Java SE 7 规范的典型的 JVM 核心内部组件。 上图显示的组件分两个章节解释。第一章讨论针对每个线程创建的组件&#xff0c;第二章…

ABB机器人 系统参数配置

系统参数用于定义系统配置并在出厂时根据客户的需要定义。 可使用 FlexPendant 或 RobotStudio Online 编辑系统参数。 此步骤介绍如何查看 系统参数配置。 操作 &#xff1a; 1. 在 ABB 菜单上&#xff0c;点击控制面板。 2. 点击配置。显示选定主题的可用类型列表。 3. 点…

四则运算2开发简介

四则运算2在四则运算1的基础之上&#xff0c;又添加了新的功能&#xff0c;但是我觉得四则运算2的难度比四则运算1增大了很多&#xff0c;我在编程的过程中&#xff0c;遇到的最大难度就是不知该如何更好的融合各个功能之间的关系。 写到现在&#xff0c;四则运算2主要实现了以…

ABB机器人的 备份与恢复

保存内容 备份功能可保存上下文中的所有系统参数、系统模块和程序模块。 备份内容 数据保存于用户指定的目录中。 默认路径可加以设置。 目录分为四个子目录&#xff1a;Backinfo、Home、Rapid 和 Syspar。 System.xml 也保存于包含用户设置的 ../backup &#xff08;根…

【深度学习】——物体检测细节处理(NMS、样本不均衡、遮挡物体)

目录 一、候选框大量重叠问题 1、NMS核心思想 2、 步骤&#xff1a; 3、缺陷 4、改进 1&#xff09;soft NMS——衰减的方式来减小预测框的分类得分 2&#xff09;softer nms——增加了位置置信度 二、样本不平衡问题 1、不平滑的来源&#xff08;3方面&#xff09; 1&a…

第6章 循环结构

循环语句: 可以让一部分代码,反复执行 1.1 循环语句while while循环: 编写格式:while(条件){ 循环体 } 条件: 当条件是true,就执行循环体,执行完循环体后 程序再次执行while中的条件,如果条件还是true,继续执行循环体 直到条件是false的时候,循环就结束 public class WhileDem…

MongoDB复制集技术

为什么使用MongogDB复制集技术? mysql中:一主一从&#xff0c;一主多从结构存在的问题 1、 fileover&#xff08;故障转移&#xff09;a) 选主投票b) 切换 2、 是否对就用透明化 3、 数据补偿的问题a) 两阶段数据补偿 4、 解决方法 mysql中使用MHAVIP b…