首页 理论教育 关于小批量梯度下降优化方法

关于小批量梯度下降优化方法

时间:2023-06-21 理论教育 版权反馈
【摘要】:小批量梯度下降的数学表示为式中,为来自小批量D′的样本。小批量梯度下降的算法流程如算法7-3所示。小批量梯度下降在深度学习领域之外还有许多重要应用,它是在大规模数据上训练大型线性模型的主要方法。虽然小批量梯度下降使得模型能够运行在大规模数据集上,但其还有一些不足之处。此外,小批量梯度下降对所有小批量都使用同样的学习率,但这是不科学的。

关于小批量梯度下降优化方法

为了在减轻计算负担的同时减小噪声的影响,研究者采用小批量(mini-batch)的思想来计算梯度,从而产生了小批量梯度下降法。小批量梯度下降法的核心思想是:梯度是所有样本变化率的期望,而期望可以由小规模的样本来近似估计。具体而言,在每次迭代中,都从大小为m的训练集中随机取出一个小批量D′={x1,x2,…,xm′}⊂D,然后用这个小批量来计算梯度。小批量的数目m′通常是一个相对较小的数,其取值范围从一到几百,而且m′的大小通常不随训练集大小的增加而改变。这样,即使训练集规模达到上亿级别,在每次计算梯度时也只需用到几百个样本。小批量梯度下降的数学表示为

式中,(xi,yi)为来自小批量D′的样本。

小批量梯度下降的算法流程如算法7-3所示。

小批量梯度下降在深度学习领域之外还有许多重要应用,它是在大规模数据上训练大型线性模型的主要方法。对于固定大小的训练模型,每步参数更新的计算量与训练集的大小m无关。在实践中,随着训练集规模的增长,训练模型的大小也增长,这样模型需要迭代更多次才能收敛。然而,当m趋向无穷大时,该模型的训练误差最终会在小批量梯度下降抽样完训练集的所有样本之前收敛到可能的最小值,并且继续增加m不会延长达到模型可能的最小训练误差的时间。从这一点来看,可以认为用小批量梯度下降来训练模型的时间复杂度是O(1)级别。(www.zuozong.com)

在深度学习兴起之前,学习非线性模型的主要方法是核技巧。很多核学习算法需要构建一个m×m的矩阵Gi,j=k(xi,xj),构建这个矩阵的计算量是O(m2)。显然,当数据集包含几十亿个样本时,这个计算量是不能接受的。在学术界,深度学习从2006年开始得到关注的原因是在包含上万样本的中等规模数据集中,深度学习的泛化性能强于当时很多热门算法。不久后,深度学习在工业界受到更多关注,因为其提供了一种在大数据集上训练非线性模型的可扩展方式。

虽然小批量梯度下降使得模型能够运行在大规模数据集上,但其还有一些不足之处。从式(7.5)中可以看到,小批量梯度下降完全依赖于当前小批量的梯度,而学习率η又控制着当前小批量对参数更新的影响程度,从中可以看到学习率η在参数更新中的重要性。在实际应用中,学习率η的选择是一件比较困难的事情,它依靠研究员的经验和大量试验。此外,小批量梯度下降对所有小批量都使用同样的学习率,但这是不科学的。很多时候,对于稀疏的数据或特征,我们希望参数能更新得快一些;对于密集的数据或特征,我们希望参数能更新得慢一些。这时小批量梯度下降就不能满足要求了。针对小批量梯度下降存在的这些缺点,研究者提出了不少改进算法,常用的算法有经典动量[130]、Nesterov动量[131]、AdaGrad[132]、RMSProp[133]、Adam[134]等。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈

相关推荐