Краткая теория, как это работает.

Отказ от ответственности

Градиентный спуск - один из широко используемых алгоритмов при обучении моделей, особенно при использовании алгоритма линейной регрессии.

Что такое линейная регрессия?

Линейная регрессия - это простой метод прогнозирования, который пытается провести линию между всеми результатами, который пытается предсказать данные y, которые могут зависеть от входного параметра х.

Формула линейной регрессии (как показано на изображении) Y = aX + b. Где a - точка пересечения, а b - наклон.

Например, у нас есть набор параметров x как {1,2,3} и соответствующий набор результатов y {2,3,4}, что означает, что a = 1 и b = 1. Это знание позволяет предположить, что если x = 4, то y = 5 (y = a * x + 1).

Градиентный спуск

Чтобы вычислить правильное пересечение и наклон во время обучения модели, мы можем использовать алгоритм градиентного спуска.

Здесь на картинке график функции затрат, и мы хотим сделать наш параметр с наименьшей возможной функцией затрат. Красная точка на картинке - это стоимость ошибки с текущим параметром. Чтобы знать, в каком направлении мы должны двигаться и с каким шагом мы должны знать вектор, чтобы узнать вектор, нам нужно вычислить частную производную.

Во-первых, нам нужно с чего-то начать, поэтому просто выберите некоторые начальные веса (пересечение и наклон) и вычислите ошибку.

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

Используйте новые веса для вычисления градиента и новые веса, пока у нас не будет минимального градиента (желательно нулевого, но это редкая удача).

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

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

Еще одна хорошая вещь заключается в том, что не всегда (я бы сказал, довольно редко) ошибка может быть равна нулю, а градиентный спуск очень полезен при вычислении самой низкой частоты ошибок.

В следующей статье я постараюсь провести небольшой практический опыт.