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

Adam Оптимизатор

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

Adam , сокращение от Adaptive Moment Estimation (адаптивная оценка момента), представляет собой сложный алгоритм оптимизации, широко используемый для обучения моделей глубокого обучения. Он произвел революцию в этой области, объединив преимущества двух других популярных расширений стохастического градиентного спуска (SGD): адаптивного градиентного алгоритма (AdaGrad) и распространения среднеквадратичного значения (RMSProp). Вычисляя индивидуальные адаптивные скорости обучения для различных параметров на основе оценок первого и второго моментов градиентов, Adam позволяет нейронным сетям сходиться значительно быстрее, чем традиционные методы. Его надежность и минимальные требования к настройке делают его стандартным выбором для многих специалистов, начинающих новый проект в области машинного обучения (ML).

Как работает Adam

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

Adam эту проблему, поддерживая два исторических буфера для каждого параметра:

  1. Импульс (первый момент): подобно тяжелому шару, катящемуся с холма, он отслеживает скользящее среднее прошлых градиентов, чтобы сохранить скорость в соответствующем направлении.
  2. Дисперсия (второй момент): отслеживает скользящее среднее квадратов градиентов, которое масштабирует скорость обучения.

Эта комбинация позволяет оптимизатору делать более крупные шаги на ровных участках ландшафта и более мелкие, осторожные шаги на крутых или «шумных» участках. Конкретные механизмы подробно описаны в основополагающей Adam работе Кингмы и БаAdam , в которой продемонстрировано его эмпирическое превосходство в различных задачах глубокого обучения (DL).

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

Универсальность Adam привела к его внедрению практически во всех областях искусственного интеллекта (ИИ).

  • Обработка естественного языка (NLP): Крупные языковые модели, такие как Generative Pre-trained Transformers (GPT), в значительной степени полагаются на Adam или его вариант AdamW) для обучения. Алгоритм эффективно обрабатывает разреженные градиенты, связанные с обширными словарями и массивными наборами данных, что позволяет создавать мощные чат-боты и системы перевода.
  • Компьютерное зрение в здравоохранении: при анализе медицинских изображений модели должны detect незначительные аномалии, такие как опухоли на МРТ-сканах. Adam помога Adam сверточным нейронным сетям (CNN) быстро сходиться к высокоточным решениям, что имеет решающее значение при разработке диагностических инструментов для ИИ в здравоохранении.

Adam SGD

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

Однако Adam «адаптивным», то есть он автоматически настраивает скорость обучения. Это делает его гораздо более удобным для первоначальных экспериментов и сложных архитектур, где настройка SGD затруднительна. Для пользователей, управляющих экспериментами на Ultralytics , переключение между этими оптимизаторами для сравнения производительности часто является ключевым шагом в настройке гиперпараметров.

Реализация с помощью Ultralytics

Современные фреймворки, такие как PyTorch и библиотека Ultralytics упрощают использование Adam . Популярный вариант под названием AdamW (Adam затуханием веса) часто рекомендуется, поскольку он устраняет проблемы с регуляризацией в исходном Adam . Это особенно эффективно для новейших архитектур, таких как YOLO26, которые извлекают выгоду из стабильности, AdamW .

Следующий пример демонстрирует, как обучить модель YOLO26 с использованием AdamW :

from ultralytics import YOLO

# Load the cutting-edge YOLO26n model
model = YOLO("yolo26n.pt")

# Train the model using the 'AdamW' optimizer
# The 'optimizer' argument allows easy switching between SGD, Adam, AdamW, etc.
results = model.train(data="coco8.yaml", epochs=5, optimizer="AdamW")

Для разработчиков, заинтересованных в более глубоком теоретическом обосновании, такие ресурсы, как Stanford CS231n Optimization Notes, предоставляют отличные визуализации Adam с другими алгоритмами, такими как RMSProp и AdaGrad. Кроме того, документацияPyTorch содержит технические подробности об аргументах и особенностях реализации, доступных для настройки.

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

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

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