Настраивайтесь на YOLO Vision 2025!
25 сентября 2025 г.
10:00 — 18:00 BST
Гибридное мероприятие
Yolo Vision 2024
Глоссарий

Градиентный спуск

Узнайте, как градиентный спуск оптимизирует модели ИИ, такие как Ultralytics YOLO, обеспечивая точные прогнозы в задачах от здравоохранения до самоуправляемых автомобилей.

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

Как работает градиентный спуск (Gradient Descent)?

Процесс обучения нейронной сети включает в себя поиск оптимального набора весов модели, которые приводят к наименьшей возможной ошибке или потерям. Градиентный спуск автоматизирует этот поиск. Процесс начинается с вычисления градиента — меры того, насколько сильно изменяются потери по отношению к каждому весу. Это вычисление обычно выполняется с использованием алгоритма обратного распространения. Затем веса обновляются путем небольшого шага в направлении, противоположном градиенту, эффективно двигаясь «вниз» по поверхности потерь. Этот итеративный процесс продолжается в течение многих эпох, пока производительность модели не сойдется и потери не будут минимизированы. Размер каждого шага является критическим фактором, определяемым скоростью обучения, ключевой настройкой при подборе гиперпараметров. Подробный обзор этого процесса можно найти в таких ресурсах, как конспекты курса Стэнфордского университета CS231n.

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

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

  • Пакетный градиентный спуск (BGD): Вычисляет градиент, используя весь набор обучающих данных. Этот подход обеспечивает стабильный и точный градиент, но он очень дорог с вычислительной точки зрения и требует больших объемов памяти, что делает его непрактичным для больших наборов данных, таких как ImageNet.
  • Стохастический градиентный спуск (SGD): Обновляет веса после обработки всего одного, случайно выбранного образца данных. Он намного быстрее и требует меньше памяти, чем BGD, но обновления зашумлены, что приводит к более неустойчивой траектории сходимости. Эта случайность иногда может помочь модели избежать плохих локальных минимумов.
  • Mini-Batch Gradient Descent (мини-пакетный градиентный спуск): Обеспечивает баланс, вычисляя градиент на небольшом случайном подмножестве ("мини-пакете") данных, обычно от 32 до 256 образцов. Это наиболее распространенный подход, используемый в современном глубоком обучении, поскольку он сочетает в себе эффективность SGD со стабильностью BGD. Фреймворки, такие как PyTorch и TensorFlow, используют этот метод по умолчанию в своих оптимизаторах. Для подробного сравнения см. этот обзор алгоритмов градиентного спуска.

Градиентный спуск в сравнении со смежными понятиями

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

  • Алгоритмы оптимизации: Градиентный спуск — это основополагающая концепция для семейства алгоритмов оптимизации. Более продвинутые оптимизаторы, такие как оптимизатор Adam или RMSprop, являются адаптивными вариациями, которые регулируют скорость обучения для каждого параметра индивидуально, что часто приводит к более быстрой сходимости. Вы можете найти оригинальную статью об Adam на arXiv.
  • Обратное распространение: Обратное распространение и градиентный спуск - это два различных, но связанных процесса. Обратное распространение - это алгоритм, который эффективно вычисляет градиенты функции потерь по отношению к весам сети. Градиентный спуск - это алгоритм, который затем использует эти градиенты для обновления весов.
  • Функция потерь: Функция потерь определяет цель, которую стремится минимизировать градиентный спуск. Выбор функции потерь (например, перекрестная энтропия для классификации изображений) создает определенный ландшафт ошибок, по которому перемещается оптимизатор.

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

Градиентный спуск — это двигатель, который приводит в действие обучение бесчисленных моделей ИИ.

  1. Обучение моделей обнаружения объектов: Когда модель Ultralytics YOLO обучается для обнаружения объектов на крупномасштабном наборе данных, таком как COCO, в каждой итерации используется мини-пакетный градиентный спуск. Модель предсказывает ограничивающие рамки, вычисляется функция потерь на основе ошибки, и градиентный спуск корректирует миллионы весов по всей основной сети и голове модели для повышения точности. Всем этим рабочим процессом можно управлять и масштабировать с помощью таких платформ, как Ultralytics HUB.
  2. Обучение языковых моделей: В обработке естественного языка (NLP) модели, такие как BERT, обучаются для таких задач, как анализ тональности. Градиентный спуск минимизирует функцию потерь, которая измеряет разницу между прогнозируемой моделью тональностью и истинной меткой, позволяя модели изучать нюансы человеческого языка из огромных текстовых корпусов. Stanford NLP Group предоставляет обширные исследования в этой области.

Проблемы и соображения

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

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

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

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