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

04.4 Сколько неизвестности осталось

На предыдущей странице: какие настройки лучше объясняют наблюдения.

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

Три исхода с долями [0.5,0.25,0.25].

Почему именно логарифм?

Для независимых событий вероятности перемножаются. Если информация должна складываться, естественен логарифм. Знак минус делает редкое событие более неожиданным: I(i)=−ln pᵢ. Ожидание этой величины есть Shannon entropy. Источники M04 §3.13 и M07; оригинальная работа Shannon здесь не заявляется прочитанной.

H(p)=−∑ipiln⁡pi.H(p)=-\sum_i p_i\ln p_i.

По умолчанию используются натуральные логарифмы, единицы наты. При log₂ получаются биты: H_bits=H_nats/ln2. Для p=[.5,.25,.25] вклады внатах .346574,.346574,.346574; сумма1.039720771. Вбитах это1.5. Нулевая масса даёт нулевой вклад по соглашению lim(t ln t)=0 при t→0+, а не попытку вычислить0×(−∞) обычным умножением.

Для k конечных исходов0≤H≤ln k. Нижняя граница достигается при сосредоточении массы на одном исходе; верхняя при равномерном распределении. Для трёх исходов максимум ln3≈1.098612. Формально верхняя граница следует также из KL(p||uniform)≥0.

Эксперимент. Меняйте p, оставляя q нетронутым. Энтропия p должна зависеть только от p. Затем поменяйте единицы снатов набиты: форма распределения не меняется, число масштабируется.

Легко ошибиться. Энтропия не «количество смысла», не моральная ценность сообщения и не качество классификатора. Уверенно ошибочная модель может иметь низкую энтропию своего q. Чтобы оценить её относительно правильных исходов, нужно сравнить q с target-распределением p.

from math import log
p = [.5,.25,.25]
entropy = -sum(v*log(v) for v in p if v>0)
assert abs(entropy-1.5*log(2))<1e-12

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

Чем меньше заранее известно об исходе, тем больше средняя неожиданность. Это свойство распределения, а не оценка истинности ответа.

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

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