Esercizio - codice di Elias, Huffman sulla coppia di sorgenti e informazione mutua (compito del 22 gennaio 2019, es. 92)
In questa pagina 6
Testo (compito del 22 gennaio 2019, esercizio 92). Si consideri una sorgente che genera simboli identicamente distribuiti con alfabeto e densità di probabilità discreta , , . Si consideri anche una seconda sorgente definita a partire da . In particolare, o è uguale a , o è uguale a . Per ogni i due valori sono assunti in maniera aleatoria (e indipendente per i vari valori di ), per cui , . ( indica il resto della divisione per di .)
- (3p) Trovare un codice di sorgente di Elias per la sorgente , considerando parole di ingresso di un solo simbolo. Specificare la rappresentazione binaria dei punti medi di ciascun segmento usato per la costruzione del codice, il numero di bit per ciascuna parola di codice e la lunghezza media delle parole di codice.
- (2p) Senza fare ulteriori calcoli, dire se il codice trovato al punto 1) è il codice di Shannon per la sorgente e se raggiunge il limite inferiore del teorema di Shannon per la codifica di sorgente.
- (2p) Trovare un codice di sorgente binario ottimo per le parole e calcolare la lunghezza media delle parole di codice.
- (2p) Calcolare l'entropia di e l'entropia di , e dire se l'entropia media per simbolo delle parole è uguale, maggiore, strettamente maggiore, minore o strettamente minore all'entropia di . Giustificare la risposta.
- (2p) Calcolare l'informazione mutua tra e .
Teoria usata: Codici di Shannon, Huffman ed Elias e codifica aritmeticaIl codice di Shannon(-Fano) assegna alla parola $i$ lunghezza $l_i=\lceil-\log_{M_y}p_i\rceil$, soddisfa Kraft-McMillan e ha $H\le L_y<H+1$; è ottimo solo se le probabilità sono potenze di $\frac1{M_y}$. Il codice ottimo (lunghezza media minima) dà parole più lunghe ai simboli meno probabili e ha almeno due parole di lunghezza massima che differiscono solo nell'ultimo simbolo: lo costruisce la procedura di Huffman, che unisce a ogni passo i due nodi meno probabili. Il codice di Elias prende le prime $l_i=\lceil-\log_2p_i\rceil+1$ cifre del punto medio dell'intervallo di ampiezza $p_i$ in $[0,1)$: è a prefisso ma subottimo ($H+1\le L_y<H+2$), e si adatta alla codifica aritmetica adattativa.Codici di Shannon, Huffman ed Elias e codifica aritmetica → (punti 1-3), Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza mediaLa codifica di sorgente senza perdite associa a ogni parola emessa dalla sorgente una parola di codice binaria (o $M_y$-aria) di lunghezza variabile, in modo invertibile; la qualità si misura con la lunghezza media $L_y=\sum p_{\underline x}(\underline a),l(\underline a)$. In un codice a prefisso nessuna parola è l'inizio di un'altra, quindi la decodifica è istantanea. Kraft-McMillan: ogni codice decodificabile ha $\sum M_y^{-l_i}\le1$, e se interi $l_i$ la soddisfano esiste un codice a prefisso con quelle lunghezze. Shannon: $\frac{H(\underline x)}{\log_2M_y}\le L_y<\frac{H(\underline x)}{\log_2M_y}+1$ per il codice a prefisso ottimo, con $L_y=\frac{H}{\log_2M_y}$ solo se le probabilità sono potenze di $\frac1{M_y}$.Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza media → (punto 2), Entropia congiunta e condizionata e informazione mutuaPer due variabili aleatorie discrete $x,y$ l'entropia congiunta è $H(x,y)=E\left[\log_2\frac1{P_{x,y}(x,y)}\right]$ e vale $\max{H(x),H(y)}\le H(x,y)\le H(x)+H(y)$, con l'uguaglianza a destra se e solo se $x$ e $y$ sono indipendenti e $H(x,y)=H(x)$ se $y=f(x)$. L'entropia condizionata $H(x|y)=E_y[H(x|y=y)]$ soddisfa la regola della catena $H(x,y)=H(x|y)+H(y)=H(y|x)+H(x)$. L'informazione mutua $I(x;y)=H(x)+H(y)-H(x,y)=H(x)-H(x|y)=H(y)-H(y|x)$ è simmetrica, $0\le I\le\min{H(x),H(y)}$, nulla per variabili indipendenti.Entropia congiunta e condizionata e informazione mutua → (punti 4 e 5), Entropia - informazione di un evento, disuguaglianza di Jensen e valore massimoL'informazione di un evento di probabilità $P$ è $i=\log_2\frac1P$ bit (zero per l'evento certo, additiva per eventi indipendenti). L'entropia di una variabile aleatoria discreta è l'informazione media, $H(x)=E[i_x(x)]=\sum_aP_x(a)\log_2\frac1{P_x(a)}$; vale $0\le H(x)\le\log_2M$ con $M$ cardinalità dell'alfabeto, e il massimo $\log_2M$ si raggiunge se e solo se i simboli sono equiprobabili (dimostrazione con la disuguaglianza di Jensen, perché il logaritmo è strettamente concavo).Entropia - informazione di un evento, disuguaglianza di Jensen e valore massimo →.
(1) Codice di Elias per
Si ordinano i simboli come numeri naturali () e si divide in tre intervalli di ampiezza (Codici di Shannon, Huffman ed Elias e codifica aritmeticaIl codice di Shannon(-Fano) assegna alla parola $i$ lunghezza $l_i=\lceil-\log_{M_y}p_i\rceil$, soddisfa Kraft-McMillan e ha $H\le L_y<H+1$; è ottimo solo se le probabilità sono potenze di $\frac1{M_y}$. Il codice ottimo (lunghezza media minima) dà parole più lunghe ai simboli meno probabili e ha almeno due parole di lunghezza massima che differiscono solo nell'ultimo simbolo: lo costruisce la procedura di Huffman, che unisce a ogni passo i due nodi meno probabili. Il codice di Elias prende le prime $l_i=\lceil-\log_2p_i\rceil+1$ cifre del punto medio dell'intervallo di ampiezza $p_i$ in $[0,1)$: è a prefisso ma subottimo ($H+1\le L_y<H+2$), e si adatta alla codifica aritmetica adattativa.Codici di Shannon, Huffman ed Elias e codifica aritmetica →). Per ogni simbolo si calcolano il punto medio e la lunghezza .
| Simbolo | Intervallo | in binario | Parola | |||
|---|---|---|---|---|---|---|
Le rappresentazioni binarie: ; (pesi e ); . Hanno già esattamente cifre: non c'è nulla da troncare. Il codice è a prefisso ✓. La lunghezza media è
(2) È il codice di Shannon? Raggiunge il limite inferiore?
Le lunghezze del codice di Elias sono , quelle del codice di Shannon sono (). Il codice del punto 1 ha una cifra in più per ogni parola, quindi non è il codice di Shannon (quello avrebbe lunghezze ). Per lo stesso motivo la lunghezza media di Elias è sempre maggiore di quella di Shannon, che è a sua volta (limite inferiore del teorema di Shannon): quindi non raggiunge il limite inferiore. Il confronto numerico: bit contro bit (la differenza è esattamente bit, perché le probabilità sono potenze di e ). Il codice di Shannon, con lunghezze , avrebbe e raggiungerebbe il limite.
(3) Codice ottimo per le parole
Per ogni si hanno due valori possibili di : con probabilità e con probabilità . Le coppie hanno probabilità :
| Coppia | Calcolo | |
|---|---|---|
La somma è ✓ (le altre coppie hanno probabilità e non sono nel dizionario). Huffman:
| Passo | Nodi disponibili | Unione |
|---|---|---|
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | radice |
Un codice risultante: , , , , , (lunghezze ). Lunghezza media con controllo dei nodi interni: Un altro assegnamento delle etichette o dei pareggi (la soluzione del corso usa , , , , , ) dà la stessa bit. Limite: ✓ (per coppia di simboli).
(4) Entropie e confronto
- : bit.
- : la densità di si ottiene sommando le coppie con lo stesso : ; ; (somma ✓). Quindi
- Entropia della coppia: non è funzione deterministica di (dato , ha due valori possibili), quindi . Dalla regola della catena (Entropia congiunta e condizionata e informazione mutuaPer due variabili aleatorie discrete $x,y$ l'entropia congiunta è $H(x,y)=E\left[\log_2\frac1{P_{x,y}(x,y)}\right]$ e vale $\max{H(x),H(y)}\le H(x,y)\le H(x)+H(y)$, con l'uguaglianza a destra se e solo se $x$ e $y$ sono indipendenti e $H(x,y)=H(x)$ se $y=f(x)$. L'entropia condizionata $H(x|y)=E_y[H(x|y=y)]$ soddisfa la regola della catena $H(x,y)=H(x|y)+H(y)=H(y|x)+H(x)$. L'informazione mutua $I(x;y)=H(x)+H(y)-H(x,y)=H(x)-H(x|y)=H(y)-H(y|x)$ è simmetrica, $0\le I\le\min{H(x),H(y)}$, nulla per variabili indipendenti.Entropia congiunta e condizionata e informazione mutua →): ( per ogni ). Controllo diretto: ✓.
Confronto con . La risposta dipende da come si legge "entropia media per simbolo":
- l'entropia della parola è bit, strettamente maggiore di bit, perché non è funzione deterministica di ed è non nulla bit (è la risposta della soluzione del corso);
- l'entropia per simbolo, nel senso della definizione del corso (Tasso d'informazione, capacità di canale e teorema di ShannonUna sorgente che emette un simbolo ogni $T$ secondi ha tasso d'informazione $R=\frac{H_s}T$ [bit/s] ($H_s$ entropia per simbolo); un canale ha tasso $R(g)=\frac{I_s(x;y)}T\le R(x)$. La capacità è il massimo del tasso del canale su tutte le statistiche d'ingresso, $C=\max_{p_x}\frac{I(x;y)}T$ per un canale senza memoria. Teorema di Shannon: se il tasso nominale della sorgente è $R\le C$ esiste un codice di canale con probabilità d'errore piccola a piacere, se $R>C$ no. Capacità: BSC $C=\frac1T[1-h(P_{bit})]$, canale a cancellazione $C=\frac{1-\alpha}T$, AWGN reale $C=\frac1{2T}\log_2\left(1+\frac{E_s}{\sigma^2}\right)$; canali in parallelo sommano le capacità.Tasso d'informazione, capacità di canale e teorema di Shannon →), divide per la lunghezza della parola ( simboli): bit, strettamente minore di bit. Infatti e qui la dipendenza tra e lo porta anche sotto .
Se il testo chiede l'entropia per simbolo con la definizione del corso la risposta è "strettamente minore"; la soluzione del corso risponde "strettamente maggiore" confrontando l'entropia della parola (non divisa per ) con .
(5) Informazione mutua
Per la regola della catena (Entropia congiunta e condizionata e informazione mutuaPer due variabili aleatorie discrete $x,y$ l'entropia congiunta è $H(x,y)=E\left[\log_2\frac1{P_{x,y}(x,y)}\right]$ e vale $\max{H(x),H(y)}\le H(x,y)\le H(x)+H(y)$, con l'uguaglianza a destra se e solo se $x$ e $y$ sono indipendenti e $H(x,y)=H(x)$ se $y=f(x)$. L'entropia condizionata $H(x|y)=E_y[H(x|y=y)]$ soddisfa la regola della catena $H(x,y)=H(x|y)+H(y)=H(y|x)+H(x)$. L'informazione mutua $I(x;y)=H(x)+H(y)-H(x,y)=H(x)-H(x|y)=H(y)-H(y|x)$ è simmetrica, $0\le I\le\min{H(x),H(y)}$, nulla per variabili indipendenti.Entropia congiunta e condizionata e informazione mutua →): Controllo con la formula simmetrica: ✓. (Nel testo della soluzione del corso c'è un refuso, "" al posto di , ma il valore usato, e , è quello giusto.)
(Verificato con Python: Elias con , Huffman delle coppie con somma dei nodi uguale, , , , .)
Errori comuni
- Dimenticare di mettere in ordine i simboli nel codice di Elias: i punti medi dipendono dall'ordine (ma qualunque ordine fisso funziona).
- Usare (Shannon) per Elias: serve il .
- Credere che un codice con probabilità diadiche sia ottimo anche se è di Elias: lo è solo quello di Shannon.
- Per le coppie, assegnare probabilità a tutte le combinazioni: solo hanno probabilità non nulla.
- Per , calcolarla da e senza sommare le coppie con lo stesso .
- Confrontare l'entropia della parola con quella del singolo simbolo senza dividere per la lunghezza (e viceversa).
Versione ripasso
Testo. con ; con prob. , con prob. . Elias per ; è Shannon? raggiunge il limite?; Huffman per ; , e confronto con l'entropia per simbolo della coppia; .
- (1) (Codici di Shannon, Huffman ed Elias e codifica aritmeticaIl codice di Shannon(-Fano) assegna alla parola $i$ lunghezza $l_i=\lceil-\log_{M_y}p_i\rceil$, soddisfa Kraft-McMillan e ha $H\le L_y<H+1$; è ottimo solo se le probabilità sono potenze di $\frac1{M_y}$. Il codice ottimo (lunghezza media minima) dà parole più lunghe ai simboli meno probabili e ha almeno due parole di lunghezza massima che differiscono solo nell'ultimo simbolo: lo costruisce la procedura di Huffman, che unisce a ogni passo i due nodi meno probabili. Il codice di Elias prende le prime $l_i=\lceil-\log_2p_i\rceil+1$ cifre del punto medio dell'intervallo di ampiezza $p_i$ in $[0,1)$: è a prefisso ma subottimo ($H+1\le L_y<H+2$), e si adatta alla codifica aritmetica adattativa.Codici di Shannon, Huffman ed Elias e codifica aritmetica →) Punti medi , , ; ; parole ; bit.
- (2) Elias ha , Shannon : non è Shannon e non raggiunge il limite (; Shannon darebbe ).
- (3) Coppie: , , , , , . Nodi ; bit.
- (4) (Entropia congiunta e condizionata e informazione mutuaPer due variabili aleatorie discrete $x,y$ l'entropia congiunta è $H(x,y)=E\left[\log_2\frac1{P_{x,y}(x,y)}\right]$ e vale $\max{H(x),H(y)}\le H(x,y)\le H(x)+H(y)$, con l'uguaglianza a destra se e solo se $x$ e $y$ sono indipendenti e $H(x,y)=H(x)$ se $y=f(x)$. L'entropia condizionata $H(x|y)=E_y[H(x|y=y)]$ soddisfa la regola della catena $H(x,y)=H(x|y)+H(y)=H(y|x)+H(x)$. L'informazione mutua $I(x;y)=H(x)+H(y)-H(x,y)=H(x)-H(x|y)=H(y)-H(y|x)$ è simmetrica, $0\le I\le\min{H(x),H(y)}$, nulla per variabili indipendenti.Entropia congiunta e condizionata e informazione mutua →) ; , ; (parola), ma per simbolo .
- (5) bit.
- Dettagli (1)-(2). Intervalli , , ; (, , , già di cifre); . Shannon: , (probabilità diadiche).
- Dettagli (3). Coppie (le altre coppie hanno probabilità ). Unioni (), , (), , ; parole ; ; .
- Dettagli (4). , ; per ogni . Per parola (il corso: strettamente maggiore); per simbolo .
- Dettagli (5). .
- Errori: Elias senza ; assegnare probabilità alle coppie; non dividere per la lunghezza nell'entropia per simbolo.
Teoria collegata
- Codici di Shannon, Huffman ed Elias e codifica aritmetica
- Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza media
- Entropia congiunta e condizionata e informazione mutua
- Entropia - informazione di un evento, disuguaglianza di Jensen e valore massimo
- Tasso d'informazione, capacità di canale e teorema di Shannon