¿Cuáles son las diferencias entre el algoritmo de Baum-Welch y el entrenamiento de Viterbi?

18

Actualmente estoy usando el entrenamiento de Viterbi para un problema de segmentación de imágenes. Quería saber cuáles son las ventajas / desventajas de usar el algoritmo Baum-Welch en lugar del entrenamiento de Viterbi.

Gal digital
fuente
3
¿Qué quieres decir con "entrenamiento de viterbi" exactamente?
bmargulies
2
En mi problema, tengo una serie de datos valorados reales que estoy modelando como HMM (especialmente una mezcla de funciones de densidad múltiple, cada una con parámetros desconocidos). Por ahora supongo que conozco las probabilidades de transición de estado. Lo que quiero decir con Viterbi Trainig es el siguiente algoritmo. 1) Asigna arbitrariamente un estado a cada punto de datos (inicialización) 2) Realiza MLE de los parámetros de la función de densidad. 3) Vuelva a estimar el estado para cada punto (se puede hacer con Viterbi Alg). 4) Vaya al paso 2 y repita a menos que se cumplan los criterios de detención.
Digital Gal
1
Se hizo la misma pregunta sobre el desbordamiento de la pila: entrenamiento viterbi vs algoritmo baum-welch
Franck Dernoncourt

Respuestas:

21

El algoritmo de Baum-Welch y el algoritmo de Viterbi calculan cosas diferentes.

Si conoce las probabilidades de transición para la parte oculta de su modelo, y las probabilidades de emisión para las salidas visibles de su modelo, entonces el algoritmo de Viterbi le brinda la secuencia completa más probable de estados ocultos condicionales tanto a sus salidas como a la especificación de su modelo.

El algoritmo de Baum-Welch le brinda tanto las probabilidades de transición ocultas más probables como el conjunto más probable de probabilidades de emisión dados solo los estados observados del modelo (y, generalmente, un límite superior en el número de estados ocultos). También obtienes los puntos de mayor probabilidad "puntiagudos" en los estados ocultos, que a menudo es ligeramente diferente de la secuencia oculta única que es más probable en general.

Si conoce su modelo y solo quiere los estados latentes, entonces no hay razón para usar el algoritmo Baum-Welch. Si no conoce su modelo, no puede usar el algoritmo de Viterbi.

Editado para agregar: Ver el comentario de Peter Smit; Hay cierta superposición / vaguedad en la nomenclatura. Un poco de lectura me llevó a un capítulo de Luis Javier Rodríguez e Inés Torres en "Reconocimiento de patrones y análisis de imágenes" (ISBN 978-3-540-40217-6, pp 845-857) que discute las compensaciones de velocidad versus precisión de Los dos algoritmos.

Brevemente, el algoritmo de Baum-Welch es esencialmente el algoritmo de Expectación-Maximización (EM) aplicado a un HMM; como un algoritmo estricto de tipo EM, está garantizado que convergerá al menos a un máximo local, por lo que para problemas unimodales encuentre el MLE. Sin embargo, requiere dos pases sobre sus datos para cada paso, y la complejidad se vuelve muy grande en la longitud de los datos y el número de muestras de entrenamiento. Sin embargo, terminas con la probabilidad condicional completa de tus parámetros ocultos.

El algoritmo de entrenamiento de Viterbi (en oposición al "algoritmo de Viterbi") se aproxima al MLE para lograr una ganancia de velocidad a costa de la precisión. Segmenta los datos y luego aplica el algoritmo de Viterbi (como lo entendí) para obtener la secuencia de estado más probable en el segmento, luego usa esa secuencia de estado más probable para reestimar los parámetros ocultos. Esto, a diferencia del algoritmo de Baum-Welch, no proporciona la probabilidad condicional completa de los parámetros ocultos, y por lo tanto termina reduciendo la precisión y ahorrando un tiempo de cálculo significativo (el capítulo informa de 1 a 2 órdenes de magnitud).

Rico
fuente
77
Si estoy en lo cierto, puedes mezclar el entrenamiento de Viterbi y la decodificación de Viterbi.
Peter Smit
1
Tienes razón. No sabía que había un procedimiento que usaba solo el algoritmo de Viterbi para calcular las probabilidades de transición también. Parece, en lecturas posteriores, que hay una cierta superposición de nomenclatura entre el tiempo discreto / análisis HMM de estado discreto y el análisis discreto de tiempo / estado continuo utilizando distribuciones de mezclas gaussianas. Mi respuesta habla de la configuración DTDS HMM, y no de la configuración del modelo mixto.
Rico
@Rich: ¿Podría indicarme algún material accesible (como el tutorial HMM original de Rabiner) sobre el entrenamiento de Viterbi?
Jacob
44
El entrenamiento de @Jacob Viterbi también se conoce con el nombre de Segmental K-Means, vea este documento de Juang y Rabiner.
alto
1
@Anoldmaninthesea. Mirar las probabilidades entre épocas es la forma normal de evaluar la convergencia (la probabilidad siempre debe aumentar en cada época y luego detenerse cuando haya alcanzado un máximo local). La otra cosa que puede hacer es detenerse temprano monitoreando la probabilidad de que los datos no se usen durante EM.
alto
0

Adelante-atrás se usa cuando quieres contar 'cosas invisibles'. Por ejemplo, cuando se usa EM para mejorar un modelo a través de datos no supervisados. Creo que el artículo de Petrov es un ejemplo. En la técnica en la que estoy pensando, primero entrena un modelo con datos anotados con anotaciones bastante burdas (por ejemplo, una etiqueta para 'Verbo'). Luego se divide arbitrariamente la masa de probabilidad para ese estado en dos cantidades ligeramente desiguales, y se vuelve a entrenar, corriendo hacia adelante y hacia atrás para maximizar la probabilidad redistribuyendo la masa entre los dos estados.

bmargulies
fuente