Loading [MathJax]/extensions/TeX/mathchoice.js

2 votos

Cómo entrenar un modelo HMM con dos secuencias diferentes utilizando el algoritmo Baum-Wech

Estoy usando HMM para visualizar los gestos de bebida de diferentes tipos de recipientes.

Comencé a entrenar HMM con una secuencia correspondiente a un tipo de recipiente, pero ahora quiero visualizarlo con Python con diferentes tipos de recipientes.

¿Cómo puedo mapear diferentes secuencias en un solo modelo?

¿Para los datos de entrenamiento debo insertarlos como una sola secuencia (de diferentes tipos de recipientes)?

1voto

DR4GON Puntos 1

Me falta información sobre tu problema para una respuesta completa, pero asumiendo que tienes un número finito de contenedores conocidos que se pueden usar y que este número no es demasiado grande, aquí tienes lo que te sugeriría que comiences.

  • Reúne múltiples secuencias de entrenamiento para cada tipo de contenedor

  • Entrena un HMM para cada tipo de contenedor. Dependiendo de la naturaleza de tus muestras de secuencias (¿discretas? ¿valores continuos?), usa probabilidades de emisión discretas o gaussianas. Si tus secuencias siempre comienzan desde el "mismo momento" en la acción de beber, usar una topología de izquierda a derecha podría ser apropiado (para esto, a menudo solo necesitas inicializar la matriz de transición como una matriz triangular superior). Con Python, está la biblioteca hmmlearn que te proporciona las funciones necesarias para entrenar un HMM en todos los casos mencionados anteriormente (discreto, gaussiano, izquierda a derecha). Aquí está la documentación. (La documentación también explica cómo manejar múltiples muestras de entrenamiento.)

  • Una vez que tengas un HMM entrenado para cada tipo de contenedor, una nueva secuencia puede ser clasificada calculando su probabilidad con respecto a cada HMM. Mientras más alta sea este valor, más probable es que la secuencia pertenezca a esta clase. Esta probabilidad se puede calcular usando un algoritmo hacia adelante que se describe de manera muy simple en este paper como la "Solución al primer Problema" (en la página 5). (En caso de que el enlace desaparezca algún día, el paper es: An introduction to hidden Markov models, por Rabiner and Juang, en la revista ASSP Magazine (1986))

Por tu comentario siento que malentendiste cómo utilizar múltiples secuencias en el entrenamiento de HMMs. ¡La idea no es entrenar o re-entrenar el modelo para cada secuencia! El procedimiento de entrenamiento se realiza solo una vez. Usar múltiples secuencias para este entrenamiento evitará el sobreajuste y hará que el modelo sea más robusto a la variación natural de datos de una misma clase. Desde mi experiencia personal, todas las bibliotecas que implementan HMMs permiten pasar múltiples secuencias para el entrenamiento.

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