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

Теперь давайте поговорим о различных типах градиентного спуска:

⭕Пакетный градиентный спуск: представьте, что у вас есть группа друзей, и вы все хотите вместе спуститься с горы. При пакетном градиентном спуске вы смотрите на весь холм, вычисляете уклон (насколько он крутой) во всех направлениях, а затем делаете большой шаг в направлении, где склон самый крутой. Это означает, что вы двигаетесь в том направлении, которое быстрее всего приведет вас к спуску с холма.

⭕ Стохастический градиентный спуск: Теперь предположим, что у вас есть группа друзей, но каждый друг может видеть только небольшую часть холма. При стохастическом градиентном спуске каждый друг смотрит на свою часть холма, вычисляет уклон и делает шаг в самом крутом направлении. Этот процесс повторяется много раз, и каждый друг по очереди обновляет свою позицию в зависимости от своей части холма. Как будто каждый исследует свой небольшой участок холма и помогает друг другу найти самый быстрый путь вниз.

⭕ Мини-пакетный градиентный спуск: Представьте, что у вас есть большая группа друзей, и вы делитесь на более мелкие команды. Каждая команда смотрит на определенную часть холма и рассчитывает уклон. Затем каждая команда вместе делает шаг в самом крутом направлении для своей части холма. Этот процесс повторяется, и каждая команда обновляет свою позицию в зависимости от своей части холма. Это как работать вместе в небольших группах, чтобы исследовать и найти самый быстрый путь вниз по склону.

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

Давайте углубимся в более техническое объяснение этих концепций.

Пакетный градиентный спуск:

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

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

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

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

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

Вот как это работает:
➤ Произвольно перемешать набор обучающих данных.
➤ Для каждого обучающего примера в перемешанном наборе данных:
›› Рассчитать градиент функции потерь относительно параметров, используя только этот единственный пример.
›› Обновляйте параметры в направлении отрицательного градиента со скоростью обучения.
➤ Повторяйте процесс итеративно в течение определенного количества эпох или до сходимости .
SGD эффективен с вычислительной точки зрения, поскольку обрабатывает один пример за раз. Однако он вносит больше шума в оценку градиента из-за случайной выборки обучающих примеров. Шумные обновления могут помочь избежать локальных минимумов, но могут замедлить сходимость.

Мини-пакетный градиентный спуск:

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

Вот как это работает:
➤ Произвольно перемешать набор обучающих данных.
➤ Разделить перемешанный набор данных на несколько мини-пакетов одинакового размера.
Для каждого мини-пакета :
›› Рассчитайте градиент функции потерь по отношению к параметрам, используя примеры в мини-пакете.
›› Обновите параметры в направлении отрицательного градиента со скоростью обучения.< br /> ➤ Повторять процесс итеративно в течение определенного количества эпох или до сходимости.

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

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

Вот упрощенное объяснение работы алгоритма градиентного спуска: мы выбираем образцы из обучающего набора данных, загружаем их в модель и оцениваем несоответствие между нашими результатами и ожидаемыми результатами. Затем эта «ошибка» используется для вычисления необходимых изменений весов модели для улучшения результатов.

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

  • Используйте единую выборку данных.
  • Используйте все доступные данные.
  • Используйте часть данных.

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

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

Наконец, «мини-пакетный градиентный спуск» предполагает использование части данных — больше, чем один образец, но меньше, чем весь набор данных. Этот алгоритм работает как пакетный градиентный спуск, с той лишь разницей, что количество используемых выборок.