优化算法:

优化算法可以帮助快速训练模型

mini batch 梯度下降:batch_size=1000,进行一次参数更新,5000次更新,1000*5000个训练样本

[]神经网络层数,{t}第t个mini batch,(i)第i个样本

1 epoch,遍历一次训练集

深度学习--超参调试-正则化及优化2

一般需要多次遍历训练集;

batch gradient descent 每次cost都下降,Mini-batch不一定,如下图

深度学习--超参调试-正则化及优化2

batch size=1 stochastic GD; batch size =m Batch GD

SGD没有利用向量化,慢,BGD每次迭代太长

深度学习--超参调试-正则化及优化2

训练集小:BGD  m<2000

batch size=64,128,256,512,,   2的次方,代码运行快一些

X{t},Y{t}要满足CPU,GPU内存

指数加权平均:

移动(局部)平均值:

深度学习--超参调试-正则化及优化2

深度学习--超参调试-正则化及优化2深度学习--超参调试-正则化及优化2

有延迟,但更平缓:指数加权移动平均值:1/(1-beta)个数据的平均

相对于直接求1/(1-beta)个数据的平均,占用更少的内存

偏差修正:让平均更准确

深度学习--超参调试-正则化及优化2

只需在初始时刻进行偏差修正。否则初始的平均是有偏的,一般1/(1-beta)之后就好了

Momentum梯度下降法:运行速度快于标准的梯度下降法:需要设置beta参数

计算梯度的指数加权平均,并利用该梯度更新权重

正常如图梯度,不能设置过大学习率,否则摆动过大,可能得不到正确的值,所以只能很小的学习率,收敛很慢;

与之前的梯度进行了一个平均,让梯度变化更平滑,如红色线,平均后,纵轴方向变化小了

深度学习--超参调试-正则化及优化2深度学习--超参调试-正则化及优化2

另一种写法如右图紫色所示,相当于整体乘了(1-beta),调整beta还要对应调整学习率

RMSprop:可以用更大的学习率了

梯度大的处以一个大的值,小的除以小的值,注意要注意不能除0(+E)

深度学习--超参调试-正则化及优化2

和momentum一样,可以消除梯度下降时的摆动:参数beta_2,加快算法

Adam算法:适用于更多的结构,三个参数,beta(0.9)和beta2(0.999)很少调整,还有学习率alpha

E = 10e-8(一般不调整)

把momentum和RMSprop结合了

深度学习--超参调试-正则化及优化2

学习率衰减:decay rate 超参数

数据中有噪音,步伐越来越小

深度学习--超参调试-正则化及优化2深度学习--超参调试-正则化及优化2

局部最优:神经网络(高维度空间)中梯度0的点通常时鞍点

深度学习--超参调试-正则化及优化2深度学习--超参调试-正则化及优化2

 

相关文章: