Функция потерь
Функция потерь — математическая мера того, насколько сильно ошибается модель машинного обучения. Чем меньше её значение, тем точнее предсказания модели.
Что это
Функция потерь (loss function) — это математическая функция, которая измеряет расхождение между предсказанием модели и реальным ответом. Она возвращает одно число: чем оно больше, тем хуже модель справляется с задачей. Именно это число алгоритм оптимизации пытается минимизировать в процессе обучения — шаг за шагом подбирая веса модели так, чтобы ошибка становилась как можно меньше.
Зачем это нужно
Без функции потерь модель не знает, в каком направлении улучшаться. Это её единственный сигнал обратной связи. Когда в 1986 году Румелхарт, Хинтон и Уильямс формализовали алгоритм обратного распространения ошибки (backpropagation), именно градиент функции потерь стал тем, что передаётся по сети в обратном направлении. Выбор конкретной функции потерь напрямую влияет на то, чему учится модель: одна и та же архитектура нейросети с разными функциями потерь решает принципиально разные задачи.
Как это работает
На каждом шаге обучения модель делает предсказание, функция потерь сравнивает его с правильным ответом и выдаёт число-ошибку. Оптимизатор (например, SGD или Adam) вычисляет градиент этой ошибки по весам модели — то есть определяет, в какую сторону и насколько нужно сдвинуть каждый вес, чтобы ошибка уменьшилась. Затем веса обновляются, и цикл повторяется. Ключевое требование к функции потерь — она должна быть дифференцируемой, иначе градиент не посчитать.
Основные виды
- MSE (Mean Squared Error) — среднеквадратичная ошибка. Используется в задачах регрессии: суммирует квадраты разностей между предсказанием и реальным значением. Сильно штрафует за большие отклонения.
- MAE (Mean Absolute Error) — средняя абсолютная ошибка. Тоже для регрессии, но менее чувствительна к выбросам, так как не возводит разность в квадрат.
- Binary Cross-Entropy — для бинарной классификации (спам / не спам, болен / здоров). Измеряет расхождение между предсказанной вероятностью и реальной меткой 0 или 1.
- Categorical Cross-Entropy — для многоклассовой классификации. Именно её используют в большинстве классификаторов изображений, например в ResNet или EfficientNet.
- Hinge Loss — применяется в метод опорных векторов (SVM). Штрафует модель только тогда, когда она ошибается или отвечает недостаточно уверенно.
Примеры применения
- Предсказание цены квартиры: модель использует MSE, и если она предсказала 9 млн вместо 10 млн рублей, ошибка равна (10−9)² = 1. Если предсказала 5 млн — уже (10−5)² = 25, штраф вырастает непропорционально.
- Фильтр спама в почте: binary cross-entropy штрафует модель за уверенное неправильное предсказание сильнее, чем за неуверенное — это стимулирует модель не «гадать» с высокой вероятностью.
- Генерация текста в GPT-подобных моделях: используется categorical cross-entropy по словарю токенов — модель учится предсказывать следующий токен, минимизируя расхождение с реальным текстом из обучающей выборки.
- Детекция объектов (YOLO, Faster R-CNN): комбинированная функция потерь, которая одновременно штрафует за неправильный класс объекта и за неточное положение рамки на изображении.
Связанные понятия
- Градиентный спуск — алгоритм, который использует градиент функции потерь для обновления весов
- Обратное распространение ошибки (backpropagation) — метод вычисления градиентов через все слои сети
- Переобучение (overfitting) — ситуация, когда функция потерь на обучающей выборке мала, а на тестовой — велика
- Метрика качества — в отличие от функции потерь, метрика (accuracy, F1, AUC) не обязана быть дифференцируемой и служит для финальной оценки модели
- Регуляризация — добавление штрафного слагаемого к функции потерь для борьбы с переобучением (L1, L2)
Частые заблуждения
Функцию потерь часто путают с метрикой качества. Это разные вещи: функция потерь нужна для обучения и должна быть дифференцируемой, а метрика — для понятной человеку оценки результата. Например, в задаче классификации обучают модель с cross-entropy loss, а качество оценивают через accuracy или F1-score. Ещё одно заблуждение — что маленькое значение функции потерь на обучающей выборке означает хорошую модель. На самом деле это может быть признаком переобучения: модель «зазубрила» обучающие данные, но плохо обобщается на новые примеры.