PNL desde la entrada al combate real (6) Modelo de Markov oculto

PNL desde la entrada al combate real (6) Modelo de Markov oculto

Teoría básica

El modelo de Markov oculto es un proceso aleatorio doble: una cadena de Markov oculta con un cierto número de estados y un conjunto de funciones aleatorias explícitas. Desde la década de 1980, HMM se ha aplicado al reconocimiento de voz con gran éxito. En la década de 1990, HMM también se introdujo en el reconocimiento de caracteres por computadora y la tecnología central de comunicaciones móviles "detección de múltiples usuarios". HMM también ha comenzado a aplicarse en los campos de la bioinformática y el diagnóstico de fallas.

Descripción básica

El modelo oculto de Markov (HMM) es un modelo estadístico que se usa ampliamente en varias aplicaciones de procesamiento del lenguaje natural, como el reconocimiento de voz, el etiquetado automático de parte del discurso, la conversión de caracteres fonéticos, la gramática probabilística, etc. Después de un desarrollo a largo plazo, especialmente su aplicación exitosa en el reconocimiento de voz, se ha convertido en una herramienta estadística general.

Proceso de Markov

Veamos primero un ejemplo. Supongamos que un bebé de pocos meses hace tres cosas todos los días: jugar (estado de excitación), comer (estado de hambre) y dormir (estado de sueño). Estas tres cosas cambian en la dirección que se muestra en la siguiente figura:

img

Este es un proceso de Markov simple. Cabe señalar que esto es diferente de un sistema determinista. Cada transición es probabilística. El estado del bebé cambia con frecuencia y cambiará entre los dos estados a voluntad:

img

La flecha de la figura anterior indica la probabilidad de pasar de un estado a otro La probabilidad de dormir después de comer es de 0,7.

Como se puede ver en la figura anterior, la transición de un estado solo depende de los estados anteriores n. Cuando n toma 1, es la hipótesis de Markov. Esto conduce a la definición de cadena de Markov:

La cadena de Markov es una variable aleatoria Sl, ..., S T una serie (estado de conjunto), el rango de estas variables, es decir, el conjunto de todos sus valores posibles, se llama "espacio de estado", mientras que el valor de S T es Estado en el tiempo t . Si la distribución de probabilidad condicional de St +1 para el estado pasado es solo una función de St , entonces:

img

Aquí la pequeña x es un cierto estado en el proceso. La ecuación anterior se llama hipótesis de Markov.

La función anterior puede entenderse de la siguiente manera: Bajo la condición del "ahora" conocido, el "futuro" no depende del "pasado", o el "futuro" sólo depende del "ahora" conocido. Es decir, St + 1 solo está relacionado con St y no tiene nada que ver con St-n, 1 <n <t.

Una cadena de Markov con N estados tiene N2 transiciones de estado. La probabilidad de cada transición se denomina probabilidad de transición de estado, que es la probabilidad de pasar de un estado a otro. Todas las probabilidades N2 se pueden representar mediante una matriz de transición de estado:

img

Esta matriz indica que si el estado del bebé está comiendo en el momento t, la probabilidad de jugar, comer y dormir en el momento t + 1 es (0,2, 0,1, 0,7).

img

La suma acumulada de los datos en cada fila de la matriz es 1.

Modelo de Markov oculto

En muchos casos, el proceso de Markov no es suficiente para describir los problemas que encontramos, por ejemplo, no podemos saber directamente si el bebé tiene hambre o sueño, pero se puede inferir de otros comportamientos del bebé. Si el bebé está llorando, puede tener hambre; si está apático, puede tener sueño. A partir de esto, generaremos dos conjuntos de estados, uno es un conjunto de estados observables O y un conjunto de estados ocultos S. Uno de nuestros propósitos es predecir el estado oculto basado en el estado observable. Para simplificar la descripción, "jugaremos" este estado. Quitar, dejar que el bebé no solo coma y duerma todos los días, este también es el deseo común de la mayoría de los padres, el modelo es el siguiente:

img

Así, O = {Ocry, Otired, Ofind}, S = {Seat, Szzz}. Las probabilidades de los tres comportamientos observables de llanto, falta de energía y encontrar una madre en el estado de "comer (hambre)" son (0,7, 0,1, 0,2).

En el ejemplo anterior, la secuencia de estado observable y la secuencia de estado oculta están relacionadas probabilísticamente. Por tanto, podemos modelar este tipo de proceso como un proceso de Markov oculto y un conjunto de estados observables relacionados con el proceso de Markov oculto. Este es el modelo oculto de Markov.

El modelo de Markov oculto (modelo de Markov oculto, HMM) es un modelo estadístico que se utiliza para describir un proceso de Markov con parámetros desconocidos ocultos.

