Informationstheorie Zusammenfassung - ETH

Werbung
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
Herunterladen