梯度下降法的不同形式——随机梯度下降法和小批量梯度下降法
前文介绍了梯度下降法,其每次迭代均需使用全部的样本,因此计算量巨大。就此,提出了基于单个样本的随机梯度下降法(Stochastic gradient descent,SGD)和基于部分样本的小批量梯度下降法(Mini-Batch gradient descent,Mini-batch gradient descent)。
一、随机梯度下降法
随机梯度下降法,即在每次梯度更新过程中仅使用某个随机样本点: θ : = θ − α ( θ T x i − y i ) x i \boldsymbol \theta:=\boldsymbol \theta-\alpha (\boldsymbol \theta^T\boldsymbol x_i-y_i)\boldsymbol x_i θ:=θ−α(θTxi−yi)xi
随机梯度下降法虽然很好的解决了每次都要使用全量样本的问题,但由于其在样本选择时的随机性,会导致每一步并不是沿着全局梯度下降的方向推进,因此尽管最终结果会逐渐走向局部最小值,但过程较为波折,且最终结果会在最小值附近徘徊。
二、小批量梯度下降法
小批量梯度下降法是随机梯度下降法和随机梯度下降法的折中,即每次选取部分数据样本进行梯度的迭代。其迭代流程为:
for i in N epoches: # 每个epoch使用全部的数据样本for j in m batches: # 每个batch间的数据都是不同,每个batch内的数据都不重复t:=t-a*sum(t*x-y)*x
三、三种形式梯度下降法的对比
综上所述,梯度下降法包括三种形式:批量梯度下降法、随机梯度下降法和小批量梯度下降法。其迭代过程见下方示意图:
三种形式梯度下降的主要优缺点在于:
1)梯度下降法
优点:全局最优解,能保证每一次更新权值,都能降低损失函数;在计算各样本的损失时易于并行实现。
缺点:需要用到全量样本,对内存的要求高,同时计算缓慢。
2)随机梯度下降法
优点:每次迭代训练速度快
缺点:搜索方向随机性强,迭代步数多,每一步并不一定指向最优化方向。最终结果并非全局最优,准确性略弱。
3)小批量梯度下降法
克服上面两种方法的缺点,又同时兼顾两种方法的优点。
因此在实际使用中:
1)一般情况下,优先采用小批量梯度下降法,在很多情况下SGD默认指代小批量梯度下降法;
2)若数据量小,可直接采用批量梯度下降法;
3)若数据量非常大,或者需要在线学习,可考虑使用随机梯度下降法。
梯度下降法的不同形式——随机梯度下降法和小批量梯度下降法相关推荐
- 随机梯度下降法,批量梯度下降法和小批量梯度下降法以及代码实现
前言 梯度下降法是深度学习领域用于最优化的常见方法,根据使用的batch大小,可分为随机梯度下降法(SGD)和批量梯度下降法(BGD)和小批量梯度下降法(MBGD),这里简单介绍下并且提供Python ...
- 『ML笔记』梯度下降法和随机梯度下降法和小批量梯度对比
目录 1. 梯度下降法(gradient descent) 2. 随机梯度下降(Stochastic gradient descent) 3. 小批量梯度下降(Mini-Batch gradient ...
- Lesson 4.34.4 梯度下降(Gradient Descent)基本原理与手动实现随机梯度下降与小批量梯度下降
Lesson 4.3 梯度下降(Gradient Descent)基本原理与手动实现 在上一小节中,我们已经成功的构建了逻辑回归的损失函数,但由于逻辑回归模型本身的特殊性,我们在构造损失函数时无法采用 ...
- 3. 机器学习中为什么需要梯度下降?梯度下降算法缺点?_浅谈随机梯度下降amp;小批量梯度下降...
机器学习三要素 上次的报告中,我们介绍了一种用于求解模型参数的迭代算法--梯度下降法.首先需要明确一点,即"梯度下降算法"在一个完整的统计学习流程中,属于什么?根据<统计学习 ...
- 随机梯度下降、批量梯度下降、小批量梯度下降分类是什么?有什么区别?batch_size的选择如何实施、有什么影响?
随机梯度下降.批量梯度下降.小批量梯度下降分类是什么?有什么区别?batch_size的选择如何实施.有什么影响? 目录
- 批量梯度下降,随机梯度下降和小批量梯度下降的区别
批量梯度下降,随机梯度下降和小批量梯度下降的区别主要体现在用于计算梯度的样本的数量: 批量梯度下降:在每次迭代时,用整个数据集的所有样本上的梯度计算更新. 随机梯度下降:在每次迭代时,用单个样本上的梯 ...
- 梯度下降法的三种形式批量梯度下降法、随机梯度下降以及小批量梯度下降法
梯度下降法的三种形式BGD.SGD以及MBGD 梯度下降法的三种形式BGD.SGD以及MBGD 阅读目录 1. 批量梯度下降法BGD 2. 随机梯度下降法SGD 3. 小批量梯度下降法MBGD 4. ...
- 常见优化算法批量梯度下降、小批量梯度下降、随机梯度下降的对比
在机器学习领域中,梯度下降的方式有三种,分别是:批量梯度下降法BGD.随机梯度下降法SGD.小批量梯度下降法MBGD,并且都有不同的优缺点. 下面我们以线性回归算法(也可以是别的算法,只是损失函数(目 ...
- 【深度学习】——梯度下降优化算法(批量梯度下降、随机梯度下降、小批量梯度下降、Momentum、Adam)
目录 梯度 梯度下降 常用的梯度下降算法(BGD,SGD,MBGD) 梯度下降的详细算法 算法过程 批量梯度下降法(Batch Gradient Descent) 随机梯度下降法(Stochastic ...
最新文章
- volatile关键字的作用、原理
- 存储时间:高清3D化,技术应用化?
- 分享3一个博客HTML5模板
- 2020年快手校招JAVA岗笔试第一题
- 你为何如此优秀?| 神策数据 2018 年获奖集锦
- response对象简介
- .net core EPPlus npoi_在.NET中隐藏带有只读Web路径的Web shell
- [BI项目记]-搭建代码管理环境之客户端
- Bailian2719 陶陶摘苹果(POJ NOI0106-02, vijos P1102)【序列处理】
- 解决Mysql的主从数据库没有同步的两种方法
- sklearn文本特征提取
- zwPython,字王集成式python开发平台,比pythonXY更强大、更方便。
- win10简洁之道(有效去广告)
- 数据驱动下的客群经营逻辑
- 为什么要在机器视觉检测中使用线阵相机?
- linux中help的用法
- 学生网页作业—山河旅行社网站(5页) HTML+CSS+JavaScript 学生DW网页 出行 旅途 游玩
- 手把手教你用JAVA实现“语音识别”功能(声音转文字)标贝科技
- 国产ERP不如洋品牌但适合国能中小药企(转)
- 淘宝/天猫如何获取sku API接口,item_sku - 获取sku详细信息
热门文章
- python项目之杠子老虎鸡虫
- Windows系统下CMD添加删除用户、用户组
- tp+layui 时间戳转换
- android中如何打开指定卡上的数据连接开关,Android 代码控制手机数据网络的开关(5.0以上)...
- 天平游码读数例题_天平游码怎么读数?
- python dataframe根据多列排名并生成序号_将rank字段添加到pandas dataframe,按唯一组和多列排序...
- 安卓系统监控任务管理器App推荐
- 3D游戏设计——模型与动画
- 超稳定的接口——淘宝/天猫获得淘宝商品详情
- 单线复用有线Mesh组网案例