Angenommen, ich muss die folgende diskrete Verteilung simulieren:
Der naheliegendste Weg ist, zufällige Bits zu zeichnen und zu prüfen, ob alle gleich (oder ) sind. Die Informationstheorie sagt jedoch
Die erforderliche Mindestanzahl von Zufallsbits nimmt also tatsächlich ab, wenn groß wird. Wie ist das möglich?
Bitte nehmen Sie an, dass wir auf einem Computer laufen, auf dem Bits Ihre einzige Zufallsquelle sind, sodass Sie nicht einfach eine voreingenommene Münze werfen können.
Antworten:
Wow, tolle Frage! Lassen Sie mich versuchen, die Auflösung zu erklären. Es werden drei verschiedene Schritte benötigt.
Das erste, was zu beachten ist, ist, dass die Entropie sich mehr auf die durchschnittliche Anzahl der pro Ziehung benötigten Bits konzentriert , nicht auf die maximale Anzahl der benötigten Bits.
Bei Ihrem Stichprobenverfahren beträgt die maximale Anzahl der pro Ziehung benötigten Zufallsbits Bits, aber die durchschnittliche Anzahl der benötigten Bits beträgt 2 Bits (der Durchschnitt einer geometrischen Verteilung mit ) - dies liegt daran, dass es a gibt Wahrscheinlichkeit, dass Sie nur 1 Bit benötigen (wenn sich das erste Bit als 1 herausstellt), Wahrscheinlichkeit, dass Sie nur 2 Bits benötigen (wenn sich die ersten beiden Bits als 01 herausstellen), Wahrscheinlichkeit, dass Sie nur 3 Bits benötigen (wenn sich herausstellt, dass die ersten drei Bits 001 sind), und so weiter.N p=1/2 1/2 1/4 1/8
Das zweite, was zu beachten ist, ist, dass die Entropie nicht wirklich die durchschnittliche Anzahl von Bits erfasst, die für eine einzelne Ziehung benötigt werden. Stattdessen werden die Entropie erfasst die amortisierten Anzahl von Bits , die Probe benötigt zieht iid aus dieser Verteilung. Angenommen, wir brauchen Bits, um Zeichnungen abzutasten. dann ist die Entropie die Grenze von als .m f(m) m f(m)/m m→∞
Das dritte , was zu beachten ist , dass bei dieser Verteilung, können Sie probieren iid als zieht mit weniger Bits wiederholt Probe ein Unentschieden benötigt. Angenommen, Sie haben sich naiv dazu entschlossen, ein Sample zu zeichnen (durchschnittlich 2 zufällige Bits), und dann ein weiteres Sample zu zeichnen (durchschnittlich 2 weitere zufällige Bits), und so weiter, bis Sie dies mal wiederholt haben. Dies würde im Durchschnitt etwa zufällige Bits erfordern .m m 2m
Es stellt sich jedoch heraus, dass es eine Möglichkeit gibt, aus Zeichnungen mit weniger als Bits . Es ist schwer zu glauben, aber es ist wahr!m 2m
Lass mich dir die Intuition geben. Angenommen, Sie haben das Ergebnis der Stichprobe draws notiert, wobei wirklich groß ist. Dann könnte das Ergebnis als Bit-String angegeben werden. Diese Bit-Zeichenfolge besteht zumeist aus Nullen, in denen einige Einsen enthalten sind. Insbesondere hat sie im Durchschnitt etwa Einsen (könnte mehr oder weniger sein, aber wenn ausreichend groß ist, ist dies in der Regel der Fall Zahl wird in der Nähe sein). Die Länge der Lücken zwischen den Einsen ist zufällig, liegt aber typischerweise irgendwo in der Nähe von (könnte leicht halb so groß oder doppelt so groß sein oder sogar noch größer, aber in dieser Größenordnung). Natürlich, anstatt das ganze aufzuschreibenm m m m m/2N m 2N m N m / 2 N m N / 2 N m m-Bit-Zeichenfolge, wir könnten sie genauer aufschreiben, indem wir eine Liste der Lückenlängen aufschreiben - diese enthält dieselben Informationen in einem komprimierteren Format. Wie viel prägnanter? Nun, normalerweise benötigen wir ungefähr Bits, um die Länge jeder Lücke darzustellen. und es wird ungefähr Lücken geben; Wir werden also insgesamt ungefähr Bits benötigen (könnte ein bisschen mehr sein, könnte ein bisschen weniger sein, aber wenn ausreichend groß ist, wird es normalerweise in der Nähe davon sein). Das ist viel kürzer als eine Bit-Zeichenfolge.N m/2N mN/2N m m
Und wenn es eine Möglichkeit gibt, die Zeichenfolge so kurz zu schreiben, ist es vielleicht nicht verwunderlich, wenn dies bedeutet, dass die Zeichenfolge mit einer Anzahl von Zufallsbits generiert werden kann, die mit der Länge der Zeichenfolge vergleichbar sind. Insbesondere generieren Sie die Länge jeder Lücke nach dem Zufallsprinzip. Dies ist eine Stichprobe aus einer geometrischen Verteilung mit , und das kann mit ungefähr zufälligen Bits im Durchschnitt (nicht ) durchgeführt werden. Sie benötigen ungefähr iid Draws aus dieser geometrischen Verteilung, sodass Sie insgesamt ungefähr zufällige Bits benötigen . (Es könnte ein kleiner konstanter Faktor sein, der größer, aber nicht zu groß ist.) Beachten Sie, dass dies viel kleiner als Bits ist.p=1/2N ∼N 2N m/2N ∼Nm/2N 2m
So können wir probieren iid schöpft aus Ihrer Distribution, mit nur Zufallsbits (grob). Denken Sie daran, dass die Entropie . Das heißt, Sie sollten erwarten, dass die Entropie (ungefähr) . Das ist ein bisschen anders, weil die obige Berechnung skizzenhaft und grob war - aber hoffentlich gibt sie Ihnen eine Vorstellung davon, warum die Entropie so ist, wie sie ist, und warum alles konsistent und vernünftig ist.m f(m)∼Nm/2N limm→∞f(m)/m N/2N
quelle
Sie können dies rückwärts denken: Betrachten Sie das Problem der binären Codierung anstelle der Generierung. Angenommen, Sie haben eine Quelle, die die Symbole mit , . Wenn beispielsweise , erhalten wir . Also (Shannon sagt es uns) gibt es eine eindeutig dekodierbare binäre Kodierung , wobei (Datenbits) ist, so dass wir durchschnittlich ungefähr Datenbits für jedes ursprüngliche Symbol benötigen .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
(Für den Fall, dass Sie sich fragen, wie eine solche Codierung existieren kann, da wir nur zwei Quellensymbole haben und es den Anschein hat, dass wir die triviale Codierung , mit einem Bit pro Symbol nicht besser machen können.) Sie müssen verstehen, dass wir zur Annäherung an die Shannon-Grenze "Erweiterungen" der Quelle verwenden müssen, dh Sequenzen von Eingaben als Ganzes codieren müssen (siehe insbesondere arithmetische Codierung).A→0 B→1
Sobald das Obige klar ist, wenn wir annehmen, dass wir eine invertierbare Abbildung von , und bemerken, dass in der Shannon-Grenze die maximale Entropie haben muss (1 Informationsbit pro Datenbit), d. H , die Statistiken einer faire Münze hat, dann haben wir eine Erzeugungsschema auf der Hand: zeichnen Zufallsbits (hier hat keine Beziehung zu ) mit einer fairen Münze, interpretieren es als das Ausgang des Codierers , und dekodiere daraus. Auf diese Weise hat die gewünschte Wahrscheinlichkeitsverteilung, und wir benötigen (im Durchschnitt) Münzen, um jeden Wert von zu erzeugen .Xn→Yn Yn Yn n n N Yn Xn Xn H(X)<1 X
quelle