Ентропія Шеннона 0,922, 3 чіткі значення


14

З огляду на рядок значень В С , Шенноном ентропійним в журналі базі  2 приходить до 0,922 . Як я розумію, у базі  2 закруглена ентропія Шеннона - це мінімальна кількість бітів у двійковій формі, щоб представити єдине одне із значень.AAAAAAAABC20.9222

Зі вступу на цій сторінці вікіпедії:

https://en.wikipedia.org/wiki/Entropy_%28information_theory%29

Отже, як можна три значення представити одним бітом? A  може бути  1 , B  може бути  0 ; але як ви могли представляти  C ?

Спасибі заздалегідь.

Відповіді:


16

Ентропія, яку ви обчислили, насправді не для конкретного рядка, а, скоріше, для випадкового джерела символів, що генерує A з вірогідністю  810 , аBі Cз вірогідністю 110 кожен, без кореляції між послідовними символами. Обчислена ентропія для цього розподілу0.922означає, що ви не можете представляти рядки, згенеровані з цього розподілу, використовуючи в середньому менше0.922біт на символ.

Можливо, буде досить важко розробити код, який дозволить досягти цієї швидкості. * Наприклад, кодування Хаффмана виділило б коди 0 , 10 і  11 відповідно A , B і  C , в середньому 1.2  біта на символ. Це досить далеко від ентропії, хоча все-таки набагато краще, ніж наївне кодування двох біт на символ. Будь-яка спроба краще кодування , ймовірно , буде використовувати той факт , що навіть пробіг десять разів поспіль s більш імовірно (ймовірність 0,107 ) , ніж один  B .A0.107B


* Виявляється, не так важко наблизитися, як хочеш - дивись інші відповіді!


18

Ось конкретне кодування, яке може представляти кожен символ у середньому менше ніж 1 біт:

По-перше, розділіть рядок введення на пари послідовних символів (наприклад, AAAAAAAACC стає AA | AA | AA | AA | BC). Потім кодуйте AA як 0, AB як 100, AC як 101, BA як 110, CA як 1110, BB як 111100, BC як 111101, CB як 111110, CC як 111111. Я не сказав, що станеться, якщо є непарне кількість символів, але ви можете просто закодувати останній символ за допомогою довільного кодування, це не має значення, коли вхід довгий.

Це код Хаффмана для розподілу незалежних пар символів і відповідає вибору n=2 у відповіді Юваля. Більша n призведе до ще кращих кодів (наближення до ентропії Шеннона, як він згадував).

Середня кількість бітів на пару символів для вищевказаного кодування становить

8108101+38101103+1108104+41101106=1.92
тобто1.92/2=0.96біт на символ, не так далеко від ентропії Шеннона насправді для такого простого кодування.


13

D{A,B,C}XDPr[X=A]=4/5Pr[X=B]=Pr[X=C]=1/10

nCn:{A,B,C}n{0,1}

limnEX1,,XnD[Cn(X1,,Xn)]n=H(D).

In words, if we encode a large number of independent samples from D, then on average we need H(D)0.922 bits per sample. Intuitively, the reason we can do with less than one bit is that each individual sample is quite likely to be A.

This is the real meaning of entropy, and it shows that computing the "entropy" of a string A8BC is a rather pointless exercise.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.