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


    from http://blog.csdn.net/tsq292978891/article/details/78619384

    都是一种权值更新算法,类似于SGD算法,其中,RMSProp是RProp算法的改良版。

    RProp算法

    1. 首先为各权重变化赋一个初始值,设定权重变化加速因子与减速因子。
    2. 在网络前馈迭代中当连续误差梯度符号不变时,采用加速策略,加快训练速度;当连续误差梯度符号变化时,采用减速策略,以期稳定收敛。
    3. 网络结合当前误差梯度符号与变化步长实现BP,同时,为了避免网络学习发生振荡或下溢,算法要求设定权重变化的上下限。

    不同权值参数的梯度的数量级可能相差很大,因此很难找到一个全局的学习步长。 
    靠参数梯度的符号,动态的调节学习步长 
    适用于full-batch learning,不适用于mini-batch learning

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

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

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

    1. rmsprop算法给每一个权值一个变量MeanSquare(w,t)用来记录第t次更新步长时前t次的梯度平方的平均值。
    2. 然后再用第t次的梯度除上前t次的梯度的平方的平均值,得到学习步长的更新比例。
    3. 根据此比例去得到新的学习步长。如果当前得到的梯度为负,那学习步长就会减小一点点;如果当前得到的梯度为正,那学习步长就会增大一点点。

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

    这里写图片描述 
    为了得到所需的全局优化算法。两种流行的全局优化算法是粒子群优化算法(PSO)和遗传算法(GA)。

  • 相关阅读:
    LeetCode 382. Linked List Random Node
    LeetCode 398. Random Pick Index
    LeetCode 1002. Find Common Characters
    LeetCode 498. Diagonal Traverse
    LeetCode 825. Friends Of Appropriate Ages
    LeetCode 824. Goat Latin
    LeetCode 896. Monotonic Array
    LeetCode 987. Vertical Order Traversal of a Binary Tree
    LeetCode 689. Maximum Sum of 3 Non-Overlapping Subarrays
    LeetCode 636. Exclusive Time of Functions
  • 原文地址:https://www.cnblogs.com/mdumpling/p/8046619.html
Copyright © 2020-2023  润新知