---
title: Функции потерь
seo:
  title: Функции потерь — Data Scientist
  description: Тема «Функции потерь» для собеседования Data Scientist. Что такое кросс-энтропия? Назовите пять функций потерь.
---

[Все темы Data Scientist](/data-scientist)

## <strong>Что такое кросс-энтропия?</strong> [#q-14bee738d69b81c7a099c849a353b452]

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

:::note[Ссылки для изучения]

1. [Кросс-энтропия в ML](https://habr.com/ru/articles/686806/)
   :::

---

## <strong>Назовите пять функций потерь.</strong> [#q-14bee738d69b8104be44c923869f5245]

Основные функции потерь&#58;

1. <strong>Среднеквадратичная ошибка</strong> <code>&#40;MSE&#41;</code>&#58;
   Используется в задачах регрессии для измерения среднеквадратичной разницы
   между предсказанными и фактическими значениями.

1. <strong>Кросс-энтропия</strong>&#58; Часто применяется в задачах
   классификации для измерения расхождения между фактическими и предсказанными
   вероятностями классов.

1. Hinge loss&#58; Используется для обучения классификаторов с отступом, например линейного SVM.

1. <strong>Абсолютная ошибка</strong> <code>&#40;MAE&#41;</code>&#58; Еще одна
   функция потерь для задач регрессии, измеряющая среднее абсолютное отклонение
   между предсказанными и фактическими значениями.

1. <strong>Хьюбера потеря</strong>&#58; Альтернатива среднеквадратичной ошибке,
   которая менее чувствительна к выбросам в данных, используется также в задачах
   регрессии.

:::note[Ссылки для изучения]

1. [Функции потерь в ML](https://id-lab.ru/posts/developers/funkcii/)
   :::

---

## <strong>Какие функции потерь для классификации вы знаете?</strong> [#q-14bee738d69b817da663e08852a9d6fd]

Для классификации часто используются следующие функции потерь&#58;

1. <strong>Кросс-энтропия</strong> <code>&#40;Cross&#45;Entropy&#41;</code>&#58;
   Часто используется в задачах бинарной и многоклассовой классификации. Эта
   функция измеряет расхождение между фактическими и предсказанными
   вероятностями классов.

1. <strong>Логарифмическая потеря</strong> <code>&#40;Log Loss&#41;</code>&#58;
   Аналогично кросс-энтропии, используется для оценки вероятностей предсказанных
   классов и часто используется в задачах бинарной и многоклассовой
   классификации.

1. <strong>Hinge Loss</strong>&#58; Обычно используется в задачах обучения
   опорных векторов <code>&#40;SVM&#41;</code> для максимизации зазора между
   классами.

1. <strong>Exponential Loss</strong>&#58; Используется в алгоритмах градиентного
   бустинга для классификации, таких как <code>AdaBoost</code>, для минимизации
   ошибок весовых коэффициентов.

1. <strong>Focal Loss</strong>&#58; Разработана для улучшения обучения моделей в
   задачах с сильным дисбалансом классов, минимизируя потери для хорошо
   классифицированных примеров.

:::note[Ссылки для изучения]

1. [Функции потерь для классификации](https://dzen.ru/a/ZaZguRUfIwBOUjHY)
   :::

---

## <strong>Какие функции потерь для регрессии вы знаете?</strong> [#q-14bee738d69b81d59825c0ad9ec9970b]

Для задач регрессии часто используются следующие функции потерь&#58;

1. <strong>Среднеквадратичная ошибка</strong> <code>&#40;MSE&#41;</code>&#58;
   Это наиболее распространенная функция потерь для задач регрессии. Она
   измеряет среднеквадратичную разницу между предсказанными и фактическими
   значениями.

1. <strong>Средняя абсолютная ошибка</strong> <code>&#40;MAE&#41;</code>&#58;
   Эта функция потерь измеряет среднее абсолютное отклонение между
   предсказанными и фактическими значениями.

1. <strong>Квантильная потеря</strong> <code>&#40;Quantile Loss&#41;</code>&#58;
   Позволяет оценивать квантили целевой переменной и используется в задачах, где
   важно учитывать не только среднее значение, но и дисперсию.

1. <strong>Хьюберова потеря</strong> <code>&#40;Huber Loss&#41;</code>&#58; Эта
   функция является комбинацией MSE и MAE и более устойчива к выбросам в данных.

1. Средняя квадратичная логарифмическая ошибка (MSLE)&#58; Сравнивает log(1 + y) и log(1 + прогноз) для неотрицательных значений. Она оценивает расхождение в логарифмическом масштабе.

:::note[Ссылки для изучения]

1. [Функции потерь в ML](https://id-lab.ru/posts/developers/funkcii/)
   :::

---

## Можно ли использовать MSE для классификации и чем она отличается от кросс-энтропии? [#q-14bee738d69b8110be1dd2351290ccf5]

MSE можно применять к вероятностным прогнозам классификации. В бинарной задаче квадрат разности вероятности и метки 0/1 называется оценкой Брайера. Выбор между ней и кросс-энтропией зависит от цели и свойств оптимизации.

1. Формат вывода&#58; вероятности являются числами, поэтому их можно сравнивать с метками 0/1 через MSE.

1. Оптимизация&#58; MSE после сигмоиды может давать малые градиенты при уверенных ошибочных прогнозах; кросс-энтропия обычно лучше подходит для обучения логистической регрессии.

1. Неотрицательность&#58; MSE всегда неотрицательна, поскольку усредняет квадраты ошибок. Сама функция потерь не ограничивает диапазон выходов модели.

:::note[Ссылки для изучения]

1. [Функции потерь для классификации](https://dzen.ru/a/ZaZguRUfIwBOUjHY)
   :::

---

## Чем различаются MAE и MAPE и какая метрика понятнее бизнесу? [#q-14bee738d69b811b816cdd91ca6fd7fb]

Среднее абсолютное отклонение <code>&#40;MAE&#41;</code> и средняя абсолютная процентная ошибка <code>&#40;MAPE&#41;</code> обе измеряют среднее отклонение предсказанных значений от фактических, но существует небольшая, но важная разница между ними&#58;

<strong>MAE (Mean Absolute Error)</strong> измеряет среднее абсолютное
отклонение между предсказанными и фактическими значениями. Формула
<code>MAE</code>&#58;

Где <InlineMath tex={"y_i"} /> - фактическое значение, <InlineMath tex={"\\hat{y_i}"} /> - предсказанное значение, а <InlineMath tex={"n"} /> - количество наблюдений.

$$
MAE = \frac{1}{n} \sum^n_{i=1} |y_i - \hat{y_i}|
$$

<strong>MAPE (Mean Absolute Percentage Error)</strong> выражает среднее
абсолютное отклонение в процентах от фактических значений. Формула
<code>MAPE</code>&#58;

$$
MAPE= \frac{100}{n} \sum^n_{i=1} |\frac{y_i-\hat{y_i}}{y_i}|
$$

Разница между ними состоит в том, что <code>MAPE</code> выражается в процентах и показывает относительную ошибку предсказаний по сравнению с фактическими значениями, в то время как <code>MAE</code> показывает абсолютное отклонение в том же масштабе, что и фактические значения.

Относительно того, какая из них более понятна для бизнеса, это зависит от конкретного контекста и того, как компания интерпретирует и использует ошибки в своей деятельности. <code>MAPE</code> может быть более интуитивно понятной метрикой для бизнеса, так как она выражена в процентах и позволяет оценить ошибку относительно размера фактических значений. Однако в некоторых случаях более прямолинейное представление <code>MAE</code> может быть также полезным.

:::note[Ссылки для изучения]

1. [Функции потерь в ML](https://id-lab.ru/posts/developers/funkcii/)
   :::
