Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

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

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

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

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

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

Величина этого шага контролируется скорость обучения, критическое значение, задаваемое во время настройки гиперпараметров. Поскольку SGD использует единичные выборки, путь к минимуму является зашумленным и зигзагообразным, а не прямым. Этот шум часто полезен, поскольку помогает модели избежать локальных минимумов - субоптимальных решений, в которых могут застрять нестохастические алгоритмы. что позволяет ей найти лучшее глобальное решение. Этот процесс повторяется в течение многих эпох, или полных проходов по набору данных, пока модель не сходится. пока модель не сходится. Читатели могут изучить математическую интуицию в Stanford CS231n optimization notes.

SGD в сравнении с другими алгоритмами оптимизации

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

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

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

SGD и его разновидности являются стандартом для обучения современных систем искусственного интеллекта в различных отраслях.

  1. Обнаружение объектов в режиме реального времени: При обучении высокопроизводительных моделей, таких как Ultralytics YOLO11 для обнаружения объектов, оптимизатор должен обработать тысячи изображений из таких наборов данных, как COCO. SGD позволяет модели быстро изучать такие характеристики, как края и формы объектов. Стохастическая природа помогает модели хорошо обобщаться, что очень важно для таких критически важных приложений, как автономные транспортные средства, обнаруживающие пешеходов в различных погодных условиях.
  2. Обработка естественного языка (NLP): Обучение Большие языковые модели (LLM) включают наборы данных, содержащие миллиарды слов. Невозможно загрузить все эти данные в память за один раз. SGD позволяет модели изучать грамматику, контекст и инкрементный анализ настроения. Эта Такая эффективность способствует разработке сложных виртуальных помощников и инструментов перевода.

Внедрение SGD с помощью Ultralytics

Сайт ultralytics библиотека позволяет пользователям легко переключаться между оптимизаторами. В то время как AdamW может быть по умолчанию для некоторых задач, SGD часто используется для тонкой настройки или специфических исследований. Приведенный ниже фрагмент демонстрирует, как явно выбрать SGD для обучения модели.

from ultralytics import YOLO

# Load the latest YOLO11 model (nano version)
model = YOLO("yolo11n.pt")

# Train the model on the COCO8 dataset using the SGD optimizer
# The 'lr0' argument sets the initial learning rate
results = model.train(data="coco8.yaml", epochs=50, optimizer="SGD", lr0=0.01)

Этот код инициализирует YOLO11 модель и начинает обучение с optimizer="SGD". Для дальнейшей настройки обратитесь к разделу конфигурация обучения модели документация. Такие фреймворки, как TensorFlow и Scikit-learn также предлагают надежные реализации SGD для различных задач машинного обучения.

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

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

Присоединиться сейчас