美文网首页
Day 4: 优化算法

Day 4: 优化算法

作者: andyjkt | 来源:发表于2019-11-17 11:16 被阅读0次

1.Gradient Decent

把所有的训练样本丢进去训练一次之后,把W和b更新一次,然后重复这个过程,具体重复多少次就看我们的“迭代次数”是多少。

“把所有训练样本过一遍”为一个epoch

2. Mini-batch GD

我们训练的时候,跑完一个mini-batch就把W和b更新一次,这样的的话,在一个epoch中,我们就已经把参数更新了多次了!虽然每一步没有batch GD的一步走的准,但是我多步加起来,怎么样也比你走一步的效果好的多,因此可以加快训练速度,更快到达最值点。

对于不同的mini-batch的大小(size),也有不一样的效果:

size=样本数 —> Batch GD

size=1 —> Stochastic GD(随机梯度下降)

size=1的时候,会有两个问题:

1)震动太剧烈,误差会灰常大,可能根本无法到达最低点

2)每次只计算一个样本,就失去了我们前面提到的“Vectorization(矢量化)”的优势,因此计算效率反而不高

mini-batch size通常取2的指数,主要是16,32,64,128,256,512,1024这几个值,因为计算机是二进制,这样的数字计算起来效率会更高一些

3. Momentum 动量法

使用mini-batch之后,稳定性降低了,在梯度下降的时候会有较为剧烈的振动,这样可能导致在最低点附近瞎晃悠,因此效果会受影响。

参数更新过程

一般的梯度下降的更新过程(以W为例)是:W = W -α*dW。

动量法相当于多了一个V_dW,它考虑了前面若干个dW,(实际上,V_dW约等于前1/(1-β)个dW的平均值,数学上称为“指数加权平均”)这样,dW的方向就会受到前面若干个dW的冲击,于是整体就变得更平缓。

momentum更新示意图

mini-batch是上下起伏不定的箭头,但是把若干个的方向平均一下,就变得平缓多了,相当于抵消掉了很多的方向相反的误差

超参数β一般取0.9

4. Adam算法

momentum再进一步改进,结合了RMSprop算法(是另一种减小梯度下降振动的方法),更新过程如下:

Adam更新公式

learning-rate太小以及数据集比较简单的情况下momentum发挥不了太大的作用

Adam算法中的超参数β1和β2以及learning-rate也会显著影响模型,因此需要我们反复调试

一般β1=0.9和β2=0.999


参考文献

相关文章

  • Day 4: 优化算法

    1.Gradient Decent 把所有的训练样本丢进去训练一次之后,把W和b更新一次,然后重复这个过程,具体重...

  • 玩转算法面试(一)

    1算法面试意义 2 3 4 优化算法

  • 优化方法总结

    优化算法框架 神经网络模型中有多种优化算法,优化算法的作用用来优化更新参数。对于优化算法而言,主要的框架如下。参数...

  • MySQL--基础优化--及索引执行计划-Day6

    MySQL--基础优化--及索引执行计划-Day6 一、上节回顾: 1、作用 优化查询,类似于书中的目录 2、算法...

  • 优化器

    优化器(optim) 优化算法模块(torch.optim) torch.optim 实现了丰富的优化算法,包括S...

  • 1.初识Tensorflow 数字识别MNIST

    整体流程:1.定义算法公式2.定义loss 选定优化器,并制定优化器优化loss3.迭代数据进行训练4.在测试集或...

  • 局部搜索算法简介

    局部搜索算法 目录: 1、数学定义 2、过程描述 3、算法简介 4、总结 1、数学定义 局部搜索是解决最优化问题的...

  • Logistic回归与最大熵模型-优化算法

    Logistic回归与最大熵模型-理论推导中提到了4个优化算法:分别是: 梯度下降算法 拟牛顿法(牛顿法) 通用迭...

  • 8. 优化案例

    1. 十大经典算法及其优化2.几种常见的优化算法3. 经验之谈:优化算法两句话精炼总结

  • 冒泡算法

    一、常用冒泡算法 二、优化冒泡算法

网友评论

      本文标题:Day 4: 优化算法

      本文链接:https://www.haomeiwen.com/subject/oxquictx.html