El algoritmo de avance , en el contexto de un modelo oculto de Markov (HMM), se utiliza para calcular un "estado de creencia": la probabilidad de un estado en un momento determinado, dada la historia de la evidencia. Este proceso también se conoce como filtrado . El algoritmo de avance está estrechamente relacionado con el algoritmo de Viterbi , pero es distinto de este .
Introducción
Los algoritmos de avance y retroceso deben considerarse dentro del contexto de la probabilidad, ya que parecen ser simplemente nombres dados a un conjunto de procedimientos matemáticos estándar dentro de algunos campos. Por ejemplo, ni el "algoritmo de avance" ni el "Viterbi" aparecen en la Enciclopedia de Matemáticas de Cambridge . La principal conclusión que se puede extraer de estos algoritmos es cómo organizar las actualizaciones e inferencias bayesianas para que sean computacionalmente eficientes en el contexto de grafos dirigidos de variables (véase redes suma-producto ).
Para un HMM como este:

Esta probabilidad se escribe como. Aquíes el estado oculto que se abrevia comoyson las observacionesa.
El algoritmo hacia atrás complementa al algoritmo hacia adelante al tener en cuenta el historial futuro si se quisiera mejorar la estimación para tiempos pasados. Esto se conoce como suavizado y el algoritmo hacia adelante/hacia atrás calculaparaPor lo tanto, el algoritmo completo hacia adelante/atrás tiene en cuenta toda la evidencia. Nótese que se puede calcular un estado de creencia en cada paso de tiempo, pero hacerlo no produce, en sentido estricto, la secuencia de estados más probable , sino más bien el estado más probable en cada paso de tiempo, dado el historial anterior. Para lograr la secuencia más probable, se requiere el algoritmo de Viterbi . Este calcula la secuencia de estados más probable dada la historia de observaciones, es decir, la secuencia de estados que maximiza.
Algoritmo
El objetivo del algoritmo hacia adelante es calcular la probabilidad conjunta.donde, por conveniencia notacional, hemos abreviadocomoycomo. Una vez que la probabilidad conjuntase calcula, las otras probabilidadesyson fáciles de obtener.
Tanto el estado como el estadoy observaciónSe supone que son variables aleatorias discretas y finitas. Las probabilidades de transición de estado del modelo oculto de Markovprobabilidades de observación/emisióny probabilidad previa inicialse supone que son conocidas. Además, la secuencia de observacionesse supone que están dados.
ComputaciónIngenuamente requeriría marginalizar sobre todas las posibles secuencias de estados., cuyo número crece exponencialmente conEn cambio, el algoritmo directo aprovecha las reglas de independencia condicional del modelo oculto de Markov (HMM) para realizar el cálculo de forma recursiva.
Para demostrar la recursión, dejemos
- .
Utilizando la regla de la cadena para expandir, entonces podemos escribir
- .
Porquees condicionalmente independiente de todo excepto, yes condicionalmente independiente de todo excepto, esto se simplifica a
- .
Por lo tanto, dado queyestán dadas por las distribuciones de emisión y probabilidades de transición del modelo , que se suponen conocidas, se puede calcular rápidamentedey evitar incurrir en un tiempo de cálculo exponencial.
La fórmula de recursión dada anteriormente se puede escribir de forma más compacta. Seasean las probabilidades de transición ysean las probabilidades de emisión, entonces
dóndees la matriz de probabilidad de transición,es la i-ésima fila de la matriz de probabilidad de emisiónlo cual corresponde a la observación realen ese momento, yes el vector alfa. Eles el producto de Hadamard entre la transpuesta dey.
La condición inicial se establece de acuerdo con la probabilidad previa sobrecomo
- .
Una vez que la probabilidad conjuntaSe ha calculado utilizando el algoritmo hacia adelante, podemos obtener fácilmente la probabilidad conjunta relacionada.como
y la probabilidad condicional requeridacomo
Una vez calculada la probabilidad condicional , también podemos hallar la estimación puntual de. Por ejemplo, la estimación MAP dees dado por
mientras que la estimación MMSE dees dado por
El algoritmo directo se puede modificar fácilmente para tener en cuenta también las observaciones de variantes del modelo oculto de Markov, como el sistema lineal de salto de Markov .
Pseudocódigo
- Inicializar
- ,
- probabilidades de transición,,
- probabilidades de emisión,,
- secuencia observada,
- probabilidad previa,
- Paraa
- .
- Devolver
Ejemplo
Este ejemplo muestra la observación de posibles estados climáticos a partir de la condición observada de las algas marinas. Tenemos observaciones de algas marinas durante tres días consecutivos, secas, húmedas y empapadas en ese orden. Los posibles estados climáticos pueden ser soleado, nublado o lluvioso. En total, puede habertales secuencias climáticas. Explorar todas esas posibles secuencias de estados es computacionalmente muy costoso. Para reducir esta complejidad, el algoritmo Forward resulta útil, donde el truco radica en utilizar la independencia condicional de los pasos de la secuencia para calcular probabilidades parciales,como se muestra en la derivación anterior. Por lo tanto, podemos calcular las probabilidades como el producto de la probabilidad de observación/emisión apropiada,(probabilidad de estadovisto en el tiempo t a partir de la observación anterior) con la suma de las probabilidades de alcanzar ese estado en el tiempo t, calculadas utilizando probabilidades de transición. Esto reduce la complejidad del problema de buscar en todo el espacio de búsqueda a solo usar previamente calculadoy probabilidades de transición.
Complejidad
La complejidad del algoritmo de avance es, dóndees el número de estados posibles para una variable latente (como el número de condiciones climáticas en el ejemplo anterior), y es la longitud de la secuencia observada. Esto representa una clara reducción con respecto al método ad hoc de explorar todos los estados posibles, que tiene una complejidad de.
Variantes del algoritmo
- Algoritmo de avance híbrido : [ 1 ] Una variante del algoritmo de avance, denominada algoritmo de avance híbrido (HFA), puede utilizarse para la construcción de redes neuronales de función de base radial (RBF) con nodos ajustables. La red neuronal RBF se construye mediante algoritmos convencionales de selección de subconjuntos. La estructura de la red se determina combinando la configuración de la red de avance por pasos y la optimización continua de parámetros RBF. Se utiliza para producir de forma eficiente y eficaz una red neuronal RBF parsimoniosa que generaliza bien. Esto se logra mediante la determinación simultánea de la estructura de la red y la optimización de parámetros en el espacio de parámetros continuo . El HFA aborda el problema difícil de enteros mixtos utilizando un marco analítico integrado, lo que conduce a un mejor rendimiento de la red y a un menor uso de memoria para su construcción.
- Algoritmo de avance para el control óptimo en sistemas híbridos : [ 2 ] Esta variante del algoritmo de avance se inspira en la estructura de los entornos de fabricación que integran el control de procesos y operaciones. Derivamos una nueva propiedad de la estructura de la trayectoria de estado óptima que se cumple bajo una condición modificada en la función de coste. Esto nos permite desarrollar un algoritmo escalable y de baja complejidad para determinar explícitamente los controles óptimos, que puede ser más eficiente que el algoritmo de avance.
- Algoritmo de avance continuo : [ 3 ] Un algoritmo de avance continuo (CFA) puede utilizarse para el modelado e identificación no lineal mediante redes neuronales de función de base radial (RBF). El algoritmo propuesto realiza las dos tareas de construcción de red y optimización de parámetros dentro de un marco analítico integrado, y ofrece dos ventajas importantes. En primer lugar, el rendimiento del modelo puede mejorarse significativamente mediante la optimización continua de parámetros. En segundo lugar, la representación neuronal puede construirse sin generar ni almacenar todos los regresores candidatos, lo que reduce significativamente el uso de memoria y la complejidad computacional.
Historia
El algoritmo de avance es uno de los algoritmos utilizados para resolver el problema de decodificación. Desde el desarrollo del reconocimiento de voz [ 4 ] y el reconocimiento de patrones, y campos relacionados como la biología computacional que utilizan HMM, el algoritmo de avance ha ganado popularidad.
Aplicaciones
El algoritmo Forward se utiliza principalmente en aplicaciones que requieren determinar la probabilidad de estar en un estado específico a partir de una secuencia de observaciones. Este algoritmo puede aplicarse en cualquier contexto donde se pueda entrenar un modelo a medida que se reciben datos, utilizando Baum-Welch [ 5 ] o cualquier algoritmo EM general . El algoritmo Forward nos indicará la probabilidad de los datos con respecto a lo esperado según nuestro modelo. Una de sus aplicaciones se encuentra en el ámbito financiero , donde puede ayudar a decidir cuándo comprar o vender activos tangibles.
Puede tener aplicaciones en todos los campos donde aplicamos modelos ocultos de Markov (HMM). Los más populares incluyen dominios de procesamiento del lenguaje natural como el etiquetado de partes del habla y el reconocimiento de voz . [ 4 ] Recientemente también se está utilizando en el dominio de la bioinformática .
El algoritmo de avance también puede aplicarse para realizar predicciones meteorológicas . Podemos tener un modelo oculto de Markov (HMM) que describa el clima y su relación con el estado de las observaciones durante varios días consecutivos (por ejemplo, seco, húmedo, lluvioso, soleado, nublado, etc.). Podemos calcular recursivamente la probabilidad de observar cualquier secuencia de observaciones a partir del HMM. A continuación, podemos calcular la probabilidad de alcanzar un estado intermedio como la suma de todas las posibles rutas hacia ese estado. De este modo, las probabilidades parciales para la observación final contendrán la probabilidad de alcanzar esos estados siguiendo todas las rutas posibles.
Véase también
Referencias
- ↑ Peng, Jian-Xun, Kang Li y De-Shuang Huang. "Un algoritmo híbrido de avance para la construcción de redes neuronales RBF." Redes neuronales, Transacciones IEEE 17.6 (2006): 1439-1451.
- ↑ Zhang, Ping y Christos G. Cassandras. "Un algoritmo directo mejorado para el control óptimo de una clase de sistemas híbridos." Automatic Control, IEEE Transactions on 47.10 (2002): 1735-1739.
- ↑ Peng, Jian-Xun, Kang Li y George W. Irwin. "Un nuevo algoritmo continuo hacia adelante para el modelado neuronal RBF." Automatic Control, IEEE Transactions on 52.1 (2007): 117-122.
- 1 2 Lawrence R. Rabiner , "Un tutorial sobre modelos ocultos de Markov y aplicaciones seleccionadas en el reconocimiento de voz". Actas del IEEE , 77 (2), págs. 257-286, febrero de 1989. 10.1109/5.18626
- ↑ Zhang, Yanxue, Dongmei Zhao y Jinxing Liu. "Aplicación del algoritmo Baum-Welch en ataques de múltiples pasos". The Scientific World Journal 2014.
Lecturas adicionales
- El libro de Russell y Norvig , *Inteligencia Artificial: Un Enfoque Moderno* , que comienza en la página 570 de la edición de 2010, ofrece una exposición concisa de este y otros temas relacionados.
- Smyth, Padhraic, David Heckerman y Michael I. Jordan. "Redes de independencia probabilística para modelos de probabilidad de Markov ocultos". Neural Computation 9.2 (1997): 227-269.
- Read, Jonathon. "Modelos ocultos de Markov y programación dinámica". Universidad de Oslo (2011).
- Kohlschein, Christian, Introducción a los modelos ocultos de Markov
- Manganiello, Fabio, Mirco Marchetti y Michele Colajanni. Detección de ataques en múltiples etapas y correlación de alertas en sistemas de detección de intrusiones. Seguridad y garantía de la información. Springer Berlin Heidelberg, 2011. 101-110.
- Zhang, Ping y Christos G. Cassandras. "Un algoritmo directo mejorado para el control óptimo de una clase de sistemas híbridos." Automatic Control, IEEE Transactions on 47.10 (2002): 1735-1739.
- Stratonovich, RL "Procesos de Markov condicionales". Teoría de la probabilidad y sus aplicaciones 5, n.º 2 (1960): 156-178.
Software
- El paquete R Hidden Markov Model contiene funcionalidades para calcular y recuperar el procedimiento hacia adelante.
- El paquete R momentuHMM proporciona herramientas para usar e inferir modelos ocultos de Markov (HMM).
- Biblioteca GHMM para Python
- La biblioteca Haskell del paquete hmm para HMMS implementa el algoritmo Forward.
- La biblioteca para Java contiene implementaciones de algoritmos de aprendizaje automático e inteligencia artificial.
- modelos de Markov