深度學習中的優化演算法 NAdam 和 Nesterov Adam 有區別麼 區別在哪?

時間 2021-06-01 04:18:05

1樓:溪亭日暮

Ruder, S. (2016). An overview of gradient descent optimization algorithms.

arXiv preprint arXiv:1609.04747.

Dozat, T. (2016). Incorporating nesterov momentum into adam.

在介紹NAdam之前,我們梳理一下Adam的演算法形成過程。

Adam演算法是傳統的momentum和RMSProp的結合。

基本的梯度下降方法:利用演算法一的更新規則。

傳統的momentum演算法:積累之前的動量來替代原本的梯度,解決SGD的搖擺問題。

基於L2正則項的方法:具有自適應學習率的方法。

a. AdaGrad演算法:其對於低頻特徵的引數選擇更大的更新量,對於高頻特徵的引數選擇更小的更新量。

b. RMSProp演算法:對AdaGrad的改進

將傳統的momentum和RMSProp結合,便得到了Adam演算法:

為什麼要介紹Adam的形成過程呢?是因為NAdam其實和他的形成過程類似

NAdam是 Nesterov accelerated gradient (NAG)和Adam的結合。我們先分別看看兩者是什麼:

Nesterov accelerated gradient (NAG):是一種 Momentum 演算法的變種,其核心思想會利用 「下一步的梯度」 確定 「這一步的梯度」,當然這裡 「下一步的梯度」 並非真正的下一步的梯度,而是指僅根據動量項更新後位置的梯度。

在上述的公式中,mt-1被應用了兩次:一次是計算梯度gt,一次是計算θt+1。

然後我們應用乙個look-ahead momentum vector來重新表示以上過程。值得注意的是,這個表示僅僅是為了計算的簡潔性,並沒有提出猜想的別的意思喔。和傳統動量演算法

相比較可以看出,其實質就是把mt-1換成了look ahead mt。

接下來,我們將Nesterov momentum加入到Adam當中,即利用當前的Nesterov動量向量來代替Adam中的傳統動量向量。

首先,Adam演算法的更新規則如下,注意,此處的vt,是Algorithm 6中的nt,β1是Algorithm6中的μ,並且在結合Nesterov和Adam的過程中,不需要修改nt

將上式展開可得:

因為:僅僅是動量向量的偏差修正項,因為上式可以轉化為:

這個方程看起來非常類似於傳統的動量演算法的展開項

。我們現在可以同之前的操作一樣新增Nesterov動量,用當前動量向量的偏置校正估計

梳理了一遍NAdam的形成過程之後,我們發現其實這個演算法主要就是將Nesterov動量來替換原來的Adam中的傳統動量,中間形式的轉化只是為了計算和表示的簡潔性。畢竟NAdam更重要的是方法思想上的結合,中間的這個轉化操作其實無傷大雅,不會對他們造成本質上的區別了。

2樓:erin

這個主要是計算量有關吧,通常使用各種形式的梯度下降演算法主要是求導沒有閉式解,在求解的時候,展望的下一步的導數並不是可以直接求出來的,一般來說,現在使用的比較多的是批處理mini-batch,你在求解導數的時候使用的是整個batch中的所有樣本點的導數,當然往往是累加之後求均值表示。那麼在這個過程中的計算量是非常大的,畢竟現在輸入的資料量級。。。這樣來看等價之後的形式就非常必要了!

機器學習(包括但不限於深度學習)和優化演算法中有哪些 fundamental trade off?

Ning Lee 最基本的兩個 exploration exploitation trade off 探索與守成 計算複雜度 vs 模型效能 舉例來說 增強學習中的典型問題,是探索新領域還是在舊的領域裡面取最好的 多臂賭博機問題 LSTM中sample word的數量,顯然考慮更多的word能提公升...

學習優化演算法需要哪些數學基礎?

一般convex optimization課裡都會提到SGD,momentum,adam等演算法。所以我稍微偏一點點,提點convex optimization的材料。主要還是線代的東西居多,少量的概率和微積分。一學期下來感覺在幹的事情就是不斷迭代,然後考慮boundary能哪些條件下以多快的速度壓...

分布式深度學習訓練中的通訊優化有哪些主流的研究方向?

顏深根 從系統實現上來分,可以分為PS和Allreduce兩個大的方向。對精度是否有影響來分,可以分為同步通訊和非同步通訊。從通訊的內容上來分,可以分為稠密通訊和稀疏通訊。這裡面每乙個方向都會有很多可以優化的方法。比如從通訊底層,可以採用普通TCP IP協議,也可以採用RDMA。PS可以採用單個Se...