A través de la matriz de transición, sabemos cómo representar P (St + 1 = m | St = n) y cómo representar P (Ot | S) (el estado observado es equivalente a una estimación del estado verdadero oculto). En HMM usamos otra matriz:

img

Esta matriz se llama matriz de confusión. Las filas de la matriz representan estados ocultos, las columnas representan estados observables y la suma de los valores de probabilidad de cada fila de la matriz es 1. Entre ellos, en la primera fila y la primera columna, P (Ot = llorar | Pt = comer) = 0,7 Cuando el bebé tiene hambre, la probabilidad de llorar es de 0,7.

La matriz de confusión puede considerarse como otra hipótesis del modelo de Markov, la hipótesis de la independencia : se asume que la observación en cualquier momento depende solo del estado de la cadena de Markov en ese momento y no tiene nada que ver con otros estados de observación.

img

Definición formal del modelo HMM

Un HMM se puede representar mediante una tupla de 5 {N, M, π, A *, * B }, donde:

  • N representa el número de estados ocultos, o conocemos el valor exacto o adivinamos el valor;
  • M representa el número de estados observables, que se pueden obtener a través del conjunto de entrenamiento;
  • π = {πi} es la probabilidad de estado inicial, representa la probabilidad de ocurrencia de cada estado oculto al principio;
  • A = {aij} es la matriz de transición del estado oculto, la matriz N * N-dimensional representa la probabilidad de ocurrencia del primer estado al segundo estado;
  • B = {bij} es la matriz de confusión, y la matriz N * M representa la probabilidad de que ocurra cierta observación bajo la condición de cierto estado oculto.

Cada probabilidad en la matriz de transición de estado y la matriz de confusión es independiente del tiempo, es decir, cuando el sistema evoluciona, estas matrices no cambian con el tiempo. Para un HMM con N y M fijos, use λ = {π, A, B} para representar los parámetros del HMM.

Resolución de problemas

Supongamos que existe un modelo HMM conocido:

img

En este modelo, la probabilidad de inicialización π = {Seat = 0.3, Szzz = 0.7}; estado oculto N = 2; estado observable M = 3; la matriz de transición y la matriz de confusión son:

img

Ahora tenemos que resolver 3 problemas:

** 1. ** Problema de evaluación del modelo (problema de cálculo de probabilidad)

Dado el modelo completo, el comportamiento del bebé es llorar -> inconsciente -> buscar una madre y calcular la probabilidad de estos comportamientos.

cual es:

Conociendo los parámetros del modelo, calcule la probabilidad de una secuencia dada de estados observables. Es decir, dada una secuencia de observación y un modelo λ = (A, B, π}, la probabilidad de la secuencia de observación O es P (O | λ}).

Algoritmo correspondiente: algoritmo hacia adelante, algoritmo hacia atrás

2 **. Problema de decodificación (problema de predicción) **

Dado el modelo completo, el comportamiento del bebé es llorar -> inconsciente -> buscar una madre y calcular cuál es el estado más probable del bebé bajo estos tres comportamientos.

cual es:

Dados los parámetros del modelo y la secuencia de estado observable, cómo elegir una secuencia de estado S = {S1, S2, ..., ST} puede explicar mejor la secuencia de observación O.

Algoritmo correspondiente: algoritmo de Viterbi

** 3. ** Problema de evaluación de parámetros (perteneciente a algoritmo de aprendizaje no supervisado)

A través del comportamiento del bebé, el llanto, la falta de energía y la búsqueda de una madre, determine la probabilidad de que el bebé cambie de estado.

El conjunto de datos solo tiene secuencias de observación. Cómo ajustar los parámetros del modelo λ = (π, A, B) para hacer que P (O | λ) sea el más grande

Algoritmo correspondiente: algoritmo de Baum-Welch

Este artículo resuelve principalmente los problemas 1 y 2, a partir de los cuales se puede ver que la hipótesis de Markov (fórmula 1 y 2 mencionadas anteriormente) simplifica el cálculo de la probabilidad (complemento posterior a la pregunta 3).

El recorrido

Resuelve el problema 1.

El método transversal también es un método exhaustivo típico, que es relativamente simple de implementar, solo agréguelos después de enumerar las posibles situaciones. Hay 3 estados observables, y cada estado observable corresponde a 2 estados ocultos Hay 23 = 8 situaciones posibles. uno de ellos:

P (Asiento1, Asiento2, Asiento3, Ocry1, Otired2, Ofind3)

= P (Asiento1) · P (Ocry1) · P (Asiento2) · P (Otired2) · P (Asiento3) · P (Ofind3)

= (0,3 × 0,7) × (0,1 × 0,1) × (0,1 × 0,2)

= 0,000042

