Algoritmo de Baum-Welch - Baum–Welch algorithm

En ingeniería eléctrica , computación estadística y bioinformática , el algoritmo de Baum-Welch es un caso especial del algoritmo EM utilizado para encontrar los parámetros desconocidos de un modelo de Markov oculto (HMM). Utiliza el algoritmo hacia adelante y hacia atrás para calcular las estadísticas del paso de expectativa.

Historia

El algoritmo de Baum-Welch lleva el nombre de sus inventores Leonard E. Baum y Lloyd R. Welch . El algoritmo y los modelos de Hidden Markov se describieron por primera vez en una serie de artículos de Baum y sus colegas del Instituto de Análisis de Defensa a fines de la década de 1960 y principios de la de 1970. Una de las primeras aplicaciones importantes de los HMM fue el campo del procesamiento de voz . En la década de 1980, los HMM surgieron como una herramienta útil en el análisis de información y sistemas biológicos y, en particular, de la información genética . Desde entonces se han convertido en una herramienta importante en el modelado probabilístico de secuencias genómicas.

Descripción

Un modelo de Markov oculto describe la probabilidad conjunta de una colección de variables aleatorias discretas " ocultas " y observadas. Se basa en el supuesto de que la i -ésima variable oculta dada la ( i - 1) -ésima variable oculta es independiente de las variables ocultas anteriores, y las variables de observación actuales dependen solo del estado oculto actual.

El algoritmo de Baum-Welch utiliza el conocido algoritmo EM para encontrar la estimación de máxima verosimilitud de los parámetros de un modelo de Markov oculto dado un conjunto de vectores de características observados.

Sea una variable aleatoria oculta discreta con valores posibles (es decir, asumimos que hay estados en total). Suponemos que es independiente del tiempo , lo que conduce a la definición de la matriz de transición estocástica independiente del tiempo.

La distribución del estado inicial (es decir, cuando ) viene dada por

Las variables de observación pueden tomar uno de los valores posibles. También asumimos que la observación dada el estado "oculto" es independiente del tiempo. La probabilidad de una determinada observación en el momento para el estado viene dada por

Teniendo en cuenta todos los valores posibles de y , obtenemos la matriz donde pertenece a todos los estados posibles y pertenece a todas las observaciones.

Una secuencia de observación viene dada por .

Por tanto, podemos describir una cadena de Markov oculta mediante . El algoritmo de Baum-Welch encuentra un máximo local para (es decir, los parámetros HMM que maximizan la probabilidad de la observación).

Algoritmo

Establecer con condiciones iniciales aleatorias. También se pueden configurar utilizando información previa sobre los parámetros si está disponible; esto puede acelerar el algoritmo y también dirigirlo hacia el máximo local deseado.

Procedimiento de reenvío

Sea , la probabilidad de ver las observaciones y estar en estado en ese momento . Esto se encuentra de forma recursiva:

Dado que esta serie converge exponencialmente a cero, el algoritmo se subdesbordará numéricamente para secuencias más largas. Sin embargo, esto se puede evitar en un algoritmo ligeramente modificado escalando en el procedimiento hacia adelante y hacia atrás a continuación.

Procedimiento hacia atrás

Sea esa la probabilidad de la secuencia parcial final dado el estado inicial en el momento . Calculamos como,

Actualizar

Ahora podemos calcular las variables temporales, según el teorema de Bayes:

que es la probabilidad de estar en estado en el momento dada la secuencia observada y los parámetros

que es la probabilidad de estar en estado y en momentos y, respectivamente, dada la secuencia y los parámetros observados .

Los denominadores de y son los mismos; representan la probabilidad de realizar la observación dados los parámetros .

Los parámetros del modelo oculto de Markov ahora se pueden actualizar:

que es la frecuencia esperada gastada en el estado en ese momento .

que es el número esperado de transiciones del estado i al estado j en comparación con el número total esperado de transiciones fuera del estado i . Para aclarar, el número de transiciones desde el estado i no significa transiciones a un estado diferente j , sino a cualquier estado, incluido él mismo. Esto es equivalente al número de veces que se observa el estado i en la secuencia de t  = 1 a t  =  T  - 1.

dónde

es una función indicadora, y es el número esperado de veces que las observaciones de salida han sido iguales mientras estaban en estado sobre el número total esperado de veces en estado .

Estos pasos ahora se repiten iterativamente hasta un nivel deseado de convergencia.

Nota: Es posible sobreajustar un conjunto de datos en particular. Es decir . El algoritmo también hace no garantiza un máximo global.

Varias secuencias

