梯度下降法(Gradient Descent)

优化思想:用当前位置的负梯度方向作为搜索方向,亦即为当前位置下降最快的方向,也称“最速下降法”。越接近目标值时,步长越小,下降越慢。

如下图所示,梯度下降不一定能找到全局最优解,可能寻找到的是局部最优解。(当损失函数是凸函数时,梯度下降得到的解一定是全局最优解,因为凸函数的极小值即为最小值)

梯度下降法

批量梯度下降法(Batch Gradient Descent,BGD):在更新参数时,BGD根据batch中的所有样本对参数进行更新。

θ为参数,x为每个样本的n个特征值
为了简化表示,增加特征x_0=1
损失函数J,m为一个batch中的样本数
参数更新,α为步长
上式展开即为,其中α和1/m均为常数,可用一个常数表示

随机梯度下降法(Stochastic Gradient Descent,SGD):和BGD的原理类似,区别在于每次随机选取一个样本j求梯度。

对于训练速度来说,SGD每次仅仅采用一个样本来迭代,训练速度很快,而BGD在样本量很大的时候,训练速度不能让人满意。

对于准确度来说,SGD仅仅用一个样本决定梯度方向,导致解很有可能不是最优。

对于收敛速度来说,由于SGD一次迭代一个样本,导致迭代方向变化很大,不能很快的收敛到局部最优解。

SGD

小批量梯度下降法(Mini-batch Gradient Desent,也称Mini-batch SGD):BGD和SGD二者的折中法,对于m个样本,选取x个子样本进行迭代,且1<x<m。

(1)选择n个训练样本(n<m,m为总训练集样本数)(即batchsize = n,样本总数为m,随机的思想在于每个epoch之前,随机打乱样本顺序,顺序选取n个样本作为batch)

(2)在这n个样本中进行n次迭代,每次使用1个样本

(3)对n次迭代得出的n个gradient进行加权平均再并求和,作为这一次mini-batch下降梯度

(4)不断在训练集中重复以上步骤,直到收敛。

梯度下降法(BGD & SGD & Mini-batch SGD)的更多相关文章

  1. 1. 批量梯度下降法BGD 2. 随机梯度下降法SGD 3. 小批量梯度下降法MBGD

    排版也是醉了见原文:http://www.cnblogs.com/maybe2030/p/5089753.html 在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练.其实,常用的梯度 ...

  2. 梯度下降法(BGD、SGD)、牛顿法、拟牛顿法(DFP、BFGS)、共轭梯度法

    一.梯度下降法 梯度:如果函数是一维的变量,则梯度就是导数的方向:      如果是大于一维的,梯度就是在这个点的法向量,并指向数值更高的等值线,这就是为什么求最小值的时候要用负梯度 梯度下降法(Gr ...

  3. 随机梯度下降法(Stochastic gradient descent, SGD)

    BGD(Batch gradient descent)批量梯度下降法:每次迭代使用所有的样本(样本量小)    Mold 一直在更新 SGD(Stochastic gradientdescent)随机 ...

  4. [Machine Learning] 梯度下降法的三种形式BGD、SGD以及MBGD

    在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练.其实,常用的梯度下降法还具体包含有三种不同的形式,它们也各自有着不同的优缺点. 下面我们以线性回归算法来对三种梯度下降法进行比较. ...

  5. 梯度下降法的三种形式BGD、SGD以及MBGD

    https://www.cnblogs.com/maybe2030/p/5089753.html 阅读目录 1. 批量梯度下降法BGD 2. 随机梯度下降法SGD 3. 小批量梯度下降法MBGD 4. ...

  6. 梯度下降法的三种形式-BGD、SGD、MBGD

    在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练.其实,常用的梯度下降法还具体包含有三种不同的形式,它们也各自有着不同的优缺点. 下面我们以线性回归算法来对三种梯度下降法进行比较. ...

  7. 线性回归(最小二乘法、批量梯度下降法、随机梯度下降法、局部加权线性回归) C++

    We turn next to the task of finding a weight vector w which minimizes the chosen function E(w). Beca ...

  8. 机器学习中梯度下降法原理及用其解决线性回归问题的C语言实现

    本文讲梯度下降(Gradient Descent)前先看看利用梯度下降法进行监督学习(例如分类.回归等)的一般步骤: 1, 定义损失函数(Loss Function) 2, 信息流forward pr ...

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

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

随机推荐

  1. layui切换

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. Django组件之forms

    forms:校验字段功能 针对一个实例:注册用户讲解. 模型:models.py class UserInfo(models.Model): name=models.CharField(max_len ...

  3. 基于Java+Selenium的WebUI自动化测试框架(九)-----基础页面类(BasePage)

    上篇我们写了java读取xml文件的类,实现了可以从xml文件读取元素的方式.那么,接下来我们需要考虑一个问题.我们拿了这些元素之后怎么去操作呢? 先来看看我们手工测试的时候是怎么进行的. 双击浏览器 ...

  4. Springboot与ActiveMQ、Solr、Redis中分布式事物的初步探索

    Springboot与ActiveMQ.Solr.Redis中分布式事物的初步探索 解决的场景:事物中的异步问题,当要求数据库与solr服务器的最终一致时. 程序条件: 利用消息队列,当数据库添加成功 ...

  5. python开发全自动网站链接主动提交百度工具

    自己网站因数据比较多,趁晚上没事就写了一个通过python爬取url自动提交给百度,实现网站全站提交的思路,代码实现很简单,因为编写时间仓储,难免有些bug,可以放在服务器上配置下定时爬取提交. im ...

  6. 22 Jquery 事件

    一.概述: 当用户与浏览器进行交互时这些方法被用于注册行为生效, 并进一步处理这些注册行为. 二.绑定事件处理器 .bind() ..unbind():为一个元素绑定一个事件处理程序.3.0版本已经弃 ...

  7. idea远程debug调试阿里云ECS

    1.首先远程服务器的代码跟本地项目代码应该完全一致,否则会出现debug混乱现象,亲测. 2.config如图: ①命名可以省略②复制这个地址③输入远程ip和自定义且未被占用的端口号xxxx 3.开放 ...

  8. 29、[源码]-AOP原理-AnnotationAwareAspectJAutoProxyCreatovi

    29.[源码]-AOP原理-AnnotationAwareAspectJAutoProxyCreatovi

  9. linux系统常用软件

    输入法---搜狗输入法 音乐播放器---网易云音乐 邮箱---

  10. MySQL数据库卸载有残留, windows10 sc delete 拒绝访问 失败5

    sc delete 拒绝访问,原因是当前用户的权限不足,需要做的是在注册表 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\P ...