您的位置:首页 > 理论基础 > 计算机网络

神经网络优化算法

2017-09-05 14:56 309 查看
提高神经网络训练速率的方式:

1. 采用Mini-batch的方式,不要等到把所有的数据都遍历一遍才更新权重,采用batch的方式的缺点是收敛过程会有震荡的现象的出现,这样有时候就不得不采用比较小的learning rate来使结果收敛到比较好的结果



为了消除Mini-batch的震荡现象,可以采用以下

2. 动量梯度下降法:合成之前的方向



3. RMSprop:在梯度变化大的地方降低更新数据的速度,在梯度变化小的地方增加梯度变化的速度,以上图为例:在水平方向上梯度较小,因此采用比较大的更新权重



4. Adam优化算法:Adam = 动量下降 + RMSprop



2,3,4都是对Mini-batch有震荡的优化算法,一方面可以消除震荡更快的收敛,另一方面因为震荡小了可以采用更大的learning rate,也可以加速算法

5. learning rate decay:随着算法的运算缓慢减小learning rate,一方面震动幅度减小了,一定程度上可以加速收敛,另外一方面可以收敛到更接近optimal的值

6. 其实在比较深的神经网络中local optimal并不是问题,因为变量的维度高,同时在某一点都是最低点的概率很低,通常都是写saddle point(鞍点)

在deep learning里面真正的问题是plateaus(梯度长时间为0)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: