Логистическая регрессия и классификация
Первая модель классификации, которую спрашивают на каждом собеседовании: сигмоида, вероятности, кросс-энтропия и линейная решающая граница. Несмотря на слово «регрессия» в названии, это рабочая лошадка классификации — от кредитного скоринга до CTR-моделей.
Почему не линейная регрессия
Пусть задача — предсказать класс: вернёт клиент кредит (1) или нет (0). Первая мысль — обучить линейную регрессию на метки 0/1 и ставить порог. Но у прямой выход не ограничен: она легко выдаст «вероятность» 3.7 или −1.2. Хуже того, MSE-лосс начнёт штрафовать модель за «слишком уверенные» правильные ответы, а далёкие от границы точки будут перетягивать прямую и двигать порог. Нужна модель, которая честно выдаёт число от 0 до 1.
Как это работает: сигмоида
Логистическая регрессия (logistic regression) считает тот же линейный score z = w·x + b, но затем пропускает его через сигмоиду (sigmoid):
Сигмоида — гладкая «ступенька»: любое число из (−∞, +∞) она сжимает в интервал (0, 1). Получившееся значение интерпретируется как вероятность класса 1: P(y=1|x) = σ(w·x + b). При z = 0 сигмоида даёт ровно 0.5 — это и есть решающая граница (decision boundary). Заметь: условие w·x + b = 0 задаёт прямую (в общем случае гиперплоскость), поэтому граница логистической регрессии всегда линейна, хотя сама сигмоида нелинейна. Чем больше норма весов |w|, тем круче ступенька — тем «увереннее» модель вблизи границы.
Лосс: почему кросс-энтропия, а не MSE
Обучают модель, максимизируя правдоподобие данных, что эквивалентно минимизации логистической потери (log loss, она же бинарная кросс-энтропия, cross-entropy):
Почему не привычный MSE? Две причины. Во-первых, MSE в паре с сигмоидой даёт невыпуклую функцию потерь — градиентный спуск может застрять; кросс-энтропия с сигмоидой выпукла, минимум один. Во-вторых, у MSE при насыщенной сигмоиде (уверенный, но неправильный ответ) градиент почти нулевой — модель «не чувствует» свою грубую ошибку. Кросс-энтропия, наоборот, наказывает уверенные ошибки почти бесконечно: −ln(p) → ∞ при p → 0. Оптимизируется всё тем же градиентным спуском, причём градиент получается изящным: ∂L/∂w = (1/n)·Σ (pi − yi)·xi.
Попробуй сначала подобрать границу руками, глядя на log loss, а затем нажми «Обучить» — градиентный спуск найдёт положение получше. Обрати внимание: с ростом числа шагов |w| растёт, ступенька становится круче, и фон вблизи границы окрашивается контрастнее — модель становится увереннее.
Порог 0.5 — не догма
Модель выдаёт вероятность, а бизнес-решение принимается по порогу (threshold). По умолчанию берут 0.5, но это осмысленно только при равной цене ошибок. В медицинском скрининге пропустить болезнь дороже, чем перестраховаться, — порог опускают (растёт полнота, recall). В спам-фильтре дороже потерять важное письмо — порог поднимают (растёт точность, precision). Выбор порога — продуктовое решение поверх модели; подробнее — в теме про метрики.
Softmax: больше двух классов
Когда классов K > 2, для каждого класса заводят свой вектор весов и считают K score-ов z1 … zK, а сигмоиду заменяют её обобщением — softmax:
Softmax превращает произвольные числа в распределение вероятностей: все положительные, сумма равна 1. При K = 2 softmax сводится к сигмоиде. Эта же конструкция стоит в выходном слое любой нейросети-классификатора и в LLM, где softmax по десяткам тысяч логитов выдаёт распределение следующего токена.
- «Почему для классификации не годится линейная регрессия с порогом?» — выход не ограничен [0, 1], MSE неверно штрафует уверенные правильные ответы, далёкие точки двигают границу.
- «Почему кросс-энтропия, а не MSE?» — с сигмоидой MSE невыпукла и даёт исчезающие градиенты при уверенных ошибках; кросс-энтропия выпукла и сильно наказывает уверенные ошибки.
- «Граница логистической регрессии линейна или нет?» — линейна: σ монотонна, условие p = 0.5 эквивалентно w·x + b = 0. Нелинейность достигается добавлением признаков (x², произведения).
- «Как связаны сигмоида и softmax?» — softmax для двух классов вырождается в сигмоиду; сигмоида — частный случай.