Функции потерь в машинном обучении

Материал из MachineLearning.

Версия от 23:03, 18 июля 2026; Amir Baidanov (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Статья написана с использованием LLM GPT-4 Turbo и проверена участником Amir Baidanov 03:03, 19 июля 2026 (MSD)


Функция потерь (loss function, также cost function или objective function) — ключевое понятие в машинном обучении, определяющее числовую меру того, насколько плохо модель предсказывает ожидаемые значения. Функция потерь является количественным выражением ошибки модели и служит целью оптимизации: в процессе обучения параметры модели подбираются так, чтобы минимизировать значение функции потерь на обучающей выборке. Выбор правильной функции потерь критически важен, поскольку он определяет, каким именно образом модель будет «учиться» и на какие аспекты данных обращать внимание.

Содержание

Интуитивная картина

Представьте, что вы учите студента решать задачи. Вы даёте ему ответы и оцениваете, насколько они отличаются от правильных. Но вы можете оценивать по-разному: вы можете считать каждый пункт ошибки одинаково важным, а можете сильнее наказывать за большие ошибки, считая, что лучше ошибиться немного, чем сильно. Вы также можете по-разному относиться к ошибкам разных типов. Так и функция потерь определяет «штраф», который получает модель за неправильные предсказания.

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

Важно понимать: функция потерь — это то, что модель минимизирует во время обучения, но это не обязательно та метрика, по которой вы будете оценивать её качество. Например, в задаче ранжирования вы можете использовать NDCG или MAP для оценки, а в качестве функции потерь использовать pairwise loss или listwise loss, которые лучше поддаются оптимизации.

Математическая постановка

В общем виде задача обучения модели формулируется как минимизация эмпирического риска:

\hat{\theta} = \arg\min_{\theta} \frac{1}{N} \sum_{i=1}^N L(f_{\theta}(x_i), y_i)

где:

  • \theta — параметры модели;
  • N — число объектов в обучающей выборке;
  • x_i — признаки i-го объекта;
  • y_i — истинная метка i-го объекта;
  • f_{\theta}(x) — предсказание модели;
  • L(\hat{y}, y) — функция потерь, измеряющая ошибку между предсказанием и истинным значением.

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

Функции потерь для регрессии

Среднеквадратичная ошибка (MSE)

L_{MSE}(y, \hat{y}) = \frac{1}{N} \sum_{i=1}^N (y_i - \hat{y}_i)^2

Свойства:

  • Сильно штрафует за большие отклонения;
  • Дифференцируема и имеет простой градиент;
  • Чувствительна к выбросам;
  • Соответствует максимизации правдоподобия при нормальном распределении ошибок.

Средняя абсолютная ошибка (MAE)

L_{MAE}(y, \hat{y}) = \frac{1}{N} \sum_{i=1}^N |y_i - \hat{y}_i|

Свойства:

  • Штрафует линейно, менее чувствительна к выбросам;
  • Не дифференцируема в нуле (используются субградиенты);
  • Соответствует максимизации правдоподобия при распределении Лапласа.

Функция Хубера

L_{Huber}(y, \hat{y}) = \begin{cases} \frac{1}{2}(y - \hat{y})^2, & |y - \hat{y}| \leq \delta \\ \delta \cdot |y - \hat{y}| - \frac{1}{2}\delta^2, & |y - \hat{y}| > \delta \end{cases}

Гибрид MSE и MAE: квадратична для малых ошибок и линейна для больших. Устойчива к выбросам, но дифференцируема везде.

Среднеквадратичная логарифмическая ошибка (MSLE)

L_{MSLE}(y, \hat{y}) = \frac{1}{N} \sum_{i=1}^N (\log(1 + y_i) - \log(1 + \hat{y}_i))^2

Используется когда целевая переменная имеет большой разброс, а относительная ошибка важнее абсолютной.

Функции потерь для классификации

Кросс-энтропия (Cross-Entropy / Log Loss)

Для бинарной классификации:

L_{CE}(y, \hat{y}) = -\frac{1}{N} \sum_{i=1}^N [y_i \log \hat{y}_i + (1 - y_i) \log(1 - \hat{y}_i)]

Для многоклассовой классификации (categorical cross-entropy):

L_{CE}(y, \hat{y}) = -\frac{1}{N} \sum_{i=1}^N \sum_{c=1}^C y_{i,c} \log \hat{y}_{i,c}

Свойства:

  • Широко используется для задач классификации;
  • Соответствует максимизации правдоподобия;
  • Наказывает модель за низкую уверенность в правильном классе;
  • Хорошо работает с softmax и сигмоидом.

Шарнирная функция потерь (Hinge Loss)

L_{Hinge}(y, \hat{y}) = \max(0, 1 - y \cdot \hat{y})

Используется в методе опорных векторов. Свойства:

  • Позволяет строить разделяющую гиперплоскость с максимальным отступом;
  • Менее чувствительна к выбросам, чем кросс-энтропия;
  • Не дифференцируема в точке y \cdot \hat{y} = 1.

Экспоненциальная функция потерь

L_{Exp}(y, \hat{y}) = \exp(-y \cdot \hat{y})

Используется в AdaBoost. Сильно штрафует за неправильные предсказания, чувствительна к выбросам.

Focal Loss

L_{Focal}(y, \hat{y}) = -\alpha (1 - \hat{y})^{\gamma} \log \hat{y}

Предложена для борьбы с дисбалансом классов [1]. Снижает вес легко классифицируемых объектов, фокусируясь на сложных.

Функции потерь для ранжирования

Pairwise Loss

Штрафует модель за неправильный порядок пар объектов. Пример — RankNet с кросс-энтропийной функцией потерь:

L_{RankNet} = -\log \frac{1}{1 + \exp(-(s_i - s_j))}

Listwise Loss

Учитывает порядок всех объектов в списке. Пример — LambdaRank, ListNet [1].

Функции потерь для обучения представлений

Contrastive Loss

L_{Contrastive}(x_i, x_j, y) = y \cdot d^2 + (1 - y) \cdot \max(0, m - d)^2

где d — расстояние между представлениями, m — отступ. Используется в сиамских нейронных сетях для обучения сходству.

Triplet Loss

L_{Triplet}(a, p, n) = \max(0, \|f(a) - f(p)\|^2 - \|f(a) - f(n)\|^2 + \alpha)

Широко используется в задачах распознавания лиц [1].

InfoNCE Loss

Вариант контрастивного обучения, использующий кросс-энтропию для различения положительных и отрицательных пар. Используется в современных методах самообучения (SimCLR, MoCo) [1].

Функции потерь для сегментации

Dice Loss

L_{Dice} = 1 - \frac{2 \cdot |\hat{Y} \cap Y|}{|\hat{Y}| + |Y|}

Широко используется в медицинской сегментации, особенно при дисбалансе классов [1].

Tversky Loss

Обобщение Dice Loss с дополнительными параметрами для управления балансом между false positives и false negatives.

Lovász-Softmax Loss

Приближение к метрике IoU (Intersection over Union), используемое для прямой оптимизации этой метрики [1].

Пример: сравнение MSE и MAE

Рассмотрим задачу регрессии на данных с выбросами. Пусть истинная зависимость: y = 2x + \epsilon, где \epsilon \sim \mathcal{N}(0, 0.1). Добавим выбросы: 10% объектов имеют значение y на 10 порядков больше.

При обучении с MSE:

  • Модель сильно смещается в сторону выбросов, пытаясь уменьшить квадратичную ошибку;
  • Предсказания смещены, качество на тестовых данных (без выбросов) падает.

При обучении с MAE:

  • Модель игнорирует выбросы, так как ошибка растёт линейно;
  • Предсказания остаются близкими к истинной зависимости.

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

Связь с функциями активации

Выбор функции потерь тесно связан с функцией активации на выходном слое:

  • Для бинарной классификации: сигмоид + бинарная кросс-энтропия;
  • Для многоклассовой: softmax + категориальная кросс-энтропия;
  • Для регрессии: линейная активация + MSE или MAE.

Неправильная комбинация может привести к проблемам с обучением: например, использование MSE с сигмоидом приводит к проблеме затухающего градиента.

Выбор функции потерь

Критерии выбора

1. **Тип задачи**: регрессия, классификация, ранжирование, сегментация; 2. **Распределение данных**: наличие выбросов, дисбаланс классов; 3. **Требования к модели**: устойчивость, интерпретируемость; 4. **Вычислительные ограничения**: сложность вычисления и дифференцирования.

Практические рекомендации

  • Для регрессии с выбросами — использовать MAE или Huber loss;
  • Для регрессии без выбросов — MSE;
  • Для классификации со сбалансированными классами — кросс-энтропия;
  • Для классификации с дисбалансом — focal loss или взвешенная кросс-энтропия;
  • Для ранжирования — pairwise или listwise loss;
  • Для сегментации — Dice loss или Tversky loss.

Современные исследования

Обучение с подкреплением

Разработка функций потерь, учитывающих долгосрочные вознаграждения (policy gradient, actor-critic).

Self-supervised learning

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

Адаптивные функции потерь

Методы, автоматически подбирающие функцию потерь под конкретную задачу (например, выбор между MSE и MAE на основе данных).

Обучение с несколькими функциями потерь

Многозадачное обучение с комбинацией функций потерь, где каждая задача имеет свою функцию потерь, а общая функция — взвешенная сумма.

Краткий вывод

Функция потерь является центральным понятием в обучении моделей машинного обучения, определяя, как именно модель будет минимизировать ошибку. Выбор правильной функции потерь критически важен: она должна соответствовать типу задачи, свойствам данных и требованиям к модели. Функция потерь не обязана совпадать с финальной метрикой качества — это оптимизационная цель, которая может быть выбрана исходя из удобства оптимизации. Основные функции потерь включают MSE, MAE и Huber для регрессии, кросс-энтропию, hinge и focal loss для классификации, контрастивные и triplet loss для обучения представлений, Dice и Tversky loss для сегментации. Современные исследования направлены на разработку адаптивных, устойчивых и эффективных функций потерь для сложных задач.

См. также

Примечания


Литература

  1. Goodfellow I., Bengio Y., Courville A. (2016). Deep Learning. MIT Press.
  2. Bishop C. M. (2006). Pattern Recognition and Machine Learning. Springer.
  3. Lin T. Y., Goyal P., Girshick R., He K., Dollár P. (2017). Focal loss for dense object detection. Proceedings of the IEEE International Conference on Computer Vision, 2980–2988.
  4. Schroff F., Kalenichenko D., Philbin J. (2015). FaceNet: A unified embedding for face recognition and clustering. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 815–823.
  5. van den Oord A., Li Y., Vinyals O. (2018). Representation learning with contrastive predictive coding. arXiv:1807.03748.
  6. Milletari F., Navab N., Ahmadi S. A. (2016). V-Net: Fully convolutional neural networks for volumetric medical image segmentation. 2016 Fourth International Conference on 3D Vision, 565–571.
  7. Berman M., Triki A. R., Blaschko M. B. (2018). The Lovász-Softmax loss: A tractable surrogate for the optimization of the intersection-over-union measure in neural networks. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 4413–4421.
  8. Cao Z., Qin T., Liu T. Y., Tsai M. F., Li H. (2007). Learning to rank: from pairwise approach to listwise approach. Proceedings of the 24th International Conference on Machine Learning, 129–136.
  9. Hastie T., Tibshirani R., Friedman J. (2009). The Elements of Statistical Learning. Springer.

Ссылки

Личные инструменты