GradientDescentOptimizerとAdamOptimizer(TensorFlow)の違いは?
XOR-GateをモデリングしているTensorFlowで簡単なMLPを作成しました。 だから: input_data = [[0., 0.], [0., 1.], [1., 0.], [1., 1.]] 次のものが生成されます。 output_data = [[0.], [1.], [1.], [0.]] このネットワークには、入力層、隠れ層、出力層があり、それぞれ2、5、1個のニューロンがあります。 現在、私は次のクロスエントロピーを持っています: cross_entropy = -(n_output * tf.log(output) + (1 - n_output) * tf.log(1 - output)) 私はこの簡単な代替手段も試しました: cross_entropy = tf.square(n_output - output) 他のいくつかの試みと一緒に。 ただし、私の設定が何であっても、のエラーはのエラーよりもはるかに遅くGradientDescentOptimizer減少していましたAdamOptimizer。 実際tf.train.AdamOptimizer(0.01)、どのクロスエントロピー計算または学習率が使用されたとして0.01も、tf.train.GradientDescentOptimizer常に2000を超える学習ステップが必要でしたが、(最高の結果が得られた学習率に応じて)400から800の学習ステップ後に本当に良い結果が得られました。 これはなぜですか?そうですAdamOptimizer、常により良い選択です!