class tf.train.GradientDescentOptimizer
梯度下降算法是用的最普遍的優(yōu)化算法,不過梯度下降算法需要用到全部的樣本,訓(xùn)練速度比較慢戳杀,但是迭代到一定次數(shù)最終能夠找到最優(yōu)解步做。tensorflow這里提供的GDO也相當(dāng)于是SGD。
class tf.train.AdadeltaOptimizer
訓(xùn)練初中期酣胀,加速效果不錯(cuò)刁赦,很快
訓(xùn)練后期,反復(fù)在局部最小值附近抖動(dòng)
這個(gè)函數(shù)低版本好像沒有~訓(xùn)練很慢闻镶!
class tf.train.AdagradOptimizer
class tf.train.AdagradDAOptimizer
class tf.train.MomentumOptimizer
所以Momentum的想法很簡(jiǎn)單甚脉,就是多更新一部分上一次迭代的更新量,來平滑這一次迭代的梯度儒溉。從物理的角度上解釋宦焦,就像是一個(gè)小球滾落的時(shí)候會(huì)受到自身歷史動(dòng)量的影響,所以才叫動(dòng)量(Momentum)算法顿涣。這樣做直接的效果就是使得梯度下降的的時(shí)候轉(zhuǎn)彎掉頭的幅度不那么大了波闹,于是就能夠更加平穩(wěn)、快速地沖向局部最小點(diǎn):
鏈接:https://zhuanlan.zhihu.com/p/22810533?
class tf.train.AdamOptimizer
本質(zhì)上是帶有動(dòng)量項(xiàng)的RMSprop涛碑,它利用梯度的一階矩估計(jì)和二階矩估計(jì)動(dòng)態(tài)調(diào)整每個(gè)參數(shù)的學(xué)習(xí)率精堕。Adam的優(yōu)點(diǎn)主要在于經(jīng)過偏置校正后,每一次迭代學(xué)習(xí)率都有個(gè)確定范圍蒲障,使得參數(shù)比較平穩(wěn).
特點(diǎn):
結(jié)合了Adagrad善于處理稀疏梯度和RMSprop善于處理非平穩(wěn)目標(biāo)的優(yōu)點(diǎn)
對(duì)內(nèi)存需求較小
為不同的參數(shù)計(jì)算不同的自適應(yīng)學(xué)習(xí)率
也適用于大多非凸優(yōu)化
?適用于大數(shù)據(jù)集和高維空間
class tf.train.FtrlOptimizer
class tf.train.ProximalGradientDescentOptimizer
class tf.train.ProximalAdagradOptimizer
class tf.train.RMSPropOptimizer
Reference:
http://sebastianruder.com/optimizing-gradient-descent/index.html?