当前位置: 首页 > 编程日记 > 正文

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

随机梯度下降(Stochastic Gradient Descent, SGD)是梯度下降算法的一个扩展。

机器学习中反复出现的一个问题是好的泛化需要大的训练集,但大的训练集的计算代价也更大。机器学习算法中的代价函数通常可以分解成每个样本的代价函数的总和。随着训练集规模增长为数十亿的样本,计算一步梯度也会消耗相当成的时间。

随机梯度下降的核心是:梯度是期望。期望可使用小规模的样本近似估计。具体而言,在算法的每一步,我们从训练集中均匀抽出一小批量(minibatch)样本B={x(1), …, x(m’)}。小批量的数目m’通常是一个相对较小的数,从一到几百。重要的是,当训练集大小m增长时,m’通常是固定的。我们可能在拟合几十亿的样本时,每次更新计算只用到几百个样本。

梯度下降往往被认为很慢或不可靠。优化算法不一定能保证在合理的时间内达到一个局部最小值,但它通常能及时地找到代价函数一个很小的值,并且是有用的。

有时提到SGD的时候,其实指的是Mini-Batch梯度下降。

在伪代码中,随机梯度下降可以表示如下:


        批量梯度下降法(Batch Gradient Descent, BGD):是梯度下降法的最原始形式,每迭代一步或更新每一参数时,都要用到训练集中的所有样本数据,当样本数目很多时,训练过程会很慢。

随机梯度下降法(Stochastic Gradient Descent, SGD):由于批量梯度下降法在更新每一个参数时,都需要所有的训练样本,所以训练过程会随着样本数量的加大而变得异常的缓慢。随机梯度下降法正是为了解决批量梯度下降法这一弊端而提出的。随机梯度下降是通过每个样本来迭代更新一次。SGD伴随的一个问题是噪音较BGD要多,使得SGD并不是每次迭代都向着最优化方向进行。

        小批量梯度下降法(Mini-BatchGradient Descent, MBGD):在每次更新参数时使用m’个样本, m’可能远小于m

以上内容主要摘自:《深度学习中文版》 和  维基百科  

GitHub: https://github.com/fengbingchun/NN_Test 

相关文章:

推荐系统中的前沿技术研究与落地:深度学习、AutoML与强化学习 | AI ProCon 2019...

整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)个性化推荐算法滥觞于互联网的急速发展,随着国内外互联网公司,如 Netflix 在电影领域,亚马逊、淘宝、京东等在电商领域,今日头条在内容领域的采用和推动&…

运维日志管理系统

因公司数据安全和分析的需要,故调研了一下 GlusterFS lagstash elasticsearch kibana 3 redis 整合在一起的日志管理应用:安装,配置过程,使用情况等续一,glusterfs分布式文件系统部署:说明&#xf…

NLP学习思维导图,非常的全面和清晰

作者 | Tae Hwan Jung & Kyung Hee编译 | ronghuaiyang【导读】Github上有人整理了NLP的学习路线图(思维导图),非常的全面和清晰,分享给大家。先奉上GitHub地址:https://github.com/graykode/nlp-roadmapnlp-roadm…

Go在windows10 64位上安装过程

1. 从 https://golang.org/dl/ 下载最新的发布版本go1.10即go1.10.windows-amd64.msi; 2. 双击go1.10.windows-amd64.msi ,使用默认选项,默认会安装到C:\Go目录下; 3. 将C:\Go\bin目录添加到系统环境变量中(默认已自动添加),此目录下有go.exe…

Windows SharePoint Services 3.0 应用程序模板

微软发布的一些WSS模板,看了一下,跟以前看到的模板好像不同模板分两类,一类是站点管理模板,一类是服务器管理模板站点管理模板:董事会、业务绩效报告、政府机构案例管理、课堂管理、临床试验启动和管理、竞争性分析站点…

HAProxy+Keepalived高可用负载均衡配置

一、系统环境:系统版本:CentOS5.5 x86_64master_ip:172.20.27.40backup_ip:172.20.27.50 vip:172.20.27.200web_1: 172.20.27.90web_2:172.20.27.100二、haproxy安装:1.首先172.20.27.40安装上安装:1.1安装 tar zxvf haproxy-1.3.…

Go在Ubuntu 14.04 64位上的安装过程

1. 从 https://golang.org/dl/ 或 https://studygolang.com/dl 下载最新的发布版本go1.10即go1.10.linux-amd64.tar.gz; 2. 将下载的tar包解压缩到/usr/local目录下,执行以下命令,结果如下: $ sudo tar -C /usr/local -xzf go1.…

毕业就拿阿里offer,你和他比差在哪?

我在大学的时候,真的遇到一个神人,叫他小马吧。超前学习。1024,是程序员的节日,恰逢CSDN的20周年,我们准备为你做件大事!我们与AI博士唐宇迪、畅销书作家、北大硕士阿甘等4位老师,共同为大家带来…

04号团队-团队任务5:项目总结会

1.团队信息 团队序号:04 开发项目:北软毕设管理系统 整理人:丛云聪 学号:2017035107185 在团队中的职务:项目经理兼产品经理 2.代码仓库地址 主仓库:https://gitee.com/The_Old_Cousin/StuInfoManage…

微软职位内部推荐-Sr SDE for Win Apps Ecosystem

微软近期Open的职位:Job posting title: Senior Software Design EngineerLocation: China, BeijingLevel: 63Division: Operations System Group EngineeringGroup OverviewOSG is delivering flagship products in Microsoft. China is a second largest economy in the worl…

C# Winform 启动和停止进程

启动和停止进程 一、启动进程 方法1: (1) 创建一个Process组件的实例,例如: Process myProcess new Process(); (2) 设置其对应的StartInfo属性,指定要运行的应用程序名…

在Windows/Ubuntu上使用Visual Studio Code作为Go语言编辑器操作步骤

下面以在Windows10上操作为例,在Ubuntu上操作步骤与windows一致: 1. 从 https://code.visualstudio.com/ 下载windows上的最新发布版本1.21.1,即VSCodeSetup-x64-1.21.1.exe; 2. 以管理员身份运行VSCodeSetup-x64-1.21.1.exe&…

实战:基于tensorflow 的中文语音识别模型 | CSDN博文精选

作者 | Pelhans来源 | CSDN博客目前网上关于tensorflow 的中文语音识别实现较少,而且结构功能较为简单。而百度在PaddlePaddle上的 Deepspeech2 实现功能却很强大,因此就做了一次大自然的搬运工把框架转为tensorflow….简介百度开源的基于PaddlePaddle的…

js获取Html元素的实际宽度高度

第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}。这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度。第二种情况就是宽和高是写在行内中,比如style"width:120px;",这中…

新框架ES-MAML:基于进化策略、简易的元学习方法

作者 | Xingyou Song、Wenbo Gao、Yuxiang Yang、Krzysztof Choromanski、Aldo Pacchiano、Yunhao Tang译者 | TroyChang编辑 | Jane出品 | AI科技大本营(ID:rgznai100)【导读】现有的MAML算法都是基于策略梯度的,在试图利用随机策…

Tesseract-OCR 3.04简单使用举例(读入图像输出识别结果)

下面code是对Tesseract-OCR 3.04版本进行简单使用的举例&#xff1a;包括两段&#xff0c;一个是读入带有中文字符的图像&#xff0c;一个是读入仅有英文字符的图像&#xff1a; #include "funset.hpp"#include <iostream> #include <string> #include &…

坑爹的微软官方文档:SQL无人值守安装

我在部署项目的时候&#xff0c;需要用批处理无人值守安装SQLserver,.Net等组件。 于是查了微软官方文档&#xff0c;其中一项内容如下&#xff1a; http://msdn.microsoft.com/zh-cn/library/ms144259.aspx SQL Server 安装程序控件 /IACCEPTSQLSERVERLICEN…

各种 django 静态文件的配置总结【待续】

2019独角兽企业重金招聘Python工程师标准>>> 最近在学习django框架的使用&#xff0c;想引用静态css文件&#xff0c;怎么都引用不到&#xff0c;从网搜了好多&#xff0c;大多因为版本问题&#xff0c;和我现在的使用的dango1.1配置不同&#xff0c;根据资料和公司…

实战:人脸识别的Arcface实现 | CSDN博文精选

来源 | CSDN博客本文将简单讲述arcface从训练到部署的整个过程&#xff0c;主要包括前期的数据筛选和准备&#xff0c;模型训练以及模型部署。此文参考的arcface的代码地址&#xff1a;https://github.com/ronghuaiyang/arcface-pytorch数据集准备1. 首先准备需要训练的人脸数据…

