Глоссарий

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

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

Стохастический градиентный спуск (СГС) - это фундаментальный и широко используемый алгоритм оптимизации в машинном обучении (МОО). Это итерационный метод, используемый для обучения моделей путем корректировки их внутренних параметров, таких как веса и смещения, с целью минимизации функции потерь. В отличие от традиционного градиентного спуска, который обрабатывает весь набор данных для каждого обновления, SGD обновляет параметры, используя только одну, случайно выбранную обучающую выборку. Такой "стохастический" подход делает процесс обучения значительно быстрее и более масштабируемым, что особенно важно при работе с большими данными. Шумные обновления также могут помочь модели избежать плохих локальных минимумов в ландшафте ошибок и потенциально найти лучшее общее решение.

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

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

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

Этот цикл повторяется в течение многих проходов по всему набору данных, называемых эпохами, постепенно улучшая производительность модели. Эффективность SGD сделала его краеугольным камнем современного глубокого обучения (ГОО), и он поддерживается всеми основными фреймворками, такими как PyTorch и TensorFlow.

Sgd по сравнению с другими оптимизаторами

SGD - один из нескольких градиентных методов оптимизации, каждый из которых имеет свои собственные компромиссы.

  • Пакетный градиентный спуск: Этот метод вычисляет градиент, используя весь обучающий набор данных. Он обеспечивает стабильный и прямой путь к минимуму, но является чрезвычайно медленным и требует много памяти для больших наборов данных, что делает его непрактичным для большинства современных приложений.
  • Мини-пакетный градиентный спуск: Это компромиссный вариант между пакетным GD и SGD. Он обновляет параметры, используя небольшое случайное подмножество ("мини-партию") данных. Он уравновешивает стабильность пакетного ГД и эффективность SGD и является наиболее распространенным подходом, используемым на практике.
  • Оптимизатор Adam: Adam - это адаптивный алгоритм оптимизации, который поддерживает отдельную скорость обучения для каждого параметра и регулирует ее по мере обучения. Он часто сходится быстрее, чем SGD, но SGD иногда может найти лучший минимум и предложить лучшее обобщение, помогая предотвратить чрезмерную подгонку.

Применение в реальном мире

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

  • Обучение обнаружению объектов в реальном времени: Для таких моделей, как Ultralytics YOLO, предназначенных для выводов в режиме реального времени, обучение должно быть эффективным. SGD позволяет разработчикам обучать эти модели на больших наборах данных изображений, таких как COCO, или на пользовательских наборах данных, управляемых с помощью таких платформ, как Ultralytics HUB. Быстрые обновления обеспечивают более быструю сходимость по сравнению с Batch GD, что очень важно для быстрой итерации при разработке модели и настройке гиперпараметров. Такая эффективность способствует применению в таких областях, как автономные транспортные средства и робототехника.
  • Обучение больших языковых моделей (LLM): Обучение моделей для обработки естественного языка (NLP) часто предполагает использование огромных текстовых наборов данных. SGD и его разновидности необходимы для эффективного итерационного анализа этих данных, позволяя таким моделям, как GPT-4 или Hugging Face, изучать грамматику, контекст и семантику. Стохастическая природа помогает избежать плохих локальных минимумов в сложном ландшафте потерь, что является общей проблемой при обучении больших нейронных сетей. Этот процесс является основополагающим для таких задач, как машинный перевод и анализ смыслов.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему искусственного интеллекта. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединяйтесь сейчас
Ссылка копируется в буфер обмена