Відповіді:
Я спробував це і отримав такий же результат.
Це тому, що градієнту .abs
простішого оптимізатора важче дотримуватися мінімумів, на відміну від різниці у квадраті, де градієнт повільно наближається до нуля, градієнт абсолютної різниці має фіксовану величину, яка різко обертається, що, як правило, оптимізатор коливається навколо мінімальний бал. Базовий спуск градієнта дуже чутливий як до величини градієнта, так і до швидкості навчання, яка по суті є лише множником градієнта для розмірів ступенів.
Найпростішим виправленням є зниження рівня навчання, наприклад, зміна лінії
optimizer = tf.train.GradientDescentOptimizer(0.5)
до
optimizer = tf.train.GradientDescentOptimizer(0.05)
Також пограйте з різними оптимізаторами. Деякі зможуть краще впоратися з .abs
втратами на основі.