Глоссарий

Backpropagation

Узнай, как обратное распространение обучает нейронные сети, снижает процент ошибок и эффективно питает такие приложения ИИ, как распознавание образов и NLP.

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

Узнай больше

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

Как работает обратное распространение

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

  1. Forward Pass: Входные данные поступают в нейронную сеть, проходя через слои нейронов, каждый из которых применяет свои веса, смещения и функцию активации (например, ReLU или Sigmoid), пока не будет сгенерировано предсказание на выходе.
  2. Обратный проход: Алгоритм вычисляет ошибку (разницу между предсказанием и истинным значением), используя выбранную функцию потерь. Затем он распространяет этот сигнал об ошибке в обратном направлении через сеть, слой за слоем. Используя цепное правило из вычислений, он вычисляет градиент функции потерь относительно каждого веса и смещения в сети. Этот градиент показывает, насколько сильно небольшое изменение каждого параметра повлияет на общую ошибку. Для наглядного понимания такие ресурсы, как "Calculus on Computational Graphs", предлагают полезные объяснения.

Как только градиенты вычислены, алгоритм оптимизации, такой как Gradient Descent или его разновидности, например Stochastic Gradient Descent (SGD) или оптимизатор Adam, использует эти градиенты для обновления weights and biases сети. Цель - минимизировать функцию потерь, эффективно обучая сеть делать лучшие предсказания в последующие эпохи.

Важность в глубоком обучении

Бэкпропагация незаменима в современном глубоком обучении. Его эффективность в вычислении градиентов делает обучение очень глубоких и сложных архитектур вычислительно осуществимым. Сюда относятся такие модели, как конволюционные нейронные сети (CNN), которые отлично справляются с задачами компьютерного зрения (CV), и рекуррентные нейронные сети (RNN), обычно используемые для работы с последовательными данными, например, в обработке естественного языка (NLP). Без обратного распространения настройка миллионов параметров в таких больших моделях, как GPT-4, или в моделях, обученных на массивных наборах данных, таких как ImageNet, была бы непрактичной. Она позволяет моделям автоматически изучать сложные особенности и иерархические представления данных, что лежит в основе многих достижений ИИ с момента ее популяризации, о чем подробно рассказывается в ресурсах, посвященных истории Deep Learning. Такие фреймворки, как PyTorch и TensorFlow в значительной степени опираются на движки автоматического дифференцирования, реализующие обратное распространение.

Алгоритмы обратного распространения против алгоритмов оптимизации

Важно отличать обратное распространение от алгоритмов оптимизации. Backpropagation - это метод, используемый для вычисления градиентов (вклада в ошибку каждого параметра). Алгоритмы оптимизации, с другой стороны, - это стратегии, которые используют эти вычисленные градиенты для обновления параметров моделиweights and biases) с целью минимизации потерь. Backpropagation задает направление для улучшения, а оптимизатор определяет размер шага(скорость обучения) и способ обновления.

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

Обратное распространение неявно используется всякий раз, когда модель глубокого обучения проходит обучение. Вот два конкретных примера:

  1. Обнаружение объектов с помощью Ultralytics YOLO: при обучении Ultralytics YOLO (например YOLOv8 или YOLO11) для обнаружения объектов на таком наборе данных, как COCO, на каждой итерации обучения используется обратное распространение. После того как модель предсказывает ограничивающие рамки и классы, вычисляется потеря (например, при сравнении предсказанных рамок с истиной). Метод обратного распространения вычисляет градиенты для всех весов по всему позвоночнику модели и головке обнаружения. Затем оптимизатор использует эти градиенты для корректировки весов, улучшая способность модели точно находить и классифицировать объекты. Пользователи могут использовать платформы вроде Ultralytics HUB для управления этим процессом обучения, получая выгоду от эффективной реализации обратного распространения. Это очень важно для самых разных приложений - от автономных транспортных средств до систем безопасности.
  2. Модели обработки естественного языка: Большие языковые модели (LLM), такие как модели BERT и GPT, обучаются с помощью обратного распространения. Например, в задаче анализа настроения модель предсказывает настроение (позитивное, негативное, нейтральное) данного текста. Разница между предсказанным сентиментом и фактической меткой дает значение ошибки. Backpropagation вычисляет, какой вклад в эту ошибку внес каждый параметр в огромной сети. Затем алгоритмы оптимизации обновляют эти параметры, позволяя модели лучше понимать лингвистические нюансы, контекст и настроения в процессе обучения. Академические исследовательские группы, такие как Стэнфордская группа NLP, постоянно изучают и совершенствуют эти техники.
Читать полностью