Калькулятор перекрёстной энтропии и log loss
Вставьте истинное распределение P и предсказанное Q — получите перекрёстную энтропию, энтропию P, дивергенцию Кульбака — Лейблера и перплексию. Или переключитесь на бинарные метки и получите log loss предсказанных классификатором вероятностей — в натах, битах или по основанию 10.
Работает в браузере: всё, что вы вводите, никуда не отправляется.
Как пользоваться
- Выберите режим. Два распределения: P — истинное распределение по классам, Q — предсказанное. Бинарные метки: в P метки 0/1, в Q — предсказанные вероятности класса 1.
- Вставьте числа в одинаковом порядке через пробел или «; ». Десятичный разделитель — запятая или точка: «0,7 0,2 0,1».
- Выберите логарифм: натуральный (наты, как в большинстве ML-библиотек), по основанию 2 (биты) или десятичный.
Формулы
- Энтропия H(P) = −Σ pᵢ log pᵢ (слагаемые с pᵢ = 0 равны нулю).
- Перекрёстная энтропия H(P, Q) = −Σ pᵢ log qᵢ.
- KL(P‖Q) = H(P, Q) − H(P) = Σ pᵢ log(pᵢ ÷ qᵢ) ≥ 0.
- Перплексия = основание^H(P, Q).
- Log loss = −(1/N) Σ [yᵢ log qᵢ + (1 − yᵢ) log(1 − qᵢ)].
Пример
Верный класс — первый из трёх, P = (1; 0; 0), модель предсказывает Q = (0,7; 0,2; 0,1), натуральный логарифм:
- H(P, Q) = −ln 0,7 = 0,356675.
- H(P) = 0, значит KL(P‖Q) = 0,356675.
- Перплексия = e^0,356675 = 1 ÷ 0,7 = 1,4286.
Log loss для меток 1; 0; 1; 1 и предсказаний 0,9; 0,1; 0,8; 0,4: (0,105361 + 0,105361 + 0,223144 + 0,916291) ÷ 4 = 0,337539, точность — 75 %.
Советы
- Берите то же основание, что и фреймворк. PyTorch и TensorFlow считают потери в натах, книги по теории информации — в битах. 1 нат = 1,4427 бита.
- Одна уверенная ошибка перевешивает. Одно предсказание 0,01 для верной метки добавляет к сумме 4,6 ната.
- Распределение должно давать 1. Выход softmax даёт, а сырые оценки (логиты) — нет, их сначала нормируют.
Частые вопросы
Что такое перекрёстная энтропия?
H(P, Q) = −Σ p·log q показывает, сколько в среднем нат (или бит) нужно, чтобы кодировать исходы из P кодом, построенным для Q. Она минимальна и равна энтропии H(P), когда Q = P. В машинном обучении это стандартная функция потерь для классификации.
Как она связана с KL-дивергенцией?
KL(P‖Q) = H(P, Q) − H(P). Энтропия истинных меток от модели не зависит, поэтому минимизировать перекрёстную энтропию — то же, что минимизировать KL-дивергенцию. При one-hot метках H(P) = 0 и они равны.
Что такое log loss?
Средняя бинарная перекрёстная энтропия по набору данных: −(1/N) Σ [y·ln q + (1 − y)·ln(1 − q)], где y — метка 0/1, а q — предсказанная вероятность класса 1. Чем меньше, тем лучше; если всегда предсказывать 0,5, получится ln 2 = 0,693.
Что означает перплексия?
Перплексия = основание в степени перекрёстной энтропии — эффективное число равновероятных вариантов, между которыми «колеблется» модель. Языковая модель с перплексией 20 в среднем так же неуверенна, как при выборе из 20 слов.
Почему при q = 0 потери бесконечны?
Потому что log 0 — минус бесконечность: модель была уверена, что событие невозможно, а оно произошло. Библиотеки обходят это, обрезая вероятности до диапазона вроде 10⁻¹⁵ … 1 − 10⁻¹⁵; калькулятор вместо этого сообщает об ошибке.