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] .