Las redes Elman tienen neuronas "tansig" en su capa recurrente y neuronas "purelin" en su capa de salida. Esto les permite aproximar cualquier función con precisión arbitraria. Se pueden usar para aprender patrones temporales y espaciales. Se crean usando la función newelm e inicializan parámetros como las funciones de transferencia y entrenamiento. Luego se entrenan con train y se simulan con sim para aproximar vectores objetivo.
Presentación del proyecto de la materia de IAA de la UTPL.
Tema: Comparación de resultados en la convergencia de una red neuronal utilizando 1 y 2 capas ocultas respectivamente en el modelo del perceptrón multicapa utilizando el algoritmo BackPropagation al realizar el reconocimiento de señales de tránsito
Presentación del proyecto de la materia de IAA de la UTPL.
Tema: Comparación de resultados en la convergencia de una red neuronal utilizando 1 y 2 capas ocultas respectivamente en el modelo del perceptrón multicapa utilizando el algoritmo BackPropagation al realizar el reconocimiento de señales de tránsito
La identificación de un sistema dinámico mediante una red neuronal consiste en determinar los parámetros de la red de tal manera que los dos sistemas tengan respuestas similares cuando son excitados con las mismas señales de control.
Instrucciones del procedimiento para la oferta y la gestión conjunta del proceso de admisión a los centros públicos de primer ciclo de educación infantil de Pamplona para el curso 2024-2025.
1. REDES ELMAN
La red Elman tiene neuronas "tansig" en su capa recurrente y neuronas "purelin"
en su capa de salida. Esta combinación de funciones de transferencia le permite
a este tipo de redes aproximar cualquier función con una precisión arbitraria.
El único requerimiento es que en la capa oculta deben existir bastantes
neuronas.
Debido a que una red Elman puede almacenar información que se puede
referenciar en un futuro, ésta puede aprender tanto patrones temporales como
patrones espaciales.
Creando una red Elman
Una red Elman con 2 o más capas, puede ser creada con la función newelm.
Con esta función se crea e inicializa una red ELMAN.
Sintaxis:
net = newelm(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)
donde:
• PR : indica el rango de los vectores de entrada y es de la forma: [min
max] min es el limite inferior y max el superior.
• Si, i=1,...,N1 : es el número de neuronas en la i-ésima capa.
• TFi, i=1,...,N1 : es el tipo de función de transferencia en la i-ésima capa. Su
valor por default es ‘tansig’.
• BTF : indica cual es la función de entrenamiento que se utilizará para
entrenar la red. La función por default es ‘traingdx’. Los valores posibles
son los siguientes :
traingd - Gradient descent backpropagation.
traingdm - Gradient descent w/momentum backpropagation.
traingda - Gradient descent w/adaptive lr backpropagation.
traingdx - Gradient descent w/momentum & adaptive lr backpropagation.
• BLF : indica que tipo de aprendizaje(función) será usado. Su valor por
default es ‘learngdm’. Sus valores posibles son:
learnbp - Backpropagation learning rule.
learnbpm - Backpropagation learning rule with momentum.
• PF : indica que función va a interpretar el error cuadrático medio. Su valor
por default es ‘mse’. Algunos de sus valores posibles son:
mse - Mean squared error performance function.
msereg - Mean squared error w/reg performance function.
dmse - Mean squared error performance derivatives function.
dmsereg - Mean squared error w/reg performance derivative function.
Entrenando una red Elman:
La función para entrenar una red neuronal en general es train. TRAIN
entrena una red NET de acuerdo a NET.trainFcn y NET.trainParam. Algunos de
estos parámetros se asignan en newelm y en caso de que no se den se toman los
que tienen por default. NET.trainFcn es el que indica que tipo de red se va a
entrenar, debido a que train puede entrenar cualquier tipo de red. Para las
redes Elman el valor de este parámetro es inicializado en Newelm.
Como ejemplo observe como se inicializan algunos valores:
net = newelm([-2 2],[10 1],{'tansig','purelin'},'traingdx');
net.trainParam.epochs = 500;
net.trainParam.show = 5;
net.trainParam.goal = 0.01;
net.performFcn = 'sse';
2. La sintaxis de train es:
[net,tr] = train(NET,P,T,Pi,Ai)
donde:
NET : es la neurona a ser entrenada.
P: Son los vectores de entrada.
T : Son los vectores objetivo.
Pi y Ai son condiciones de retardo.
La función regresa la nueva red entrenada y opcionalmente información del
entrenamiento tal como el número de epochs el error alcanzado.
Tanto los vectores de entrada como los objetivo, tienen que estar en cierta
forma que se llama arreglo de celdas, por lo que se utiliza la función con2seq
para convertirlos a esta forma y así poder pasarlos como parámetros a train.
Ejemplo:
[net,tr] = train(net,Pentrada,Tobjetivo);
Simulación de una red Elman:
Finalmente para simular una red neuronal se utiliza sim. Su sintaxis es:
[Y,Pf,Af] = sim(net,P,Pi,Ai)
net : es la red que se utilizará para la simulación.
P : Las entradas. Vectores de entrada.
Pi y Ai: son condiciones de retardo iniciales.
Regresa:
Y : Salidas. Una aproximación a los vectores objetivo.
Pf y Af son condiciones de retardo finales.
Pi, Ai, Pf, y Af son opcionales y solo son usados para redes que tienen retardo
en la entrada o en las capas.
Ejemplo:
Salidas = sim(net,Pentradas);
DETECCION DE AMPLITUD (APPELM1)
Usando las funciones NEWELM, TRAIN y SIM, una red ELMAN es entrenada para
obtener la amplitud de una onda senoidal que esta siendo presentada en el
tiempo.
Las entradas de la red son ondas senoidales con diferente amplitud.
Se puede observar que sen(x), 2*sen(x),..., n*sen(x) son funciones
diferentes y que la red Elman lo que realmente esta haciendo es identificar
funciones, ya que cuando se presente una función de entrada, la red debe
presentar una única salida para dicha entrada.
Continuando con el ejemplo, una vez inicializada y entrenada la red se puede
observar que no se alcanzó el mínimo error deseado, por lo que se recomiendan
tres cosas por hacer:
1.- Más entremamiento aumentando el n£mero de epochs.
2.- Tratar con pesos y bias iniciales diferentes.
3.- Utilizar más neuronas en la capa oculta o recurrente.
La respuesta que tiene la red con las funciones con las que fue entrenada es muy
buena, pero cuando se le presentan funciones con las que no fue entrenada no es
muy buena. No generaliza muy bien.
3. Conclusiones y recomendaciones:
• La red Elman puede aprender a reconocer patrones variantes en el tiempo.
• En este ejemplos la red hizo un trabajo bastante bueno con solo 10
neuronas en la capa recurrente y 500 epochs.
• Más neuronas recurrentes y tiempos mayores de entrenamientos pueden ser
utilizados para incrementar la precisión de la red.
• Entrenando la red con m s funciones causar una red que generaliza mucho
mejor.