El algoritmo descrito hasta ahora asume una única secuencia observada . Sin embargo, en muchas situaciones, hay varias secuencias observadas: . En este caso, la información de todas las secuencias observadas debe ser utilizado en la actualización de los parámetros , y . Suponiendo que ha calculado y para cada secuencia , los parámetros ahora se pueden actualizar:

dónde

es una función indicadora

Ejemplo

Supongamos que tenemos una gallina de la que recolectamos huevos al mediodía todos los días. Ahora bien, si la gallina ha puesto huevos para la recolección o no, depende de algunos factores desconocidos que están ocultos. Sin embargo, podemos (para simplificar) suponer que solo hay dos estados que determinan si la gallina pone huevos. Ahora no conocemos el estado en el punto de partida inicial, no conocemos las probabilidades de transición entre los dos estados y no conocemos la probabilidad de que la gallina ponga un huevo dado un estado en particular. Para empezar, primero adivinamos las matrices de transición y emisión.

Transición
Estado 1 Estado 2
Estado 1 0,5 0,5
Estado 2 0,3 0,7
Emisión
Sin huevos Huevos
Estado 1 0,3 0,7
Estado 2 0,8 0,2
Inicial
Estado 1 0,2
Estado 2 0,8

Luego tomamos un conjunto de observaciones (E = huevos, N = sin huevos): N, N, N, N, N, E, E, N, N, N

Esto nos da un conjunto de transiciones observadas entre días: NN, NN, NN, NN, NE, EE, EN, NN, NN

El siguiente paso es estimar una nueva matriz de transición. Por ejemplo, la probabilidad de que la secuencia NN y el estado sea entonces viene dada por lo siguiente,

Secuencia observada Mayor probabilidad de observar esa secuencia si el estado es entonces Mayor probabilidad de observar esa secuencia
NN 0,024 = 0,2 * 0,3 * 0,5 * 0,8 0.3584 ,
NN 0,024 = 0,2 * 0,3 * 0,5 * 0,8 0.3584 ,
NN 0,024 = 0,2 * 0,3 * 0,5 * 0,8 0.3584 ,
NN 0,024 = 0,2 * 0,3 * 0,5 * 0,8 0.3584 ,
nordeste 0,006 = 0,2 * 0,3 * 0,5 * 0,2 0.1344 ,
EE 0,014 = 0,2 * 0,7 * 0,5 * 0,2 0.0490 ,
ES 0,056 = 0,2 * 0,7 * 0,5 * 0,8 0.0896 ,
NN 0,024 = 0,2 * 0,3 * 0,5 * 0,8 0.3584 ,
NN 0,024 = 0,2 * 0,3 * 0,5 * 0,8 0.3584 ,
Total 0,22 2,4234

Así, la nueva estimación para el que la transición está ahora (referido como "probabilidades Pseudo" en las siguientes tablas). Luego calculamos las probabilidades de transición hacia , hacia y hacia y las normalizamos para que se sumen a 1. Esto nos da la matriz de transición actualizada:

Matriz de transición antigua
Estado 1 Estado 2
Estado 1 0,5 0,5
Estado 2 0,3 0,7
Nueva matriz de transición (pseudoprobabilidades)
Estado 1 Estado 2
Estado 1 0.0598 0.0908
Estado 2 0.2179 0,9705
Nueva matriz de transición (después de la normalización)
Estado 1 Estado 2
Estado 1 0.3973 0,6027
Estado 2 0.1833 0.8167

A continuación, queremos estimar una nueva matriz de emisiones,

Secuencia observada La probabilidad más alta de observar esa secuencia
si se supone que E proviene de
Mayor probabilidad de observar esa secuencia
nordeste 0.1344 , 0.1344 ,
EE 0.0490 , 0.0490 ,
ES 0.0560 , 0.0896 ,
Total 0.2394 0.2730

La nueva estimación de E procedente de la emisión es ahora .

Esto nos permite calcular la matriz de emisión como se describe arriba en el algoritmo, sumando las probabilidades para las respectivas secuencias observadas. Luego repetimos para si N vino de y para si N y E vinieron y normalizamos.

Matriz de emisiones antigua
Sin huevos Huevos
Estado 1 0,3 0,7
Estado 2 0,8 0,2
Nueva matriz de emisiones (estimaciones)
Sin huevos Huevos
Estado 1 0.0404 0.8769
Estado 2 1,0000 0,7385
Nueva matriz de emisiones (después de la normalización)
Sin huevos Huevos
Estado 1 0.0441 0,9559
Estado 2 0.5752 0,4248

Para estimar las probabilidades iniciales asumimos que todas las secuencias comienzan con el estado oculto y calculamos la probabilidad más alta y luego se repite para . De nuevo, normalizamos para dar un vector inicial actualizado.

