博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ubuntu之路——day8.1 深度学习优化算法之mini-batch梯度下降法
阅读量:4637 次
发布时间:2019-06-09

本文共 956 字,大约阅读时间需要 3 分钟。

所谓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

你可能感兴趣的文章
nfs服务器工作原理
查看>>
C3P0连接池工具类使用
查看>>
SVN常用命令备注
查看>>
孩子教育
查看>>
解决Cacti监控图像断断续续问题
查看>>
结构体的传参理解成员的存储方式
查看>>
python 进程与线程(理论部分)
查看>>
什么是API
查看>>
Java反射中method.isBridge() 桥接方法
查看>>
[shiro学习笔记]第二节 shiro与web融合实现一个简单的授权认证
查看>>
强名称程序集(strong name assembly)——为程序集赋予强名称
查看>>
1028. List Sorting (25)
查看>>
BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划
查看>>
ubuntu 重启命令,ubuntu 重启网卡方法
查看>>
Linux的学习:
查看>>
JavaScript中的原型继承原理
查看>>
Python logger模块
查看>>
jquery控制css的display(控制元素的显示与隐藏)
查看>>
关于python做人工智能的一个网页(很牛逼)
查看>>
判断控件的CGRect是否重合,获取控件的最大XY值
查看>>