Loss Function
Изучи, как функция потерь направляет обучение модели. Узнай, как минимизировать ошибку в таких задачах, как обнаружение объектов с Ultralytics YOLO26, и оптимизировать производительность ИИ.
Функция потерь служит математическим компасом, направляющим обучение искусственных нейронных сетей и других алгоритмов машинного обучения. По сути, она количественно оценивает ошибку между предсказанными моделью выходными данными и фактическими метками «истинного ответа», содержащимися в обучающих данных. Её можно представить как систему оценок, в которой более низкий балл означает более высокую производительность. В процессе обучения главная цель — итеративно минимизировать значение этой потери. Такая минимизация позволяет модели корректировать свои внутренние параметры, чтобы её предсказания точнее соответствовали реальности; этот процесс обеспечивается алгоритмом оптимизации, например Adam или стохастическим градиентным спуском (SGD).
Роль функции потерь в обучении модели#
Механизм обучения в ИИ во многом зависит от цикла обратной связи, создаваемого функцией потерь. После обработки моделью пакета данных функция потерь вычисляет числовое значение ошибки, представляющее расстояние между предсказанием и целевым значением. С помощью метода, называемого обратным распространением ошибки, система вычисляет градиент функции потерь по отношению к каждому из весов модели. Эти градиенты служат картой, указывающей направление и величину корректировок, необходимых для уменьшения ошибки. Затем скорость обучения определяет размер шагов при этих обновлениях, помогая модели сойтись к оптимальному решению без чрезмерного изменения параметров.
Для разных задач машинного обучения требуются определённые типы функций потерь. В регрессионном анализе, где нужно предсказывать непрерывные значения, например цены на жильё, стандартным выбором является среднеквадратичная ошибка (MSE). Напротив, в задачах классификации изображений, связанных с категориальными данными, обычно используется перекрёстная энтропия для измерения расхождения между предсказанными вероятностями и истинным классом. Продвинутые модели обнаружения объектов, такие как YOLO26, используют составные функции потерь, одновременно оптимизирующие несколько целей, объединяя такие метрики, как пересечение по объединению (IoU), для локализации и специализированные формулы, например Distribution Focal Loss (DFL) или Varifocal Loss, для оценки уверенности в классе.
Практические применения#
Функции потерь лежат в основе надёжности практически любого приложения ИИ, обеспечивая безопасную работу систем в сложных условиях.
- Автономное вождение: В сфере автономных транспортных средств безопасность зависит от точного восприятия окружающей обстановки. Тщательно настроенная функция потерь помогает системе различать пешеходов, другие автомобили и неподвижные препятствия. Минимизируя ошибки локализации при обучении на таких наборах данных, как nuScenes или KITTI, автомобиль учится точно предсказывать положение объектов, что крайне важно для предотвращения столкновений в решениях на базе ИИ в автомобильной отрасли.
- Медицинская диагностика: В анализе медицинских изображений для выявления патологий часто требуется отделить небольшие аномалии от здоровых тканей. Специализированные функции, такие как Dice Loss, применяются в задачах сегментации, например при обнаружении опухолей на МРТ-снимках. Эти функции учитывают дисбаланс классов, строго штрафуя модель за пропуск небольшой интересующей области и тем самым повышая чувствительность инструментов ИИ в здравоохранении.
Пример на Python: вычисление перекрёстной энтропии#
Хотя высокоуровневые фреймворки, такие как Ultralytics Platform, автоматически вычисляют функцию потерь во время обучения, понимание лежащей в её основе математики полезно для отладки. В следующем примере используется 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}")Различия между связанными понятиями#
Важно отличать функцию потерь от других метрик, используемых на протяжении всего конвейера машинного обучения.
- Функция потерь и метрики оценки: Функция потерь дифференцируема и используется во время обучения для обновления весов. Напротив, метрики оценки, такие как точность, прецизионность и средняя точность по всем классам (mAP), применяются после обучения для оценки производительности в понятных человеку терминах. Модель может эффективно минимизировать потерю, но при этом демонстрировать низкую точность, если функция потерь не полностью коррелирует с целью в реальном мире.
- Функция потерь и регуляризация: Функция потерь направляет модель к правильному предсказанию, а методы регуляризации, например штрафы L1 или L2, добавляются в уравнение потерь для предотвращения переобучения. Регуляризация препятствует созданию чрезмерно сложных моделей, штрафуя большие веса и помогая системе лучше обобщать данные на ранее не встречавшиеся тестовые данные.
- Функция потерь и функция вознаграждения: В обучении с подкреплением агент учится, максимизируя совокупное «вознаграждение», а не минимизируя потери. Концептуально это противоположные величины, но обе служат целевой функцией, управляющей процессом оптимизации.









