Назовите функцию потерь для логистической регрессии
Что проверяют
Знаете ли вы не только название, но и причину: почему именно логарифмическая потеря, а не среднеквадратичная. Вопрос базовый, и ответ одним словом засчитывают редко, дальше сразу спрашивают про происхождение формулы и про поведение градиента.
Как отвечать
Функция потерь это логарифмическая потеря, она же бинарная кросс-энтропия. Для одного объекта:
L = -(y * log(p) + (1 - y) * log(1 - p))где y это метка 0 или 1, а p это предсказанная вероятность класса 1, то есть сигмоида от линейной комбинации признаков. По выборке потери усредняются.
Дальше объясните происхождение: это отрицательное логарифмическое правдоподобие модели Бернулли, то есть минимизация такой потери равносильна оценке максимального правдоподобия. Отсюда и свойства.
Скажите, почему не среднеквадратичная потеря. В связке с сигмоидой она невыпукла по весам, значит у градиентного спуска появляются локальные минимумы. Кроме того, при насыщении сигмоиды производная почти нулевая, и градиент затухает как раз там, где модель ошибается сильнее всего. У логарифмической потери задача выпуклая, а градиент по весам получается простым:
dL/dw = X^T (p - y) / nто есть та же форма, что и в линейной регрессии, только с вероятностью вместо предсказания. Для многоклассовой задачи всё обобщается до категориальной кросс-энтропии с softmax.
Где спотыкаются
Говорят, что логарифмическая потеря сама справляется с дисбалансом классов. Не справляется: при сильном перекосе модели выгодно занижать вероятности редкого класса, и нужны веса классов, сдвиг порога или пересбор выборки.
Путают функцию потерь с метрикой качества. Обучение идёт по логарифмической потере, а отчитываются по полноте, точности или площади под кривой. Улучшение потери не гарантирует нужного значения метрики на выбранном пороге.
Забывают про численную устойчивость. При p, равном нулю или единице, логарифм уходит в бесконечность, поэтому вероятность обрезают либо считают потерю сразу от логитов, как это делают библиотечные реализации.