rmsprop演算法全稱root mean square prop演算法。
從前面的例子可以知道,當我們利用梯度下降法的時候,雖然橫軸也在前進,但縱軸擺動太大。假設縱軸是b橫軸是w,假如我們想減弱b的幅度,加快或者不減少w的前進,rmsprop演算法就可以起到這個作用。
其執行過程是這樣的:
那麼該演算法是怎麼起作用的呢?對於b方向,我們想減少b的擺動。所以對於sd
w sdw
,sdb sdb
,我們希望sd
w sdw
較小,這樣在w:=
w−αd
ws√d
w w:=w
−αdw
sdw除數就會較小,那麼更新的就會大一些,同樣sd
b sdb
較大,這樣在b:=
b−αd
bs√d
b b:=b
−αdb
sdb除數就會較大,那麼更新的就會小一些,減少了縱軸的擺動。
所以,rmsprop和momentum演算法有相似的一點是都可以消除下降過程中的擺動。
w和b只是為了方便展示才使用的,實際上對於高維度w來說,可能縱軸是w1,w3..而橫軸是w2,w4等。在深度學習的歷史上,包括許多志明研究者在內提出了優化演算法,並很好的解決了一些問題。但隨後這些優化演算法被指出並不能一般化,不能適用於多種神經網路。時間久了,深度學習圈子裡的人開始多少有些質疑全新的演算法。很多人覺得動量下降演算法很好用,很難找到更優化的演算法了。所以rmsprop和adam演算法是少有的經受人們質疑的2種演算法,已被證實可以適用不同的深度學習結構。這個演算法中的
β β
和動量梯度下降法的不是同乙個。
為了防止sd
w sdw
接近為0,一般會在sd
w sdw
加上乙個很小的
ϵ ϵ
,比如說10−
8 10−8
。這只是為了保證數值能穩定一些。
adam演算法基本上是將momentum和rmsprop結合在一起。
adam,讀作/艾德穆,不是額呆穆/(音標不會打)演算法是非常常用的演算法,其全稱是adaptive moment estimation。β1
β
1用來計算微分dw
d
w,叫做第一矩(first moment),β2
β
2用來計算平方數的指數加權平均數,叫做第二矩(second moment),所以adam的名字由此而來。
演算法 演算法優化
傳統最優化方法的設計思想主要是通過傳統的序列計算實現的,無法與硬體的並行架構完美相容,這降低了傳統最優化方法在具有大資料背 計算為核心的分布式優化應運而生,這也使得最優化方法得到了比以往任何時候都更加廣泛的應用。平行計算要首先把乙個問題分解成若干個可以同時計算的子問題 部分 並將每個子問題進一步細分...
python優化演算法 python 優化演算法
設k k,n 是從金鑰k開始的長度為n的唯一數的個數.然後,k k,n 1 sum k i,n 其中i在可以從鍵k跳轉到的鍵的範圍內.這可以使用動態程式設計有效地計算 這是一種占用o n 時間和o 1 空間的方法 jumpmap map int,x for x in 46,68,79,48,039,...
演算法 AES演算法優化
演算法優化主要就是在矩陣相乘中,優化的方式也很簡單,就是空間換時間。aes演算法的矩陣是有特點的,矩陣如下 02 03 01 01 01 02 03 01 01 01 02 03 03 01 01 02 每一豎行都是02 01 01 03 組成。分析矩陣相乘 02 03 01 01 a1 02 a1...