38 votos

¿Por qué se comparten los pesos de las redes RNN/LSTM en el tiempo?

Recientemente me he interesado por los LSTM y me ha sorprendido saber que los pesos se comparten en el tiempo.

  • Sé que si compartes los pesos a través del tiempo, entonces tus secuencias de tiempo de entrada pueden tener una longitud variable.

  • Con los pesos compartidos tienes muchos menos parámetros que entrenar.

A mi entender, la razón por la que uno recurriría a una LSTM frente a otro método de aprendizaje es porque cree que hay algún tipo de estructura/dependencia temporal/secuencial en sus datos que le gustaría aprender. Si se sacrifica el "lujo" de la longitud variable y se acepta un largo tiempo de cálculo, ¿no funcionaría mejor una RNN/LSTM sin pesos compartidos (es decir, para cada paso de tiempo se tienen pesos diferentes) o hay algo que se me escapa?

43voto

PiPeep Puntos 1455

La respuesta aceptada se centra en el aspecto práctico de la cuestión: se necesitarían muchos recursos si no se comparten los parámetros. Sin embargo, la decisión de compartir parámetros en una RNN se ha tomado cuando cualquier El cómputo serio era un problema (años 80 según wiki ), así que creo que no era el argumento principal (aunque sigue siendo válido).

Hay razones puramente teóricas para compartir los parámetros:

  • Ayuda a aplicar el modelo a ejemplos de distinta longitud. Al leer una secuencia, si el modelo RNN utiliza diferentes parámetros para cada paso durante el entrenamiento, no se generalizará a secuencias no vistas de diferentes longitudes.

  • A menudo, las secuencias funcionan según las mismas reglas en toda la secuencia. Por ejemplo, en la PNL:

                                                     "El lunes estaba nevando"

                                                     "El lunes nevó"

...estas dos frases significan lo mismo, aunque los detalles están en diferentes partes de la secuencia. El intercambio de parámetros refleja el hecho de que estamos realizando la misma tarea en cada paso, como resultado, no tenemos que volver a aprender las reglas en cada punto de la frase.

LSTM no es diferente en este sentido, por lo que también utiliza parámetros compartidos.

16voto

throwaway Puntos 18

La perspectiva de los "pesos compartidos" proviene de pensar en las RNN como redes feedforward desenrolladas en el tiempo. Si los pesos fueran diferentes en cada momento, se trataría simplemente de una red feedforward. Pero, supongo que otra forma de pensar en ello sería como una RNN cuyos pesos son una función que varía en el tiempo (y que podría permitirte mantener la capacidad de procesar secuencias de longitud variable).

Si lo hiciera, el número de parámetros crecería linealmente con el número de pasos de tiempo. Eso sería una gran explosión de parámetros para secuencias de cualquier longitud apreciable. De hecho, haría que la red fuera más potente, si se dispusiera de recursos informáticos masivos para ejecutarla y de datos masivos para restringirla. Para secuencias largas, probablemente sería inviable desde el punto de vista informático y se produciría un sobreajuste. De hecho, la gente suele ir en la dirección opuesta, ejecutando la retropropagación truncada en el tiempo, que sólo desenrolla la red durante un corto período de tiempo, en lugar de hacerlo sobre toda la secuencia. Esto se hace por viabilidad computacional. Curiosamente, las RNN pueden seguir aprendiendo la estructura temporal que se extiende más allá de la longitud de truncamiento, porque las unidades recurrentes pueden almacenar la memoria de antes.

1voto

jgtumusiime Puntos 63

Creo que, dado que las RNN con recurrencias ocultas (y pesos compartidos en el tiempo) son equivalentes a las máquinas de Turing universales, dejar que tengan diferentes pesos para diferentes pasos de tiempo no las hace más potentes.

0voto

user1816847 Puntos 111

Me estoy esforzando por visualizar cómo se comporta el reparto de pesos combinado con la recurrencia y combinado con las incrustaciones de palabras en un espacio de alta dimensión.

Tomando el ejemplo de @Maxim y visualizando una red que sugiere la siguiente palabra de la secuencia: "El lunes era" cuando se acumula usando la recurrencia será un punto en un espacio de alta dimensión, y gracias a las incrustaciones de palabras, "El martes era" estará en el mismo colector. Dado este peso acumulado como entrada a una capa descendente totalmente conectada con gran capacidad de memoria, aprenderá a mapear cosas como frío, nieve, etc. Puede haber otros mapeos almacenados como agitado, lento, obvio, etc. Esto puede ser aprendido por una unidad de la capa. Otra unidad puede haber aprendido a asignar el vector de alta dimensión formado por el peso acumulado de "nevaba en" a vectores como navidad, lunes, el, etc. Esto se refiere a los pesos ocultos de entrada y a los pesos ocultos de salida. En cuanto a los pesos ocultos de entrada, aunque los pesos son compartidos, las unidades de la capa a la que conducen se activarán para diferentes aspectos de una frase (personas y lugares, palabras de parada, etc.), lo que los hace agnósticos en cuanto a la posición (tiempo).

0voto

Nicolas Puntos 111

La RNN es una red neuronal basada en el tiempo al final de los pasos de tiempo (longitud de la entrada) forma un vector que representa un pensamiento que preserva la información de la secuencia a través del tiempo. Pensar en el vector de pensamiento como una especie de figura u objeto podría ayudar, que obtiene su forma adecuada (dependiendo de la secuencia de entrada) a través de los pasos de tiempo en función de las entradas que ve cada vez. Las matrices de pesos se inicializan aleatoriamente primero, si tomamos el ejemplo de predecir la siguiente letra usando RNN, cuando enviamos la primera letra y la red predice la siguiente letra asignando probabilidades a cada una de las posibles letras, podemos actualizar los pesos usando los gradientes en ese paso de tiempo. Al final, los pesos se actualizan de tal manera que se incrementa la confianza (probabilidad) de encontrar la palabra correcta, lo que puede lograrse mediante la retropropagación. Este proceso de entrenamiento continúa para un gran número de datos, afinando así los parámetros de peso de tal manera que, dada la secuencia vista hasta ahora y este es el estado actual, esta letra/palabra en particular (en el caso de las traducciones automáticas) tiene una alta probabilidad de ocurrir. El reparto de pesos a través de las marcas de tiempo ayuda a comprender la secuencia y, desde el punto de vista aplicado, reduce el tiempo de entrenamiento.

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