¿Cuál es una explicación simple del algoritmo del modelo oculto de Markov?

Te voy a contar una historia. Una historia en la que se utiliza un Modelo de Markov Oculto (HMM) para atrapar a un ladrón incluso cuando no había testigos reales en la escena del crimen; te sorprenderá ver la aplicación heroica de HMM para unir astutamente dos secuencias de eventos aparentemente no relacionadas en esta búsqueda de la verdad .

La trama

George es el gerente del departamento de entrega de equipaje en el aeropuerto del aeropuerto de Barra (Escocia)

Gestionar este aeropuerto pequeño y poco visitado hubiera sido fácil si no fuera por las constantes peleas entre Bob y William, los que manejan el equipaje.
Bob y William siempre pelean por la carga de trabajo, que podría ser una maleta, una mochila o una bolsa.
Para resolver estas peleas de una vez por todas, George creó una lista de trabajo. “Este gallo de trabajo establecerá expectativas claras sobre la división del trabajo en el manejo del equipaje”, pensó.

Pero estaba equivocado, justo cuando quería sentarse y relajarse, una queja llega y cae en su regazo.
Falta un collar con diamantes en la maleta de una celebridad que aterrizó.
George sabe que este es el trabajo de Bob o William, pero ¿cómo podría atrapar al verdadero culpable?

“Esto es complicado” pensó, ya que ambos no confesarían y para empeorar las cosas, la grabación de CCTV se estableció solo en el área de reclamo de equipaje y no en el área de manejo de equipaje. Esto significa que no puede haber evidencia concluyente de quién tomó la maleta y la puso en el cinturón.

¿Cómo puede George culpar al culpable sin evidencia concluyente de quién cargó la maleta manipulada?

Ingenioso George aplica HMM

Discapacitado por la falta de evidencia concluyente, George recurre a la ciencia para explorar la posibilidad de encontrar una señal estadística que pueda apuntar con la aguja al principal sospechoso.

Lee sobre Hidden Markov Models (HMM).

El aprende que

Una de las aplicaciones de HMM es predecir la secuencia de cambios de estado, en función de la secuencia de observaciones”.

Aprende que HMM puede usarse para modelar un sistema que
1. Tiene estados internos finitos que generan un conjunto de eventos externos (observaciones)
2. Los cambios de estado internos son invisibles (ocultos) para un espectador fuera del sistema
3) El estado actual siempre depende del estado anterior inmediato solamente (proceso de Markov)

Voila! George rápidamente correlacionó su situación con un modelo HMM. George calcula que si las imágenes de CCTV del área de reclamo de equipaje se pueden considerar como la secuencia de observación, podría llenar el modelo y usarlo para exponer la secuencia ‘oculta’ en la que Bob y William habrían operado.

Además, William reemplaza a Bob cuando Bob pide un cambio de mano y viceversa. Al confiar solo en la última llamada de cambio, ¡Bob y William aparentemente estaban siguiendo el Proceso de Markov!

George ahora está emocionado ante la perspectiva de resolver el caso. Él crea un mapeo del HMM al escenario real que se parece a esto …

Habiendo relacionado los componentes básicos de HMM con su desafío, primero necesita encontrar una forma de poblar el HMM.

Para llenar completamente el modelo, necesita

1. Probabilidades de inicio: ¿cuáles son las posibilidades de comenzar en un estado? O, en otras palabras, ¿quién tenía más probabilidades de haber abierto el piso?

2. Probabilidades de emisión: ¿cuáles son las posibilidades de que ocurra una observación en un estado? ¿Cuáles son las posibilidades de decir ‘una bolsa siendo cargada por Bob’?

3. Probabilidades de transición de estado: ¿con qué frecuencia cambian los estados? ¿Qué posibilidades hay de que William le pida a Bob que se haga cargo?

Si bien HMM es crucial para resolver el caso, su función es solo modelar la situación. Sin embargo, para resolver el caso, necesitaría usar el HMM que crearía con el ‘Algoritmo de Viterbi’.

