Modelo de Markov oculto_Algoritmo hacia adelante y hacia atrás_Algoritmo Viterbi

1. Introducción

          El modelo de Markov es un modelo sin memoria , es decir, el estado en el tiempo t en la secuencia solo está relacionado con el tiempo t-1 , que es una relación directa. Los llamados modelos ocultos de Markov dicen es t estado y el tiempo t-1 vez indirectamente , es decir, no existe una relación directa entre las dos variables observadas, pero sus secuencias variables ocultas que son propiedades de Markov requieren. Muchas cosas aparentemente no relacionadas tienen una relación implícita. Para comprender esta relación implícita, necesita encontrar variables ocultas y descubrir las reglas. De hecho, esta es una teoría muy fascinante, me hizo sentir más posibilidades.

2. Modelo de Markov oculto

        

       Tres parámetros: la figura anterior muestra el flujo de trabajo de Markov oculto, X como la secuencia de variables ocultas e Y como la secuencia de observación. Definimos los parámetros del modelo como: λ = (π, A, B), donde π representa la distribución de probabilidad del estado inicial, es decir, la distribución de probabilidad de x en el primer momento; A representa la matriz de transición, que es el parámetro entre X; B representa La matriz de emisión es el parámetro entre X e Y; con estos tres parámetros, podemos expresar la posibilidad de todos los cambios en x e y.

      Dos hipótesis: la hipótesis homogénea de Markov (el estado de X en el tiempo t solo está relacionado con el tiempo t-1) y la hipótesis de independencia observacional (yt solo está relacionado con xt)

      Tres problemas: Hidden Markov tiene tres problemas clásicos, correspondientes a las tres situaciones que puede manejar. En resumen, es problema de evaluación de evaluación, problema de aprendizaje de aprendizaje, problema de decodificación de decodificación;

        La evaluación es encontrar la probabilidad condicional de Y bajo un λ dado (es decir, usar los parámetros del modelo para encontrar el valor de observación); aprender es encontrar Y para un Y dado (es decir, dados los datos de observación, aprender los parámetros del modelo); decodificar es conocer λ e Y para encontrar X Es decir, se conocen los parámetros y observaciones del modelo y se encuentran las variables ocultas);

         A continuación, presentaremos estos tres temas en detalle.

3. Evaluación

         El algoritmo de avance puede entenderse como la suma de la probabilidad de avance de cada estado en cada momento de izquierda a derecha, y el algoritmo de retroceso es la suma de la probabilidad de retroceso de cada estado en cada momento de derecha a izquierda. Al final, se puede expresar la distribución de probabilidad condicional del parámetro λ correspondiente al valor observado. Expliquemos en detalle a continuación.

