Powiedz, że muszę zasymulować następujący rozkład dyskretny:
Najbardziej oczywistym sposobem jest narysowanie losowych bitów i sprawdzenie, czy wszystkie są równe (lub ). Jednak teoria informacji mówi
Tak więc minimalna liczba wymaganych bitów losowych faktycznie maleje, gdy staje się duże. Jak to jest możliwe?
Załóżmy, że działamy na komputerze, na którym bity są twoim jedynym źródłem losowości, więc nie możesz po prostu naciągnąć stronniczej monety.
Odpowiedzi:
Wow, świetne pytanie! Pozwól mi spróbować wyjaśnić rozdzielczość. To zajmie trzy wyraźne kroki.
Pierwszą rzeczą do zapamiętania jest to, że entropia skupia się bardziej na średniej liczbie bitów potrzebnych na losowanie, a nie na maksymalnej liczbie potrzebnych bitów.
W procedurze próbkowania maksymalna liczba losowych bitów potrzebnych na losowanie wynosi bitów, ale średnia potrzebna liczba bitów wynosi 2 bity (średnia rozkładu geometrycznego przy ) - dzieje się tak, ponieważ istnieje prawdopodobieństwa, że potrzebujesz tylko 1 bitu (jeśli pierwszy bit okaże się 1), prawdopodobieństwa, że potrzebujesz tylko 2 bitów (jeśli pierwsze dwa bity okażą się 01), a prawdopodobieństwo, że potrzebujesz tylko 3 bitów (jeśli pierwsze trzy bity okażą się 001) i tak dalej.N. p = 1 / 2 1 / 2 1 / 4 1 / 8
Drugą rzeczą do odnotowania jest to, że entropia tak naprawdę nie przechwytuje średniej liczby bitów potrzebnych do pojedynczego losowania. Zamiast tego, przechwytuje entropii zamortyzowany liczba bitów potrzebnych do próbkim IID czerpie z tej dystrybucji. Załóżmy, że potrzebujemy fa( m ) bitów do próbkowania m losowań; wówczas entropia jest granicą fa( m ) / m jako m→∞ .
Trzecią rzeczą, aby pamiętać, jest to, że z tej dystrybucji, można spróbowaćm iid czerpie z mniejszej liczby bitów niż potrzeba do jednego wielokrotnie próbki remisem. Załóżmy, że naiwnie postanowiłeś narysować jedną próbkę (średnio bierze 2 losowe bity), a następnie narysuj inną próbkę (średnio o 2 więcej losowych bitów) i tak dalej, aż powtórzysz to m razy. Wymagałoby to średnio około 2m losowych bitów.
Ale okazuje się, że istnieje sposób na próbkowanie zm losowań przy użyciu mniej niż 2m bitów. Trudno w to uwierzyć, ale to prawda!
Pozwól, że dam ci intuicję. Załóżmy, że zapisałeś wynik losowaniam losowań, gdzie m jest naprawdę duży. Następnie wynik można określić jako ciąg m bitowy. Ten m bitowy ciąg będzie w większości wynosił 0, z kilkoma 1: w szczególności średnio będzie miał około m/2N 1 (może być mniej więcej, ale jeśli m jest wystarczająco duży, zwykle liczba będzie blisko tego). Długość odstępów między jedynkami jest losowa, ale zwykle będzie nieco mniej więcej w pobliżu 2N (może z łatwością być o połowę mniejszy lub dwa razy większy lub nawet większy, ale o tej wielkości). Oczywiście zamiast zapisywać cały ciąg m bitowy, moglibyśmy zapisać go bardziej zwięźle, zapisując listę długości przerw - która zawiera wszystkie te same informacje, w bardziej skompresowanym formacie. O ile bardziej zwięzły? Cóż, zwykle potrzebujemy około N bitów do przedstawienia długości każdej przerwy; i będzie około m/2N luk; więc potrzebujemy w sumie około mN/2N bitów (może być nieco więcej, może być nieco mniej, ale jeśli jest wystarczająco duży, zwykle będzie to bliskie). To o wiele krótsze niżm m bitowy ciąg.
A jeśli istnieje sposób, aby zapisać zwięźle tak zwięźle, być może nie będzie to zaskakujące, jeśli oznacza to, że istnieje sposób na wygenerowanie ciągu przy użyciu liczby losowych bitów porównywalnych z długością ciągu. W szczególności losowo generujesz długość każdej przerwy; jest to próbkowanie z rozkładu geometrycznego z , i można to zrobić przy pomocy średnio losowych bitów z grubsza (nie ). Będziesz potrzebował około losowań z tego rozkładu geometrycznego, więc będziesz potrzebował w przybliżeniu losowych bitów. (Może to być mały stały współczynnik większy, ale nie za dużo większy.) I zauważ, że jest to znacznie mniej niż bity.p=1/2N ∼N 2N m/2N ∼Nm/2N 2m
Można więc próbka IID wciąga z rozkładu, z zastosowaniem tylko przypadkowych bitów (w przybliżeniu). Przypomnij sobie, że entropia to . Więc oznacza to, że należy spodziewać się entropia (w przybliżeniu) . Trochę to nie działa, ponieważ powyższe obliczenia były pobieżne i prymitywne - ale mam nadzieję, że daje to intuicję, dlaczego entropia jest tym, czym jest i dlaczego wszystko jest spójne i rozsądne.m f(m)∼Nm/2N limm→∞f(m)/m N/2N
źródło
Możesz pomyśleć o tym wstecz: weź pod uwagę problem kodowania binarnego zamiast generowania. Załóżmy, że masz źródło, które emituje symbole zp , . Na przykład, jeśli , otrzymamy . Tak więc (mówi nam Shannon) istnieje unikatowo dekodowalne kodowanie binarne , gdzie (bity danych), tak że potrzebujemy średnio około bitów danych dla każdego oryginalnego symbolu .X∈{A,B} p(A)=2−N p(B)=1−2−N N=3 H(X)≈0.54356 X→Y Y∈{0,1} 0.54356 X
(Jeśli zastanawiasz się, jak takie kodowanie może istnieć, biorąc pod uwagę, że mamy tylko dwa symbole źródłowe, i wydaje się, że nie możemy zrobić lepiej niż trywialne kodowanie, , , z jednym bitem na symbol, musisz zrozumieć, że aby zbliżyć się do granicy Shannona, musimy wziąć „rozszerzenia” źródła, to znaczy zakodować sekwencje danych wejściowych jako całości. Zobacz w szczególności kodowanie arytmetyczne).A→0 B→1
Gdy powyższe stanie się jasne, jeśli założymy, że mamy odwracalne odwzorowanie , i zauważając, że w granicy Shannona musi mieć maksymalną entropię (1 bit informacji na bit danych), tj. , ma statystyki uczciwej monety, a następnie mamy pod ręką schemat generowania: narysuj losowych bitów (tutaj nie ma związku z ) z uczciwą monetą, zinterpretuj to jako wyjście enkodera i dekoduj z niego . W ten sposób będzie miał pożądany rozkład prawdopodobieństwa i musimy (średnio) monety do wytworzenia każdej wartości .Xn→Yn Yn Yn n n N Yn Xn Xn H(X)<1 X
źródło