Usando el algoritmo de Viterbi, George podría descubrir la secuencia más probable de cambios de estado que causaron las observaciones.

Entonces, una vez que haya poblado el modelo, planeó usar el algoritmo de Viterbi para obtener la secuencia oculta en la que Bob y William operaron a partir de la secuencia de observación.

George ahora planea extraer información de la lista de trabajo para completar el modelo.

1. Probabilidades de inicio: ¿cuáles son las posibilidades de comenzar en un estado?

2. Probabilidades de transición de estado: ¿con qué frecuencia cambian los estados?

3. Probabilidades de emisión: en cualquier estado, ¿cuáles son las posibilidades de cada observación?

George ahora tiene la información crucial, el HMM, para acercarlo al culpable.

George ahora crea una secuencia de observación a partir de las imágenes de CCTV.

Secuencia de observación: secuencia en la que se observaron las emisiones causadas por los estados

Armado con cada pieza del rompecabezas, George ahora usa la implementación HMM y Viterbi, para armar el rompecabezas.

Finalmente llega a conocer la secuencia probable en la que operaron Bob y William.

Bob (piso abierto)> Bob (bolsa)> Bob ( maleta *)> Williams (mochila)

* Bob es acusado del robo.

¡CASO RESUELTO!

Referencias
1. Modelo oculto de Markov
2. Algoritmo de Viterbi


Esta es la imagen icónica de un modelo oculto de Markov. Hay algún estado (x) que cambia con el tiempo (markov). Y quieres estimarlo o rastrearlo. Lamentablemente, no puede observar directamente este estado (oculto). Esa es la parte oculta. Pero, puedes observar algo correlacionado con el estado (y).

Por ejemplo, supongamos que quiere saber si su esposa está molesta con usted (x). No puedes confiar en que ella te lo dirá porque, sinceramente, ni siquiera está segura de sí misma. ¿Está todo perdido? Realmente no. Puede ver cosas (y) que se correlacionan con su estado interno (x), como rechinar los dientes (y).

Ahora, rechinar los dientes (y) no necesariamente significa que esté enojada. Ella puede estar raspando a Cheetos de sus molares. Nuestro modelo necesita especificar la probabilidad de rechinar los dientes cuando está enojada y cuando no lo está. Esto se llama probabilidad de emisión y se representa mediante una línea de xay.

Digamos que estuvo rechinando los dientes durante cinco minutos. Estamos bastante seguros de que está enojada. Al momento siguiente se detiene. ¿Eso significa que está tranquila de repente? Probablemente no. ¿Qué hay de no rechinar los dientes durante una hora? Para tener en cuenta el tiempo, nuestro modelo necesita algo más. Debe especificar la probabilidad de que se mantenga enojada, se calme, se enoje o mantenga la calma de un minuto a otro. Eso se llama probabilidad de transición y se representa mediante una línea desde un nodo x al siguiente.

Como puede ver, este es un modelo simple y potencialmente expresivo para sistemas dinámicos como el seguimiento de objetos celestes (los filtros Kalman son HMM), el reconocimiento de voz y la gestión de las relaciones con los clientes.

¡Espero que haya sido útil! (¡Amo a mi esposa!)

Bueno, para ser justos, esto realmente depende de tu madre 😛 Suponiendo que las alturas de la jerga matemática en el diccionario ‘la mamá’ es ‘probabilidad’, intentemos explicar probabilísticamente qué hay para el postre según el clima de hoy. Digamos que la mamá puede hacer 3 tipos de postres: pastel de chocolate fundido, batido de fresa y helado de caramelo. Y supongamos que cada día de la semana se puede clasificar como uno de los siguientes: lluvioso, seco o caluroso. Pero no tenemos forma de determinar qué tipo de día es.

Queremos desarrollar un modelo que prediga qué postre preparará la madre en un día en particular, si conocemos la secuencia de postres que ha estado preparando durante el último mes (digamos). Para abreviar la larga historia, las observaciones (los postres de la madre) dependen de algún proceso que está oculto a nuestra vista (el clima).

