← ДокументацияDOCS / Loss Functions / Magnitude-Aware Loss

Magnitude-aware Loss: когда важна относительная точность

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

Что такое Magnitude-aware Loss?

Magnitude-aware Loss — это функция потерь, которая фокусируется на относительной точности, а не на абсолютной величине ошибки, что особенно важно в задачах с широким диапазоном значений.

Проблема классического MSE

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

Пример проблемы

Представим:

  • • Предсказание: [0.1, 1.0, 10.0]
  • • Истина: [0.2, 2.0, 20.0]

Ошибки:

0.1 vs 0.2

ошибка 0.1 → MSE = 0.01

1.0 vs 2.0

ошибка 1.0 → MSE = 1.0

10.0 vs 20.0

ошибка 10.0 → MSE = 100.0

Проблема: При том, что относительная ошибка во всех случаях одинакова — 50%, последняя пара вносит в функцию потерь штраф в 10 000 раз больше, чем первая. Модель начинает чрезмерно «заботиться» о крупных значениях и игнорировать мелкие, хотя с точки зрения процента ошибки они одинаковы.

Идея Magnitude-aware Loss

Вместо того чтобы наказывать абсолютную разницу, приводим все значения к общему масштабу, разделяя на величину истинного значения:

Нормализация:
norm_pred = pred / (|true| + ε)
norm_true = true / (|true| + ε)

Результат нормализации

После нормализации все ошибки становятся сопоставимыми:

0.1 / 0.2 = 0.5

Нормализованное значение

1.0 / 2.0 = 0.5

Нормализованное значение

10.0 / 20.0 = 0.5

Нормализованное значение

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

Математическая формула

Magnitude-aware Loss:
L_ma(y, ŷ) = MSE(y_norm, ŷ_norm)

где:
y_norm = y / (|y| + ε)
ŷ_norm = ŷ / (|y| + ε)

и ε — маленькая константа для избежания деления на ноль

Альтернативно можно использовать относительную ошибку:
L_rel(y, ŷ) = MSE((y - ŷ) / (|y| + ε))

Преимущества Magnitude-aware Loss

Равномерная важность

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

Относительная точность

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

Снижение переобучения

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

Когда применять Magnitude-aware Loss

Прогнозирование цен или доходностей

Когда важен процентный прогноз, а не абсолютная точность. Например, ошибка в 1% одинаково важна независимо от того, предсказываем ли мы цену в $1 или $1000.

Предсказание физических величин

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

Временные ряды с переменным масштабом

Когда данные имеют широкий диапазон значений или подвержены сезонным колебаниям, которые изменяют масштаб во времени.

Финансовые данные

Объемы торгов, цены активов, доходности — все метрики, где важна процентная точность относительно текущего уровня.

Сравнение с другими функциями потерь

Функция потерьТип ошибкиМасштабПрименимость
MSEАбсолютнаяНе учитываетУниверсальная
MAEАбсолютнаяНе учитываетУниверсальная
Huber LossАдаптивнаяНе учитываетС выбросами
Magnitude-aware LossОтносительнаяУчитываетШирокий диапазон
Sign-Aware LossНаправлениеНе учитываетНаправление важно

Практическая реализация

Пошаговый план внедрения:

  1. 1Проанализируйте данные — определите диапазон значений и наличие переменного масштаба
  2. 2Выберите ε — обычно ε = 1e-8 или ε = 1e-6 для избежания деления на ноль
  3. 3Реализуйте функцию потерь — используйте нормализацию или относительную ошибку
  4. 4Настройте гиперпараметры — learning rate может потребовать корректировки
  5. 5Оцените результаты — сравните с MSE на валидационной выборке

Примеры использования

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

Прогнозирование цен акций, где важно предсказать относительное изменение, а не абсолютную цену. Ошибка в 2% одинаково важна для акции за $10 и $1000.

Сенсорные данные

IoT устройства производят данные в широком диапазоне — от микровольт до киловольт. Magnitude-aware Loss обеспечивает равномерную точность по всем диапазонам.

Ключевые выводы

  • • Magnitude-aware Loss — это функция потерь, которая фокусируется на относительной точности
  • • Решает проблему MSE — устраняет перекос в сторону больших значений
  • • Обеспечивает равномерность — все значения одинаково важны независимо от масштаба
  • • Универсальность применения — подходит для задач с широким диапазоном значений
  • • Простота реализации — требует только нормализации значений

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

  • • Используйте ε = 1e-8 — это стандартное значение для избежания деления на ноль
  • • Тестируйте на валидации — сравнивайте с MSE для оценки эффективности
  • • Рассмотрите комбинированный подход — можно сочетать с другими функциями потерь
  • • Мониторьте обучение — следите за сходимостью и стабильностью
  • • Адаптируйте под задачу — возможно, потребуется настройка под специфику данных
Magnitude-aware Loss: когда важна относительная точность