Las redes que hemos trabajado hasta ahora procesaban la información capa a capa de la entrada a la salida, como en el esquema:
La posibilidad que vamos a investigar ahora es añadirle a las entradas los valores de una capa en el instante anterior.
Al principio tienes analisisprevio que hace un estudio previo de series temporales, que es distinto del análisis estadístico usual y que , aunque no es objetivo de la asignatura, merece la pena echarle un vistazo. Una vez visto, en las siguientes ejecuciones, puedes ponerlo a False
.
Puede ser una oculta, como el esquema:
Este caso viene ya previsto en Pytorch con una capa especial que incluye la realimentación. Si hay más capas ocultas, cada una se realimenta con su propia salida. Tienes que definir o modificar:
'Realimoc'
'Tanh'
o 'ReLU'
Al final, intenta llegar al mejor resultado posible.
En éstas la salida previa de la red se añade a las entradas:
Cambia el tipo de red por Realimsal'
Nuevamente tienes que definir los mismos valores que antes, con la excepción del número de capas ocultas , que ahora vendrá dado por nocul
, que debe ser un vector con tantos componentes como capas ocultas, y cada valor es la cantidad de procesadores de esa capa.
Vamos a trabajar con bloques LSTM, que ya vienen preparados en Pytorch. Esta vez el tipo de red es 'Realimicror'
Tienes que definir los mismos valores que en el caso de realimentación de capa oculta.
Usaremos una versión simplificada de las redes generativas (no pasamos las entradas a dimensión alta, y solo hay una capa oculta en codificador y decodificador). El tipo de red es 'RealimTrans'
La definición de ocultos es un solo numero en nocul
El nuevo valor a considerar es:
Estas redes funcionan mejor en problemas mucho mayores. Puede que tengas que poner bastantes ocultos, poca tasa de ajuste y bastantes iteraciones.