Deep Learning 之 最優化方法

2021-08-20 12:01:35 字數 2186 閱讀 1353

寫在前面本文主要是對deep learning一書最優化方法的總結,具體詳細的演算法,另起博文展開。

deep learning 之 最優化方法

deep learning 最優化方法之sgd

deep learning 最優化方法之momentum(動量)

deep learning 最優化方法之nesterov(牛頓動量)

deep learning 最優化方法之adagrad

deep learning 最優化方法之rmsprop

deep learning 最優化方法之adam

深度學習中,經常需要用到優化方法,來尋找使得損失函式最小的最優解。

1.選擇哪種優化演算法並沒有達成共識

2.具有自適應學習率(以rmsprop 和adadelta 為代表)的演算法族表現得相當魯棒,不分伯仲,但沒有哪個演算法能脫穎而出。

3.對於當前流行的優化演算法包括括sgd、具動量的sgd、rmsprop、具動量的rmsprop、adadelta 和adam而言,選擇哪乙個演算法似乎主要取決於使用者對演算法的熟悉程度(以便調節超引數)

4.基本不用二階近似優化演算法

在這裡將這些優化方法分為三類,詳見對應的blog:

sgd實際就是min-batch的實現,為最基礎的優化演算法,當今大部分優化演算法都是以sgd為基礎實現的。詳見deep learning 最優化方法之sgd

momentum引入了動量v,以指數衰減的形式累計歷史梯度,以此來解決hessian矩陣病態問題

詳見deep learning 最優化方法之momentum(動量)

nesterov是對momentum的變種。與momentum不同的是,nesterov先更新引數,再計算梯度

詳見deep learning 最優化方法之nesterov(牛頓動量)

這類演算法最大的特點就是,每個引數有不同的學習率,在整個學習過程中自動適應這些學習率。

學習率逐引數的除以歷史梯度平方和的平方根,使得每個引數的學習率不同

詳見deep learning 最優化方法之adagrad

adagrad演算法的改進。

歷史梯度平方和—>指數衰減的移動平均,以此丟棄遙遠的過去歷史。

詳見deep learning 最優化方法之rmsprop

adam演算法可以看做是修正後的momentum+rmsprop演算法

詳見deep learning 最優化方法之adam

二階近似作為早期處理神經網路的方法,在此並不另起blog展開細講。

牛頓法是基於二階泰勒級數展開在某點附近來近似損失函式的優化方法。主要需要求得hessian矩陣的逆。如果引數個數是k,則計算你所需的時間是o(k^3)由於在神經網路中引數個數往往是巨大的,因此牛頓法計算法消耗時間巨大。

具體更新公式如下:

共軛梯度(cg)是通過迭代下降的共軛方向(conjugate directions)以有效避免hessian 矩陣求逆計算的方法。
broyden-fletcher

-goldfarb

-shanno(bfgs)演算法具有牛頓法的一些優點,但沒有牛頓法的計算負擔。在這方面,bfgs和cg 很像。然而,bfgs使用了乙個更直接的方法近似牛頓更新。用矩陣mt 近似逆,迭代地低秩更新精度以更好地近似hessian的逆。

儲存受限的bfgs(l-bfgs)通過避免儲存完整的hessian 逆的近似矩陣m,使得bfgs演算法的儲存代價顯著降低。l-bfgs演算法使用和bfgs演算法相同的方法計算m的近似,但起始假設是m^(t-

1) 是單位矩陣,而不是一步一步都要儲存近似。

Deep Learning 最優化方法之Adam

本文是deep learning 之 最優化方法系列文章的adam方法。主要參考deep learning 一書。deep learning 之 最優化方法 deep learning 最優化方法之sgd deep learning 最優化方法之momentum 動量 deep learning 最...

Deep Learning 最優化方法之Adam

原 2017年05月21日 23 06 52 bvl10101111 標籤 深度學習 優化 收起 個人分類 dl 本文是deep learning 之 最優化方法系列文章的adam方法。主要參考deep learning 一書。deep learning 之 最優化方法 deep learning ...

動態規劃之最優矩陣連乘

最優矩陣連乘 問題描述 乙個n m矩陣由n行m列共n m個數排列而成。兩個矩陣a和b可以相乘當且僅當a的列數等於b的行數。乙個n m的矩陣乘以乙個m p的矩陣等於乙個n p的矩陣,運算量為nmp。矩陣乘法滿足結合律,a b c可以表示成 a b c或者是a b c 兩者的運算量卻不同。例如當a 2 ...