Глоссарий

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

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

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

Узнай больше

Adam (Adaptive Moment Estimation) - это широко распространенный алгоритм оптимизации, который активно используется в глубоком обучении (DL) и машинном обучении (ML). Он предназначен для эффективного обновления весов сети в процессе обучения путем адаптации скорости обучения для каждого параметра в отдельности. Представленный в статье"Adam: A Method for Stochastic Optimization" Дидериком П. Кингмой и Джимми Ба, Adam сочетает в себе преимущества двух других популярных методов оптимизации: AdaGrad (адаптивный градиентный алгоритм) и RMSprop(Root Mean Square Propagation). Такое сочетание делает его особенно эффективным для обучения больших нейронных сетей с множеством параметров и сложными наборами данных.

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

Adam вычисляет адаптивные скорости обучения для каждого параметра, основываясь на оценках первого и второго моментов градиентов. По сути, он отслеживает экспоненциально затухающее среднее значение прошлых градиентов (похоже на импульс) и экспоненциально затухающее среднее значение прошлых квадратичных градиентов (похоже на AdaGrad/RMSprop).

  • Моментум: Он помогает ускорить градиентный спуск в соответствующем направлении и гасит колебания, что приводит к более быстрой сходимости.
  • Адаптивные скорости обучения: Он регулирует скорость обучения для каждого веса в зависимости от того, насколько частыми и большими были исторические обновления. Параметры, получающие большие или частые обновления, получают меньшую скорость обучения, а параметры с маленькими или нечастыми обновлениями - большую. Это особенно полезно для задач с разреженными градиентами или зашумленными данными.
  • Коррекция смещения: Адам включает механизм для борьбы с начальным смещением в сторону нуля в оценках момента, особенно на ранних этапах обучения, когда распадающиеся средние еще только инициализируются.

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

Преимущества Адама

Адам популярен по нескольким причинам:

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

Примеры из реальной жизни

Адам - лучший оптимизатор для многих современных моделей:

Пример 1: Компьютерное зрение

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

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

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

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

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

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