Глоссарий

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

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

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

Узнай больше

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

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

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

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

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

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

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

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

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

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

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