Тензорный поток с приличным градиентом приводит к неправильным коэффициентам

#tensorflow #linear-regression #gradient-descent

#tensorflow #линейная регрессия #градиентный спуск

Вопрос:

В настоящее время я пытаюсь построить линейную регрессию, которая использует коэффициент рождаемости (x) в качестве предиктора для прогнозирования ожидаемой продолжительности жизни (y). y = w * x b Набор данных можно найти здесь: Dataset

Вот онлайн-ссылка на мой код: Code

Идея проста: я запускаю 300 эпох, внутри каждой эпохи я отправляю одну за другой парную выборку (значение x, значение y) в оптимизатор gradient decent, чтобы минимизировать функцию потерь.

Однако полученный мной результат совершенно неверен. Изображение моего результата: мой результат

Вместо отрицательного наклона это всегда приводит к положительному наклону, в то время как пример ответа, приведенный здесь, приводит к лучшей модели с отрицательным наклоном.

Что было не так в моем кодировании?

Ответ №1:

Проблема заключается в расположении линии

 sess.run(tf.global_variables_initializer())
  

Поскольку он находится внутри цикла while, w и b повторно инициализируются на каждой итерации до 0. Следовательно, то, что вы видите, является результатом одной итерации цикла обучения while (последней). Вы должны переместить строку перед циклом while.

Комментарии:

1. Спасибо, я решил это сегодня. О боже. было бы сложно без вашей помощи