吴恩达深度学习笔记:优化算法 (Optimization algorithms)2.8

目录

  • 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)
    • 第二周:优化算法 (Optimization algorithms)
      • 2.8 Adam 优化算法(Adam optimization algorithm)

第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)

第二周:优化算法 (Optimization algorithms)

2.8 Adam 优化算法(Adam optimization algorithm)

在深度学习的历史上,包括许多知名研究者在内,提出了优化算法,并很好地解决了一些问题,但随后这些优化算法被指出并不能一般化,并不适用于多种神经网络,时间久了,深度学习圈子里的人开始多少有些质疑全新的优化算法,很多人都觉得动量(Momentum)梯度下降法很好用,很难再想出更好的优化算法。所以 RMSprop 以及 Adam 优化算法(Adam优化算法也是本视频的内容),就是少有的经受住人们考验的两种算法,已被证明适用于不同的深度学习结构,这个算法我会毫不犹豫地推荐给你,因为很多人都试过,并且用它很好地解决了许多问题。

Adam 优化算法基本上就是将 Momentum 和 RMSprop 结合在一起,那么来看看如何使用 Adam 算法。

在这里插入图片描述

使用 Adam 算法,首先你要初始化, v d W v_{dW} vdW = 0, S d W S_{dW} SdW = 0, v d b v_db vdb = 0, S d b S_db Sdb = 0,在第𝑡次迭代中,你要计算微分,用当前的 mini-batch 计算 d W dW dW d b db db,一般你会用 mini-batch 梯度下降法。接下来计算 Momentum 指数加权平均数,所以 v d W = β 1 v d W + ( 1 − β 1 ) d W v_{dW} = \beta_1 v_{dW} + (1 − \beta_1)dW vdW=β1vdW+(1β1)dW(使用 β 1 \beta_1 β1,这样就不会跟超参数 β 2 \beta_2 β2混淆,因为后面 RMSprop 要用到 β 2 \beta_2 β2),使用 Momentum 时我们肯定会用这个公式,但现在不叫它𝛽,而叫它 β 1 \beta_1 β1。同样 v d b = β 1 v d b + ( 1 − β 1 ) d b v_{db} = \beta_1v_{db} + (1 − \beta_1)db vdb=β1vdb+(1β1)db

接着你用 RMSprop 进行更新,即用不同的超参数 β 2 \beta_2 β2 S d W = β 2 S d W + ( 1 − β 2 ) ( d W ) 2 S_{dW} = \beta_2 S_{dW} + (1 − \beta_2)(dW)^2 SdW=β2SdW+(1β2)(dW)2,再说一次,这里是对整个微分 d W dW dW进行平方处理, S d b = β 2 S d b + ( 1 − β 2 ) ( d b ) 2 S_db = \beta_2 S_db + (1 − \beta_2)(db)^2 Sdb=β2Sdb+(1β2)(db)2

相当于 Momentum 更新了超参数 β 1 \beta_1 β1,RMSprop 更新了超参数 β 2 \beta_2 β2。一般使用 Adam 算法的时候,要计算偏差修正,

v d W c o r r e c t e d v_{dW}^{corrected} vdWcorrected,修正也就是在偏差修正之后, v d W c o r r e c t e d = v d W 1 − β 1 t v_{dW}^{corrected} =\frac{v_{dW}}{1−\beta_1^t} vdWcorrected=1β1tvdW,同样 v d b c o r r e c t e d = v d b 1 − β 1 t v_{db}^{corrected}=\frac{v_{db}}{1−\beta_1^t} vdbcorrected=1β1tvdb,𝑆也使用偏差修正,也就是 S d W c o r r e c t e d = S d W 1 − β 2 t S_{dW}^{corrected} =\frac{S_{dW}}{1−\beta_2^t} SdWcorrected=1β2tSdW S d b c o r r e c t e d = S d b 1 − β 2 t S_{db}^{corrected} =\frac{S_{db}}{1−\beta_2^t} Sdbcorrected=1β2tSdb

最后更新权重,所以𝑊更新后:
W : = W − α v d W c o r r e c t e d S d W c o r r e c t e d + ϵ W: = W − \alpha \frac{v_{dW}^{corrected}}{\sqrt{S_{dW}^{corrected} + \epsilon }} W:=WαSdWcorrected+ϵ vdWcorrected
(如果你只是用 Momentum,使用𝑣𝑑𝑊或者修正后的𝑣𝑑𝑊,但现在我们加入了 RMSprop 的部分,所以我们要除以修正后𝑆𝑑𝑊的平方根加上𝜀)。

