神经网络学习技巧之梯度下降训练策略

梯度算法

  • 随机梯度下降SGD(Stochastic Gradient Descent)
  • 小批次梯度下降(Mini-batch Gradient Descent)
    神经网络学习技巧之梯度下降训练策略

批次梯度下降

利用全部训练数据集计算损失函数的梯度来执行一次参数更新
• 更新较慢
• 不能在线更新模型

• 对凸的损失函数可保证收敛到全局最小值;对非凸的损失函数可收敛到局部最小值
神经网络学习技巧之梯度下降训练策略

随机梯度下降

对每一个训练样本点和标签执行参数更新
• 速度快,可在线学习
• 梯度精度差,目标函数下降过程出现大幅波动 神经网络学习技巧之梯度下降训练策略

小批次梯度下降

每????个训练样本点,进行一次参数更新
神经网络学习技巧之梯度下降训练策略
• Batch-GD和单样本SGD方法的折衷
• 减小了参数更新的方差,可平稳收敛
• 速度快,可利用优化的矩阵运算库来高效的计算梯度
• Batch大小根据问题来定。一般而言设为32、64、128或256即可。

存在问题

• 确定合适的学习率比较困难
– 小的学习率可保证收敛性,但收敛过程很慢
– 大的学习率会导致损失函数优化过程在最小值附近波动甚至发散
• SGD难以跳出局部极小值点和鞍点
– 神经网络对应的函数具有高度非线性
– 众多局部极小值点或鞍点
– 在极小值点或鞍点附近,目标函数值几乎不变,导致梯度近似为零

优化算法

• Momentum
• NAG
• Adagrad
• Adadelta
• RMSprop
• Adam

SGD+动量(Momentum)

动量(Momentum)可用来加速SGD
神经网络学习技巧之梯度下降训练策略
• 把过去时间步骤更新矢量的一部分(????)加到当前更新矢量
• 速度的逐渐增加是作为梯度的移动平均
• 动量项???? 一般设为0.9。可理解为“摩擦”效果
神经网络学习技巧之梯度下降训练策略

Adam(Adaptive Moment Estimation)

Adam是一种为每一参数计算自适应学习率的方法
存储过去梯度平方的指数衰减平均值????????;保留了过去梯度的指数衰减平均值????????,类似动量 。
神经网络学习技巧之梯度下降训练策略
???????? 和????????分别是一阶矩(均值) 和梯度二阶矩(有偏方差) 的估计值
参数 ????1、????2 ∈ [0, 1) 控制了这些移动均值(moving average)指数衰减率。
计算含有偏差校正(bias-corrected)的一阶矩和二阶矩 的估计:
神经网络学习技巧之梯度下降训练策略
Adam更新规则:
神经网络学习技巧之梯度下降训练策略