tensorflow 加速优化方法

1. stochastic gradient decent(CGD)

  将data分小批放入神经网络中进行计算

  W += -Learning rate * dx

缺点:选择合适的learning rate比较困难

   速度慢

   容易收敛到局部最优,并且在某些情况下可能被困在鞍点

2. momentum

  模拟物理里动量的概念,积累之前的动量来替代真正的梯度。(利用斜坡的惯性)

  m = b1 * m - Learning rate * dx

  W += m

特点:在相关方向加速SGD,抑制振荡,从而加快收敛

   依靠人工设置全局学习率,中后期分母上梯度平方的累加将会越来越大,使得训练提前结束

3. adagrad

  每一个参数的更新都有自己的学习率(不好走的鞋子)

  v += dx^2

  W += -Learning rate * dx / √v

特点:前期放大梯度,后期约束梯度,适合处理稀疏梯度

4. RMSProp

综合了momentum和adagrad的优势

v = b1 * v + (1 - b1) * dx^2

W += -Learning rate * dx / √v

特点:依赖于全局学习率

   适合处理非平稳目标 - 对于RNN效果很好

5. Adam(又快又好)

m = b1 * m + (1 - b1) * dx

v = b2 * v + (1 - b2) * dx^2

W += -Learning rate * m / √v

特点:结合了Adagrad善于处理稀疏梯度和RMSprop善于处理非平稳目标的优点

   对内存需求较小

   为不同的参数计算不同的自适应学习率

   也适用于大多非凸优化 - 适用于大数据集和高维空间

原文地址:https://www.cnblogs.com/syyy/p/8473889.html

时间: 2024-11-04 02:31:46

tensorflow 加速优化方法的相关文章

Caffe学习系列(8):solver优化方法

上文提到,到目前为止,caffe总共提供了六种优化方法: Stochastic Gradient Descent (type: "SGD"), AdaDelta (type: "AdaDelta"), Adaptive Gradient (type: "AdaGrad"), Adam (type: "Adam"), Nesterov’s Accelerated Gradient (type: "Nesterov&qu

Caffe中的优化方法

在Deep Learning中,往往loss function是非凸的,没有解析解,我们需要通过优化方法来求解.Caffe通过协调的进行整个网络的前向传播推倒以及后向梯度对参数进行更新,试图减小损失. Caffe已经封装好了三种优化方法,分别是Stochastic Gradient Descent (SGD), AdaptiveGradient (ADAGRAD), and Nesterov's Accelerated Gradient (NAG). Solver的流程: 1.     设计好需

Android性能优化方法(九)

通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的.一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构.重构的好处有很多,其中一点,就是对代码进行优化,提高软件的性能.下面我们就从几个方面来了解Android开发过程中的代码优化. 1)静态变量引起内存泄露 在代码优化的过程中,我们需要对代码中的静态变量特别留意.静态变量是类相关的变量,它的生命周期是从这个类被声明,到这个类彻底被垃圾回收器回收才会被销毁.所以,一般情况下,静态变量

PHP服务缓存加速优化实战

PHP服务缓存加速优化实战: (1)操作码介绍及缓存原理: 当客户端请求一个PHP程序的时候,服务器的PHP引擎会解析该PHP程序,并将其编译为特定的操作码(Operate Code)文件. 该文件是执行PHP代码后的一种二进制表示形式. 默认情况下,这个编译好的操作码文件由PHP引擎执行后进行丢弃. 操作码文件缓存机制就是将编译还的文件保存下来,并放到共享内存中,以便于下一次调用该PHP页面的时候重用它,避免了相同的代码重复度,节省了PHP引擎重复编译的时间. 降低了服务器负载,同时减少了服务

NN优化方法对比:梯度下降、随机梯度下降和批量梯度下降

1.前言 这几种方法呢都是在求最优解中经常出现的方法,主要是应用迭代的思想来逼近.在梯度下降算法中,都是围绕以下这个式子展开: 其中在上面的式子中hθ(x)代表,输入为x的时候的其当时θ参数下的输出值,与y相减则是一个相对误差,之后再平方乘以1/2,并且其中 注意到x可以一维变量,也可以是多维变量,实际上最常用的还是多维变量.我们知道曲面上方向导数的最大值的方向就代表了梯度的方向,因此我们在做梯度下降的时候,应该是沿着梯度的反方向进行权重的更新,可以有效的找到全局的最优解.这个θ的更新过程可以描

卷积神经网络(CNN)的参数优化方法

著名: 本文是从 Michael Nielsen的电子书Neural Network and Deep Learning的深度学习那一章的卷积神经网络的参数优化方法的一些总结和摘录,并不是我自己的结论和做实验所得到的结果.我想Michael的实验结果更有说服力一些.本书在github上有中文翻译的版本, 前言 最近卷积神经网络(CNN)很火热,它在图像分类领域的卓越表现引起了大家的广泛关注.本文总结和摘录了Michael Nielsen的那本Neural Network and Deep Lea

深度学习最全优化方法---来源于知乎

写在前面:本宝宝好想只了解sgd,monument,adagrad,adam深度学习最全优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam) ycszen 1 年前 前言 (标题不能再中二了)本文仅对一些常见的优化方法进行直观介绍和简单的比较,各种优化方法的详细内容及公式只好去认真啃论文了,在此我就不赘述了. SGD 此处的SGD指mini-batch gradient descent,关于batch gradient descent, stochas

ASP.NET MVC 提高运行速度的几种性能优化方法

主要介绍ASP.NETMVC 应用提速的六种方法,因为没有人喜欢等待,所以介绍几种常用的优化方法. 大家可能会遇到排队等待,遇到红灯要等待,开个网页要等待,等等等. 理所当然,没有人喜欢等待网页慢吞吞地加载,尤其是在移动端访问网站时.其实,Web 开发者敏感的神经决定了我们等待与否. 现在,快速响应不仅是来自用户的要求,还是决定搜索引擎的速度. 考虑到大多数网站都存在速度方面的问题,在本文中将介绍六种为 ASP.NET MVC 应用提速的方法. 希望可以帮助到大家!!! 1. 应用程序缓存 缓存

深度学习之(十一)Deep learning中的优化方法:随机梯度下降、受限的BFGS、共轭梯度法

Deep learning中的优化方法 三种常见优化算法:SGD(随机梯度下降),LBFGS(受限的BFGS),CG(共轭梯度法). 1.SGD(随机梯度下降) 随机梯度下降(Stochastic Gradient Descent, SGD)是随机和优化相结合的产物,是一种很神奇的优化方法,属于梯度下降的一种,适用于大规模问题. 要想扯清楚它,还得先谈谈梯度下降.众所周知,每个优化问题都会有一个目标函数F(w)F(w),梯度下降采用迭代的策略,从初始点w0w0开始,每次沿着目标函数在当前点的负梯