from http://blog.csdn.net/tsq292978891/article/details/78619384
都是一種權值更新算法,類似於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)。
