Curso de Inteligencia Artificial Modelos Ocultos de Markov Gibran Fuentes Pineda IIMAS, UNAM
Redes Bayesianas Representación gráfica de relaciones probabilísticas Relaciones causales entre variables aleatorias Grafo dirigido Nodos: una o más variables aleatorias Vertices: relaciones probabilísticas entre variables
Ejemplo Tifoidea Gripe Diarrea Fiebre Dolor
Cadena de Markov Proceso estocástico discreto Representa una secuencia de variables aleatorias Propiedad de Markov El siguiente estado depende únicamente del estado actual Máquina de estados donde las transiciones no son determinístas
Cadenas de Markov Primer orden P( x n x 1, x 2,, x n 1 )=P( x n x n 1 ) x 1 x 2 x 3 x 4 Segundo orden P( x n x 1, x 2,, x n 1 )=P (x n x n 1, x n 2 ) x 1 x 2 x 3 x 4
Modelos Ocultos de Markov Modela procesos estocásticos secuenciales No todas las variables son observables Nodos blancos representan variables ocultas. Nodos obscuros representan variables observadas z 1 z 2 z n z n+1 x 1 x 2 x n x n+1
El Problema Versión Alpha Una jarra mágica: Con 90 canicas rojas y 10 amarillas Cuál es la probabilidad de que la siguiente canica sea roja?
El Problema Versión Beta Tres jarras mágicas con etiquetas Con 90 canicas de un color y 10 de otro color Qué secuencia de jarras podrían generar la siguiente secuencia? A C B
El Problema Versión 1 Tres jarra mágicas con etiquetas Con 90 canicas de un color y 10 de otro color Cuál es la probabilidad de generar la siguiente secuencia? A C B
El Problema Versión 2 Tres jarra mágicas con etiquetas Con 90 canicas de un color y 10 de otro color Qué secuencia de jarras tiene mayor probabilidad de generar la siguiente secuencia? A C B
El Problema Versión 3 Tres jarra mágicas con etiquetas???? Qué cantidades debe haber en cada jarra para obtener las secuencias? A?? B C
Espacio de Muestreo Las canicas representan a una variable aleatoria, la cual diremos que la observamos X ={R=1, A=2,V =3} Las canicas representan otra variable aleatoria, la cual diremos que está oculta Y ={A=1, B=2,C =3} 1 2 3 1 2 3
Elementos del Problema Espacio de muestreo Ω={Ar, Aa, Av, Br, Ba, Bv,Cr,Ca,Cv} Probabilidades P(r A), P(a A), P( A A), P ( A B), P( A), P( B), P (C ) Independencias asumidas? La canica únicamente depende de la jarra que se saca La jarra de la que se saca depende de la que se saque antesra de la que se saca depende de la que se saque antes
Las Probabilidades El conjunto de distribuciones es conocido como el modelo o los parámetros del HMM P ( X Z )=Probabilidades de emisión B P (Z Z )=Probabilidades de transición A P (Z )=Probabilidades de ser estado inicial π Usualmente los representamos como Ω={A, B,π}
Modelando la Secuencia Ω={Todas las secuencias posibles } x 1, x 2,, x n z 1, z 2,, z n Os={x 1 x n1,, x 1, x no } Ψ={z 1, z 2,, z n } z 1 z 2 z n x 1 x 2 x n
Notación T = Tamaño de la secuencia de observación n = Número de estados m = Número de posibles salidas Z = Distintos estados del proceso X = Posibles observaciones A = Probabilidades de transición B = Probabilidades de observación π = Distribución de estado inicial O = Secuencia de observación
Los Tres Problemas 1.Calcular la probabilidad de una secuencia de observaciones P ( x 1, x 2, x n θ)
Los Tres Problemas 1.Calcular la probabilidad de una secuencia de observaciones P ( x 1, x 2, x n θ) 2. Obtener la secuencia de estados más probable correspondiente a una secuencia de observaciones max P (z 1, z 2, z n x 1, x 2, x n,θ)
Los Tres Problemas 1.Calcular la probabilidad de una secuencia de observaciones P ( x 1, x 2, x n θ) 2. Obtener la secuencia de estados más probable correspondiente a una secuencia de observaciones max P (z 1, z 2, z n x 1, x 2, x n,θ) 3.Dada una secuencia de observaciones, ajustar los parámetros del modelo tal que max P (Os θ)
Primer Problema Necesitamos calcular P ( x 1, x 2, x n θ)= Z ψ P( x 1, x 2, x n Ψ,θ) P (Ψ θ) Donde ψ representa una secuencia posible de estados
Complejidad del Problema Enumerar todas las secuencias de estados posibles Z, esto es, iterar en Z n veces Calcular P(Z) y P(O Z) esto es iterar 2 veces sobre n 2n Z n Exponencial con la longitud de la secuencia!!!!!
Alternativas Más Eficientes Podemos utilizar una técnica de programación dinámica En HMM se le conoce como el algoritmo forward La idea es utilizar un acumulador α para cada estado que lleve la cuenta de la probabilidad de llegar a ese estado
Algoritmo Forward z 1 α 11 α 12 α 1(n 1) α 1n z 2 α 21 α 22 α 2(n 1) α 2n z T α T1 α T2 α T (n 1) α Tn x 1 x 2 x n 1 x n α ij Probabilidad de llegar a un estado i en j pasos
Algoritmo Forward z 1 α 11 α 12 α 1n z 2 α 21 α 22 α 2n z T α T1 α T2 α Tn x 1 x 2 x n α i1 P (z i ) P ( x 1 z i )
Algoritmo Forward z 1 α 11 α 12 α 1n z 2 α 21 α 22 α 2n z T α T1 α T2 α Tn x 1 x 2 x n T α = ij k=1 α k ( j 1) P (z i z k ) P (x i z i )
Algoritmo Forward z 1 α 11 α 12 α 1n z 2 α 21 α 22 α 2n z T α T1 α T2 α Tn x 1 x 2 x n P( x 1, x 2,, x n )= k=1 T α kn
Complejidad del Algoritmo Iterar n veces Iterar en Z para calcular α: Z casos Iterar en α para calcular: Z casos T Z Z 2T Z Polinomial
Algoritmo Backward z 1 β 11 β 12 β 1(n 1) β 1n z 2 β 21 β 22 β 2(n 1) β 2n z T β T1 β T2 β T (n 1) β Tn x 1 x 2 x n 1 x n β ij Probabilidad de terminar del estado i en n-j pasos
Algoritmo Backward z 1 β 11 β 12 β 1n z 2 β 21 β 22 β 2n z T β T1 β T2 β Tn x 1 x 2 x n β i n =1
Algoritmo Backward z 1 α 11 α 12 α 1n z 2 α 21 α 22 α 2n z T α T1 α T2 α Tn x 1 x 2 x n T β = ij k =1 β k ( j+1) P( z k z i ) P ( x i+1 z k )
Algoritmo Backward z 1 β 11 β 12 β 1n z 2 β 21 β 22 β 2n z T β T1 β T2 β Tn x 1 x 2 x n T P( x 1, x 2,, x n )= k=1 β k1 P (x 1 z k )
Segundo Problema Buscamos calcular max P (z 1, z 2, z n x 1, x 2, x n,θ) Se usa el algoritmo de Viterbi Viterbi es similar a Forward o Backward Forward: α guarda la probabilidad máxima para llegar a un estado Backward: β guarda la probabilidad máxima para a partir de ese estado llegar al final El problema se conoce como secuencia óptima
Algoritmo Forward z 1 α 11 α 12 α 1(n 1) α 1n z 2 α 21 α 22 α 2(n 1) α 2n z T α T1 α T2 α T (n 1) α Tn x 1 x 2 x n 1 x n En lugar de sumar se aplica la operación max
Tercer Problema Existe un conjunto de secuencias Os y un número n de estados y queremos definir θ tal que La probabilidad de cada secuencia de Os sea la mayor, es decir, max P (Os θ)=max P (O i θ) En términos prácticos Os se conoce (por ej. La base de datos) El problema se le conoce de aprendizaje
Aprendizaje Automático Supervisado: la base de datos contiene secuencia de Xs y Ys asociadas entre sí {(A,r), (B,r), (C,v)} {(A,r), (C,v), (B,a)} Sin supervisión: sólo existen secuencias de Xs r, r, b r, v, a
Supervisado Fácil Contar las frecuencias para P(Z) = las veces que Z es inicial entre el número de ejemplos en el corpus P(Z Z) = las veces que un estado pasa de un estado a otro, entre las veces que ocurre el primero P(X Ζ) = Las veces que Z produce X entre las veces que ocurre Z
Sin Supervisión Un poco más difícil Ya que no existe método analítico Se trata de una optimización θ * =arg max θ Os = i=1 P (O i θ)
Algoritmo Baum-Welch oforward-backward Es un método iterativo, no encuentra la mejor solución pero da un máximo local Itera entre dos pasos Estimar probabilidades usando θ temporal Maximizar parámetros para obtener nuevos θ Es equivalente a EM
Esperanza Maximización Maximizar la esperanza de que los parámetros actuales generen tanto la secuencia observada como la secuencia oculta dada la secuencia oculta y parámetros anteriores θ * =arg max θ E [log(p (O, ψ θ)) O,θ i 1 ]
Esperanza Esa esperanza se le denomina Q cuando es expandida Q(θ,θ i 1 )= Ψ ψ P(O, Ψ θ) P (O Ψ,θ) i 1 La segunda parte de esa ecuación es el paso E Consiste en calcular probabilidad de variables ocultas dado parámetros temporales
Maximización Consiste en maximizar Q En el caso de HMM sustituimos el primer producto por una expresión analítica n P (O, Ψ θ)=p( z 1 θ) i=2 P(x i z i,θ) P( z i z i 1,θ) Y usando la técnica de lagrange y el hecho de las probabilidades suman zero, se maximiza la expresión
EM en Resumen Se inicia con ciertos valores (al azar) y se actualizan los valores iterativamente Se obtiene un estimador de máxima verosimilitud Encuentra parametros que maximizan la probabilidad de generar las observaciones dadas No se garantiza un máximo global pero puede encontrar máximos locales Relacionado con K-means
Aplicaciones de los HMMs En general se aplican a problemas que puedan representarse como una secuencia de observaciones y etiquetas Reconocedores del habla Análisis de DNA Robótica En procesamiento de lenguaje natural y lingüística computacional