文末给出算法的具体实现,心急的话可以直接跳到最后看

写完了才发现有大神写过了,理论也更完备一些

###优势

该方法不需要手动调整学习速率

对超参数不敏感

将对每个维度的学习率单独分离出来

最小化梯度下降时的计算量

对大梯度,噪声,不同架构具有很好的健壮性

对本地或分布式环境都可很好的应用

###以下介绍一下该算法的一些背景知识

###学习率退火

在验证准确率趋于平稳的时候降低学习率

或者依据迭代了多少周期来控制学习率

然而依然需要添加额外的参数控制学习率衰减的速度

###Per-Dimension First Order Methods(将对每个维度的学习率单独分离出来?)

由于参数矢量的每个维度都可以以完全不同的方式与全局cost相关,所以可以补偿这些差异的每维度学习速率通常是很有用的。

###动量法

当梯度指向同一个方向时,加速

当梯度的符号一直在改变时(震荡),减速

ρ用于减速之前的学习率

对于长峡谷状的cost表面而言有了不错的改进(相对于SGD)

动量法可以将全局学习率依据维度区分出来

###ADAGRAD

2012年之前的一个新的方法

仅仅使用一阶信息但是有一些二阶的性质和思路在里面(??)

η:所有维度共享的学习率

分母是对之前学习率在每个维度的平方的累和(每个维度的梯度是最前所有的梯度在这个维度上的累和,所以是一直增加的)

由于这种动态速率随着梯度幅度的倒数而增长,所以较大的梯度具有较小的学习率,而小梯度具有较大的学习率。

因为神经网络中不同层之间的梯度的差距通常达到几个数量级,所以这种方法可以被考虑在内

分母中梯度的积累与退火有这类似的效果,降低了学习的速率。由于梯度在分母中的积累,学习率将逐渐下降最终至0(这个不好)

因为无视了梯度的大小,这种方法对于参数的初始条件和对应的梯度大小可能是敏感的,初始梯度大的话,之后的学习速率会下降。但是可以通过增加全局学习率来缓解这种情况。

###使用Second Order Information

上述方法仅利用梯度和函数评估来优化目标,二阶方法(如牛顿法或准牛顿法)可以使用黑塞矩阵或近似值。当然计算可能会因此变得更加昂贵。

计算黑塞矩阵(多元函数二阶导数打那个矩阵)的逆矩阵开销太大,可以通过对它做对角矩阵的倒数近似(?diagonal approximation)黑塞矩阵的逆矩阵来减少计算量(仅需再多一次额外的forward and back-propagation)

μ是改善小曲率区域的黑塞矩阵调节的小常数。

引入黑塞矩阵和类ADAGRAD项可以减轻对指定学习率的需要( Schaul发现)

###ADADELTA METHOD

对ADAGRAD以下缺点的改进:

学习率的持续退火(或shrink)

需要人工选择学习率

###改进方法1:Accumulate Over Window

在一个window w 内对梯度累和,而不是所有的梯度。

因为存放 w 之前的梯度是低效的,所以可以用对先前所有梯度均值(使用RMS即均方根值实现)的一个指数衰减作为代替的实现方法。

###改进方法2:Correct Units with Hessian Approximation

改进希望∆x和x之间的units一致(?量纲一致,不是很清楚),而SGD,Momentum,ADAGRAD中的units并不一致,所以他们的参数更新都是unitsless的

但是使用黑塞矩阵的话可以保证units一致(因为二阶)

基于[Becker&LeCun 1988]的近似方法

进而

最后得出近似黑塞矩阵的逆矩阵的表达式

其中假设x附近的曲率是平滑的,而Xt-1可以近似xt

最后的x更新表达式

由于RMS始终大于0,确保了X更新的方向始终与负梯度同向。

分子作为一个加速项,作为动量在时间窗口w上积累先前的梯度。

分母与ADAGRAD相关,因为每维度的平方梯度信息有助于平衡每个维度的进度,而是在一个窗口w上计算,以确保后期的训练。

###最终算法的具体实现

