深度學習常用優化方法

2021-09-20 21:11:31 字數 1831 閱讀 4100

以下方法都是總結吳恩達深度學習課程的方法。

(1)梯度下降

batch-gd(size=m):速度比較慢,但每一次都是最優方向;

隨機梯度下降(size=1):不能用向量加速,相對來說速度慢,而且最後只會在最優值附近徘徊;

mini-batch(size=16,32,64,128):速度較快,雖然也會在最優值之間徘徊,但是可以調整學習率使得到達最優值;

(2)動量梯度下降(momentum)

動量法實際是利用加權指數平均將過去的梯度考慮在內,從而使的更新過程更加平滑

演算法實現:

vdw和vdb初始化為零 ,β常用的值是0.9(上一時刻的權重)。

在我們進行動量梯度下降演算法的時候,由於使用了指數加權平均的方法。原來在縱軸方向上的上下波動,經過平均以後,接近於0,縱軸上的波動變得非常的小;但在橫軸方向上,所有的微分都指向橫軸方向,因此其平均值仍然很大。最終實現紅色線所示的梯度下降曲線。

(3)rms-prob

除了上面所說的momentum梯度下降法,rmsprop(root mean square prop)也是一種可以加快梯度下降的演算法。同樣演算法的樣例實現如下圖所示:

在如圖所示的實現中,rmsprop將微分項進行平方,然後使用平方根進行梯度更新(將曲線變得平滑),同時為了確保演算法不會除以0,平方根分母中在實際使用會加入乙個很小的值如ε=10−8。

(4)adam( adaptive moment estimation )

adam 優化演算法的基本思想就是將 momentum 和 rmsprop 結合起來形成的一種適用於不同深度學習結構(應用廣泛且有效)的優化演算法。

(5)學習率的衰減

在我們利用 mini-batch 梯度下降法來尋找cost function的最小值的時候,如果我們設定乙個固定的學習速率α,則演算法在到達最小值點附近後,由於不同batch中存在一定的雜訊,使得不會精確收斂,而一直會在乙個最小值點較大的範圍內波動,如下圖中藍色線所示。

但是如果我們使用學習率衰減,逐漸減小學習速率α,在演算法開始的時候,學習速率還是相對較快,能夠相對快速的向最小值點的方向下降。但隨著α的減小,下降的步伐也會逐漸變小,最終會在最小值附近的一塊更小的區域裡波動,如圖中綠色線所示。

(6)區域性最優問題

在低維度的情形下,我們可能會想象到乙個cost function 如左圖所示,存在一些區域性最小值點,在初始化引數的時候,如果初始值選取的不得當,會存在陷入區域性最優點的可能性。

但是,如果我們建立乙個神經網路,通常梯度為零的點,並不是如左圖中的區域性最優點,而是右圖中的鞍點(叫鞍點是因為其形狀像馬鞍的形狀)。

,可能性非常的小。也就是說,在低緯度中的區域性最優點的情況,並不適用於高緯度,我們在梯度為0的點更有可能是鞍點。

在高緯度的情況下:

深度學習 優化方法

仍然是讀完deep learning之後的筆記和知識梳理,這些內容其實是偏理論層面的,後續的話可以結合 進行講解。dl關注的優化問題 尋找神經網路上的一組引數 顯著降低代價函式j j 通常包括整個訓練集上效能評估 er 經驗風險 和額外的正則化項 sr 結構風險 對於偏應用層面的可以直接看基本演算法...

深度學習常用優化器介紹

深度學習的優化演算法從sgd sgdm nag adagrad adadelta adam nadam這樣的發展歷程,理論知識參考這裡,下面我們依次介紹tensorflow中這些優化器的實現類,官方文件。優化器 optimizers 類的基類。這個類定義了在訓練模型的時候新增乙個操作的api。你基本...

深度學習各種優化方法比較

標題不能再中二了 本文僅對一些常見的優化方法進行直觀介紹和簡單的比較,各種優化方法的詳細內容及公式只好去認真啃 了,在此我就不贅述了。此處的sgd指mini batch gradient descent,關於batch gradient descent,stochastic gradient des...