Я пытаюсь измерить много не избыточной (фактической) информации, содержащейся в моем файле. Некоторые называют это количеством энтропии.
Конечно, существует стандарт p (x) log {p (x)}, но я думаю, что Шеннон рассматривал его только с точки зрения передачи по каналу. Следовательно, формула требует размер блока (скажем, в битах, обычно 8). Для большого файла этот расчет довольно бесполезен, игнорируя корреляции между символами на короткие и длинные расстояния.
Существуют методы двоичного дерева и метода Зива-Лемпеля, но они кажутся высоко академическими по своей природе.
Сжимаемость также рассматривается как мера энтропии, но, похоже, не существует нижнего предела в отношении степени сжатия. Для моего файла hiss.wav,
- оригинал hiss.wav = 5,2 МБ
- энтропия по формуле Шеннона = 4,6 МБ
- hiss.zip = 4,6 МБ
- hiss.7z = 4,2 МБ
- hiss.wav.fp8 = 3,3 МБ
Есть ли какой-нибудь разумный практический метод измерения того, сколько энтропии существует в hiss.wav?
Ответы:
gzip
Благодаря этому результату Лемпеля и Зива энтропия источника может быть аппроксимирована путем сжатия длинной последовательности выборок с использованием алгоритма Лемпеля – Зива. Это не оценивает энтропию конкретных выборок, что не является четко определенным понятием (постоянная последовательность имеет нулевую энтропию), а скорее является энтропией источника, ее генерирующего.
Связанное понятие - алгоритмическая энтропия , также известная как сложность Колмогорова . Это длина самой короткой программы, генерирующей ваш файл. Это количество имеет смысл для отдельного файла. В случае файла, сгенерированного случайным источником, теорема Лемпеля – Зива показывает, что алгоритмическая энтропия файла с высокой вероятностью ограничена его энтропией Шеннона. К сожалению, алгоритмическая энтропия не вычислима, поэтому это скорее теоретическая концепция.
Чтобы завершить картину, я предлагаю прочитать статью Шеннона по прогнозированию и энтропии печатного английского языка для другого подхода к оценке энтропии источника.
источник