优化器学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、SGD(随机梯度下降算法)
  • 二、Momentum
  • 三、AdaGrad
  • 四、Adam算法


前言

最优化是应用数学的一个分支,主要研究在特地情况下函数的最大最小值。
优化目标一般有凸函数和非凸函数两种。其中凸函数的全局最小值与局部最小值一般重合。其中非凸函数的局部最小值点有很多,不与凸函数的全局最小值点重合。
在深度学习中,由于激活函数的非线性特点和网络的复杂性,导致要优化的目标是一个很复杂的非凸函数。
在深度学习中的优化方法一般可以分为两类
第一类是 基于更新方向(SGD,Momentum)
第二类是 基于选择更适合的学习率()


一、SGD(随机梯度下降算法)

假设目标函数为
在这里插入图片描述
该函数的图像以及等高线图
在这里插入图片描述
首先一个目标函数的梯度指的是垂直于等高线的切线,并且朝着这个方向,目标函数值上升最快。

所以随机梯度下降算法就是,不断的更新参数的梯度,更新的方向是朝着这个方向,目标函数值下降最快。更新的值与步长有关。

W = W - 步长*梯度

使用随机梯度下降算法的更新路径如下:
在这里插入图片描述
随机梯度下降算法的特点就是实现简单,但是效率不高

二、Momentum

Momentum的公式如下:
在这里插入图片描述
在更新梯度时。有一个V向量,如何理解这个向量对更新梯度的影响呢?观察下图。
在这里插入图片描述
在B点,V向量的方向是B点的上一个点A点的梯度更新方向,而此时B点梯度方向如图,如果是SGD算法,整个目标函数会朝着B点的梯度方向去更新,如果是加入V向量的话,会朝着A点的梯度更新方向与B点的梯度更新方向中间方向取更新梯度。这样做的好处
更新的会更快,效率更高,不会像SGD那样拐来拐去。

使用momentum的更新路径如下:
在这里插入图片描述


三、AdaGrad

接下来介绍的都属于第二类,主要是如果更新学习率(步长)。有一种被称为学习率衰减的方法,即是随着学习的进行,使学习率逐渐减小。

AdaGrad会为每一个元素适当的调整学习率,AdaGrad的更新方法如下:
在这里插入图片描述
h代表的是累积以前所有参数的梯度平方和,在更新参数时,通过乘以1/根号h,就可以使得,如果参数的梯度值变化较大,那么对应的该参数的学习率会逐渐减小。
更新的路径如下:
在这里插入图片描述
当然这个算法存在一定问题,就是如果训练次数很多,h一直累加,就会导致h趋于无穷,1/h则趋于0,就会导致参数无法更新。针对这个问题,提出RMSprop算法。RMSprop的思想就是,加入了衰减因子,使得当前的梯度对步长的影响更大,而之前累加的梯度和对步长的影响相比之下更小。公式如下:
在这里插入图片描述

四、Adam算法

Adam算法就是融合Momentum和AdaGrad这两种方法。即对参数梯度更新的方向进行了优化,又对学习率进行优化。
使用Adam的更新路径如下:
在这里插入图片描述

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

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

相关文章

不同路径(力扣)动态规划 JAVA

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 示例 1&a…

【Git原理与使用】-- 企业级开发模型

目录 引入 系统开发环境 Git 分支设计规范 master 分支 release 分支 develop 分支 feature 分支 hotfix 分支 开发场景 - 基于git flow模型的实践 DevOps研发平台 修复测试环境 Bug 修改预发布环境 Bug 修改正式环境 Bug 紧急修复正式环境 Bug 拓展实践 都说&a…

基于matlab评估单相机校准的准确性(附源码)

一、前言 相机校准是使用特殊校准模式的图像估计相机参数的过程。参数包括相机内在系数、失真系数和相机外在系数。校准相机后,有几种方法可以评估估计参数的准确性: 绘制相机的相对位置和校准模式 计算重投影误差 计算参数估计误差 二、校准相机 …

2023.7.08

#include "widget.h"void Widget::my_slot() {if((edit1->text()"admin")&&(edit2->text()"123456")){qDebug()<<"登陆成功";emit jump();close();}else{qDebug()<<"登陆失败";} }void Widget::b…

Mysql之视图,索引及数据的备份与恢复

目录 一、视图 1.视图是什么 2.视图与数据表的区别 3.视图的优缺点 优点&#xff1a; 缺点&#xff1a; 4.视图的应用场景 5.语法运用 二、索引 1.什么是索引 2.为什么要使用索引 3.使用索引的优缺点 4.何时不使用索引 5.索引何时失效 6.索引分类 三、数据的备份…

微信小程序做登录密码显示隐藏效果

wxml 注意&#xff1a;在html中的input是通过切换type的属性值来实现隐藏显示的 在微信小程序的input里面type没有password属性 是通过password属性的true或者false来设置是否为密码框 <view class"input-item"><text class"tit">密码</…

经典图像识别卷积神经网络总结记录

这篇博文主要是延续前文系列的总结记录&#xff0c;这里主要是总结汇总日常主流的图像识别模型相关知识内容。 下面对上述列出的卷积神经网络模型进行逐个详细介绍、算法原理分析以及优缺点总结&#xff1a; (1)LeNet-5 算法原理&#xff1a; LeNet-5是最早应用于手写数字识别…

Android 前台服务讲解

目录 Android 前台服务和后台服务区别 前台服务&#xff08;Foreground Service&#xff09;&#xff1a; 后台服务&#xff08;Background Service&#xff09;&#xff1a; 总结&#xff1a; 前台服务更新&#xff1a; JobScheduler、WorkManager 区别和使用方式 andro…

华为Harmony应用开发初探

HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体…

Spring复习: (5) DefaultBeanDefinitionDocumentReader和BeanDefinitionParserDelegate

DefaultBeanDefinitionDocumentReader和BeanDefinitionParserDelegate 这两个类里定义了大量的静态变量&#xff0c;这些变量用来在xml配置文件中使用

怎么学习PHP的文件上传和图像处理技术? - 易智编译EaseEditing

学习PHP的文件上传和图像处理技术可以按照以下步骤进行&#xff1a; 掌握基础知识&#xff1a; 了解PHP的基本语法和文件操作函数。熟悉文件上传的相关概念和流程。 学习文件上传&#xff1a; 学习如何在PHP中实现文件上传功能。了解表单的 enctype 属性、文件上传限制、文件…

Helm之深入浅出Kubernetes包管理工具使用

Chart 使用 作者:行癫(盗版必究) 一:Chart 模板使用 1.创建chart ​ templates目录包括了模板文件;当Helm评估chart时,会通过模板渲染引擎将所有文件发送到templates目录中;然后收集模板的结果并发送给Kubernetes ​ values.yaml 文件也导入到了模板;这个文件包含了c…