Глоссарий

Градиентный спуск

Узнай, как градиентный спуск оптимизирует модели ИИ, например Ultralytics YOLO , позволяя делать точные прогнозы в задачах от здравоохранения до самодвижущихся автомобилей.

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

Узнай больше

Градиентный спуск - это фундаментальный алгоритм оптимизации, широко используемый в машинном обучении (ML) и искусственном интеллекте (AI). Он служит основным методом обучения многих моделей, включая сложные архитектуры глубокого обучения, такие как Ultralytics YOLO. Цель градиентного спуска заключается в итеративной настройке внутренних параметров моделиweights and biases) для минимизации функции потерь, которая измеряет разницу между предсказаниями модели и реальными целевыми значениями. Представь, что ты пытаешься найти самую низкую точку в долине с завязанными глазами; градиентный спуск направляет тебя, делая небольшие шаги в направлении самого крутого спуска в твоем текущем местоположении. Этот итеративный процесс позволяет моделям учиться на данных и повышать точность прогнозирования.

Актуальность в машинном обучении

Градиентный спуск особенно важен для обучения сложных моделей, таких как нейронные сети, которые лежат в основе многих современных приложений ИИ. Эти модели, в том числе используемые для обнаружения объектов, классификации изображений и обработки естественного языка (NLP), часто имеют миллионы параметров, которые нуждаются в оптимизации. Градиентный спуск, а также его разновидности обеспечивают вычислительно реализуемый способ навигации по сложному ландшафту потерь и поиска значений параметров, которые дают хорошую производительность. Без эффективной оптимизации с помощью градиентного спуска обучение таких больших моделей до высоких уровней точности было бы непрактичным. Такие фреймворки, как PyTorch и TensorFlow в значительной степени полагаются на реализацию Gradient Descent.

Ключевые понятия и варианты

Основная идея градиентного спуска заключается в вычислении градиента (направления крутого подъема) функции потерь относительно параметров модели, а затем в выполнении шага в обратном направлении. Размер этого шага контролируется скоростью обучения- критически важным гиперпараметром. Существует несколько вариаций, позволяющих повысить эффективность и стабильность:

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

Отличия от родственных концепций

Градиентный спуск - это особый тип алгоритма оптимизации, ориентированный на итеративную минимизацию функции потерь путем корректировки параметров модели с помощью градиентов, вычисляемых методом обратного распространения. Он отличается от родственных концепций:

  • Настройка гиперпараметров: Это включает в себя поиск наилучших внешних настроек для процесса обучения (например, скорость обучения, размер партии или архитектура сети) до начала обучения. Градиентный спуск работает во время обучения для оптимизации внутренних параметров модели (весов). Такие инструменты, как Ray Tune, могут помочь в настройке гиперпараметров.
  • Регуляризация: Такие техники, как регуляризация L1/L2 или Dropout, изменяют функцию потерь или структуру сети, чтобы предотвратить чрезмерную подгонку и улучшить обобщение. При использовании вместе с градиентным спуском основной целью регуляризации является не минимизация потерь при обучении, а улучшение производительности на невидимых данных.

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

Градиентный спуск - это двигатель, на котором строятся обучающие модели для бесчисленных реальных приложений ИИ:

  1. Анализ медицинских изображений: В ИИ в здравоохранении Gradient Descent обучает модели для таких задач, как анализ медицинских изображений. Например, с помощью градиентного спуска можно обучить конволюционную нейронную сеть (CNN) для обнаружения опухолей на снимках МРТ или КТ(см. пример записи в блоге). Алгоритм минимизирует разницу между предсказанными моделью областями опухолей и аннотациями, предоставленными рентгенологами.
  2. Рекомендательные системы: Такие компании, как Netflix и Amazon, используют модели, обученные с помощью градиентного спуска, чтобы предсказывать предпочтения пользователей и рекомендовать им фильмы или товары. Алгоритм настраивает параметры модели, чтобы минимизировать ошибку между предсказанными оценками/взаимодействиями и реальным поведением пользователя, что приводит к более персонализированным рекомендациям.
  3. Автономное вождение: Модели восприятия в автономных автомобилях используют градиентный спуск во время обучения. Для таких задач, как обнаружение пешеходов, автомобилей и дорожных знаков с помощью данных с камер или LiDAR(актуально для ИИ в автомобилях), алгоритм минимизирует расхождение между предсказанными моделью ограничительными рамками или масками сегментации и реальным расположением объектов в обучающих данных.
Читать полностью