Deep Learning 之 最优化方法

2017年05月21日 22:18:40

阅读数:5910

写在前面本文主要是对Deep Learning一书最优化方法的总结,具体详细的算法,另起博文展开。

整个优化系列文章列表:

Deep Learning 之 最优化方法

Deep Learning 最优化方法之SGD

Deep Learning 最优化方法之Momentum(动量)

Deep Learning 最优化方法之Nesterov(牛顿动量)

Deep Learning 最优化方法之AdaGrad

Deep Learning 最优化方法之RMSProp

Deep Learning 最优化方法之Adam

深度学习中,经常需要用到优化方法,来寻找使得损失函数最小的最优解。

先上一些结论:

1.选择哪种优化算法并没有达成共识

2.具有自适应学习率(以RMSProp 和AdaDelta 为代表)的算法族表现得相当鲁棒,不分伯仲,但没有哪个算法能脱颖而出。

3.对于当前流行的优化算法包括括SGD、具动量的SGD、RMSProp、具动量的RMSProp、AdaDelta 和Adam而言,选择哪一个算法似乎主要取决于使用者对算法的熟悉程度(以便调节超参数)

4.基本不用二阶近似优化算法

在这里将这些优化方法分为三类,详见对应的blog:

一.最基本的优化算法

1.1SGD

SGD实际就是min-batch的实现,为最基础的优化算法,当今大部分优化算法都是以SGD为基础实现的。详见Deep Learning 最优化方法之SGD

1.2Momentum(动量)

Momentum引入了动量v,以指数衰减的形式累计历史梯度,以此来解决Hessian矩阵病态问题
详见Deep Learning 最优化方法之Momentum(动量)

1.3Nesterov(牛顿动量)

Nesterov是对Momentum的变种。与Momentum不同的是,Nesterov先更新参数,再计算梯度
详见Deep Learning 最优化方法之Nesterov(牛顿动量)

二.自适应参数的优化算法

这类算法最大的特点就是,每个参数有不同的学习率,在整个学习过程中自动适应这些学习率。

2.1AdaGrad

学习率逐参数的除以历史梯度平方和的平方根,使得每个参数的学习率不同
详见Deep Learning 最优化方法之AdaGrad

2.2RMSProp

AdaGrad算法的改进。
历史梯度平方和—>指数衰减的移动平均,以此丢弃遥远的过去历史。
详见Deep Learning 最优化方法之RMSProp

2.3Adam

Adam算法可以看做是修正后的Momentum+RMSProp算法
详见Deep Learning 最优化方法之Adam

三.二阶近似的优化算法

二阶近似作为早期处理神经网络的方法,在此并不另起blog展开细讲。

3.1牛顿法

牛顿法是基于二阶泰勒级数展开在某点附近来近似损失函数的优化方法。主要需要求得Hessian矩阵的逆。如果参数个数是k,则计算你所需的时间是O(k^3)由于在神经网络中参数个数往往是巨大的,因此牛顿法计算法消耗时间巨大。

具体更新公式如下:

3.2共轭梯度法

共轭梯度(CG)是通过迭代下降的共轭方向(conjugate directions)以有效避免Hessian 矩阵求逆计算的方法。
  • 1
  • 2

3.3BFGS

Broyden-Fletcher-Goldfarb-Shanno(BFGS)算法具有牛顿法的一些优点,但没有牛顿法的计算负担。在这方面,BFGS和CG 很像。然而,BFGS使用了一个更直接的方法近似牛顿更新。用矩阵Mt 近似逆,迭代地低秩更新精度以更好地近似Hessian的逆。
  • 1
  • 2

3.4L-BFGS

存储受限的BFGS(L-BFGS)通过避免存储完整的Hessian 逆的近似矩阵M,使得BFGS算法的存储代价显著降低。L-BFGS算法使用和BFGS算法相同的方法计算M的近似,但起始假设是M^(t-1) 是单位矩阵,而不是一步一步都要存储近似。
  • 1
  • 2
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BVL10101111/article/details/72614711