Suponemos que el clima de cada día depende y solo del clima del día anterior. De esta manera, la secuencia de descripción del clima resulta ser una cadena de Markov. La probabilidad del clima de hoy, dado que sabemos que el clima de ayer forma la ‘probabilidad de transición’ de la Cadena de Markov. Por ejemplo, si ayer llovió, las probabilidades del clima de hoy pueden ser 0.5 para lluvia, 0.3 para frío y 0.2 para seco. La matriz formada al tomar todas esas probabilidades se llama matriz de probabilidad de transición.

Ahora, sabemos que el postre de mamá depende del clima de cada día. Por ejemplo, si llueve, es más probable que mamá prepare pastel de chocolate fundido. Por lo tanto, las probabilidades pueden ser 0.7 para pastel de chocolate fundido, 0.2 para pastel de fresa y 0.1 para helado. Construimos una matriz que contiene todas esas probabilidades para todas las condiciones climáticas. Esta matriz se llama ‘matriz de probabilidad de emisión’.

Hay tres preguntas que pueden surgir de este escenario y las respuestas a las tres se pueden obtener usando la probabilidad:

1. Como expliqué anteriormente, si conocemos la secuencia de observaciones (postres), ¿cuál es la probabilidad de que un postre en particular (digamos un helado) pueda prepararse en un día en particular?

2. Si conocemos la secuencia de observaciones (postres), ¿cuál es la secuencia más probable de condiciones climáticas que explicaría mejor la secuencia de postres?

