Optimization Algorithm
Узнай, как алгоритмы оптимизации, такие как SGD и AdamW, обеспечивают обучение ML-моделей. Научись минимизировать функцию потерь и повышать производительность Ultralytics YOLO26 в приложениях AI.
Алгоритм оптимизации служит основным вычислительным механизмом, который управляет процессом обучения моделей машинного обучения (ML) и глубокого обучения (DL). Его основная задача — итеративно корректировать внутренние веса модели и смещения, чтобы минимизировать ошибку между предсказанными результатами и фактическими целевыми значениями. Ты можешь представить этот процесс как попытку туриста спуститься с туманной горы к самой низкой точке в долине. Алгоритм оптимизации выступает в роли проводника, определяя направление и размер шага, который турист должен сделать, чтобы достичь дна. Это соответствует состоянию, в котором функция потерь минимизирована, а точность предсказаний модели максимальна.
Как работают алгоритмы оптимизации#
Обучение нейронной сети включает повторяющийся цикл предсказания, вычисления ошибки и обновления параметров. Алгоритм оптимизации управляет этапом «обновления» в этом цикле. После обработки пакета обучающих данных система вычисляет градиент — вектор, указывающий направление наиболее резкого увеличения ошибки, — с помощью метода, который называется обратным распространением ошибки.
Затем оптимизатор обновляет параметры модели в направлении, противоположном градиенту, чтобы уменьшить ошибку. Величина этого обновления определяется важным гиперпараметром, известным как скорость обучения. Если шаг слишком большой, модель может перескочить через глобальный минимум; если слишком маленький, обучение может стать непозволительно медленным или застрять в локальном минимуме. Расширенные материалы, такие как заметки Stanford CS231n по оптимизации, содержат более подробные технические сведения об этой динамике.
Распространённые типы алгоритмов оптимизации#
Для разных задач требуются разные стратегии. Существует множество вариаций, но в современной разработке AI доминируют несколько ключевых алгоритмов:
- Стохастический градиентный спуск (SGD): Классический подход, при котором параметры обновляются с использованием одного примера или небольшого пакета, а не всего набора данных. Этот метод эффективен с вычислительной точки зрения и широко используется в таких библиотеках, как Scikit-learn.
- Оптимизатор Adam: Adam, расшифровывающийся как адаптивная оценка моментов, настраивает скорость обучения отдельно для каждого параметра. Он подробно описан в основополагающей научной статье об Adam, написанной Kingma и Ba и часто используется по умолчанию для обучения общего назначения благодаря скорости и свойствам сходимости.
- AdamW: Вариант Adam, который отделяет затухание весов от обновления градиента, обеспечивая лучшую обобщающую способность. Этот оптимизатор часто предпочитают для обучения современных архитектур, таких как Transformers и высокопроизводительные модели Ultralytics YOLO26.
Практические применения#
Алгоритмы оптимизации незаметно работают практически во всех успешных решениях на основе AI, превращая данные в полезную для принятия решений информацию.
-
Автономные транспортные средства: В технологиях беспилотного вождения системы обнаружения объектов должны мгновенно распознавать пешеходов, светофоры и другие автомобили. Во время обучения этих систем для AI в автомобильной отрасли алгоритм оптимизации обрабатывает миллионы дорожных изображений, точно настраивая сеть для минимизации ошибок обнаружения. Это позволяет автомобилю надёжно останавливаться при обнаружении человека и предотвращает аварии.
-
Анализ медицинских изображений: В приложениях AI в здравоохранении, например при выявлении опухолей на снимках MRI, точность имеет критическое значение. Оптимизаторы управляют обучением свёрточных нейронных сетей (CNNs), чтобы с высокой чувствительностью отличать злокачественные ткани от здоровых и снижать риск ложноотрицательных результатов при критически важных диагнозах.
Различие между связанными понятиями#
Чтобы эффективно понимать рабочий процесс, важно отличать алгоритм оптимизации от других компонентов процесса обучения.
- Алгоритм оптимизации и функция потерь: Функция потерь выступает в роли «табло», вычисляя числовое значение, например среднеквадратичную ошибку, которое показывает, насколько ошибочны предсказания модели. Алгоритм оптимизации — это «стратег», который использует этот показатель для корректировки весов и повышения производительности на следующем шаге.
- Алгоритм оптимизации и настройка гиперпараметров: Алгоритм оптимизации изучает внутренние параметры (веса) во время циклов обучения. Настройка гиперпараметров включает выбор наилучших внешних настроек — например, самого оптимизатора, размера пакета или начальной скорости обучения — до начала обучения. Для поиска оптимального сочетания этих внешних настроек часто используют автоматизированные инструменты, такие как Ray Tune.
Реализация оптимизации в Python#
В современных фреймворках выбор алгоритма оптимизации часто выполняется с помощью одного аргумента. В следующем примере показано, как обучить модель YOLO26, используя оптимизатор AdamW в составе пакета ultralytics. Пользователи также могут использовать Ultralytics Platform для управления такими сессиями обучения без написания кода.
from ultralytics import YOLO
# Load the latest YOLO26 model (recommended for new projects)
model = YOLO("yolo26n.pt")
# Train the model using the 'AdamW' optimization algorithm
# The optimizer iteratively updates weights to minimize loss on the dataset
results = model.train(data="coco8.yaml", epochs=5, optimizer="AdamW")Тем, кто интересуется механизмами низкого уровня, такие фреймворки, как оптимизаторы PyTorch и оптимизаторы TensorFlow Keras, предлагают подробную документацию по реализации и настройке этих алгоритмов для исследовательских архитектур.









