alterna ai
ALTERNA AI / ГЛАВА 06 · 02

06.2 От оценки к решению о классе

На предыдущей странице: подбираем прямую по данным.

Сначала вычислим числовую оценку, затем вероятность и только потом решение. Изменение порога не меняет саму модель.

Подбор прямой и разделение точек позволяют увидеть процесс обучения на простых данных. Проверочные ответы не участвуют в исправлениях.

Score, вероятность и решение — три разных объекта

Для бинарной метки y∈{0,1} сначала вычисляется z=wᵀx+b, затем p=σ(z), затем класс по порогуτ. Линейный score не ограничен, sigmoid лежит между0и1, класс дискретен. Logistic regression нелинейна по p, но при обычных признаках её decision boundary остаётся гиперплоскостью. N02 §6.2.2.

p=11+e−z,y^=1[p≥τ],wTx+b=ln⁡τ1−τ.p=\frac1{1+e^{-z}},\qquad \hat y=\mathbf1[p\ge\tau],\qquad w^Tx+b=\ln\frac{\tau}{1-\tau}.

Приτ=.5 граница z=0. При z=ln3 вероятность.75. Повышениеτдо.8 изменит класс с1на0, но не p и не weights. Настройка порога — решение о действиях системы, не новое обучение признакам.

Для обучения естественна binary cross-entropy. Устойчивое выражение непосредственно через logit:

L(z,y)=max⁡(z,0)−yz+ln⁡(1+e−∣z∣),∂L∂z=σ(z)−y.L(z,y)=\max(z,0)-yz+\ln(1+e^{-|z|}),\qquad \frac{\partial L}{\partial z}=\sigma(z)-y.

При z=0,y=1 loss=ln2, gradient−.5. Даже при ошибочном насыщенном p derivative по logit loss не обязан исчезать. Если же отдельно округлить sigmoid до0 и взять log0, появится искусственная численная проблема.

Эксперимент. Меняйтеτпри фиксированных weights и наблюдайте confusion matrix. Затем меняйте b: перемещается score-поле и изменяются сами вероятности. Нулевой w даёт постоянный score; рисовать обычную разделяющую прямую в этом случае неправильно.

from math import exp,log
z=log(3)
p=1/(1+exp(-z))
assert abs(p-.75)<1e-12

Код повторяет только что разобранные операции. Полный проверяемыйPython-пример главы доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.

Score и sigmoid остаются прежними, меняется решение.

Знакомые точки и новые данные. Как этот вопрос продолжает полученный результат?

Python-примеры главы 06 Академическая база →