3. Si conocemos la secuencia de condiciones climáticas y la secuencia de postres, ¿cómo podemos llegar a los valores más probables para la matriz de probabilidad de transición, la matriz de probabilidad de emisión y la matriz inicial *? (* esto es simplemente la probabilidad de que el primer día de la secuencia sea lluvioso / seco / caluroso.

La primera pregunta puede responderse utilizando el ‘algoritmo de avance-retroceso’ (de hecho, para esta pregunta solo el algoritmo de avance es suficiente). La segunda pregunta puede abordarse utilizando el algoritmo de Viterbi y la tercera utilizando el algoritmo de maximización de expectativas. ¿La mamá necesita más explicaciones?

Usted es maestro, pida a 3 estudiantes de su clase que elijan sus teléfonos y hagan varias (digamos 5) grabaciones de voz de la misma declaración / oración en el mismo idioma. Recopile los archivos de audio 5 x 3 = 15 …, mézclelos, envíelos a su algoritmo basado en HMM y distinguirá automáticamente los archivos que pertenecen a cada uno de los 3 estudiantes, podrá separar los archivos en 3 diferentes carpetas que contienen 5 grabaciones por alumno.

El secreto es que todos registraron la misma oración, por lo tanto, puede explotar la secuencia de estados propiedad de HMM.

Esto es parte de por qué HMM es uno de los algoritmos más utilizados en los sistemas de reconocimiento de voz.

Creo que esta es probablemente una de las explicaciones más simples para los modelos de Markov y los modelos ocultos de Markov disponibles en línea: http://www.fejes.ca/EasyHMM.html
Explica este tema, que requiere antecedentes en redes bayesianas y probabilidad sin ninguna fórmula matemática 🙂

Otro enlace de la Universidad de Otago (un poco más complicado que el anterior) explica HMM con conceptos básicos de probabilidad e implementación ingenua de C / C ++: http://www.cs.otago.ac.nz/cosc348/hmm/hmm.pdf

Dibuja una gráfica simple en papel. Con algunos nodos y algunos bordes dirigidos, flechas simples. Pídales que realicen algunas caminatas aleatorias en el gráfico para acostumbrarse a recorrerlo al azar. Comience en un nodo aleatorio, siga enlaces aleatorios, hágalo varias veces.

Ahora introduce probabilidades a cada borde, asegurándote de que todos los bordes de cada nodo sumen 1. Puedes usar caras de dados para esto, por ejemplo, si el dado es 1,2 o 3, vamos de A a B, si es 4 o 5 vamos de A a C y si es un 6 vamos de A a A (nos quedamos). Ahora haz que naveguen al azar por el gráfico usando un dado.

Ese es un modelo de Markov. Introducir el concepto de un modelo oculto de Markov ahora es fácil, cada nodo en su gráfico representa algún estado o actividad. Cosas como “hacer la compra”, “ir al gimnasio”, etc.

Déles una lista de “estados” y pregúnteles qué rutas en el gráfico los representarían, qué tan probable es cada secuencia …

Desde allí, estás a solo 1 paso de Viterbi y solo hemos usado bolígrafo, papel y dados.

considere un modelo de Markov con dos estados y seis posibles emisiones. El modelo usa:

  • Un dado rojo, que tiene seis lados, etiquetados del 1 al 6.
  • Un dado verde, que tiene doce lados, cinco de los cuales están etiquetados del 2 al 6, mientras que los siete lados restantes están etiquetados como 1.
  • Una moneda roja ponderada, para la cual la probabilidad de cara es .9 y la probabilidad de cruz es .1.
  • Una moneda verde ponderada, para la cual la probabilidad de cara es .95 y la probabilidad de cruz es .05.

El modelo crea una secuencia de números del conjunto {1, 2, 3, 4, 5, 6} con las siguientes reglas:

  • Comience tirando el dado rojo y escribiendo el número que aparece, que es la emisión.
  • Lanza la moneda roja y realiza una de las siguientes acciones: Si el resultado es cara, tira el dado rojo y escribe el resultado. Si el resultado es cruz, tira el dado verde y escribe el resultado.
  • En cada paso posterior, lanzas la moneda que tiene el mismo color que el dado que lanzaste en el paso anterior. Si la moneda sale cara, tira el mismo dado que en el paso anterior. Si la moneda sale cruz, cambie al otro dado.

El diagrama de estado para este modelo tiene dos estados, rojo y verde, como se muestra en la siguiente figura.

Usted determina la emisión de un estado tirando el dado con el mismo color que el estado. Usted determina la transición al siguiente estado volteando la moneda con el mismo color que el estado.

Escribí un buen tutorial sobre el tema en términos simples Cadenas de Markov – Explicado

More Interesting

¿Cuál es la diferencia entre los algoritmos de Dijkstra, Kruskal y Prim?

Dada la secuencia creciente, en cada paso puede elegir 2 elementos consecutivos, reemplazarlos con su suma y no puede elegir el último elemento, ¿cuál es el número máximo de movimientos que puede hacer para que la secuencia siga aumentando?

¿Cuáles son los algoritmos propuestos para la detección de revisiones falsas en el análisis de sentimientos?

¿Existen algoritmos que puedan determinar la convergencia o la falta de ella para cualquier serie arbitraria que se pueda expresar en notación de suma estándar?

¿Debería usar la función de clasificación () incorporada de C ++ para problemas en la programación competitiva, o debería implementar el algoritmo por mi cuenta?

Cómo desglosar un problema y resolverlo con el uso de la programación Java

Cómo entender algoritmos complejos de aprendizaje automático

Cómo utilizar el algoritmo Hidden Markov Model Viterbi para el etiquetado de secuencias

Visión por computadora: ¿cuáles son los documentos de lectura obligatoria para el algoritmo de seguimiento de objetos?

Al modelar un autómata determinista de estado finito, ¿qué algoritmo de recorrido gráfico debe usarse?

¿Cuál es la diferencia entre los algoritmos Reheap up y Reheap down?

¿A los programadores les gustan las funciones recursivas? ¿Por qué o por qué no?

¿Cómo ordenar un millón de números en tiempo de registro usando la solución Norman Hardy?

¿Qué esquema o algoritmo de compresión se usa en el formato de video 4K?

¿Cómo justificamos la selección de un algoritmo de aprendizaje particular para la clasificación?