adadelta算法_(学习率自适应的梯度下降算法)ADADELTA: AN ADAPTIVE LEARNING RATE METHOD(2012)...相关推荐

  1. ADADELTA AN ADAPTIVE LEARNING RATE METHOD

    ADADELTA: AN ADAPTIVE LEARNING RATE METHOD 参考:[自适应学习率调整AdaDelta](https://www.cnblogs.com/neopenx/p/4 ...

  2. 抛物线的中点生成算法_零基础学习梯度下降算法

    零基础学习梯度下降算法 作者:Philipp Muens 翻译:老齐 与本文相关的图书推荐:<数据准备和特征工程> 梯度下降法是机器学习中最基本的优化技术之一.那么,什么是梯度? 下降的是 ...

  3. adadelta算法_神经网络中常用的优化算法

    优化算法的目的:1. 跳出局部极值点或鞍点,寻找全局最小值:2.使训练过程更加稳定,更加容易收敛. 优化算法的改进无非两方面:1.方向--加动量,2.学习速率--加衰减 1.SGD 2.[Moment ...

  4. python 物理实验_基于Python和梯度下降算法的物理实验数据一元线性拟合方法

    基于 Python 和梯度下降算法的物理实验数据一元线性拟 合方法 关毅铬 ; 程敏熙 [期刊名称] < <物理通报> > [年 ( 卷 ), 期] 2019(000)010 ...

  5. adadelta算法_对C++用户比较友好的机器学习算法库

    由于疫情影响,这几天在家学习编程,整理了基于c++语言的机器学习算法库.目前大部分机器学习库都是面向pyhton语言的,尽管很python包的底层语言是c++,但c++用户使用起来很麻烦,这里整理了一 ...

  6. 梯度下降算法总结(Gradient Descent Algorithms)

    0. 摘要 机器学习与深度学习中常用到梯度下降(Vanilla Gradient Descent)优化方法及其改进的变种(Improved Variants),不同专业书与教程中均有所涉及,但缺乏系统 ...

  7. 梯度下降算法_Adam-一种随机优化算法

    [前言]: 优化问题一直是机器学习乃至深度学习中的一个非常重要的领域.尤其是深度学习,即使在数据集和模型架构完全相同的情况下,采用不同的优化算法,也很可能导致截然不同的训练效果. adam是opena ...

  8. 梯度下降算法动图_一文看懂常用的梯度下降算法

    概述 梯度下降算法(Gradient Descent Optimization)是神经网络模型训练最常用的优化算法.对于深度学习模型,基本都是采用梯度下降算法来进行优化训练的.梯度下降算法背后的原理: ...

  9. 神经网络中的常用算法-梯度下降算法的优化

    一.概述 梯度下降法(Gradient descent )是一个一阶最优化算法,通常也称为最陡下降法 ,要使用梯度下降法找到一个函数的局部极小值 ,必须向函数上当前点对应梯度(或者是近似梯度)的反方向 ...

  10. 梯度下降算法_梯度下降算法(Gradient Descent)的原理和实现步骤

    大部分的机器学习模型里有直接或者间接地使用了梯度下降的算法.虽然不同的梯度下降算法在具体的实现细节上会稍有不同,但是主要的思想是大致一样的.梯度下降并不会涉及到太多太复杂的数学知识,只要稍微了解过微积 ...

最新文章

  1. 一行代码将Pandas加速4倍
  2. 我非要捅穿这 Neutron(二)上层资源模型篇
  3. layui遍历json数组_shell脚本:json格式化与字段抓取(下)
  4. JavaScript函数的调用
  5. vba单元格批量赋值,EXCEL——VBA对文件夹下所有表格的特定单元格赋值
  6. Linux-2.6.20的cs8900驱动分析
  7. bzoj千题计划207:bzoj1879: [Sdoi2009]Bill的挑战
  8. [渝粤教育] 西南科技大学 畜牧概论 在线考试复习资料
  9. android启动页面显示空白,android – 启动时的空白页面
  10. Visual Studio下的PHP开发工具VS.PHP初探
  11. linux man中文手册
  12. CF 1383/1384
  13. 杭州市直职称计算机考点地址,杭州中级会计考试地点在哪里
  14. MongoDB从入门到高级的实战操作
  15. 微信小程序--对接萤石云视频监控
  16. 墨魂服务器维修,墨魂琅轩路线怎么选最新游戏攻略
  17. 基于springboot+vue的水果销售系统附代码
  18. ckeditor5 全屏功能
  19. memcmp函数和memset函数的使用
  20. 思维导图ubuntu_XMind for Linux - 思维导图 | linux软件

热门文章

  1. Thinkphp 6.0商城系统,B2C商城系统全新UI
  2. UTF-8 without BOM
  3. 【CS229 Deep Learning笔记】二. 介绍:分类问题
  4. Steam挂了加速器还是打不开商店?库?黑屏?一招教你解决。
  5. Django 3实战: 仿链家二手房信息查询网(附GitHub源码) - 文末有送书活动啦!
  6. 小米手机 更换app图标失败的解决方法
  7. 一键导出微信读书的书籍和笔记
  8. oppo 手机刷机和root,还有其他必备的刷机工具,需要请进!!!
  9. 行人重识别(ReID) ——基于MGN-pytorch进行可视化展示
  10. 100行python代码实现细胞自动机(康威生命游戏)