Laboratorio 1 - Control inteligente

Anuncio
CONTROL INTELIGENTE
Laboratorio Nº1 ARQUITECTURA BÁSICA DE UNA RED NUERONAL
Profesor: Juan Pablo Rivera.
Objetivos
 Implementar diferentes algoritmos de entrenamiento para una neurona que
resuelva problemas específicos
 Utilizar comandos básicos de MATLAB para programar el entrenamiento y
la ejecución de una red neuronal
 Analizar y comparar los algoritmos de entrenamiento vistos en clase.
1. Dibujo de una neurona biológica y una neurona artificial, señalando sus
partes y comentando sus analogías.
NEURONA BIOLÓGICA
PARTE
Entrada de
información.
Integración de
la información
Núcleo.
Salida final de
información
Sinapsis
NEURONA ARTIFICIAL
NEURONA BIOLÓGICA
NEURONA ARTIFICIAL
Árbol dendrítico ó Dendritas
Vector de entradas x=[X1 X2 X3 …Xn]
Se realiza en el por medio del
axón
Toma una decisión todo o nada.
Cuando se supera un umbral la
neurona se activa y se genera un
potencial de acción
Es potencial de acción que se
transporta por el axón hacia los
terminales axonicos
Proceso de comunicación entre
dos neuronas que se da cuando
los terminales axonicos de una
hacen interacción con las
dendritas de otra.
Sumador, el cual realiza una suma
ponderada de las entradas
Depende de la función de activación
fk(s), que puede ser hardlim, tanh,
entre otras.
Valor real Yk = fk(s),
Comunicación entre dos neuronas
artificiales, la cual se da cuando el
vector de salidas de una neurona se
convierte en el vector de entradas de
otra.
2. Diga que tipos de problemas puede resolver un perceptrón. Explique
Este tipo te neurona se utiliza para resolver problemas como asociación de
patrones, segmentación de imágenes, compresión de datos, entre otros
similares; esto debido a que estos problemas son linealmente separables en un
plano geométrico, y este es el único tipo de problemas que puede resolver una
neurona tipo perceptrón.
3. Ejecución manual del procedimiento y cálculos requeridos en una
iteración completa para entrenar un combinador lineal adaptativo para
que realice la regresión: yk=a1*yk-1+a2*yk-2
Utilizaremos los siguientes datos:
MES
1
2
3
4
5
6
7
8
9
10
11
12
GWH
3000.8
2267.1
1685.6
1855.2
2031.7
1995.2
2408.8
2637.6
2523.1
2485.6
2124.9
1908.9
Primero organizamos los datos de manera adecuada para realizar la regresión
MES n-2
3000.8
2267.1
1685.6
1855.2
2031.7
1995.2
2408.8
2637.6
MES n-1
2267.1
1685.6
1855.2
2031.7
1995.2
2408.8
2637.6
2523.1
MES
1685.6
1855.2
2031.7
1995.2
2408.8
2637.6
2523.1
2485.6
2523.1
2485.6
2485.6
2124.9
2124.9
1908.9
A continuación se normalizan los datos
MES n-2
1.0000
-0.1157
-1.0000
-0.7421
-0.4737
-0.5292
0.0998
0.4477
0.2736
0.2165
MES n-1
-0.1157
-1.0000
-0.7421
-0.4737
-0.5292
0.0998
0.4477
0.2736
0.2165
-0.3320
MES
-1.0000
-0.7421
-0.4737
-0.5292
0.0998
0.4477
0.2736
0.2165
-0.3320
-0.6604
Con base a la tabla de datos normalizada se observa que nuestra neurona
debe tener dos entradas y una salida, con una función de activación PURELIN,
ya que nos piden utilizar un combinador lineal adaptativo. El método de
entrenamiento a utilizar será α-LMS por gradiente, ya que este es el método
más utilizado para el combinador lineal adaptativo.
Se selecciona de manera aleatoria un factor “α” y un vector de pesos “W”
W= [-0.7; -0.3; 0.2] y α=0.5
Hallamos la suma ponderada del las entradas por los pesos iníciales.
La salida es la misma debido a que se usa función Purelin
Encuentro el nuevo vector de entradas

De esta manera queda completa la primera iteración por algoritmo α-LMS
Asumiendo que la neurona ya ha sido entrenada, esto significa que el
vector de pesos se encuentra con los valores adecuados para este proceso, de
manera que la neurona tenga un comportamiento ideal.
Cabe resaltar que esta neurona una vez entrenada no servirá para otra
aplicación, ya que el vector de pesos se encuentra adaptado a los valores del
proceso.
A continuación se presentan los vectores de pesos obtenidos con la ayuda del
MATLAB y el tiempo de ejecución de cada algoritmo.
Combinador Lineal
Corrección de
Gradiente
error
Limitador duro
Corrección de
Gradiente
error
0.021616 seg
0.002091 seg
0.002080 seg
Tangente Hiperbólica
Corrección de
Gradiente
error
0.002155 seg
Sigmoidal
Corrección de
Gradiente
error
0.083601 seg
0.002768 seg
0.031592 seg
0.002844 seg
Con la neurona ya entrenada se procede a predecir los datos para la reserva
hidráulica de los meses 13, 14 y 15, quedando de la siguiente manera:
MES
13
14
15
MES
13
14
15
Combinador Lineal
Corrección
Gradiente
de error
1006.1
987.9
1433.9
1384.2
1712.0
1648.5
Tangente Hiperbólica
Corrección
Gradiente
de error
869.4
824.8
1235.6
1166.1
1597.4
1557.6
Limitador duro
Corrección
Gradiente
de error
-1113
-2290.0
-6956
-23620
-33772
-210610
Sigmoidal
Corrección
Gradiente
de error
800
1000
-8110000
-14700000
8022900000 1690000000
CONCLUSIONES
 La implementación de diferentes tipos de entrenamiento permite determinar
cuál de estos es el mejor para un problema especifico.
 La diferencia entre los algoritmos explicados en clase radica en su función
de activación y la forma como se obtiene el vector de pesos.
 La programación en MATLAB ayuda a que el proceso de entrenamiento se
realice con gran precisión en segundos, mientras que el realizar esta de
manera manual podría tardarse horas o incluso días, sin garantizar
exactitud en el proceso de entrenamiento.
 Los algoritmos que presentaron mejor respuesta fueron aquellos basados
en la corrección de error, aunque la ventaja de los basados en gradiente es
su rapidez, ya que estos son diez veces más rápidos.
 Para el ejemplo de la reserva hidráulica no es recomendable entrenar la
neurona con una función de activación hardlim o una signoidal, ya que
estas entregaron errores muy altos y valores negativos en la predicción de
los futuros meses cosa que no tiene sentido.
 Es aconsejable entrenar la neurona con funciones de activación purelin y
tangente hiperbólica, debido a que estos redujeron el error y entregaron
valores que además de positivos eran coherentes en la salida, resaltando
que para nuestro caso el algoritmo de entrenamiento más eficiente fue el
que tenía una función de activación tanh con factor de corrección de error.
NOTA: El código en MATLAB será enviado al docente vía e-mail, para recibir una
copia de este favor solicitarlo al correo [email protected] .
Descargar