3.2 批量和动量
3.2.1 批量大小对梯度下降法的影响
批量梯度下降法(Batch Gradient Descent, BGD)
- 定义:使用全部训练数据来计算损失和梯度,然后更新参数。
- 特点:
- 每次迭代计算量大,因为需要遍历所有数据。
- 不适合大数据集,因为计算时间长。
随机梯度下降法(Stochastic Gradient Descent, SGD)
- 定义:每次只使用一笔数据来计算损失和梯度,并更新参数。
- 特点:
- 更新速度快,因为每次只处理一笔数据。
- 梯度带有随机噪声,更新方向不稳定。
- 在非凸优化问题中容易逃离局部最小值。
小批量梯度下降法(Mini-batch Gradient Descent)
- 定义:将数据分成多个小批量(batch),每次使用一个小批量来计算损失和梯度,并更新参数。
- 特点:
- 平衡了BGD和SGD的优缺点。
- 批量大小是超参数,需要调整。
- 小的批量大小引入噪声,有助于跳出局部最小值。
- 大的批量大小计算效率高,但可能陷入局部最小值。
批量大小对梯度下降法的影响
- 实验结果:
- 在GPU并行计算下,大批量和小批量计算梯度的时间差异不大(当批量大小不是极大时)。
- 一个回合内,大批量更新次数少,但每次更新计算量大;小批量更新次数多,但每次计算量小。
- 小批量在测试时通常表现更好,因为它更容易跳出局部最小值。
3.2.2 动量
动量法(Momentum Method)
- 定义:动量法(momentum method)是另外一个可以对抗鞍点或局部最小值的方法。
- 特点:
- 类似于物理中的惯性,有助于跳出局部最小值或鞍点。
- 更新方向不仅考虑当前梯度,还考虑历史梯度的加权和。
- 动量参数(λ)是
示例
- 动量法的优势,即使梯度方向改变,由于动量的存在,参数仍可能继续向有利方向移动。