深度学习中多层全连接网络的梯度下降法及其变式

  • 1 梯度下降法
  • 2 梯度下降的变式
    • 1.SGD
    • 2.Momentum
    • 3.Adagrad
    • 4.RMSprop
    • 5.Adam
    • 6.小结

1 梯度下降法

  • 梯度下降法的更新公式如下。
    θi=θi−1−η∇L(θi−1)\theta^i=\theta^{i-1}-\eta \nabla L(\theta^{i-1})θi=θi−1−η∇L(θi−1)

  • 现在通过实际理论证明这样更新参数能够达到最优的效果。

  • 希望求解下面这个方程。

θ∗=argθminL(θ)\theta^*=arg_\theta min L(\theta)θ∗=argθ​minL(θ)

  • 也就是说,希望更新参数之后有下面的结果。

L(θ0)>L(θ1)>L(θ2)...L(\theta_0)>L(\theta_1)>L(\theta_2)...L(θ0​)>L(θ1​)>L(θ2​)...

  • 泰勒级数(Taylor Series):对于任何一个无限可微函数h(x),在一个点x=x0附近,有以下泰勒级数:
  • 当x足够接近x0,有下面的近似:
  • 对于多元泰勒级数,有以下公式:
  • 同样当x和y足够接近x0和y0的时候,有以下近似:

2 梯度下降的变式

1.SGD

  • 随机梯度下降法是梯度下降法的一个小变形,就是每次使用一批(batch)数据进行梯度的计算,而不是计算全部数据的梯度,因为深度学习的数据量都特别大,所以每次都计算所有数据的梯度是不现实的,这样会导致运算时间会特别长。
  • 同时每次都计算全部的梯度还会失去一些随机性.容易陷入局部误差,所以使用随机梯度下降法,可能每次都不是朝着真正最小的方向,但是这样反而容易跳出局部极小点.

2.Momentum

  • 第二种优化方法就是在随机梯度下降的同时,增加动量(Momentum)。这来自于物理中的概念,可以想象损失函数是一个山谷,一个球从山谷滑下来,在一个平坦的地势,球的滑动速度就会慢下来,可能会陷入一些鞍点或者局部极小值点。
  • 这个时候给他增加动量,就可以让他从高处滑落时的势能转换为平地的动能,相当于惯性增加了小球在平地滑动的速度,从而帮其跳出鞍点或者局部极小点。
  • 动量的计算基于前面的梯度,也就是说参数更新不仅仅基于前面的梯度,也基于之前的梯度。
  • 对于动量,还有一个变形即Nesterov。在更新参数的时候需要计算梯度,传统的动量方法是计算当前位置的梯度,但是Nesterov的方法是计算经过动量更新之后的位置的梯度。

3.Adagrad

  • 这是一种自适应学习率(adaptive)的方法,它的公式是:
  • 学习率在不断变小,且受每次计算出来的梯度影响,对于梯度比较大的参数,它的学习率就会变得相对更小,里面的根号特别重要,没有这个根号算法表现非常差。
  • 自适应学习率的缺点就是在某些情况下,一直递减的学习率并不好,这样会造成学习过早停止。

4.RMSprop

  • 这是一个非常有效的自适应学习率的改进方法,公式如下。

  • RMSprop不再会将前面所有的梯度平方求和,而是通过一个衰减率将其变小,使用了一种滑动平均的方式,越靠前面的梯度对自适应的学习率影响越小,这样就能更加有效避免Adagrad学习率一直递减太多的问题,能够更快的收敛。

5.Adam

  • 这是一种综合型的学习方法,可以看成是RMSprop加动量(Momentum)的学习方法,达到比RMSprop更好的效果。

6.小结

  • 以上介绍了多种基于梯度的更新方法,实际中可以使用Adam作为默认的优化算法,往往能够达到比较好的效果,同时SGD+Momentum的方法也值得尝试。

