Modelos estadísticos y la entropía del lenguaje

Anuncio
Modelos estadísticos y la
entropía del lenguaje
Dr. Luis Alberto Pineda Cortés
Contenido
•
•
•
•
•
•
•
Teoría de la probabilidad
Modelos estadísticos
Reconocimiento de voz
Entropía (de un lenguaje)
Cadenas de Markov
Entropía entre lenguajes (EEL)
EEL y evaluación de modelos
Contenido
•
•
•
•
•
•
•
Teoría de la probabilidad
Modelos estadísticos
Reconocimiento de voz
Entropía (de un lenguaje)
Cadenas de Markov
Entropía entre lenguajes (EEL)
EEL y evaluación de modelos
Teoría de la probabilidad: Variables Random
• Evento:
– Tirar una moneda al aire
– diagnosticar a un enfermo
– Apuntar al azar a una palabra en un texto
• Resultado del evento: variable random X propiamente
– Que salga una cara de la moneda
– Que se detecte una enfermedad
– Se escoge una palabra en particular
• Posibles resultados: rango de la variable random o V(X)
– V(X) = {águila, sol}
– V(X) = {viruela, varisela, paperas}
– V(X) = el conjunto de todas las palabras del texto
Teoría de la probabilidad: Variables Random
• Notación:
– x es un resultado posible de X (x ∈ V(X))
– Probabilidad de x: P(X = x) o P(x)
– Número de veces que X sale x:X = x
• Ejemplo:
– Sea W el resultado de señalar al azar un texto
– Sea wi la i-esima palabra del español (word type)
– Sea wiel número de veces que wi aparece (word tokens)
• Probabilidad
wi
P(W = wi) =
w
Σj=1 wj
Probabilidad condicional y secuencia de eventos
• Dos eventos:
– Seleccionar al azar dos palabras seguidas en un texto
– Dos variables aleatorias: W1, W2
– Probabilidad condicional
• La probabilidad de que se diga “casa” dado que se dijo “la” es mucho
mayor que la probabilidad que se diga “correr” en el mismo contexto
P(W2 = wj W1 = wi ) =
W1 = wi, W2, = wj
W1 = wi
El Teorema de Bayes
P(A ∩ B)
P(AB) =
A
P(B)
B
P(A ∩ B)
P(BA) =
P(A)
P(AB) P(B) = P(A) P(BA)
P(A) P(BA)
P(AB) =
P(B)
El Teorema de Bayes
P(A) P(BA)
P(AB) =
P(B)
•
•
•
•
•
•
A: conclusión (diagnóstico: el niño tiene amigdalitis)
B: evidencia observable (síntomas: el niño tiene calentura)
P(A): probabilidad que el niño tenga amigdalitis
P(B): probabilidad que el niño tenga calentura
P(BA): probabilidad que tenga calentura dado que tiene amigdalitis
P(AB): probabilidad que tenga amigdalitis dado que tiene calentura
El Teorema de Bayes
• Si se require P(B), la probabilidad de la calentura, es necesario
considerar todas las enfermedades que tienen calentura como
síntoma
• La probabilidad de la calentura se puede obtener su se observa
calentura dado que se tiene la enfermeda i, para toda i
P(B = b) =
Σ P(B = b A = ai) P(A = ai)
a ∈ V(A)
Generalización del Teorema de Bayes
• Los eventos pueden tener diferente granularidad:
– x, y son ocurrencias de dos eventos de apuntar a dos palabras (i.e., x = “comió
carne” y = “el perro”)
– P(xy) es la probablidad de que se diga “comió carne” dado que se dijo “el
perro”
• O cada acción puedes tomarse como eventos independientes
– x, y, z, w son ocurrencias de eventos de apuntar a una palabra (i.e., w =
“comió”, x = “carne”, y = “el” y z = “perro”)
P(w, x) P(y, z w, x )
P(w, xy, z) =
P(y, z)
Generalización del Teorema de Bayes
• La probabilidad de una secuencia de n eventos:
P(w1, w2, w3,..., wn ) =
P(w1) P(w2w1) P(w2w1,w2) ... P(wnw1,...,wn-1)
• La probabilidad de una secuencia de n eventos condicionada a la
ocurrencia de otro evento x:
P(w1, w2, w3,..., wn  x ) =
P(w1x) P(w2w1, x) P(w3w1,w2, x) ... P(wnw1,...,wn-1, x)
Contenido
•
•
•
•
•
•
•
Teoría de la probabilidad
Modelos estadísticos
Reconocimiento de voz
Entropía (de un lenguaje)
Cadenas de Markov
Entropía entre lenguajes (EEL)
EEL y evaluación de modelos
Modelos estadísticos
• Propósito: Aprender un lenguaje en base a las regularidades
estadísticas observadas en un corpus
– Muchas regularidades irrelevantes
– Agredar conocimiento del lenguaje para obtener regularidades relevantes
• Aprender (learn) modelos estadísticos: asignar una probabilidad a
todas las secuencias de palabras!
– Dada una secuencia de longitud n se quiere asignar un número a:
P(W1,n = w1, n)
– Para todas las secuencias w1,n donde W1,n es una secuencia de n variables
random, W1, W2, ..., Wn cada una de las cuales toma una palabra del
lenguaje
Modelos estadísticos
• La gente puede asignar probabilidades a secuencias de palabras:
P(w1,n) = P(w1) P(w2w1) P(w3w1,2) ... P(wnw1,n-1)
• Hay experimentos que indican que la gente es más exacta que los
métodos estadísticos más sofisticados!
• El método no depende sólo de las palabras precedentes
– Ejemplo: “el (árbol  cielo) azul”
– P(el árbol azul) = P(el) P(árbolel) P(azul el árbol)
– P(el cielo azul) = P(el) P(cieloel) P(azul el cielo)
• Prejuicios: sólo contra los métodos rollorizados
• Ventajas: depende de la aplicación
Contenido
•
•
•
•
•
•
•
Teoría de la probabilidad
Modelos estadísticos
Reconocimiento de voz
Entropía (de un lenguaje)
Cadenas de Markov
Entropía entre lenguajes (EEL)
EEL y evaluación de modelos
Reconocimiento de voz
P(W) P(AW)
P(WA) =
P(A)
• P(W): Modelo del lenguaje (probabilidad de que se diga W)
• P(A): probabilidad el sonido sea voz
• P(AW): Modelo acústico (probabilidad la evidencia acústica
dado que se pronunció W)
• P(WA): Probabilidad de que se reconozca W dada la evidencia
acústica.
Wmax = max P(WA) = P(W) P(AW)
Procedador acústico: Evidencia acústica
habla
procesador
de
señales
σi
comparador
ρi
prototipos
acústicos
ai
Modelo de reconocimiento del habla
(source-channel)
Wmax = max P(WA) = P(W) P(AW)
mente
W
generador
del habla
habla
procesador
acústico
A
decodificador
linguístico
Reconocedor
Hablante
canal acústico
Wmax
Contenido
•
•
•
•
•
•
•
Teoría de la probabilidad
Modelos estadísticos
Reconocimiento de voz
Entropía (de un lenguaje)
Cadenas de Markov
Entropía entre lenguajes (EEL)
EEL y evaluación de modelos
Entropía
• Se define una figura de mérito para comparar modelos
estadísticos: entropía entre lenguajes (cross entropy)
• Teoría de codificación:
– cuánto cuesta mandar un mensaje de un lenguaje dada una notación
explícita (binario, decimal, ect.)?
– Problema: mandar un mensaje cada 5 minutos para informar de los
ocupantes de una casa (una pareja!) de acuerdo al siguiente código
•
•
•
•
Andan de vagos: 00
El hombre está en casa: 01
La mujer está en casa: 10
Los dos están en casa: 11
– Si la probabilidad de cada mensaje es la misma, necesitamos dos
bits... pero podemos mejorar?
Entropía
• Supongamos las siguientes probabilidades
•
•
•
•
Andan de vagos: .5
El hombre está en casa (sólo): .125
La mujer está en casa (solá): .125
Los dos están en casa: .25
• Mandemos los mensajes más probables con menos bits!
•
•
•
•
•
Situación
Andan de vagos:
Sólo el hombre:
Sólo la mujer
Los dos
Probabilidad
.5
.125
.125
: .25
Código
0
110
111
10
• Cuántos bits se necesitan en promedio?
1/2 * 1 bit + 1/4 * 2 bits + 1/8 * 3 bits + 1/8 * 3 bits = 1.75 bits!
Entropía
• Pero hay que decodificar los mensajes (cuando empizan y
cuando terminan!
Decodificador
pos. 0
0 (nadie)
pos. 1
10 (los dos)
110 (el hombre)
0
pos. 2
111 (la mujer)
1
Entropía y variables random
• El mensaje en si puede considerarse como una variable random W,
cuyo rango es el conjunto de posibles mensajes específicos V(W).
• ¿Existe una cota mínima para codificar estos mensajes?.
• Definimos H(W) como la entropía de la variable random W
H(W) = − Σ P(w) log2 P(w)
w ∈ V(W)
– Ejemplo:
H(W) = − (1/2 * log 1/2 + 1/4 * log 1/4 + 1/8 * log 1/8 + 1/8 * log 1/8)
= − (1/2 * (− 1) + 1/4 * (− 2) + 1/8 * (− 3) + 1/8 * (− 3) )
= 1.75
H(W) = − Σ P(w) log2 P(w) = Σ P(w) bits-requeridos(w)
w ∈ V(W)
w ∈ V(W)
Relación entre Entropía y Codificación
• La entropía es la cota mínima promedio para transmitir un mensaje
• Es posible en la práctica estar cerca de dicha cota!
– Codificar cada mensaje w ∈ V(W) con − log2 P(w)
• La entropía es una medida de la incertidumbre del mensaje:
– Mientras menos bits necesitemos más seguros estamos de cuál es el mensaje
– Mientras más grande H más difícil de interpretar el mensaje
H(W1,n) = − Σ P(w1,n) log2 P(w1,n)
w ∈ V(W1,n )
– Abreviando:
H(W1,n) = − Σ P(w1,n) log2 P(w1,n)
w1,n
Relación entre Entropía y Codificación
– Entropía de un mensaje de longitud n:
H(W1,n) = − Σ P(w1,n) log2 P(w1,n)
w1,n
– Consideremos un sistema de reconocimiento del habla que transcribe
palabras del conjunto (todas las palabras tienen la misma probabilidad):
• {el, un, gato, perro, comió, durmió, aquí, allá}
• Longitu del mensaje: n = 1
H(W1) = − P(el) log2(el) − P(un) log2(un) − ... − P(allá) log2(allá)
= 8 * (− 1/8 log2(1/8))
= 8 * (− 1/8 * (- 3))
=3
Relación entre Entropía y Codificación
– Entropía por palabra (donde n es la longitud del mensaje):
1/n H(W1,n) = − 1/n Σ P(w1,n) log2 P(w1,n)
w1,n
– Fuente ergódica:
• Entropía por palabra, cuando la longitud del mensaje tiende a infinito
H(L) = − nlim
1/n Σ P(w1,n) log2 P(w1,n)
→∞
w1,n
Contenido
•
•
•
•
•
•
•
Teoría de la probabilidad
Modelos estadísticos
Reconocimiento de voz
Entropía (de un lenguaje)
Cadenas de Markov
Entropía entre lenguajes (EEL)
EEL y evaluación de modelos
Cadenas de Markov
• Autómatas finitos probabilisticos
– Como generadores: se generan cadenas con cierta probabilidad
– Como aceptores: asignan una probabilidad a las cadenas aceptadas
– Las probabilidades de salida de cada nodo suman uno
0.5 “aquí”
0.5 “el”
0.5 “perro” 0.5 “comió”
0.5 “un”
0.5 “gato” 0.5 “durmió”
0.5 “aquí”
Contenido
•
•
•
•
•
•
•
Teoría de la probabilidad
Modelos estadísticos
Reconocimiento de voz
Entropía (de un lenguaje)
Cadenas de Markov
Entropía entre lenguajes (EEL)
EEL y evaluación de modelos
Entropía entre lenguajes:
• Entropía por palabra:
1/n H(W1,n) = − 1/n Σ P(w1,n) log2 P(w1,n)
w1,n
0.5 “aquí”
0.5 “el”
0.5 “un”
0.5 “perro”
0.5 “comió”
0.5 “gato”
0.5 “durmió”
0.5 “allá”
• Son 16 mensajes de longitud 4:
1/n H(W1,n) = − 1/4 * (16 * (1/24 log2 (1/24)))
1/n H(W1,n) = − 1/4 * (− 4) = 1
Entropía entre lenguajes:
• Entropía por palabra:
1/n H(W1,n) = − 1/n Σ P(w1,n) log2 P(w1,n)
w1,n
• Sin estructura: Entropía por palabra (eligiendo palabras al azar)
– H(W1) = − P(el) log2(el) − P(un) log2(un) − ... − P(allá) log2(allá)
= 8 * (− 1/8 log2(1/8))
= 8 * (− 1/8 * (- 3))
=3
• Con estructura: Son 16 mensajes de longitud 4 (Cadena de Markov)
1/n H(W1,n) = − 1/4 * (16 * (1/24 log2 (1/24)))
1/n H(W1,n) = − 1/4 * (− 4) = 1
Qué tan bueno es un modelo: EEL
(cross entropy)
• Conjunto de variables random W1,n
• Modelo correcto es P(w1,n)
• Modelo estimado PM(w1,n)
– Cross-Entropía del lenguaje:
– EEL por palabra:
H(W1,n , PM) = − Σ P(w1,n) log2 PM(w1,n)
w
1,n
1/n H(W1,n , PM) = − 1/n Σ P(w1,n) log2 PM(w1,n)
w
– Diferencia:
1,n
H(W1,n ) <= H(W1,n , PM)
– Entropía entre lenguajes (cross entropy of a language)
H(L , PM) = − lim 1/n Σ P(w1,n) log2 PM(w1,n)
n→∞
Qué tan bueno es un modelo: EEL
0.5 “aquí”
• ¿Cuál es la entropia del lenguaje:
0.5 “el”
0.5 “un”
0.5 “perro”
0.5 “comió”
0.5 “gato”
0.5 “durmió”
0.5 “allá”
con respecto al lenguaje random (PM (w1,n) = 1/8)?
H(W1,n , PM) = − Σ P(w1,n) log2 PM(w1,n)
w
1,n
= 16 * (− 1/24 * log2(1/8))
= 16 * (− 1/16 * (- 3)) = 3
Cross-entropía
0.5 “aquí”
• ¿Cuál es la entropia por palabra de
0.5 “el”
0.5 “un”
0.5 “perro”
0.5 “comió”
0.5 “gato”
0.5 “durmió”
0.5 “allá”
con respecto al modelo incorrecto?
0.75 “aquí”
0.75 “el”
0.25 “un”
0.75 “perro” 0.75 “comió”
0.25 “gato” 0.25 “durmió”
0.25 “allá”
Cross-entropía
1/n H(W1,n , PM) = − 1/n Σ P(w1,n) log2 PM(w1,n)
w
1,n
• Hay 16 mensajes con distribución binomial respecto a las
probabilidades de 1/4 y 3/4, por lo tanto:
1/n H(W1,n , PM) = − 1/4 (1 * 1/24 * log2 (1/44) +
4 * 1/24 * log2 (1/43 * 3/4) +
6 * 1/24 * log2 (1/42 * (3/4)2) +
4 * 1/24 * log2 (1/4 * (3/4)3) +
1 * 1/24 * log2 (3/4)4)
= 1.2
Comparar con la entropía por palabra del lenguaje correcto:
1/n H(W1,n) = − 1/4 * (16 * (1/24 log2 (1/24)))
1/n H(W1,n) = − 1/4 * (− 4) = 1
Contenido
•
•
•
•
•
•
•
Teoría de la probabilidad
Modelos estadísticos
Reconocimiento de voz
Entropía (de un lenguaje)
Cadenas de Markov
Entropía entre lenguajes (EEL)
EEL y evaluación de modelos
EEL y evaluación de modelos
• Tres modelos
– (1) El correcto con con structura de Markov con transiciones de 1/2
– (2) El modelo con estructura de Markov, con transiciones de 1/4 y 3/4
– (3) El modelo random(sin estructura)
• La cross-entropías de (2) y (3) con respecto a (1):
– H(W1,n = 1 , PM = 3) = 3
– H(W1,n = 1 , PM = 2) = 1.2
• La cross-entropía por palabra nos permite evaluar diferentes modelos con
respecto al modelo correcto!
– El modelo (2) es mejor que el modelo (3)
EEL y evaluación de modelos
• Si conocemos el modelo del español o el inglés, podemos evaluar que tan
buenos son nuestros modelos con:
H(L , PM) = − lim 1/n Σ P(w1,n) log2 PM(w1,n)
w
n→∞
1,n
• Pero lo que no tenemos es precisamente un modelo del español... Sin
embargo, lo podemos estimar a través de una muestra suficientemente larga!
H(L , PM) = − lim 1/n Σ log2 PM(w1,n)
w
n→∞
1,n
• Si lo que queremos comparar es entre diferentes modelos, tan sólo nos
interesa aquel que tenga la menor cross-entropía (P(w1,n) es el mismo para
todos los modelos). Se require que cualquier muestra del lenguaje, si es
suficientemente larga es “perfecta”: el lenguaje es ergódico.
EEL y evaluación de modelos
• Para crear modelos se requiere un corpus balanceado
• El modelo se crea con un fragmento del corpus (90%) y el resto (10%) se deja
para validar el modelo
• Para validar hay que medir las probabilidades reales del corpus de prueba
• En la evaluación el modelo tiene que asignar una probabilidad al corpus de
prueba similar a la probabilidad que éste realmente tiene.
• Si la selección del corpus para crear y evaluar el modelo es automática es
posible realizar una validación cruzada.
• Se requiere que cualquier muestra del lenguaje, si es suficientemente larga
sea “perfecta”: que el lenguaje sea ergódico.
EEL y evaluación de modelos
• Se requiere de un corpus real, de donde tomar datos para experimentación
• En inglés se cuenta con el “Brown corpus”
– Contiene aproximadamente 500 segmentos de 2000 palabras cada uno
– Segmentos por área:
•
•
•
•
•
•
•
•
•
Reportajes de prensa
Editoriales
Reviews de prensa
Religión
Habilidades y pasatiempos
Atractivos populares
Literatura
Micelaneos
Escritos eruditos
44
27
17
17
36
48
75
30
80
FIN
Descargar