1. Algoritmo de avance

       

        Solución de violencia directa:

        Para el problema de evaluación, conocemos el valor del parámetro λ y la secuencia de observación, y lo que se requiere es la distribución de probabilidad de la secuencia de observación bajo el parámetro λ, es decir, P (Y | λ). La forma más directa es encontrar P (X | λ) , Y luego encontrar P (Y | X, λ), obtenemos la probabilidad conjunta entre la variable oculta y el valor observado. Luego, usando la distribución de probabilidad marginal (cuando una variable es fija, la probabilidad de otra variable) simplemente puede encontrar P (Y | λ)

       Pero este algoritmo necesita atravesar las posibilidades de todas las combinaciones de secuencias de capas ocultas. La complejidad de todo el algoritmo es exponencial. Suponiendo que el número de estados ocultos es N y la longitud de la secuencia oculta es T, la complejidad es esa O (TN ^ {T}). Para explicar la complejidad aquí, hay varias combinaciones de secuencias N ^ {T}, y cada secuencia debe calcularse T veces. Para una pequeña cantidad de unidades y estados ocultos, esto es aceptable. Pero cuando la cantidad de unidades y estados ocultos es grande, el costo computacional es fatal.

        Para solucionar este problema, decidimos buscar otra forma. Así que invocamos el algoritmo de avance.

        Algoritmo de avance:

        La idea del algoritmo directo es muy simple. Dado que se conoce el parámetro λ, definimos la secuencia de variables ocultas como I y la secuencia de observación como O

                      1. La probabilidad de avance en el primer momento : la probabilidad de avance en el momento uno = π * matriz de emisión ;

                                       

                     2. La probabilidad de avance en el momento posterior: la probabilidad de avance en t + 1 = la probabilidad de avance en el momento t * matriz de transición de estado * matriz de emisión

                                      

                     3. Finalmente, sumamos las probabilidades de avance en cada momento para calcular la distribución de probabilidad de la secuencia de observación final O con base en el parámetro λ

                                     

         Resumen: La idea del algoritmo de avance es encontrar la probabilidad de avance de cada momento de izquierda a derecha. Este es un algoritmo de programación dinámica que abstrae la relación entre cada momento y la probabilidad de avance del momento anterior, de modo que pueda ser fácilmente El uso de la iteración representa cada momento. Luego, sume las probabilidades de avance en todos los momentos para obtener la distribución de probabilidad final P (O | λ); la probabilidad de avance en el primer momento se multiplica por la matriz de emisión por π , y la probabilidad de avance en cada momento subsiguiente se usa antes La probabilidad de avance en un momento se multiplica por la matriz de transición de estado y luego se multiplica por la matriz de emisión. De esta manera, evitamos la posibilidad de atravesar las combinaciones izquierda y derecha de la secuencia cada vez, y la complejidad de todo el algoritmo se reduce a una disminución exponencial en comparación con la complejidad de la solución de fuerza bruta .O (TN ^ {2})O (TN ^ {T})

2. Algoritmo hacia atrás

    

        Acabamos de aprender sobre el algoritmo de avance, que en realidad calcula la probabilidad de avance de izquierda a derecha y luego suma cada momento. El llamado algoritmo hacia atrás consiste en calcular la probabilidad hacia atrás de derecha a izquierda y luego sumar cada momento. Como el algoritmo de avance, también es un algoritmo dinámico que utiliza la relación entre cada momento y el estado de los siguientes momentos.

       En el algoritmo de avance, damos la probabilidad de avance en el momento t-1 para calcular la probabilidad de avance en el momento t. La probabilidad hacia adelante representa la probabilidad del valor observado bajo la condición de la variable oculta, luego la probabilidad hacia adelante en el tiempo t representa la distribución de probabilidad del valor observado en el tiempo anterior t-1 bajo la condición de la variable oculta en el tiempo t . Debido a que se deduce de adelante hacia atrás, se conoce el estado π de la variable oculta en el primer momento, por lo que podemos realizar cálculos recursivos directamente.

       Algoritmo hacia atrás al hecho del frente opuesto, asumimos un tiempo conocido t variables ocultas bajo condiciones de regreso a t + 1 en el tiempo T la distribución de probabilidad de los valores observados . Debido a que se empuja de atrás hacia adelante, primero debemos definir una β para representar la suposición que acabamos de hacer.

                                                       

      Luego mostramos la relación de recurrencia del tiempo t + 1 al tiempo t β. De acuerdo con la figura anterior, podemos explicar, en realidad es una lógica muy simple. Dado que βt + 1 representa la distribución de probabilidad condicional de todas las observaciones posteriores bajo la condición de t + 1. Luego, multiplique βt + 1 por la matriz de transición para obtener βt, y multiplique por la matriz de emisión B para obtener la distribución de probabilidad condicional del valor observado en el tiempo t + 1, y el βt obtenido por síntesis puede representar la variable oculta en el momento t, t + 1 Y la distribución de probabilidad condicional de las observaciones en todos los momentos posteriores.

                                                       

       A través de la recursividad, podemos obtener el estado de la variable oculta en el primer momento, que corresponde a la distribución de probabilidad condicional de los valores observados en todos los momentos posteriores. Sume todos los N estados para obtener la distribución de probabilidad del valor de observación correspondiente a λ (estado inicial π, matriz de transición, matriz de emisión).

                                                       

 

        Resumen: En comparación con el algoritmo hacia adelante, introdujimos la lógica de cálculo del algoritmo hacia atrás. La idea es la misma que el algoritmo forward, que expresa dinámicamente la relación entre el parámetro λ y el valor observado a través de la relación entre el estado en el momento. Es solo porque empujamos de derecha a izquierda, por lo que necesitamos definir una variable β para representar nuestra hipótesis. Es decir, la variable oculta en cada momento corresponde a la distribución de probabilidad del valor observado en el momento siguiente. Finalmente, obtenemos la distribución de probabilidad de las siguientes observaciones bajo la condición de π en el primer momento. Entonces, al calcular, necesitamos inicializar el valor de β en el tiempo t. La complejidad del algoritmo final es O (TN ^ {2}).

