神經網路優化器對比
待優化引數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...