Функции потерь — это математические функции, используемые в машинном обучении для поиска разницы между прогнозируемым значением и фактическим значением. Более высокие потери в модели означают, что модель не подходит.

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

Функции потерь и функции затрат

Существует небольшая разница между функциями потерь и функциями затрат. Функции потерь показывают разницу между прогнозируемым и фактическим значением только в отдельном примере, тогда как функции затрат дают скалярное значение, которое описывает производительность всей модели. Значение функции стоимости включает совокупное значение функций потерь и других параметров.

Положение функции потерь в модели

Функция потерь в модели машинного обучения используется после того, как модель выдает выходные данные. Давайте визуализируем структуру модели, мы видим, что после того, как входные данные подаются в модель, данные проходят через различные слои модели, которые имеют веса в них. Эти веса являются некоторыми инструкциями о том, как преобразовывать данные. После того, как данные проходят через все эти слои, создаются выходные данные, которые затем сравниваются с фактическими выходными данными в наборе данных, чтобы найти показатель потерь.

Затем этот показатель потерь отправляется оптимизатору модели, чья задача состоит в том, чтобы соответствующим образом изменить веса, чтобы уменьшить эти потери.

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

Типы функций потерь:

  • Средняя абсолютная ошибка (потери L1): эта функция потерь измеряет абсолютную разницу между прогнозируемым значением и фактическим значением.

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

  • Среднеквадратическая ошибка (потери L2): эта функция потерь измеряет квадрат разницы между прогнозируемым и фактическим значением.

Эта потеря также используется в задачах регрессии, но она более чувствительна к выбросам и наказывает модель за большие различия.

  • Плавная потеря L1 (Huber Loss): эта потеря представляет собой комбинацию потерь L1 и L2, поэтому до определенного определенного значения она действует как потеря L1, а после этого действует как потеря L2.

В приведенной выше формуле 𝛿 — это значение, выбранное пользователем. Значение 𝛿 определяет выброс.

  • Перекрестная потеря энтропии. Эта функция потерь используется для расчета разницы между вероятностью, предсказанной моделью, и истинным значением. Он применяется к задаче классификации и имеет типы в зависимости от количества классов.
  1. Категорная кросс-энтропийная потеря: эта функция потерь находит разницу между прогнозируемой вероятностью и фактическим значением для класса в модели, содержащей несколько классов. Уникальная особенность этой функции потерь заключается в том, что она дает значение потерь только тогда, когда модель предсказывает правильный класс.

Эта функция потерь обычно используется в задачах сегментации изображений, как вы можете видеть в приведенной выше формуле i представляет номер пикселя, что означает, что она начинается с самого первого пикселя изображения и идет к последнему. Таким образом, i можно также назвать числом данных.

2. Двоичная кросс-энтропийная потеря: эта функция потерь используется, когда в модели ровно два класса, и находит разницу между вероятностью и фактическим результатом класса.

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

Проблема дисбаланса классов переднего плана и фона

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

  • Фокусная потеря: эта потеря представляет собой вариант потери перекрестной энтропии, который решает проблему дисбаланса классов со стандартной потерей перекрестной энтропии за счет уменьшения вклада простых примеров, что позволяет изучать более сложные примеры.

Здесь pt есть не что иное, как производная от бинарной кросс-энтропийной потери. В выражении Focal Loss αявляется дисбалансом класса смещения числа примеров, а γявляется степень понижения веса, чтобы сосредоточиться на более сложных примерах.

Визуализация истинного позитива

Прежде чем понять следующую функцию потерь, давайте разберемся, что является истинным положительным результатом после того, как модель дала прогноз. На приведенных выше изображениях вы можете видеть, что первое изображение отображает истинное значение, а второе — предсказание модели, поэтому их пересечение даст нам значение Истинно положительное, поскольку и истинное значение, и модель согласны с этим. . Дополнительная часть, предсказанная моделью, считается ложноположительной, потому что на самом деле она не соответствует действительности, но все же модель считает ее истинной. Часть, которую модель не может предсказать, считается ложноотрицательным , потому что модель не включает ее в свой прогноз, но она присутствует в истинном значении. Вся остальная часть называется True Negative.

  • Dice Loss: эта функция потерь снова вычисляет разницу между вероятностью, предсказанной моделью, и истинным значением и используется в задачах сегментации. Это также борется с проблемой дисбаланса классов.

Чтобы найти Проигрыш в Dice, мы сначала найдем Коэффициент Dice:

В приведенном выше выражении рассчитывается Коэффициент игры в кости, и чтобы найти Проигрыш в кости, вы должны вычесть Коэффициент игры в кости из 1.

Заключительные слова

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

Вопрос. Может ли значение функции потерь равняться нулю?

Ссылки