Часть VII · Случай и данные Глава 50 из 60
Цепи Маркова и информация
Буквы в тексте зависят от предыдущих, погода — от вчерашней. Посчитаем эту зависимость, как Марков в «Евгении Онегине», и измерим, сколько информации несёт буква, как Шеннон.
Опирается на: 49 · Статистика
Вы научитесь
- записывать цепь Маркова матрицей переходов и находить её стационарное распределение
- понимать, как по n-граммам работает генератор текста и чем он ограничен
- считать энтропию и понимать, почему она — предел сжатия
- строить код Хаффмана и сравнивать его среднюю длину с энтропией
В прошлой главе все наблюдения были независимыми: опрошенные не советовались друг с другом, чашки чая ничего не знали друг о друге. А буквы в тексте, погода по дням, щелчки по ссылкам зависят от предыдущих. Как описать такую зависимость? И можно ли измерить, сколько информации несёт сообщение, — не на глаз, а в единицах, как длину или массу?
На оба вопроса лучше всего ответили бы криптограф и лингвист, если бы сели за один стол. Криптограф знает, что текст выдаёт себя частотами букв: ещё в IX веке арабский философ аль-Кинди описал, как вскрыть шифр, сравнив частоты знаков шифровки с частотами букв языка. Лингвист знает, что буквы не независимы: после одних охотно идут другие. Эта глава — рабочий журнал такого стола. Мы пересчитаем буквы вместе с Андреем Марковым, научим машину писать тексты, выясним, сколько вопросов нужно, чтобы угадать задуманное, и найдём число, которое Клод Шеннон назвал количеством информации.
Двадцать тысяч букв
В январе 1913 года Андрей Андреевич Марков доложил Академии наук необычную работу. Математик, известный теоремами о суммах случайных величин, взялся за «Евгения Онегина». Он выписал первые $20\,000$ букв романа — без пробелов, знаков препинания, твёрдого и мягкого знаков — и сосчитал гласные и согласные. Гласных оказалось $8638$, согласных $11\,362$, то есть доля гласных $0{,}432$.
Это было только начало. Марков сосчитал ещё пары соседних букв. Гласная сразу за гласной встретилась $1104$ раза, согласная за согласной — $3827$ раз. Если бы буквы шли независимо, как броски монеты, то за гласной гласная следовала бы с той же вероятностью $0{,}432$, что и вообще. На деле
$$P(\text{гласная} \mid \text{гласная}) = \frac{1104}{8638} \approx 0{,}128, \qquad P(\text{гласная} \mid \text{согласная}) = 1 - \frac{3827}{11\,362} \approx 0{,}663.$$
После гласной гласная идёт втрое с лишним реже, чем в среднем, а после согласной — в полтора раза чаще. Буквы помнят соседа: гласные и согласные предпочитают чередоваться.
Зачем академику считать буквы? Марков вёл спор. Московский математик Павел Некрасов утверждал, что закон больших чисел требует независимости наблюдений, и делал из этого далеко идущие философские выводы. Ещё в 1906 году Марков доказал, что закон больших чисел верен и для величин, каждая из которых зависит от предыдущей, а в 1913-м проверил свою модель на самом живом материале, какой нашёл, — на стихах Пушкина.
Модель Маркова проста. Текст — последовательность двух состояний, «гласная» и «согласная». Следующая буква выбирается случайно, но вероятности зависят только от текущей. Это цепь Маркова с двумя состояниями — та же конструкция, что у самокатов в главе 38. Её вероятности переходов собирают в матрицу:
$$P = \begin{pmatrix} 0{,}128 & 0{,}872 \\ 0{,}663 & 0{,}337 \end{pmatrix}.$$
Здесь есть тонкость обозначений. В главе 38 столбец $j$ матрицы переходов говорил, куда уходит состояние $j$, и в единицу складывались столбцы. Теория вероятностей по традиции пишет транспонированную матрицу: строка — откуда, столбец — куда, $p_{ij}$ — вероятность перейти из состояния $i$ в состояние $j$, и в единицу складываются строки. Первая строка нашей матрицы — что бывает после гласной, вторая — после согласной. Распределение по состояниям тогда записывают строкой $\boldsymbol\pi = (\pi_1, \dots, \pi_n)$ и умножают на матрицу справа. Дальше в этой главе — только так.
Заметьте: стационарная доля гласных, $0{,}432$, совпала с их долей в тексте до третьего знака. Это не случайность. В любом тексте переходов «гласная → согласная» столько же, сколько переходов «согласная → гласная», с точностью до одного: каждая группа гласных где-то начинается и где-то кончается. А равенство этих потоков, как мы сейчас увидим, и определяет равновесие цепи. Для двух состояний всё можно посчитать до конца.
Пусть из состояния $1$ цепь переходит в состояние $2$ с вероятностью $a$, а из $2$ в $1$ — с вероятностью $b$, и $a + b > 0$. Тогда стационарное распределение единственно: $\boldsymbol\pi = \left(\frac{b}{a + b};\ \frac{a}{a + b}\right)$. Если вероятность быть в состоянии $1$ вначале отличается от $\pi_1$ на $\delta$, то через $k$ шагов она отличается от $\pi_1$ на $(1 - a - b)^k\,\delta$.
Хитрость в том, чтобы следить не за буквами, а за потоками вероятности между состояниями.
Условие $a + b < 2$ отсекает единственный плохой случай $a = b = 1$: цепь без всякой случайности чередует состояния, и отклонение только меняет знак, не уменьшаясь. А множитель $1 - a - b$ — второе собственное значение матрицы $P$, как множитель $0{,}4$ у самокатов из главы 38.
В некотором тексте после гласной гласная идёт с вероятностью $0{,}2$, а после согласной — с вероятностью $0{,}6$. Какая доля букв длинного текста — гласные? Ответ дайте обыкновенной дробью.
Из гласной цепь уходит в согласную с вероятностью $a = 1 - 0{,}2 = 0{,}8$, из согласной в гласную — с вероятностью $b = 0{,}6$. Стационарная доля гласных $\frac{b}{a + b} = \frac{0{,}6}{1{,}4} = \frac37 \approx 0{,}43$. Проверка балансом потоков: $\frac37 \cdot 0{,}8 = \frac47 \cdot 0{,}6 = \frac{2{,}4}{7}$.
Погода и прогулки
С погодой похожая история: завтрашний день чаще всего похож на сегодняшний. Возьмём цепь с тремя состояниями — ясно, облачно, дождь — и условными вероятностями переходов. После ясного дня завтра ясно с вероятностью $0{,}6$, облачно — $0{,}3$, дождь — $0{,}1$; после облачного — $0{,}3$, $0{,}4$ и $0{,}3$; после дождливого — $0{,}2$, $0{,}4$ и $0{,}4$.
Пусть понедельник ясный: распределение $(1;\ 0;\ 0)$. Во вторник это первая строка матрицы, $(0{,}6;\ 0{,}3;\ 0{,}1)$. В среду — $(0{,}47;\ 0{,}34;\ 0{,}19)$, в четверг — $(0{,}422;\ 0{,}353;\ 0{,}225)$, а к следующему понедельнику — $(0{,}394;\ 0{,}361;\ 0{,}245)$. С какой погоды ни начни, через неделю картина почти та же: цепь забывает, с чего начала. Предел — стационарное распределение $\boldsymbol\pi = \left(\frac{24}{61};\ \frac{22}{61};\ \frac{15}{61}\right)$; проверьте, что $\boldsymbol\pi P = \boldsymbol\pi$. Так будет при любой матрице, в которой все вероятности переходов положительны: это теорема о положительной цепи из главы 38, и её доказательство от транспонирования не зависит.
Самая наглядная цепь Маркова — случайное блуждание по графу (глава 46). Путник стоит в вершине и уходит по случайно выбранному ребру: из вершины степени $d$ — к каждому соседу с вероятностью $1/d$. Где он бывает чаще? Интуиция подсказывает: там, куда ведёт больше дорог. Интуиция права, а ответ умещается в одну дробь.
Пусть граф связен и в нём $E$ рёбер, а путник из каждой вершины идёт к любому соседу с равной вероятностью. Тогда у этой цепи ровно одно стационарное распределение: $\pi_v = \dfrac{\deg v}{2E}$.
Хитрость в том, чтобы проверять баланс не по вершинам, а по каждому ребру отдельно.
Стационарное распределение есть и единственно, но сходится к нему прогулка не всегда. Если граф двудольный — вершины можно раскрасить в два цвета так, чтобы рёбра соединяли только разные цвета, — путник попеременно ходит между долями, и распределение по чётным и нечётным шагам не выравнивается никогда. Теорема из главы 38 требовала положительности всех вероятностей переходов именно для того, чтобы исключить такие ловушки. А если путнику иногда разрешить телепортироваться на случайную страницу и сделать рёбра односторонними, получится PageRank (глава 38).
Машина, которая пишет
Вернёмся к тексту. Марков различал только гласные и согласные. А если состояниями сделать сами буквы? Следующая буква выбирается с вероятностями, которые зависят от предыдущей, — и цепь начинает писать. Ещё лучше, если состояние — последние две, три, четыре буквы: тогда цепь помнит больше.
n-граммой называют последовательность из $n$ подряд идущих символов текста — букв или слов. Модель n-грамм — цепь Маркова, состояние которой — последние $n - 1$ символов, а вероятность следующего символа равна его частоте после такого же отрезка в образце.
Так поступил Клод Шеннон в статье «Математическая теория связи» (1948). Компьютера у него под рукой не было, и он строил цепь по книге. Открыл книгу наугад, нашёл на странице очередное слово, посмотрел, какое слово идёт за ним, выписал его; открыл книгу в другом месте, нашёл уже это слово — и так дальше. Получилось «приближение второго порядка по словам», которое начинается так: THE HEAD AND IN FRONTAL ATTACK ON AN ENGLISH WRITER… Смысла нет, но каждая пара соседних слов звучит вполне по-английски.
С ростом памяти модель пишет всё правдоподобнее, но упирается в две стены. Первая — число состояний: при алфавите из $34$ символов (буквы и пробел) у модели с памятью в $k$ символов до $34^k$ состояний, и уже при $k = 5$ это больше $45$ миллионов. Вторая стена следует из первой: почти ни одно из этих состояний в образце не встретится, а если встретится, то один-два раза. Модель с длинной памятью не сочиняет, а цитирует: после редкого контекста у неё есть ровно одно продолжение — то, что стояло в образце.
Современные языковые модели обходят обе стены иначе. Они не хранят таблицу продолжений, а учатся обобщать: оценивать вероятность следующего символа даже после контекста, которого в обучающих текстах никогда не было, по сходству с тем, что было. Как собрать такую модель с нуля и обучить её прямо в браузере, рассказывает курс «Росток» на этом сайте (/utilities/micro-llm). Но и она, как цепь Маркова, на каждом шаге выдаёт распределение вероятностей следующего символа и выбирает из него.
Двадцать вопросов
Теперь второй вопрос: сколько информации в сообщении? Шеннон начал с того, что информация — это снятая неопределённость. Мерить её проще всего игрой: один задумал, другой угадывает вопросами, на которые отвечают «да» или «нет».
В главе 1 шесть карточек угадывали число от $1$ до $63$ — шесть ответов «да» или «нет». Каждый ответ делит круг кандидатов пополам, поэтому $k$ вопросами можно различить $2^k$ вариантов, а чтобы выбрать один из $N$ равновозможных, нужно $\lceil \log_2 N\rceil$ вопросов. Миллион — это двадцать вопросов: $2^{20} = 1\,048\,576$. Отсюда естественная мера: сообщение, которое выбирает один из $N$ равновозможных вариантов, несёт $\log_2 N$ бит. Меру через логарифм числа вариантов предложил инженер Ральф Хартли ещё в 1928 году.
Но варианты редко равновозможны. Пусть задумана случайная буква русского текста. Буква «о» встречается в сотни раз чаще «ъ», и хороший угадывающий не станет спрашивать «буква в первой половине алфавита?». Он спросит «это о, е или а?» — одна эта тройка покрывает больше четверти букв текста. Хороший вопрос делит пополам не число вариантов, а их вероятность. Тогда редкая буква потребует много вопросов, частая — мало, и в среднем их понадобится меньше, чем $\log_2 N$.
Сколько вопросов «стоит» исход вероятности $p$? Если каждый вопрос делит вероятность пополам, то после $k$ ответов остаются варианты общей вероятностью $2^{-k}$. Исход вероятности $p$ опознан, когда $2^{-k} = p$, то есть $k = \log_2\frac1p$. Шеннон взял это число за меру.
Событие вероятности $p$ несёт собственную информацию $I = -\log_2 p$ бит. Ответ на честный вопрос «да или нет» несёт ровно один бит, выпадение грани кубика — $\log_2 6 \approx 2{,}58$ бита, достоверное событие — ноль.
Логарифм здесь не прихоть. Для независимых событий вероятности перемножаются, а информация должна складываться: узнать исход двух монет — то же, что узнать исход каждой, $\log_2 4 = \log_2 2 + \log_2 2$. Логарифм как раз превращает произведение в сумму: $-\log_2(pq) = -\log_2 p - \log_2 q$. Среднее количество информации на одно сообщение Шеннон назвал энтропией.
Энтропия распределения $(p_1, \dots, p_n)$ — число $H = -\sum p_i\log_2 p_i$, среднее количество информации в одном исходе. Это мера неопределённости: сколько вопросов «да/нет» в среднем нужно, чтобы узнать исход.
Буква «ъ» в русских текстах очень редкая. Сколько информации несёт каждая буква длинного сообщения «ъъъъъъъъъъ…», если отправитель всегда шлёт только твёрдые знаки?
Информация зависит не от символа, а от распределения, из которого он выбран. Источник, который всегда шлёт одно и то же, ничего не сообщает: его исход известен заранее, $-\log_2 1 = 0$.
Почему у кубика энтропия больше, чем у монеты, понятно: вариантов больше. А какое распределение на $n$ исходах самое непредсказуемое? Ответ даёт неравенство, на котором стоит вся теория информации.
Для любых распределений $(p_1, \dots, p_n)$ и $(q_1, \dots, q_n)$, где все $q_i > 0$, $$-\sum_{i=1}^n p_i\log_2 p_i \;\le\; -\sum_{i=1}^n p_i\log_2 q_i,$$ и равенство бывает только при $p_i = q_i$ для всех $i$.
Хитрость в том, что график логарифма лежит под своей касательной, а центр масс точек, лежащих под прямой, тоже под ней.
Для любого распределения на $n$ исходах $0 \le H \le \log_2 n$. Ноль — только когда один исход достоверен, $\log_2 n$ — только у равномерного распределения.
Подставим в неравенство Гиббса равномерное $q_i = \frac1n$: $H \le -\sum p_i\log_2\frac1n = \log_2 n \cdot \sum p_i = \log_2 n$, и равенство только при $p_i = \frac1n$ для всех $i$. Нижняя граница: при $0 < p_i \le 1$ логарифм $\log_2 p_i \le 0$, поэтому каждое слагаемое $-p_i\log_2 p_i$ неотрицательно, и сумма тоже. Она равна нулю, только если нулевое каждое слагаемое, то есть каждое $p_i$ равно $0$ или $1$; раз вероятности складываются в единицу, ровно одна из них равна $1$.
Задуманный исход равен одному из пяти вариантов с вероятностями $\frac12$, $\frac14$, $\frac18$, $\frac1{16}$, $\frac1{16}$. Чему равна энтропия этого распределения в битах? Столько вопросов «да/нет» в среднем и нужно, если спрашивать разумно.
$H = \frac12 \cdot 1 + \frac14 \cdot 2 + \frac18 \cdot 3 + \frac1{16} \cdot 4 + \frac1{16} \cdot 4 = \frac12 + \frac12 + \frac38 + \frac14 + \frac14 = \frac{15}8 = 1{,}875$ бита. Стратегия: «это первый вариант?», если нет — «второй?», если нет — «третий?», если нет — «четвёртый?». Первый угадывается за один вопрос, второй за два, третий за три, четвёртый и пятый за четыре; в среднем как раз $1{,}875$ вопроса. Для сравнения: равномерно по пяти вариантам нужно $\log_2 5 \approx 2{,}32$ бита.
Код Хаффмана
Энтропия — не только мера неопределённости, но и цена записи. Вот задача криптографа наоборот: не спрятать сообщение, а передать его как можно короче. Запишем каждую букву цепочкой нулей и единиц. Равномерный код тратит на каждую из $32$ букв по $5$ бит. Выгоднее давать частым буквам короткие коды, а редким — длинные. Так устроена азбука Морзе: самая частая английская буква E передаётся одной точкой.
У кодов разной длины есть опасность. Если «а» — это $0$, а «б» — $01$, то как прочесть $001$: «аб» или «аа» и обрывок? Морзе спасают паузы между знаками. Без пауз спасает правило: ни одно кодовое слово не должно быть началом другого.
Код, в котором ни одно кодовое слово не служит началом другого, называют префиксным. Сообщение в префиксном коде читается без разделителей: читаем биты, пока не наберётся кодовое слово, записываем букву и начинаем заново. Например, код $\{0,\ 10,\ 110,\ 111\}$ префиксный, и строка $0110100$ читается единственным способом: $0 \mid 110 \mid 10 \mid 0$.
Короткие слова в префиксном коде — дефицит: если $0$ уже занят, все слова, начинающиеся с нуля, запрещены, и половина возможностей потеряна. Точный учёт этого дефицита — одно неравенство.
Если у префиксного двоичного кода длины кодовых слов равны $\ell_1, \dots, \ell_n$, то $2^{-\ell_1} + 2^{-\ell_2} + \dots + 2^{-\ell_n} \le 1$. Обратно, если натуральные числа $\ell_1, \dots, \ell_n$ удовлетворяют этому неравенству, то существует префиксный код с такими длинами слов.
Хитрость в том, чтобы превратить каждое кодовое слово в кусочек отрезка $[0;\,1)$.
Теперь можно доказать, что энтропия — предел сжатия.
Для любого префиксного кода средняя длина $L \ge H$. И для любого распределения существует префиксный код со средней длиной $L < H + 1$.
Идея: длины любого префиксного кода задают распределение $q_i \propto 2^{-\ell_i}$, и неравенство Гиббса сравнивает с ним настоящие частоты. Пусть $S = \sum 2^{-\ell_i}$; по неравенству Крафта $S \le 1$. Числа $q_i = 2^{-\ell_i}/S$ положительны и в сумме дают $1$, так что это распределение. По неравенству Гиббса $H \le -\sum p_i\log_2 q_i = \sum p_i\,(\ell_i + \log_2 S) = L + \log_2 S$. Так как $S \le 1$, то $\log_2 S \le 0$, и $H \le L$.
Для второй части выберем длины $\ell_i = \bigl\lceil \log_2\frac{1}{p_i} \bigr\rceil$ — наименьшие целые, не меньшие собственной информации (буквы с $p_i = 0$ не кодируем). Тогда $\ell_i \ge \log_2\frac1{p_i}$, то есть $2^{-\ell_i} \le p_i$, и $\sum 2^{-\ell_i} \le \sum p_i = 1$. По неравенству Крафта префиксный код с такими длинами существует. А поскольку округление вверх прибавляет меньше единицы, $\ell_i < \log_2\frac1{p_i} + 1$; умножим на $p_i$ и сложим: $L < H + 1$.
Лишний бит — плата за целые длины. Её можно сделать сколь угодно малой, если кодировать не буквы, а блоки по $k$ букв: для независимых букв энтропия блока равна $kH$, код блоков тратит меньше $kH + 1$ бит, то есть меньше $H + \frac1k$ бита на букву. Это и есть теорема Шеннона о кодировании источника: сжать сообщение сильнее, чем до $H$ бит на символ, нельзя, а приблизиться к этой границе — можно.
Остался практический вопрос: как найти код с наименьшей средней длиной? В 1951 году его решил аспирант Массачусетского технологического института Дэвид Хаффман. По известному рассказу, профессор Роберт Фано предложил студентам курса по теории информации на выбор: сдать экзамен или написать работу о поиске оптимального кода. Фано не сказал, что вместе с Шенноном сам искал такой способ и не нашёл. Хаффман уже собирался сдаваться и готовиться к экзамену, когда придумал строить дерево кода не сверху, а снизу — от самых редких букв. Статья вышла в 1952 году.
Код Хаффмана строится так. Берём два наименее вероятных символа и сливаем их в один новый с суммарной вероятностью; повторяем, пока не останется один символ. Каждое слияние — вершина дерева с двумя ветвями, $0$ и $1$; кодовое слово буквы — путь от корня к ней.
Среди всех префиксных кодов для распределения $(p_1, \dots, p_n)$, $n \ge 2$, у кода Хаффмана наименьшая средняя длина.
Хитрость — индукция по числу букв: слияние двух самых редких букв уменьшает задачу и не меняет того, какой код в ней лучший.
Четыре буквы встречаются с частотами $40$ %, $30$ %, $20$ % и $10$ %. Найдите среднюю длину кода Хаффмана в битах на букву.
Сливаем две редкие: $0{,}1 + 0{,}2 = 0{,}3$. Остались $0{,}4$, $0{,}3$ и $0{,}3$; сливаем две по $0{,}3$ в $0{,}6$. Последнее слияние: $0{,}4 + 0{,}6$. Глубины листьев: у буквы с частотой $0{,}4$ — $1$, у $0{,}3$ — $2$, у $0{,}2$ и $0{,}1$ — по $3$. Средняя длина $0{,}4 \cdot 1 + 0{,}3 \cdot 2 + 0{,}2 \cdot 3 + 0{,}1 \cdot 3 = 1{,}9$ бита. Энтропия этого распределения $\approx 1{,}846$ бита, так что до предела осталось меньше $0{,}06$ бита, а равномерный код потратил бы $2$.
Сколько информации в букве
Вернёмся к вопросу, с которого начали: сколько информации несёт буква русского текста? Будем уточнять ответ, как криптограф, который узнаёт о языке всё больше.
Если бы $33$ буквы и пробел были равновероятны и независимы, каждый символ нёс бы $\log_2 34 \approx 5{,}09$ бита. Учёт частот снижает оценку: у неравномерного распределения энтропия меньше максимума. Посчитайте её в виджете с кодом Хаффмана на тексте этой главы — выйдет около $4{,}4$ бита. Учёт связи с предыдущей буквой снижает ещё. Покажем это на модели Маркова, где различаются только гласные и согласные. Без памяти каждый символ «гласная или согласная» несёт $H(0{,}432) \approx 0{,}987$ бита. С памятью неопределённость другая: после гласной выбор идёт между вероятностями $0{,}128$ и $0{,}872$, после согласной — между $0{,}663$ и $0{,}337$. Усредним энтропии этих выборов по стационарному распределению:
$$0{,}432 \cdot H(0{,}128) + 0{,}568 \cdot H(0{,}663) \approx 0{,}432 \cdot 0{,}551 + 0{,}568 \cdot 0{,}922 \approx 0{,}762 \text{ бита}.$$
Знание предыдущей буквы снимает почти четверть неопределённости. Чем длиннее память, тем меньше остаётся. В 1951 году Шеннон поставил опыт: испытуемый угадывал английский текст буква за буквой, зная всё предыдущее, а Шеннон записывал, с какой попытки угадана каждая буква. По этим данным он оценил энтропию английского текста при длинном контексте — от $0{,}6$ до $1{,}3$ бита на букву, то есть около бита. Из $4{,}75$ бита, которые мог бы нести каждый из $27$ символов — $26$ букв и пробела, — язык использует лишь около четверти.
Избыточность источника — число $R = 1 - \frac{H}{\log_2 N}$, где $H$ — энтропия на символ, а $\log_2 N$ — её наибольшее возможное значение для алфавита из $N$ символов. Это доля текста, которую можно предсказать и, значит, не передавать.
Уже в статье 1948 года Шеннон писал, что избыточность английского — около $50$ %, если учитывать связи на расстоянии до восьми букв; с длинным контекстом она доходит примерно до $75$ %. Избыточность — не расточительство, а страховка. Смсл ткст пнтн дж бз глснх бкв: вы только что прочли фразу, из которой выброшены все гласные. Опечатку в слове мы не замечаем, в шумном зале понимаем собеседника, и всё это благодаря избыточности. Коды, исправляющие ошибки, добавляют избыточность к данным специально и по расчёту — об этом глава о кольцах и полях.
Предсказание и сжатие — две стороны одного и того же. Чем увереннее модель угадывает следующий символ, тем меньше бит нужно, чтобы записать, что было на самом деле: если модель давала настоящему символу вероятность $p$, хороший кодировщик потратит на него около $-\log_2 p$ бит. Архиваторы строят модель текста на лету и кодируют по ней. А языковые модели, как «Росток», учатся ровно на этой величине: их ошибка при обучении — средняя собственная информация настоящего следующего символа, $-\log p$, обычно в натуральных логарифмах. Модель, которая пишет убедительно, — это модель, которая хорошо сжимает, и наоборот.
Считать энтропии, длины кодов и стационарные распределения можно в тренажёре.
Куда дальше
В этой главе мы свободно пользовались словами «доказательство», «множество», «бесконечность». Мы доказывали от противного и по индукции, рассуждали о множестве всех префиксных кодов и о цепи, которая шагает бесконечно. В прошлых главах было то же самое: «для любого $\varepsilon$ найдётся $\delta$», «существует базис», «для всех натуральных $n$». Но что именно значит «для всех» и «существует»? Почему из ложного утверждения следует что угодно, и почему «множество всех множеств» ведёт к противоречию? На чём стоит всё здание математики, расскажет глава 51.