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