Алгоритм оптимизации
Узнайте, как алгоритмы оптимизации повышают эффективность ИИ и ОД, начиная с обучения нейронных сетей и заканчивая реальными приложениями в здравоохранении и сельском хозяйстве.
Алгоритм оптимизации - это двигатель, который управляет процессом обучения в машинном обучении (ML) и глубоком обучении. Его основная роль заключается в итеративной настройке внутренних параметров модели, таких как веса и смещения, с целью минимизации функции потерь. Считайте, что это систематический метод поиска наилучшего набора параметров, который делает предсказания модели наиболее точными. Этот процесс является основополагающим для обучения модели, поскольку он превращает общую модель в специализированный инструмент, способный решать конкретную задачу, например обнаружение объектов или сегментацию изображений.
Как работают алгоритмы оптимизации
В основе алгоритма оптимизации лежит "ландшафт потерь" - высокоразмерное пространство, где каждая точка представляет собой набор параметров модели, а высота точки соответствует ошибке модели. Цель состоит в том, чтобы найти самую низкую точку, или "минимум", в этом ландшафте. Алгоритм запускается с начальным набором случайных параметров и на каждом шаге (или эпохе) вычисляет градиент функции потерь. Этот градиент указывает на направление самого крутого подъема, поэтому алгоритм делает шаг в противоположном направлении, чтобы спуститься по ландшафту.
Размер этого шага контролируется критическим гиперпараметром, называемым скоростью обучения. Хорошо подобранная скорость обучения обеспечивает эффективное обучение модели без превышения минимума или застревания. Этот итерационный процесс вычисления градиентов и обновления параметров известен как обратное распространение и продолжается до тех пор, пока производительность модели на проверочном наборе данных не перестанет улучшаться, что свидетельствует о сходимости.
Распространенные типы алгоритмов оптимизации
Было разработано несколько алгоритмов оптимизации, каждый из которых имеет свои особенности. Некоторые из наиболее широко используемых в глубоком обучении включают:
- Стохастический градиентный спуск (СГС): Классический и широко используемый оптимизатор, который обновляет параметры, используя градиент от небольшого подмножества(партии) обучающих данных. Несмотря на свою эффективность, его производительность может быть чувствительна к выбору скорости обучения. Такие вариации, как SGD с импульсом, помогают ускорить сходимость.
- Оптимизатор Adam: Оптимизатор Adaptive Moment Estimation (Adam) чрезвычайно популярен, поскольку сочетает в себе преимущества двух других расширений SGD: AdaGrad и RMSProp. Он рассчитывает адаптивные скорости обучения для каждого параметра, что делает его надежным и часто является хорошим выбором по умолчанию для многих задач. Расширение AdamW широко используется в современных моделях трансформаторов. Такие фреймворки, как PyTorch и TensorFlow, предлагают реализации этих популярных оптимизаторов.
Выбор оптимизатора может существенно повлиять как на скорость обучения, так и на конечную производительность модели. В экосистеме Ultralytics пользователи могут легко настроить оптимизатор во время настройки обучения.
Применение в реальном мире
Алгоритмы оптимизации работают за кулисами бесчисленных приложений ИИ.
- Анализ медицинских изображений: При обучении конволюционной нейронной сети (CNN) для обнаружения опухолей на снимках мозга оптимизационный алгоритм, подобный Adam, систематически настраивает фильтры сети. Он стремится минимизировать разницу между прогнозируемым моделью расположением опухолей и истинными аннотациями, предоставленными рентгенологами, повышая диагностическую точность модели. Это основной компонент создания эффективных решений ИИ в здравоохранении.
- Автономные транспортные средства: Модель обнаружения объектов в самоуправляемом автомобиле, например модель Ultralytics YOLO, должна надежно распознавать пешеходов, другие автомобили и дорожные знаки. В процессе обучения оптимизатор настраивает параметры модели на миллионах изображений, чтобы уменьшить количество ошибок обнаружения (например, пропущенных объектов или неправильных классификаций), что очень важно для обеспечения безопасности в системах искусственного интеллекта в автомобилях.
Алгоритмы оптимизации в сравнении со смежными понятиями
Важно отличать алгоритмы оптимизации от смежных концепций ML:
- Алгоритм оптимизации против настройки гиперпараметров: Алгоритмы оптимизации настраивают внутренние параметры (веса и смещения) модели во время обучение. В отличие от этого, настройка гиперпараметров направлена на поиск наилучшего внешние настройки конфигурации (например, скорость обучения, размер партии или даже выбор самого оптимизатора) до начинается обучение. Сайт Ultralytics
Tuner
класс автоматизирует этот процесс, используя такие методы, как эволюционные алгоритмы. - Алгоритм оптимизации против функции потерь: Функция потерь количественно оценивает ошибку модели. Алгоритм оптимизации - это механизм, используемый для минимизации этой ошибки. Функция потерь определяет цель, а оптимизатор - стратегию ее достижения.
- Алгоритм оптимизации против архитектуры модели: Архитектура модели определяет структуру нейронной сети (например, ее слои и связи). Алгоритм оптимизации работает в рамках этой предопределенной структуры для обучения ее обучаемых параметров. Поиск нейронной архитектуры (NAS) - это смежная область, которая автоматизирует проектирование самой архитектуры.