Odpowiedzi:
Próbowałem tego i uzyskałem ten sam wynik.
Wynika to z faktu, że gradient .abs
jest trudniejszy dla prostego optymalizatora do podążenia do minimów, w przeciwieństwie do kwadratowej różnicy, w której gradient zbliża się do zera powoli, gradient różnicy absolutnej ma stałą wielkość, która gwałtownie się odwraca, co powoduje, że optymalizator oscyluje wokół minimalny punkt Podstawowy spadek gradientu jest bardzo wrażliwy na wielkość gradientu i na szybkość uczenia się, która jest w zasadzie tylko mnożnikiem gradientu dla wielkości kroku.
Najprostszym rozwiązaniem jest zmniejszenie tempa uczenia się, np. Zmiana linii
optimizer = tf.train.GradientDescentOptimizer(0.5)
do
optimizer = tf.train.GradientDescentOptimizer(0.05)
Zagraj też z różnymi optymalizatorami. Niektórzy będą w stanie .abs
lepiej poradzić sobie ze stratami na bazie.