优化器optimizer,BGD、SGD、MBGD、NAG、AdaGrad、Adadelta、RMSProp、Adam

优化器根据优化点不一样可分为三类:

  1. 基本的梯度下降法 包括:批量梯度下降法BGD、随机梯度下降法SGD、小批量梯度下降法MBGD(SGD)

  2. 动量优化法 包括:标准动量优化法Momentum,牛顿加速度动量优化法NAG

  3. 自适应学习率优化法 包括:AdaGrad、Adadelta、RMSProp、Adam算法

    可以理解为下山过程中,选择什么方向(梯度),以速度快慢(动量),什么大小的步幅下山(学习率),才会最快达到真正的山底。

一、基本的梯度下降法
梯度下降法最小化目标函数,利用目标函数关于参数的梯度的反方向更新参数。
不同之处是计算目标函数梯度时,所使用的数据量的多少
假设总训练样本数据为N
BGD,每个迭代使用所有数据N计算梯度更新参数
SGD,每个迭代使用一个样本计算梯度更新参数
MBGD,每个迭代使用m个样本计算梯度更新参数

1.批量梯度下降法(BGD,Batch Gradient Descent)
原理:在所有样本的计算输出预测与groundtruth的loss的梯度在这里插入图片描述

优点:
缺点:
适用于:

2.随机梯度下降(SGD, Stochastic Gradient Descent)
原理:随机选取一个样本计算梯度,更新参数
在这里插入图片描述

优点:
缺点:
适用于:
3.小批量梯度下降法(MBGD,Mini-Batch Gradient Descent)
原理:每次取一个小批次,即batch大小的数据量与groundtruth之间的loss计算相应梯度,进行参数更新
在这里插入图片描述

优点:
缺点:
适用于:

二、动量优化法
1.标准动量优化法(Momentum Optimizer)
原理:动量法在梯度下降法技术上改进,加速梯度下降。动量项,有效减小波动,加快训练速度。
使得当前训练数据的梯度受到之前训练数据梯度的影响,之前梯度乘以权重值(0~1),成为动量项,随着迭代次数增加,越前面的梯度对当前梯度的影响越小。
小球从山上滚下来,正常来讲,没有阻力,动量越来越大,有阻力速度变小,即加入动量项,使梯度方向不变的维度上速度变快(没有阻力),梯度方向有所改变(有阻力)的维度上更新速度变慢,加快收敛,减小震荡。
**优点:**在梯度变化不大的梯度方向上,速度加快
减少动荡,下降折返来回情况减轻,从而加快训练速度
**缺点:**数据集分类复杂时,前后时刻梯度方向差距太大,向量求和时(抵消部分),导致当前时刻梯度变小,使训练速度下降难以收敛。
2.牛顿加速度动量优化方法(NAG,Nesterov Accelerated Gradient)
原理:NAG在Momentum基础上优化,多次梯度累计方向大致相同时,下降步幅会过大,计算当前的梯度,在更新后的累积梯度后有一个大的跳跃。
NAG会现在前一步的累积梯度上有一个大的跳跃,衡量梯度做修正,预期的更新避免走的太快。
适用于:NAG在RNN等任务上有更好的表现。

三、自适应学习率优化法
采用不同的策略调整训练过程学习率,提高训练速度
1.AdaGrad(Adaptive gradient algorithm)
2. Adadelta
AdaGrad的基础上改进
3. RMSProp
RMSprop和Adadelta都是为了解决Adagrad学习率急剧下降问题。
4. Adam(Adaptive Moment Estimation)

四、选择优化算法
稀疏数据:自适应学习率算法:Adagrad、Adadelta、RMSprop、Adam(优先)
梯度变得稀疏时,Adam优于RMSprop

你可能感兴趣的:(baseknowledge,机器学习,深度学习,神经网络)