Finalmente repetimos estos pasos hasta que las probabilidades resultantes converjan satisfactoriamente.

Aplicaciones

Reconocimiento de voz

Los modelos ocultos de Markov fueron aplicados por primera vez al reconocimiento de voz por James K. Baker en 1975. El reconocimiento de voz continuo se produce mediante los siguientes pasos, modelados por un HMM. El análisis de características se realiza primero en características temporales y / o espectrales de la señal de voz. Esto produce un vector de observación. A continuación, la característica se compara con todas las secuencias de las unidades de reconocimiento de voz. Estas unidades pueden ser fonemas , sílabas o unidades de palabras completas. Se aplica un sistema de decodificación de léxico para restringir las rutas investigadas, por lo que solo se investigan las palabras del léxico del sistema (diccionario de palabras). De manera similar a la decodificación del léxico, la ruta del sistema está aún más limitada por las reglas de la gramática y la sintaxis. Finalmente, se aplica el análisis semántico y el sistema genera el enunciado reconocido. Una limitación de muchas aplicaciones HMM para el reconocimiento de voz es que el estado actual solo depende del estado en el paso de tiempo anterior, lo cual no es realista para el habla ya que las dependencias a menudo tienen varios pasos de tiempo de duración. El algoritmo de Baum-Welch también tiene amplias aplicaciones en la resolución de HMM utilizados en el campo de la síntesis de voz.

Criptoanálisis

El algoritmo de Baum-Welch se usa a menudo para estimar los parámetros de HMM para descifrar información oculta o ruidosa y, por lo tanto, se usa a menudo en criptoanálisis . En seguridad de datos, a un observador le gustaría extraer información de un flujo de datos sin conocer todos los parámetros de la transmisión. Esto puede implicar la ingeniería inversa de un codificador de canal . Los HMM y, como consecuencia, el algoritmo de Baum-Welch también se han utilizado para identificar frases habladas en llamadas VoIP cifradas. Además, el criptoanálisis de HMM es una herramienta importante para las investigaciones automatizadas de datos de tiempo de caché. Permite el descubrimiento automático del estado crítico del algoritmo, por ejemplo, valores clave.

Aplicaciones en bioinformática

Encontrar genes

Procariota

El software GLIMMER (Gene Locator and Interpolated Markov ModelER) fue un programa temprano de búsqueda de genes utilizado para la identificación de regiones codificantes en el ADN procariótico . GLIMMER utiliza modelos de Markov interpolados (IMM) para identificar las regiones codificantes y distinguirlas del ADN no codificante . Se ha demostrado que la última versión (GLIMMER3) tiene una mayor especificidad y precisión en comparación con sus predecesoras con respecto a la predicción de los sitios de inicio de la traducción, lo que demuestra una precisión promedio del 99% en la localización de ubicaciones 3 'en comparación con genes confirmados en procariotas.

Eucariota

El servidor web GENSCAN es un localizador de genes capaz de analizar secuencias eucariotas de hasta un millón de pares de bases (1 Mbp) de longitud. GENSCAN utiliza un modelo de Markov de quinto orden de tres períodos periódicos, no homogéneo, de regiones codificantes de ADN. Además, este modelo explica las diferencias en la densidad y estructura de genes (como las longitudes de los intrones) que ocurren en diferentes isocoros . Si bien la mayoría del software integrado de búsqueda de genes (en el momento del lanzamiento de GENSCAN) asumió que las secuencias de entrada contenían exactamente un gen, GENSCAN resuelve un caso general en el que hay genes parciales, completos o múltiples (o incluso ningún gen). Se demostró que GENSCAN predice exactamente la ubicación del exón con un 90% de precisión y un 80% de especificidad en comparación con una base de datos anotada.

Detección de variación de número de copias

Las variaciones en el número de copias (CNV) son una forma abundante de variación de la estructura del genoma en los seres humanos. Se utilizó un HMM bivariado de valor discreto (dbHMM) que asigna regiones cromosómicas a siete estados distintos: regiones no afectadas, deleciones, duplicaciones y cuatro estados de transición. La resolución de este modelo utilizando Baum-Welch demostró la capacidad de predecir la ubicación del punto de ruptura de la CNV a aproximadamente 300 pb a partir de experimentos de microarreglos . Esta magnitud de resolución permite correlaciones más precisas entre diferentes CNV y entre poblaciones de lo que era posible anteriormente, lo que permite el estudio de las frecuencias de la población de CNV. También demostró un patrón de herencia directo para una NVC en particular .

Implementaciones

Ver también

Referencias

enlaces externos