😎 Почему иногда используют «обманчиво плохую» loss-функцию на этапе обучения
Иногда для обучения выбирают лосс-функцию, которая не совпадает с целевой метрикой — и даже, на первый взгляд, плохо её отражает.
Это делается не по ошибке, а потому что: — Целевая метрика негладкая или недифференцируемая, например, F1-score, Precision\@K, Accuracy. Их нельзя напрямую оптимизировать с помощью градиентного спуска. — Взамен используют surrogate loss — «замещающую» функцию, которую можно эффективно минимизировать. Например: ✔️log-loss для классификации, ✔️hinge loss для SVM, ✔️MSE вместо MAE в регрессии.
Иногда surrogate loss вообще не похож на целевую метрику — и всё равно работает. Это парадокс: модель учится не по той метрике, которую мы хотим улучшить, но всё равно её улучшает.
Такой выбор — компромисс между математической удобством и практической целью. И это одна из причин, почему хорошие метрики ≠ хорошие loss-функции, и наоборот.
😎 Почему иногда используют «обманчиво плохую» loss-функцию на этапе обучения
Иногда для обучения выбирают лосс-функцию, которая не совпадает с целевой метрикой — и даже, на первый взгляд, плохо её отражает.
Это делается не по ошибке, а потому что: — Целевая метрика негладкая или недифференцируемая, например, F1-score, Precision\@K, Accuracy. Их нельзя напрямую оптимизировать с помощью градиентного спуска. — Взамен используют surrogate loss — «замещающую» функцию, которую можно эффективно минимизировать. Например: ✔️log-loss для классификации, ✔️hinge loss для SVM, ✔️MSE вместо MAE в регрессии.
Иногда surrogate loss вообще не похож на целевую метрику — и всё равно работает. Это парадокс: модель учится не по той метрике, которую мы хотим улучшить, но всё равно её улучшает.
Такой выбор — компромисс между математической удобством и практической целью. И это одна из причин, почему хорошие метрики ≠ хорошие loss-функции, и наоборот.