Цель —понять градиентный спуск и как он работает, шаг за шагом.

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

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

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

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

В приведенном выше уравнении у — зависимая переменная,
х — независимая переменная,
m — наклон линии, а
c — точка пересечения оси y с линией.

Для этого объяснения мы возьмем функцию потерь как сумму квадратов ошибок. и уравнение функции потерь будет следующим.

Здесь нам необходимо оптимизировать значение «m» и «c», чтобы минимизировать функцию потерь.

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

Чтобы узнать отрицательный наклон, мы находим частные производные как по «m», так и по «c».

Когда 2 или более 2 частных производных выполняются для одного и того же уравнения по отношению к 2 или более 2 различным переменным, это называется градиентом.

После выполнения частных производных по «m» и «c» мы получаем 2 уравнения, как указано выше, когда задано некоторое значение «m» и «c» и суммируется по всем точкам данных, мы получаем отрицательную сторону наклона .

Следующим шагом является предположение о скорости обучения, которая обычно обозначается «α» (альфа). В большинстве случаев скорость обучения устанавливается очень близко к 0, например, 0,001 или 0,005.

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

Далее следует определить размер шага на основе нашей скорости обучения. Размер шага можно определить как

Это даст нам 2 балла, которые будут представлять обновленное значение «m» и «c».

Мы повторяем шаги по нахождению отрицательного значения наклона, а затем обновляем значение «m» и «c», пока не достигнем или не сойдемся на наших минимумах.

Как градиентный градиент знает, когда остановить итерацию алгоритма?

Обычно градиентный спуск остановится, когда одно из двух условий удовлетворены.
1. Когда размер шагов настолько мал, что он не влияет на значение «M» и «C».
2 , Если из-за какой-то причины алгоритм не может сходиться, он автоматически остановится после 1000 итераций, этот параметр можно изменить во время программирования.

Типы градиентных спусков

Есть 3 типа градиентного происхождения, а именно,
1. Спуск стохастического градиента
2. Пакетный градиентный спуск
3. Мини-пакетный градиентный спуск

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

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

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

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