Alterna · учебный материал

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

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

Что в этом материале

Содержание и основные понятия

На предыдущей странице: какие настройки лучше объясняют наблюдения.
Предсказуемый исход почти не удивляет, редкий — удивляет сильнее. Энтропия измеряет среднюю неожиданность распределения.
Три исхода с долями [0.5,0.25,0.25].
Для изменения рисунка включитеJavaScript; расчёт и теория доступны далее.
Почему именно логарифм?
Для независимых событий вероятности перемножаются. Если информация должна складываться, естественен логарифм. Знак минус делает редкое событие более неожиданным: I(i)=−ln pᵢ. Ожидание этой величины есть Shannon entropy. Источники M04 §3.13 и M07; оригинальная работа Shannon здесь не заявляется прочитанной.
H
(
p
)
=
−
∑
i
p
i
ln
⁡
p
i
.
H(p)=-\sum_i p_i\ln p_i.
H
(
p
)
=
−
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
Академическая база →

Структурная карта учебников