Topología de red neuronal recurrente (RNN): ¿por qué siempre está completamente conectado?

8

He comenzado a leer sobre redes neuronales recurrentes (RNN) y memoria a corto plazo (LSTM) ... (... oh, no hay suficientes puntos de representación aquí para enumerar referencias ...)

Una cosa que no entiendo: siempre parece que las neuronas en cada instancia de una capa oculta se "conectan completamente" con cada neurona en la instancia anterior de la capa oculta, en lugar de simplemente estar conectadas a la instancia de su antiguo yo / yoes (y tal vez un par de otros).

¿Es realmente necesaria la conexión total? Parece que podría ahorrar mucho tiempo de almacenamiento y ejecución, y 'mirar hacia atrás' más lejos en el tiempo, si no es necesario.

Aquí hay un diagrama de mi pregunta ...

imagen rnn: completamente conectado vs parcialmente conectado

Creo que esto equivale a preguntar si está bien mantener solo los elementos diagonales (o casi diagonales) en la matriz "W ^ hh" de 'sinapsis' entre la capa oculta recurrente. Intenté ejecutar esto usando un código RNN que funciona (basado en la demostración de adición binaria de Andrew Trask ), es decir, establecer todos los términos no diagonales en cero, y funcionó terriblemente, pero mantuvo los términos cerca de la diagonal, es decir, un lineal con bandas Sistema de 3 elementos de ancho: parecía funcionar tan bien como la versión totalmente conectada. Incluso cuando aumenté el tamaño de las entradas y la capa oculta ... Entonces ... ¿tuve suerte?

Encontré un artículo de Lai Wan Chan donde demuestra que para las funciones de activación lineal , siempre es posible reducir una red a "forma canónica de Jordan" (es decir, los elementos diagonales y cercanos). Pero ninguna de estas pruebas parece estar disponible para sigmoides y otras activaciones no lineales.

También he notado que las referencias a RNN "parcialmente conectados" parecen desaparecer después de aproximadamente 2003, y los tratamientos que he leído en los últimos años parecen asumir una conexión total. Entonces ... ¿por qué es eso?

sh37211
fuente
1
Pásame las referencias y las publicaré si quieres.
Antoni Parellada
Puede comentar en su propia publicación, y creo que poner (al menos) un enlace por comentario.
Mark L. Stone
@AntoniParellada ¡Gracias! No puedo entender cómo
enviar
Publicación de Karpathy en RNN
sh37211
Publicación
sh37211

Respuestas:

2

Una razón podría deberse a la conveniencia matemática. La red neuronal recurrente de vainilla ( tipo Elman ) se puede formular como:

ht=f(xt,ht1), dónde f() Se puede escribir como σ(Wxt+Uht1).

La ecuación anterior corresponde a su primera imagen. Por supuesto, puedes hacer la matriz recurrenteU escaso para restringir las conexiones, pero eso no afecta la idea central del RNN.

Por cierto: existen dos tipos de recuerdos en un RNN. Uno es el peso de entrada a ocultoW, que almacena principalmente la información de la entrada. La otra es la matriz oculta a oculta.U, que se utiliza para almacenar las historias. Como no sabemos qué partes de las historias afectarán nuestra predicción actual, la forma más razonable podría ser permitir todas las conexiones posibles y dejar que la red aprenda por sí misma.

fishiwhj
fuente
0

Puede usar 2 neuronas de entrada si las organiza de manera similar a la transformación rápida de Walsh Hadamard. Entonces, un algoritmo fuera de lugar sería pasar a través del vector de entrada secuencialmente 2 elementos a la vez. Haga que 2 neuronas de 2 entradas actúen sobre cada par de elementos. Coloque la salida de la primera neurona secuencialmente en la mitad inferior de una nueva matriz de vectores, la salida de la segunda neurona secuencialmente en la mitad superior de la nueva matriz de vectores. Repita utilizando la nueva matriz de vectores como entrada. Después de que log_base_2 (n) repite un cambio en uno solo de los elementos de entrada, puede cambiar potencialmente todas las salidas. Que es lo mejor que puedes hacer. n debe ser una potencia entera positiva de 2.

Sean O'Connor
fuente