Windows7/10上快速搭建Tesseract-OCR开发环境操作步骤

之前在https://blog.csdn.net/fengbingchun/article/details/51628957 中描述过如何在Windows上搭建Tesseract-OCR开发环境&#xff0c;那时除了需要clone https://github.com/fengbingchun/OCR_Test 工程外&#xff0c;还需要依赖 https://github.com/fengbingchun/Liblept_T…

C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)

反射以及Attribute在ORM中的应用 一、 反射什么是反射&#xff1f;简单点吧&#xff0c;反射就是在运行时动态获取对象信息的方法&#xff0c;比如运行时知道对象有哪些属性&#xff0c;方法&#xff0c;委托等等等等。反射有什么用呢&#xff1f;反射不但让你在运行是获取对象…

Network | sk_buff

sk_buff结构可能是linux网络代码中最重要的数据结构&#xff0c;它表示接收或发送数据包的包头信息。它在中定义&#xff0c;并包含很多成员变量供网络代码中的各子系统使用。 这个结构被不同的网络层&#xff08;MAC或者其他二层链路协议&#xff0c;三层的IP&#xff0c;四…

吴恩达老师深度学习视频课笔记:深度学习的实用层面

训练、验证和测试数据集(training、development and test sets)&#xff1a;训练神经网络时&#xff0c;我们需要作出很多决策&#xff0c;如神经网络分多少层(layers)、每层含有多少个隐藏层单元(hidden units)、学习率(learning rates)、各层采用哪些激活函数(activation fun…

FtpCopy数据定时自动备份软件(FTP定时备份)

1. 软件说明 FtpCopy是一款免费的FTP数据自动备份软件&#xff0c;如果FtpCopy对您有较大的帮助&#xff0c;欢迎捐赠我们&#xff0c;我们对您表示衷心的感谢&#xff01; 如果有需求的话会一直更新下去&#xff0c;将软件做到极致&#xff01; 有问题可直接“反馈留言”。 特…

专注NLP,竹间智能完成4500万美元B+轮融资

近日&#xff0c;竹间智能在成立四周年之际宣布完成4500万美元B轮融资。本轮由某重要战略合作方、云晖资本及领沨资本联合领投&#xff0c;凯思博投资、众安资本、趋势资本、普华资本、一路资本跟投&#xff0c;光源资本担任本轮融资的独家财务顾问。竹间智能方面表示&#xff…

JDBC连接各种数据库方法

为什么80%的码农都做不了架构师&#xff1f;>>> 声明 以下内容收集自网络&#xff0c;并没有亲自测试可用性。 一、Oracle8/8i/9i数据库&#xff08;thin模式&#xff09; Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url&…

OpenCV支持中文字符输出实现

在 http://www.opencv.org.cn/forum.php?modviewthread&tid2083&extra&page1 中&#xff0c;作者给出了原始的在OpenCV中 支持中文字符的输入&#xff0c;原始的实现使用的是OpenCV的C接口&#xff0c;使用起来不怎么方便&#xff0c;这里对原作者的实现进行调整&…

CSDN”原力计划“在召唤:技术人请集结,用原创技术影响万千开发者

技术深不可测、薪资难以想象、着装招人吐槽、发量让人惊叹、笑点着实密集、情商令人堪忧......在这个你我他她它通过网络紧密互联、消息实时互通的 21 世纪&#xff0c;人们对身处技术至高点的程序员们仍然有着以上不接地气、呆板保守的误解&#xff0c;对此&#xff0c;操着一…

.asmx支持post请求或者get请求调用(WebService 因 URL 意外地以 结束,请求格式无法识别 的解决方法)...

使用Post调用以asmx形式提供的webservice时&#xff0c;在本机调试没有调用问题。一旦部署至服务器后会提示如下信息&#xff1a; <html><head><title>因 URL 意外地以“/GetCertByToken”结束&#xff0c;请求格式无法识别。</title><meta name&qu…

关于StartCoroutine的简单线程使用

StartCoroutine在unity3d的帮助中叫做协程&#xff0c;意思就是启动一个辅助的线程。 在C#中直接有Thread这个线程&#xff0c;但是在unity中有些元素是不能操作的。这个时候可以使用协程来完成。 使用线程的好处就是不会出现界面卡死的情况&#xff0c;如果有一次非常大量的运…