最一般的就是梯度下降。
train = tf.train.GradientDescentOptimizer(learning_rate=0.1).minimize(cost)
以下是除梯度下降之外可选的方法:
tf.train.AdadeltaOptimizer
tf.train.AdagradOptimizer
tf.train.AdagradDAOptimizer
tf.train.MomentumOptimizer
tf.train.AdamOptimizer
tf.train.FtrlOptimizer
tf.train.ProximalGradientDescentOptimizer
tf.train.ProximalAdagradOptimizer
tf.train.RMSPropOptimizer
Adam
优化算法是首选的梯度下降方式,研究证明它可以以最快的速度逃离鞍点(局部最优点)到达全局最优点。
在tensorflow中使用Adam优化算法:
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=hypothesis, labels=Y))
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)