根据类似的公式更新𝑏值:
b : = b − α v d b c o r r e c t e d S d b c o r r e c t e d + ϵ b:=b −\alpha \frac{v_{db}^{corrected}}{\sqrt{S_{db}^{corrected} + \epsilon }} b:=bαSdbcorrected+ϵ vdbcorrected

所以 Adam 算法结合了 Momentum 和 RMSprop 梯度下降法,并且是一种极其常用的学习算法,被证明能有效适用于不同神经网络,适用于广泛的结构。

在这里插入图片描述

本算法中有很多超参数,超参数学习率 α \alpha α很重要,也经常需要调试,你可以尝试一系列值,然后看哪个有效。 β 1 \beta_1 β1常用的缺省值为 0.9,这是 d W dW dW 的移动平均数,也就是 d W dW dW的加权平均数,这是 Momentum 涉及的项。至于超参数 β 2 \beta_2 β2,Adam 论文作者,也就是 Adam 算法的发明者,推荐使用 0.999,这是在计算 ( d W ) 2 (dW)^2 (dW)2以及 ( d b ) 2 (db)^2 (db)2的移动加权平均值,关于 ϵ \epsilon ϵ 的选择其实没那么重要,Adam 论文的作者建议 ϵ \epsilon ϵ 1 0 − 8 10^{−8} 108,但你并不需要设置它,因为它并不会影响算法表现。但是在使用 Adam 的时候,人们往往使用缺省值即可, β 1 \beta_1 β1 β 2 \beta_2 β2 ϵ \epsilon ϵ都是如此,我觉得没人会去调整𝜀,然后尝试不同的 α \alpha α值,看看哪个效果最好。你也可以调整 β 1 \beta_1 β1 β 2 \beta_2 β2,但我认识的业内人士很少这么干。

为什么这个算法叫做 Adam?Adam 代表的是 Adaptive Moment Estimation, β 1 \beta_1 β1用于计算这个微分( d W dW dW),叫做第一矩, β 2 \beta_2 β2用来计算平方数的指数加权平均数(( d W dW dW)^2),叫做第二矩,所以 Adam 的名字由此而来,但是大家都简称 Adam 权威算法。

顺便提一下,我有一个老朋友兼合作伙伴叫做 Adam Coates。据我所知,他跟 Adam 算法没有任何关系,不过我觉得他偶尔会用到这个算法,不过有时有人会问我这个问题,我想你可能也有相同的疑惑。

这就是关于 Adam 优化算法的全部内容,有了它,你可以更加快速地训练神经网络,在结束本周课程之前,我们还要讲一下超参数调整,以及更好地理解神经网络的优化问题有哪些。下个视频中,我们将讲讲学习率衰减。

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

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

相关文章

短视频批量剪辑,智能素材文案生成,多账号授权私信回复与矩阵发布素材功能合集系统,短视频矩阵助手源码搭建部署源码开源部署方案。

目录 一、短视频矩阵助手系统是什么? 二、短视频矩阵助手系统可以为企业解决什么问题? 短视频矩阵助手可以解决哪些问题? 三、短视频矩阵助手系统功能有哪些? 四、总结 一、短视频矩阵助手系统是什么? 短视频矩阵…

提升MySQL性能的秘密:了解表压缩功能的使用及其对性能的影响。

在MySQL数据库的使用中,对于字段类型设计大家可能都有一些思路和方式,但是针对存储方面的设计,在表结构设计之初可能就没考虑过,只有当业务发展到一定规模才意识到它所带来的问题严重性。而物理存储主要是考虑是否要启用表的压缩功…

如何把一张图片分割为网页布局

将一张图片分割为适合网页布局的步骤主要涉及使用图像编辑软件,如Adobe Photoshop,进行切片操作。以下是详细的步骤指导: 1. 准备图片 确保你有一张想要分割的图片,并且已经打开了Adobe Photoshop。 2. 选择切片工具 在工具栏…

环保科普馆如何互动化加深观众环保认知?

如今,多媒体技术的广泛应用,已经为环保、天文、生物等各类主题展厅注入了新的活力,在这些展馆中,它凭借独特的互动体验,以及深入浅出的教育方式,赢得了广大观众的热烈追捧。今天,我们就一同探讨…

阿里巴巴发布最新财报,营收重回增长轨道

KlipC报道:5月14日,阿里巴巴集团发布2024财年及第四财季最新财报,财报显示第四财季收入2218.74亿元,同比增长7%,超出市场预期。2024财年收入同比增长8%,达9411.68亿元。 第四财季净利润244.2亿元人民币&am…

【设计模式】JAVA Design Patterns——Aggregator Microservices(聚合器微服务模式)

🔍目的 用户对聚合器服务进行一次调用,然后聚合器将调用每个相关的微服务。 🔍解释 真实世界例子 网络市场需要有关产品及其当前库存的信息。 它调用聚合服务,聚合服务依次调用产品信息微服务和产品库存微服务,返回组合…

制作coco类型数据集

COCO格式数据集简介 COCO数据集是一个大型的、丰富的物体检测,分割和字幕数据集。这个数据集以scene understanding(场景理解)为目标,主要从复杂的日常场景中截取,图像中的目标通过精确的segmentation(分…

道路运输驾驶员从业资格报考条件

根据《中华人民共和国道路运输条例》、交通运输部《道路运输从业人员管理规定》和上级交通运输部门的管理要求,参加道路运输从业资格培训时应遵守以下规定: 1、年龄不超过60周岁。 2、驾驶员要取得相应的机动车驾驶证(C4以上)。…

一步步教您轻松搭建YOLO训练环境(视频教程)

一步步教您轻松搭建YOLO训练环境 YOLO(You Only Look Once)是一种流行的实时目标检测算法。为了安装和部署YOLO的训练环境,你需要按照以下步骤进行操作: 一、前期准备 确定硬件要求:YOLO通常在具有GPU的计算机上运行…

不懂技术可以当项目经理吗?看完这篇你就知道了

项目经理作为项目的核心负责人,主要负责项目的规划、组织、协调和控制。 如果你不懂技术,但具备出色的项目管理技能,你仍然可以成功地管理项目。你可以通过与技术团队建立紧密的合作关系,明确项目需求,并依赖技术团队…

远程医疗系统

在远程医疗系统中,为了充分发挥其推动医疗科技创新的作用,系统可以包含以下功能点,并服务于不同类型的用户: 一、系统功能点 远程会诊系统: 实时视频会诊:医生与患者或医生与医生之间的实时视频交流。 病…

IntelliJ IDEA - 查看项目工程代码量统计

首先安装一个统计插件——Statistic 接着在左下角可以看到 Statistic Logo 插件,点击即可看到统计面板

SCSS详解

SCSS(Sassy CSS)是Sass 3引入的新语法,完全兼容CSS3,并且继承了Sass的强大功能。与原始的Sass语法不同,SCSS语法使用了和CSS一样的块语法,即使用大括号“{}”将不同的规则分开,使用分号“;”将具…

正则表达式和sed

一、正则表达式 主要用来匹配字符串(命令结果,文本内容), 通配符匹配文件(而且是已存在的文件) 基本正则表达式 扩展正则表达式 1.元字符 . 匹配任意单个字符,可以是一个汉字 […

在C#中编写递归函数时,为了避免无限递归

在C#中编写递归函数时,为了避免无限递归(也称为栈溢出),你需要确保递归调用有一个明确的终止条件。这个终止条件通常基于一个或多个参数,当这些参数满足某个特定条件时,递归就会停止并返回结果。 以下是一…

第 8 章 机器人底盘Arduino端PID控制(自学二刷笔记)

重要参考: 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 8.4.5 底盘实现_04Arduino端PID控制 上一节最后测试时,电机可能会出现抖动、顿挫的现象&#xff…

Double 4 VR情景教学实训系统在酒店管理课堂上的应用

随着科技的不断发展,虚拟现实技术(VR)已经逐渐渗透到各个领域。在教育领域,VR技术也得到了广泛的应用。 一、酒店管理专业教学场景的模拟 Double 4 VR情景教学实训系统能够模拟真实的工作环境,让学生身临其境地感受酒店…

ubuntu下安装pwndbg

安装pwndbg 如果可以科学上网 首先安装git apt install git 然后拉取git库 git clone GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB Made Easy 进入到pwngdb的文件夹中 cd pwngdb 执行 ./setup.sh 而后输入gdb 出现红色pwndgb就是安装成功…

解决springboot+vue静态资源刷新后无法访问的问题

一、背景 原项目是有前后端分离设计,测试环境是centos系统,采用nginx代理和转发,项目正常运行。 项目近期上线到正式环境,结果更换了系统环境,需要放到一台windows系统中,前后端打成一个jar包,…

Python重复文件清理小工具

针对电脑长期使用产生的重复文件,尤其是微信电脑版每转发一次生成一个重复文件的问题,用python写了一个批量清理重复文件的小工具,记录备用。 import shutil import tkinter from tkinter import filedialog import os import threading imp…