2.2.1 mini-batch

本文介绍了mini-batch梯度下降法,用于加快大量数据训练时的速度。通过将训练集分成小批量的mini-batch,每次处理一部分数据,提高了算法效率。mini-batch的大小是一个关键参数,其选择既要考虑计算资源限制,也要平衡优化速度和精度。通常,mini-batch大小设置为2的次方,不超过512,并需确保与硬件内存匹配。
摘要由CSDN通过智能技术生成

调试处理

我们知道在大量数据下面训练算法,速度会非常慢,那么我们需要找到快速的优化算法来加快训练速度。这里我们先来讨论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内存相符。如果不符的话,效果会非常糟糕。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Einstellung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值