V(t) = y*V(t-1) + learning_rate*G(x)
x(t) = x(t-1) - V(t)

参考:https://arxiv.org/pdf/1609.04747.pdf

DL训练面临的典型困难

  1. 普通的小批梯度下降法并不能保证很好的收敛性,但它提出了一些需要解决的挑战:选择合适的学习率可能是困难的。
  2. 学习速率过小会导致收敛速度过慢,而学习速率过大会阻碍收敛,导致损失函数在最小值附近波动甚至发散。
  3. 一种办法,可以在训练过程中调整学习率,例如退火,即根据预先定义的计划表减少学习率,或当各时期之间目标的变化低于阈值时。然而,这些进度表和阈值必须提前定义,因此不能适应数据集的特点,此外,相同的学习率适用于所有参数更新。如果我们的数据是稀疏的,并且我们的特征具有非常不同的频率,我们可能不希望将它们全部更新到相同的程度,而是对很少发生的特征就行更大的更新。
  4. 最小化神经网络中常见的高度非凸误差函数的另一个关键挑战是避免陷入大量次优局部极小值。Dauphin等人的[5]认为,这种困难实际上不是来自于局部极小值,而是来自鞍点,即一维向上、一维向下倾斜的点。这些鞍点通常被相同误差的平台所包围,这使得SGD很难逃脱,因为梯度在所有维度上都接近于零。

Mini-batch gradient descent

  这是ML训练基本原理。一般不用直接梯度下降法就行训练

tf.train.GradientDescentOptimizer

Momentum(动量法)

更新公式如下,其中η为学习率(一般为0.9),用法:

tf.train.MomentumOptimizer

        

Nesterov accelerated gradient(NAG)

更新公式如下,用法:

Adaptive Moment Estimation (Adam)

tf.train.AdamOptimizer

主要DL Optimizer原理与Tensorflow相关API的更多相关文章

  1. TensorFlow - 相关 API

    来自:https://cloud.tencent.com/developer/labs/lab/10324 TensorFlow - 相关 API TensorFlow 相关函数理解 任务时间:时间未 ...

  2. TensorFlow — 相关 API

    TensorFlow — 相关 API TensorFlow 相关函数理解 任务时间:时间未知 tf.truncated_normal truncated_normal( shape, mean=0. ...

  3. tensorflow相关API的学习

    学习目录 1.tensorflow相关函数理解 (1)tf.nn.conv2d (2)tf.nn.relu (3)tf.nn.max_pool (4)tf.nn.dropout (5)tf.nn.si ...

  4. [原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  5. java 11 移除的一些其他内容,更简化的编译运行程序,Unicode 10,移除了不太使用的JavaEE模块和CORBA技术,废除Nashorn javascript引擎,不建议使用Pack200 相关api

    移除的一些其他内容 移除项 移除了com.sun.awt.AWTUtilities 移除了sun.misc.Unsafe.defineClass, 使用java.lang.invoke.MethodH ...

  6. Batch Normalization原理及其TensorFlow实现——为了减少深度神经网络中的internal covariate shift,论文中提出了Batch Normalization算法,首先是对”每一层“的输入做一个Batch Normalization 变换

    批标准化(Bactch Normalization,BN)是为了克服神经网络加深导致难以训练而诞生的,随着神经网络深度加深,训练起来就会越来越困难,收敛速度回很慢,常常会导致梯度弥散问题(Vanish ...

  7. 开源框架---通过Bazel编译使用tensorflow c++ API 记录

    开源框架---通过Bazel编译使用tensorflow c++ API 记录 tensorflow python API,在python中借用pip安装tensorflow,真的很方便,几句指令就完 ...

  8. TensorFlow Keras API用法

    TensorFlow Keras API用法 Keras 是与 TensorFlow 一起使用的更高级别的作为后端的 API.添加层就像添加一行代码一样简单.在模型架构之后,使用一行代码,可以编译和拟 ...

  9. OpenGL FrameBufferCopy相关Api比较(glCopyPixels,glReadPixels,glCopyTexImage2D,glFramebufferTexture2D)

    OpenGL FrameBufferCopy相关Api比较 glCopyPixels,glReadPixels,glCopyTexImage2D,glFramebufferTexture2D 标题所述 ...

随机推荐

  1. SSM整合文件框架

    1.项目架构如图 web3.0项目,tomcat9.0,自动生成web.xml文件 按照mybatis配置,先自动生成dao层,更改相应信息 我mybatis如何配置:   https://www.c ...

  2. 第一篇 -- 安装和配置PyQt5

    我的电脑环境是:Win10 + Python3.6.4 + JetBrains PyCharm 2017.3.2 x64 之前用tkinter写界面,现在学习如何用PyQt5写界面. 安装PyQt5: ...

  3. Java基础——ArrayList方法全解(字典版)

    引言 在使用集合 ArrayList 的时候,经常使用add.remove等,其他的没用过,甚至没听说过的还有很多.现在在这个教程中,简单的了解一下,不要求全都记下.相当于在你脑袋里建一个索引,就是有 ...

  4. 冒泡排序(bubble_sort)——Python实现

      # 冒泡排序 # 作用:对给出的n个顺序不定的数进行排序 # 输入:任意数组A # 输出:按顺序排列的数组A   # 冒泡排序过程 # 第一趟:以第一个数为基准,从最后一位数开始,依次与它比较, ...

  5. tomcat与springmvc 结合 之---第16篇 servlet如何解析成员变量和DispatcherServlet如何解析

    writedby 张艳涛,用了两个星期将深入刨析tomcat看完了,那么接下来该看什么呢?真是不知道,知识这东西上一个月看的jvm,锁.多线程并发 又都忘了.... tomcat学完,我打算看spri ...

  6. SQL Server截取字符串(经纬度)

    DECLARE @var VARCHAR(50) SET @var ='116.404556|39.915156' 方式一: SELECT CASE WHEN ISNULL(@var,'') < ...

  7. 双非本科字节跳动Android面试经验和心得体会分享(已拿offer)

    新人报道,没有什么可分享的,就记录一些自己求职的体会和心得. 我是在校招补录的时候参加了今日头条的招聘,岗位是Android开发,最后成功拿到了入场券.但是这也丝毫不值得骄傲,大家都知道:技术日新月异 ...

  8. Kong网关安装之Docker版(2)

    1.安装kong管理工具:konga或者kong-dashboard,这里选择konga 拉取konga镜像: sudo docker pull pantsel/konga:0.14.4 初始化kon ...

  9. IllegalArgumentException occurred while calling setter for property

    参考https://blog.csdn.net/qq_41192690/article/details/80659427 主码 是 integer类型的 就不要在写成这个样子了 把type=" ...

  10. shell 获取当前路径 和 2>&1 &的作用

    #!/bin/bash current_path=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd) nohup $curren ...