29 votos

Modelo de Markov oculto frente a la red neuronal recurrente

¿Qué problemas secuenciales de entrada son los más adecuados para cada uno? ¿Determina la dimensionalidad de la entrada cuál es mejor? ¿Los problemas que requieren una "memoria más larga" son más adecuados para una RNN LSTM, mientras que los problemas con patrones de entrada cíclicos (bolsa, clima) se resuelven más fácilmente con un HMM?

Parece que hay mucho solapamiento; tengo curiosidad por saber qué diferencias sutiles existen entre ambos.

28voto

dkirk Puntos 68

Resumen

Los modelos de Markov ocultos (HMM) son mucho más sencillos que las redes neuronales recurrentes (RNN), y se basan en fuertes suposiciones que pueden no ser siempre ciertas. Si las suposiciones son Entonces, es posible que el rendimiento de un HMM sea mejor, ya que es menos complicado que funcione.

Una RNN puede funcionar mejor si se tiene un conjunto de datos muy grande, ya que la complejidad adicional puede aprovechar mejor la información de los datos. Esto puede ser cierto incluso si las suposiciones de los HMM son ciertas en su caso.

Por último, no se limite a estos dos modelos para su tarea de secuencias, a veces las regresiones más simples (por ejemplo, ARIMA) pueden ganar, y a veces otros enfoques complicados como las redes neuronales convolucionales pueden ser los mejores. (Sí, las CNN pueden aplicarse a algunos tipos de datos de secuencias al igual que las RNN).

Como siempre, la mejor manera de saber qué modelo es el mejor es hacer los modelos y medir el rendimiento en un conjunto de pruebas realizado.

Supuestos fuertes de los HMM

Las transiciones de estado sólo dependen del estado actual, no de nada del pasado.

Esta suposición no se cumple en muchos de los ámbitos que conozco. Por ejemplo, supongamos que se trata de predecir para cada minuto del día si una persona fue despierto o dormido a partir de los datos del movimiento. La posibilidad de que alguien pase de dormido a despierto aumenta la más largo la persona ha estado en el dormido estado. En teoría, una RNN podría aprender esta relación y explotarla para obtener una mayor precisión predictiva.

Se puede intentar evitar esto, por ejemplo, incluyendo el estado anterior como característica, o definiendo estados compuestos, pero la complejidad añadida no siempre aumenta la precisión predictiva de un HMM, y definitivamente no ayuda a los tiempos de cálculo.

Debe definir previamente el número total de estados.

Volviendo al ejemplo del sueño, puede parecer que sólo hay dos estados que nos importan. Sin embargo, aunque sólo nos interese predecir despierto contra. dormido Nuestro modelo puede beneficiarse de calcular estados adicionales como conducir, ducharse, etc. (por ejemplo, ducharse suele venir justo antes de dormir). De nuevo, una RNN podría aprender teóricamente esa relación si se le mostraran suficientes ejemplos de ella.

Dificultades con las RNN

De lo anterior puede parecer que las RNN son siempre superiores. Sin embargo, debo señalar que las RNN pueden ser difíciles de hacer funcionar, especialmente cuando el conjunto de datos es pequeño o las secuencias son muy largas. Personalmente, he tenido problemas para conseguir que las RNN se entrenen con algunos de mis datos, y tengo la sospecha de que la mayoría de los métodos/directrices de las RNN publicadas están ajustadas a texto datos. Al intentar utilizar las RNN en datos no textuales, he tenido que realizar una búsqueda de hiperparámetros más amplia de lo que me gustaría para obtener buenos resultados en mis conjuntos de datos particulares.

