当前位置:   article > 正文

机器学习优化算法_pgd和sgd的区别

pgd和sgd的区别

目录

1.批量梯度下降 BGD

2.随机梯度下降 SGD

3.小批量梯度下降 MBGD

4.动量优化算法

5.自适应学习率优化算法

6.正则化

7.Bagging boosting区别


1.批量梯度下降 BGD

每一次迭代时使用所有样本来进行梯度的更新
优点:
  (1)一次迭代是对所有样本进行计算,此时利用矩阵进行操作,实现了并行。
  (2)由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。当目标函数为凸函数时,BGD一定能够得到全局最优。
缺点:

  (1)当样本数目 mm 很大时,每迭代一步都需要对所有样本计算,训练过程会很慢。

2.随机梯度下降 SGD

每次迭代使用一个样本来对参数进行更新。使得训练速度加快。

优点:
  (1)由于不是在全部训练数据上的损失函数,而是在每轮迭代中,随机优化某一条训练数据上的损失函数,这样每一轮参数的更新速度大大加快。
缺点:
  (1)准确度下降。由于即使在目标函数为强凸函数的情况下,SGD仍旧无法做到线性收敛。
  (2)可能会收敛到局部最优,由于单个样本并不能代表全体样本的趋势。
  (3)不易于并行实现。

3.小批量梯度下降 MBGD

是对批量梯度下降以及随机梯度下降的一个折中办法。其思想是:每次迭代 使用 ** batch_size** 个样本来对参数进行更新。

优点:
  (1)通过矩阵运算,每次在一个batch上优化神经网络参数并不会比单个数据慢太多。
  (2)每次使用一个batch可以大大减小收敛所需要的迭代次数,同时可以使收敛到的结果更加接近梯度下降的效果。(比如上例中的30W,设置batch_size=100时,需要迭代3000次,远小于SGD的30W次)
  (3)可实现并行化。
缺点:
  (1)batch_size的不当选择可能会带来一些问题。
 

batch_size的选择带来的影响:
  (1)在合理地范围内,增大batch_size的好处:
    a. 内存利用率提高了,大矩阵乘法的并行化效率提高。
    b. 跑完一次 epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快。
    c. 在一定范围内,一般来说 Batch_Size 越大,其确定的下降方向越准,引起训练震荡越小。
  (2)盲目增大batch_size的坏处:
    a. 内存利用率提高了,但是内存容量可能撑不住了。
    b. 跑完一次 epoch(全数据集)所需的迭代次数减少,要想达到相同的精度,其所花费的时间大大增加了,从而对参数的修正也就显得更加缓慢。
    c. Batch_Size 增大到一定程度,其确定的下降方向已经基本不再变化。

实际工程中最常用的就是mini-batch,一般size设置为几十或者几百。
对于二阶优化算法,减小batch换来的收敛速度提升远不如引入大量噪声导致的性能下降,因此在使用二阶优化算法时,往往要采用大batch。此时往往batch设置成几千甚至一两万才能发挥出最佳性能。
GPU对2的幂次的batch可以发挥更佳的性能,因此设置成16、32、64、128…时往往要比设置为整10、整100的倍数时表现更优。
 

4.动量优化算法

Momentum随机梯度下降法

参数更新时在一定程度上保留之前更新的方向,同时又利用当前batch的梯度微调最终的更新方向,简言之就是通过积累之前的动量来加速当前的梯度。

优点:

当某个参数在最近一段时间内的梯度方向不一致时,其真实的参数更新幅度变小;相反,当在最近一段时间内的梯度方向都一致时,其真实的参数更新幅度变大,起到加速作用。

一般而言,在迭代初期,梯度方向都比较一致,动量法会起到加速作用,可以更快地到达最优点。在迭代后期,梯度方向会取决不一致,在收敛值附近震荡,动量法会起到减速作用,增加稳定性。从某种角度来说,当前梯度叠加上部分的上次梯度,一定程度上可以近似看作二阶梯度

Nesterov动量型随机梯度下降法

Nesterov动量型随机梯度下降法是在momentum更新梯度时加入对当前梯度的校正,让梯度“多走一步”,可能跳出局部最优解。

相比momentum动量法,Nesterov动量型随机梯度下降法对于凸函数在收敛性证明上有更强的理论保证。

