幾種優化器對比?

2022-10-05 05:27:15 字數 2503 閱讀 9145

神經網路優化器對比

待優化引數w,損失函式loss,學習率lr,每次迭代乙個batch,,每次迭代乙個batch,t表示當前batch迭代的總次數。

1、 計算t時刻損失函式關於當前引數的梯度 

2、 計算t時刻一階動量

和二階動量

3、 計算t時刻下降梯度:

4、 計算t+1時刻引數:

不同的優化器實際上只是定義了不同的一階動量和二階動量公式。

sgd(隨機梯度下降)無momentum,常用的梯度下降法

sgdm(含momentum的sgd),在sgd基礎上增加一階動量。

表示各時刻梯度方向的指數滑動平均值。

0時刻m_w, m_b=0 , 0

beta = 0.9 #超引數

adagrad,在sgd基礎上增加二階動量

rmsprop,sgd基礎上增加二階動量

同時結合sgdm一階和rmsprop二階動量

修正一階動量的偏差:

修正二階動量的偏差:

各優化器 loss 圖對比

acc 圖對比

訓練耗時

tensorflow的幾種優化器

最近自己用cnn跑了下minist,準確率很低 迭代過程中 跑了幾個epoch,我就直接stop了,感覺哪有問題,隨即排查了下,同時查閱了網上其他人的blog,並沒有發現什麼問題 之後copy了一篇別人的 發現在第二個epoch的時候,準確率已經在80左右了,當時對比了下 自己的 是沒有問題的,問題...

幾種工廠模式對比

簡單工廠模式 定義乙個工廠類,它可以根據引數的不同返回不同類的例項,被建立的例項通常都具有共同的父類。因為在簡單工廠模式中用於建立例項的方法是靜態方法,因此簡單工廠模式又被成為靜態工廠方法模式,它屬於類建立類模式。簡單工廠模式的要點在於 當你需要什麼,只需要傳入乙個正確的引數,就可以獲取你所需要的物...

c 幾種time對比

c 中timer類的用法 system.windows.forms system.threading.timer system.timers.timer 它是通過windows訊息機制實現的,類似於vb或delphi中的timer控制項,內部使用api settimer實現的。ading.timer...