Laut Wikipedia :
Shannons Entropie misst die in einer Nachricht enthaltenen Informationen im Gegensatz zu dem Teil der Nachricht, der bestimmt wird (oder vorhersehbar ist). Beispiele für letztere sind Redundanz in der Sprachstruktur oder statistische Eigenschaften in Bezug auf die Häufigkeit des Auftretens von Buchstaben- oder Wortpaaren, Tripletts usw.
Die Entropie ist also ein Maß für die Informationsmenge, die in einer Nachricht enthalten ist. Entropiecodierer werden verwendet, um eine solche Nachricht verlustfrei auf die minimale Anzahl von Bits zu komprimieren, die erforderlich sind, um sie darzustellen (Entropie). Für mich sieht das so aus, als wäre ein perfekter Entropie-Encoder alles, was benötigt wird, um eine Nachricht so verlustfrei wie möglich zu komprimieren.
Viele Komprimierungsalgorithmen verwenden jedoch Schritte vor der Entropiecodierung, um angeblich die Entropie der Nachricht zu verringern.
Laut deutscher Wikipedia
Entropiekodierer werden häufig mit anderen Kodierern kombiniert. Dabei dienen vorgeschaltete Verfahren dazu, die Entropie der Daten zu verringern.
Auf Englisch:
Entropiecodierer werden häufig mit anderen Codierern kombiniert. Vorherige Schritte dienen dazu, die Entropie der Daten zu verringern.
dh bzip2 verwendet die Burrows-Wheeler-Transformation, gefolgt von einer Move-To-Front-Transformation, bevor die Entropiecodierung angewendet wird (in diesem Fall Huffman-Codierung).
Verringern diese Schritte wirklich die Entropie der Nachricht, was bedeuten würde, dass die in der Nachricht enthaltene Informationsmenge verringert wird? Dies erscheint mir widersprüchlich, da dadurch Informationen während der Komprimierung verloren gehen und eine verlustfreie Dekomprimierung verhindert wird. Oder transformieren sie lediglich die Nachricht, um die Effizienz des Entropiecodierungsalgorithmus zu verbessern? Oder entspricht die Entropie nicht direkt der Informationsmenge in der Nachricht?
Antworten:
Viele beiläufige Beschreibungen der Entropie sind auf diese Weise verwirrend, weil die Entropie nicht ganz so ordentlich ist, wie es manchmal dargestellt wird. Insbesondere sieht die Standarddefinition der Shannon-Entropie vor, dass sie nur dann gilt, wenn, wie Wikipedia es ausdrückt, "Informationen aufgrund unabhängiger Ereignisse additiv sind".
Mit anderen Worten, unabhängige Ereignisse müssen statistisch unabhängig sein. Wenn dies nicht der Fall ist, müssen Sie eine Darstellung der Daten finden, die Ereignisse so definiert, dass sie wirklich unabhängig sind. Andernfalls überschätzen Sie die Entropie.
Um es noch anders auszudrücken, die Shannon-Entropie gilt nur für wahre Wahrscheinlichkeitsverteilungen und nicht für zufällige Prozesse im Allgemeinen. Betrachten Sie für konkrete Beispiele von Prozessen, die nicht den Annahmen der Shannon-Entropie entsprechen, ...
Markov-Prozesse
Ein Markov-Prozess generiert eine Reihe von Ereignissen, bei denen das letzte Ereignis aus einer Verteilung abgetastet wird, die von einem oder mehreren vorherigen Ereignissen abhängt. Offensichtlich ist eine große Anzahl von realen Phänomenen besser als Markov-Prozesse als diskrete, unabhängige Wahrscheinlichkeitsverteilungen modelliert. Zum Beispiel: der Text, den Sie gerade lesen!
Die naiv berechnete Shannon-Entropierate eines Markov-Prozesses ist immer größer oder gleich der tatsächlichen Entropierate des Prozesses. Um die wahre Entropie des Prozesses zu erhalten, müssen Sie die statistische Abhängigkeit zwischen Ereignissen berücksichtigen. In einfachen Fällen ist die Formel für das sieht wie folgt aus :
Dies kann auch so dargestellt werden :
Wiederum zitiert Wikipedia hier " ist die asymptotische Verteilung der Kette" - das ist die Gesamtwahrscheinlichkeit, mit der ein bestimmtes Ereignis über einen langen Horizont hinweg eintreten wird.μich
Das ist alles eine komplizierte Art zu sagen , dass , selbst wenn man die Gesamtwahrscheinlichkeit eines bestimmten Ereignisses berechnen kann, bestimmte Sequenzen von Ereignissen sind wahrscheinlicher als andere durch einen Markov - Prozess erzeugt werden. So werden beispielsweise die folgenden drei englischen Wortfolgen immer unwahrscheinlicher:
Aber die Shannon-Entropie bewertet alle drei Zeichenfolgen als gleich wahrscheinlich. Die Markov-Prozessentropie berücksichtigt den Unterschied und weist dem Prozess daher eine niedrigere Entropierate zu.
Entropieraten sind modellabhängig
Wenn Sie weit herauszoomen, sehen Sie das große Ganze: Die Entropierate einer bestimmten Sequenz von Ereignissen aus einer unbekannten Quelle ist modellabhängig. Sie weisen einer bestimmten Reihe von Ereignissen eine andere Entropierate zu, je nachdem, wie Sie den Prozess modellieren, der sie generiert hat.
Und sehr häufig wird Ihr Modell des Prozesses nicht ganz korrekt sein. Dies ist kein einfaches oder leicht zu lösendes Problem. Tatsächlich ist es im Allgemeinen unmöglich, einer ausreichend langen und komplexen Folge von Ereignissen eine echte Entropierate zuzuweisen, wenn Sie nicht wissen, was der wahre zugrunde liegende Prozess ist. Dies ist ein zentrales Ergebnis der algorithmischen Informationstheorie .
In der Praxis bedeutet dies, dass unterschiedliche Modelle bei einer unbekannten Quelle von Ereignissequenzen unterschiedliche Entropien liefern, und es ist unmöglich zu wissen, welche auf lange Sicht korrekt ist - obwohl diejenige, die die niedrigste Entropie zuweist, wahrscheinlich die beste ist.
quelle
Nein, wenn der Algorithmus verlustfrei ist, können keine Schritte in der Komprimierungssequenz seine Entropie verringern - andernfalls könnte er nicht dekomprimiert / dekodiert werden. Die zusätzliche Entropie kann jedoch in "Out-of-Band" -Informationen gespeichert werden - beispielsweise in der Liste, die verwaltet werden muss, um die Move-to-Front-Transformation zu decodieren.
quelle
Sie reduzieren die scheinbare Entropie, die der Struktur der ursprünglichen Nachricht innewohnt. Mit anderen Worten, sie optimieren die Nachricht, um die Stärken der nächsten Komprimierungsstufen zu nutzen.
Ein einfaches Beispiel wäre, den Namen in den End-Tags von xml durch ein spezielles Symbol zu ersetzen. Sie können die ursprüngliche XML-Datei perfekt wiederherstellen, aber der Kompressor muss an dieser Stelle nicht erneut den vollständigen Namen angeben.
Ein realistischeres Beispiel ist die PNG-Komprimierung. Sein Entropiekompressor ist DEFLATE, eine Kombination aus Lempel-Ziff und Huffman. Dies bedeutet, dass es am besten mit Werten und Mustern funktioniert, die sich häufig wiederholen. Bei den meisten benachbarten Pixeln handelt es sich in der Regel um ähnliche Farben. So ist jeder Zeile ein Filter zugeordnet, der die ursprünglichen Pixelwerte in eine Differenzkodierung umwandelt. Auf diese Weise liegen die Werte, die von DEFLATE codiert werden, meist nahe bei 0. Im Extremfall wird dadurch ein gleichmäßiger Verlauf aller unterschiedlichen Werte in einen einzigen Wert in der gesamten Zeile umgewandelt, mit dem der LZ-Teil oder DEFLATE sehr schnell arbeitet.
quelle
Entropiecodierer komprimieren die Nachricht nicht auf die minimale Anzahl von Bits, die zur Darstellung erforderlich sind. Ich weiß, es ist verlockend, das zu denken, aber es ist nicht das, was sie tun. Sie sind keine Magie und das können sie nicht erreichen.
Stattdessen machen sie etwas weniger Magisches - aber immer noch nützlich. Nehmen wir für den Moment an, dass wir wussten, dass jedes Zeichen der Nachricht unabhängig von einer Verteilung ausgewählt wurde. Dann wäre es möglich, einen verlustfreien Komprimierungsalgorithmus zu erstellen, der die Nachrichten optimal komprimiert. Diese Algorithmen werden als Entropiecodierer bezeichnet.
Jetzt haben echte Nachrichten normalerweise nicht diese Unabhängigkeitseigenschaft. Wenn Sie beispielsweise ein Q sehen, ist der nächste Buchstabe wahrscheinlich ein U. Und so weiter. Es ist weiterhin möglich, einen Entropie-Encoder-Algorithmus auf eine echte Nachricht anzuwenden, bei der nicht jedes Zeichen unabhängig vom Rest ausgewählt wird. Der Algorithmus ist weiterhin verlustfrei, kann weiterhin für die Komprimierung verwendet werden und verkürzt in der Praxis häufig die Länge der Nachricht. Es wird jedoch nicht auf die minimal mögliche Länge gekürzt. Sie komprimiert die Nachricht nicht zu etwas, dessen Länge der Entropie der Nachricht entspricht. es komprimiert es weniger als das.
Sobald Sie diese Eigenschaft von Entropie-Encodern erkennen, verflüchtigt sich das Paradoxon.
Im Allgemeinen verringert ein verlustfreier Schritt niemals die Entropie der Nachricht. Möglicherweise wird die Nachricht jedoch in eine Form gebracht, in der ein anderer Komprimierungsalgorithmus effektiver ist, sodass sie in der Praxis möglicherweise (im Durchschnitt) immer noch nützlich ist.
quelle
Das Wort "Entropie" wird oft etwas locker verwendet, um sich auf zwei verschiedene Dinge zu beziehen:
Die "Gesamtmenge an Informationen" in einer Nachricht oder einem System
Die Informationsdichte oder wie dicht die Information gepackt ist.
Das Zitat von OP aus dem Wikipedia-Eintrag für https://en.wikipedia.org/wiki/Entropy_(information_theory) bezieht sich auf das erste:
Aber (zumindest wenn ich das schreibe) der gleiche Artikel beginnt mit:
Einer ist also ein Betrag und einer eine Rate (ähnlich der Entfernung vs. Geschwindigkeit). Diese werden manchmal als "umfangreiche" und "intensive" Eigenschaften bezeichnet (siehe https://en.wikipedia.org/wiki/Intensive_and_extensive_properties#Extensive_properties ).
Ein klassisches Beispiel für diese Unterscheidung ist das berühmte Laternensignal von Paul Revere: "Eins zu Land, zwei zu Wasser". 1 Bit Gesamtinformation (wenn wir den Fall "Keine, wenn ich noch nicht in North Church angekommen bin" ignorieren). Wenn Paulus in jedem Fenster des Gebäudes eine weitere Reihe von Laternen anbringen würde, wäre dies überflüssig: keine weiteren Informationen, also dieselbe "totale" oder "umfangreiche" Entropie; aber viel mehr Nachrichtenlänge, so viel weniger "intensive" Entropie.
Wenn er so anfängt, sich aber ändert, um nur einen Satz Laternen zu verwenden, ist das "verlustfreie Komprimierung" wie in der Frage von OP. Die "umfangreiche" Entropie ist die gleiche, aber die "intensive" Entropie ist anders: Da die Anzahl der Laternen im zweiten Fenster in hohem Maße mit der Anzahl der im ersten Fenster gesehenen korreliert, ist die redundante Nachricht vorhersehbarer oder weniger zufällig, hat also viel weniger intensive Entropie.
Es gibt zwei weitere wichtige Dinge, an die Sie sich erinnern sollten:
Erstens kennen wir normalerweise die "wahre" Entropie eines Systems in keiner Weise. Ein naiver Zuschauer weiß nicht, ob "3 Laternen" eine andere Nachricht wären oder ob Signale in verschiedenen Fenstern redundant sind oder nicht. Wenn Paul seine Fahrt zur Gewohnheit macht, können wir zählen und sehen, ob die Fenster immer zueinander passen. Aber vielleicht haben wir nicht lange genug geschaut, um die seltenen (und wahrscheinlich wichtigen!) Ausnahmen zu sehen.
Zweitens ist es wichtig, wie Sie messen. Versuchen Sie zu schätzen, wie viel von jedem aufeinanderfolgenden Textbrief übermittelt wird (das ist eine Rate, also "intensive" Entropie, manchmal auch "relative Entropie" genannt):
Aber natürlich können (und tun) Nachrichten viele Muster haben, die nicht mit solchen n-Gramm-Methoden modelliert wurden, so dass die "wahre" Entropie immer noch niedriger ist.
Wenn Sie eine theoretische unendliche Quelle mit einer perfekt zufälligen Zipfian-Verteilung von Token modellieren, können Sie die umfangreiche und intensive Entropie berechnen, die nur von der Anzahl der möglichen unterschiedlichen Token abhängt. In [ http://www.derose.net/steve/writings/dissertation/Diss.0.html] sind Diagramme zu finden, wie jeder Entropietyp mit zunehmender Anzahl aussieht . Die beiden verhalten sich ganz unterschiedlich:
Hoffe das hilft oder ist zumindest interessant ...
quelle
Ich vermute, dass die Formulierung in der deutschen Wikipedia falsch ist. Kompressoren erhöhen die Entropie. Das heißt, nicht die Gesamtentropie, sondern die Entropie pro Bit : die Informationsdichte. Beispielsweise wird ein Lauflängencodierungs- und Wörterbuchschema angewendet, um die Daten zu verdichten. Jetzt wird dieselbe Information in weniger Bits gepackt, sodass jedes Bit mehr Information enthält. Die nachfolgende Huffman-Codierung macht ein bisschen mehr vom Gleichen; Es ist nur eine weitere Kompressionsschicht.
quelle