Elementi di Teoria dell’Informazione
A cura di Carlo Caini
Argomenti della Presentazione
Quantità di informazione
Entropia di un alfabeto
Entropia di una sorgente
Ridondanza
Codifica Entropica
Codifica di Huffman
1
Quantità d’Informazione
Informazione = riduzione dell’indeterminazione
– Esempio: elementi di un “identikit”
Proprietà 1: la quantità d’informazione cresce al
diminuire della probabilità
– Esempio: “con i baffi” reca più informazione di “senza baffi”
Proprietà 2: le quantità d’informazione associate a due
elementi indipendenti si sommano
– Esempio: “occhi azzurri” e “uomo”
– Controesempio: “occhi azzurri” e “biondo”
Entropia di un alfabeto
Dato un alfabeto X di M elementi {xi}i=1,2,..,M i cui
simboli hanno probabilità a priori pi=P(xi),
Si definisce quantità d’informazione di un simbolo (in
bit)
ii = log2
1
Pi
Si definisce “Entropia dell’alfabeto” la quantità media
di informazione dei simboli xi
H ( X ) = ∑i =1 pi log2
M
1
pi
2
Entropia di un alfabeto binario
Entropia di una sorgente binaria
vs. probabilità p
x1 con probabilità P1=p
x2 con probabilità P2=1-p
1
0.9
0.8
H(X)
0.7
H(X ) =
0.6
0.5
= p log 2 1p + (1 − p ) log 2
0.4
1
(1− p )
0.3
0.2
0.1
0
0
0.1 0.2
0.3 0.4
0.5
0.6 0.7
0.8 0.9
1
p
Limite superiore dell’entropia di un
alfabeto
In generale, dato un alfabeto di M simboli, l’entropia è
limitata dalla seguente
H ( X ) ≤ log 2 M
dove l’uguaglianza vale in caso di simboli
equiprobabili
3
Entropia di una sorgente...
Una sorgente emette una sequenza di simboli
appartenenti ad un alfabeto {xi}i=1,..,M
Se i simboli emessi non sono indipendenti, occorre
tenere conto della loro dipendenza statistica.
Si definisce “Informazione condizionata” di x rispetto
ad y
I ( x | y ) = log 2
1
P ( x| y )
…Entropia di una sorgente...
Si definisce “Entropia condizionata” l’ informazione
media di un simbolo, noto il precedente
H ( X1 | X 0 ) =
∑ ∑ P( x , x ) log
1
0
x0∈X 0 x1∈X 1
1
P ( x1 |x0 )
La conoscenza del simbolo precedente implica in
generale una diminuizione dell’incertezza sul simbolo
corrente (tranne se indipendenti)
H ( X1 | X 0 ) ≤ H ( X1)
4
…Entropia di una sorgente
Entropia di una sorgente = informazione media di un
simbolo noti tutti i precedenti
H ∞ ( X ) = lim H ( X n | X n −1, X n −2 ,..., X o )
n→∞
L’entropia di una sorgente è inferiore (uguale se
simboli indipendenti) all’entropia dell’alfabeto
0 ≤ H∞( X ) ≤ H ( X )
Tasso medio d’informazione di una
sorgente
Sia Ts l’intervallo fra l’emissione di un simbolo e
quello successivo
Si definisce tasso medio d’informazione della sorgente
Rs =
H∞ ( X )
bits/s
Ts
5
Ridondanza
La ridondanza è la differenza fra la quantità
d’informazione che la sorgente potrebbe trasmettere e
quella che viene effettivamente trasmessa
R = HM − H∞( X )
La ridondanza dipende da
– distribuzione non uniforme dei simboli
– dipendenza statistica dei simboli
R = [ H M − H ( X )] + [ H ( X ) − H ∞ ( X )]
Codifica entropica di un alfabeto
Distribuzione non uniforme dei simboli dell’alfabeto
(M elementi)
– Utilizzo dei codici a lunghezza variabile per diminuire il
numero medio di bit per simbolo
Più bit per codificare i simboli “rari”
Meno bit per codificare i simboli frequenti
– Raggruppo più simboli consecutivi per formare un nuovo
alfabeto, quindi applico la codifica a lunghezza variabile
6
Efficienza di un codice
Bit utilizzati per codificare l’i-esimo simbolo
Numero medio di bit per simbolo
ni
n = ∑ i =1 ni P ( X i )
M
Efficienza di un codice
Rapporto di compressione
η=
H(X )
n
Rc =
log 2 M
n
Requisiti della codifica entropica
La codifica entropica deve essere invertibile, cioè non
deve essere ambigua.
Condizione sufficiente per evitare l’ambiguità è il
soddisfacimento del vincolo del prefisso:
– nessuna parola di codice può coincidere con il prefisso di
un’altra.
Si può sempre trovare un codice, non ambiguo, per cui:
H(X ) ≤ n < H(X ) +1
7
Codifica di Huffman
E’ la codifica ottima se si opera su di un alfabeto di M
elementi. Si basa sulla costruzione di un albero binario:
– 1 si ordinano gli M simboli dal più probabile al meno probabile
– 2 si raggruppano gli ultimi due simboli xM-1 e xM (quelli meno
probabili) in un simbolo equivalente con probabilità pM-1 + pM
– 3 si iterano i primi due passi finché non rimane un solo simbolo
– 4 a partire dalla radice si associano i bit 0 e 1 ai due rami che si
dipartono da ogni nodo intermedio; Percorrendo l’albero dalla
radice al simbolo i-esimo, si trova la sua parola di codice.
Esempio Huffman 1
0.73
p1=0.73 x1
1
p2=0.25 x2
1
p3=0.02 x3
0
0.27
0
x1
1
H(X)
0.944
x2
01
n
1.27
x3
00
η
0.743
8
Codifica di più simboli
Per migliorare l’efficienza, si possono prendere i
simboli a blocchi di ν, ottenendo un alfabeto Y=Xν di
Mν elementi
H ( X ν ) ≤ nν < H ( X ν ) + 1
H ( X ν ) nν H ( X ν ) 1
≤
<
+
ν
ν
ν
ν
Codifica di più simboli indipendenti
Se i simboli sono indipendenti
H ( X ν ) = νH ( X ) ⇒
n
1
H(X ) ≤ ν < H(X ) +
ν
ν
Il termine centrale rappresenta il numero medio di bit
per simbolo dell’alfabeto originario
– si evince che posso avvicinarmi all’entropia dell’alfabeto
quanto voglio, a patto di prendere ν elevato
9
Esempio Huffman 2
Riprendendo l’esempio 1 e raggruppando i simboli a coppie
(ν=2, simboli supposti indipendenti)
simbolo
pi
Codice
ni
nipi
x1x1
0.5329
1
1
0.5329
x1x2
0.1825
00
2
0.3650
x2x1
0.1825
011
3
0.5475
x2x2
0.0625
0101
4
0.2500
x1x3
0.0146
01000
5
0.0730
x3x1
0.0146
010011
6
0.0876
x2x3
0.0050
0100100
7
0.0350
x3x2
0.0050
01001011
8
0.0400
x3x3
0.0002
01001010
8
0.0016
n2 bit/2 simboli
1.9326
n bit/simbolo
0.96663
η
97.7
Ho aumentato l’efficienza
anche in presenza di
simboli indipendenti
Codifica di più simboli non
necessariamente indipendenti
Nel caso in cui i simboli non siano necessariamente
indipendenti, raggruppando i simboli riesco ad
eliminare, quanto voglio, anche la ridondanza dovuta
alla dipendenza statistica.
H(Xν )
H ∞ ( X ) = lim
⇒
ν →∞
ν
n
H ∞ ( X ) ≤ ν < H ∞ ( X ) + O (ν −1 ) ν → ∞
ν
10
Codifica di più simboli
Vantaggi
– All’aumentare del blocco
Si riduce la ridondanza dovuta alla dipendenza statistica
Si guadagna anche se i simboli sono indipendenti perché migliora
l’efficienza della codifca
Ci si avvicina quanto si vuole all’entropia della sorgente
Svantaggi
– All’aumentare del blocco
Si aumenta esponenzialmente la complessità del codificatore
Si aumenta linearmente il ritardo introdotto (devo aspettare la fine di
un blocco per decodificare i primi elementi)
11