花书+吴恩达深度学习(七)优化方法之基本算法(Momentum, Nesterov, AdaGrad, RMSProp, Adam)
目录
0. 前言
1. 指数加权平均(exponentially weighted averages)
2. Momentum 动量
3. Nesterov 动量
4. AdaGrad
5. RMSProp
6. Adam
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~
花书+吴恩达深度学习(五)正则化方法(防止过拟合)
花书+吴恩达深度学习(六)优化方法之 Mini-batch(SGD, MBGD, BGD)
花书+吴恩达深度学习(七)优化方法之基本算法(Momentum, Nesterov, AdaGrad, RMSProp, Adam)
花书+吴恩达深度学习(八)优化方法之 Batch normalization
花书+吴恩达深度学习(九)优化方法之二阶近似方法(牛顿法, CG, BFGS, L-BFGS)
0. 前言
在使用 Mini-batch 的时候,通常梯度估计的方向不直接指向最小值点,容易造成曲折波动的路线。
为了防止这种路线,改善梯度估计的方向,可对反向传播作修改。
如下图所示(图源:深度学习),黑色路线是未修改的梯度估计方向,红色路线是修改后的梯度估计方向:
1. 指数加权平均(exponentially weighted averages)
假设, 表示前 个值的和, 表示第 个值,则指数加权平均表示为:
根据 的不同, 表示大约前 个数的平均。
被称为指数的原因是,表达式递归展开,从 0 到 t 的权重表现为指数的形式:
因初始化 ,所以造成 等几个初始点会较小,可进行偏差修正:
但是这种方法不常用,通常可以接受在开始阶段的误差,随着迭代更新,误差会逐渐消失。
2. Momentum 动量
动量的方法旨在加速学习,特别是处理高曲率、小但一致的梯度,或是带噪声的梯度。
动量算法通过指数加权平均,累计了之前的梯度,调整了梯度估计的方向。
注: 的取值一般为 0.5,0.9,0.99 。
3. Nesterov 动量
Nesterov 和 Momentum 的区别在于,先施加当前的累计速度,然后再计算梯度。
但是,在 Mini-batch 的情况下,这并没有改进收敛率。
4. AdaGrad
具有损失最大偏导的参数相应地有一个快速下降的学习率,而具有小偏导的参数在学习率上有相对较小的下降。
这可防止下降过快,或者在平坦区域下降过慢。
但是从训练开始时累计梯度平方会导致有效学习率过早和过量的减小。
5. RMSProp
RMSProp 修改 AdaGrad 以在非凸设定下效果更好,改变梯度累计为指数加权平均。
RMSProp 已被证明是一种有效且实用的深度神经网络优化算法。
注: 的取值一般推荐为 0.999, 的取值一般推荐为 。
6. Adam
Adam 全称是 Adaptive Moments Estimation 。
Adam 是结合了 Momentum 和 RMSProp 的算法。
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~
花书+吴恩达深度学习(七)优化方法之基本算法(Momentum, Nesterov, AdaGrad, RMSProp, Adam)相关推荐
- 花书+吴恩达深度学习(三)反向传播算法 Back Propagation
目录 0. 前言 1. 从 Logistic Regression 中理解反向传播 2. 两层神经网络中单个样本的反向传播 3. 两层神经网络中多个样本的反向传播 如果这篇文章对你有一点小小的帮助,请 ...
- 花书+吴恩达深度学习(四)多分类 softmax
目录 0. 前言 1. 二分类 sigmoid 2. 多分类 softmax 3. 多分类 softmax 梯度下降推导 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书 ...
- 花书+吴恩达深度学习(二)非线性激活函数(ReLU, maxout, sigmoid, tanh)
目录 0. 前言 1. ReLU 整流线性单元 2. 绝对值整流线性单元 3. 渗漏整流线性单元 4. 参数化整流线性单元 5. maxout 单元 6. logistic sigmoid 单元 7. ...
- 花书+吴恩达深度学习(一)前馈神经网络(多层感知机 MLP)
目录 0. 前言 1. 每一个神经元的组成 2. 梯度下降改善线性参数 3. 非线性激活函数 4. 输出单元 4.1. 线性单元 4.2. sigmoid 单元 4.3. softmax 单元 5. ...
- 花书+吴恩达深度学习(十四)卷积神经网络 CNN 之经典案例(LetNet-5, AlexNet, VGG-16, ResNet, Inception Network)
目录 0. 前言 1. LeNet-5 2. AlexNet 3. VGG-16 4. ResNet 残差网络 5. Inception Network 如果这篇文章对你有一点小小的帮助,请给个关注, ...
- 花书+吴恩达深度学习(九)优化方法之二阶近似方法(牛顿法, CG, BFGS, L-BFGS)
目录 0. 前言 1. 牛顿法 2. 共轭梯度法(CG) 3. BFGS 4. L-BFGS 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(五)正则化 ...
- 花书+吴恩达深度学习(八)优化方法之 Batch normalization
目录 0. 前言 1. Batch normalization 训练 2. Batch normalization 测试 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书 ...
- 花书+吴恩达深度学习(六)优化方法之 Mini-batch(SGD, MBGD, BGD)
目录 0. 前言 1. Batch gradient descent(BGD) 2. Stochastic gradient descent(SGD) 3. Mini-batch gradient d ...
- 花书+吴恩达深度学习(五)正则化方法(防止过拟合)
目录 0. 前言 1. 参数范数惩罚 2. Dropout 随机失活 3. 提前终止 4. 数据集增强 5. 参数共享 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+ ...
最新文章
- 中国电子学会青少年编程能力等级测试图形化一级编程题:无奈的Jaime
- excel去掉一行文字中的逗号合并在一起_Python使用pandas库五行代码合并excel
- python 4.5%2_程序运行慢?你怕是写的假 Python
- python【蓝桥杯vip练习题库】ADV-233 队列操作
- 指针学习2--内存泄露
- SpringBoot项目新手——问题疑惑及解决笔记
- memento about Linux
- delphi实现延时的方法,很多人首先就想到用timer控件,这里我们不用timer控delphi直接用settimer函数实现延时的方法...
- 记录贴,计算器改良,税收与补贴,一元三次方程解法,最大公约数最小公倍数
- MAX30102 高灵敏度脉搏氧器和心率传感器说明书
- ReactNative之 Activity class {xxx/xxx.MainActivity} does not exist
- [Unity]Unity3D游戏引擎游戏开发软件相比与其他的优势
- 思考犹太家庭如何教育出这么多精英及富豪
- 19款奥迪a5支持Android,19款奥迪a5有敝篷版吗?
- 用Python画小篮子
- 美赛数据(各国统计数据网站大全)
- win32俄罗斯方块c++语言 vs2012源代码,C++实现俄罗斯方块
- Unity官方实例教程 Roll-a-Ball(一)
- ML之prophet:利用prophet算法对上海最高气温实现回归预测(时间序列的趋势/周季节性趋势/年季节性趋势)案例
- linux借解压rar文件,在linux下解压rar文件
热门文章
- The 15th UESTC Programming Contest Preliminary K - Kidd1ng Me? cdoj1565
- 《oracle每日一练》oralce数据库的导入导出
- 实验四报告 20135209潘恒 20135204郝智宇
- What's New in C# 6.0(转)
- HTTPBrowserCapabilities---在asp.net中显示浏览器属性
- seleniuim面试题1
- centos7安装python3.7.0
- Fiddler实现IOS手机抓取https报文
- CentOS7/RHEL7编译安装Python3.6(支持SSL)
- Microsoft Dynamics 365 之 味全食品 项目分享和Customer Engagement新特性分享