Что такое градиентный спуск?

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

Градиентный спуск - это итерационный процесс, это алгоритм оптимизации первого порядка.

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

Идея очень проста, просто нужна математика в средней школе.

Мы можем применить это к линейной регрессии и нелинейной регрессии.

мы знаем, что Формула среднеквадратичной ошибки

Если мы дифференцируем это, мы получим

Все дело в нахождении локального минимума,

Теперь нам нужно установить скорость обучения,

когда значение MSE остается неизменным во время итерации, это означает, что скорость обучения хорошая.

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

мы используем набор данных iris Нажмите здесь

В приведенном выше примере мы разделяем набор данных на независимую переменную и зависимую переменную, а затем кодируем строку как целое число, используя кодировщик меток sklearn.

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

После ста тысяч итераций со скоростью обучения 0,01 мы получаем m1: -0,10974 m2: -0,04424 m3: 0,22700 m4: 0,609894 b: 0,19208

Хорошо, теперь мы пытаемся проверить это с помощью Sklearn,

Для кодирования Щелкните здесь

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

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

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

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

Что такое пакетный градиентный спуск?

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

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

Что такое мини-пакетный градиентный спуск?

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

Что такое стохастический градиентный спуск?

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

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