Узнайте, как оптимизатор Adam обеспечивает эффективное обучение нейронных сетей с адаптивной скоростью обучения, импульсом и реальными приложениями в области ИИ.
Adam (Adaptive Moment Estimation) - это сложный и широко используемый оптимизационный алгоритм, предназначенный для обновления параметров нейронной сети в процессе обучения. Объединяя лучшие свойства двух других популярных расширения стохастического градиентного спуска (SGD)- в частности, адаптивного градиентного алгоритма (AdaGrad) и корневого среднеквадратичного распространения (RMSProp) - Adam вычисляет адаптивные скорости обучения для каждого отдельного параметра. Эта Эта возможность позволяет ему эффективно работать с разреженными градиентами в шумных задачах, что делает его выбором по умолчанию для обучения сложных архитектур глубокого обучения (DL), включая новейшие моделиYOLO11 .
Основной механизм Adam заключается в вычислении первого и второго моментов градиентов для адаптации скорость обучения для каждого веса в нейронной сети. Вы можете считать "первый момент" как импульс, который заставляет оптимизацию двигаться в правильном направлении, подобно тяжелому мячу. катящийся вниз по склону. Второй момент" отслеживает нецентрированную дисперсию, эффективно масштабируя размер шага в зависимости от исторической величины градиентов.
Во время обратного распространения алгоритм вычисляет градиент функции потерь по отношению к весов. Затем Adam обновляет экспоненциальные скользящие средние градиента (импульс) и квадрата градиента (дисперсия). Эти скользящие средние используются для масштабирования текущего градиента, гарантируя, что модель делает большие шаги в направлениях с постоянным градиентом и меньшие шаги в направлениях с высокой дисперсией. Этот процесс подробно описан в оригинальной Исследовательская работаAdam , написанная Kingma и Ba.
Чтобы понять, когда следует использовать Adam , необходимо сравнить его с другими распространенными алгоритмами, используемыми в фреймворки машинного обучения (ML).
Благодаря своей надежности и минимальным требованиям к настройки гиперпараметров, Adam используется в различных областях с высокой степенью воздействия.
При использовании Ultralytics Python API вы можете легко выбрать оптимизатор Adam для обучения моделей обнаружения объектов, сегментации или оценки позы. Хотя SGD используется по умолчанию для многих конфигураций YOLO , Adam является отличной альтернативой для небольших наборов данных или когда приоритетом является быстрая сходимость приоритет отдается быстрой сходимости.
В следующем примере показано, как обучить YOLO11 с помощью оптимизатора Adam :
from ultralytics import YOLO
# Load a generic YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model on the COCO8 dataset using the 'Adam' optimizer
# The 'optimizer' argument creates the specific PyTorch optimizer instance internally
results = model.train(data="coco8.yaml", epochs=5, optimizer="Adam")
Такая гибкость позволяет исследователям и инженерам экспериментировать с конфигурациями оптимизатора, чтобы найти оптимальную настройку для своих для конкретных наборов данных.