Adam 優化算法詳解

2020-12-14 deephub

據牛津字典的定義,優化是指最好或最有效地利用一種情況或資源,或者簡單地使自己的事物達到最佳狀態的行為。 通常,如果可以對某事進行數學建模,則很有可能可以對其進行優化。 這在深度學習領域起著至關重要的作用(可能是整個人工智慧),因為您選擇的優化算法可能是在數分鐘,數小時或數天(有時甚至是數周)內獲得高質量結果的區別。

在這篇文章中,我們將闡述:

什麼是Adam Optimizer?在深度學習模型中使用Adam進行優化有什麼好處?Adam如何工作?什麼是Adam Optimizer?

什麼是Adam Optimizer是對SGD的擴展,可以代替經典的隨機梯度下降法來更有效地更新網絡權重。

請注意,Adam這個名字並不是首字母縮寫詞,實際上,作者(OpenAI的Diederik P. Kingma和多倫多大學的Jimmy Lei Ba)在論文中指出,該論文首次在ICLR 2015上作為會議論文發表,標題為Adam: A method for Stochastic Optimization, that the name is derived from adaptive moment estimation.。

作者毫不猶豫地列出了將Adam應用於非凸優化問題的許多迷人好處,我將繼續分享以下內容:

簡單地實現(我們將在本文的稍後部分中實現Adam,並且您將直接看到如何利用強大的深度學習框架以更少的代碼行使實現變得更加簡單。)

計算效率高很少的內存需求梯度的對角線重縮放不變(這意味著亞當將梯度乘以僅帶正因子的對角矩陣是不變的,以便更好地理解此堆棧交換)非常適合數據和/或參數較大的問題適用於非固定目標適用於非常嘈雜和/或稀疏梯度的問題超參數具有直觀的解釋,通常需要很少的調整(我們將在配置部分中對此進行詳細介紹)Adam是如何工作的

簡而言之,Adam使用動量和自適應學習率來加快收斂速度。

Momentum (動量)

在解釋動量時,研究人員和從業人員都喜歡使用比球滾下山坡而向局部極小值更快滾動的類比法,但從本質上講,我們必須知道的是,動量算法在相關方向上加速了隨機梯度下降,如 以及抑制振蕩。

為了將動量引入我們的神經網絡,我們將時間元素添加到過去時間步長的更新向量中,並將其添加到當前更新向量中。 這樣可以使球的動量增加一定程度。 可以用數學表示,如下圖所示。

動量更新方法,其中θ是網絡的參數,即權重,偏差或激活值,η是學習率,J是我們要優化的目標函數,γ是常數項,也稱為動量。 Vt-1(注意t-1是下標)是過去的時間步長,而Vt(注意t是下標)是當前的時間步長。

動量項γ通常被初始化為0.9或類似於Sebastian Ruder的論文《An overview of gradient descent optimization algorithm》中提到的項。

適應性學習率

通過將學習率降低到我們在AdaGrad,RMSprop,Adam和AdaDelta中看到的預定義時間表(schedule),可以將自適應學習率視為訓練階段的學習率調整。這也稱為學習率時間表 有關該主題的更多詳細信息,Suki Lau撰寫了一篇有關該主題的非常有用的博客文章,稱為「 Learning Rate Schedules and Adaptive Learning Rate Methods for Deep Learning.」。

在不花太多時間介紹AdaGrad優化算法的情況下,這裡將解釋RMSprop及其在AdaGrad上的改進以及如何隨時間改變學習率。

RMSprop(即均方根傳播)是由Geoff Hinton開發的,如《An Overview of Gradient Descent Optimization Algorithms》所述,其目的是解決AdaGrad的學習率急劇下降的問題。 簡而言之,RMSprop更改學習速率的速度比AdaGrad慢,但是RMSprop仍可從AdaGrad(更快的收斂速度)中受益-數學表達式請參見下圖

E [g] t的第一個方程是平方梯度的指數衰減平均值。 Geoff Hinton建議將γ設置為0.9,而學習率η的默認值為0.001

這可以使學習率隨著時間的流逝而適應,這很重要,因為這種現象也存在於Adam中。 當我們將兩者(Momentum 和RMSprop)放在一起時,我們得到了Adam —下圖顯示了詳細的算法。

如果你聽過吳恩達老師的深度學習課程,吳恩達老師說過「Adam可以理解為加了Momentum 的 RMSprop」 ,上圖的公式就是吳恩達老師這句話的由來。

參考資料

