вы на самом деле неверно истолковали градиентный спуск.Градиентный спуск не говорит о том, что на каждой итерации все веса будут двигаться к своим соответствующим оптимальным значениям, но вместо этого все, что вам нужно, это то, что вы всегда будете двигаться к минимальной стоимости, если указаны точные гиперпараметры.В вашем случае, когда вы инициализируете веса с помощью [0,0], не существует значения альфа, которое будет отрицать упомянутый эффект, потому что, когда w0 изменяется от 0,6 до 0,74 (рассмотрим этот вектор), а w1 перемещается от 2 до 2,68 (учитывайте этодругой вектор), тогда результирующий вектор таков, что он движется вниз по склону с самым крутым спуском, и это то, что учитывает GD, это общее направление весов, движущихся вниз по склону функции стоимости.
И выВы можете убедиться в этом, построив график затрат, а также после второй итерации значение b переместится в сторону -2, потому что после второй итерации в этом направлении w0 является самым крутым.
нижеприведенный график является значением w0 на разных итерациях, x_axis = w0 и y_axis = iteration_no
Теперь мы можем ясносм. небольшую метку вверх в начале, которая также упоминается вами.
ниже приведен график затрат на разных итерациях
И из этой кривой затрат вы можете ясно видеть, что стоимость уменьшается на каждой отдельной итерации, то есть мы постоянно движемся вниз по склону в самом крутом направлении, и это то, что является градиентным спуском, это то, что является реальной работой GD.И да, мы можем получить такое поведение, когда наши веса движутся противоположно их требуемому значению во время изучения нашей модели, но поскольку мы движемся вниз по склону, мы всегда сходимся к минимальным и правильным значениям наших весов.
Теперьесли это все еще вас раздражает, то единственный способ решить это - изменить начальные значения весов, потому что настройка learning_Rate не решит это с помощью инициализации [0,0].
Так что инициализируйте с помощью [-0.1,3.1] с той же обучающей скоростью
Как сейчас, вы можете ясно видеть, что в начале не было такой восходящей отметки, потому что теперь значения стоимости уменьшаются внаправление, в котором веса также перемещаются в направлении их оптимальных значений, т. е. [-2,4]
теперь вы также можете видеть, что стоимостьи w0 приближаются к требуемым значениям за меньшее число итераций, как и раньше, потому что теперь мы инициализировали очень близко к требуемым значениям.
Вот такие инициализации, которые дают вам этот результат.
Вывод - GD всегда движутся по самому крутому пути вниз по склону
Счастливое машинное обучение ...