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

18

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

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

¿Qué sucede cuando tengo múltiples secuencias de entrenamiento? ¿Debo ejecutarlos secuencialmente, entrenando al modelo después del otro?

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

Corrió
fuente
Vea este documento en pdfs.semanticscholar.org/4000/... Aunque extienden las ideas a un escenario de observaciones no independientes, fue bastante útil para mí comprender el caso simple en el que se supone indep
Marc Torrellas
La hmmlearnimplementación de HMM ya ha soportado la formación de HMM con múltiples secuencias. Solo vea entrenar HMM con múltiples secuencias
Wenmin Wu

Respuestas:

16

Ni concatenar ni ejecutar cada iteración de entrenamiento con una secuencia diferente es lo correcto. El enfoque correcto requiere alguna explicación:

Por lo general, uno entrena un HMM usando un algoritmo EM. Esto consiste en varias iteraciones. Cada iteración tiene un paso "estimar" y un paso "maximizar". En el paso "maximizar", alinea cada vector de observación x con un estado s en su modelo para que se maximice alguna medida de probabilidad. En el paso "estimación", para cada estado s, usted estima (a) los parámetros de un modelo estadístico para los vectores x alineados con sy y (b) las probabilidades de transición de estado. En la siguiente iteración, el paso de maximización se ejecuta nuevamente con los modelos estadísticos actualizados, etc. El proceso se repite varias veces o cuando la medida de probabilidad deja de aumentar significativamente (es decir, el modelo converge a una solución estable). Finalmente, (al menos en reconocimiento de voz) un HMM típicamente tendrá un "inicio" designado

Entonces, si tiene múltiples secuencias de entrenamiento, en el paso de estimación debe ejecutar cada secuencia para que su vector de observación inicial se alinee con el estado inicial. De esa manera, las estadísticas sobre ese estado inicial se recopilan de las primeras observaciones sobre todas sus secuencias de observación, y en general los vectores de observación están alineados con los estados más probables en cada secuencia. Solo haría el paso de maximizar (y las iteraciones futuras) después de que se hayan proporcionado todas las secuencias para el entrenamiento. En la próxima iteración, harías exactamente lo mismo.

Al alinear el inicio de cada secuencia de observación con el estado inicial, evita el problema de concatenar secuencias en las que estaría modelando incorrectamente las transiciones entre el final de una secuencia y el comienzo de la siguiente. Y al usar todas las secuencias en cada iteración, evita proporcionar secuencias diferentes para cada iteración, lo que, como señaló el respondedor, no garantizará la convergencia.

JeffM
fuente
¿Requiere este método que cada secuencia de entrenamiento tenga la misma longitud?
Nate
2
No lo hace Por lo general, se diseña un HMM para permitir bucles automáticos (el mismo estado se usa varias veces consecutivas) y para permitir múltiples estados a los que hacer la transición. Estas características permiten que un HMM puntúe secuencias de diferentes longitudes.
JeffM
4

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

RIA Davis et. Alabama. proporciona algunas sugerencias adicionales en este documento .

No he estudiado a fondo las matemáticas, pero para mí el enfoque de Rabiner parece el más prometedor, mientras que el enfoque de Davis parece carecer de la base matemática.

Bittenus
fuente
2

Si sigues las matemáticas, agregar ejemplos de entrenamiento adicionales implica recalcular la forma en que calculas la probabilidad. En lugar de sumar sobre dimensiones, también sumas sobre ejemplos de entrenamiento.

Si entrena un modelo después del otro, no hay garantía de que el EM vaya a cubrir todos los ejemplos de entrenamiento, y terminará con malas estimaciones.

Aquí hay un documento que hace eso para el filtro de Kalman (que es un HMM con probabilidades gaussianas), puede darle una idea de cómo modificar su código para que pueda admitir 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.

Leon palafox
fuente
1
Realmente no vi a qué te refieres. ¿Puedes señalarme en la dirección correcta? Gracias.
Corrió el
0

Este es más un comentario sobre el documento de RIA Davis al que Bittenus hace referencia (arriba) . Tendré que estar de acuerdo con Bittenus, no hay mucho respaldo matemático detrás de las técnicas propuestas en el documento; es más una comparación empírica.

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

RIA Davis detalló otro tipo de entrenamiento de promediación de modelos en un artículo de revista y utiliza el Entrenamiento Vitterbi en lugar de Baum-Welch Comparando y evaluando algoritmos de entrenamiento de conjunto HMM usando los criterios de entrenamiento y prueba y número de condición . Sin embargo, este documento solo explora los HMM con la misma topología de avance restringida. (Planeo explorar este método y actualizaré esta publicación con mis hallazgos).

kgierach
fuente