Как проверить, что градиентный спуск работает правильно
Строим график: Функция ошибки в зависимости от количества итераций. График должен монотонно убывать. Если где-то появляется рост -- значит алгоритм написан неправильно, либо выбран слишком большой шаг для итерации. Сначала попробуйте сильно уменьшить шаг итерации. Если это не помогает -- ищите ошибку в алгоритме.