вычислить среднюю длину кода
Код Хаффмана
Построение кода Хаффмана для таблицы вероятностей.
Вот калькулятор, который рассчитывает коды Хаффмана для заданной вероятности символов.
Немного теории под калькулятором.
Код Хаффмана
Таблица вероятности символов
Таблица вероятности символов
Импортировать данные Ошибка импорта
Небольшой отрывок из Википедии.
Алгоритм Хаффмана — адаптивный жадный алгоритм оптимального префиксного кодирования алфавита с минимальной избыточностью. Был разработан в 1952 году аспирантом Массачусетского технологического института Дэвидом Хаффманом при написании им курсовой работы. В настоящее время используется во многих программах сжатия данных.
Этот метод кодирования состоит из двух основных этапов:
Построение оптимального кодового дерева.
Построение отображения код-символ на основе построенного дерева.
Идея алгоритма состоит в следующем: зная вероятности символов в сообщении, можно описать процедуру построения кодов переменной длины, состоящих из целого количества битов. Символам с большей вероятностью ставятся в соответствие более короткие коды. Коды Хаффмана обладают свойством префиксности (т. е. ни одно кодовое слово не является префиксом другого), что позволяет однозначно их декодировать.
Классический алгоритм Хаффмана на входе получает таблицу частот встречаемости символов в сообщении. Далее на основании этой таблицы строится дерево кодирования Хаффмана (Н-дерево).
Этот процесс можно представить как построение дерева, корень которого — символ с суммой вероятностей объединенных символов, получившийся при объединении символов из последнего шага, его n0 потомков — символы из предыдущего шага и т. д.
Чтобы определить код для каждого из символов, входящих в сообщение, мы должны пройти путь от корня до листа дерева, соответствующего текущему символу, накапливая биты при перемещении по ветвям дерева (первая ветвь в пути соответствует младшему биту). Полученная таким образом последовательность битов является кодом данного символа, записанным в обратном порядке.
Доказательство оптимальности кода
Докажем, что код Шеннона-Фано является оптимальным кодом.
Средняя длина кодовой комбинации для определенного закодированного алфавита вычисляется по формуле:
, (5)
где li – длина кодовой комбинации i-го закодированного символа первичного алфавита,
pi – вероятность появления i-го символа алфавита.
Эта величина показывает, сколько символов вторичного алфавита (ансамбля сообщений B) приходится на символ первичного алфавита (ансамбля сообщений A) в закодированном сообщении.
По формуле (5) найдем среднюю длину кодовой комбинации для нашего алфавита (количество символов алфавита n = 16), закодированного кодом Шеннона-Фано, и получим следующее значение:
,
то есть в среднем на один символ нашего алфавита приходится 3,8531 двоичных символов.
Количество символов нашего алфавита n = 16. Следовательно, длина кодовой комбинации равномерного двоичного кода, которым можно закодировать наш алфавит, будет равняться 4, поскольку таким кодом можно закодировать алфавит, максимальное количество символов которого будет равняться 2 4 = 16.
Это означает, что необходимая длина кодовой комбинации равномерного двоичного кода больше средней длины кодовой комбинации Шеннона-Фано.
2. Сравним энтропию источника первичного ансамбля сообщений A (нашего алфавита) с энтропией этого же источника при кодировании его ансамбля сообщений кодом Шеннона-Фано.
Рассчитанная ранее по формуле (3) энтропия источника первичного ансамбля сообщений A равна:
Энтропия этого источника при кодировании его первичного ансамбля сообщений A определенным кодом рассчитывается по формуле:
, (6)
где lср – средняя длина кодовой комбинации закодированного ансамбля сообщений (см. формулу (5)),
H(B) – энтропия источника вторичного ансамбля сообщений B.
.
Для данного текста, закодированного кодом Шеннона-Фано, найдем вероятность появления в нем двоичных символов “0” и “1” – элементов вторичного ансамбля сообщений B. Для этого необходимо подсчитать количество “0” и “1” в закодированном тексте.
Подсчет количества “0” и “1” в закодированном тексте (исходный текст длиной L = 10 000 символов)
Символ первичного алфавита | Вероятность появления символа первичного алфавита | Закодированный кодом Шеннона-Фано символ | Количество символов в кодовой комбинации | Количество символов в тексте |
о | 0,1067 | |||
а | 0,1067 | |||
и | 0,0933 | |||
в | 0,0933 | |||
к | 0,08 | |||
н | 0,08 | |||
с | 0,08 | |||
е | 0,08 | |||
л | 0,0667 | |||
я | 0,0667 | |||
ч | 0,0533 | |||
й | 0,0267 | |||
т | 0,0267 | |||
ь | 0,0133 | |||
р | 0,0133 | |||
г | 0,0133 | |||
Количество каждого из двоичных символов в закодированном тексте | ||||
Длина закодированного текста | 38 531 |
Зная количество “0” и “1” в тексте, а также длину текста, подсчитаем вероятность появления двоичных символов в закодированном тексте:
Теперь по формуле (6) найдем энтропию источника при кодировании его первичного ансамбля сообщений A кодом Шеннона-Фано:
.
Энтропия источника первичного ансамбля сообщений A:
.
≈
.
Вывод: из двух пунктов доказательства следует, что код Шеннона-Фано является оптимальным.
Код Хаффмана
Кодирование
Одно из важных приложений концепции энтропии заключается в том, что эта концепция помогает понять принциды работы алгоритмов сжатия данных. Энтропия случайной переменной или источника сообщений определяет количество битов, требуемых для представления результатов случайной переменной или альтернативных сообщений без потери информации. Таким образом, при разработке алгоритма сжатия данных энтропия представляет собой меру максимально возможного.
Здесь Pi представляет собой вероятность выпадения результата хi. Предположим, что сообщение состоит из реализаций случайной переменной X, и мы хотели бы закодировать сообщение в двоичном виде. Один очевидный вариант решения заключается в том, чтобы использовать 3-битовый код фиксированной длины, в котором каждое из восьми возможных значений случайной переменной X кодируется одним 3-битовым числом. Лучшая стратегия заключается в использовании кода переменной длины, в котором более длинные кодовые слова назначаются менее вероятным значениям X, а более вероятные значения X кодируются короткими кодовыми словами. Такой технический прием применяется в азбуке Морзе и коде Хаффмана. Предположим, что сообщения должны передаваться при помощи алфавита из N символов. Каждый символ должен уникальным образом кодироваться двоичной последовательностью. Нас интересует способ построения оптимального кода, то есть кода, дающего в результате минимальную среднюю длину кодируемого сообщения. Важно отметить, что мы не ищем минимальную длину кода для какого-либо конкретного сообщения или для всех сообщений (последнее найти невозможно), но минимальную длину кода, усредненную по всем возможным сообщениям.
Другой способ взглянуть на данные требования состоит в том, что мы получаем сообщение, уже закодированное путем назначения символам двоичных слов фиксированной длины. Таким образом, если символов 8, каждый символ кодируется тремя битами. Если число символов в алфавите от 9 до 16, то каждый символ кодируется четырьмя битами и т. д. Такое кодирование не является оптимальным, если символы встречаются в сообщениях с разной вероятностью. В этом случае требование может быть сформулировано следующим образом. Требуется разработать оптимальную схему кодирования с использованием кода переменной длины, позволяющую получить кодированное сообщение минимальной средней длины.
· Никакие два разных сообщения не должны состоять из одинаковых после
довательностей битов.
· Никакое кодовое слово не должно совпадать с префиксом другого кодового
слова.
В таблице ниже приведены свойства кода Хаффмана для данного примера. Средняя длина кодового слова представляет собой вычисляемую следующим образом ожидаемую величину:
Здесь Li представляет собой длину i-го кодового слова. Таким образом, например, для сообщений, состоящих из 1000 символов, средняя длина кодированного сообщения равна 2184 бит. При простом кодировании каждого символа тремя битами длина этого сообщения будет составлять 3000 бит.
Кодирование Хаффмана
Оглавление
Основы
В отличие от кода Морзе, кодирование Хаффмана не требует никаких разделителей. Разделение кодовых слов не требуется, потому что кодирование без префиксов. В результате ни одно кодовое слово не является началом другого кодового слова.
Дерево, полученное в результате кодирования Хаффмана, гарантирует оптимальное кодирование без префиксов. И. Э. Не существует метода кодирования, связанного с символами, который мог бы генерировать более короткий код, если известны вероятности появления символов.
история
алгоритм
Построение кодовой книги
Средняя длина слова
Среднюю длину кодового слова можно рассчитать тремя способами.
пример
Найдите относительные частоты:
Постройте дерево Хаффмана, а затем введите кодовые слова по краям. (См. Рисунок справа)
а | 1 |
б | 01 |
c | 001 |
d | 000 |
Закодируйте исходный текст:
Оригинал: | а | а | б | а | б | c | а | б | c | d |
Закодировано: | 1 | 1 | 01 | 1 | 01 | 001 | 1 | 01 | 001 | 000 |
Средняя длина кодового слова:
Поскольку информационное содержание каждого символа источника не является целым числом, при кодировании остается остаточная избыточность.
Расшифровка
Для декодирования потока данных в кодировке Хаффмана необходима кодовая таблица, созданная в кодировщике (классическим методом). По сути, процедура обратная, как на этапе кодирования. Дерево Хаффмана перестраивается в декодере, и с каждым входящим битом, начиная с корня, следует соответствующий путь в дереве, пока не будет достигнут лист. Затем этот лист является исходным символом, который вы ищете, и вы снова начинаете декодировать следующий символ с корня.
пример
В декодере есть словарь кодов:
а | 1 |
б | 01 |
c | 001 |
d | 000 |
и полученное сообщение: 1101101001101001000.
Теперь путь в дереве (см. Выше) отслеживается для каждого полученного бита, начиная с корня, до тех пор, пока не будет достигнут лист. Как только лист достигнут, декодер записывает символ листа и снова начинает с корня, пока не будет достигнут следующий лист.
Путь к детали: | 1 | 1 | 01 | 1 | 01 | 001 | 1 | 01 | 001 | 000 |
Соответствующий лист: | а | а | б | а | б | c | а | б | c | d |
Оптимальность
Для средней длины кодового слова кода Хаффмана применяется следующее (см. Также) л ¯ <\ displaystyle <\ overline
Это означает, что в среднем каждый кодовый символ требует как минимум столько же цифр, сколько его информационное содержание, но не более одного.
Адаптивное кодирование Хаффмана
Визуальная теория информации (часть 2)
Вторая часть перевода лонгрида посвященного визуализации концепций из теории информации. Во второй части рассматриваются энтропия, перекрестная энтропия, дивергенция Кульбака-Лейблера, взаимная информация и дробные биты. Все концепции снабжены прекрасными визуальными объяснениями.
Для полноты восприятия, перед чтением второй части, рекомендую ознакомиться с первой.
Вычисление энтропии
Напомним, что стоимость сообщения длиной равна
. мы можем инвертировать это значение, чтобы получить длину сообщения, которое стоит заданную сумму:
. Поскольку мы тратим
на кодовое слово для
, длина будет равна
. На рисунке выбор лучших длин кодовых слов.
Ранее мы обсуждали, что существует фундаментальный предел того, насколько коротким может быть среднее сообщение для передачи событий из определенного распределения вероятностей . этот предел, средняя длина сообщения при использовании наилучшей системы кодирования, называется энтропией
. Теперь, когда мы знаем оптимальную длину кодовых слов, мы можем ее вычислить!
(Часто энтропию записывают как используя равенство
. Мне кажется первая версия более интуитивна поэтому мы продолжим использовать ее.)
Если я хочу сообщить, какое событие произошло, то независимо от того, что я делаю, в среднем мне нужно отправить столько битов.
Среднее количество информации, необходимой для передачи чего-либо, имеет прямые следствия для сжатия. Но есть ли другие причины, по которым мы должны заботиться об этом? Да! Оно описывает мою неопределенность, и дает возможность количественно оценить информацию.
Если бы я знал наверняка, что произойдет, мне вообще не пришлось бы посылать сообщение! Если есть две вещи, которые могут произойти с вероятностью 50%, мне нужно отправить только 1 бит. Но если существует 64 различных события, которые могут произойти с одинаковой вероятностью, мне придется отправить 6 битов. Чем более концентрирована вероятность, тем больше у меня возможностей создать умный код с короткими средними сообщениями. Чем расплывчатее вероятность, тем длиннее должны быть мои сообщения.
Чем неопределеннее результат, тем больше я узнаю в среднем, когда мне сообщают о произошедшем.
Перекрестная энтропия
Незадолго до переезда в Австралию Боб женился на Алисе, тоже воображаемой. К моему удивлению, а также к удивлению других персонажей в моей голове, Алиса не была любительницей собак. Она была любительницей кошек. Несмотря на это, они смогли найти общий язык в своей общей одержимости животными и очень ограниченном словарном запасе.
Эти двое используют одни и те же слова, только с разной частотой. Боб все время говорит о собаках, Алиса все время говорит о кошках.
Сначала Алиса посылала мне сообщения, используя код Боба. К сожалению, ее сообщения были длиннее, чем требовалось. Код Боба был оптимизирован под его распределение вероятностей. У Алисы другое распределение вероятностей, и код для нее неоптимален. Средняя длина кодового слова, когда Боб использует свой код, составляет 1,75 бита, когда же его использует Алиса, то 2,25. Было бы еще хуже, если бы эти двое не были так похожи!
Средняя длина сообщения из одного распределения с оптимальным кодом другого распределения называется перекрестной энтропией. Формально мы можем определить перекрестную энтропию следующим образом:
В данном случае речь идет о перекрестной энтропии частоты слов кошатницы Алисы по отношению к частоте слов собачатника Боба.
Чтобы снизить стоимость нашей связи, я попросил Алису использовать ее собственный код. К моему облегчению, это снизило ее среднюю длину сообщения. Но это создавало новую проблему: иногда Боб случайно использовал код Алисы. Удивительно, но хуже когда Боб использует код Алисы, чем когда Алиса используют код Боба!
На следующей диаграмме каждый подграфик представляет одну из этих 4 возможностей. Иллюстрации визуализируют среднюю длину сообщения. Они организованы в квадрат, так что, если сообщения из одного и того же распределения, диаграммы находятся рядом, а если они используют одни и те же коды, они находятся друг над другом. Это позволяет вам визуально совместить распределения и коды вместе.
Видите почему ?
такой большой, потому событие отмеченное синим цветом часто встречается при
, но получает длинное кодовое слово, потому что оно очень редко при
. С другой стороны, частые события при
менее распространены при
, но разница менее резкая, поэтому
немного меньше.
Перекрестная энтропия не является симметричной.
Так, почему вас должна волновать перекрестная энтропия? Перекрестная энтропия дает нам способ выразить, насколько различны два распределения вероятностей. Чем сильнее отличаются распределения и
, тем больше перекрестная энтропия
относительно
будет больше энтропии
.
Аналогично, чем больше отличается от
, тем больше перекрестная энтропия
относительно
будет больше энтропии
.
По-настоящему интересной вещью является разница между энтропией и перекрестной энтропией. Эта разница равна тому насколько длиннее наши сообщения, потому что мы использовали код, оптимизированный для другого распределения. Если распределения одинаковы, то эта разница будет равна нулю. По мере того как отличия увеличиваются, она будет становиться больше.
Мы называем это различие дивергенцией Кульбака-Лейблера, или просто KL-дивергенцией. KL-дивергенция относительно
,
определяется так:
Самое замечательное в KL-дивергенции то, что она похожа на расстояние между двумя распределениями. Он измеряет, насколько они разные! (Если вы примете эту идею всерьез, вы придете к информационной геометрии.)
Перекрестная энтропия и KL-дивергенция невероятно полезны в машинном обучении. Часто мы хотим, чтобы одно распределение было близко к другому. Например, мы можем хотеть, чтобы предсказанное распределение было близко к основной истине. KL-дивергенция дает нам естественный способ сделать это, и поэтому она проявляется всюду.
Энтропия и несколько переменных
Давайте вернемся к нашему примеру с погодой и одеждой, приведенному ранее:
Моя мама, как и многие родители, иногда беспокоится, что я не одеваюсь соответственно погоде. (У нее есть веские основания для подозрений – я бывает не ношу плащ зимой.) Поэтому она часто хочет знать и погоду, и во что я одет. Сколько битов я должен послать ей, чтобы сообщить об этом?
Самый простой способ подумать об этом — выровнять распределение вероятностей:
Теперь мы можем вычислить оптимальные кодовые слова для событий с такими вероятностями и вычислить среднюю длину сообщения:
Мы называем это совместной энтропией и
, определенной следующим образом:
Оно совпадает с нашим обычным определением, за исключением двух переменных вместо одной.
Немного лучший образ этого, без выравнивания распределения получается если представить длину кодового слова в третьем измерении. Теперь энтропия — это объем!
Но предположим, что моя мама уже знает погоду. Она может посмотреть ее в новостях. Сколько тогда информации мне нужно предоставить?
Похоже, мне нужно отправить информации достаточно, чтобы сообщить какая одежда на мне надета. Но на самом деле мне нужно посылать меньше информации, потому что от погоды сильно зависит то, какую одежду я надену! Давайте рассмотрим случай с дождем и с солнцем отдельно.
В обоих случаях мне не нужно посылать слишком много информации в среднем, потому что погода дает мне хорошее предположение о том, каким будет правильный ответ. Когда солнце, я могу использовать специальный оптимизированный для солнца код, а когда идет дождь, я могу использовать оптимизированный для дождя код. В обоих случаях я посылаю меньше информации, чем если бы я использовал общий код для обоих. Чтобы получить среднее количество информации, которое мне нужно отправить моей матери, я просто сложил эти два случая вместе…
Мы называем это условной энтропией. Если вы формализуете его в уравнение, вы получаете:
Взаимная информация
В предыдущем разделе мы выяснили, что знание одной переменной может означать, что для сообщения значения другой переменной требуется передать меньше информации.
Хороший способ думать об этом — это представить себе количество информации в виде полос. Эти полосы перекрываются, если между ними есть общая информация. Например, некоторая часть информации в и
общая, поэтому
и
являются перекрывающимися полосами. И поскольку
— это информация обеих переменных, то это объединение полос
и
.
Когда мы думаем о вещах таким образом, многое становится проще увидеть.
Например, мы уже отмечали, что для передачи информации как , так и
(“совместная энтропия”,
) требуется больше информации, чем для передачи только
(“предельная энтропия”,
). Но если вы уже знаете
, то для передачи
(“условная энтропия”,
) требуется меньше информации, чем если бы вы этого не знали!
Это звучит сложновато, но если перевести на полосы то все оказывается очень просто. — это информация, которую мы должны отправить, чтобы сообщить
тому, кто уже знает
, информация в
, которая также не находится в
. Визуально это означает, что
— это часть полосы
, которая не перекрывается с
.
Теперь вы можете прочитать неравенство прямо на следующей диаграмме.
Другое равенство следующее — . Т.е. информация в
и
это информация в
плюс информация в
которой нет в
.
Опять же, это трудно увидеть в уравнениях, но легко увидеть, если вы думаете в терминах перекрывающихся полос информации.
На этом этапе мы разбили информацию в и
несколькими способами. Мы знаем информацию в каждой переменной,
и
. Мы знаем объединение информации в обоих
. У нас есть информация, которая находится в одной переменной, но отсутствует в другой,
и
. Многое из этого, вращается вокруг информации, общей в переменных — пересечения их информации. Мы называем это «взаимной информацией»,
, определяемой как:
Это определение верно, поскольку содержит две копии взаимной информации, так как она находится и в
и в
, в то время как
содержит только одну копию. (см. предыдущую диаграмму)
С взаимной информацией тесно связана вариация информации. Вариация информации — это информация, которая не является общей для переменных. Мы можем определить ее так:
Вариация информации интересна тем, что она дает нам метрику, понятие расстояния между различными переменными. Вариация информации между двумя переменными равна нулю, если знание значения одной переменной говорит вам о значении другой и становится больше по мере того, как они становятся более независимыми.
Как это соотносится с KL-дивергенцией, которая также дает нам понятие расстояния? KL-дивергенция это расстояние между двумя распределениями над одной и той же переменной или набору переменных. Напротив, вариация информации дает нам расстояние между двумя совместно распределенными переменными. KL дивергенция — это расхождение между распределениями, вариация информации внутри распределения.
Мы можем свести все это вместе в единую диаграмму, связывающую все эти различные виды информации:
Дробные биты
Очень неинтуитивной вещью в теории информации является то, что мы можем иметь дробные количества битов. Это довольно странно. Что значит половина бита?
Вот простой ответ: часто нас интересует средняя длина сообщения, а не длина какого-либо конкретного сообщения. Если в половине случаев посылается один бит, а в половине случаев — два, то в среднем посылается полтора бита. Нет ничего странного в том, что средние величины могут быть дробными.
Но этим ответом мы уклоняемся от вопроса. Часто оптимальные длины кодовых слов тоже являются дробными. Что это значит?
Чтобы быть конкретным, давайте рассмотрим распределение вероятностей, где одно событие, , происходит 71% времени, а другое событие,
, происходит 29% времени.
Оптимальный код будет использовать 0,5 бит для представления и 1,7 бита для представления
. Ну, если мы хотим отправить только одно из этих кодовых слов, такое представление невозможно. Мы вынуждены округлять до целого числа битов и отправлять в среднем 1 бит.
… Но если мы посылаем несколько сообщений одновременно, то оказывается можно сделать лучше. Давайте рассмотрим передачу двух событий из этого распределения. Если бы мы посылали их независимо, нам пришлось бы посылать два бита. Как нам это улучшить?
В половине случаев нам нужно посылать , в 21% случаев —
или
, а в 8% случаев —
. Опять же, идеальный код включает дробные количества битов.
Если мы округлим длины кодовых слов, мы получим что-то вроде этого:
Эти коды дают нам среднюю длину сообщения 1,8 бит. Это меньше, чем 2 бита, когда мы посылаем сообщения независимо. Т.е. в этом случае мы посылаем 0,9 бит в среднем для каждого события. Если бы мы послали больше событий сразу, среднее значение стало бы еще меньше. При стремящемся к бесконечности, накладные расходы, связанные с округлением нашего кода, исчезнут, и число битов на кодовое слово сойдется к энтропии.
Далее, обратите внимание, что идеальная длина кодового слова для события составляла 0,5 бит, а идеальная длина для кодового слова
— 1 бит. Идеальные длины кодовых слов складываются, даже если они дробные! Так что, если мы будем сообщать сразу несколько событий, длины будут складываться.
Как мы видим, существует реальный смысл, для дробные количеств битов информации, даже если фактические коды могут использовать только целые числа.
(На практике люди используют определенные схемы кодирования, которые эффективны в разных случаях. Код Хаффмана, который фактически является тем видом кода, который мы набросали здесь, не очень изящно обрабатывает дробные биты — вы должны группировать символы, как мы это делали выше, или использовать более сложные трюки, чтобы приблизиться к пределу энтропии. Арифметическое кодирование немного отличается, он элегантно обрабатывает дробные биты, чтобы быть асимптотически оптимальным.)
Заключение
Если нас волнует передача информации за минимальное количестве битов, то эти идеи, безусловно, фундаментальны. Если мы заботимся о сжатии данных, теория информации решает основные вопросы и дает нам фундаментально правильные абстракции. Но что, если нам все равно – разве это не экзотика?
Идеи из теории информации появляются во множестве контекстов: машинное обучение, квантовая физика, генетика, термодинамика и даже азартные игры. Практиков в этих областях теория информации заботит не потому, что они хотят сжать информацию. Их заботит то, что это имеет непреодолимую связь с их областью. Квантовую запутанность можно описать энтропией. Многие результаты в статистической механике и термодинамике можно получить, предположив максимальную энтропию о вещах, которых вы не знаете. Выигрыши и проигрыши игрока напрямую связаны с KL-дивергенцией в частности с итерационными сетапами (iterated setups).
Теория информации появляется во всех этих местах, потому что она предлагает конкретные, принципиальные формализации для многих вещей, которые мы должны выразить. Она дает нам способы измерения и выражения неопределенности, насколько различны два набора убеждений и что ответ на один вопрос говорит нам о других: насколько рассеяна вероятность, расстояние между распределениями вероятностей и насколько зависимы две переменные. Существуют ли альтернативные, подобные идеи? Конечно. Но идеи из теории информации чисты, они обладают действительно хорошими свойствами и основываются на принципах. В некоторых случаях эти идеи именно то, что вам нужно, а в других случаях они являются удобным посредником в хаотичном мире.
Машинное обучение — это то, что я знаю лучше всего, так что давайте поговорим об этом одну минуту. Очень распространенным видом задач в машинном обучении является классификация. Предположим, мы хотим посмотреть на картинку и предсказать, будет это изображение собаки или кошки. Наша модель может сказать что-то вроде: “есть 80% вероятности, что это изображение собаки, и 20% вероятности, что это кошка.» Допустим, правильный ответ — собака – насколько хорошо или плохо то, что мы сказали, что вероятность того что это собака 80%? Насколько лучше было бы сказать 85%?
Это важный вопрос, потому что нам нужно некоторое представление о том, насколько хороша или плоха наша модель, чтобы оптимизировать ее для достижения успеха. Что мы должны оптимизировать? Правильный ответ на самом деле зависит от того, для чего мы используем модель: заботимся ли мы только о том, была ли верна наша догадка, или нас волнует, насколько мы уверены в правильном ответе? Насколько это плохо — уверенно ошибаться? На это нет единственного правильного ответа. И часто невозможно узнать правильный ответ, потому что мы не знаем достаточно точно как будет использоваться модель, чтобы формализовать то, что нас в конечном счете волнует. Есть ситуации когда перекрестная энтропия — это именно то, что нас волнует, но это не всегда так. Гораздо чаще мы не знаем точно, что нас волнует, и перекрестная энтропия — действительно хороший прокси.
Информация дает нам сильную новую базу для размышления о мире. Иногда она идеально подходит для данной задачи; в других случаях не совсем, но все же чрезвычайно полезна. Это эссе только поскребло поверхность теории информации – есть основные темы, такие как коды исправления ошибок, которые мы вообще не касались, но я надеюсь, что я показал, что теория информации — это прекрасный предмет, который не должен быть пугающим.