Kingma, D and Ba, J . (2015) Adam: A method for Stochastic Optimization.Ruder, S. (2017) An overview of gradient descent optimization algorithms.Duchi, J et al. (2011) Adaptive Subgradient Methods for Online Learning and Stochastic Optimization.

相關焦點

  • 資料|MATLAB優化算法案例分析與應用(進階篇)
    from=leiphonecolumn_res0817內容簡介 · · · · · ·《MATLAB優化算法案例分析與應用(進階篇)》是深受廣大讀者歡迎的《MATLAB優化算法案例分析與應用》一書的姊妹篇,即進階篇。本書全面、系統、深入地介紹了MATLAB算法及案例應用。
  • 運籌學算法優化在航空公司的應用研究
    國外先進的航空公司,依託IT技術,引入運籌學模型,通過算法優化,求出最優解,使航空公司業務「運營齒輪」達到順暢運轉最優狀態。運籌學的算法優化理論,其主要目的是在決策時為管理人員提供科學依據,實現有效管理、正確決策和現代化管理。基於運籌學原理的算法優化分析,可以指導航空公司,在現有機隊、機組、航線、航權等約束資源條件下,安排出對航空公司收益最大化的解決方案。
  • 利用遺傳算法優化GANs
    遺傳算法是根據大自然中生物體進化規律而設計提出的,是根據大自然中生物體進化規律而設計提出的。是模擬達爾文生物進化論的自然選擇和遺傳學機理的生物進化過程的計算模型,是一種通過模擬自然進化過程搜索最優解的方法。在本片文章中,我們嘗試使用遺傳算法來對訓練GANs進行優化,我們的訓練模型是生成手寫數字。
  • 二階梯度優化新崛起,超越 Adam,Transformer 只需一半迭代量
    然而在谷歌大腦與普林斯頓大學等研究者的努力下,二階梯度優化終於在實戰大模型上展現出獨特的優勢。研究者表示,為了縮短理論和實際優化效果之間的差距,該論文提出了一種二階優化的概念性驗證,並通過一系列重要的算法與數值計算提升,證明它在實際深度模型中能有非常大的提升。
  • 真實訓練中Adam無法收斂到最佳位置?改進版 AdaX來拯救!
    ,之後也出現了許多優秀的算法,如AdaShift[2], NosAdam [3], AdaBound [4],以及最新的Radam [5],但是大多數算法都還難以在泛化性能上與SGD+Momentun打成平手。
  • 構建GNN 的「統一場」:從與 WL 算法、組合優化算法的聯繫看 GNN...
    在第 3 章中,我們介紹了 GNN 和 WL 算法之間的聯繫。在第 4 章中,我們根據 GNN 與分布式局部算法的聯繫,介紹了 GNN 可以/不可以求解的組合優化問題。在第 5 章中,我們將 GNN、WL 算法,以及分布式局部算法之間的關係總結為「XS 一致性」(XS correspondence)。
  • 「馬欄山杯」算法大賽專訪|Mangogogo:畫質優化的模型裡,藏著他們...
    首屆「馬欄山杯」國際音視頻算法優化大賽頒獎盛典暨高峰論壇即將於9月8日舉行,這場由中國工業與應用數學學會、中國網絡社會組織聯合會作為指導單位,湖南省網際網路信息辦公室、湖南省科學技術協會主辦,中國(長沙)馬欄山視頻文創產業園、芒果TV承辦的算法盛事,雲集了全球優秀的算法精英,在頒獎前夕,我們特邀本次大賽獲獎的各大賽道冠軍做了一系列專訪
  • 引入Powerball 與動量技術,新SGD優化算法收斂速度與泛化效果雙...
    與目前的主流思路(自適應學習率或者動量法)不同,該論文作者在之前的工作[1]中,通過利用ODE的有限時間穩定性的直觀表達,提出了一種新的加速算法收斂的方法。這類稱為Powerball的方法,是通過簡單的將冪係數 γ∈[0,1)添加到各類基於梯度的優化方法中的梯度上得到的。
  • 集成聚類系列(三)圖聚類算法詳解
    圖聚類算法研究現狀聚類分析是一種常用的機器學習技術,它的目的是將一個數據點劃分為幾個類。同一個類的數據之間具有較高的相似性,不同的類之間的相似度較低。很多研究已表明圖聚類是一種極具競爭力的聚類算法,圖聚類是一種基於圖劃分理論的算法。與其他聚類算法相比,圖聚類算法有些明顯的優勢。該方法可識別任意形狀的聚類,使其在現實生活中得到廣泛的應用。
  • 機器學習——詳解經典聚類算法Kmeans
    我們知道可以通過KNN算法由距離公式找到最近的K個鄰居,通過鄰居的結果來推測當前的結果。今天我們要來看的算法同樣非常直觀,也是最經典的聚類算法之一,它就是Kmeans。我們都知道,在英文當中Means是平均的意思,所以也有將它翻譯成K-均值算法的。
  • SEO算法:巴郎深談石榴算法與算法對策
    答:星火計劃扶持原創(要求站長們要給高質量的內容)綠蘿算法打擊外鏈(走正道,別玩旁門左道)石榴算法針對站內SEO優化(別只想著搞錢,凡事要適度)每一步新計劃都是有戰略意義的。百度重在提升用戶體驗,已經到了非要整頓垃圾信息,提升用戶體驗的時候了。
  • 向日葵遠程控制企業版客戶端更新升級,優化遠控UI適配SADDC內核算法
    向日葵遠程控制企業版客戶端更新升級,優化遠控UI適配SADDC內核算法 2021年01月08日 11:40作者:黃頁編輯:黃頁 近日,國產遠程控制品牌向日葵
  • 拒絕遺忘:高效的動態規划算法
    詳解動態規劃現在讓我們更詳細地介紹動態規劃。簡而言之,我們可以說動態規劃主要用來解決一些希望找到問題最優解的優化問題。一種可以用動態規劃解決的情況就是會有反覆出現的子問題,然後這些子問題還會包含更小的子問題。相比於不斷嘗試去解決這些反覆出現的子問題,動態規劃會嘗試一次解決更小的子問題。
  • 憑藉技術打破傳統便利店頂層模式 便利蜂用算法優化運營
    2020環球趨勢大會圍繞「優化營商環境」和「ESG發展」兩大主題舉辦兩場高峰論壇,50餘位發言嘉賓圍繞中國地方政府、企業、投資者如何應對國際格局變化,把握時代發展趨勢,做好「十四五」開局,聚焦自身發展發表了精彩演講。 作為趨勢大會的重要活動,「2020環球趨勢優秀案例推薦」活動同步開展。
  • 搜狗翻譯推出 AI 寫作助手 提供8種經AI算法優化後語句潤色升級方式
    根據搜狗翻譯現已推出了一款AI寫作助手,官方稱通過藉助先進的人工智慧算法對英文作文進行實時語法和拼寫糾錯,並提供專業的語句潤色優化建議。             據介紹,搜狗翻譯App的「作文批改」功能,AI寫作助手便可針對用戶輸入的作文內容,指出寫作中基礎的語法或拼寫等錯誤,提供8種經AI算法優化後的語句潤色升級方式。
  • 技術乾貨|集成學習算法(Ensemble Method)淺析
    可以說是集百家之所長,能在機器學習算法中擁有較高的準確率,不足之處就是模型的訓練過程可能比較複雜,效率不是很高。目前常見的集成學習算法主要有2種:基於Bagging的算法和基於Boosting的算法,基於Bagging的代表算法有隨機森林,而基於Boosting的代表算法則有Adaboost、GBDT、XGBOOST等。
  • 程式設計師必備的幾種常見排序算法和搜索算法總結
    本文轉載自【微信公眾號:趣談前端,ID:beautifulFront】經微信公眾號授權轉載,如需轉載與原文作者聯繫前言最近為了鞏固一下自己的算法基礎,又把算法書裡的基本算法刷了一遍, 特地總結一下前端工程師需要了解的排序算法和搜索算法知識,雖然還有很多高深算法需要了解
  • 案例實踐丨最優化算法的前世今生
    近期,大巖資本黃鉑博士結合生活實踐中的案例,深入淺出闡釋了最優化算法的前世今生。從實際生活中最基礎的應用切入,黃鉑將抽象的算法概念生動化,解釋了什麼叫最優化問題、凸優化及算法分類、機器學習與人工智慧應用。
  • 《毀滅戰士永恆》畫質怎麼優化 畫質優化方法
    導 讀 毀滅戰士永恆畫質優化是很家想解決的問題,這一代抗鋸齒設定還是默認的無法關閉。
  • 漫畫:什麼是KMP算法?
    ,利用哈希值進行比較的RK算法,以及儘量減少比較次數的BM算法,沒看過的小夥伴可以點擊下方連結:1.BF算法和RK算法2. BM算法如果沒時間細看也沒關係,就讓我帶著大家簡單梳理一下。首先,給定 「主串」 和 「模式串」 如下:BF算法是如何工作的?