práctica+laboratorio+ci+#+2
TRANSCRIPT
5/10/2018 Pr ctica+laboratorio+CI+#+2 - slidepdf.com
http://slidepdf.com/reader/full/practicalaboratorioci2 1/6
Práctica de Laboratorio # 2
Asignatura: Control Inteligente
Tema: Trabajo con las Redes Neuronales Artificiales empleando el software Matlab.
Creación, entrenamiento y validación de una red neuronal artificial.
Título: “Las Redes Neuronales Artificiales. Aplicaciones”
Objetivos de la práctica:
- Que los estudiantes desarrollen habilidades prácticas en el trabajo con las redes neuronales
artificiales utilizando el software Matlab.
- Que los estudiantes apliquen los conocimientos teóricos adquiridos para la solución deproblemas aplicando redes neuronales artificiales.
- Que los estudiantes sean capaces de crear, entrenar y validar diferentes arquitecturas de
RNA.
Desarrollo de la Práctica:
I. Introducción: Recordatorio de los aspectos fundamentales de las Redes
Neuronales Artificiales estudiados.
Funciones de activación:
- Función de activación lineal.
- Función de activación de límite rígido.
- Función de activación sigmoidea.
Características de una Red Neuronal Artificial:
- Un patrón de conexiones entre neuronas (arquitectura).
- Su método o forma de determinar los pesos de las conexiones (algoritmo de aprendizaje).
- Su función de activación.
Etapas a seguir en el empleo de una RNA:
- Recolección de los datos.
- Entrenamiento de la red neuronal artificial.
- Validación de la red neuronal artificial entrenada.
Principales arquitecturas de Redes Neuronales Artificiales estudiadas:
- RNA Perceptron simple capa.
- RNA ADALINE/MADALINE.
- RNA Perceptron multicapa.- RNA de Base Radial (RBF).
- RNA de Mapas Autoorganizados (SOM).
5/10/2018 Pr ctica+laboratorio+CI+#+2 - slidepdf.com
http://slidepdf.com/reader/full/practicalaboratorioci2 2/6
Aspectos importantes del aprendizaje de una RNA:
- El conocimiento de las redes neuronales se encuentra almacenado en los pesos y bias.
- El entrenamiento puede ser por lotes o batch (se actualizan los pesos al concluir) o
incremental (se actualizan los pesos en cada iteración).
- Entrenamiento de una red neuronal puede ser detenido por dos factores: la cantidad de
épocas y el error de aprendizaje.
- Compromiso entre memorización y generalización.
II. Desarrollo:
Ejercicio 1:
Simule el comportamiento de una función lógica OR empleando una red neuronal artificial de
tipo perceptron simple capa.
Actividades:
- Establecer la arquitectura de la red neuronal:Debido a que serán dos las entradas necesarias para aproximar la función deseada y una la
salida que la misma proporcionará se determina que la red perceptron tendrá dos neuronas
en la capa de entrada y una en la de salida.
Debido a la estructura clásica del perceptron simple capa la función de activación será el
límite rígido.
- Crear la RNA con comandos:
El comando que brinda el Matlab para la creación de una RNA perceptron simple capa es el
siguiente:
net = newp (PR, S)
PR: Es una matriz de Rx2 elementos con los valores máximo y mínimo de los R elementos de
entrada a la RNA.
S: Número de neuronas.
>>net = newp([0 1; 0 1], 1);
¿Cuál es el valor inicial de los pesos y bias de la red?
Esto se puede verificar accediendo a los miembros de la estructura RNA creada.
IW: contiene la matriz de pesos de entradas.
LW: contiene la matriz de pesos de las capas.
b: contiene el vector de bias.
>>net.IW{1,1}
>>net.b{1}
El valor inicial de los pesos y bias se debe a la función de inicialización que tienen, como
puede verse con los siguientes comandos:
>>net.inputWeights{1,1}
>>net.biases{1}
5/10/2018 Pr ctica+laboratorio+CI+#+2 - slidepdf.com
http://slidepdf.com/reader/full/practicalaboratorioci2 3/6
- Determinar los patrones:
>>p = [1 0 1 0; 0 1 1 0];
>>t = [1 1 1 0];
- Probar el desempeño de la RNA para cada uno de los patrones de la siguiente forma:
>>p1=[1;1]>>y1 = sim(net,p1)
Y así sucesivamente para el resto.
- Entrenamiento de las RNA:
• Inicialice la RNA:
Para poder inicializar con valores diferentes a cero es necesario primero cambiar las
funciones de inicialización de los pesos de entrada y los bias con los siguientes
comandos:
>>net.inputWeigths{1,1}.initFcn='rands';
>>net.biases{1,1}.initFcn='rands';
Y posteriormente inicialice la red.
>> net=init(net);
• Compruebe el cambio de los pesos y bias.
Pase entonces al entrenamiento de la red propiamente dicho, el cual puede realizarlo de
dos formas: entrenando la RNA patrón a patrón mediante learnp y simulando o empleando
el comando train.
¿Cuántas épocas tiene la red por defecto para el entrenamiento?
>>net=train(net,p,t)
Utilizar este comando permitirá ver el entrenamiento época a época y como resultado
devolverá una gráfica del error en función de las épocas lo cual puede ser muy
ilustrativo.
• Compruebe que haya aprendido los patrones enseñados mediante la simulación.
>>y =sim(net, pn)
- Comprobar que sucede si se hace el bias igual a cero.
Ejercicio 2:
Aproxime el comportamiento de una función lógica XOR empleando una red neuronal artificial
de tipo Perceptron simple capa.
Actividades:
- Establecer la arquitectura de la red neuronal:
Nuevamente se tiene una función que para simularla se necesitan dos neuronas de entrada a
la red y una de salida, por lo que esta será la estructura de la red neuronal a crear.
La función de activación de la capa de salida es de límite rígido debido a especificaciones de
diseño de esta red neuronal.
5/10/2018 Pr ctica+laboratorio+CI+#+2 - slidepdf.com
http://slidepdf.com/reader/full/practicalaboratorioci2 4/6
- Crear la RNA con comandos:
Se emplea el mismo comando visto en el ejercicio anterior por lo que la creación de la red
neuronal quedaría de la forma siguiente:
>>net = newp([0 1; 0 1], 1);
Sucede lo mismo que en el caso anterior con el valor inicial de los pesos.
- Determinar los patrones:
>>p = [1 0 1 0; 0 1 1 0];
>>t = [1 1 0 0];
- Probar el desempeño de la RNA para cada uno de los patrones de la siguiente forma:
>>p1=[1;1];
>>y1 = sim(net,p1)
Compruebe de igual forma el desempeño de la red para los demás patrones. Seguidamente
pase al entrenamiento de la red.
- Para el entrenamiento de la red neuronal sigue los siguientes pasos:
• Inicialice la RNA:
Al igual que en el ejercicio anterior hay que modificar las funciones de inicialización
con las que se crea la red por defecto para que los pesos tengan un valor inicial
diferente de cero. Luego la inicializa con el comando ya visto.
>> net=init(net);
• Compruebe que hubo un cambio en los pesos y bias.
• Pase entonces a entrenar la red empleando el comando visto anteriormente
>>net=train(net,p,t)
En un primer entrenamiento se observa que no se logra alcanzar el error
deseado por lo que se prueba aumentando el número de épocas.
>> net.trainParam.epochs=500;
• Compruebe que a pesar de haber aumentado las épocas no se logra alcanzar el error
deseado por lo que se concluye que con esta red no se puede resolver el problema
planteado por lo que buscamos otra variante.
Ejercicio # 3:
Resuelva el ejercicio anterior pero empleando una red neuronal artificial de tipo Perceptron
multicapa.
- Establecer la arquitectura de la red neuronal:
La red neuronal por características propias contará con una capa de entrada, una oculta y
una de salida.
Nuevamente se tiene que son dos entradas y una salida las necesarias para simular lafunción que se desea, por lo que la red neuronal a emplear tendrá dos neuronas en la capa
de entrada y una en la de salida.
5/10/2018 Pr ctica+laboratorio+CI+#+2 - slidepdf.com
http://slidepdf.com/reader/full/practicalaboratorioci2 5/6
En cuanto a las neuronas de la capa oculta, se comenzará probando con un número mínimo
y luego se aumentará el número de elementos ocultos hasta obtener el deseado, en
dependencia del error cometido por la red y de la complejidad de la arquitectura.
En la capa oculta usarán funciones de activación de tipo sigmoidea (tan-sigmoidea) y en la
capa de salida funciones de activación lineal.
- Crear la RNA con comandos:
>>net= newff(PR,[S1 S2...Sn],{TF1 TF2...TFn},BTF,BLF,PF);
PR: Es una matriz de Rx2 elementos con los valores máximo y mínimo de los R elementos
del vector de entrada a la RNA.
Si: Tamaño de la iésima capa, para n capas.
TFi: Función transferencial para la iésima capa (por defecto: tansig)
BTF: Función de entrenamiento para la red BP (por defecto: traingdx). Posibles variantes:
trainlm, trainbfg, trainrp, traingd, traingdm
BLF: Función de aprendizaje para los pesos y bias de la red BP (por defecto: learngdm).
Posibles variantes: learngd
PF: Función de rendimiento (Por defecto: mse). Posibles variantes: msereg, mae,
En este caso sería:
>>net=newff([0 1; 0 1], [1, 1], {'tansig', 'purelin'}, 'traingd');
- Probar el desempeño de la RNA para cada uno de los patrones (serán los mismos del
ejercicio anterior) de la siguiente forma:
>>p = [1 0 1 0; 0 1 1 0];
>>t = [1 1 0 0];
>>p1=[1;1]
>>y1 = sim(net,p1)
- Para el entrenamiento de la red neuronal siga los siguientes pasos:
• Inicialice la RNA:
>> net=init(net);
• Pase entonces a entrenar la red empleando el comando visto anteriormente
>>net=train(net,p,t);
Variar los siguientes parámetros alternativamente: Número de elementos en la
capa oculta (aumentar); número de épocas si es necesario (aumentar) hasta
lograr entrenar la red adecuadamente.
• Compruebe que haya aprendido los patrones enseñados mediante la simulación.
>>y =sim(net, pn)
5/10/2018 Pr ctica+laboratorio+CI+#+2 - slidepdf.com
http://slidepdf.com/reader/full/practicalaboratorioci2 6/6
III. Conclusiones:
- Con la práctica de laboratorio realizada se pudo comprobar algunas de las características de
las redes neuronas artificiales estudiadas en clases.
- Se trabajó con una de las arquitecturas más difundidas: el Perceptron multicapa.
- Se conocieron diferentes variantes que trae implementadas el Matlab para el trabajo con lasredes neuronales artificiales en cuanto a la arquitectura, forma de entrenamiento, funciones
de activación, funciones de rendimiento, etc.
- Se adquirieron habilidades para el trabajo con las redes neuronales artificiales en Matlab.
IV. Trabajo Individual (Tarea):
1. Aproxime una función lógica AND empleando una red neuronal artificial de tipo Perceptron
simple capa. Describa los pasos realizados y arribe a conclusiones.
2. Resuelva el ejercicio tres variando al menos una vez los siguientes parámetros: función
transferencial de la capa oculta, función de entrenamiento. Arribar a conclusiones.