En algunos casos, he comprobado que el mejor modelo para los datos secuenciales es el estilo UNet ( https://arxiv.org/pdf/1505.04597.pdf ) Modelo de red neuronal convolucional, ya que es más fácil y rápido de entrenar, y es capaz de tener en cuenta todo el contexto de la señal.

7voto

nunya Puntos 21

Veamos primero las diferencias entre el HMM y el RNN.

Desde este papel: Un tutorial sobre modelos de Markov ocultos y aplicaciones seleccionadas en el reconocimiento del habla podemos aprender que los HMM deben caracterizarse por los siguientes tres problemas fundamentales:

Problema 1 (Probabilidad): Dado un HMM = (A,B) y una secuencia de observación O, determinar la probabilidad P(O|).
Problema 2 (Descodificación): Dada una secuencia de observación O y un HMM = (A,B), descubrir la mejor secuencia de estados ocultos Q.
Problema 3 (Aprendizaje): Dada una secuencia de observación O y el conjunto de estados del HMM, aprender los parámetros A y B del HMM.

Podemos comparar el HMM con el RNN desde esas tres perspectivas.

Probabilidad

sum over all hidden sequences Probabilidad en HMM(Imagen A.5)
just get the probability from the softmax functions
Modelo lingüístico en RNN

En el HMM calculamos la probabilidad mediante $P(O)=\sum_Q P(O, Q) = \sum_Q P(O|Q)P(Q)$ donde el $Q$ representa todas las posibles secuencias de estados ocultos, y la probabilidad es la probabilidad real en el gráfico. Mientras que en RNN el equivalente, hasta donde yo sé, es el inverso de la perplejidad en el modelado del lenguaje donde $\frac{1}{p(X)} = \sqrt[T]{\prod_{t=1}^T \frac{1}{p(x^t|x^{(t-1)},...,x^{(1)})}}$ y no sumamos sobre los estados ocultos y no obtenemos la probabilidad exacta.

Descifrar

En el HMM la tarea de decodificación consiste en calcular $v_t(j) = max_{i=1}^N v_{t-1}(i)a_{ij} b_(o_t)$ y determinar qué secuencia de variables es la fuente subyacente de alguna secuencia de observaciones utilizando el algoritmo de Viterbi y la longitud del resultado es normalmente igual a la observación; mientras que en la RNN la decodificación está calculando $P(y_1, ..., y_O|x_1, ..., x_T) = \prod_{o=1}^OP(y_o|y_1, ..., y_{o-1}, c_o)$ y la longitud de $Y$ no suele ser igual a la observación $X$ .

the bold path
Decodificación en HMM(Figura A.10)

the decoder part
Decodificación en RNN

Aprender

El aprendizaje en HMM es mucho más complicado que en RNN. En los HMM se suele utilizar el algoritmo de Baum-Welch (un caso especial del algoritmo de maximización de expectativas) mientras que en las RNN se suele utilizar el descenso del gradiente.

Para sus subpreguntas:

¿Qué problemas de entrada secuencial son los más adecuados para cada uno?

Cuando no tengas suficientes datos utiliza el HMM, y cuando necesites calcular la probabilidad exacta el HMM también sería una mejor opción (tareas generativas que modelan cómo se generan los datos). En caso contrario, puedes utilizar RNN.

¿La dimensionalidad de la entrada determina cuál es la mejor correspondencia?

No lo creo, pero el HMM puede tardar más en aprender si los estados ocultos son muy grandes, ya que la complejidad de los algoritmos (forward backward y Viterbi) es básicamente el cuadrado del número de estados discretos.

¿Los problemas que requieren una "memoria más larga" son más adecuados para una RNN LSTM, mientras que los problemas con patrones de entrada cíclicos (bolsa, clima) se resuelven más fácilmente con un HMM?

En el HMM el estado actual también se ve afectado por los estados y observaciones anteriores (por los estados padre), y se puede probar el Modelo de Markov Oculto de Segundo Orden para obtener una "memoria más larga".

Creo que se puede utilizar RNN para hacer casi

referencias

  1. Procesamiento del lenguaje natural con aprendizaje profundo CS224N/Ling284
  2. Modelos de Markov ocultos

2voto

boomkin Puntos 13

Encontré esta pregunta, porque yo también me preguntaba sobre sus similitudes y diferencias. Creo que es muy importante decir que los modelos de Markov ocultos (HMM) no tienen entradas y salidas en el sentido más estricto.

Los HMM son los llamados generativo si se tiene un HMM, se pueden generar algunas observaciones a partir de él tal cual. Esto es fundamentalmente diferente de las RNN, ya que incluso si usted tiene una RNN entrenada, necesita una entrada para ella.

Un ejemplo práctico en el que esto es importante es la síntesis del habla. Los estados de Markov ocultos subyacentes son los teléfonos y los eventos de probabilidad emitidos son los acústicos. Si tienes un modelo de palabra entrenado, puedes generar tantas realizaciones diferentes del mismo como quieras.

Pero con las RNN, es necesario proporcionar al menos alguna semilla de entrada para obtener su salida. Se podría argumentar que en los HMM también es necesario proporcionar una distribución inicial, por lo que es similar. Pero si nos ceñimos al ejemplo de la síntesis del habla, no lo es porque la distribución inicial será fija (partiendo siempre de los primeros fonemas de la palabra).

Con las RNN se obtiene una secuencia de salida determinista para un modelo entrenado, si se utiliza la misma semilla de entrada todo el tiempo. Con los HMM, no lo haces porque las transiciones y las emisiones siempre se muestrean a partir de una distribución de probabilidad.

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