您的位置:首页 > 运维架构

弹性反向传播(RProp)和均方根反向传播(RMSProp)

2017-11-23 21:59 253 查看
都是一种权值更新算法,类似于SGD算法,其中,RMSProp是RProp算法的改良版。

RProp算法

首先为各权重变化赋一个初始值,设定权重变化加速因子与减速因子。

在网络前馈迭代中当连续误差梯度符号不变时,采用加速策略,加快训练速度;当连续误差梯度符号变化时,采用减速策略,以期稳定收敛。

网络结合当前误差梯度符号与变化步长实现BP,同时,为了避免网络学习发生振荡或下溢,算法要求设定权重变化的上下限。

不同权值参数的梯度的数量级可能相差很大,因此很难找到一个全局的学习步长。

靠参数梯度的符号,动态的调节学习步长

适用于full-batch learning,不适用于mini-batch learning

缺点:不能应用于mini-batch learning中。

原因:

假设有一个在线学习系统,batch==1,初始的学习步长较小,在其上应用prop算法。这里有十组训练数据,前九组都使得梯度符号与之前的梯度符号相同,那么学习步长就会增加九次;而第十次得来的梯度符号与之前的相反,那么学习步长就会减小一次。这样一个过程下来,学习步长会增长很多(增大了9次学习步长,只减小了一次学习步长),如果系统的训练数据集非常之大,那学习步长可能频繁的来回波动,这样肯定是不利于学习的。


改进版,rmsprop算法:

rmsprop算法不再孤立地更新学习步长,而是联系之前的每一次梯度变化情况,具体如下。

rmsprop算法给每一个权值一个变量MeanSquare(w,t)用来记录第t次更新步长时前t次的梯度平方的平均值。

然后再用第t次的梯度除上前t次的梯度的平方的平均值,得到学习步长的更新比例。

根据此比例去得到新的学习步长。如果当前得到的梯度为负,那学习步长就会减小一点点;如果当前得到的梯度为正,那学习步长就会增大一点点。

这样看来,rmsprop算法步长的更新更加缓和。

这些算法并不能完全解决局部最小值问题,只是使得参数收敛的速度更快。针对是否能收敛到全局最优解,还与模型的初始化有关。



为了得到所需的全局优化算法。两种流行的全局优化算法是粒子群优化算法(PSO)和遗传算法(GA)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: