一、Momentum

1. 计算dw、db.

2. 定义v_db、v_dw

\[
v_{dw}=\beta v_{dw}+(1-\beta)dw
\]
\[
v_{db}=\beta v_{db}+(1-\beta)db
\]

3. 更新dw、db

\[
dw=w-\alpha v_{dw}
\]
\[
db=b-\alpha v_{db}
\]

二、RMSprop

1. 计算dw、db.

2. 定义s_db、s_dw (这里的平方是元素级的)

\[
s_{dw}=\beta s_{dw}+(1-\beta)dw^2
\]
\[
s_{db}=\beta s_{db}+(1-\beta)db^2
\]

3. 更新dw、db

\[
dw=w-\alpha \frac{w}{\sqrt{s_{dw}}}
\]
\[
db=b-\alpha \frac{b}{\sqrt{s_{db}}}
\]

三、Adam

==结合了Momentum+RMSprop==

1. 计算dw、db.

2. 定义v_db、v_dw、s_db、s_dw.

\[
v_{dw}=\beta_{1} v_{dw}+(1-\beta_{1})dw
\]
\[
v_{db}=\beta_{1} v_{db}+(1-\beta_{1})db
\]
\[
s_{dw}=\beta_{2} s_{dw}+(1-\beta_{2})dw^2
\]
\[
s_{db}=\beta_{2} s_{db}+(1-\beta_{2})db^2
\]

3. 纠偏(t为迭代次数)

\[
v_{dw}^{correct}=\frac{v_{dw}}{1-\beta^t}
\]
\[
v_{db}^{correct}=\frac{v_{db}}{1-\beta^t}
\]
\[
s_{dw}^{correct}=\frac{s_{dw}}{1-\beta^t}
\]
\[
s_{db}^{correct}=\frac{s_{db}}{1-\beta^t}
\]

4. 更新dw、db,e为很小的数,防止分母为0。

通常(e=10^-8)

\[
dw=w-\alpha \frac{v_{dw}^{correct}}{\sqrt{s_{dw}^{correct}}+e}
\]
\[
db=b-\alpha \frac{v_{db}^{correct}}{\sqrt{s_{db}^{correct}}+e}
\]

深度学习优化算法Momentum RMSprop Adam的更多相关文章

  1. 从 SGD 到 Adam —— 深度学习优化算法概览(一) 重点

    https://zhuanlan.zhihu.com/p/32626442 骆梁宸 paper插画师:poster设计师:oral slides制作人 445 人赞同了该文章 楔子 前些日在写计算数学 ...

  2. ubuntu之路——day8.1 深度学习优化算法之mini-batch梯度下降法

    所谓Mini-batch梯度下降法就是划分训练集和测试集为等分的数个子集,比如原来有500W个样本,将其划分为5000个baby batch,每个子集中有1000个样本,然后每次对一个mini-bat ...

  3. ubuntu之路——day8.2 深度学习优化算法之指数加权平均与偏差修正,以及基于指数加权移动平均法的动量梯度下降法

    首先感谢吴恩达老师的免费公开课,以下图片均来自于Andrew Ng的公开课 指数加权平均法 在统计学中被称为指数加权移动平均法,来看下面一个例子: 这是伦敦在一些天数中的气温分布图 Vt = βVt- ...

  4. 深度学习——优化器算法Optimizer详解(BGD、SGD、MBGD、Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam)

    在机器学习.深度学习中使用的优化算法除了常见的梯度下降,还有 Adadelta,Adagrad,RMSProp 等几种优化器,都是什么呢,又该怎么选择呢? 在 Sebastian Ruder 的这篇论 ...

  5. 优化深度神经网络(二)优化算法 SGD Momentum RMSprop Adam

    Coursera吴恩达<优化深度神经网络>课程笔记(2)-- 优化算法 深度机器学习中的batch的大小 深度机器学习中的batch的大小对学习效果有何影响? 1. Mini-batch ...

  6. 深度学习剖根问底: Adam优化算法的由来

    在调整模型更新权重和偏差参数的方式时,你是否考虑过哪种优化算法能使模型产生更好且更快的效果?应该用梯度下降,随机梯度下降,还是Adam方法? 这篇文章介绍了不同优化算法之间的主要区别,以及如何选择最佳 ...

  7. ui2code中的深度学习+传统算法应用

    背景 在之前的文章中,我们已经提到过团队在UI自动化这方面的尝试,我们的目标是实现基于 单一图片到代码 的转换,在这个过程不可避免会遇到一个问题,就是为了从单一图片中提取出足够的有意义的结构信息,我们 ...

  8. <深度学习优化策略-3> 深度学习网络加速器Weight Normalization_WN

    前面我们学习过深度学习中用于加速网络训练.提升网络泛化能力的两种策略:Batch Normalization(Batch Normalization)和Layer Normalization(LN). ...

  9. Attention机制在深度学习推荐算法中的应用(转载)

    AFM:Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Ne ...

随机推荐

  1. 浅析final关键字

    浅析final关键字 final单词字面意思是"最终的,不可更改的".所以在java中final关键字表示终态,即最终的状态,"这个东西不能被改变". fina ...

  2. linux_定时任务

    什么是定时任务? linux系统自身定期执行的任务和工作: 轮训系统日志.备份系统数据.清理缓存等 var/log/messages # 系统日志文件, ll /etc/|grep cron # 查询 ...

  3. 判断具有某个属性js、jQuery

    if(!rr.classList.contains('invalid')){ updateCount(i,-1);//更新tab数量 } /*if(!$(rr).hasClass('invalid') ...

  4. 第一个简单的maven项目

    学习一个新的东西,最快的方式就是实践.所以我们也不用多说什么了,直接拿一个项目来练手.下面的整理取自maven权威指南,在一堆maven资料中,我觉得这本书写的最好. 简介 我们介绍一个用Maven ...

  5. 通过脚本生成poco实体

    今天在做开发时,需要把表映射成实体,又没有EF这种工具,就从网上下了一个工具,但使用时觉得太重了,所以就自己写了一个,基于mysql的. 功能:输入表名,得到这个表的poco实体 SELECT COL ...

  6. <global-results>标签来定义全局的<result>

    <global-results> <result name="error">/Error.jsp</result>   <!--   Ac ...

  7. 二目运算符 “->”

    -> 在C语言中称为间接引用运算符,是二目运算符,优先级同成员运算符“.”.用法:p->a,其中p是指向一个结构体的指针,a是这个结构体类型的一个成员.表达式p->a引用了指针p指向 ...

  8. iOS-电子书开发 笔记

    前言 刚接手电子书项目时,和安卓开发者pt Cai老师[aipiti Cai,一个我很敬佩很资深的开发工程师,设计领域:c++.Java.安卓.QT等]共同商议了一下,因为项目要做要同步,移动端[手机 ...

  9. ABP官方文档翻译 6.1.3 异常处理

    处理异常 介绍 启用错误处理 Non-Ajax请求 显示异常 UserFriendlyException Error模型 AJAX请求 异常事件 介绍 此文档是与ASP.NET MVC和Web API ...

  10. Golang Linux Shell编程(一)

    1.调用系统命令 exec包执行外部命令,它将os.StartProcess进行包装使得它更容易映射到stdin和stdout,并且利用pipe连接i/o func Command(name stri ...