Deep Learning 之 最优化方法的更多相关文章

  1. 中文译文:Minerva-一种可扩展的高效的深度学习训练平台(Minerva - A Scalable and Highly Efficient Training Platform for Deep Learning)

    Minerva:一个可扩展的高效的深度学习训练平台 zoerywzhou@gmail.com http://www.cnblogs.com/swje/ 作者:Zhouwan  2015-12-1 声明 ...

  2. Deep learning:五十一(CNN的反向求导及练习)

    前言: CNN作为DL中最成功的模型之一,有必要对其更进一步研究它.虽然在前面的博文Stacked CNN简单介绍中有大概介绍过CNN的使用,不过那是有个前提的:CNN中的参数必须已提前学习好.而本文 ...

  3. 【深度学习Deep Learning】资料大全

    最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books  by Yoshua Bengio, Ian Goodfellow and Aaron C ...

  4. 《Neural Network and Deep Learning》_chapter4

    <Neural Network and Deep Learning>_chapter4: A visual proof that neural nets can compute any f ...

  5. Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN

    http://m.blog.csdn.net/blog/wu010555688/24487301 本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep le ...

  6. paper 124:【转载】无监督特征学习——Unsupervised feature learning and deep learning

    来源:http://blog.csdn.net/abcjennifer/article/details/7804962 无监督学习近年来很热,先后应用于computer vision, audio c ...

  7. Deep Learning 26:读论文“Maxout Networks”——ICML 2013

    论文Maxout Networks实际上非常简单,只是发现一种新的激活函数(叫maxout)而已,跟relu有点类似,relu使用的max(x,0)是对每个通道的特征图的每一个单元执行的与0比较最大化 ...

  8. Deep Learning 23:dropout理解_之读论文“Improving neural networks by preventing co-adaptation of feature detectors”

    理论知识:Deep learning:四十一(Dropout简单理解).深度学习(二十二)Dropout浅层理解与实现.“Improving neural networks by preventing ...

  9. Deep Learning 19_深度学习UFLDL教程:Convolutional Neural Network_Exercise(斯坦福大学深度学习教程)

    理论知识:Optimization: Stochastic Gradient Descent和Convolutional Neural Network CNN卷积神经网络推导和实现.Deep lear ...

随机推荐

  1. 2016 ACM/ICPC亚洲区大连站 F - Detachment 【维护前缀积、前缀和、二分搜索优化】

    F - Detachment In a highly developed alien society, the habitats are almost infinite dimensional spa ...

  2. BZOJ 2038: [2009国家集训队]小Z的袜子(hose) 【莫队算法模版】

    任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=2038 题意概括: 有 N 只袜子(分别编号为1~N),有 M 次查询 (L, R)里面随机 ...

  3. 使用cmd命令进行运行java(cmd命令输出Hello word)

    使用cmd命令输出Hello word 条件,按照好jdk和jre的环境下,如果没有安装,请安装,简单安装教程链接:https://www.cnblogs.com/weibanggang/p/9392 ...

  4. 【洛谷P2168】[NOI2015]荷马史诗

    荷马史诗 建一个k叉哈夫曼树,用堆维护一下 // luogu-judger-enable-o2 #include<iostream> #include<cstdio> #inc ...

  5. jquery 跨域获取网页数据

    <script language="javascript" src="http://cbsahhs.blog.163.com/jquery.min.js" ...

  6. C#基础实例

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...

  7. android(eclipse)界面控件以及活动总结(二)

    用户界面以及活动总结: (复习时忘了的特别标记了下划线,补充的用了红色) 1用户界面: ~android:id=""专门用于找到指定界面的索引 如果要在后面的程序中调用该控件,则一 ...

  8. CTRL+F5 和F5 两种刷新有什么区别

  9. Oracle数据库大量library cache: mutex X及latch: shared pool问题排查一例

    业务系统数据库夯住,数据库内大量的library cache: mutex X及latch: shared pool等待,alert日志信息如下 Tue Sep :: WARNING: inbound ...

  10. 对TCP三次握手四次分手还不清楚,超简单解析

      关于TCP三次握手四次分手,之前看资料解释的都很笼统,很多地方都不是很明白,所以很难记,前几天看的一个博客豁然开朗,可惜现在找不到了.现在把之前的疑惑总结起来,方便一下大家. 先上个TCP三次握手 ...