tf.train.AdamOptimizer()函數是Adam優化算法:是一個尋找全局最優點的優化算法,引入了二次方梯度校正。
tf.train.AdamOptimizer.__init__(
learning_rate=0.001,
beta1=0.9,
beta2=0.999,
epsilon=1e-08,
use_locking=False,
name='Adam'
)
參數:
learning_rate:張量或浮點值。學習速率
beta1:一個浮點值或一個常量浮點張量。一階矩估計的指數衰減率
beta2:一個浮點值或一個常量浮點張量。二階矩估計的指數衰減率
epsilon:數值穩定性的一個小常數
use_locking:如果True,要使用lock進行更新操作
`name``:應用梯度時為了創建操作的可選名稱。默認為“Adam”
本質上是帶有動量項的RMSprop,它利用梯度的一階矩估計和二階矩估計動態調整每個參數的學習率。
Adam的優點主要在於經過偏置校正后,每一次迭代學習率都有個確定范圍,使得參數比較平穩。
相比於基礎SGD算法,1.不容易陷於局部優點。2.速度更快