4. Algoritmo de Viterbi

       En primer lugar, el problema de decodificación en los tres problemas básicos de HMM correspondientes al algoritmo de Viterbi, es decir, el modelo conocido λ (π, A, B) y la secuencia de observación O; se requiere la secuencia de estado oculta S. Aplicaciones prácticas tales como: reconocimiento de voz, información de voz conocida, infieren la información de texto correspondiente más probable;

        No se preocupe, según mi experiencia de vivir durante tanto tiempo, cuanto más aterrador es el nombre, más simple es el algoritmo. La idea central del algoritmo de Viterbi es encontrar la ruta óptima, que es la secuencia de estado oculta más probable. Método de combinación, ¿cómo encontrarlo? Hay un pequeño truco en esto. Suponga que conoce la ruta óptima desde el tiempo t hasta el tiempo t + 1 (la probabilidad máxima), entonces puede obtener la ruta óptima antes del tiempo t; continúe presionando, asumiendo que conoce la penúltima ruta La ruta óptima desde el segundo momento hasta el último momento, luego puede derivar la ruta óptima global.

                                

                                         

                    Por favor, mire las dos imágenes de arriba. La imagen uno son todas las rutas posibles de S a E, la imagen dos es la ruta procesada por Viterbi, que obviamente es más simple. Una observación cercana revelará que la segunda imagen es simple porque solo hay un camino correspondiente a un estado en cada momento. Esta ruta puede entenderse como una ruta local óptima. Cuando finalmente se alcanza el estado E, los otros caminos se pueden eliminar rastreando hacia atrás, dejando solo un camino óptimo global.

            

5. Resumen

         Este artículo describe el modelo de Markov oculto, que introduce variables ocultas sobre la base del modelo de Markov para expresar una secuencia. E introdujo tres problemas clásicos de Markov, a saber, problemas de aprendizaje, problemas de evaluación y problemas de decodificación. Finalmente, introdujimos el algoritmo hacia adelante y el algoritmo hacia atrás para resolver el problema de evaluación. Tengo la intención de cubrir los siguientes problemas de aprendizaje y descodificación en el próximo blog, porque ahora quiero ver televisión especialmente.

6. Tonterías

          Me gusta especialmente decir tonterías, porque me trae salud. Siempre quise encontrar un niño que se quedara a mi lado, en silencio. Cuando hablé con él, su respuesta fue tan profunda que me sorprendió. No tiene mucho interés en las cosas que persiguen otras personas, sino más bien está dispuesto a hacer cosas que otros encuentran aburridas. Le gusta estar aturdido, hablar consigo mismo, mirar el cielo lejano y meditar, como si no fuera de este mundo. Trabajó duro para comportarse como todos los demás, esperando que los demás pensaran que era un niño normal. Solo cuando esté solo se sentirá feliz. Le gusta charlar con cosas invisibles, no con palabras, sino con corazón. En este momento, todo a su alrededor parece estar vivo. Me fui, pero él siempre se sentaba en el borde del campo bajo el sol poniente, balanceando las piernas. ¡Dije hola, está oscureciendo! ¡Vete a casa rápidamente! Corrió a casa y se durmió en los brazos de su madre. Hace mucho que no lo veo, lo extraño, pero ya no lo encuentro.

Garrapata-Kankan

 

Supongo que te gusta

Origin blog.csdn.net/gaobing1993/article/details/108629751
Recomendado
Clasificación