Скорость обучения
Узнайте, как скорость обучения влияет на обучение модели. Узнайте, как оптимизировать размер шага для Ultralytics , чтобы достичь SOTA-производительности в обнаружении объектов и не только.
Скорость обучения — это важная
гиперпараметрическая настройка, которая
определяет размер шага, который модель делает в процессе оптимизации. В контексте обучения нейронной сети
она контролирует, насколько обновляются внутренние веса модели в ответ на оцениваемую ошибку каждый раз, когда модель
обрабатывает пакет данных. Представьте себе человека, спускающегося с горы в долину (самая низкая точка
ошибки); скорость обучения определяет длину его шага. Если шаг слишком большой, он может полностью
перешагнуть долину и не достичь дна. Если шаг слишком маленький, достижение цели может занять нереально
много времени.
Дилемма «Золотилочка» в оптимизации
Поиск оптимальной скорости обучения часто описывается как балансировка в рамках
рабочих процессов машинного обучения. Цель состоит в том, чтобы
минимизировать функцию потерь, которая измеряет
разницу между прогнозами модели и фактическими данными. Этот процесс в значительной степени зависит от
алгоритма оптимизации, такого как
стохастический градиентный спуск (SGD)
или Adam , для навигации по ландшафту потерь
.
-
Слишком высокая скорость обучения: если значение установлено слишком высоким, обновления весов модели будут резкими.
Это может привести к явлению «перерегулирования», когда модель не сходится к решению, а
вместо этого сильно колеблется или расходится. Эта нестабильность иногда может вызвать
проблему взрывного градиента, делая
процесс обучения бесполезным.
-
Слишком низкая скорость обучения: с другой стороны, чрезвычайно маленький размер шага гарантирует, что модель будет
осторожно двигаться к минимуму, но это может привести к
недостаточному приспособлению, поскольку процесс обучения становится
мучительно медленным. Модель может фактически застрять в локальном минимуме или потребовать тысячи дополнительных
эпох для обучения простым шаблонам, что приведет к потере вычислительных
ресурсов. Исследователи часто обращаются к
PyTorch по оптимизации, чтобы понять,
как различные алгоритмы взаимодействуют с этими значениями.
Применение в реальном мире
Влияние корректировки скорости обучения очевидно в различных отраслях с высокими ставками, где
используются задачи компьютерного зрения.
-
Системы автономного вождения: при разработке
автономных транспортных средств инженеры используют обширные
наборы данных для обучения моделей обнаружения объектов с целью идентификации
пешеходов и дорожных знаков. При применении
переноса обучения к предварительно обученной модели, такой как
YOLO26, разработчики обычно используют гораздо меньшую скорость обучения
, чем при первоначальном обучении. Эта «точная настройка» гарантирует, что модель учится нюансам
конкретных условий вождения (например, заснеженные дороги по сравнению с пустынными шоссе) без стирания общих возможностей
извлечения характеристик, которыми она уже обладает.
-
Медицинская диагностическая визуализация: при
анализе медицинских изображений, например при обнаружении
опухолей на МРТ-сканах, точность имеет первостепенное значение. Высокая скорость обучения в данном случае создает риск того, что модель пропустит
незначительные различия в текстуре, которые отличают злокачественную ткань от доброкачественной. Практикующие специалисты часто используют
метод, называемый «разминка скорости обучения», постепенно увеличивая скорость от нуля до целевого значения, чтобы
стабилизировать ранние этапы обучения, обеспечивая
стабилизацию весов нейронной сети в стабильной
конфигурации перед началом агрессивного обучения. Вы можете узнать больше об этих стратегиях в
кратком курсеGoogle обучению.
Дифференциация смежных терминов
Важно отличать скорость обучения от других параметров обучения, так как они часто настраиваются в
одних и тех же файлах конфигурации, но служат разным целям:
-
Скорость обучения и размер партии: в то время как скорость обучения контролирует величину
обновления, размер партии определяет количество
обрабатываемых обучающих выборок перед обновлением. Между этими двумя параметрами существует тесная взаимосвязь; часто при
увеличении размера партии необходимо также увеличить скорость обучения, чтобы сохранить эффективность обучения — эта концепция
рассматривается в статьях, посвященных обучению с большими партиями.
-
Скорость обучения и затухание: затухание — это стратегия, при которой скорость обучения систематически
снижается с течением времени. Планировщик может снижать скорость в 10 раз каждые 30 эпох. Это помогает модели
сделать большие концептуальные скачки на раннем этапе, а затем уточнить свою точность с помощью небольших шагов к концу обучения. Это
стандартная функция в Python Ultralytics Python .
Настройка скорости обучения в Ultralytics YOLO
При использовании современных фреймворков можно легко настроить начальную скорость обучения (lr0) и конечная
доля скорости обучения (lrf). Ниже приведен пример настройки с использованием
Платформа Ultralytics совместимый клиент для выполнения индивидуальной тренировки.
from ultralytics import YOLO
# Load the YOLO26 model (latest state-of-the-art architecture)
model = YOLO("yolo26n.pt")
# Train the model with a custom initial learning rate
# lr0=0.01 sets the initial rate
# lrf=0.01 sets the final learning rate to (lr0 * lrf)
results = model.train(data="coco8.yaml", epochs=10, lr0=0.01, lrf=0.01)
Для опытных пользователей такие методы, как
LR Finder (популяризованный fast.ai), могут существенно
автоматизировать поиск оптимального начального значения путем запуска короткой пробной эпохи, в которой скорость экспоненциально
увеличивается до тех пор, пока потери не расходятся. Освоение этого гиперпараметра часто является ключом к достижению
SOTA (State-of-the-Art) производительности в ваших проектах искусственного интеллекта.