调试处理

我们知道在大量数据下面训练算法,速度会非常慢,那么我们需要找到快速的优化算法来加快训练速度。这里我们先来讨论mini-batch梯度下降法

mini-batch梯度下降法介绍

如图所示

我们传统的算法是执行一遍梯度算法要跑整个数据集,如果数据集很大,比如说有5千万,那么多次执行梯度下降法速度会很慢很慢。

所以,如果你在处理完整个训练集样本之前,先让梯度下降法处理一部分,那么你的算法会快很多。我们可以把训练集分割成更小的部分,这些子集称之为mini-batch,我们将这些mini-batch用
大括号的形式来表示。这样,我们对每一个mini-batch用梯度下降法,就避免了一次处理整个数据集,导致计算过慢。

mini-batch梯度下降法原理

如图所示,这里每一个mini-batch的样本量是1000,所以,我们对1000个样本量使用梯度下降法。

理解mini-batch梯度下降法

使用batch梯度下降(就是一般的要遍历整个训练集的梯度下降)

如图左侧所示,这是一般的batch下降,cost function随着迭代次数不断降低。但是mini-batch不是这样的结果,右侧是mini-batch的图像。不需要个mini都要J函数是下降的,只需要总体趋势是下降的就可以了。

对于mini-batch而言,mini-batch的大小是一个至关重要的参数。

如图所示,如果在极端情况下,mini-batch的大小是1,那么我们就得到了一个新的算法,称为随机梯度下降法

图片的下侧展示了两种极端情况下,成本函数的优化情况。蓝色的线表示的是mini-batch大小是m的情况下,此时实际上就是batch。紫色的线表示的是mini-batch大小是1的情况下,从图中我们可以看出,大部分情况蓝色的线可以执行梯度下降最后找到最优解,但是当mini-batch的数量太低的时候(紫色),随机噪声很大,大部分情况下是可以找到最小值,但是有时也会例外。

随机梯度法永远不会收敛,而且会在最小值附近不断波动,所以他不会到达最小值之后就停留在这里。随机梯度法的另外一个缺点就是你会失去向量化给你的加速效果。

所以实践中我们的mini-batch size最好选择一个比较均衡的值。

mini-batch大小的选择

那么有什么大小选择的指导原则呢?

如图所示,对于很小的样本量,我们不需要考虑这个问题,当样本量比较大的时候,我们的mini-batch的大小一般设置成2的次方的形式,一般不会大于512。

另外一个值得注意的原则是mini-batch要和CPU以及GPU内存相符。如果不符的话,效果会非常糟糕。

吴教主深度学习和神经网络课程总纲

2.2.1 mini-batch相关推荐

  1. pytorch手动实现梯度下降法,随机梯度法--基于logistic Regression并探索Mini batch作用

    简述 基于这次凸优化的大项目作业. 下面会围绕着通过logistic Regression来做MNIST集上的手写数字识别~ 以此来探索logistic Regression,梯度下降法,随机梯度法, ...

  2. k中心点聚类算法伪代码_聚类算法之——K-Means、Canopy、Mini Batch K-Means

    K-Means||算法 K-Means||算法是为了解决K-Means++算法缺点而产生的一种算法: 主要思路是改变每次遍历时候的取样规则,并非按照K-Means++算法每次遍历只获取一个样本,而是每 ...

  3. 聚类分析(三)Mini Batch KMeans算法

    在当前大数据的背景下,工程师们往往为了追求更短的计算时间,不得不在一定程度上减少算法本身的计算精度,我说的是在一定程度上,所以肯定不能只追求速度而不顾其它.在KMeans聚类中,为了降低计算时间,KM ...

  4. 【机器学习】无监督学习--(聚类)Mini Batch K-Means

    1. Mini Batch K-Means概述 Mini-Batch-K-MEANS算法是K-Means算法的变种,采用小批次量的数据子集减少计算时间.这里所谓的小批量是指每次训练算法时所随机抽取的数 ...

  5. scikit-learn学习之K-means聚类算法与 Mini Batch K-Means算法

    ====================================================================== 本系列博客主要参考 Scikit-Learn 官方网站上的 ...

  6. 06 聚类算法 - 代码案例二 - K-Means算法和Mini Batch K-Means算法比较

    03 聚类算法 - K-means聚类 04 聚类算法 - 代码案例一 - K-means聚类 05 聚类算法 - 二分K-Means.K-Means++.K-Means||.Canopy.Mini ...

  7. 机器学习算法之聚类算法拓展:Mini Batch K-Means算法

    言归正传,先介绍一下 Mini Batch K-Means算法 Mini Batch K-Means算法是K-Means算法的一种优化变种,采用小规模的数据子集(每次训 练使用的数据集是在训练算法的时 ...

  8. 机器学习算法之聚类算法拓展:K-Means和Mini Batch K-Means算法效果评估

    聚类算法的衡量指标 混淆矩阵 均一性 完整性 V-measure 调整兰德系数(ARI) 调整互信息(AMI) 轮廓系数(Silhouette) import time import numpy as ...

  9. Stochastic Gradient Descend和mini batch SGD区别

    SGD 是只对一个数进行更新 mini batch SGD 是对一堆数进行更新

  10. Mini batch梯度下降法(吴恩达深度学习视频笔记)

    深度学习并没有在大数据中表现很好,但是我们可以利用一个巨大的数据集来训练神经网络,而在巨大的数据集基础上进行训练速度很慢,因此进行优化算法能够很大程度地增加训练速度,提升效率. 本节,我们将谈谈Min ...

最新文章

  1. 【No.5 类型转换导致的错误】
  2. golang 映射 map 简介
  3. 模拟海_浙江平湖“海水稻”丰收的背后,有这家来自上海企业的科技“秘方”...
  4. vue github开源项目_11月份Github上最热门的开源项目
  5. 解决Spring Cloud中Feign/Ribbon第一次请求失败的方法
  6. nginx server_name
  7. 五大开源MySQL管理工具!
  8. php excel复选框,Element表格嵌入复选框以及单选框的方法介绍(代码示例)
  9. Windows XP 电脑桌面图标后面有蓝色阴影怎么去除
  10. java中arSigal_基于AR模型谱估计算法(Yule-Walker方法与Burg方法)的C++实现
  11. Java工程师是做什么的 岗位职责都有哪些
  12. 浅谈市场降温后的区块链发展前景
  13. 西班牙首相被中国新零售圈粉!天猫总裁靖捷透露了一个“合伙人计划”
  14. 【CCF会议期刊推荐】中国计算机协会(CCF)推荐计算领域高质量科技期刊分级目录(T1类)
  15. 【双系统安装】win10+联想thinkpad T14 安装Ubuntu20.04
  16. 安卓的平板电脑,请问有没有类似Ghost的备份还原软件?(for 安卓)
  17. oracle使用PLSQL导出dmp文件一闪而过的解决办法
  18. win10 创建访客_建立一个访客会很喜欢的网站
  19. Sun公司的操作系统:Solaris简介
  20. 一个简易的c语言病毒源码,求简单病毒代码

热门文章

  1. css画三角形和提示框
  2. BurpSuite插件开发指南之 Java 篇
  3. 检测数据类型的几种方式
  4. Android 为什么要有handler机制?handler机制的原理
  5. Laravel API记录
  6. 性能测试、负载测试以及压力测试
  7. MATLAB - 为什么imshow(g,[])可以正常显示,而imshow(g)却显示空白图像?
  8. 垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
  9. hausdorff距离
  10. Java实现算法导论中求解模线性方程解(基于最大公约数欧几里得扩展算法)