优化算法:
优化算法可以帮助快速训练模型
mini batch 梯度下降:batch_size=1000,进行一次参数更新,5000次更新,1000*5000个训练样本
[]神经网络层数,{t}第t个mini batch,(i)第i个样本
1 epoch,遍历一次训练集
一般需要多次遍历训练集;
batch gradient descent 每次cost都下降,Mini-batch不一定,如下图
batch size=1 stochastic GD; batch size =m Batch GD
SGD没有利用向量化,慢,BGD每次迭代太长
训练集小:BGD m<2000
batch size=64,128,256,512,, 2的次方,代码运行快一些
X{t},Y{t}要满足CPU,GPU内存
指数加权平均:
移动(局部)平均值:
有延迟,但更平缓:指数加权移动平均值:1/(1-beta)个数据的平均
相对于直接求1/(1-beta)个数据的平均,占用更少的内存
偏差修正:让平均更准确
只需在初始时刻进行偏差修正。否则初始的平均是有偏的,一般1/(1-beta)之后就好了
Momentum梯度下降法:运行速度快于标准的梯度下降法:需要设置beta参数
计算梯度的指数加权平均,并利用该梯度更新权重
正常如图梯度,不能设置过大学习率,否则摆动过大,可能得不到正确的值,所以只能很小的学习率,收敛很慢;
与之前的梯度进行了一个平均,让梯度变化更平滑,如红色线,平均后,纵轴方向变化小了
另一种写法如右图紫色所示,相当于整体乘了(1-beta),调整beta还要对应调整学习率
RMSprop:可以用更大的学习率了
梯度大的处以一个大的值,小的除以小的值,注意要注意不能除0(+E)
和momentum一样,可以消除梯度下降时的摆动:参数beta_2,加快算法
Adam算法:适用于更多的结构,三个参数,beta(0.9)和beta2(0.999)很少调整,还有学习率alpha
E = 10e-8(一般不调整)
把momentum和RMSprop结合了
学习率衰减:decay rate 超参数
数据中有噪音,步伐越来越小
局部最优:神经网络(高维度空间)中梯度0的点通常时鞍点