el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
REDES NEURONALES RECURRENTES Elman
1. REDES RECURRENTES
La red recurrente Elman es una red de retropropagación de dos capas, con la adición de
una retroalimentación de la salida de la capa oculta con la entrada de la red (fig. 1). Esta
retroalimentación le permite a la red generar y detectar patrones variantes en el tiempo. La
red Elman tiene como función de activación el Tansigmoidal en su capa oculta y la función
lineal en su capa de salida lo que le permite aproximar cualquier función (Con un numero
finito de discontinuidades ) y cierta exactitud siempre que se tengan suficientes neuronas en
la capa oculta para el procesamiento.
La retroalimentación contiene un retraso que permite retener los valores del primer paso
para usarlos en el actual paso de procesamiento. Debido a que la red puede grabar
información para futura referencia es capaz de aprender patrones temporales tan bien como
patrones espaciales además de generarlos.
La función simuelm simula las redes Elman. Toma los pesos y los bias como argumentos y
la matriz de entradas P. La función puede ser usada para regresar las matrices de salida de
las dos capas o solo de una como ese muestra a continuación:
[A1 , A2] = simuelm( P , W1 , b1 , W2 , b2)
A2 = simuelm( P , W1 , b1 , W2 , b2)
INICIANDO LA RED ELMAN
La función initelm genera los pesos y bias iniciales para la red Elman. Esta función toma la
matriz de vectores de entrada P, el cual contiene información del numero y el rango de las
entradas, el numero de neuronas recurrentes s1 y el numero de neuronas de salida s2 como
argumento.
[W1 , b1 , W2 , b2] = initelm(P , s1 , s2)
2. La matriz P debe tener tantos renglones como entradas de la red a diseñar, es importante
que cada renglón tenga al menos dos elementos: el valor mínimo y el valor máximo que la
entrada va ha tener. Tener límites incorrectos no hace a la red inservible, pero afecta la
velocidad de aprendizaje.
Esta función también puede ser llamada con el vector de clases en vez del numero de
neuronas de salida.
[W1 , b1 , W2 , b2] = initelm(P , s1 , T)
ENTRENAMIENTO DE LA RED ELMAN
La función trainelm entrena la red Elman usando retropropagación (backpropagation) con
momento y con una taza de aprendizaje adaptativa (learning rate). Los argumentos que
recibe son los pesos y bias junto con la matriz de entradas y el vector de clases. El
entrenamiento regresa los nuevos pesos y bias.
[W1 , b1 , W2 , b2] = trainelm( P , W1 , b1 , W2 , b2 , P , T)
trainelm también puede ser llamada con un vector adicional Tp que es usado para sobre
escribir los parametros de entrenamiento. Estos parámetros se listan enseguida.
[W1 , b1 , W2 , b2] = trainelm( P , W1 , b1 , W2 , b2 , P , T , Tp)
Tp(1) – Numero de iteraciones entre cada exhibición (default = 5)
Tp(2) – Numero máximo de iteraciones para el entrenamiento (default = 500)
Tp(3) – Mínimo error (default = 0.01)
Tp(4) – La taza de aprendizaje inicial (defaul = 0.001)
Tp(5) – Radio de crecimiento de la taza de aprendizaje (default = 1.05)
Tp(6) – Radio de decrecimiento de la taza de aprendizaje (default = 0.7)
Tp(7) – Momento (default = 0.95)
Tp(8) – Radio de error (default = 1.04)
Esta función grafica el error y mantiene informado el avance del entrenamiento en la
ventana de comandos además de que también puede regresar el numero de ciclos de
entrenamiento ocurridos te y el vector que registra los errores que se tenían durante el
entrenamiento tr.
[W1 , b1 , W2 , b2 , te , tr] = trainelm( P , W1 , b1 , W2 , b2 , P , T , Tp)