Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM Maestrı́a en Bioinformática Probabilidad y Estadı́stica: Clase 13 Gustavo Guerberoff gguerber@fing.edu.uy Facultad de Ingenierı́a Universidad de la República Mayo de 2010 Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM Contenidos 1 Hidden Markov Models (HMM): Continuación Algoritmo de Viterbi 1 Estimación de parámetros en HMM Método de Baum-Welch Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM Hidden Markov Models (HMM) Un HMM queda especificado por: Una cadena de Markov con espacio de estados E y matriz de transición P. El alfabeto de sı́mbolos emitidos: A. La matriz de emisión de sı́mbolos: B. El estado inicial de la cadena: π. Denotamos con O = o1 , o2 , o3 . . . , oT a una secuencia de longitud T de sı́mbolos observados, y con Q = i1 , i2 , i3 . . . , iT a la correspondiente secuencia oculta de estados de la cadena. Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM i1 → i2 → i3 → . . . → iT ↓ ↓ ↓ ↓ o1 o2 o3 oT Recordemos que la probabilidad conjunta para cada par (Q, O) es: P(Q, O) = πi1 bi1 (o1 ) pi1 i2 bi2 (o2 ) . . . piT −1 iT biT (oT ). En la clase anterior vimos un algoritmo (el algoritmo forward) que permite calcular de manera eficiente P(O) = X P(O|Q)P(Q), Q para una secuencia de sı́mbolos observados, O. Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM Algoritmo de Viterbi Veremos a continuación un algoritmo (el algoritmo de Viterbi) que permite obtener de manera eficiente una secuencia de estados ocultos Q que maximiza P(Q|O). Recordemos que: P(Q|O) = P(Q, O) P(O) y observemos que P(O) es independiente de la secuencia Q, de manera que: argmaxQ P(Q|O) = argmaxQ P(Q, O). El algoritmo de Viterbi se divide en dos partes: en primer lugar se obtiene el valor máximo de P(Q, O) y posteriormente se construye explı́citamente un maximizador. Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM Parte A: Cálculo de máxQ P(Q, O). Para cada tiempo t (1 ≤ t ≤ T ) y para cada estado i ∈ E se introducen las siguientes cantidades: δt (i) = máx i1 ,i2 ,...,it−1 P(i1 , i2 , . . . , it−1 , it = i, o1 , o2 , . . . , ot ), con δ1 (i) = P(i1 = i, o1 ). Observación: Notar que: máx P(Q, O) = máx δT (i). Q i∈E Veremos ahora cómo se calculan las variables {δt (i)} de manera inductiva en t. Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM Paso inicial: (t = 1) Para cada i ∈ E calculamos: δ1 (i) = πi bi (o1 ). Paso inductivo: (t → t + 1) Para cada j ∈ E y t = 1, 2, . . . , T − 1 se cumple: δt+1 (j) = máx P(i1 , i2 , . . . , it , it+1 = j, o1 , o2 , . . . , ot , ot+1 ) i1 ,i2 ,...,it = máx máx P(i1 , i2 , . . . , it = i, o1 , o2 , . . . , ot ) pij bj (ot+1 ) i∈E i1 ,i2 ,...,it−1 = máx δt (i) pij bj (ot+1 ) i∈E Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM Parte B: Cálculo del maximizador. Una vez que se han obtenido las cantidades {δt (i)} se construye una secuencia maximizadora Q 0 = i10 , i20 , i30 . . . , iT0 procediendo de atrás hacia adelante de la siguiente manera: iT0 = argmaxi∈E δT (i). it0 = argmaxi∈E δt (i) pi i 0 , para cada t = 1, 2, . . . , T − 1. t+1 El algoritmo de Viterbi proporciona una manera eficiente y sencilla de computar la secuencia de estados más probable para una secuencia de observaciones. Para poder aplicar el algoritmo es necesario conocer las probabilidades de transición de la cadena, las probabilidades de emisión y el estado inicial. A continuación veremos cómo estimar estos parámetros a partir de una secuencia de observaciones. Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM Estimación de parámetros en HMM Suponemos que tenemos un conjunto de datos que han sido generados por un HMM con una cierta topologı́a determinada (esto es, se conocen la cantidad de estados de la cadena de Markov oculta y la estructura del grafo de esa cadena). A partir de las observaciones queremos estimar los parámetros de la cadena: las componentes del estado inicial (πi ), las componentes de la matriz de transición (pij ) y las componentes de la matriz de emisión (bi (a)). Un posible abordaje serı́a buscar el conjunto de parámetros que maximiza la función de verosimilitud para los datos observados. Como hay muchos parámetros en juego este abordaje se torna poco viable. A continuación veremos un algoritmo eficiente para obtener un juego de parámetros que maximizan localmente la verosimilitud. Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM Método de Baum-Welch Notación: O es una secuencia observada (o una familia de secuencias observadas) generada por un HMM. λ = (P, B, π) es el conjunto de parámetros que queremos estimar a partir de las observaciones. Idea del método de Baum-Welch: Se proponen valores iniciales para los parámetros: λ(in) = (P (in) , B (in) , π (in) ). Estos valores pueden elegirse con distribución uniforme o puede usarse cierta información a priori. A partir de estos valores y de las observaciones se recalculan los parámetros, obteniendo: λ(out) = (P (out) , B (out) , π (out) ). Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM Los nuevos parámetros aumentan la verosimilitud: P(O|λ(out) ) ≥ P(O|λ(in) ), con igualdad si y sólo si λ(out) = λ(in) . Se repite el procedimiento hasta alcanzar un máximo local de la verosimilitud o hasta que las diferencias entre los parámetros recalculados en dos pasos sucesivos sean despreciables. A continuación veremos cómo se recalculan los parámetros a partir de los valores iniciales. Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM A partir de las observaciones y de λ(in) se construyen las siguientes cantidades: (out) πi = proporción esperada de veces en las que el estado inicial es i, dado O, (out) pij = (out) (a) = bi E(Nij |O) , E(Ni |O) E(Ni (a)|O) , E(Ni |O) donde Nij es el número de veces en que it = i e it+1 = j para algún t; Ni es el número de veces en que it = i para algún t; y Ni (a) es el número de veces en que it = i y se emite el sı́mbolo a para algún t. Todas estas cantidades aleatorias no se observan directamente. Veremos ahora cómo se calculan los valores esperados de manera eficiente. Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM Cálculo de los valores esperados: La clave para obtener las cantidades anteriores de manera eficiente consiste en calcular: ξt (i, j) = P(it = i, it+1 = j|O), para cada i, j ∈ E y para cada t. Usando la definición de probabilidad condicional: ξt (i, j) = P(it = i, it+1 = j, O) . P(O) Las probabilidades del lado derecho se calculan usando los parámetros λ(in) = (P (in) , B (in) , π (in) ). P(O) se calcula, como vimos la clase pasada, usando las variables forward para los parámetros iniciales, α(in) (t, i). Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM Por otra parte: (in) P(it = i, it+1 = j, O) = α(in) (t, i) pij (in) bj (ot+1 ) β (in) (t + 1, j), donde: β(t, i) = P(ot+1 , ot+2 , . . . , oT |it = i), i ∈ E, t = 1, 2, . . . , T − 1, son las variables backward, que se computan de manera inductiva usando un algoritmo análogo al algoritmo forward (ver, por ejemplo, Ewens y Grant: Statistical Methods in Bioinformatics). Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM Una vez que se han calculado las cantidades ξt (i, j), para cada t y para cada i, j ∈ E, se calculan los valores esperados que (out) (out) (out) definen las cantidades (πi , pij , bi (a)) de la siguiente manera: P E(Nij |O) = t ξt (i, j). P P E(Ni |O) = t j∈E ξt (i, j). P P E(Ni (a)|O) = t:ot =a j∈E ξt (i, j). Hidden Markov Models (HMM): Continuación Estimación de parámetros en HMM Resumiendo: A partir de los valores iniciales de los parámetros, λ(in) , se obtienen los parámetros recalculados, λ(out) . Los parámetros recalculados son más verosı́miles que los iniciales. Se repite este procedimiento un número suficiente de veces hasta tener garantı́as de que se ha llegado a las proximidades de un máximo local de la función de verosimilitud. Hay paquetes estadı́sticos que realizan estos cálculos y proporcionan buenos estimadores para los parámetros.