23 votos

Entrenamiento de un modelo de Markov oculto, múltiples instancias de entrenamiento

He implementado un HMM discreto siguiendo este tutorial http://cs229.stanford.edu/section/cs229-hmm.pdf

Este tutorial y otros hablan siempre de entrenar un HMM dada una secuencia de observación.

¿Qué ocurre cuando tengo varias secuencias de entrenamiento? ¿Debo ejecutarlas secuencialmente, entrenando el modelo uno tras otro?

Otra opción es concatenar las secuencias en una y entrenar con ella, pero entonces tendré transiciones de estado desde el final de una secuencia hasta el comienzo de la siguiente que no son reales.

18voto

gojomo Puntos 171

Ni concatenar ni ejecutar cada iteración del entrenamiento con una secuencia diferente es lo correcto. El enfoque correcto requiere algunas explicaciones:

Normalmente se entrena un HMM utilizando un Algoritmo E-M . Consta de varias iteraciones. Cada iteración tiene un paso de "estimación" y otro de "maximización". En el paso de "maximización", se alinea cada vector de observación x con un estado s del modelo de forma que se maximice alguna medida de verosimilitud. En el paso de "estimación", para cada estado s, se estiman (a) los parámetros de un modelo estadístico para los vectores x alineados con s y (b) las probabilidades de transición de estado. En la siguiente iteración, la etapa "maximizar" se ejecuta de nuevo con los modelos estadísticos actualizados, etc. El proceso se repite un número determinado de veces o cuando la medida de verosimilitud deja de aumentar significativamente (es decir, el modelo converge a una solución estable). Por último, (al menos en el reconocimiento del habla) un HMM suele tener un estado "inicial" designado que se alinea con la primera observación de la secuencia de observación y tiene una topología "de izquierda a derecha", de modo que una vez que se abandona un estado no se vuelve a él.

Por lo tanto, si tiene varias secuencias de entrenamiento, en el paso de estimación debe ejecutar cada secuencia de modo que su vector de observación inicial se alinee con el estado inicial. De esa manera, las estadísticas sobre ese estado inicial se recogen de las primeras observaciones sobre todas sus secuencias de observación, y en general los vectores de observación se alinean con los estados más probables a lo largo de cada secuencia. Usted sólo haría el paso maximizar (y futuras iteraciones) después de se han proporcionado todas las secuencias para la formación. En la siguiente iteración, se haría exactamente lo mismo.

Al alinear el comienzo de cada secuencia de observación con el estado inicial, se evita el problema de concatenar secuencias en las que se modelan incorrectamente las transiciones entre el final de una secuencia y el comienzo de la siguiente. Además, al utilizar todas las secuencias en cada iteración, se evita proporcionar secuencias diferentes en cada iteración, lo que, como señala el autor de la pregunta, no garantiza la convergencia.

4voto

D R Lunsford Puntos 19

Lawrence Rabiner describe un planteamiento matemáticamente bien fundado en este tutorial de IEEE 77 . El tutorial es también el capítulo 6 del libro Fundamentos del reconocimiento de voz por Rabiner y Juang.

R.I.A Davis et. al. ofrece algunas sugerencias adicionales en este documento .

No he repasado a fondo las matemáticas, pero a mí el planteamiento de Rabiner me parece el más prometedor, mientras que el de Davis parece carecer de base matemática.

2voto

mixed_signal_old Puntos 191

Si nos atenemos a las matemáticas, añadir ejemplos de entrenamiento adicionales implica recalcular la forma de calcular la probabilidad. En lugar de sumar las dimensiones, también se suman los ejemplos de entrenamiento.

Si se entrena un modelo tras otro, no hay garantía de que el ME vaya a cubrir cada ejemplo de entrenamiento, y se acabará con estimaciones erróneas.

Aquí hay un artículo que hace eso para el Filtro Kalman (que es un HMM con Probabilidades Gaussianas), puede darte una idea de cómo modificar tu código para que pueda soportar más ejemplos.

http://ntp-0.cs.ucl.ac.uk/staff/S.Prince/4C75/WellingKalmanFilter.pdf

También tiene una conferencia sobre HMM, pero la lógica es bastante sencilla.

0voto

amyassin Puntos 216

Se trata más bien de un comentario sobre el documento de RIA Davis al que hace referencia Bittenus (arriba) . Estoy de acuerdo con Bittenus en que las técnicas propuestas en el artículo no tienen mucho fundamento matemático, sino que se trata más bien de una comparación empírica.

El documento sólo considera el caso en el que el HMM es de topología restringida (feed-forward). (En mi caso tengo una topología estándar, y encontré los resultados más consistentes implementando un promedio no ponderado de todos los modelos entrenados con Baum-Welch. Este enfoque se menciona en el artículo, pero sólo se cita con resultados marginales).

Otro tipo de formación de promediado de modelos fue detallado por RIA Davis en un artículo de revista y utiliza la Formación Vitterbi en lugar de Baum-Welch Comparación y evaluación de algoritmos de entrenamiento de conjuntos HMM mediante los criterios de entrenamiento y prueba y número de condiciones . Sin embargo, este artículo sólo explora los HMM con la misma topología de avance restringida. (Tengo previsto explorar este método y actualizaré este post con mis hallazgos).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X