El número del subíndice en la fórmula anterior representa el tiempo. El método transversal es el más efectivo (debido a la simplicidad) cuando hay menos puntos de observación y puntos ocultos. Una vez que aumenta el número de nodos, la cantidad de cálculo aumentará drásticamente.

Algoritmo directo

Resuelve el problema 1.

El algoritmo de avance consiste en calcular paso a paso cuando el tiempo t = 1.

La fórmula de probabilidad de Markov detrás de ella:

P (W1, W2) = P (W1) P (W2 | W1)

P (W1, W2, W3) = P (W1, W2) P (W3 | W1, W2)

P (W1, W2,…, Wn) = P (W1, W2,…, Wn-1) P (Wn | W1, W2,…, Wn-1)

1. Calcule la probabilidad de que se produzca un llanto cuando t = 1:

P (Ocry, Asiento) = P (Asiento) P (Ocry | Asiento) = 0.3 × 0.7 = 0.21

P (Ocry, Szzz) = P (Szzz) P (Ocry | Szzz) = 0,7 × 0,3 = 0,21

2. Calcule la probabilidad de que suceda Tired cuando t = 2:

Según la hipótesis de Markov, P (Ot = 2) solo se relaciona con St = 1, la probabilidad de comportamiento del día siguiente se calcula a partir del estado del día anterior, si St = 2 = Seat2:

P (Ocry1, Otired2, Seat2)

= P (Ocry1, Seat1) P (Seat2 | Seat1) P (Otired2 | Seat2) + P (Ocry1, Szzz1) P (Seat2 | Szzz1) P (Otired2 | Seat2)

= [P (Ocry1, Seat1) P (Seat2 | Seat1) + P (Ocry1, Szzz1) P (Seat2 | Szzz1)] · P (Otired2 | Seat2)

= [0,21 × 0,1 + 0,21 × 0,8] × 0,1

= 0.0189

Si St = 2 = Szzz2:

P (Ocry1, Otired2, Szzz2)

= P (Ocry1, Asiento1) P (Szzz2 | Asiento1) P (Otired2 | Szzz2) + P (Ocry1, Szzz1) P (Szzz2 | Szzz1) P (Otired2 | Szzz2)

= [P (Ocry1, Seat1) P (Szzz2 | Seat1) + P (Ocry1, Seat1) P (Szzz2 | Seat1)] · P (Otired2 | Szzz2)

= [0,21 × 0,9 + 0,21 × 0,2] × 0,5

= 0,1155

3. Calcule la probabilidad del comportamiento de Find cuando t = 3:

Si St = 3 = Seat3,

P (Ocry1, Otired2, Ofind3, Seat3)

= P (Ocry1, Otired2, Seat2) P (Seat3 | Seat2) P (Ofind3 | Seat3) +

P (Ocry1, Otired2, Szzz2) P (Asiento3 | Szzz2) P (Ofind3 | Asiento3)

= [P (Ocry1, Otired2, Seat2) P (Seat3 | Seat2) +

P (Ocry1, Otired2, Szzz2) P (Asiento3 | Szzz2)] · P (Ofind3 | Asiento3)

= [0.0189 × 0.1 + 0.1155 × 0.8] × 0.2

= 0.018858

Si St = 3 = Szzz3,

P (Ocry1, Otired2, Ofind3, Seat3)

= P (Ocry1, Otired2, Seat2) P (Szzz3 | Seat2) P (Ofind3 | Szzz3) +

P (Ocry1, Otired2, Szzz2) P (Szzz3 | Szzz2) P (Ofind3 | Szzz3)

= [P (Ocry1, Otired2, Seat2) P (Szzz3 | Seat2) +

P (Ocry1, Otired2, Szzz2) P (Szzz3 | Szzz2)] · P (Ofind3 | Szzz3)

= [0.0189 × 0.9 + 0.1155 × 0.2] × 0.2

= 0,008022

En resumen,

P (Ocry1, Otired2, Ofind3)

= P (Ocry1, Otired2, Ofind3, Seat3) + P (Ocry1, Otired2, Ofind3, Szzz3)

= 0.018858 + 0.049602

= 0.06848

Algoritmo de Viterbi

Consulte la Enciclopedia de Baidu:

