Содержательный подход: формула Хартли

Как измерить количество информации через то, насколько сильно сообщение уменьшило нашу неопределённость.

Представьте, что друг загадал число от 1 до 8, а вы должны его угадать. Пока вы ничего не знаете, перед вами 8 равновозможных вариантов — это и есть неопределённость. Когда друг говорит «число чётное», вариантов остаётся 4 — неопределённость стала меньше. А когда он наконец называет число, неопределённость исчезает совсем. Содержательный подход измеряет информацию именно так: чем сильнее сообщение уменьшило неопределённость, тем больше информации оно несёт.

Содержательный (вероятностный) подход: количество информации в сообщении — это мера уменьшения неопределённости знания о результате некоторого события. Сообщение несёт 1 бит, если оно уменьшает неопределённость ровно вдвое.

Что такое неопределённость и почему вдвое

Неопределённость возникает там, где есть несколько возможных исходов, и мы заранее не знаем, какой случится. Бросок монеты — 2 исхода, бросок кубика — 6, вытягивание карты из колоды — 52. Чем больше исходов, тем выше неопределённость.

Договорились измерять информацию в битах. Один бит — это количество информации, которое уменьшает неопределённость в 2 раза. Сообщение «монета упала орлом» сокращает 2 варианта до 1 — значит, оно несёт ровно 1 бит. Сообщение «число чётное» из примера выше сократило 8 вариантов до 4 — тоже в 2 раза, тоже 1 бит.

Формула Хартли

Пусть событие имеет N равновероятных исходов (то есть ни один не вероятнее другого). Тогда количество информации i в сообщении о том, какой именно исход произошёл, связано с N формулой Хартли:

N = 2ⁱ   ⟺   i = log₂ N

Читается так: чтобы из N вариантов выбрать один, нужно i раз уменьшить неопределённость вдвое. Каждое такое деление пополам — это 1 бит, а всего их получается log₂ N.

Число исходов NИнформация i = log₂ NПроверка: 2ⁱ
21 бит2¹ = 2
42 бита2² = 4
83 бита2³ = 8
164 бита2⁴ = 16
325 бит2⁵ = 32
646 бит2⁶ = 64
102410 бит2¹⁰ = 1024

Если N — это степень двойки, ответ получается целым и красивым. Если нет (например, N = 6 для кубика), то i — дробное число, и об этом чуть ниже.

Пример 1: угадывание числа

Друг загадал число от 1 до 8, все варианты равновозможны. Сколько информации мы получим, когда узнаем загаданное число?

  1. Число исходов: N = 8.
  2. По формуле: i = log₂ 8 = 3 бита (потому что 2³ = 8).

Три бита — это ровно три вопроса вида «да/нет», если задавать их с умом. «Число больше 4?» — отсекаем половину. «Больше 6?» — снова половину. «Это 7?» — и мы у цели. Каждый удачный вопрос даёт 1 бит, а три вопроса гарантированно находят любое из 8 чисел.

Пример 2: бросок кубика

У игрального кубика N = 6 граней. Сколько информации несёт сообщение о выпавшем числе?

i = log₂ 6 ≈ 2,585 бита. Число дробное, потому что 6 — не степень двойки: его не получится «угадать» целым числом вопросов «да/нет». Двух вопросов мало (2 бита покрывают только 4 варианта), а три вопроса — уже с запасом (8 вариантов). Поэтому честное количество информации лежит между 2 и 3 битами.

Попробуйте сами: калькулятор Хартли

Запустите код. Функция info_by_outcomes по числу равновероятных исходов считает i = log₂ N, а функция outcomes_by_info делает обратное — по числу бит находит N = 2ⁱ. Поменяйте аргументы в вызовах и проверьте свои задачи.

import math

def info_by_outcomes(N):
    """По числу исходов N считает информацию i = log2(N) в битах."""
    i = math.log2(N)
    print(f"N = {N} исходов  ->  i = {i:.3f} бит")
    return i

def outcomes_by_info(i):
    """По числу бит i считает число исходов N = 2**i."""
    N = 2 ** i
    print(f"i = {i} бит  ->  N = {N:.0f} исходов")
    return N

# Прямая задача: монета, кубик, угадывание числа
info_by_outcomes(2)
info_by_outcomes(6)
info_by_outcomes(8)
print("---")
# Обратная задача: сколько вариантов кодирует 1, 3 и 10 бит?
outcomes_by_info(1)
outcomes_by_info(3)
outcomes_by_info(10)

