梯度下降算法本身还存在一些算力层面的限制,虽然理论上求解函数图像特定点的梯度仅是计算一阶方向导数,但现在的工作毕竟不是简单地对一个已知的光滑连续函数求导,已知的数据是由一堆训练样本构成的不连续的采样点。如果每一次都是通过样本代入来求解梯度的话,那么当样本数量很庞大,且选定的学习速率的值相对较小时,就需要进行很多次求解梯度的操作,因此所有样本都参与运算是相当耗费计算资源的。实践中常常每次都只随机挑选一个样本来计算梯度,这种做法是梯度下降算法的一种改进形式,称为“随机梯度下降”(Stochastic Gradient Descent,SGD)算法,之前使用全部样本进行训练的原始形式称为“批量梯度下降”(Batch Gradient Descent,BGD)算法。这两种算法各自的优缺点非常明显,在训练速度方面,随机梯度下降算法由于每次仅采用一个样本来迭代,虽然迭代次数会多一些,但训练速度很快,解决了批量梯度下降算法在大量样本下的计算效率问题。但在准确率方面,随机梯度下降算法仅用一个样本决定梯度方向,由于迭代方向变化很大,不一定能很快地收敛到局部最优解,可能会不断地在最优解附近振荡,导致解有可能不是全局最优的。为了平衡这些优缺点,日常应用时会在这两种算法之间折中,每次随机选择一小批样本来进行训练,这种形式被称为“小批量梯度下降”(Mini-Batch Gradient Descent,MBGD)算法,该算法使得训练过程较快,也能保证最终参数训练的准确率。
第 6 章 机器学习概览
225
○一 凸函数、凹函数是数学概念,其本质是描述函数斜率增减。语义上凸为正,代表斜率单调不减;凹为负,代表斜率单调不增。