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

mini-batch大小 = m:

极限情况下,当mini-batch的单个子集样本数量和原集合大小一致都为m时,也就是说对原样本只划分一个子集,这意味着没有划分,此时的梯度下降法为原始的Batch梯度下降

batch方法意味着每次迭代对大量的数据进行处理,这意味着在进行深度神经网络训练海量数据的时候需要花费很多很多时间,当然在数据集较小的时候这种方法很精确

mini-batch大小 = 1:

另一种极限情况下,当mini-batch的单个子集样本数量等于1的时候,也就是说对有m个样本的原集合划分m个子集的时候,此时的梯度下降法为随机梯度下降法

随机梯度下降法意味着失去了向量化运算带来的加速效果,因为基本上这就等于每次运算1个样本的数据。还有一个缺点在于,这种情况下的总体收敛方向是向中心的,但是由于每次训练某一个样本,所以会呈现波动的趋势,最终也不会收敛于极小值点,而是在极小值点附近波动。

所以综上所述,一般而言最好选择不大不小的mini-batch的大小,这会带来较好的学习速率。其原因在于mini-batch的单个子集比如1000个样本可以进行向量化运算加快单次运算的速度,其次有可能不用等待所有样本训练完毕就可以收敛,因为此时单次操作的都是每个子集。

那么,如何选择一个合适的mini-batch大小呢?

1.如果训练集较小(通常来说其样本数量m < 2000)直接使用batch,也就是说mini-batch大小等于m

2.典型的mini-batch大小:考虑到计算机运行方式将其设置为2的次方,如64、128、256、512、1024(较为少见),同时要考虑到mini-batch的大小应当小于CPU/GPU的内存(这在图片处理等占用大量存储空间的计算中很重要)

当然,在实际操作中还有一种比mini-batch表现更加高效的优化算法,稍后请参见我的day8.2博文

转载于:https://www.cnblogs.com/NWNU-LHY/p/11193870.html

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

  1. Adam 那么棒,为什么还对 SGD 念念不忘?一个框架看懂深度学习优化算法

    作者|Juliuszh 链接 | https://zhuanlan.zhihu.com/juliuszh 本文仅作学术分享,若侵权,请联系后台删文处理 机器学习界有一群炼丹师,他们每天的日常是: 拿来 ...

  2. 深度学习优化算法,Adam优缺点分析

    优化算法 首先我们来回顾一下各类优化算法. 深度学习优化算法经历了 SGD -> SGDM -> NAG ->AdaGrad -> AdaDelta -> Adam -& ...

  3. Adam那么棒,为什么还对SGD念念不忘?一个框架看懂深度学习优化算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者|Juliuszh,https://zhuanlan.zhih ...

  4. 2017年深度学习优化算法最新进展:改进SGD和Adam方法

    2017年深度学习优化算法最新进展:如何改进SGD和Adam方法 转载的文章,把个人觉得比较好的摘录了一下 AMSGrad 这个前期比sgd快,不能收敛到最优. sgdr 余弦退火的方案比较好 最近的 ...

  5. 2017年深度学习优化算法最新进展:如何改进SGD和Adam方法?

    2017年深度学习优化算法最新进展:如何改进SGD和Adam方法? 深度学习的基本目标,就是寻找一个泛化能力强的最小值,模型的快速性和可靠性也是一个加分点. 随机梯度下降(SGD)方法是1951年由R ...

  6. Pytorch框架的深度学习优化算法集(优化中的挑战)

    个人简介:CSDN百万访问量博主,普普通通男大学生,深度学习算法.医学图像处理专攻,偶尔也搞全栈开发,没事就写文章,you feel me? 博客地址:lixiang.blog.csdn.net Py ...

  7. 深度学习优化算法实现(Momentum, Adam)

    目录 Momentum 初始化 更新参数 Adam 初始化 更新参数 除了常见的梯度下降法外,还有几种比较通用的优化算法:表现都优于梯度下降法.本文只记录完成吴恩达深度学习作业时遇到的Momentum ...

  8. 深度学习 --- 优化入门五(Batch Normalization(批量归一化)二)

    批归一化真的可以解决内部协方差偏移问题?如果不能解决,那它的作用是什么?你所接受的整个深度学习教育是一个谎言吗?让我们来寻找答案吧! 开始之前...... 我想提醒一下,本文是深度学习优化算法系列的第 ...

  9. 深度学习优化算法的总结与梳理(从 SGD 到 AdamW 原理和代码解读)

    作者丨科技猛兽 转自丨极市平台 本文思想来自下面这篇大佬的文章: Juliuszh:一个框架看懂优化算法之异同 SGD/AdaGrad/Adam https://zhuanlan.zhihu.com/ ...

最新文章

  1. 开源的关于智能车竞赛光电起始点方案
  2. C++11 新特性之std::thread
  3. 数学图形(1.45)毛雷尔玫瑰(Maurer rose)
  4. gridview的sort_GridView排序:SortDirection始终升序
  5. python写文字方法_Transcrypt: 用Python写js的方法
  6. 322. 零钱兑换 golang 动态规划
  7. php异步处理任务工具,PHP实现异步任务分发处理利器-Gearman
  8. 京东联合vivo针对vivo X Note推出先行者计划
  9. 有了门面,程序会更加体面!- pos软件基于三层架构 -09
  10. Linux负载均衡软件LVS(概念篇)
  11. 深入理解Git (三) - 微命令上篇
  12. 【luogu P1156 垃圾陷阱】 题解
  13. [英中双语] Pragmatic Software Development Tips 务实的软件开发提示
  14. thinkphp sql查询条件 一个字段多个限制条件
  15. vc2013 调用大漠插件例子
  16. SpringBoot集成mybatis拦截器修改表名
  17. CMSIS 记录与下载
  18. MySQL子查询,多表查询
  19. c语言小饭店等位就餐程序,小饭店预约登记管理系统,
  20. OSChina 周三乱弹 —— 致力于做一名优秀的女程序员鼓励师

热门文章

  1. 快起床刷题去,别人把你offer拿走啦
  2. java调用clang编译的so_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实
  3. HJ107 二分法求求解立方根
  4. 深度学习——Xavier初始化方法
  5. Pytorch的默认初始化分布 nn.Embedding.weight初始化分布
  6. TVM Operator Inventory (TOPI)简介
  7. Python库全部整理出来了,非常全面
  8. PHP算法题:如何实现冒泡排序
  9. 【CV】Anaconda 安装教程|CSDN创作打卡
  10. Python 的基本数据类型