5.自适应学习率优化算法

  1. Adagrad法

    SGD的学习率是线性更新的,每次更新的差值一样。后面的优化法开始围绕自适应学习率进行改进。Adagrad法引入二阶动量,根据训练轮数的不同,对学习率进行了动态调整。

    但缺点是Adagrad法仍然需要人为指定一个合适的全局学习率,同时网络训练到一定轮次后,分母上梯度累加过大使得学习率为0而导致训练提前结束。

  2. Adadelta法

    Adadelta法是对Adagrad法的扩展,通过引入衰减因子ρ消除Adagrad法对全局学习率的依赖

    Adadelta法避免了对全局学习率的依赖。而且只用了部分梯度加和而不是所有,这样避免了梯度累加过大使得学习率为0而导致训练提前结束。

  3. RMSProp法

    AdaGrad算法在迭代后期由于学习率过小,可能较难找到一个有用的解。为了解决这一问题,RMSprop算法对Adagrad算法做了修改,使用指数衰减只保留过去给定窗口大小的梯度,使其能够在找到凸碗状结构后快速收敛。RMSProp法可以视为Adadelta法的一个特例

    RMSProp法缺陷在于依然使用了全局学习率,需要根据实际情况来设定。可以看出分母不再是一味的增加,它会重点考虑距离它较近的梯度(指数衰减的效果)。优点是只用了部分梯度加和而不是所有,这样避免了梯度累加过大使得学习率为0而导致训练提前结束。

  4. Adam法

    Adam是Momentum和RMSProp的结合,适用于广泛的结构,是目前最常用的优化方法。Adam法本质上是带有动量项的RMSProp法,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam法主要的优点在于经过偏置校正后,每一次迭代学习率都有一个确定范围,这样可以使得参数更新比较平稳。

参考 自适应学习率算法(六)、自适应学习率算法_Wanderer001的博客-CSDN博客_自适应学习率

6.正则化

正则化是为了防止过拟合, 进而增强泛化能力。用白话文转义,泛化误差(generalization error)= 测试误差(test error)。

L1正则:

α用来衡量惩罚项的重要程度;

L2正则:

 Dropout正则化:每次训练时,随机丢弃一部分神经元;

区别:

  • L2 计算起来更方便,而 L1 在特别是非稀疏向量上的计算效率就很低;
  • L1 最重要的一个特点,输出稀疏,会把不重要的特征直接置零,而 L2 则不会;
  • L2 有唯一解,而 L1 不是。
  • L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,用于特征选择。
    L2正则化可以产生参数值较小的模型,能适应不同的数据集,一定程度上防止过拟合,抗扰动能力强。
  • L1可以让一部分特征的系数缩小到0,从而间接实现特征选择。所以L1适用于特征之间有关联的情况。
    L2让所有特征的系数都缩小,但是不会减为0,它会使优化求解稳定快速。所以L2适用于特征之间没有关联的情况。

7.Bagging boosting区别

Bagging
Bagging直译为“增强聚合”。它的方式是训练几个分类器,然后让这几个分类器的输出当做分类投票,选择票数最多的那个输出作为最后的输出,如果是回归的话就取平均。Dropout也可以算是一种Bagging学习。代表算法是随机森林。
Bagging的特点:

对每个分类器,输入数据都是从原始训练数据中可重复的采样, 每个分类器的输入服从相同的分布,且各输入之间相互独立。而Boost中,各训练数据的分布不独立,每个分类器的输入样本之间也不独立。
各分类器可以采用相同算法,不同的超参数;也可采用不同算法; Boost基本采用相同的算法。
每个分类器的输出没有权重之分,都是平等的。

 

Boosting
boost通常会改变训练数据的概率分布,针对不同的训练数据分布调用弱学习算法学习一组弱分类器。在多次迭代的过程中,当前次迭代所用的训练数据的概率分布会依据上一次迭代的结果而调整。也就是说训练数据的各样本是有权重的,这个权重本身也会随着迭代而调整。不同分布的训练数据进入不同学习法则后,得到的各基本分类器通常经过线性组合,形成强分类器。例如,像Adaboost和xgboost,最后的强分类器都是弱分类器的加性组合。代表算法是Adaboost、GBDT、xgboost。

Boosting算法的可优化点有两点:训练数据集的分布、各基本分类器在线性组合中的权重w_m

对于训练数据集的分布,通常,被上一次分类错误的样本的权重会被调大,被正确分类的会被调小。
基本分类器的误差越大,其权重越小,反之越大。

 

Bagging与Boosting的区别总结:
Bagging的训练集的选择是随机的,各轮训练集之间相互独立,而Boostlng的训练集的选择是独立的,各轮训练集的选择与前面各轮的学习结果有关;
Bagging的各个预测函数可以并行生成,而Boosting的各个预测函数只能顺序生成。对于象神经网络这样极为耗时的学习方法。Bagging可通过并行训练节省大量时间开销。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/508488
推荐阅读
相关标签
  

闽ICP备14008679号