Informationstheorie Zusammenfassung Fabian Hahn, Dino Wernli 15. März 2009 Ergänzungen zur Wahrscheinlichkeitszusammenfassung Verbundwahrscheinlichkeit Die Verbundwahrscheinlichkeit ist eine andere Bezeichnung für die gemeinsame Gewichtsfunktion mehrerer gemeinsam verteilter Zufallsvariablen. Also zum Beispiel: P [X1 = x1 , X2 = x2 , X3 = x3 , . . . , Xn = xn ] (1) Kurzschreibweise: P [X1 , X2 , X3 , . . . , Xn ] (2) Abbildung 1: Ein einfaches Bayes-Netz Formale allgemeine Pfadregel Verbundwahrscheinlichkeiten können mit Hilfe bedingter gemeinsamer Wahrscheinlichkeiten entwickelt werden: Bedingter Erwartungswert Der bedingte Erwartungswert beschreibt den Durchschnitt der P [X1 , . . . , Xn ] = P [X1 , . . . , Xn−1 ] · P [Xn |X1 , . . . Xn−1 ] (3) Auswertung einer Zufallsvariablen über viele Versuche unter n Y der Bedingung, dass die Auswertungen anderer ZufallsvariaP [Xi |X1 , . . . , Xi−1 ] (4) blen bereits bekannt sind: = ... = i=1 X E[X|Y = y] = x · P [X = x|Y = y] (8) Dies entspricht gerade dem Ausmultiplizieren eines Pfades x in einem Wahrscheinlichkeitsbaum. Insofern stellt diese Entwicklung auch die Formalisierung der allgemeinen Pfadregel Marginalisierter Erwartungswert dar. Mit Hilfe obiger Definition lassen sich nun auch Erwartungswerte marginalisieren: X E[X] = E[X|Y = y] · P [Y = y] = E [E[X|Y ]] (9) Marginalisierung Die Marginalisierung ist eine andere Bezeichnung für das Wegsummieren oder -integrieren einer oder mehrerer Zufallsvariablen einer Verteilung, wenn man sich für die Verteilung unabhängig von diesen interessiert: X P [X1 = x1 ] = P [X1 = x1 , X2 = x2 ] (5) y Stochastische Prozesse Ein Wahrscheinlichkeitsexperiment, das aus einer zeitlichen Abfolge mehrerer Zufallsvariablen besteht, heisst stochastischer Prozess: x2 ∈W(X2 ) Bedingte Marginalisierung Anstatt der Verbundwahrscheinlichkeit kann man durch Anwendung von (4) zum Marginalisieren auch bedingte Wahrscheinlichkeiten verwenden: X P [X1 = x1 ] = P [X1 = x1 |X2 = x2 ] · P [X2 = x2 ] (6) {Xt1 = x1 , Xt2 = x2 , . . . , Xtn = xn } (10) Stationarität Ein stochastischer Prozess, bei welchem die statistischen Eigenschaften (Erwartungswert, Varianz, . . . ) dessen Zufallsvariablen unabhängig vom betrachteten Zeitpunkt ti sind, heisst stationär. Es gilt also: x2 Bayes-Netze Bayes-Netze sind eine Möglichkeit, Wahrscheinlichkeitssysteme mit gekoppelten bedingten Zufallsvariablen zu modellieE[Xti ] = E[Xtj ] (11) ren. Sie sind nützlich, da man bedingte Wahrscheinlichkeiten P [Xti , Xtj ] = f (|i − j|) (12) einer Zufallsvariable auf die im Graphen direkt mit der Zufallsvariablen verbundenen Bedingungen reduzieren kann. Abbildung 1 zeigt ein einfaches Bayes-Netz. In diesem gilt Ergodizität zum Beispiel: Ein stochastischer Prozess heisst ergodisch, falls dessen ZuP [D|A, B, C] = P [D|B, C] (7) fallsvariablen zu jedem Zeitpunkt den gleichen Erwartungswert haben wie ihre durchschnittliche Auswertung über alle 1 Abbildung 2: Eine einfache Markov-Kette Zeitpunkte eines Versuchs: ∀i : E[Xti ] = lim n→∞ Xt1 + Xt2 + . . . + Xtn n (13) Intuitiv gesprochen ist es egal, ob man über Auswertungen Abbildung 3: Ein Markov-Automat mit drei Zuständen zu einem festen Zeitpunkt mehrerer Experimente oder über die Auswertungen des stochastischen Prozesses eines Experiments mittelt. Ergodische stochastische Prozesse sind immer Um also diese Zustandswahrscheinlichkeiten zu bekommen, auch stationär. muss man das Eigenwertproblem der zugehörigen Zustandsübergangsmatrix lösen: Beispiel: Das n-malige Würfeln eines Würfels im Abstand von je einer Sekunde ist ein ergodischer Prozess: Es spielt P k,l = pX (qk |ql ) (18) keine Rolle, ob man die n Mal hintereinander würfelt und dann den Durchschnitt bildet, oder ob man 1000 Experi- In dem Feld der k-ten Zeile und der l-ten Spalte steht also die mente gleichzeitig durchführt (mit 1000 Würfeln gleichzeitig Übergangswahrscheinlichkeit, mit welcher man von Zustand würfeln) und von deren erstem Wurf den Durchschnitt nimmt. l zum Zustand k wechselt. Die Zustandsübergangsmatrix ist auch in anderer Weise praktikabel: Multipliziert man sie t mal mit sich selbst, so steht im Markov-Ketten Feld der k-ten Zeile und der l-ten Spalte, mit welcher WahrEin stochastischer Prozess heisst Markov-Kette oder Markov- scheinlichkeit man in t Schritten vom Zustand l ausgehend im Zustand k landet. Lässt man t → ∞ gehen, so gehen die SpalProzess der Ordnung 1, wenn gilt: tenvektoren der resultierenden Matrix gegen den Eigenvektor P [Xn |X1 , X2 , . . . , Xn−1 ] = P [Xn |Xn−1 ] (14) mit den Zustandswahrscheinlichkeiten. Die bedingte Wahrscheinlichkeit eines Kettenglieds ist also nur von seinem direkten Vorgänger abhängig. Abbildung 2 Entropie zeigt eine einfache solche Kette. Für Markov-Ketten gelten die Entropieeigenschaften (45) und Um eine Zufallsvariable mit n verschiedenen, gleichwahrscheinlichen Zuständen binär zu kodieren, benötigt man (46) sowie das Informationsverarbeitungslemma (47)+(48). dlog2 ne = d− log2 pn e Bits. Möchte man beliebige Wahrscheinlichkeitsverteilungen kodieren, so benötigt man eine Übergangswahrscheinlichkeitsmatrix allgmeinere Definition für den Informationsgehalt bzw. die Eine Markov-Kette wird durch eine Unsicherheit. Die Entropie einer diskreten Wahrscheinlichkeitsverteilung Übergangswahrscheinlichkeitsmatrix beschrieben: [p1 , p2 , . . . , pn ] ist gegeben durch: P k,l = P [Xi = xk |Xi−1 = xl ] (15) n X H ([p1 , p2 , . . . , pn ]) = − pi · log2 pi (19) Markov-Zustandsautomaten i=1 Eine stationäre Markov-Kette, deren Zufallsvariablen Xi Die Entropie einer diskreten Zufallsvariable X ist analog deäquivalent sind mit diskretem Wertebereich Q, kann als finiert, sie lässt sich ausserdem auch durch einen ErwartungsMarkov-Zustandsautomat aufgefasst werden. Q ist die Zu- wert ausdrücken: X standsmenge und die Funktion pX (p|q) beschreibt die H(X) = − P [X = xi ] · log2 (P [X = xi ]) (20) Übergangswahrscheinlichkeit von einem Zustand in den xi nächsten. Abbildung 3 zeigt einen Markov-Automaten mit = E [− log2 (P [X])] (21) drei Zuständen. Dabei gilt für jeden Zustandsknoten qi folgende Bedingung: n X Binäre Entropiefunktion pX (qk |qi ) = 1 (16) Die Entropie einer binären Zufallsvariablen X ∼ Be(p) ist gegeben durch die binäre Entropiefunktion: k=1 Für die Wahrscheinlichkeit eines Zustands qi gilt: pX (qi ) = n X h(p) = −p · log2 p − (1 − p) · log2 (1 − p) h(0) = h(1) = 0 pX (qi |qk ) · pX (qk ) (22) (23) (17) h(p) ist strikt konkav und besitzt ein Maximum bei h( 12 ) = 1. k=1 2 Entropieschranken Gegenseitige Information Sei χ = {x1 , x2 , . . . , xn } die Menge aller Zustände einer dis- Die gegenseitige Information, die eine Zufallsvariable X über kreten Zufallsvariable X oder auch ihr Alphabet. Dann gilt: eine andere Zufallsvariable Y gibt (und umgekehrt), ist gegeben durch: 0 ≤ H(X) ≤ log2 |χ| (24) I(X; Y ) = I(Y ; X) = H(X) + H(Y ) − H(XY ) (36) H(X) = 0 ⇔ ∃!i : P [X = xi ] = 1 (25) = H(X) − H(X|Y ) (37) 1 H(X) = log2 |χ| ⇔ ∀i : P [X = xi ] = (26) = H(Y ) − H(Y |X) (38) |χ| In diesem Sinne ist I(X; Y ) auch die Reduktion der Unsicherheit über X, wenn man Y erfährt. Es gilt: Verbundentropie Seien X, Y zwei diskrete Zufallsvariablen. Ihre gemeinsame Entropie oder Verbundentropie ist gegeben durch: X H(XY ) = − pXY (xi , yi ) · log2 (pXY (xi , yi )) (27) xi ,yi = E [− log2 (P [X, Y ])] Für die Verbundentropie gilt: H(X) ≤ H(XY ) ≤ H(X) + H(Y ) I(X; Y ) ≥ 0 (39) Bedingte Information Die bedingte, gegenseitige Information, welche die Zufallsva(28) riable X über eine andere Zufallsvariable Y gibt (und umgekehrt), gegeben eine weitere Zufallsvariable Z, ist gegeben durch: I(X; Y |Z) = H(XZ) + H(Y Z) − H(XY Z) − H(Z) (29) = H(X|Z) − H(X|Y Z) (40) (41) Gleichheit links in (29) gilt genau dann, wenn Y durch X bereits vollständig bestimmt ist, also gilt: ∀x∃y : P [Y = y|X = x] = 1 Damit ist I(X; Y |Z) auch die Reduktion der Unsicherheit über X, wenn man Y erfährt, aber Z bereits kennt. Für die (30) bedingte Information gilt: I(X; Y |Z) ≥ 0 Gleichheit rechts in (29) gilt genau dann, wenn X und Y unabhängig sind. (42) Abbildung 4 zeigt diese Zusammenhänge graphisch dargestellt. Dabei gilt für das Zentralglied: Bedingte Entropie R(X; Y ; Z) = H(X) + H(Y ) + H(Z) − H(XY ) Die bedingte Entropie einer Zufallsvariable X, gegeben eine andere Zufallsvariable Y , ist definiert als: (43) − H(XZ) − H(Y Z) + H(XY Z) Achtung: R(X; Y ; Z) kann auch negativ werden, wenn Z eine stärkere Reduktion von H(X|Y ) als von H(X) bewirkt, also gilt: Die bedingte Entropie ist also die restliche Unsicherheit über X, wenn man Y kennt. Es gilt: H(X|Y ) − H(X|Y Z) > H(X) − H(X|Z) (44) H(X|Y ) = H(XY ) − H(Y ) (31) 0 ≤ H(X|Y ) ≤ H(X) (32) Entropie in Markov-Ketten Analog zur Verbundentropie gilt linke Gleichheit, wenn X durch Y vollständig bestimmt ist, rechte Gleichheit, wenn X und Y unabhängig sind. Letztere bedeutet auch, dass zusätzliche Information die Unsicherheit niemals erhöhen kann! Erweitern wir die Markov-Kette aus Abbildung 2 um Zufallsvariablen, welche die Zustandsübergänge modellieren. Die neue Kette ist in Abbildung 5 dargestellt: So wird zum Beispiel X durch B in Y überführt. Ihre Markov-Eigenschaft lässt sich wie folgt in Entropien ausdrücken: Aliter: Alternativ lässt sich die bedingte Entropie auch wie folgt herleiten. Die teilbedingte Entropie ist gegeben durch: X H(X|Y = y) = − pX|Y (xi , y) · log2 pX|Y (xi , y) (33) H(Z|XY ) = H(Z|Y ) (45) I(X; Z|Y ) = 0 (46) Informationsverarbeitungslemma xi Die bedingte Entropie ergibt sich nun aus dem Erwartungs- Sei eine Markov-Kette mit Zustandsübergängen wie in Abbilwert der teilbedingten Entropien. Damit kann die bedingte dung 5 gegeben. Dann gelten folgende zwei Ungleichungen: Entropie nun auch als Erwartungswert über alle ZustandsI(X; Z) ≤ I(Y ; Z) (47) paare (x, y) dargestellt werden: I(X; Z) ≤ I(X; Y ) (48) X H(X|Y ) = P [Y = yi ] · H(X|Y = yi ) (34) Intuitiv gesprochen bedeutet dies, dass nichts die Informatiyi on, welche Y über X (und umgekehrt) bzw. Z über Y enthält, = E − log2 pX|Y (X, Y ) (35) erhöhen kann. 3 Markov-Quellen Eine Markov-Quelle der Stufe n ist, analog zur Markov-Kette, eine Informationsquelle, deren Ereigniswahrscheinlichkeiten jeweils direkt abhängig der letzten n aufgetretenen Ereignisse sind. Es gilt also: • n = −1: Alle Ereignisse gleich wahrscheinlich • n = 0: Jedes Ereignis hat eine feste Wahrscheinlichkeit • n = 1: Die Wahrscheinlichkeit eines Ereignisses ist direkt abhängig vom letzten aufgetretenen Ereignis • n = 2: Die Wahrscheinlichkeit eines Ereignisses ist direkt abhängig von den letzten zwei aufgetretenen Ereignissen • ... Für die folgenden Definitionen sei jeweils n = 1. Berechnung der Zustandswahrscheinlichkeiten Abbildung 4: Entropiediagramm Sei A die zur Quelle gehörige Zustandsübergangsmatrix und p ein Vektor mit den gesuchten k Zustandswahrscheinlichkeiten. Dann gilt es, die folgende Funktion zu minimieren: E(p) = |A · p − p| Abbildung 5: Eine Markov-Kette mit Zustandsübergängen Nebenbedingung: F (p) = −1 + Kettenregel für Entropien k X pi = 0 (53) (54) i=1 Obige Definitionen lassen sich auch auf beliebige Kopplungen Laut Lagrange lässt sich das Minimum nun durch Lösen des vieler Zufallsvariablen Xi anwenden: folgenden Gleichungssystems finden: H(X1 X2 . . . Xn ) ≤ n X H(Xi ) (49) H(X1 ...Xr−1 |Xr ...Xn ) = H(X1 ...Xn ) − H(Xr ...Xn ) (50) ∇E(p) = λ · ∇F (p) F (p) = 0 i=1 (55) (56) Dieses Vorgehen ist äquivalent dazu, einen normierten EigenDurch wiederholte Anwendung zweiterer Definition ergibt vektor p zum Eigenwert 1 der Matrix A zu bestimmen. sich die Kettenregel für Entropien: H(X1 . . . Xn ) = n X H(Xi |X1 . . . Xi−1 ) Markov-Entropie (51) Über eine Markov-Quelle mit N möglichen Zuständen liegt Unsicherheit in zweifacher Hinsicht vor: i=1 Dies funktioniert selbst bei zusätzlichen Bedingungen: H(X1 . . . Xn |Y ) = n X 1. Welcher Zustand tritt als nächstes ein? H(Xi |X1 . . . Xi−1 Y ) (52) 2. Welcher Zustand liegt gerade vor? i=1 Die Reihenfolge der Abspaltung der Zufallsvariablen Xi ist dabei egal (sie dürfen also umnummeriert werden). Um den ersten Punkt zu klären, berechnen wir die Entropie eines Zustandsübergangs von einem Zustand xj in einen beliebigen anderen Zustand xi : Informationsquellen Hj = − N X p(xi |xj ) · log2 p(xi |xj ) (57) Informationsquellen senden eine Folge von Symbolen aus eii=1 nem zugehörigen Alphabet. Das Auftreten eines Symbols aus der Quelle heisst Ereignis. Das zuletzt aufgetretene Ereignis Um nun auch den zweiten Punkt zu berücksichtigen, bildet man von diesen Entropien den Erwartungswert über heisst Zustand. die Zustandswahrscheinlichkeiten und erhält so die MarkovEntropie: Quellenentropie Die Entropie eines gesendeten Symbols einer Quelle heisst Quellenentropie. Sind alle Ereignisse gleich wahrscheinlich, so ist sie maximal. HM = N X j=1 4 p(xj ) · Hj (58) Quellencodierung Mittlere Blatttiefe Die mittlere Blatttiefe tT eines Codebaums T ist gegeben durch: Ein Code C über einem Codealphabet ∆ mit D = |∆| für X tT = P (b) · t(b) (64) eine Menge χ ist eine Abbildung C : χ → ∆∗ . Code b∈B • Sei x ∈ χ. Dann heisst C(x) das Codewort von x. Sei Z die Menge der inneren Knoten von T und P (z) mit z ∈ Z die Wahrscheinlichkeit eines inneren Knotens. Dann gilt: X tT = P (z) (65) • Sei x ∈ χ. Dann heisst lC (x) = |C(x)| die Länge von C(x) • Sei C : χ → ∆∗ ein Code mit: ∀x ∈ χ ∀y ∈ χ : x 6= y ↔ C(x) 6= C(y) (59) z∈Z Für einen ausgefüllten, präfixfreien Code C für eine Zufallsvariable X ist tT gleich der mittleren Wortlänge von C. Dann heisst C nicht-degeneriert. • Sei C : χ → ∆∗ ein Code, bei welchem folgende Abbildung für beliebige xi ∈ χ eindeutig ist: [x1 ||x2 || . . . ||xn ] → [C(x1 )||C(x2 )|| . . . ||C(xn )] Dann heisst C eindeutig decodierbar. Kraft’sche Ungleichung (60) Ein D-ärer, präfixfreier Code C mit L Codewörtern der Längen l1 , l2 , . . . , lL existiert genau dann, wenn gilt: L X • Sei C : χ → ∆∗ ein Code mit: ∗ ∗ ∗ ∀c ∈ ∆ ∀d ∈ ∆ ¬∃e ∈ ∆ \ {λ} : c = d||e D−li ≤ 1 (66) i=1 (61) McMillan-Theorem Dann heisst C präfixfrei. Jeder präfixfreie Code ist eindeutig decodierbar. Die Kraft’sche Ungleichung (66) gilt auch für jeden D-ären • Ein Code C zur Codierung einer Zufallsvariablen X eindeutig decodierbaren Code (nicht unbedingt präfixfrei ). heisst optimal, falls die durchschnittliche Codelänge E [lC (X)] minimal ist. Folgen: • Ein Code, dessen Codewörter alle gleich lang sind, heisst gleichmässig, sonst ungleichmässig. • Eindeutig decodierbare Codes sind niemals stärker als präfixfreie Codes. • Ein Code heisst universell, wenn er für eine Klasse von Informationsquellen jede Quelle aus dieser Klasse asymptotisch auf die Entropierate codiert. • Sei ein beliebiger Code gegeben, der die Kraft’sche Ungleichung erfüllt. Dann existiert ein präfixfreier Code mit gleichen Codewortlängen. • Aber: Nicht jeder Code, der die Kraft’sche Ungleichung erfüllt, muss eindeutig decodierbar sein. Codebäume Jeder Code C : χ → ∆∗ kann als Teilmenge der Knoten eines Codebaumes T dargestellt werden. Dabei ist jeder Knoten entweder ein Blatt oder hat maximal D Kinderknoten. Ein Codebaum heisst ausgefüllt, wenn jeder innere Knoten genau D Kinderknoten hat. Ein präfixfreier Code heisst ausgefüllt, wenn sein Codebaum ausgefüllt ist und jedes Blatt einem Codewort zugeordnet ist. Sei B die Blattmenge eines Codebaumes und P (b) mit b ∈ B die Wahrscheinlichkeit eines Blattes. Dann gilt: X P (b) = 1 (62) 1. Shannon’sches Codierungstheorem Die mittlere Codewortlänge eines optimalen präfixfreien Codes über dem Codealphabet ∆ mit |∆| = D für eine Zufallsvariable X erfüllt folgende Ungleichung: H(X) H(X) ≤ E [lC (X)] < +1 log2 D log2 D (67) Im binären Fall (D = 2) vereinfacht sich dies zu: b∈B H(X) ≤ E [lC (X)] < H(X) + 1 (68) Blattentropie Die Blattentropie eines Codebaumes T ist definiert als: Redundanz X HT = − P (b) · log2 P (b) (63) Die Redundanz RC eines Codes C für eine Quelle X ist definiert als: b∈B RC = E [lC (X)] − H(X) ≥ 0 Blatttiefe (69) Für jedes b ∈ B eines Codebaumes T ist t(b) die Tiefe von b Jeder optimale Code hat minimale Coderedundanz, diese muss im Baum, wobei der Wurzelknoten die Tiefe 0 hat. aber nicht unbedingt gleich Null sein! 5 (78)⇒(79), da sämtliche Information über C X N bereits in X N enthalten ist. Mit der speziellen Fano-Ungleichung (77) ergibt sich nun für die mittlere Bitfehlerwahrscheinlichkeit P e beim Decodieren: ! N N H X | C X P e ≥ h−1 (81) N ! H X N − E lC X N −1 ≥h (82) N ! N E l X C (83) = h−1 H(X) − N Erweiterte Quellen Bei Betrachtung von (67) und (68) stellt sich gezwungenermassen die Frage, wie nahe man an die untere Schranke des 1. Shannon’schen Codierungstheorems herankommen kann. Sei X eine zu codierende Informationsquelle mit Quellalphabet χ. Fasst man nun je m von X gesendete Symbole aus χ als Blöcke zusammen und interpretiert diese als von X m gesendete Symbole aus dem Blockalphabet χm , so lässt sich diese Ersatzquelle mit einem präfixfreien Code über einem Codealphabet ∆ mit |∆| = D codieren. Das 1. Shannon’sche Codierungstheorem (67) für diesen lässt sich nun wie folgt umformen: H (X m ) H (X m ) ≤ E [lC (X m )] < +1 (70) log2 D log2 D (81)⇒(82), da auch h−1 im betrachteten h-Intervall 0, 12 monoton steigend ist. m · H(X) m · H(X) ⇔ ≤ E [lC (X m )] + 1 (71) < log2 D log2 D H(X) E [lC (X m )] H(X) 1 Codeoptimalität ⇔ ≤ < + (72) log2 D m log2 D m Es gilt: H(X) 1 H(X) ≤ E [lC (XE (m))] < + (73) ⇔ • Der Codebaum jedes optimalen präfixfreien Codes ist log2 D log2 D m ausgefüllt. Mit einer solchen erweiterten Quelle X ist es also möglich, E durch die Wahl grosser Blockgrössen m mit der durchschnittlichen Codelänge beliebig nahe an die Entropieschranke heranzukommen. Im binären Fall (D = 2) vereinfacht sich (73) wie (68) zu: H(X) ≤ E [lC (XE (m))] < H(X) + 1 m • Für jede Informationsquelle X existiert ein optimaler präfixfreier Code, dessen Codierungen für beiden unwahrscheinlichsten Symbole aus X sich nur im letzten Bit unterscheiden. (74) • Sei C ein binärer, präfixfreier Code für die Wahrscheinlichkeitsverteilung [p1 , p2 , . . . , pL−1 , pL ], p1 ≥ p2 ≥ . . . ≥ pL mit Codebaum T . Sei C 0 der resultierende Code für [p1 , p2 , . . . , pL−1 + pL ], wenn man die beiden unwahrscheinlichsten Blätter aus T durch ihren gemeinsamen Vorfahren ersetzt. Dann ist C genau dann optimal, wenn C 0 optimal ist. Fano-Ungleichung Möchte man eine beliebige Zufallsvariable X mit Wertebereich χ anhand einer beliebigen anderen Zufallsvariablen Y schätzen und bezeichnet Pe die Wahrscheinlichkeit für eine Fehlschätzung, so gilt: h (Pe ) + Pe · log2 (|χ| − 1) ≥ H (X|Y ) (75) Huffman-Coding Ist X eine binäre Zufallsvariable (|χ| = 2), so vereinfacht sich Der folgende Algorithmus liefert einen optimalen, präfixfreien (75) zu: Code für die Wahrscheinlichkeitsverteilung [p1 , p2 , . . . , pL ]: h (Pe ) ≥ H (X|Y ) (76) Fasse in L − 1 Schritten jeweils die beiden unwahrscheinlichsten Knoten zu einem zusammen, indem für den neuen die Ist X ein N -Bit-String, d.h. X = [Z1 , Z2 , . . . , Zn ], so in- beiden Wahrscheinlichkeiten addiert werden. teressiert einen oft nicht die Wahrscheinlichkeit Pe einer Dem entstandenen Codebaum müssen nun nur noch bei jeder Fehlschätzung von X (wie bisher), sondern die durchschnitt- Gabelung die Symbole 0 und 1 zugewiesen werden. Die Opliche Bitfehlerwahrscheinlichkeit P e (also die Wahrscheinlich- timalität des Codes folgt direkt aus dem dritten Punkt des keit einer Fehlschätzung eines Zi ). Für diese gilt: vorhergehenden Abschnitts. H (X|Y ) h Pe ≥ (77) N Shannon-Fano-Coding Verlustbehaftete Datenkompression Der folgende Algorithmus liefert einen suboptimalen, präfixfreien Code für die Wahrscheinlichkeitsverteilung Bewegt man sich mit einer Codierung unter der durch das 1. [p1 , p2 , . . . , pL ], welcher aber ebenfalls die Schranken des 1. Shannon’sche Codierungstheorem gegebenen unteren SchranShannon’schen Codierungstheorems einhält: ke für die mittlere Codewortlänge, so wird die Decodierung des Codes sicher verlustbehaftet sein. 1. Ordne die Wahrscheinlichkeiten nach fallenden Werten Sei X N ein N -Bit-String aus der binären Informationsquelle und betrachte die sortierte Liste N N l X ≥ X und C(X ) dessen binäre Codierung. Aus E C 2. Teile die aktuell betrachtete Liste in zwei Unterlisten auf H C X N folgt nun: mit möglichst gleich grossen Wahrscheinlichkeitssummen H XN | C XN = H XN , C XN − H C XN (78) ein = H XN − H C XN (79) 3. Weise der ersten Unterliste das Symbol 0 zu, der zweiten ≥ H X N − E lC X N (80) das Symbol 1 6 4. Falls die erste Unterliste noch mehr als ein Element hat, betrachte diese und führe die Schritte 2-5 rekursiv aus. 2. Die Teilstrings werden von links nach rechts durchlaufen und jeder Teilstring durch ein Zahlentupel codiert, dessen erste Zahl die Nummer des bereits kodierten Teilstrings, welcher dem längsten Präfix des aktuellen Teilstrings entspricht, und dessen zweite Zahl das letzte Bit, das sich vom Präfix als einziges unterscheidet, angibt. Für die erste Zahl wird eine Null verwendet, falls der Teilstring keinen bzw. einen leeren Präfix hat. 5. Falls die zweite Unterliste noch mehr als ein Element hat, betrachte diese und führe die Schritte 2-5 rekursiv aus. Arithmetic-Coding Der folgende Algorithmus codiert das von einer Informationsquelle X mit Verteilung [p1 , p2 , . . . , pL ] generierte Wort s = X n . Für grosse Wortlängen n strebt die mittlere Codelänge dieser Codierung gegen die Quellenentropie H(X). Lempel-Ziv-Welch-Coding Das Lempel-Ziv-Welch-Coding stellt eine Erweiterung des Lempel-Ziv-Coding dar, bei welchem man nur noch einen 2. Teile das aktuell betrachtete Intervall gemäss Wahr- Durchlauf braucht und somit der zu codierende String am Anfang noch nicht komplett bekannt sein muss. Die Codiescheinlichkeitsverteilung auf rung erfolgt mit folgendem Algorithmus: 3. Nimm das nächste Symbol xi aus s und betrachte das Unterintervall, das P (xi ) gemäss in Schritt 2 durch1. Initialisiere das Wörterbuch mit allen möglichen Einzelgeführter Teilung entspricht zeichen (weise jedem von ihnen einen Index zu). Initialisiere neuen Präfix w0 als leeren String. 4. Führe Schritte 2+3 aus, bis das ganze Wort s gelesen wurde 2. Aktualisiere den aktuellen Präfix: w = w0 1. Betrachte das Intervall [0, 1) 5. Weise dem Wort s die ersten d− log2 P (s)e+1 Bits der in der Mitte des betrachteten Intervalls liegenden Binärzahl zu 3. Lese nächstes Zeichen des Inputstrings, falls noch nicht am Ende. Ansonsten gebe Codierung von w aus und stoppe. Die aktuelle untere Intervallgrenze und die aktuelle Intervallgrösse können mit folgenden Rekursionen mitgeführt werden: 4. Konkateniere aktuelles Zeichen z mit aktuellem Präfix w und speichere dies als neuen Präfix: w0 = w||z newleft = prevleft + left[x[i]] * prevsize; newsize = prevsize * size[x[i]]; 5. Überprüfe, ob w0 bereits im Wörterbuch vorhanden ist. Wenn ja, fahre fort mit Schritt 2. Dabei bezeichnet left[x[i]] die untere Intervallgrenze des Symbols xi in der Wahrscheinlichkeitsverteilung und size[x[i]] dessen Wahrscheinlichkeit. 6. Gebe die Codierung des alten Präfix w aus (den Wörterbuchindex von w). Ganzzahlencodierung 7. Füge w0 zum Wörterbuch hinzu Sei j ∈ N eine natürliche Zahl, B(j) ihre Binärdarstellung, B 0 (j) ihre Binärdarstellung ohne führende Eins und L(j) ihre binäre Länge. Folgender rekursiver Code kodiert j asymptotisch auf Entropierate: ( 0j−1 1 n=0 C n (j) = (84) n−1 0 C (L(j)) || B (j) n > 0 8. Ersetze neuen Präfix durch aktuelles Zeichen: w0 = z 9. Fahre fort mit Schritt 2 Kanalcodierung Intervalllängencodierung Binärer Kanal Sei X eine binäre Quelle mit P [X = 1] = p und dementsprechend P [X = 0] = 1 − p. Eine lange Zeichenfolge mit p << 21 kann man nun codieren, indem man anstatt die Folge selbst jeweils die Abstände zwischen aufeinanderfolgenden Einsen codiert (zum Beispiel mit der im vorigen Abschnitt eingeführten Ganzzahlencodierung). Für p → 0 erhält man so einen asymptotisch optimalen Code. Ein binärer Kanal ist ein Übertragungsmodell, bei welchem das Symbol 1 mit Wahrscheinlichkeit δ fälschlicherweise auf 0 und das Symbol 0 mit Wahrscheinlichkeit ε fälschlicherweise auf 1 abgebildet wird. Mit xs wird jeweils das Senden des Symbols s bezeichnet und mit ys0 das Empfangen des Symbols s0 . Allgemein modelliert die Zufallsvariable X das Senden und die Zufallsvariable Y das Empfangen eines durch den Kanal geschickten Symbols. Lempel-Ziv-Coding Ein binärer Kanal heisst symmetrisch, wenn δ = ε gilt. Der Grundcodierungsalgorithmus von Lempel-Ziv codiert Ein binärer Kanal heisst gedächtnisfrei, falls ein empfangeeinen bekannten String ohne Wissen über die Quellenstati- nes Symbol y nur von dem zugehörigen gesendeten Symbol x abhängt. stik in zwei Durchläufen optimal : Beim binären Auslöschungskanal findet keine Bitinversion 1. Der String wird von links nach rechts durchlaufen und in statt, sondern ein gesendetes Bit kommt mit der Wahrscheindisjunkte Teilstrings unterteilt. lichkeit δ = ε einfach gar nicht an. 7 Transinformation Sei γ das Kanalalphabet und damit auch die Wertemenge von Y , sei t = H(Y |X = x) gleich für alle x ∈ X und sei Die Transinformation HT ist die pro Kanalzeichen P x∈X P [Y = y | X = x] gleich für alle y ∈ Y , wobei die übertragene Information. Für den binären Kanal ergibt sich: zweite Eigenschaft bedeutet, dass eine Gleichverteilung am HT = I(X; Y ) = H(Y ) − H(Y |X) (85) Kanaleingang auch eine solche am Kanalausgang bewirkt. Dann vereinfacht sich die Berechnung der Kapazität zu: Dementsprechend ist das Ziel jeweils, die Transinformation C = log2 |γ| − t (90) zu maximieren. Sei nun U K eine mit einem Blockcode der Länge N über einen Kanal mit Kapazität C versandte Information und Ũ K der decodierte, geschätzte Information nach der Kanalübertragung. Ein Blockcode C der Blocklänge N für einen Kanal mit Dann gilt: Inputalphabet γ ist eine Teilmenge C = {c1 , c2 , . . . , cM } ⊂ γ N der N -Tupel über γ. Die Rate von C ist definiert als: H U K | Ũ K ≥ H U K − N · C (91) log2 M K R= = (86) N N Eine Kanalbenutzung kann also die Unsicherheit über das gesendete Codewort höchstens um N · C verringern. Wenn man Schätzer also U K durch Ũ K vollständig bestimmen will, so muss gelWird das Codewort cj = [cj1 cj2 . . . cjN ] über einen ten: gedächtnisfreien Kanal übertragen, so kommt beim H UK Empfänger das Wort y N ∈ W Y N an mit der Vertei(92) N≥ C lung: Blockcodes N Y PY |X (yi , cji ) PY N |X N y N , cj = 2. Shannon’sches Codierungstheorem (87) Wird ein gedächtnisfreier, binärer Kanal der Kapazität C zur Übertragung echt zufälliger Informationsbits mit Rate R > C benutzt, so gilt für die mittlere Bitfehlerwahrscheinlichkeit beim Empfänger: i=1 Die Decodierung der fehlerbehafteten Zeichenfolge kann nun als Schätzproblem betrachtet werden: Dabei soll die Zufallsvariable X N durch Beobachtung von Y N mit einer Funkti on als f Y N geschätzt werden, wobei die KanalcharakteriC h Pe ≥ 1 − (93) stik PY |X bekannt ist. Eine solche Schätzung heisst optimal, R wenn sie die Wahrscheinlichkeit PX N f Y N einer korrekÜberträgt man diese Informationsbits mit Rate R < C, so exiten Schätzung maximiert: stiert für jedes ε ein N -Blockcode mit M = 2R·N Codewörtern, X N N N PX N f Y = PX N Y N f y , y (88) sodass die maximale Decodierfehlerwahrscheinlichkeit für ein Codewort kleiner als ε ist: y N ∈Y N X N N N = PY N |X N y , f y · PX N f y max P Fehler | X N = cj < ε (94) j y N ∈Y N Nun können folgende zwei Fälle auftreten: Hammingdistanz 1. PX ist bekannt: In diesem Fall wer muss f so gewählt den, dass PY N |X N y N , f y N · PX f y N über alle y N ∈ Y N maximiert wird. Dies bezeichnet man als Minimum-Error-Estimation. Die Hammingdistanz zweier Wörter ist die Anzahl der Positionen, an welchen sie sich unterscheiden. Die Minimaldistanz eines Codes ist die minimale Hammingdistanz zwischen zwei Codewörtern des Codes. Ein Code mit Minimaldistanz d erlaubt es, d − 1 Fehler zu detektieren oder 2. PX ist unbekannt (Normalfall): Man nimmt an, dass alle d−1 zu korrigieren. 2 Werte von X gleichverteilt sind. Da PX N (c) dann für alle c gleich ist, wird es in (88) zu einer Konstante und f muss nur noch so gewählt werden, dass PY N |X N y N , f y N Lineare Blockcodes über alle y N ∈ Y N maximiert wird. Dies wird bezeichnet Ein linearer Blockcode ist ein Blockcode mit M = q k Coals Maximum-Likelihood-Estimation. dewörtern der Länge N , der die algebraische Struktur eines Vektorraums über dem dem endlichen Körper GF (q) hat. Kapazität Das Hamminggewicht eines Codewortes ist die Anzahl sich Die Kapazität eines Kanals ist definiert als maximale Trans- von Null unterscheidenen Positionen. Die Minimaldistanz eines linearen Blockcodes ist gleich dem information, die über ihn übertragen werden kann: kleinsten Hamminggewicht seiner Codewörter. C = max HT = max {H(Y ) − H(Y |X)} (89) Die Abbildung eines Informationsvektors a auf ein Codewort Px Px c kann mit Hilfe einer K × N -Generatormatrix als MatrixDie Kapazität stellt eine obere Grenze dar für die Rate, mit multiplikation dargestellt werden: welcher Informationen zuverlässig über den Kanal übertragen c=a·G (95) werden können. 8 Dabei bilden die Zeilen von G eine Basis des Codewortraums. Duale Codes Hat die Generatormatrix die Form G = [Ik A], so heisst sie Ein Code C 0 heisst dual zu einem anderen Code C, falls seine systematisch. Generatormattrix GC 0 = HC , also gerade gleich der ParityDie (N − K) × N -Matrix H heisst Parity-Check-Matrix Check-Matrix von C ist. Der duale Code zu C 0 ist wieder C. für den Code, falls gilt: ∀c : c · H T = 0 Dualer Hamming-Code (96) In einem zu einem Hamming-Code dualen Code ist der Informationsgehalt mit r klein, die Minimaldistanz jedoch sehr gross mit 2r−1 . Die Länge bleibt mit 2r − 1 gleich. Die Zeilen von H spannen also den orthogonalen Komplementärraum zum Codewortraum auf. Die Minimaldistanz eines linearen Codes ist gleich der kleinsten Anzahl linear abhängiger Spalten in H. Singleton Bound Systematische Parity-Check-Matrix Die Minimaldistanz eines linearen Codes der Länge N aus K Sei G= [IK A] eine systematische Generatormatrix. Dann ist Informationsbits über GF (q) beträgt höchstens N − K + 1. T H = −A IN −K die zugehörige Parity-Check-Matrix. Polynomevaluationscodes Syndromcodierung Die Polynomevaluationscodes sind lineare Codes, bei welchen die Codewörter der Länge N als N Auswertungen eines Polynoms des Grades K − 1 über GF (q) an N verschiedenen Stellen interpretiert werden. Polynomevaluationscodes erreichen die durch den Singleton Bound gegebene Schranke für die Minimaldistanz. Das Verfälschen eines Codewortes c beim Versenden durch einen verrauschten Kanal kann als Addition eines Fehlervektors e betrachtet werden. Durch Multiplikation des empfangenen Wortes c̃ = c + e mit der Parity-Check-Matrix H T bekommt man das Syndrom s: (c + e) · H T = c · H T + e · H T = e · H T = s (97) Anstatt nun wie bisher anhand von c + e ein c zu schätzen, ist es effektiver, e aufgrund von s zu schätzen und dann c durch die Subtraktion (c + e) − e zu bestimmen. Damit muss man anstelle des Coderaumes der Dimension N nur noch den Syndromraum der Dimension N − K durchsuchen. Dies wird erreicht, indem man eine Tabelle anfertigt, in der man sich für jedes der q N −K Syndrome das Fehlermuster e mit dem kleinsten Hamminggewicht notiert (da man davon ausgehen muss, dass das empfangene Wort nur auf minimalste Art verfälscht wurde). Um nun Fehler zu korrigieren multipliziert man ein empfangenes Wort c̃ mit H T , bekommt so das Syndrom s, bestimmt aus der Tabelle das Fehlermuster e und subtrahiert dies von c̃, um auf c zu schliessen. Zu beachten ist, dass mit dieser Methode alle Fehlermuster −1 nur dann eindeue mit Hamminggewicht ≤ r = dmin 2 tig korrigierbar sind, wenn genügend verschiedene Syndrome bzw. genügend N − K Kontrollbits vorhanden sind. Bei einem Binärcode (q = 2) gibt es für einen Fehlervektor mit Hamminggewicht i genau Ni Möglichkeiten. Das macht für alle Fehlervektoren mit Hamminggewicht ≤ r die Anzahl P r N . Um nun eine eindeutige Zuordnung zu erhalten, i=1 i muss gelten: r X N 2N −K ≥ (98) i i=1 Hamming-Codes Für jedes r > 1 existiert ein Hamming-Code aus N = 2r − 1 Bits mit K = N − r Informationsbits und Minimaldistanz dmin = 3. Die Spalten der Parity-Check-Matrix H eines solchen Codes bestehen aus allen 2r − 1 vom Nullvektor unterschiedlichen Vektoren der Dimension r. Offensichtlich ist es sehr leicht, diese systematisch anzuordnen und so auf die Generatormatrix G zu kommen. 9