Глоссарий

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

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

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

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

Актуальность в машинном обучении

SGD - это краеугольный камень для обучения крупномасштабных моделей машинного обучения, особенно сложных нейронных сетей (NN), которыми оснащены многие современные приложения ИИ. Его эффективность делает его незаменимым при работе с наборами данных, которые слишком велики, чтобы поместиться в память, или требуют слишком много времени для обработки с помощью традиционного пакетного градиентного спуска. Такие модели, как Ultralytics YOLO часто используют SGD или его разновидности в процессе обучения для изучения паттернов в таких задачах, как обнаружение объектов, классификация изображений и их сегментация. Основные фреймворки глубокого обучения, такие как PyTorch и TensorFlow обеспечивают надежную реализацию SGD, что подчеркивает его фундаментальную роль в экосистеме ИИ.

Ключевые понятия

Понимание SGD включает в себя несколько основных идей:

  • Функция потерь: Мера того, насколько хорошо предсказания модели соответствуют реальным целевым значениям. SGD стремится минимизировать эту функцию.
  • Скорость обучения: Гиперпараметр, который управляет размером шага при каждом обновлении параметров. Поиск хорошей скорости обучения очень важен для эффективного обучения. Графики скорости обучения часто используются для ее корректировки во время обучения.
  • Размер партии: Количество обучающих образцов, используемых в одной итерации для оценки градиента. В чистом SGD размер партии равен 1. При использовании небольших подмножеств этот метод часто называют мини-пакетным градиентным спуском.
  • Обучающие данные: Набор данных, используемый для обучения модели. SGD обрабатывает эти данные образец за образцом или мини-пакетами. Очень важны высококачественные данные, часто требующие тщательного сбора и аннотирования.
  • Градиент: Вектор, указывающий направление наиболее крутого возрастания функции потерь. SGD перемещает параметры в направлении, противоположном градиенту, вычисленному по образцу или мини-партии.
  • Эпоха: Один полный проход по всему обучающему набору данных. Обычно обучение включает в себя несколько эпох.

Отличия от родственных концепций

SGD - это один из нескольких алгоритмов оптимизации, и важно отличать его от других:

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

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

Эффективность SGD позволяет использовать его в многочисленных крупномасштабных приложениях искусственного интеллекта:

Пример 1: Обучение больших языковых моделей (LLM)

Для обучения моделей, подобных тем, что используются в обработке естественного языка (NLP), часто используются огромные наборы текстовых данных (миллиарды слов). SGD и его варианты (например, Adam) необходимы для эффективной итерации этих данных, позволяя таким моделям, как GPT-4 или те, которые можно найти на Hugging Face изучать грамматику, контекст и семантику. Стохастическая природа помогает избежать плохих локальных минимумов в сложном ландшафте потерь.

Пример 2: Обучение обнаружению объектов в реальном времени

Для таких моделей, как Ultralytics YOLO , предназначенных для выводов в реальном времени, обучение должно быть эффективным. SGD позволяет разработчикам обучать эти модели на больших наборах данных изображений, таких как COCO, или на пользовательских наборах данных, управляемых с помощью таких платформ, как Ultralytics HUB. Быстрые обновления обеспечивают более быструю сходимость по сравнению с Batch GD, что очень важно для быстрой итерации при разработке модели и настройке гиперпараметров. Такая эффективность способствует применению в таких областях, как автономные транспортные средства и робототехника.

Читать полностью
OSZAR »