alterna ai
ALTERNA AI / ГЛАВА 04 · 05

04.5 Как штрафовать неверную уверенность

На предыдущей странице: сколько неизвестности осталось.

Если модель дала правильному исходу очень маленькую долю, штраф должен быть большим. Разберём средний штраф и отличие от собственной неопределённости данных.

Модель даёт каждому из4кандидатов вероятность1/4.

Неожиданность под неправильной моделью

Пусть истинное/целевое распределение p, а прогноз модели q на тех же категориях. Средний штраф−ln qᵢ взвешиваем частотами p, а не q:

H(p,q)=−∑ipiln⁡qi,DKL(p∥q)=∑ipiln⁡piqi=H(p,q)−H(p).H(p,q)=-\sum_i p_i\ln q_i,\qquad D_{KL}(p\Vert q)=\sum_i p_i\ln\frac{p_i}{q_i}=H(p,q)-H(p).

При фиксированном p минимизация CE по q эквивалентна минимизации KL. Для нормированных дискретных распределений KL≥0, равенство при p=q. Неотрицательность следует из ln t≤t−1; её нельзя «обеспечивать» модулем ошибочного результата. M04,M07.

Для p=[.5,.25,.25],q=[.25,.5,.25]: H(p)=1.039720771,CE=1.213007566,KL=.173286795=ln2/4. Если q=p, CE не обязана быть0: она равна энтропии target. Для one-hot target категорииj энтропия0 и CE=−ln qⱼ.

Граница. Если pᵢ>0,qᵢ=0, CE и KL бесконечны: модель запретила возможный целевой исход. Это содержательный математический результат, не NaN. Если pᵢ=0, вклад0 независимо от qᵢ. При p=q с нулевыми координатами KL остаётся0.

Исследовать. При неизменном p постепенно уменьшайте q одной частой категории до0. Штраф растёт неограниченно. Затем поменяйте p и q местами: KL вообще несимметрична и не является метрикой расстояния. В частности, для[1,0] и[.5,.5] одно направление равно ln2, обратное бесконечно.

from math import log
p,q = [.5,.25,.25],[.25,.5,.25]
ce = -sum(a*log(b) for a,b in zip(p,q) if a>0)
kl = sum(a*log(a/b) for a,b in zip(p,q) if a>0)
assert abs(ce-kl-1.5*log(2))<1e-12

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

Сначала измеряется ошибка правильного ответа. Экспонента переводит среднюю ошибку в другой масштаб; качество текста этим не исчерпывается.

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

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