Краткая теория, как это работает.
Отказ от ответственности
Градиентный спуск - один из широко используемых алгоритмов при обучении моделей, особенно при использовании алгоритма линейной регрессии.
Что такое линейная регрессия?
Линейная регрессия - это простой метод прогнозирования, который пытается провести линию между всеми результатами, который пытается предсказать данные 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).
Градиентный спуск
Чтобы вычислить правильное пересечение и наклон во время обучения модели, мы можем использовать алгоритм градиентного спуска.
Здесь на картинке график функции затрат, и мы хотим сделать наш параметр с наименьшей возможной функцией затрат. Красная точка на картинке - это стоимость ошибки с текущим параметром. Чтобы знать, в каком направлении мы должны двигаться и с каким шагом мы должны знать вектор, чтобы узнать вектор, нам нужно вычислить частную производную.
Во-первых, нам нужно с чего-то начать, поэтому просто выберите некоторые начальные веса (пересечение и наклон) и вычислите ошибку.
После того, как у нас есть первый шаг, нам нужно шаг за шагом вычислить градиент и новые веса.
Используйте новые веса для вычисления градиента и новые веса, пока у нас не будет минимального градиента (желательно нулевого, но это редкая удача).
И когда у вас будут веса с минимальной ошибкой, это будут ваши лучшие параметры, которые были рассчитаны с использованием алгоритма градиентного спуска.
Вот что хорошо о градиентном спуске - шаг, с которым вы меняете веса в зависимости от производной и будут варьироваться. В противном случае, используя большой шаг, ваш расчет может быть не очень точным, или, в случае слишком маленького шага, это будет очень медленное вычисление.
Еще одна хорошая вещь заключается в том, что не всегда (я бы сказал, довольно редко) ошибка может быть равна нулю, а градиентный спуск очень полезен при вычислении самой низкой частоты ошибок.
В следующей статье я постараюсь провести небольшой практический опыт.