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

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

Термины, относящиеся к градиентному спуску:

  1. Скорость обучения - скорость, с которой происходит спуск по графику, более высокая скорость обучения может означать более быстрый спуск по графику, который имеет тенденцию пропускать локальные минимумы во время градиентного спуска.
  2. Эпоха - количество раз, которое вы хотите пересмотреть гиперпараметры, чтобы достичь наилучшего возможного гиперпараметра.

Визуализация градиентного спуска

Процесс градиентного спуска

При выполнении градиентного спуска мы сначала вычисляем функцию гипотез для инициализированного значения тета. Затем мы рассчитываем стоимость в соответствии с моделью, а затем минимизируем стоимость, используя указанную скорость обучения, и получаем наилучшее значение тета для параметра

Значение каждого члена в градиентном спуске

  1. Theta new - новое значение theta, которое получается после итерации градиентного спуска, что дает более точные прогнозы.
  2. Theta old - Старое значение теты, которое необходимо обновить.
  3. Отрицательный знак - это всегда направляет алгоритм в правильном направлении, потому что, если производная функции стоимости положительна, тогда алгоритм градиентного спуска направит тэту влево, что указывает в направлении уменьшения стоимости, тогда как если производная функции стоимости функция стоимости отрицательна, алгоритм направит тэту вправо, что указывает на уменьшение стоимости
  4. Скорость обучения - этот термин определяет размер шагов, сделанных в направлении минимумов, чтобы найти параметр с наименьшими затратами.
  5. Производная - этот термин определяет величину дифференциации, которая также играет роль в определении шагов, предпринятых в направлении минимумов, чтобы найти параметр с наименьшими затратами.

Реализация градиентного спуска в различных моделях машинного обучения

  1. Линейная регрессия

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

Функция затрат

Функция гипотезы линейной регрессии также может быть выражена как скалярное произведение инициализированных параметров (представленных тета) и входных данных.

Где

  1. Тета 0 - это перехват
  2. Theta1 - параметр / коэффициенты регрессии
  3. X - вход

Теперь давайте посмотрим на функцию стоимости линейной регрессии.

Где

  1. m - количество обучающих примеров
  2. h (theta) - функция гипотезы
  3. y - целевая переменная

Значение каждого члена функции затрат

Деление на m - поскольку мы не хотим, чтобы количество точек в обучающем наборе влияло на стоимость, мы делим на m, чтобы стоимость не зависела от количества обучающих примеров.

Сигма - поскольку мы хотим рассчитать стоимость по всем обучающим примерам, мы берем сумму квадратов ошибок.

Квадратная ошибка:

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

Расчет дифференцирования функции стоимости

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

Мы можем объединить их с входными данными, если мы хотим найти точку пересечения

Для нахождения функции гипотезы мы можем взять произведение инициализированных параметров с входными данными

Мы можем вычислить ошибку, вычтя y из функции гипотезы

Мы можем рассчитать стоимость по формуле

Наконец, мы можем вычислить дифференцирование по формуле

Реализация градиентного спуска в Python с использованием линейной регрессии

Написано:

Ааюшман Джайн

Профиль Github

"Веб-сайт"