深度学习中多层全连接网络的梯度下降法及其变式相关推荐

  1. 深度学习初级课程 3.随机梯度下降法

    深度学习初级课程 1.单一神经元 2.深度神经网络 3.随机梯度下降法 4.过拟合和欠拟合 5.剪枝.批量标准化 6.二分类问题 应用.用TPU探测希格斯玻色子 正文 介绍 在前两节课中,我们学习了如 ...

  2. nfa确定化 dfa最小化_深度学习中的优化:梯度下降,确定全局最优值或与之接近的局部最优值...

    深度学习中的优化是一项极度复杂的任务,本文是一份基础指南,旨在从数学的角度深入解读优化器. 一般而言,神经网络的整体性能取决于几个因素.通常最受关注的是网络架构,但这只是众多重要元素之一.还有一个常常 ...

  3. 深度学习中的激活函数与梯度消失

    转载请注明出处:http://www.cnblogs.com/willnote/p/6912798.html 前言 深度学习的基本原理是基于人工神经网络,信号从一个神经元进入,经过非线性的激活函数,传 ...

  4. ubuntu之路——day8.1 深度学习优化算法之mini-batch梯度下降法

    所谓Mini-batch梯度下降法就是划分训练集和测试集为等分的数个子集,比如原来有500W个样本,将其划分为5000个baby batch,每个子集中有1000个样本,然后每次对一个mini-bat ...

  5. 深度学习入门之SGD随机梯度下降法

    SGD SGD为随机梯度下降法.用数学式可以将 SGD 写成如下的式(6.1). 这里把需要更新的权重参数记为W,把损失函数关于W的梯度记为 ∂L/∂W .ηηη 表示学习率,实际上会取 0.01 或 ...

  6. 深度学习中多层全连接层的作用

    全连接层参数特多(可占整个网络参数80%左右) 那么全连接层对模型影响参数就是三个: 1,全接解层的总层数(长度) 2,单个全连接层的神经元数(宽度) 3,激活函数 首先我们要明白激活函数的作用是: ...

  7. cnn 反向传播推导_深度学习中的参数梯度推导(三)下篇

    前言 在深度学习中的参数梯度推导(三)中篇里,我们总结了CNN的BP推导第一步:BP通过池化层时梯度的计算公式.本篇(下篇)则继续推导CNN相关的其他梯度计算公式. 注意:本文默认读者已具备深度学习上 ...

  8. 深度学习中梯度消失和梯度爆炸的根本原因及其缓解方法

    深度学习中梯度消失和梯度爆炸的根本原因及其缓解方法 一.梯度消失和爆炸的根本原因 1. 深层网络角度 2. 激活函数角度 二.梯度消失.爆炸的解决方案 1. 梯度剪切.正则 2. 采用其他的激活函数 ...

  9. 深度学习中的梯度下降优化算法综述

    1 简介 梯度下降算法是最常用的神经网络优化算法.常见的深度学习库也都包含了多种算法进行梯度下降的优化.但是,一般情况下,大家都是把梯度下降系列算法当作是一个用于进行优化的黑盒子,不了解它们的优势和劣 ...

最新文章

  1. 帮朋友招一个IM开发人员
  2. 分布式计算的模式语言读后感
  3. 3 float py 位小数 裁剪_对一个 float 精度问题的分析
  4. All cached global options setting for WordPress
  5. 苹果手机透明桌面_原来苹果手机辨别真假这么简单!查看桌面1个图标,就能轻松分辨...
  6. 自学成才翁_仅因为您是自学成才,并不意味着您必须独自学习。
  7. QTP和WinRunner区别
  8. oracle每季度补丁,Oracle 2020 年第四季度补丁发布
  9. 一个黑色全屏的计时器_我入手了一个1000多的智能手环,值吗?|Fitbit Charge 4测评...
  10. 实例3 如何使用菜单控件
  11. 国外卫星地图mapbox的基本操作
  12. 什么是前端以及前端的重要性
  13. Filezilla Server使用教程
  14. Linksys E 刷Tomato shibby
  15. MariaDB安装配置
  16. html+css+js制作点名器
  17. 我的世界服务器兑换系统怎么做,Minecraft我的世界村民交易方法及兑换表格
  18. 【小学信息技术教资面试】《蜻蜓立小荷》教案
  19. 【转载】采样频率、采样点数、频率分辨率
  20. HTML外边框塌陷什么意思,html-margin塌陷 :

热门文章

  1. 终于也为自己开了技术博客
  2. Tomcat 运行项目出现 server tomcat v8.0 server at localhost failed to start处理方式
  3. iOS之开发中一些相关的路径以及获取路径的方法
  4. 怪自己,好好的服务器,装啥播放器。。。
  5. CakePHP之Model
  6. Linux内核--网络协议栈深入分析(二)--sk_buff的操作函数
  7. 生产者消费者--TestPC.java
  8. Codeforce C. Buns
  9. php基本操作-echo
  10. 腐烂国度2怎么学计算机,腐烂国度2按键操作说明 腐烂国度2怎么操作