Глоссарий

Адам Оптимизатор

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

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

Узнай больше

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

Как работает Адам

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

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

Хотя Адам - мощный выбор по умолчанию, понимать его связь с другими оптимизаторами полезно:

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

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

Оптимизатор Адама используется для обучения огромного количества моделей ИИ:

Пример 1: Распознавание и обнаружение изображений

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

Пример 2: Обработка естественного языка

Adam - это стандартный оптимизатор для обучения больших языковых моделей (LLM), таких как BERT и варианты GPT. При обучении моделей для таких задач, как машинный перевод, резюмирование текста или анализ настроения, Adam помогает эффективно ориентироваться в сложном ландшафте потерь, связанных с этими моделями.

Использование в Ultralytics YOLO

В экосистеме Ultralytics Adam и его вариант AdamW являются доступными оптимизаторами для обучения моделей Ultralytics YOLO . Использование адаптивной скорости обучения Adam может ускорить сходимость при обучении моделей обнаружения объектов, сегментации экземпляров или оценки позы. Хотя SGD часто является оптимизатором по умолчанию и рекомендуется для моделей YOLO из-за потенциально лучшего конечного обобщения, Adam предоставляет надежную альтернативу, особенно полезную в определенных сценариях или во время первых экспериментов. Ты можешь легко настроить оптимизатор и другие параметры обучения. Такие инструменты, как Ultralytics HUB, упрощают этот процесс, позволяя пользователям обучать модели с помощью различных оптимизаторов, включая Adam, как локально, так и через облачное обучение. Для оптимизации производительности рассмотри такие техники, как настройка гиперпараметров. Такие фреймворки, как PyTorch и TensorFlow предоставляют реализацию Адама.

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