数值优化算法【3】-- 动量法及其变种
数值优化算法【3】-- 动量法及其变种
一、问题的提出
上节提到的批量梯度下降(BGD)、随机梯度下降(SGD)和小批量梯度下降法(MBGD),基础完全一致,区别仅在于批大小(batch size)的不同。虽然由于批大小不同带来了很多不同的特性,但它们均避免不了一个问题,即模型参数的更新方向依赖于当前batch计算出的梯度,这可能会带来一些问题。
让我们考虑一个输入为二维向量 x=[x1,x2]⊤\boldsymbol{x} = [x_1, x_2]^\topx=[x1,x2]⊤ 、输出为标量的目标函数f(x)=0.1x12+2x22f(\boldsymbol{x})=0.1x_1^2+2x_2^2f(x)=0.1x12+2x22。 下图为基于该目标函数的梯度下降,学习率为 0.40.40.4 时的自变量迭代轨迹。可以看到,同一位置上,目标函数在竖直方向(x2x_2x2轴方向)比在水平方向(x1x_1x1轴方向)的斜率的绝对值更大。因此,给定学习率,梯度下降迭代自变量时会使自变量在竖直方向比在水平方向移动幅度更大。那么,我们需要一个较小的学习率从而避免自变量在竖 ...