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

Классификация

В задачах классификации функция потерь вычисляет потери при неправильной классификации. Наиболее часто используемые функции потерь для классификаций: кросс-энтропийные потери, потери шарнира и Кульбак-Лейблер.

Cross-Entropy Loss измеряет эффективность классификации. Это комбинация отрицательной логарифмической потери правдоподобия (NLL) и Softmax.

Регрессия

Некоторыми из наиболее часто используемых функций потерь для задач регрессии являются потери L1, MSE (потери L2) и сглаженные потери L1.
Потери L1, также известные как средняя абсолютная ошибка (MAE) измеряет поэлементную разницу между прогнозируемым выходом и ожидаемым выходом. При небольших значениях ошибки этим типом ошибки можно пренебречь. В PyTorch функция nn.L1Loss

Ошибка L2, также известная как Среднеквадратическая ошибка (MSE), измеряет среднеквадратичную ошибку между элементами прогнозируемого и ожидаемого результата. Как и следовало ожидать, эта функция потерь усиливает большие ошибки гораздо более агрессивно по сравнению с потерями L1 и, таким образом, генерирует более высокие значения ошибок для выбросов. В PyTorch функция nn.MSELoss

Smooth L1 Loss — это адаптивный метод, который для небольших значений ошибок использует MSE, а для больших ошибок использует L1 Loss. В PyTorch функция nn.SmoothL1Loss

Взвешенные функции потерь

Во многих случаях модель имеет как проблему классификации, так и проблему регрессии, например, если ваша модель пытается обнаружить кошек на изображении (классификация) и пытается локализовать их, рисуя вокруг них ограничивающие рамки (регрессия), комбинация функции потерь можно использовать с весом 0,5*cross_entropy_loss + 0,5*MSELoss.