Ожидаемый вывод:

N = 2 исходов  ->  i = 1.000 бит
N = 6 исходов  ->  i = 2.585 бит
N = 8 исходов  ->  i = 3.000 бит
---
i = 1 бит  ->  N = 2 исходов
i = 3 бит  ->  N = 8 исходов
i = 10 бит  ->  N = 1024 исходов

Обратите внимание на кубик: 2,585 бита — то самое дробное значение из примера 2. А 10 бит ровно соответствуют 1024 вариантам — числу, которое вы наверняка узнаёте по килобайту.

Когда исходы неравновероятны: подход Шеннона

Формула Хартли честна только при равновероятных исходах. Но в жизни так бывает редко. Если в коробке 9 белых шаров и 1 чёрный, то сообщение «достали белый» почти не удивляет — оно несёт мало информации. А вот «достали чёрный» — событие редкое и потому информативное.

Идея Шеннона: чем менее вероятно событие, тем больше информации несёт сообщение о нём. Редкое и неожиданное сообщение информативнее частого и предсказуемого.

Формула Шеннона учитывает вероятность каждого исхода и в среднем даёт меньшее количество информации, чем формула Хартли для того же числа исходов. А когда все вероятности равны, формула Шеннона превращается ровно в формулу Хартли — то есть Хартли — это частный, самый простой случай.

Связь с алфавитным подходом

Если вы уже читали про алфавитный подход, формула покажется знакомой. И не зря: это одна и та же формула Хартли, только применённая к разным ситуациям.

ПодходЧто такое NЧто такое i
Содержательныйчисло равновероятных исходов событияинформация о произошедшем исходе
Алфавитныймощность алфавита (число символов)информационный вес одного символа

Появление каждого символа в тексте — это тоже «выбор одного из N равновозможных вариантов». Поэтому вес символа считается той же формулой i = log₂ N. Содержательный подход смотрит на события, алфавитный — на символы, но математика под ними общая.

Частые ошибки

  • Применяют формулу Хартли к неравновероятным исходам. N = 2ⁱ работает, только когда все исходы равновозможны; иначе нужен подход Шеннона.
  • Путают N и i. N — число вариантов, i — количество информации в битах. Связь только через i = log₂ N.
  • Боятся дробного ответа. Для N = 6 получается ≈ 2,585 бита — это нормально, не всякое N является степенью двойки.
  • Считают, что информации тем больше, чем вероятнее событие. Наоборот: редкое событие несёт больше информации.

Коротко

  • Количество информации — это мера уменьшения неопределённости; 1 бит уменьшает число вариантов вдвое.
  • Формула Хартли для N равновероятных исходов: N = 2ⁱ, то есть i = log₂ N.
  • Угадать число от 1 до 8 — это 3 бита; бросок кубика (N = 6) — около 2,585 бита.
  • Если исходы неравновероятны, работает формула Шеннона; при равных вероятностях она совпадает с Хартли.
  • Алфавитный подход — это та же формула Хартли, где N — мощность алфавита, а i — вес символа.
Проверьте себя
1. Что измеряет количество информации в содержательном подходе?
AЧисло букв в сообщении
BНасколько сообщение уменьшило неопределённость знания об исходе
CВремя передачи сообщения по каналу
DСмысловую ценность сообщения для читателя
2. Друг загадал число от 1 до 16, все варианты равновозможны. Сколько информации мы получим, узнав загаданное число?
A2 бита
B8 бит
C4 бита
D16 бит
3. Сообщение несёт ровно 1 бит информации. Из скольки равновероятных вариантов оно позволяет выбрать?
AИз 1
BИз 2
CИз 8
DИз 10
4. Почему для броска игрального кубика (6 граней) количество информации получается дробным (около 2,585 бита)?
AПотому что грани кубика неравновероятны
BПотому что 6 не является степенью двойки
CПотому что формула Хартли здесь не применима
DПотому что кубик может упасть на ребро
5. Когда формула Хартли N = 2^i применима напрямую?
AВсегда, при любом распределении вероятностей
BТолько когда все исходы равновероятны
CТолько когда исходов ровно два
DТолько для текстов в кодировке ASCII
6. Как связаны содержательный и алфавитный подходы?
AЭто совершенно разные формулы без общего основания
BОба используют формулу Хартли i = log2 N, где N — число равновозможных вариантов
CАлфавитный подход всегда даёт больше бит, чем содержательный
DСодержательный подход применяется только к числам, алфавитный — только к буквам
Поддержать проект