优化算法的目的:1. 跳出局部极值点或鞍点,寻找全局最小值;2.使训练过程更加稳定,更加容易收敛。

优化算法的改进无非两方面:1.方向--加动量,2.学习速率--加衰减

1.SGD

2.[Momentum](https://zh.d2l.ai/chapter_optimization/momentum.html)

常取

0.9. 从学习率的角度理解动量法:指数加权移动平均,也可以理解为滑动窗口。在动量法中,自变量在各个方向上的移动幅度不仅取决于当前梯度,还取决于过去的各个梯度在各个方向上是否一致。也就是说,若某个纬度的历史梯度震荡比较大,则在该维度上学习会更加慎重。

3.[Nesterov(NAG)](https://blog.csdn.net/tsyccnh/article/details/76673073)

这个想法太巧妙了,动量法可以重写为:

是与当前时刻
无关的,所以不管
方向为何,
都一定会在
的方向上走上一段距离的。那为何不先在
方向上走一步后,再算梯度呢。

蓝线为动量法,棕线为t-1时刻的动量方向,红线为

方向上走一步后梯度,绿线为两者之和。

4.Adagrad

为所有纬度设置相同的学习率是训练更加容易震荡。AdaGrad算法,它根据自变量在每个维度的梯度值的大小来调整各个维度上的学习率,从而避免统一的学习率难以适应所有维度的问题。

这里说一下

的计算 :
对应元素相乘,是一个和
相同尺寸的向量, 所以Adagrad不同维度的学习率是不一样的。

5.Adadelta

Adagrad有个明显的缺点,没有对过往的

进行衰减,导致迭代一定次数后,
必然趋近于0。

Adadelta就是为了解决 Adagrad 学习率急剧下降问题的。

他们管在

前面乘一个

1-v指数加权平均

Adadelta会对过去的

有个

v的指数倍的衰减,有了这个衰减,就可以把Adadelta算法理解为一个滑动的窗,对窗内的

进行指数加权平均。

(为什么要在

前面乘个

1-v的系数?归一化就这么重要么?)

6.Adam

Adadelta+动量

他们管

偏差修正。因为u, v一般取0.9以上,且

一般初始化为0,所以在t较小时,
只有
,所以引入偏差修正。随着t的增大,
越来越接近

adadelta算法_神经网络中常用的优化算法相关推荐

  1. 深度学习中常用的优化算法(SGD, Nesterov,Adagrad,RMSProp,Adam)总结

    深度学习中常用的优化算法(SGD, Nesterov,Adagrad,RMSProp,Adam)总结 1. 引言 在深度学习中我们定义了损失函数以后,会采取各种各样的方法来降低损失函数的数值,从而使模 ...

  2. 机器学习中常用的优化算法:

    http://blog.csdn.net/losteng/article/details/50993911 有知识点和代码的实现过程. 机器学习中常用的优化算法: 1.梯度下降法 2.牛顿法和拟牛顿法 ...

  3. 深度学习中常用的优化算法

    参考<动手学深度学习> https://zh.d2l.ai/chapter_optimization/index.html 一维梯度下降 我们先以简单的一维梯度下降为例,解释梯度下降算法可 ...

  4. 机器学习、深度学习中常用的优化算法详解——梯度下降法、牛顿法、共轭梯度法

    一.梯度下降法 1.总述: 在机器学习中,基于基本的梯度下降法发展了三种梯度下降方法,分别为随机梯度下降法,批量梯度下降法以及小批量梯度下降法. (1)批量梯度下降法(Batch Gradient D ...

  5. python距离向量路由算法_互联网中常用路由协议,路由协议基础,一分钟了解下...

    一.路由基础 Routing protocol 用于路由器动态寻找最优路径,并使路由器都拥有路由表,R/p 决定了数据包的上行路径,eg:RIP IGRP EIGRP OSPF,被动路由协议被分配到接 ...

  6. 全排列的java算法_两种常用的全排列算法(java)

    问题:给出一个字符串,输出所有可能的排列. 全排列有多种算法,此处仅介绍常用的两种:字典序法和递归法. 1.字典序法: 如何计算字符串的下一个排列了?来考虑"926520"这个字符 ...

  7. python的智能算法_scikit-opt——Python中的群体智能优化算法库

    安装 pip install scikit-opt 对于当前的开发者版本: git clone git@github.com:guofei9987/scikit-opt.git cd scikit-o ...

  8. 文献翻译__人工智能时代医学图像重建中的凸优化算法(第4、5、6章)

    文章下载–我的Gitee Convex optimization algorithms in medical image reconstruction-in the age of AI 人工智能时代医 ...

  9. 吴恩达deeplearning.ai系列课程笔记+编程作业(6)第二课 改善深层神经网络-第二周:优化算法 (Optimization algorithms)

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

最新文章

  1. 查看正在执行的事务_看懂sql_trace--分析执行计划及CBO行为
  2. 安装phpredis扩展
  3. Java NIO 学习笔记(三)----Selector
  4. 八种反应表示员工认可你
  5. 工作流引擎Activiti使用总结
  6. 实验11.2 链表 6-4 链表拼接
  7. webpack入坑指南
  8. C++11新特性之 可变参数模板
  9. 并行算法:如何利用并行处理提高算法的执行效率?
  10. (转)招行开启零售银行智能投顾时代 尝试打造金融垂直自场景
  11. 基于C++和AStar算法求解八数码问题的方案
  12. 微信数据解密-dat查看-免费dat转图片
  13. 一文了解.Net Core 3.1 Web API基础知识
  14. 亚马逊开店pdf_Amazon S3教程–最终指南(PDF下载)
  15. 人机交互-10-交互设计模型
  16. NOD32升级ID获取器For流星无语
  17. 从实际案例聊聊JDK 17 的GC优化
  18. 博弈论(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈)
  19. lisp绘制法兰_lisp语言画键槽_用LISP语言自定义AutoCAD命令
  20. excel表格计算机二级销售,计算机二级excel真题:制作产品销售情况表

热门文章

  1. Linq怎么支持Monad
  2. android 高级画布绘图
  3. 监听程序配制及数据备份
  4. 程序员必备的在线编程辅导平台之TutorialsPoint
  5. 浙江金华暂时停用“智能头箍”,专家:监测学生脑电违反伦理
  6. 2019谷歌学术指标出炉,影响因子何去何从?
  7. OpenCV提示—“CV_BGR2HSV”: 未声明的标识符—解决
  8. 贪吃蛇游戏的C++代码
  9. INVALID_HANDLE_VALUE的意思和用法
  10. 数据在java中加时间,如何在Or.jFr.DATA时间中设置RealTimeMead时期的Java数据