mini-batch梯度下降法
相信有一定深度学习常识的人都知道梯度下降

使用batch梯度下降法时,每次迭代你都需要历遍整个训练集,可以预期每次迭代成本都会下降,所以如果成本函数J是迭代次数的一个函数,它应该会随着每次迭代而减少,如果J在某次迭代中增加了,那肯定出了问题,也许你的学习率太大。
使用mini-batch梯度下降法,如果你作出成本函数在整个过程中的图,则并不是每次迭代都是下降的,如果你要作出成本函数J的图,你很可能会看到这样的结果,走向朝下,但有更多的噪声。
在随机梯度下降法(SGD)中,从某一点开始,我们重新选取一个起始点,每次迭代,你只对一个样本进行梯度下降,大部分时候你向着全局最小值靠近,有时候你会远离最小值,因为那个样本恰好给你指的方向不对,因此随机梯度下降法是有很多噪声的,平均来看,它最终会靠近最小值,不过有时候也会方向错误,因为随机梯度下降法永远不会收敛,而是会一直在最小值附近波动,但它并不会在达到最小值并停留在此。如下图,紫色的线条。

如果使用随机梯度下降法,如果你只要处理一个样本,那这个方法很好,这样做没有问题,通过减小学习率,噪声会被改善或有所减小,但随机梯度下降法的一大缺点是,你会失去所有向量化带给你的加速,因为一次性只处理了一个训练样本,这样效率过于低下,所以实践中最好选择不大不小的mini-batch尺寸,实际上学习率达到最快。你会发现两个好处,一方面,你得到了大量

本文介绍了神经网络训练中的优化算法,包括mini-batch梯度下降、动量梯度下降法、RMSprop和Adam等。讨论了batch_size选择、指数加权平均数在优化中的作用,以及学习率衰减策略。强调了局部最优问题和如何通过调整参数提高训练效率。
最低0.47元/天 解锁文章
1590

被折叠的 条评论
为什么被折叠?



