Почему TensorFlow не может соответствовать простой линейной модели, если я минимизирую абсолютную среднюю ошибку вместо среднеквадратичной ошибки?


Ответы:


17

Я попробовал это и получил тот же результат.

Именно потому, что .absпростому оптимизатору сложнее проследить до минимума градиент, в отличие от квадрата разности, когда градиент медленно приближается к нулю, градиент абсолютной разности имеет фиксированную величину, которая резко меняется на противоположную, что приводит к колебаниям оптимизатора вокруг минимальная точка. Базовый градиентный спуск очень чувствителен к величине градиента и скорости обучения, которая, по сути, является просто множителем градиента для размеров шагов.

Самое простое решение - снизить скорость обучения, например, изменить строку

optimizer = tf.train.GradientDescentOptimizer(0.5)

в

optimizer = tf.train.GradientDescentOptimizer(0.05)

Также поиграйте с разными оптимизаторами. Некоторые смогут .absлучше справиться с потерей.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.