02 Informacion Modelos Codificacionx2
Short Description
Download 02 Informacion Modelos Codificacionx2...
Description
Tema 2: Teoría de la Información, Modelos para la Compresión, Codificación. Rafael Molina Depto de Ciencias de la Computación e Inteligencia Artificial Universidad de Granada Rafael Molina
Tema 2: Herramientas
1
Contenidos
• Objetivos del tema • Breve introducción a la Teoría de la Información • Modelos para la compresión – Modelos físicos – Modelos probabilísticos simples – Modelos de Markov – Modelo de fuente compuesta • Codificación – Códigos decodificables de modo único – Test para decodificación única – Códigos prefijo – Decodificación de una secuencia de palabras en código prefijo • Resumen • Bibliografía Rafael Molina
Tema 2: Herramientas
2
II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar los métodos de compresión que veremos en el curso. 2. Veremos también en este tema modelos que pueden utilizarse para describir los datos y para su posterior codificación. 3. Por último, analizaremos algunos tipos de códigos que serán utilizados a lo largo del curso.
Rafael Molina
Tema 2: Herramientas
3
II.2 Breve Introducción a la teoría de la Información Aunque la idea de medir cuantitativamente la información había sido estudiada con anterioridad, Claude Shannon (ingeniero eléctrico en Bells Lab) fue la persona que desarrolló los conceptos de forma matemática.
C. Shannon 1916-2001
Supongamos que tenemos un suceso que es el resultado de un proceso aleatorio. Si P(A) es la probabilidad de dicho suceso entonces la auto-información asociada a A viene dada por
1 i ( A) log P ( A)
Rafael Molina
log P( A)
Tema 2: Herramientas
El logaritmo será siempre entendido en base dos 4
1. Recordemos que log(1)=0 y la función -log(x) logaritmo crece cuando x se mueve de uno a cero. Por tanto, a mayor probabilidad de un suceso menor auto-información asociada. 2. De Sherlock Holmes: el ladrido de un perro durante un robo es un suceso muy probable y por tanto contiene poca información, sin embargo el que un perro no labre durante un robo es muy poco probable y contiene mucha información. 3. Propiedad de la auto-información: La auto-información de dos sucesos A y B que son independientes es la suma las auto-informaciones de A y B. Demostración: i ( AB)
Rafael Molina
1 log P ( AB) [ indep. ] P ( AB) log P ( A) log( B ) i ( A) i ( B )
log
Tema 2: Herramientas
5
La cantidad de información depende de la base del logaritmo. Si la base del logaritmo es 2 la unidad es bits, si es e la unidad es nats y si es 10 la unidad se llama hartleys. Ejemplo 2.1: Sean cara (C) y cruz (X) los posibles resultados de lanzar una moneda. Si la moneda no está sesgada tendremos
P (C )
P( X )
1 2
e
i (C ) i ( X ) 1 bit
Si la moneda está cargada la información asociada a cada suceso es diferente. Por ejemplo, si
P (C ) Rafael Molina
1 , P( X ) 8
7 8
i (C ) 3 bits i ( X ) 0.193 bits
Tema 2: Herramientas
6
. . . .
Experimento
A1 Ai AM
La cantidad M
H
¦ P( A )i( A ) k
k
k 1
Los sucesos Ai son independientes y cubren todos los posibles resultados del experimento M
¦ P ( Ak ) log( Ak ) k 1
Recibe el nombre de entropía de primer orden asociada al experimento (fuente) Shannon probó que lo mejor que un esquema de compresión sin pérdida puede hacer es codificar la salida de una fuente (experimento) con un número medio de bits igual a la entropía de la fuente. Rafael Molina
Tema 2: Herramientas
7
En la terminología de compresión, el conjunto de símbolos A generados por una fuente S recibe el nombre de alfabeto y los símbolos son llamados letras. Así pues, hablaremos de letras del alfabeto. Dada una fuente S que tiene un alfabeto A={1,2,…,m} que genera una sucesión {X1,X2,….} su entropía viene dada por
H (S )
1 lim Gn nof n
donde
Gn
m
m
i1 1
in 1
¦ ...¦ P X 1
i1 , , X n
(1) Observa: nos dará el número medio de bits por símbolo (letra)
in log P X 1
i1 , , X n
in
y {X1,…,Xn} es una sucesión de longitud n de la fuente S. Rafael Molina
Tema 2: Herramientas
8
Supongamos que las variables Xi son independientes e idénticamente distribuidas (iid) y notemos su distribución común mediante X. Puede probarse fácilmente que
Gn
m
m
i1 1
in 1
¦ ...¦ P X 1
i1 , , X n
m
(iid )
n¦ P X
in log P X 1
i log P X
i1 , , X n
in
i
i 1
y la ecuación para la entropía se convierte en m
H (S ) ¦ P X
i log P X
i
(2)
i 1
En general las entropías definidas en (1) (página anterior) y (2) no coinciden por lo que (2) suele recibir el nombre de entropía de primer orden y (1) entropía. Rafael Molina
Tema 2: Herramientas
9
Es muy importante entender bien este teorema. Supongamos que tenemos una fuente cuyas realizaciones son independientes con tres posibles resultados A1, A2 y A3 de forma que
P ( A1 )
1 2
P ( A2 )
P ( A3 )
La entropía de esta fuente vale
H
1 4
1 1 1 u 1 u 2 u 2 1.5 bits 2 4 4
Un esquema de codificación que alcanza esta cota inferior es: A1 A2 A3 Rafael Molina
0 Sin embargo, si la fuente genera los símbolos A2A2A2A2 es obvio que para esta secuencia en 10 particular podríamos haber elegido otra codificación mejor. El teorema de Shannon habla 11 de comportamiento medio. Tema 2: Herramientas
10
Sigamos entendiendo el teorema de Shannon. Consideremos una fuente binaria con sucesos A1 y A2 que cumplen P(A1)=p y P(A2)=1-p
0 p 1
Su entropía vale H(p)=-plog(p)-(1-p)log(1-p) (ver gráfico) 1. Una codificación que le asigne un dígito binario (por ejemplo el cero) a A1 y el otro dígito binario (el uno) a A2, sólo será óptima si p=1/2. 2. Si p1/2, la entropía, H(p), es siempre menor que uno y el teorema de Shannon nos dice que, al menos, teóricamente podemos hacerlo mejor que codificar A1 y A2 con un bit cada uno. Rafael Molina
Tema 2: Herramientas
11
¿Qué ocurre si queremos codificar una secuencia dada y no conocemos las probabilidades de las letras del alfabeto?. Consideremos la secuencia 1 2 3 2 3 4 5 4 5 6 7 8 9 8 9 10 si suponemos independencia en cada observación (es decir, todas las variables Xi son iid) y estimamos la probabilidad de ocurrencia de cada letra mediante su frecuencia en la secuencia obtenemos
P (1) P ( 2) Rafael Molina
P (3)
P ( 6) P ( 4)
P (7)
P (10)
1 16
P (5)
P (8)
P (9)
Tema 2: Herramientas
2 16 12
Usando estas probabilidades, la entropía de la fuente sería 10
H
¦ P (i ) log P (i ) 3.25 bits i 1
Puede probarse que lo mejor que podemos hacer para codificar esta secuencia es utilizar 16x3.25 bits supuesto que las 16 observaciones vienen de variables independientes idénticamente distribuidas. Es importante entender la diferencia entre este resultado y el teorema de Shannon que hemos visto. El teorema de Shannon habla de comportamiento medio y este resultado habla de una secuencia concreta con un modelo concreto de observaciones. Recuerda que los 3.25 bits se alcanzan suponiendo iid en las 16 observaciones. Rafael Molina
Tema 2: Herramientas
13
Consideremos de nuevo la secuencia 1 2 3 2 3 4 5 4 5 6 7 8 9 8 9 10 ahora, para eliminar la correlación entre los datos calculamos la diferencia entre cada valor y el anterior. Obtenemos entonces la secuencia (además del uno inicial) 1 1 -1 1 1 1 -1 1 1 1 1 1 -1 1 1 de la que calculamos
P (1)
12 15
P ( 1)
3 15
H ( S ) 0.70 bits
y podríamos codificar la secuencia desde el segundo elemento en el mejor de los casos, bajo las hipótesis que sabemos, con 15x0.70 bits. Rafael Molina
Tema 2: Herramientas
14
Observemos que en este caso tendríamos que codificar la secuencia 1 1 -1 1 1 1 -1 1 1 1 1 1 -1 1 1 y también enviar el primer valor, un uno y el modelo para la secuencia, es decir,
xn
xn 1 rn
n 2, ,16 x1 1
donde xn es el n-ésimo elemento de la secuencia original y rn es el n-ésimo elemento de la secuencia de residuos. Este modelo se llama estático porque los parámetros no cambian con n. Un modelo en el que los parámetros cambian (o se adaptan) con n se llama adaptativo. Rafael Molina
Tema 2: Herramientas
15
Consideremos ahora la siguiente secuencia 12123333123333123312 Si miramos un símbolo cada vez tendremos
1 1 P (3) 4 2 H ( S ) 1.5 bits/símbo lo
P (1)
P ( 2)
Necesitaríamos 20x1.5=30 bits para representar la secuencia. Sin embargo, si consideramos dos símbolos consecutivos tendremos
1 2 H ( S ) 1 bit/símbol o P(1 2) Rafael Molina
P(3 3)
Tema 2: Herramientas
16
Necesitaríamos por tanto, con este modelo, 10x1=10 bits para representar la secuencia.
1. Obviamente cuanto mayor sea el tamaño de los bloques de letras del alfabeto más podemos, en principio, mejorar la compresión. 2. Sin embargo, hay obviamente un límite de tipo práctico en esta aproximación. 3. En la siguiente sección vamos a describir diferentes modelos usados en los métodos de compresión sin pérdida. Rafael Molina
Tema 2: Herramientas
17
II.3 Modelos para la compresión II.3.1 Modelos físicos
Aunque el proceso físico de obtención de datos es, en muchos casos, muy complicado, hay situaciones en las que es posible el modelado de dicho proceso. Veremos como el modelo físico puede ser utilizado en problemas de compresión de audio.
Rafael Molina
Tema 2: Herramientas
18
II.3.2 Modelos probabilísticos simples El modelo probabilístico más simple que podemos usar es suponer que cada letra del alfabeto que se genera es independiente de las demás y que todas tienen la misma probabilidad. Es el llamado modelo de ignorancia que normalmente no es cierto y en el que, por desgracia, no podemos alcanzar mucha compresión. Supongamos que m es el número de letras del alfabeto. Si una fuente S sigue el modelo de ignorancia su entropía vale: m
1 1 H (S ) ¦ log m i 1 m Rafael Molina
log m
Tema 2: Herramientas
19
El modelo probabilístico siguiente en complicación mantiene la hipótesis de independencia, pero elimina la asignación de la misma probabilidad a todas las letras. Así pues, ahora tenemos para A={a1,…,am} el modelo de probabilidades P={P(a1),…,P(am)} siendo uno la suma de las probabilidades. Su entropía vale: m
H (S ) ¦ P X
i log P X
i
i 1
Si la hipótesis de independencia no es correcta, tenemos que utilizar otros modelos alternativos. Ejemplos de estos modelos probabilísticos “más complicados” son los modelos de Markov que veremos a continuación. Rafael Molina
Tema 2: Herramientas
20
II.3.3 Modelos de Markov La forma más usada para representar dependencia entre datos es el uso de las cadenas de Markov. Los modelos de Markov utilizados en compresión sin pérdida son las llamadas cadenas de Markov en tiempo discreto.
Andrei Andreivich Markov (1856-1922)
Una sucesión de observaciones {xn} se dice que sigue un modelo de Markov de orden k-ésimo si para todo n
P( xn | xn 1 , , xn k ) P( xn | xn 1 ,, xn k ,) Es decir, el conocimiento de los k símbolos anteriores es equivalente al conocimiento de todo el pasado. Los valores tomados por el conjunto {x1,…,xk} reciben el nombre de estado del proceso. Rafael Molina
Tema 2: Herramientas
21
El modelo de Markov más usado es el de primer orden en el que se tiene
P( xn | xn 1 , xn 2 , )
P( xn | xn 1 )
Podemos desarrollar diferentes modelos de primer orden dependiendo de la forma de dependencia entre las muestras. Por ejemplo, podríamos utilizar el modelo lineal siguiente
xn
xn 1 H n
Donde n es ruido (normalmente blanco). Este modelo se utiliza frecuentemente en la codificación de imágenes y voz. Veamos un modelo de Markov para codificación de fax. Rafael Molina
Tema 2: Herramientas
22
Supongamos que tenemos un texto en Blanco y Negro. Pensamos que la aparición de un píxel blanco (B) en la siguiente observación depende de que hayamos observado un pixel blanco (B) o negro (N) en la observación actual. Para el instante actual tenemos las probabilidades P(B) y P(N): 1. Una vez observada la letra N tendremos P(B|N) y P(N|N) que cumplen P(B|N)+P(N|N)=1 2. Una vez observada la letra B tendremos P(B|B) y P(N|B) que también cumplen P(B|B)+P(N|B)=1. Gráficamente:
P(N|B) P(N|N)
P(B|B) B
N P(B|N)
Rafael Molina
Tema 2: Herramientas
23
Ejemplo II.3.1 Supongamos que las probabilidades asociadas a nuestra fuente S son con
P ( B ) 0 .8 P ( N ) 0 .2
P ( B | B ) 0.99 P ( N | B ) 0.01 P ( B | N ) 0.3 P ( N | N ) 0.7 Supongamos que queremos codificar a partir término una sucesión de Bs y Ns. Para obviamente, usamos como límite inferior correspondiente a las probabilidades P(B)=0.8 y
del segundo el primero, la entropía P(N)=0.2.
Si suponemos independencia tendremos
H (S ) 0.8 log 0.8 0.2 log 0.2 0.206 bits Rafael Molina
Tema 2: Herramientas
24
También podemos basarnos en la entropía de las distribuciones condicionadas a los dos casos posibles: Observada una N
H (SN ) P( N | N ) log( P ( N | N )) P ( B | N ) log( P ( B | N )) 0.3 log 03 0. log 0.7 0.881 bits
Observada una B
H (SB ) P( N | B ) log( P( N | B )) P ( B | B ) log( P ( B | B )) 0.01 log 0.01 0.99 log 0.99 0.081 bits Por tanto, para la codificación a partir del segundo símbolo tendríamos como cota inferior
H (S )
P ( B ) H (SB ) P( N ) H (SN ) 0.2 u 0.881 0.8 u 0.081 0.107 bits
Casi la mitad de la obtenida cuando se supone independencia. Rafael Molina
Tema 2: Herramientas
25
Como es obvio, los modelos de Markov son especialmente útiles para la compresión de texto un problema en el que la aparición de una letra condiciona la siguiente letra en aparecer. Shannon utilizó un modelo de Markov de segundo orden para la lengua inglesa usando 26 letras y un espacio. Obtuvo una entropía de 3.1 bits/letra. Para un modelo de segundo orden basado en palabras y no en letras obtuvo una entropía de 2.4 bits/símbolo. Conociendo las 100 letras anteriores, Shannon acotó la entropía del símbolo siguiente entre 1.3 y 0.6 bits. No obstante, si usamos un modelo de orden k con N letras para la predicción, tenemos Nk posibles contextos y muchos no aparecerán nunca como realización del sistema. Rafael Molina
Tema 2: Herramientas
26
II.3.4 Modelo de fuente compuesta Los modelos de fuente compuesta se pueden representar como un conjunto de fuentes individuales Si en el que cada fuente Si tiene su modelo Mi y un conmutador que selecciona la fuente Si con probabilidad Pi. El modelo es muy rico y puede usarse para describir procesos muy complicados. Fuente 1
Fuente 2
.. .
conmutador
Fuente n Rafael Molina
Tema 2: Herramientas
27
II.4 Codificación Un alfabeto será un conjunto de símbolos llamados letras. Codificación(para nosotros)=asignación de secuencias binarias a letras de un alfabeto. El conjunto de secuencias binarias se llama código. Los miembros individuales del conjunto se llaman palabras del código. Un alfabeto pueden ser las letras mayúsculas y minúsculas y algunos símbolos de punrtuación. Estos elementos se llamarán letras. A cada letra le asignamos un código en binario (palabra de código) y el conjunto total se llama código. ASCII es un código de longitud fija. Rafael Molina
Tema 2: Herramientas
28
II.4.1 Códigos decodificables de modo único Consideremos el ejemplo siguiente (ver tabla): nuestro alfabeto tiene cuatro letras con las probabilidades que se muestran y pensamos en asignarles los siguientes códigos. La entropía de esta fuente es 1.75 bits/símbolo. Letra
Probabilidad
Código 1
Código 2
Código 3
Código 4
a1
0.5
0
0
0
0
a2
0.25
0
1
10
01
a3
0.125
1
00
110
001
a4
0.125
10
11
111
0001
Longitud media Rafael Molina
Letra
1.125
1.25
Tema 2: Herramientas
Probabilidad
Código 1
a1
0.5
0
a2
0.25
0
a3
0.125
1
a4
0.125
10
Longitud media
1.125
1.75
1.875 29
El primer código parece el mejor en cuanto a la longitud media. Sin embargo los símbolos a1 y a2 han sido asignados a la misma palabra. Cuando leemos un cero no sabemos de qué símbolo viene
Necesitamos trabajar con códigos que asignan palabras distintas a símbolos distintos.
Rafael Molina
Tema 2: Herramientas
30
Letra
Probabilidad
Código 2
a1
0.5
0
a2
0.25
1
a3
0.125
00
a4
0.125
11
Longitud media
1.25
Este código no parece tener el problema de la ambigüedad. Sin embargo si tenemos la secuencia de bits 100 su decodificación no es única.
Nos gustaría que la secuencia tuviera una decodificación única por el decodificador.
Rafael Molina
Letra
Tema 2: Herramientas
Probabilidad
Código 3
a1
0.5
0
a2
0.25
10
a3
0.125
110
a4
0.125
111
Longitud media
31
La regla de decodificación de este código es simple: Acumular dígitos hasta que encontremos un cero o encontremos tres unos consecutivos.
1.75
Este tipo de códigos recibe el nombre de instantáneos. Cuando llega una codificación de un mensaje somos capaces de decodificarla inmediatamente. Rafael Molina
Tema 2: Herramientas
32
Letra
Probabilidad
Código 4
La regla de decodificación de este código es muy simple:
a1
0.5
0
a2
0.25
01
a3
0.125
011
a4
0.125
0111
Longitud media
La decodificación consistirá en acumular dígitos hasta que encontremos un cero. El bit anterior al cero es el último de la anterior palabra
1.875
Este código no es instantáneo, aunque casi cumple la condición de instantaneidad. La condición de instantaneidad es interesante pero no es obligatoria como veremos a continuación. Rafael Molina
Tema 2: Herramientas
Letra
Código 4
a1
0
a2
01
a3
11
Decodificando empezando por a1 (0) obtendríamos:
33
Estudiemos un poco más la instantaneidad de los códigos. Consideremos la codificación proporcionada por la tabla a la izquierda y decodifiquemos la secuencia 011111111111111111
0
11
11
11
11
11
11
11
11
1
a1
a3
a3
a3
a3
a3
a3
a3
a3
No válido
Empezando por a2 obtendríamos la decodificación válida:
01
11
11
11
11
11
11
11
11
a2
a3
a3
a3
a3
a3
a3
a3
a3
Obviamente el código no es instantáneo, pero probaremos después que todas las secuencias de dígitos (no sólo ésta) son decodificables de modo único. Rafael Molina
Tema 2: Herramientas
34
Letra
Código 4
a1
0
a2
01
a3
10
Decodificando empezando por a1 (0) obtendríamos la codificación válida: Empezando por a2 obtendríamos la decodificación también válida:
Consideremos la codificación proporcionada por la tabla de la izquierda y decodifiquemos la secuencia 01010101010101010
0
10
10
10
10
10
10
10
10
a1
a3
a3
a3
a3
a3
a3
a3
a3
01
01
01
01
01
01
01
01
a2
a2
a2
a2
a2
a2
a2
a2
0 a1
Por tanto este código no produce secuencias decodificables de modo único. Rafael Molina
Tema 2: Herramientas
35
II.4.2 Test para decodificación única Definición: Supongamos que tenemos dos palabras, a y b, de un código binario donde a tiene k bits y b tiene n bits con k
View more...
Comments