La base del algoritmo de Viterbi se puede resumir en los siguientes tres puntos:

  1. Si la ruta p con la probabilidad más alta (o la ruta más corta) pasa por un cierto punto, como X22 en el camino, entonces la ruta secundaria Q desde el punto inicial S hasta X22 en esta ruta debe ser la ruta más corta entre S y X22. De lo contrario, reemplazar Q con el camino más corto R de S a X22 constituye un camino más corto que P, lo cual es obviamente contradictorio. Está probado que se cumple el principio de optimalidad.
  2. El camino de S a E debe pasar por un cierto estado en el i-ésimo momento. Suponiendo que hay k estados en el i-ésimo momento, entonces si se registra el camino más corto de todos los k nodos desde S al i-ésimo estado, el último más corto El camino debe pasar por uno de ellos, de modo que en cualquier momento, solo se pueda considerar un camino más corto muy limitado.
  3. Combinando los dos puntos anteriores, asumiendo que cuando ingresamos al estado i + 1 desde el estado i, se ha encontrado y registrado el camino más corto desde S a cada nodo en el estado i en estos nodos, luego en el cálculo desde el punto inicial S hasta i + 1 Cuando la ruta más corta de un cierto nodo Xi + 1 del estado, simplemente considere la ruta más corta de S a todos los k nodos en el estado anterior i, y la distancia desde este nodo a Xi + 1, j.

En este ejemplo, el algoritmo de Viterbi comienza en t = 1 y continúa calculando hacia atrás para encontrar la ruta con la mayor probabilidad.

1. Calcule la probabilidad de ocurrencia de Ocry en t = 1:

δ11 = P (Ocry, Asiento) = P (Asiento) P (Ocry | Asiento) = 0.3 × 0.7 = 0.21

δ12 = P (Ocry, Szzz) = P (Szzz) P (Ocry | Szzz) = 0,7 × 0,3 = 0,21

2. Calcule la probabilidad de que ocurra Otired en t = 2:

δ21 = max (P (Ocry1, Seat1) P (Seat2 | Seat1) P (Otired2 | Seat2), P (Ocry1, Szzz1) P (Seat2 | Szzz1) P (Otired2 | Seat2))

= max (P (Ocry1, Seat1) P (Seat2 | Seat1), P (Ocry1, Szzz1) P (Seat2 | Szzz1)) · P (Otired2 | Seat2)

= máx. (δ11 P (Asiento2 | Asiento1), δ12 P (Asiento2 | Szzz1)) · P (Otired2 | Asiento2)

= máx. (0.21 × 0.1,0.21 × 0.8) × 0.1

= 0.0168

S21 = comer

δ22 = máx (P (Ocry1, Seat1) P (Seat2 | Seat1) P (Otired2 | Szzz2), P (Ocry1, Szzz1) P (Seat2 | Szzz1) P (Otired2 | Szzz2))

= máx. (δ11 P (Szzz2 | Asiento1), δ12 P (Szzz2 | Szzz1)) · P (Otired2 | Szzz2)

= máx. (0.21 × 0.9,0.21 × 0.2) × 0.5

= 0.0945

S22 = zzz

3. Calcule la probabilidad de que ocurra OFIND en t = 3:

δ31 = máx (δ21P (Asiento3 | Asiento2), δ22P (Asiento3 | Szzz2)) · P (Ofind3 | Asiento3)

= máx. (0.0168 × 0.1, 0.0189 × 0.8) × 0.2

= 0,003024

S31 = comer

δ32 = máx. (δ21P (Szzz3 | Asiento2), δ22P (Szzz3 | Szzz2)) · P (Ofind3 | Szzz3)

= máx. (0.0168 × 0.9, 0.0189 × 0.2) × 0.2

= 0,003024

S32 = zzz

4. Retroceso, la probabilidad máxima de cada paso:

máx. (δ11, δ12), máx. (δ21, δ22), máx. (δ31, δ32)

Estado correspondiente: comer o zzz, zzz, comer o zzz

Reconocimiento de voz

El siguiente contenido está compilado de "La belleza de las matemáticas" de Wu Jun

Cuando observamos la señal de voz o1, o2, o3, tenemos que adivinar la oración enviada s1, s2, s3 en base a este conjunto de señales. Obviamente, deberíamos encontrar la más probable entre todas las oraciones posibles. Describirlo en lenguaje matemático es encontrar la oración s1 que hace que la probabilidad condicional P (s1, s2, s3, ... | o1, o2, o3 ....) alcance el valor máximo dado o1, o2, o3, ... , s2, s3, ...

img

entre ellos

img

Hipótesis de independencia

img

Hipótesis de Markov

img

Se puede ver que el reconocimiento de voz se ajusta exactamente al modelo HMM.

Cuenta oficial de Algorithm Exchange

Inserte la descripción de la imagen aquí

referencia:
Enciclopedia de Baidu: https://baike.baidu.com/item/%E9%9A%90%E9%A9%AC%E5%B0%94%E5%8F%AF%E5%A4%AB%E6% A8% A1% E5% 9E% 8B / 7932524? Fr = aladdin

https://www.cnblogs.com/bigmonkey/p/7230668.html

Supongo que te gusta

Origin blog.csdn.net/qq_46098574/article/details/108644097
Recomendado
Clasificación