Согласно Википедии :
Энтропия Шеннона измеряет информацию, содержащуюся в сообщении, в отличие от той части сообщения, которая определена (или предсказуема). Примеры последних включают избыточность в структуре языка или статистических свойствах, связанных с частотой встречаемости пар букв или слов, триплетов и т. Д.
Таким образом, энтропия является мерой количества информации, содержащейся в сообщении. Энтропийные кодеры используются для сжатия такого сообщения без потерь до минимального количества битов, необходимого для его представления (энтропия). Для меня это выглядит так, будто идеальный энтропийный кодер - это все, что нужно для того, чтобы без потерь сжать сообщение как можно больше.
Однако во многих алгоритмах сжатия используются энтропийное кодирование, чтобы предположительно уменьшить энтропию сообщения.
Согласно немецкой Википедии
Entropiekodierer werden häufig mit andderen Kodierern kombiniert. Dabei dienen vorgeschaltete Verfahren dazu, умереть Entropie der Daten zu verringern.
По-английски:
Энтропийные кодеры часто комбинируются с другими кодерами. Предыдущие шаги служат для уменьшения энтропии данных.
т. е. bzip2 использует преобразование Берроуза-Уилера с последующим преобразованием «движение вперед» перед применением энтропийного кодирования (в данном случае кодирование Хаффмана).
Действительно ли эти шаги уменьшают энтропию сообщения, что подразумевает уменьшение количества информации, содержащейся в сообщении? Это кажется мне противоречивым, так как это означало бы, что информация была потеряна во время сжатия, предотвращая распаковку без потерь. Или они просто преобразуют сообщение, чтобы повысить эффективность алгоритма энтропийного кодирования? Или энтропия не соответствует количеству информации в сообщении?
Ответы:
Многие случайные описания энтропии сбивают с толку таким образом, потому что энтропия не так аккуратна и опрятна, как иногда представляется. В частности, стандартное определение энтропии Шеннона предусматривает, что оно применяется только тогда, когда, как говорит Википедия, «информация, связанная с независимыми событиями, является аддитивной».
Другими словами, независимые события должны быть статистически независимыми. Если это не так, то вам нужно найти представление данных, которое определяет события таким образом, чтобы сделать их по-настоящему независимыми. В противном случае вы переоцените энтропию.
Иными словами, энтропия Шеннона применима только к истинным распределениям вероятностей, а не к случайным процессам в целом. Для конкретных примеров процессов, которые не соответствуют предположениям об энтропии Шеннона, рассмотрим ...
Марковские процессы
Марковский процесс генерирует серию событий, в которых самое последнее событие выбирается из распределения, которое зависит от одного или нескольких предыдущих событий. Очевидно, что огромное количество явлений реального мира лучше моделировать как марковские процессы, чем как дискретные, независимые распределения вероятностей. Например: текст, который вы читаете прямо сейчас!
Наивно рассчитанная скорость энтропии Шеннона марковского процесса всегда будет больше или равна истинной скорости энтропии процесса. Чтобы получить истинную энтропию процесса, необходимо учитывать статистическую зависимость между событиями. В простых случаях формула для этого выглядит так :
Это также можно представить так :
Снова цитируя Википедию, здесь «μi - асимптотическое распределение цепи», то есть общая вероятность того, что данное событие произойдет в течение длительного горизонта.
Все это сложный способ сказать, что даже когда вы можете рассчитать общую вероятность того или иного события, некоторые последовательности событий с большей вероятностью, чем другие, будут генерироваться марковским процессом. Так, например, следующие три строки английских слов становятся все менее вероятными:
Но энтропия Шеннона оценит все три строки как одинаково вероятные. Энтропия марковского процесса учитывает разницу, и в результате она присваивает процессу более низкую скорость энтропии.
Уровень энтропии зависит от модели
Если вы уменьшите масштаб, вот общая картина: уровень энтропии заданной последовательности событий из неизвестного источника зависит от модели. Вы будете назначать разные скорости энтропии для определенной серии событий в зависимости от того, как вы смоделировали процесс, который их сгенерировал.
И очень часто ваша модель процесса будет не совсем правильной. Это не простая или легко решаемая проблема. На самом деле, в общем случае невозможно присвоить истинную скорость энтропии достаточно длинной и сложной последовательности событий, если вы не знаете, каков истинный базовый процесс. Это главный результат в алгоритмической теории информации .
На практике это означает, что при неизвестном источнике последовательностей событий разные модели будут давать разные энтропии, и невозможно определить, какая из них верна в долгосрочной перспективе - хотя та, которая назначает самую низкую энтропию, вероятно, является лучшей.
источник
Нет, если алгоритм не имеет потерь, никакие шаги в последовательности сжатия не могут уменьшить его энтропию - иначе он не сможет быть распакован / декодирован. Однако дополнительная энтропия может быть сохранена во внеполосной информации, такой как список, который необходимо поддерживать, чтобы декодировать преобразование движения вперед.
источник
Они уменьшают кажущуюся энтропию, присущую структуре исходного сообщения. Или, другими словами, они настраивают сообщение, чтобы использовать сильные стороны следующих этапов сжатия.
Одним простым примером будет замена имени в конечных тегах xml специальным символом. Вы можете прекрасно воссоздать исходный xml из этого, но компрессор не должен снова включать полное имя в этом месте.
Более реальным примером является сжатие PNG. Это энтропийный компрессор DEFLATE, представляющий собой комбинацию Lempel-Ziff и Huffman. Это означает, что он лучше всего работает со значениями и шаблонами, которые часто повторяются. Большинство соседних пикселей имеют тенденцию быть схожими цветами. Таким образом, каждой строке назначается фильтр, который превращает исходные значения пикселей в дифференциальное кодирование. Таким образом, значения, которые в конечном итоге закодированы с помощью DEFLATE, в основном близки к 0. В крайнем случае это превратит плавный градиент из всех различных значений в одно значение по всей строке, над которой часть LZ или DEFLATE выполняет очень быструю работу.
источник
Энтропийные кодеры не сжимают сообщение до минимального количества битов, необходимых для его представления. Я знаю, что это заманчиво, но это не то, что они делают. Они не волшебны, и они не могут этого достичь.
Вместо этого они делают что-то немного менее волшебное - но все же полезное. Предположим на данный момент, что мы знали, что каждый символ сообщения был выбран независимо от некоторого распределения. Тогда можно было бы построить алгоритм сжатия без потерь, который оптимально сжимает сообщения. Эти алгоритмы называются энтропийными кодерами.
Теперь реальные сообщения обычно не имеют этого свойства независимости. Например, если вы видите Q, вполне вероятно, что следующая буква - U. И так далее. Все еще возможно применить алгоритм энтропийного кодера к реальному сообщению, где каждый символ не выбран независимо от остальных. Алгоритм по-прежнему будет без потерь, его все еще можно будет использовать для сжатия, и на практике он все равно будет часто сокращать длину сообщения. Однако это не сокращает его до минимально возможной длины. Это не сжимает сообщение к чему-то, чья длина равна энтропии сообщения; это сжимает это меньше чем это.
Как только вы осознаете это свойство энтропийных энкодеров, парадокс испаряется.
В общем, любой шаг без потерь никогда не уменьшает энтропию сообщения. Тем не менее, он может поместить сообщение в форму, где какой-то другой алгоритм сжатия более эффективен, поэтому он может быть полезен (в среднем) на практике.
источник
Слово «энтропия», если его часто употребляют немного свободно, относится к двум различным вещам:
«Общее количество информации» в сообщении или системе
«Плотность» информации, или насколько плотно информация упакована.
Цитата ОП о записи Википедии для https://en.wikipedia.org/wiki/Entropy_(information_theory) относится к первому:
Но (по крайней мере, когда я пишу это) та же статья начинается с:
Итак, один - это количество, а другой - скорость (аналогично расстоянию и скорости). Их иногда называют «расширенными» и «интенсивными» свойствами (см. Https://en.wikipedia.org/wiki/Intensive_and_extensive_properties#Extensive_properties ).
Классическим примером различия является знаменитый сигнал фонаря Пола Ревера: «один - по суше, а два - по морю». 1 бит полной информации (если мы проигнорируем дело «нет, если я еще не добрался до Северной Церкви»). Если бы Павел добавил еще один набор фонарей в каждое окно здания, это было бы «избыточно»: больше никакой информации, поэтому та же самая «полная» или «обширная» энтропия; но намного больше длина сообщения, намного более низкая "интенсивная" энтропия.
Если он начинает таким образом, но переходит на использование только одного набора фонарей, это «сжатие без потерь», как в вопросе ОП. «Расширенная» энтропия такая же, но «интенсивная» энтропия отличается: поскольку количество фонарей во 2-м окне сильно коррелирует с тем, сколько вы видели в первом, избыточное сообщение более предсказуемо, или менее случайный, поэтому имеет гораздо более низкую интенсивность энтропии.
Следует помнить еще две важные вещи:
Во-первых, мы обычно не знаем «истинную» энтропию системы в любом смысле. Наивный наблюдатель не знает, будет ли «3 фонаря» другим сообщением, или сигналы в другом окне избыточны или нет. Если Пол делает свою поездку привычкой, мы можем посчитать и посмотреть, соответствуют ли окна друг другу. Но, возможно, мы просто не смотрели достаточно долго, чтобы увидеть редкие (и, вероятно, важные!) Исключения.
Во-вторых, важно, как вы измеряете. Попробуйте попытаться оценить, сколько сообщается каждой последовательной буквой текста (это показатель, так что «интенсивная» энтропия, также иногда называемая «относительной энтропией»):
Но, конечно, сообщения могут (и имеют) иметь много паттернов, которые не моделируются такими n-граммными методами, поэтому «истинная» энтропия еще ниже.
Если вы смоделируете теоретический бесконечный источник с совершенно случайным распределением токенов по Зипфиану, вы сможете рассчитать обширную и интенсивную энтропию, которая будет зависеть только от количества возможных различных токенов. Графики того, как каждый тип энтропии выглядит при увеличении этого числа, приведены в [ http://www.derose.net/steve/writings/dis Диссертация / Diss.0.html] . Они ведут себя совершенно по-разному:
Надеюсь, что это помогает или хотя бы интересно ...
источник
Я подозреваю, что формулировка в немецкой Википедии ошибочна. Компрессоры увеличивают энтропию. То есть не общая энтропия, а энтропия на бит : плотность информации. Например, для сжатия данных применяется некоторая кодировка длины и словарная схема. Теперь та же информация упакована в меньшее количество битов, поэтому каждый бит несет больше информации. Последующее кодирование Хаффмана делает немного больше того же самого; это просто еще один уровень сжатия.
источник