Узнайте, как функция потерь влияет на обучение модели. Научитесь минимизировать ошибки при выполнении таких задач, как обнаружение объектов с помощью Ultralytics , и оптимизировать производительность ИИ.
Функция потери служит математическим компасом, который направляет обучение искусственных нейронных сетей и других алгоритмов машинного обучения. По сути, она количественно оценивает ошибку между прогнозируемыми результатами модели и фактическими «реальными» метками, найденными в учебных данных. Ее можно представить как систему оценки, в которой более низкий балл означает более высокую производительность. В процессе обучения основной целью является постепенное минимизирование этого значения потери. Такая минимизация позволяет модели корректировать свои внутренние параметры, чтобы ее прогнозы более точно соответствовали реальности. Этот процесс осуществляется с помощью алгоритма оптимизации, такого как Adam стохастический градиентный спуск (SGD).
Механизм обучения в ИИ в значительной степени зависит от цикла обратной связи, генерируемого функцией потерь. После того, как модель обрабатывает пакет данных, функция потерь вычисляет числовое значение ошибки, представляющее расстояние между прогнозом и целью. С помощью метода, называемого обратной пропагацией, система вычисляет градиент потери по отношению к каждому из весов модели. Эти градиенты действуют как карта, указывающая направление и величину корректировок, необходимых для уменьшения ошибки. Затем скорость обучения контролирует размер шагов, предпринимаемых во время этих обновлений, обеспечивая сходимость модели к оптимальному решению без перерегулирования.
Различные задачи машинного обучения требуют использования определенных типов функций потерь. Для регрессионного анализа, целью которого является прогнозирование непрерывных значений, таких как цены на жилье, стандартным выбором является среднеквадратичная ошибка (MSE). И наоборот, для задач классификации изображений, включающих категориальные данные, обычно используется кросс-энтропийная потеря для измерения расхождения между прогнозируемыми вероятностями и истинным классом. В передовых моделях обнаружения объектов, таких как YOLO26, используются составные функции потерь, которые оптимизируют несколько целей одновременно, сочетая такие метрики, как пересечение над объединением (IoU) для локализации, и специализированные формулы, такие как фокальная потеря распределения (DFL) или варифокальная потеря для уверенности в классе.
Функции потерь являются двигателем надежности практически каждого приложения искусственного интеллекта, обеспечивая возможность безопасной работы систем в сложных условиях.
Хотя высокоуровневые фреймворки, такие как Ultralytics , автоматически обрабатывают вычисление потерь во время обучения, понимание лежащей в основе математики полезно для отладки. В следующем примере используется PyTorch— бэкэнд для Ultralytics — для вычисления потери между прогнозом и целью.
import torch
import torch.nn as nn
# Define the loss function (CrossEntropyLoss includes Softmax)
loss_fn = nn.CrossEntropyLoss()
# Mock model output (logits) for 3 classes and the true class (Class 0)
# A high score for index 0 indicates a correct prediction
predictions = torch.tensor([[2.5, 0.1, -1.2]])
ground_truth = torch.tensor([0])
# Calculate the numerical loss value
loss = loss_fn(predictions, ground_truth)
print(f"Calculated Loss: {loss.item():.4f}")
Важно отличать функцию потерь от других метрик, используемых в процессе машинного обучения.