神经网络优化算法

提高神经网络训练速率的方式:

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值