在深度学习领域, 该优化算法是使用最优化的算法, 利用它, 通过不断的估计objective function的梯度, 更新模型参数,不断迭代, 直至收敛或者达到我们early stoping 的条件, 也就是说模型相对于validation set上performance开始下降。

SGD 又称 online 的梯度下降, 每次估计梯度的时候, 只选用一个训练样本。

之所以称为stochastic, 是因为我们训练之前Randomly shuffle examples in the training set. 这相当于我们随机的选取一个exanple 进行online 的trainging。 但是这也是有区别的, 因为每次训练的时候都会逐次的选取一个样本,注意随机shuffle 之后, 我们取样本的次序就固定了。

我们在训练的时候, 扫完一次训练数据集中所有的example的被称为一个epoch。

参数更新公式如下:

其中B = 1 的时候, 就是一般的online gradient descent.

B = the training set size , 这称为standard(also called batch) gradient descent。 注意此时就不能称为stochastic gradient descent 了, 因为毫无随机可言, 这是确定的梯度下降

B= some valur between 1(exclusive) and the training set size (exclusive), 这就称为minibatch gradient descent, 当时也属于随机梯度下降了。

B 和 learning rate 都是hyperparameter, 所谓的超参数, 就是这些参数需要在validation set 到达最佳的时候来确定大小的。

SGD的算法的伪代码如下:(下面我们即w 为模型参数, Q为代价函数)

SGD(随机梯度下降)相关推荐

  1. GD(梯度下降)和SGD(随机梯度下降)

    GD:gradient descent SGD:Stochastic Gradient Descent 相同点 在GD和SGD中,都会在每次迭代中更新模型的参数,使得代价函数变小. 不同点 在GD中, ...

  2. 神经网络优化算法:随机梯度下降

    什么是优化算法? 优化算法的功能,是通过改善训练方式,来最小化(或最大化)损失函数E(x). 损失函数E(x): 模型内部有些参数,是用来计算测试集中目标值Y的真实值和预测值的偏差程度的,基于这些参数 ...

  3. Stochastic Gradient Descent ( 随机梯度下降 )

    Stochastic Gradient Descent (SGD) ( 随机梯度下降( SGD ) ) 是一种简单但非常有效的方法,用于在诸如(线性)支持向量机和 逻辑回归 之类的凸损失函数下的线性分 ...

  4. 批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解

    批量梯度下降(BGD).随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解 </h1><div class="clear"></div> ...

  5. 深度学习中的随机梯度下降(SGD)简介

    随机梯度下降(Stochastic Gradient Descent, SGD)是梯度下降算法的一个扩展. 机器学习中反复出现的一个问题是好的泛化需要大的训练集,但大的训练集的计算代价也更大.机器学习 ...

  6. 梯度下降(BGD)、随机梯度下降(SGD)、Mini-batch Gradient Descent、带Mini-batch的SGD

    原文:http://blog.csdn.net/llx1990rl/article/details/44001921 梯度下降(BGD).随机梯度下降(SGD).Mini-batch Gradient ...

  7. 深度学习必备:随机梯度下降(SGD)优化算法及可视化

    补充在前:实际上在我使用LSTM为流量基线建模时候,发现有效的激活函数是elu.relu.linear.prelu.leaky_relu.softplus,对应的梯度算法是adam.mom.rmspr ...

  8. 【转载】深度学习数学基础(二)~随机梯度下降(Stochastic Gradient Descent, SGD)

    Source: 作者:Evan 链接:https://www.zhihu.com/question/264189719/answer/291167114 来源:知乎 著作权归作者所有.商业转载请联系作 ...

  9. Python统计分析--- 5.统计法与随机梯度下降(SGD)

    #导入包 import numpy as np import pandas as pd import matplotlib as plt import statsmodels.formula.api ...

最新文章

  1. CF359D:Pair of Numbers(数论)
  2. uboot环境下mmc操作_【记录】将Uboot 2011.06中mmc驱动移植到uboot 1.1.6的过程
  3. java 彩铃开发,motorola铃声算法,是java的!_移动短信技术
  4. mysql eager mode_MySQL Connector Net 6.6.5 Entity Framework 显式预加载 Eager Load Bug
  5. MFC(六)(对话框)
  6. Codeforces Round #734 (Div. 3) 题解
  7. asp向不同的用户发送信息_【asp.net core 系列】 1 带你了解一下asp.net core
  8. Android之GridLayoutManager.setSpanSizeLookup问题
  9. lecture3-线性神经元和算法
  10. matlab邻域平均,数字图像处理邻域平均法滤波实验报告matlab实现
  11. java api 第一个类是_java_8_第一个API
  12. ROS专题----导航功能包navigation基础汇总
  13. 80后,规划好你的职业道路!
  14. 求四边形最大内接矩形,一种不规则多边形的最大内接矩形的快速近似求解方法与流程...
  15. IP地址、子网掩码、网络地址之间相关的计算
  16. 网络编程的TCP和UDP实现(Python)
  17. IDEA Java 死锁 解决死锁状态的三种方法
  18. nyoj1238 最少换乘 最短路
  19. 字符串解压缩类库(zip、GZIP、QuickLz、snappy、lzf、jzlib)介绍
  20. Ubuntu18.04安装后未发现Wi-Fi适配器解决办法

热门文章

  1. 常见的hash函数算法
  2. 源码阅读工具-understand
  3. Android开发工具类集锦
  4. Unity 计算屏幕视口UV坐标的几种方法
  5. 从rman 备份中恢复表
  6. 海尔对话 Unity:作为数字转型的高阶形态,数字孪生发展前景不可逆
  7. JavaScript系列---for循环(打印星星)
  8. 灰色页面,HTML灰色页面
  9. java中view是什么_深入理解Android中View
  10. html tr隐藏 边框存在,CSS 设置tr的边框