精华内容
下载资源
问答
  • sgd算法原理
    千次阅读
    更多相关内容
  • backpropagation backpropagation解决的核心问题损失函数c与w,b求偏导,(c为cost(w,b)) 整体来说,分两步 1.z=w*a’+b 2.a=sigmoid(z) 其中,a’表示上一层的输出值,a表示当前该层的输出值 1,输入x,正向的更新一...
  • SGD(随机梯度下降)详解

    万次阅读 多人点赞 2020-05-02 09:00:28
    BGD vs SGDBGD vs SGD名词解释功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一...

    名词解释

    名词定义
    original-loss整个训练集上的loss
    minibatch-loss在一个mini batch上的loss
    BGD最原始的梯度下降算法,为了计算original-loss上的梯度,需要使用训练集全部数据
    SGD(近似)计算original-loss梯度时,只使用一个mini batch,相当于用minibatch-loss上的梯度去近似original-loss梯度
    奇点(只是为了方便说明而起的名字)local minimal和saddle point

    SGD vs BGD

    下面将通过BGD与SGD的对比,来对SGD进行深入理解。

    效率方面

    深度学习使用的训练集一般都比较大(几十万~几十亿)。而BGD算法,每走一步(更新模型参数),为了计算original-loss上的梯度,就需要遍历整个数据集,这显然是不现实的。而SGD算法,每次随机选择一个mini-batch去计算梯度,在minibatch-loss上的梯度显然是original-loss上的梯度的无偏估计,因此利用minibatch-loss上的梯度可以近似original-loss上的梯度,并且每走一步只需要遍历一个minibatch(一~几百)的数据。

    优化方面

    SGD优势

    (a)BGD容易陷入original-loss的奇点,而SGD不容易陷入;
    (b)SGD也不会陷入minibatch-loss的奇点。
    解释:
    (a)original-loss存在很多奇点,而BGD每次下降的方向就是original-loss的负梯度,因此BGD很容易陷入某个奇点,而无法达到global minimal(或者比较好的local minimal)。SGD一定程度上可以避免这个情况,这可以从2个角度来理解。
    从引入randomness的角度来看,SGD中计算的梯度是对original-loss梯度的近似,相当于在original-loss梯度的基础上加了randomness,因此即使当前走到了original-loss的奇点,SGD计算的梯度因为引入了randomness,所以也不接近0,比较容易跳出奇点。
    另一个角度,SGD计算的不是original-loss的梯度,而是minibatch-loss的梯度。显然original-loss和minibatch-loss的形状不同,奇点分布也不同,如果当前这个点在original-loss上是奇点,但这个点在minibatch-loss中并不是奇点,此时使用minibatch-loss的负梯度作为下降方向,自然就不会陷入这个点了。
    (b)主要是因为每次迭代,都会使用不同的mini batch,而不同的minibatch-loss的形状不同。就算此时陷入了当前minibatch-loss的奇点,那么下一次迭代,这个点也不一定就是下一个minibatch-loss的奇点,如果不是的话,自然就跳出来了。

    SGD劣势

    SGD走的路径比较曲折(震荡),尤其是batch比较小的情况下。
    解释:
    为了方便说明,假设loss函数是凸函数(没有奇点,local minimal就是global minimal)。即使loss函数不是凸函数也是相同的道理。 需要记住,不管使用什么优化方法,待优化的目标都是original-loss,分析问题都要从这一点出发。
    BGD每次走的方向是original-loss的负梯度方向,是original-loss在当前点上的最速下降方向。而SGD每次走的方向是minibatch-loss的负梯度方向(或者理解成original-loss的负梯度+randomness),显然这个方向和original-loss的负梯度方向不同,也就不是original-loss在当前位置的最快下降方向(如果这个mini batch的大部分数据点的target是错误的,甚至有可能是original-loss在当前位置的上升方向),所以使用SGD算法从当前点走到global minimal的路径会很曲折(震荡)。
    为了减少震荡,一个方法是增大batch size,原因是minibatch-loss的梯度是对original-loss梯度的无偏估计(bias为0),并且variance随着batch size的变大而减小。当batch size足够大(比如接近训练集),此时SGD就退化成了BGD,就会带来上面说的那些问题。因此batch size需要选择合适大小,一般是几十到几百。
    减少震荡的方法还包括动量、Rmsprop等,详情参考另一篇博客《Momentum Rmsprop Adam》

    展开全文
  • SGD+minibatch学习

    2022-01-23 18:55:15
    其过程可描述为:,引自该链接(如何理解随机梯度下降(stochastic gradient descent,SGD)? - Evan的回答 - 知乎 https://www.zhihu.com/question/264189719/answer/291167114)介绍:开始的时候我们随机站在一个...

    梯度下降:通过梯度下降的方向寻找极小值的过程。其过程可描述为:\theta_j=\theta_{j-1}-\alpha\frac{\partial J(\theta)}{\partial\theta_j},引自该链接(如何理解随机梯度下降(stochastic gradient descent,SGD)? - Evan的回答 - 知乎 https://www.zhihu.com/question/264189719/answer/291167114)介绍:开始的时候我们随机站在一个点,把他看成一座山,每一步,我们都以下降最多的路线来下山,那么,在这个过程中我们到达山底(最优点)是最快的,而上面的a,它决定了我们“向下山走”时每一步的大小,过小的话收敛太慢,过大的话可能错过最小值。

    SGD:stochastic gradient descent,随机梯度下降法,即按照数据生成分布每次迭代使用1个样本,通过计算他们梯度的平均值来更新梯度。其算法表达式:x_{t+1}=x_t-\eta g_t,gt为随机梯度,满足E(g_t)=\bigtriangledown f(x_t).

    mini-batch SGD,是对批量梯度下降以及随机梯度下降的一个折中办法。其思想是:每次迭代 使用 ** batch_size** 个样本来对参数进行更新(引自(8条消息) 批量梯度下降法(BGD)、随机梯度下降法(SGD)和小批量梯度下降法(MBGD)_Andyato的博客-CSDN博客_小批量梯度下降icon-default.png?t=M0H8https://blog.csdn.net/yato0514/article/details/82261821):

     

    展开全文
  • 深度学习剖根问底:SGD算法详解

    千次阅读 2018-06-15 07:40:02
    重点理解一下loss函数和SGD的更新方式; 理解一下Vt+1的含义;

    重点理解一下loss函数和SGD的更新方式;理解一下Vt+1的含义;

    展开全文
  • SGD,Momentum,优化算法原理及实现

    千次阅读 2020-07-17 16:32:33
    优化算法原理及实现SGDMomentum 无论是什么优化算法,最后都可以用一个简单的公式抽象: w 是参数,而△w是参数的增量,而各种优化算法的主要区别在于对△w的计算不同,本文总结了下面十个优化算法的公式,以及简单...
  • 深度学习中的优化算法SGD

    千次阅读 2022-04-03 20:47:26
    大多数深度学习算法都涉及某种形式的优化。优化指的是改变x以最小化或最大化某个函数f(x)的任务。我们通常以最小化f(x)指代大多数最优化问题。我们把要最小化或最大化的函数称为目标函数(objective function)或准则...
  • 无论是什么优化算法,最后都可以用一个简单的公式抽象: 是参数,而 是参数的增量,而各种优化算法的主要区别在于对 的计算不同,本文总结了下面十个优化算法的公式,以及简单的Python实现: SGD Momentum ...
  • 可打印版本附pdf下载链接本思想来下这篇佬的章:Juliuszh:个框架看懂优化算法之异同 SGD/AdaGrad/Adam主要是对深度学习各种优化器 (从SG
  • SGD算法 学了很久的深度学习,忽然感觉对于知识的摄入只是填鸭式学习,少了主动思考,因此准备就简单问题的理解出发对已经学习知识做系统整理。 提到优化算法那么就要涉及到优化问题,简单介绍一下什么是凸集、凸...
  • 原文章:https://zhuanlan.zhihu.com/p/152566066
  • SGD算法广泛应用于各种深度学习的优化模型算法中,这几天终于把该算法的优化原理研究明白了 首先,我们假设一个函数y = 2x-1,对应的 x = 1,2,3,4,5,6,7,8,9 y = 1,3,5,7,9,11,13,15,17 但是如果我们不知道该函数...
  • 深度学习中的随机梯度下降(SGD)简介

    万次阅读 2018-03-22 08:49:41
    随机梯度下降(Stochastic Gradient Descent, SGD)是梯度下降算法的一个扩展。 机器学习中反复出现的一个问题是好的泛化需要大的训练集,但大的训练集的计算代价也更大。机器学习算法中的代价函数通常可以分解成每个...
  • 前言 梯度下降法(Gradient Descent)优化函数的详解(0)线性回归问题 ...梯度下降法(Gradient Descent)优化函数的详解(2)随机梯度下降法(SGD Stochastic Gradient Descent) 梯度下降法(Gradient Descent)优...
  • 文章目录源码知识点1....此为适应机使用随机梯度下降的python实现,代码主要来源于Python Machine Learning 3rd(此书包含大量python实现算法的源码,宜啃读)自己把代码又弄了一遍,欢迎想看或者看过这本...
  • 无论是什么优化算法,最后都可以用一个简单的公式抽象: 是参数,而 是参数的增量,而各种优化算法的主要区别在于对 的计算不同,本文总结了下面十个优化算法的公式,以及简单的Python实现: SGD Momentum ...
  • SPGD(随机并行梯度下降)算法可以应用于多通道误差补偿,其实他的优化原理是在一个具有较大误差的并行数组A的基础上。 在每个通道上加上和减去一个更小的随机数B。 然后根据一个评判标准(例如标准差d)来选择...
  • SGD算法是从样本中随机抽出一组,训练后按梯度更新一次,然后再抽取一组,再更新一次,在样本量及其大的情况下,可能不用训练完所有的样本就可以获得一个损失值在可接受范围之内的模型了。 # -*- coding: utf...
  • 1SGD、Momention原理

    2020-03-03 14:06:12
    (1)SGD为随机梯度下降算法,每一次迭代计算数据集的小批次的梯度,然后对参数进行更新。随机梯度下降算法比较简单在这里不展开说,关于随机梯度下降算法公式的推导就是运用链式求导法则一顿求偏导,使得数据预测值...
  • 作者丨科技猛兽转自丨极市平台本文思想来自下面这篇大佬的文章:Juliuszh:一个框架看懂优化算法之异同 SGD/AdaGrad/Adamhttps://zhuanlan.zhihu.co...
  • 1 概述 LINE是2015年微软发表的一篇论文,其全称为: Large-scale Information Network Embedding。...LINE是一种基于graph产生embedding的方法,它可以适用于任何...2 算法原理 2.1 新的相似度定义 该算法同时优化了节点
  • 优化器的框架: 目标函数关于当前参数的梯度 ; 根据历史梯度计算一阶动量与二阶动量: ; ; 计算当前时刻的下降梯度: ​​​​​​​; 根据更新参数: ...SGD 特点:没有使用动量...
  • ‍作者丨知乎 科技猛兽极市平台 编辑https://zhuanlan.zhihu.com/p/391947979本文思想来自下面这篇大佬的文章:Juliuszh:一个框架看懂优化算法之...
  • XGBoost核心算法原理详解

    千次阅读 2020-04-02 15:35:23
    XGBoost算法原理详解前言boosting和bagging的区别baggingboosting提升树-基于残差的训练学习路径构造目标函数Additive Training(叠加式的训练) 前言 今天,听了贪心学院的一个公开课,讲解的是xgboost的算法原理,...
  • 在调整模型更新权重和偏差参数的方式时,你是否考虑过哪种优化算法能使模型产生更好且更快的效果?应该用梯度下降,随机梯度下降,还是Adam方法?这篇文章介绍了不同优化算法之间的主要区别,以及如何选择最佳的优化...
  • FM算法原理分析与实践

    千次阅读 2021-01-17 13:53:08
    简介FM是Steffen Rendle在2010年提出的,FM算法的核心在于特征组合,以此来减少人工参与特征组合工作。对于FM,其优势可分以下三点:FM能处理数据高度稀疏场景,SVM则不能;FM具有线性的计算复杂度,而SVM依赖于...
  • 优化算法SGD与Adam

    千次阅读 2021-12-29 10:07:41
    说来惭愧,一直在用的两个经典的优化器,几行代码就完成了参数更新,但是却一直没有深入的了解其中的原理。 improt torch ... optimizer = torch.optim.SGD(model.parameters(), lr=0.01, momentum=0.9) optimizer...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,542
精华内容 3,816
关键字:

sgd算法原理