机器学习的应用是一个高度依赖经验的过程,优化算法能够帮助你快速训练模型。深度学习没有在大数据领域发挥最大的效果我们可以利用一个巨大的数据集来训练神经网络,而在巨大的数据集基础上进行训练速度很慢。
因此,使用快速的优化算法,使用好用的优化算法能够大大提高效率,现在谈谈mini-batch梯度下降法。
向量化能有效地对所有m个例子进行计算,允许处理整个训练集而无需某个明确的公式,所以我们要把训练样本放到巨大的矩阵X中,如下的维数是,的维数是,向量化能相对较快地处理所有m个样本,但如果m很大的话,处理速度仍然缓慢,比如说m是500万或者5000万或者更大的一个数,在对整个训练集执行梯度下降法时,必须处理整个训练集,然后才能进行一步梯度下降法,然后需要再重新处理500万个训练样本才能进行下一步梯度下降法。
所以如果在处理完整个500万个样本的训练集之前,先让梯度下降法处理一部分,算法速度会更快。可以把训练集分割为小一点的子训练集,这些子集被取名为Mini-batch,假设每一个子集中只有1000个样本,那么将其中的到取出来,将其称之为第一个子训练集,也叫做Mini-batch,然后再取出接下来的1000个样本,从到,然后再取1000个样本,以此类推。
接下来说一个新符号,,如果训练集数据有500万,每个mini-batch都有1000个样本,也就是说有5000个mini-batch。
之前我们使用表示训练集中的第i个数据,用表示神经网络的层数,表示神经网络中第l层的z值,现在用表示不同的mini-batch。
来源:CSDN
作者:AI就是爱
链接:https://blog.csdn.net/qq_37388085/article/details/103722143