adam優化演算法是一種對隨機梯度下降法的擴充套件,最近在計算機視覺和自然語言處理中廣泛應用於深度學習應用。在引入該演算法時,openai的diederik kingma和多倫多大學的jimmy ba在他們的2015 iclr發表了一篇名為「adam: a method for stochastic optimization」的**,列出了使用亞當在非凸優化問題上的誘人好處,如下:
adam與經典的隨機梯度下降法是不同的。隨機梯度下降保持乙個單一的學習速率(稱為alpha),用於所有的權重更新,並且在訓練過程中學習速率不會改變。每乙個網路權重(引數)都保持乙個學習速率,並隨著學習的展開而單獨地進行調整。該方法從梯度的第一次和第二次矩的預算來計算不同引數的自適應學習速率。
作者描述adam時將隨機梯度下降法兩種擴充套件的優勢結合在一起。
具體地說:
自適應梯度演算法(adagrad)維護乙個引數的學習速率,可以提高在稀疏梯度問題上的效能(例如,自然語言和計算機視覺問題)。
adam意識到adagrad和rmsprop的好處。與在rmsprop中基於平均第乙個時刻(平均值)的引數學習速率不同,adam也使用了梯度的第二個時刻的平均值(非中心方差)。
具體地說,該演算法計算了梯度和平方梯度的指數移動平均值,並且引數beta1和beta2控制了這些移動平均的衰減率。移動平均值和beta1和beta2的初始值接近1.0(推薦值),這導致了估計時間的偏差為0。這種偏差是通過第一次計算偏差估計然後再計算比可用偏差校正估計來克服的。
在原**中,通過實證證明了該方法的收斂性滿足了理論分析的期望。
在mnist的字元識別和imdb情緒分析資料集上,adam採用了邏輯回歸演算法,對mnist的資料集進行了多層感知器演算法,並在cifar-10影象識別資料集上進行了卷積神經網路。
他們的結論是:
「利用大型模型和資料集,我們證明了adam可以有效地解決實際的深度學習問題。」
在史丹福大學關於計算機視覺的深度學習課程中,andrej karpathy等人開發了一種名為「cs231n:卷積神經網路」的課程,這是一種被認為是深度學習應用的預設優化方法。
在實踐中,adam被推薦為使用的預設演算法,並且通常比rmsprop稍微好一點。然而,作為一種替代方法,sgd+nesterov momentum也值得嘗試。
此文為編譯作品,作者為jason brownlee,詳細內容參加原**
梯度優化演算法Adam
最近讀乙個 發現用了乙個梯度更新方法,剛開始還以為是什麼奇奇怪怪的梯度下降法,最後分析一下是用一階梯度及其二次冪做的梯度更新。網上搜了一下,果然就是稱為adam的梯度更新演算法,全稱是 自適應矩估計 adaptive moment estimation 國際慣例,參考博文 一文看懂各種神經網路優化演...
優化演算法 3 RMSProp演算法和Adam演算法
rmsprop演算法全稱root mean square prop演算法。從前面的例子可以知道,當我們利用梯度下降法的時候,雖然橫軸也在前進,但縱軸擺動太大。假設縱軸是b橫軸是w,假如我們想減弱b的幅度,加快或者不減少w的前進,rmsprop演算法就可以起到這個作用。其執行過程是這樣的 那麼該演算法...
adam相關的優化器
adam 自出道以來,就一直是最流行的深度學習優化器,哪怕現在其實已經有幾種可能更好用的優化器 如果將 adam 優化出現以來產生的關於優化過程的有趣想法按時間順序排列的話,結果如下 這個來自 andrej karpathy 的笑話或多或少是我深度學習專案的一套流程。除非把具有學習率硬編碼的 直接從...