Profesor: Ing. Marco Antonio Acosta Mendizbal Antologa De Inteligencia Artificial (Redes neuronales) Crdito Adicional Alumno: Zamudio Ibarra Anali Orozco Salomn Oscar Lpez Zamora Jovanny Martnez Galicia Cesar Vazquez Lorenzo Anselmo Bautista Bautista Pedro Joan Semestre: Sptimo Grupo: 4701 INDICE Captulo 1 1.1introduccin a las redes neuronales 1.2funcionamiento de una red neuronal 1.3caractersticas una red neuronal 1.3.1 notacin 1.3.2 funciones de transferencia 1.3.2.1 funcin de transferencia limitador fuerte (hardlim) 1.3.2.2 funcin de transferencia lineal (purelin) 1.3.2.3 funcin de transferencia sigmoidal (logsig) 1.3.3 topologa de una red Capitulo 2 2.1 PERCEPTRON 2.1.1 Antecedentes 2.1.2 Estructura de la Red 2.1.3 Regla de Aprendizaje 2.1.4 Limitacion del Perceptron 2.1.5 Perceptron Multicapa 2.2 ADALINE 2.1.1 Antecedentes 2.1.2 Estructura de la Red 2.1.3 Regla de Aprendizaje 2.3 BACKPROPAGATION 2.3.1 Antecedentes 2.3.2 Estructura de la Red 2.3.3 Regla de Aprendizaje 2.3.3.1 Red Backpropagation con momentum 2.3.3.2 Red Backpropagation con rata de aprendizaje variable 2.3.3.3 Mtodo del Gradiente Conjugado 2.3.3.4 Algoritmo de Levenberg - Marquardt 2.4 APRENDIZAJE ASOCIATIVO 2.4.1 Antecedentes 2.4.2 Estructura de la Red 2.4.3 Regla de Hebb 2.4.4 Red Instar 2.4.5 Red Oustar 2.5 REDES COMPETITIVAS 2.5.1 Antecedentes 2.5.2 Red de Kohonen 2.5.3 Red de Hamming 2.5.4 Estructura de la Red 2.5.5 Regla de Aprendizaje 2.5.6 Problemas con las Redes Competitivas 2.5.7 Mapas de Auto Organizacin (SOM) 2.5.8 Learning Vector Quantization (LVQ) 3.1 deteccin de obstculos por medio de un robot 3.2 control de giro de un motor de induccin jaula de ardilla 3.3 filtro adaptivo 3.4 prediccin de consumo de carga 3.5 control de voltaje por inyeccin de reactivos en una barra remota 3.6 reconfiguracin de un alimentador primario de catorce nodos 3.7 identificacin de un sistema no lineal 2.6 REDES RECURRENTES 2.6.1 Red de hopfield 2.6.1.1 Antecedentes 2.6.1.2 Estructura de la Red 2.6.1.3 Regla de Aprendizaje 2.6.1.4 Indentificacion de Sistemas Dinamicos No Lineales 2.6.2 Redes Multicapa 2.6.2.1 Estructura de la Red 2.6.2.2 Regla de aprendizaje 2.6.3 Red de Elman 2.6.3.1 Estructura de la Red 2.6.3.2 Entrenamiento de la Red CAPITULO 1 CARACTERSTICAS PRINCIPALES DE LAS REDES NEURONALES 1. CARACTERSTICAS PRINCIPALES DE LAS REDES NEURONALES 1.1 INTRODUCCIN A LAS REDES NEURONALES Resulta irnico pensar que mquinas de cmputo capaces de realizar 100 millones de operaciones en coma flotante por segundo, no sean capaces de entender el significado de las formas visuales o de distinguir entre distintas clases de objetos. Los sistemas de computacin secuencial, son exitosos en la resolucin de problemas matemticos o cientficos, en la creacin, manipulacin y mantenimiento de bases de datos, en comunicaciones electrnicas, en el procesamiento de textos, grficos y auto edicin, incluso en funciones de control de electrodomsticos, hacindolos ms eficientes y fciles de usar, pero definitivamente tienen una gran incapacidad para interpretar el mundo. Esta dificultad de los sistemas de cmputo que trabajan bajo la filosofa de los sistemas secuenciales, desarrollados por Von Neumann, ha hecho que un gran nmero de investigadores centre su atencin en el desarrollo de nuevos sistemas de tratamiento de la informacin, que permitan solucionar problemas cotidianos, tal como lo hace el cerebro humano; este rgano biolgico cuenta con varias caractersticas deseables para cualquier sistema de procesamiento digital, tales como: 1. Es robusto y tolerante a fallas, diariamente mueren neuronas sin afectar su desempeo. 2. Es flexible, se ajusta a nuevos ambientes por aprendizaje, no hay que programarlo. 3. Puede manejar informacin difusa, con ruido o inconsistente. 4. Es altamente paralelo 5. Es pequeo, compacto y consume poca energa. El cerebro humano constituye una computadora muy notable, es capaz de interpretar informacin imprecisa suministrada por los sentidos a un ritmo increblemente veloz. Logra discernir un susurro en una sala ruidosa, un rostro en un callejn mal iluminado y leer entre lneas un discurso; lo ms impresionante de todo, es que el cerebro aprende sin instrucciones explcitas de ninguna clase, a crear las representaciones internas que hacen posibles estas habilidades. Basados en la eficiencia de los procesos llevados a cabo por el cerebro, e inspirados en su funcionamiento, varios investigadores han desarrollado desde hace ms de 30 aos la teora de las Redes Neuronales Artificiales (RNA), las cuales emulan las redes neuronales biolgicas, y que se han utilizado para aprender estrategias de solucin basadas en ejemplos de comportamiento tpico de patrones; estos sistemas no requieren que la tarea a ejecutar se programe, ellos generalizan y aprenden de la experiencia. La teora de las RNA ha brindado una alternativa a la computacin clsica, para aquellos problemas, en los cuales los mtodos tradicionales no han entregado resultados muy convincentes, o poco convenientes. Las aplicaciones ms exitosas de las RNA son: 1. Procesamiento de imgenes y de voz 2. Reconocimiento de patrones 3. Planeamiento 4. Interfaces adaptivas para sistemas Hombre/mquina 5. Prediccin 6. Control y optimizacin 7. Filtrado de seales Los sistemas de cmputo tradicional procesan la informacin en forma secuencial; un computador serial consiste por lo general de un solo procesador que puede manipular instrucciones y datos que se localizan en la memoria, el procesador lee, y ejecuta una a una las instrucciones en la memoria; este sistema serial es secuencial, todo sucede en una sola secuencia determinstica de operaciones. Las RNA no ejecutan instrucciones, responden en paralelo a las entradas que se les presenta. El resultado no se almacena en una posicin de memoria, este es el estado de la red para el cual se logra equilibrio. El conocimiento de una red neuronal no se almacena en instrucciones, el poder de la red est en su topologa y en los valores de las conexiones (pesos) entre neuronas. Las RNA son una teora que an est en proceso de desarrollo, su verdadera potencialidad no se ha alcanzado todava; aunque los investigadores han desarrollado potentes algoritmos de aprendizaje de gran valor prctico, las representaciones y procedimientos de que se sirve el cerebro, son an desconocidas. Tarde o temprano los estudios computacionales del aprendizaje con RNA acabarn por converger a los mtodos descubiertos por evolucin, cuando eso suceda, muchos datos empricos concernientes al cerebro comenzarn sbitamente a adquirir sentido y se tornarn factibles muchas aplicaciones desconocidas de las redes neuronales. 1. CARACTERSTICAS PRINCIPALES DE LAS REDES NEURONALES 1.2 FUNCIONAMIENTO DE UNA NEURONA BIOLGICA El cerebro consta de un gran nmero (aproximadamente 10 11 ) de elementos altamente interconectados (aproximadamente 10 4 conexiones por elemento), llamados neuronas. Estas neuronas tienen tres componentes principales, las dendritas, el cuerpo de la clula o soma, y el axn. Las dendritas, son el rbol receptor de la red, son como fibras nerviosas que cargan de seales elctricas el cuerpo de la clula. El cuerpo de la clula, realiza la suma de esas seales de entrada. El axn es una fibra larga que lleva la seal desde el cuerpo de la clula hacia otras neuronas. El punto de contacto entre un axn de una clula y una dendrita de otra clula es llamado sinapsis, la longitud de la sinapsis es determinada por la complejidad del proceso qumico que estabiliza la funcin de la red neuronal. Un esquema simplificado de la interconexin de dos neuronas biolgicas se observa en la figura 1.2.1 Figura 1.2.1 Neuronas Biolgicas Algunas de las estructuras neuronales son determinadas en el nacimiento, otra parte es desarrollada a travs del aprendizaje, proceso en que nuevas conexiones neuronales son realizadas y otras se pierden por completo. El desarrollo neurolgico se hace crtico durante los primeros aos de vida, por ejemplo est demostrado que si a un cachorro de gato, se le impide usar uno de sus ojos durante un periodo corto de tiempo, el nunca desarrollara una visin normal en ese ojo. Las estructuras neuronales continan cambiando durante toda la vida, estos cambios consisten en el refuerzo o debilitamiento de las uniones sinpticas; por ejemplo se cree que nuevas memorias son formadas por la modificacin de esta intensidad entre sinapsis, as el proceso de recordar el rostro de un nuevo amigo, consiste en alterar varias sinapsis. Como consecuencia de los primeros estudios sobre la base neural de los sistemas mnmicos (relacionados con la memoria), se crea que el almacenamiento de la memoria asociativa, tanto implcita como explcita, requeran de un circuito neuronal muy complejo. Entre quienes comenzaron a oponerse a este enfoque se hallaba Donald O. Hebb, profesor de la universidad de Milner; Hebb sugiri que el aprendizaje asociativo podra ser producido por un mecanismo celular sencillo y propuso que las asociaciones podran formarse por una actividad neuronal coincidente: "Cuando un axn de la clula A excita la clula B y participa en su activacin, se produce algn proceso de desarrollo o cambio metablico en una o en ambas clulas, de suerte que la eficacia de A, como clula excitadora de B, se intensifica". Segn la regla Hebbiana de aprendizaje, el que coincida la actividad de las neuronas presinpticas (suministran el impulso de entrada) con la de las postsinpticas (reciben el impulso) es muy importante para que se refuerce la conexin entre ellas, este mecanismo es llamado pre-postasociativo, del cual puede observarse un ejemplo en la figura 1.2.2 Figura 1.2.2 Cambios asociativos de las fuerzas sinpticas durante el aprendizaje Todas las neuronas conducen la informacin de forma similar, esta viaja a lo largo de axones en breves impulsos elctricos, denominados potenciales de accin; los potenciales de accin que alcanzan una amplitud mxima de unos 100 mV y duran 1 ms, son resultado del desplazamiento a travs de la membrana celular de iones de sodio dotados de carga positiva, que pasan desde el fluido extracelular hasta el citoplasma intracelular; la concentracin extracelular de sodio supera enormemente la concentracin intracelular. La membrana en reposo mantiene un gradiente de potencial elctrico de -70mv, el signo negativo se debe a que el citoplasma intracelular est cargado negativamente con respecto al exterior; los iones de sodio no atraviesan con facilidad la membrana en reposo, los estmulos fsicos o qumicos que reducen el gradiente de potencial, o que despolaricen la membrana, aumentan su permeabilidad al sodio y el flujo de este ion hacia el exterior acenta la despolarizacin de la membrana, con lo que la permeabilidad al sodio se incrementa ms an. Alcanzado un potencial crtico denominado "umbral", la realimentacin positiva produce un efecto regenerativo que obliga al potencial de membrana a cambiar de signo. Es decir, el interior de la clula se torna positivo con respecto al exterior, al cabo de 1 ms, la permeabilidad del sodio decae y el potencial de membrana retorna a -70mv, su valor de reposo. Tras cada explosin de actividad inica, el mecanismo de permeabilidad del sodio se mantiene refractario durante algunos milisegundos; la tasa de generacin de potenciales de accin queda as limitada a unos 200 impulsos por segundo, o menos. Aunque los axones puedan parecer hilos conductores aislados, no conducen los impulsos elctricos de igual forma, como hilos elctricos no seran muy valiosos, pues su resistencia a lo largo del eje es demasiado grande y a resistencia de la membrana demasiado baja; la carga positiva inyectada en el axn durante el potencial de accin queda disipada uno o dos milmetros ms adelante, para que la seal recorra varios centmetros es preciso regenerar frecuentemente el potencial de accin a lo largo del camino la necesidad de reforzar repetidamente esta corriente elctrica limita a unos 100 metros por segundo la velocidad mxima de viaje de los impulsos, tal velocidad es inferior a la millonsima de la velocidad de una seal elctrica por un hilo de cobre. Los potenciales de accin, son seales de baja frecuencia conducidas en forma muy lenta, estos no pueden saltar de una clula a otra, la comunicacin entre neuronas viene siempre mediada por transmisores qumicos que son liberados en las sinapsis. Un ejemplo de comunicacin entre neuronas y del proceso qumico de la liberacin de neurotransmisores se ilustra en la figura 1.2.3. Figura 1.2.3 Comunicacin entre neuronas Cuando un potencial de accin llega al terminal de un axn son liberados transmisores alojados en diminutas vesculas, que despus son vertidos en una hendidura de unos 20 nanmetros de anchura que separa la membrana presinptica de la postsinptica; durante el apogeo del potencial de accin, penetran iones de calcio en el terminal nervioso, su movimiento constituye la seal determinante de la exocitosis sincronizada, esto es la liberacin coordinada de molculas neurotransmisoras. En cuanto son liberados, los neurotransmisores se enlazan con receptores postsinpticos, instando el cambio de la permeabilidad de la membrana. Cuando el desplazamiento de carga hace que la membrana se aproxime al umbral de generacin de potenciales de accin, se produce un efecto excitador y cuando la membrana resulta estabilizada en la vecindad el valor de reposo se produce un efecto inhibidor. Cada sinapsis produce slo un pequeo efecto, para determinar la intensidad (frecuencia de los potenciales de accin) de la respuesta cada neurona ha de integrar continuamente hasta unas 1000 seales sinpticas, que se suman en el soma o cuerpo de la clula. En algunas neuronas los impulsos se inician en la unin entre el axn y el soma, y luego se transmiten a lo largo del axn a otras clulas nerviosas. Cuando el axn est cerca de sus clulas destino, se divide en muchas ramificaciones que forman sinapsis con el soma o axones de otras clulas. Las sinapsis pueden ser excitatorias o inhibitorias segn el neurotransmisor que se libere, cada neurona recibe de 10.000 a 100.000 sinapsis y su axn realiza una cantidad similar de sinapsis. Las sinapsis se clasifican segn su posicin en la superficie de la neurona receptora en tres tipos: axo-somtica, axo-dendrtica, axo-axnica. Los fenmenos que ocurren en la sinapsis son de naturaleza qumica, pero tienen efectos elctricos laterales que se pueden medir. En la figura 1.2.4 se visualiza el proceso qumico de una sinapsis y los diferentes elementos que hacen parte del proceso tanto en la neurona presinptica, como en la postsinptica. Figura 1.2.4 Proceso qumico de una sinapsis Las RNA no alcanzan la complejidad del cerebro, sin embargo hay dos aspectos similares entre redes biolgicas y artificiales, primero los bloques de construccin de ambas redes son sencillos elementos computacionales (aunque las RNA son mucho ms simples que las biolgicas) altamente interconectados; segundo, las conexiones entre neuronas determinan la funcin de la red. 1. CARACTERSTICAS PRINCIPALES DE LAS REDES NEURONALES 1.3 CARACTERISTICAS DE UNA RED NEURONAL ARTIFICIAL El modelo de una neurona artificial es una imitacin del proceso de una neurona biolgica, puede tambin asemejarse a un sumador hecho con un amplificador operacional tal como se ve en la figura 1.3.1. Figura 1.3.1 Neurona Artificial Existen varias formas de nombrar una neurona artificial, es conocida como nodo, neuronodo, celda, unidad o elemento de procesamiento (PE); En la figura 1.3.1 se observa un PE en forma general y su similitud con una neurona biolgica Figura 1.3.2 De la neurona biolgica a la neurona artificial De la observacin detallada del proceso biolgico se han hallado los siguientes anlogos con el sistema artificial: Las entradas Xi representan las seales que provienen de otras neuronas y que son capturadas por las dendritas. Los pesos Wi son la intensidad de la sinapsis que conecta dos neuronas; tanto Xi como Wi son valores reales. es la funcin umbral que la neurona debe sobrepasar para activarse; este proceso ocurre biolgicamente en el cuerpo de la clula. Las seales de entrada a una neurona artificial X1, X2,.., Xn son variables continuas en lugar de pulsos discretos, como se presentan en una neurona biolgica. Cada seal de entrada pasa a travs de una ganancia o peso, llamado peso sinptico o fortaleza de la conexin cuya funcin es anloga a la de la funcin sinptica de la neurona biolgica. Los pesos pueden ser positivos (excitatorios), o negativos (inhibitorios), el nodo sumatorio acumula todas las seales de entradas multiplicadas por los pesos o ponderadas y las pasa a la salida a travs de una funcin umbral o funcin de transferencia. La entrada neta a cada unidad puede escribirse de la siguiente manera (1.3.1) Una idea clara de este proceso se muestra en la figura 1.3.3, en donde puede observarse el recorrido de un conjunto de seales que entran a la red. Figura 1.3.3 Proceso de una red neuronal Una vez que se ha calculado la activacin del nodo, el valor de salida equivale a (1.3.2) Donde representa la funcin de activacin para esa unidad, que corresponde a la funcin escogida para transformar la entrada netai en el valor de salida y que depende de las caractersticas especficas de cada red. 1.3 CARACTERISTICAS DE UNA RED NEURONAL ARTIFICIAL 1.3.1 Notacin: Una notacin matemtica estndar no ha sido an establecida para las redes neuronales, ya que sus aplicaciones son tiles en muchos campos, Ingeniera, Fsica, Sicologa y Matemticas. En este trabajo se adopt la siguiente convencin para identificar las variables, de manera que fuera compatibles con las diferentes reas, siendo lo ms sencilla posible: Valores escalares: se representarn por medio de letra minscula itlica Vectores: se representarn con letra itlica minscula en negrilla. Matrices: se representarn con letra mayscula itlica en negrilla. Para redes multicapa, los parmetros adoptaran la siguiente forma: Donde c, es el nmero de la capa a la que corresponde dicho peso, y s representa las neuronas que participan en proceso. As representa el peso de la segunda capa que comunica la primera neurona de dicha capa con la primera neurona de la primera capa. De igual manera el peso que representa la conexin desde la ltima neurona de la capa dos a la ltima neurona de la capa uno estar representado por: Esta convencin es adoptada para todos los parmetros de la red. 1.3 CARACTERISTICAS DE UNA RED NEURONAL ARTIFICIAL 1.3.2 Funciones de Transferencia: Un modelo ms acadmico que facilita el estudio de una neurona, puede visualizarse en la figura 1.3.4 Figura 1.3.4 Neurona de una sola entrada Las entradas a la red sern ahora presentadas en el vector p, que para el caso de una sola neurona contiene solo un elemento, w sigue representando los pesos y la nueva entrada b es una ganancia que refuerza la salida del sumador n, la cual es la salida neta de la red; la salida total est determinada por la funcin de transferencia , la cual puede ser una funcin lineal o no lineal de n, y que es escogida dependiendo de las especificaciones del problema que la neurona tenga que resolver; aunque las RNA se inspiren en modelos biolgicos no existe ninguna limitacin para realizar modificaciones en las funciones de salida, as que se encontrarn modelos artificiales que nada tienen que ver con las caractersticas del sistema biolgico. 1.3.2.1 Limitador fuerte (Hardlim): La figura 1.3.5, muestra como esta funcin de transferencia acerca la salida de la red a cero, si el argumento de la funcin es menor que cero y la lleva a uno si este argumento es mayor que uno. Esta funcin crea neuronas que clasifican las entradas en dos categoras diferentes, caracterstica que le permite ser empleada en la red tipo Perceptrn (1.3.3) Figura 1.3.5 Funcin de transferencia Hardlim El icono para la funcin Hardlim reemplazara a la letra f en la expresin general, cuando se utilice la funcin Hardlim. Una modificacin de esta funcin puede verse en la figura 1.3.6, la que representa la funcin de transferencia Hardlims que restringe el espacio de salida a valores entre 1 y 1. (1.3.4) Figura 1.3.6 Funcin de transferencia Hardlims 1.3.2.2 Funcin de transferencia lineal (purelin): La salida de una funcin de transferencia lineal es igual a su entrada, (1.3.5) Figura 1.3.7 Funcin de transferencia lineal En la grfica del lado derecho de la figura 1.3.6, puede verse la caracterstica de la salida a de la red, comparada con la entrada p, ms un valor de ganancia b, neuronas que emplean esta funcin de transferencia son utilizadas en la red tipo Adaline. 1.3.2.3 Funcin de transferencia sigmoidal (logsig): Esta funcin toma los valores de entrada, los cuales pueden oscilar entre ms y menos infinito, y restringe la salida a valores entre cero y uno, de acuerdo a la expresin (1.3.6) Esta funcin es comnmente usada en redes multicapa, como la Backpropagation, en parte porque la funcin logsig es diferenciable. Figura 1.3.8 Funcin de transferencia sigmoidal La tabla 1.3.1 hace una relacin de las principales funciones de transferencia empleadas en el entrenamiento de redes neuronales. Nombre Relacin Entrada /Salida Icono Funcin Limitador Fuerte hardlim Limitador Fuerte Simtrico hardlims Lineal Positiva poslin Lineal purelin Lineal Saturado satlin Lineal Saturado Simtrico satlins Sigmoidal Logartmico logsig Tangente Sigmoidal Hiperblica tansig Competitiva compet Tabla 1.3.1 Funciones de Transferencia 1.3 CARACTERISTICAS DE UNA RED NEURONAL ARTIFICIAL 1.3.3 Topologa de una Red: Tpicamente una neurona tiene ms de una entrada; en la figura 1.3.9 se observa una neurona con R entradas; las entradas individuales p1,p2,...,pR son multiplicadas por los pesos correspondientes w1,1, w1,2,...w1,R pertenecientes a la matriz de pesos W. Figura 1.3.9 Neurona con mltiples entradas La neurona tiene una ganancia b, la cual llega al mismo sumador al que llegan las entradas multiplicadas por los pesos, para formar la salida n, (1.3.7) Esta expresin puede ser escrita en forma matricial (1.3.8) Los subndices de la matriz de pesos representan los trminos involucrados en la conexin, el primer subndice representa la neurona destino y el segundo, representa la fuente de la seal que alimenta a la neurona. Por ejemplo, los ndices de w1,2 indican que este peso es la conexin desde la segunda entrada a la primera neurona. Esta convencin se hace ms til cuando hay ms de una neurona, o cuando se tiene una neurona con demasiados parmetros; en este caso la notacin de la figura 1.3.9, puede resultar inapropiada y se prefiere emplear la notacin abreviada representada en la figura 1.3.10 Figura 1.3.10 Neurona con mltiples entradas, notacin abreviada El vector de entrada p es representado por la barra slida vertical a la izquierda. Las dimensiones de p son mostradas en la parte inferior de la variable como Rx1, indicando que el vector de entrada es un vector fila de R elementos. Las entradas van a la matriz de pesos W, la cual tiene R columnas y solo una fila para el caso de una sola neurona. Una constante 1 entra a la neurona multiplicada por la ganancia escalar b. La salida de la red a, es en este caso un escalar, si la red tuviera ms de una neurona a sera un vector. Dentro de una red neuronal, los elementos de procesamiento se encuentran agrupados por capas, una capa es una coleccin de neuronas; de acuerdo a la ubicacin de la capa en la RNA, esta recibe diferentes nombres Capa de entrada: Recibe las seales de la entrada de la red, algunos autores no consideran el vector de entrada como una capa pues all no se lleva a cabo ningn proceso. Capas ocultas: Estas capas son aquellas que no tienen contacto con el medio exterior, sus elementos pueden tener diferentes conexiones y son estas las que determinan las diferentes topologas de la red Capa de salida: Recibe la informacin de la capa oculta y transmite la respuesta al medio externo. Una red de una sola capa con un nmero S de neuronas, se observa en la figura 1.3.11 en la cual, cada una de las R entradas es conectada a cada una de las neuronas, la matriz de pesos tiene ahora S filas. Figura 1.3.11 Capa de S neuronas La capa incluye la matriz de pesos, los sumadores, el vector de ganancias, la funcin de transferencia y el vector de salida. Esta misma capa se observa en notacin abreviada en la figura 1.3.12 Figura 1.3.12 Capa de S neuronas con notacin abreviada En la figura 1.3.12 se han dispuesto los smbolos de las variables de tal manera que describan las caractersticas de cada una de ellas, por ejemplo la entrada a la red es el vector p cuya longitud R aparece en su parte inferior, W es la matriz de pesos con dimensiones SxR expresadas debajo del smbolo que la representa dentro de la red, a y b son vectores de longitud S el cual, como se ha dicho anteriormente representa el nmero de neuronas de la red. Ahora, si se considera una red con varias capas, o red multicapa, cada capa tendr su propia matriz de peso W, su propio vector de ganancias b, un vector de entradas netas n, y un vector de salida a. La versin completa y la versin en notacin abreviada de una red de tres capas, pueden ser visualizadas en las figuras 1.3.13 y 1.3.14, respectivamente. Figura 1.3.13 Red de tres capas Para esta red se tienen R entradas, S 1 neuronas en la primera capa, S 2 neuronas en la segunda capa, las cuales pueden ser diferentes; las salidas de las capas 1 y 2 son las entradas a las capas 2 y 3 respectivamente, as la capa 2 puede ser vista como una red de una capa con R=S 1 entradas, S 1 =S 2 neuronas y una matriz de pesos W 2 de dimensiones S 1 xS 2 Figura 1.3.14 Red de tres capas con notacin abreviada Las redes multicapa son ms poderosas que las redes de una sola capa, por ejemplo, una red de dos capas que tenga una funcin sigmoidal en la primera capa y una funcin lineal en la segunda, puede ser entrenada para aproximar muchas funciones de forma aceptable, una red de una sola capa no podra hacer esto como se ver en captulos posteriores. Un tipo de redes, un poco diferente a las que se han estudiado hasta el momento, son las redes recurrentes, estas contienen una realimentacin hacia atrs o retroalimentacin, es decir algunas de sus salidas son conectadas a sus entradas. Un tipo de red recurrente de tiempo discreto es mostrado en la figura 1.3.15. Figura 1.3.15 Redes Recurrentes Para este tipo particular de red el vector p suple las condiciones iniciales (a(0)= p), y la salida est determinada por: (1.3.9) Donde a(1) y a(2), corresponden a la salida de la red para el primer y segundo intervalo de tiempo, respectivamente. La red alcanzar su estado estable cuando la salida para un instante de tiempo sea la misma salida del instante de tiempo anterior. Las redes recurrentes son potencialmente ms poderosas que las redes con realimentacin hacia delante. En este tipo de redes se introducen tambin dos nuevos conceptos, el bloque de retardo de la figura 1.3.16 y el bloque integrador de la figura 1.3.17 Retardo Figura 1.3.16 Bloque de retardo (1.3.10) La salida del bloque de retardo es el valor de entrada retrasado en un paso de tiempo, este bloque requiere que la salida sea inicializada con el valor a(0) para el tiempo t=0; a(0) se convierte en la salida de la red para el instante de tiempo inicial. Integrador Figura 1.3.17 Bloque integrador La salida del integrador es calculada de acuerdo a la expresin (1.3.11) Una red recurrente cuya implementacin necesita un bloque integrador se ilustra en la figura 2.6.4. En general las redes neuronales se pueden clasificar de diversas maneras, segn su topologa, forma de aprendizaje (supervisado o no supervisado), tipos de funciones de activacin, valores de entrada (binarios o continuos); un resumen de esta clasificacin se observa en la figura 1.3.18 Figura 1.3.18 Clasificacin de las Redes Neuronales CAPITULO 2 PRINCIPALES TIPOS DE REDES NEURONALES 2.1 PERCEPTRN 2.1.1 Antecedentes: La primera red neuronal conocida, fue desarrollada en 1943 por Warren McCulloch y Walter Pitts; esta consista en una suma de las seales de entrada, multiplicadas por unos valores de pesos escogidos aleatoriamente. La entrada es comparada con un patrn preestablecido para determinar la salida de la red. Si en la comparacin, la suma de las entradas multiplicadas por los pesos es mayor o igual que el patrn preestablecido la salida de la red es uno (1), en caso contrario la salida es cero (0). Al inicio del desarrollo de los sistemas de inteligencia artificial, se encontr gran similitud entre su comportamiento y el de los sistemas biolgicos y en principio se crey que este modelo poda computar cualquier funcin aritmtica o lgica. La red tipo Perceptrn fue inventada por el siclogo Frank Rosenblatt en el ao 1957. Su intencin era ilustrar algunas propiedades fundamentales de los sistemas inteligentes en general, sin entrar en mayores detalles con respecto a condiciones especficas y desconocidas para organismos biolgicos concretos. Rosenblatt crea que la conectividad existente en las redes biolgicas tiene un elevado porcentaje de aleatoriedad, por lo que se opona al anlisis de McCulloch Pitts en el cual se empleaba lgica simblica para analizar estructuras bastante idealizadas. Rosenblatt opinaba que la herramienta de anlisis ms apropiada era la teora de probabilidades, y esto lo llev a una teora de separabilidad estadstica que utilizaba para caracterizar las propiedades ms visibles de estas redes de interconexin ligeramente aleatorias. El primer modelo de Perceptrn fue desarrollado en un ambiente biolgico imitando el funcionamiento del ojo humano, el fotoperceptrn como se le llamo era un dispositivo que responda a seales pticas; como se muestra en el figura 2.1.1 la luz incide en los puntos sensibles (S) de la estructura de la retina, cada punto S responde en forma todo-nada a la luz entrante, los impulsos generados por los puntos S se transmiten a las unidades de asociacin (A) de la capa de asociacin; cada unidad A est conectada a un conjunto aleatorio de puntos S, denominados conjunto fuente de la unidad A, y las conexiones pueden ser tanto excitatorias como inhibitorias. Las conexiones tienen los valores posibles +1, -1 y 0, cuando aparece un conjunto de estmulos en la retina, una unidad A se activa si la suma de sus entradas sobrepasa algn valor umbral; si la unidad esta activada, A produce una salida que se enva a la siguiente capa de unidades. Figura 2.1.1 Modelo del Fotoperceptrn de Rosenblatt De forma similar, las unidades A estn conectadas a unidades de respuesta (R) dentro de la capa de respuesta y la conectividad vuelve a ser aleatorio entre capas, pero se aaden conexiones inhibitorias de realimentacin procedentes de la capa de respuesta y que llegan a la capa de asociacin, tambin hay conexiones inhibitorias entre las unidades R. Todo el esquema de conexiones se describe en forma general en un diagrama de Venn, para un Perceptrn sencillo con dos unidades de respuesta como el de la figura 2.1.2. Figura 2.1.2 Esquema de conexiones de un Perceptrn sencillo El Perceptrn era inicialmente un dispositivo de aprendizaje, en su configuracin inicial no estaba en capacidad de distinguir patrones de entrada muy complejos, sin embargo mediante un proceso de aprendizaje era capaz de adquirir esta capacidad. En esencia, el entrenamiento implicaba un proceso de refuerzo mediante el cual la salida de las unidades A se incrementaba o se decrementaba dependiendo de si las unidades A contribuan o no a las respuestas correctas del Perceptrn para una entrada dada. Se aplicaba una entrada a la retina, y el estmulo se propagaba a travs de las capas hasta que se activase una unidad de respuesta. Si se haba activado la unidad de respuesta correcta, se incrementaba la salida de las unidades A que hubieran contribuido. Si se activaba una unidad R incorrecta, se haca disminuir la salida de las unidades A que hubiesen contribuido. Mediante estas investigaciones se pudo demostrar que el Perceptrn era capaz de clasificar patrones correctamente, en lo que Rosenblatt denominaba un entorno diferenciado, en el cual cada clase estaba formada por patrones similares. El Perceptrn tambin era capaz de responder de manera congruente frente a patrones aleatorios, pero su precisin iba disminuyendo a medida que aumentaba el nmero de patrones que intentaba aprender. En 1969 Marvin Minsky y Seymour Papert publicaron su libro: "Perceptrons: An introduction to Computational Geometry"[], el cual para muchos signific el final de las redes neuronales. En el se presentaba un anlisis detallado del Perceptrn, en trminos de sus capacidades y limitaciones, en especial en cuanto a las restricciones que existen para los problemas que una red tipo Perceptrn puede resolver; la mayor desventaja de este tipo de redes es su incapacidad para solucionar problemas que no sean linealmente separables. Minsky y Papert se apartaban de la aproximacin probabilstica de Rosenblatt y volvan a las ideas de clculo de predicados en el anlisis del Perceptrn. Su idea de Perceptrn aparece en la figura 2.1.3 Figura 2.1.3 Perceptrn segn Minsky y Papert La estructura de un Perceptrn sencillo es similar a la del elemento general de procesamiento que se muestra en la figura 2.1.3; en la que se observa la adicin de una condicin umbral en la salida. Si la entrada neta, a esta condicin es mayor que el valor umbral, la salida de la red es 1, en caso contrario es 0. La funcin de salida de la red en la figura 2.1.3 es llamada funcin umbral o funcin de transferencia (2.1.1) A pesar de esta limitacin, el Perceptrn es an hoy una red de gran importancia, pues con base en su estructura se han desarrollado otros modelos de red neuronal como la red Adaline y las redes multicapa. 2.1 PERCEPTRN 2.1.2 Estructura de la red: Fig. 2.1.4 Perceptrn La nica neurona de salida del Perceptrn realiza la suma ponderada de las entradas, resta el umbral y pasa el resultado a una funcin de transferencia de tipo escaln. La regla e decisin es responder +1 si el patrn presentado pertenece a la clase A, o 1 si el patrn pertenece a la clase B (figura 2.1.4), la salida depende de la entrada neta (n = suma de las entradas pi ponderadas). La red tipo Perceptrn emplea principalmente dos funciones de transferencia, hardlim con salidas 1, 0 o hardlims con salidas 1, -1; su uso depende del valor de salida que se espera para la red, es decir si la salida de la red es unipolar o bipolar; sin embargo la funcin hardlims es preferida sobre la hardlim, ya que el tener un cero multiplicando algunas de los valores resultantes del producto de las entradas por el vector de pesos, ocasiona que estos no se actualicen y que el aprendizaje sea ms lento. Una tcnica utilizada para analizar el comportamiento de redes como el Perceptrn es presentar en un mapa las regiones de decisin creadas en el espacio multidimensional de entradas de la red, en estas regiones se visualiza qu patrones pertenecen a una clase y cules a otra, el Perceptrn separa las regiones por un hiperplano cuya ecuacin queda determinada por los pesos de las conexiones y el valor umbral de la funcin de activacin de la neurona, en este caso los valores de los pesos pueden fijarse o adaptarse empleando diferentes algoritmos de entrenamiento. Para ilustrar el proceso computacional del Perceptrn consideremos la matriz de pesos en forma general. (2.1.2) Los pesos para una neurona estn representados por un vector compuesto de los elementos de la i-sima fila de W (2.1.3) De esta forma y empleando la funcin de transferencia hardlim la salida de la neurona i de la capa de salida (2.1.4) El Perceptrn, al constar de una sola capa de entrada y otra de salida con una nica neurona, tiene una capacidad de representacin bastante limitada, este modelo slo es capaz de discriminar patrones muy sencillos, patrones linealmente separables (concepto que se estudiar en la seccin 2.1.4), el caso ms conocido es la imposibilidad del Perceptrn de representar la funcin OR EXCLUSIVA. 2.1 PERCEPTRN 2.1.3 Regla de aprendizaje: El Perceptrn es un tipo de red de aprendizaje supervisado, es decir necesita conocer los valores esperados para cada una de las entradas presentadas; su comportamiento est definido por pares de esta forma: (2.1.5) Cuando p es aplicado a la red, la salida de la red es comparada con el valor esperado t, y la salida de la red esta determinada por: (2.1.6) Los valores de los pesos determinan el funcionamiento de la red, estos valores se pueden fijar o adoptar utilizando diferentes algoritmos de entrenamiento de la red. Como ejemplo de funcionamiento de una red neuronal tipo Perceptrn, se solucionar el problema de la funcin OR, para esta funcin la red debe ser capaz de devolver a partir de los cuatro patrones de entrada, a qu clase pertenece cada uno; es decir para el patrn 00 debe devolver la clase cero y para los restantes la clase 1, segn la grfica 2.1.5 Figura 2.1.5 Funcin OR Para este caso las entradas a la red sern valores binarios, la salida de la red esta determinada por (2.1.7) Si w1p1+w2p2 es mayor que 0 la salida ser 1, en caso contrario la salida ser 1 (funcin escaln unitario). Como puede verse la sumatoria que se le pasa a cada parmetro (entrada total) a la funcin hardlim (funcin de salida o de transferencia) es la expresin matemtica de una recta, donde w1 y w2 son variables y p1 y p2 son constantes. En la etapa de aprendizaje se irn variando los valores de los pesos obteniendo distintas rectas, lo que se pretende al modificar los pesos de las conexiones es encontrar una recta que divida el plano en dos espacios de las dos clases de valores de entrada, concretamente para la funcin OR se deben separar los valores 01, 10, y 11 del valor 00; la red Perceptrn que realiza esta tarea y la grfica caracterstica pueden observarse en la figura 2.1.6 all puede verse como las posibles rectas pasarn por el origen de coordenadas, por lo que la entrada 00 quedar sobre la propia recta. Figura 2.1.6 Perceptrn aplicado a la funcin OR Se aplicar este mtodo para resolver tambin el problema de la funcin AND, el cual se describe en la siguiente figura Figura 2.1.7 Espacio de salida de una compuerta AND Analizando el comportamiento de la AND se llega a la conclusin de que es imposible que una recta que pase por el origen, separe los valores 00,01 y 10 del valor 11, por lo que se hace necesario introducir un trmino independiente para realizar esta tarea, a este trmino se le da el nombre de ganancia y se representa por la letra b, al cual por lo general se le asigna un valor inicial de 1 y se ajusta durante la etapa de aprendizaje de la red; este nuevo trmino permite desplazar la recta del origen de coordenadas dando una solucin para el caso de la funcin AND y ampliando el nmero de soluciones de la funcin OR Ahora la salida de la neurona esta dada por (2.1.8) Las soluciones obtenidas para las funciones AND y OR se observan en la figura 2.1.8 Figura 2.1.8 Solucin para una funcin AND y una OR En el proceso de entrenamiento el Perceptrn se expone a un conjunto de patrones de entrada y los pesos de la red son ajustados de forma que al final de entrenamiento se obtengan las salidas esperadas para cada unos de esos patrones de entrada. El algoritmo de entrenamiento del Perceptrn puede resumirse en los siguientes pasos: 1. Se inicializa la matriz de pesos y el valor de la ganancia, por lo general se asignan valores aleatorios a cada uno de los pesos wi y al valor b 2. Se presenta el primer patrn a la red, junto con la salida esperada en forma de pares entrada/salida 3. Se calcula la salida de la red por medio de (2.1.9) Donde f puede ser la funcin hardlim o hardlims 4. Cuando la red no retorna la salida correcta, es necesario alterar el valor de los pesos, tratando de llevarlo hasta p y as aumentar las posibilidades de que la clasificacin sea correcta, una posibilidad es adicionar p a w haciendo que el vector w apunte en la direccin de p, y de esta forma despus de repetidas presentaciones de p a la red, w se aproximar asintoticamente a p; este es el procedimiento adoptado para la regla de aprendizaje del Perceptrn. El proceso de aprendizaje del Perceptrn puede definirse en tres reglas, las cuales cubren la totalidad de combinaciones de salidas y sus correspondientes valores esperados. Estas reglas utilizando la funcin de transferencia hardlim, se expresan como sigue: (2.1.10) (2.1.11) (2.1.12) Las tres condiciones anteriores pueden ser escritas en forma compacta y generalizarse para la utilizacin de las funciones de transferencia hardlim o hardlims, generalizacin que es posible introduciendo el error en las reglas de aprendizaje del Perceptrn: (2.1.13) Por lo tanto: (2.1.14) (2.1.15) (2.1.16) En una sola expresin la ley puede resumirse as: (2.1.17) Y extendiendo la ley a las ganancias (2.1.18) Para ilustrar la regla de aprendizaje del Perceptrn, se dar solucin al problema de clasificacin de patrones ilustrado en la figura 2.1.9 , , , Figura 2.1.9 Patrones de entrenamiento En este caso las salidas toman valores bipolares de 1 o 1, por lo tanto la funcin de transferencia a utilizar ser hardlims. Segn la dimensiones de los patrones de entrenamiento la red debe contener dos entradas y una salida. Figura 2.1.10 Red Perceptrn que resolver el problema de clasificacin de patrones Para decidir si una red tipo Perceptrn puede aplicarse al problema de inters, se debe comprobar si el problema es linealmente separable, esto puede determinarse grficamente de la figura 2.1.9, en donde se observa que existe un gran nmero de lneas rectas que pueden separar los patrones de una categora de los patrones de la otra, el siguiente paso es asumir arbitrariamente los valores para los pesos y ganancias iniciales de entrada a la red; el proceso terminar cuando se hayan obtenido los pesos y ganancias finales que permitan a la red clasificar correctamente todos los patrones presentados. Los valores iniciales asignados aleatoriamente a los parmetros de la red son: Con base en el procedimiento descrito anteriormente, el proceso de aprendizaje de la red es el siguiente: Iteracin 0 La red clasificara los patrones de entrenamiento segn la caracterstica de decisin mostrada en la figura 2.1.11, la cual depende de los valores de los pesos y ganancias iniciales. Interceptos con los ejes: Figura 2.1.11 Clasificacin de los patrones de acuerdo a la iteracin 0 Como puede verse, la caracterstica de decisin es ortogonal al vector de pesos W. La red clasifica incorrectamente los patrones p1, p3 y p4; en esta iteracin; a continuacin presentamos a la red el patrn de entrenamiento p1. Iteracin 1 De la iteracin 0 p1 estaba mal clasificado, la actualizacin de pesos permite que este patrn sea clasificado correctamente. La iteracin 1 lleva a la caracterstica de decisin de la figura 2.1.12 Interceptos con los ejes: Como se observa el patrn de entrenamiento p1 ha sido clasificado correctamente, y casualmente los patrones p2 y p3 fueron correctamente ubicados, pues an no han sido presentados a la red. Figura 2.1.12 Caracterstica de decisin de la iteracin 1 Iteracin 2 Se presenta p2 a la red, y es clasificado correctamente, como se observo grficamente Este patrn ha sido clasificado correctamente y por lo tanto no hay actualizacin del set de entrenamiento Iteracin 3 Se presenta p3 a la red y es clasificado correctamente, como se observ grficamente Como se esperaba, no hubo error en la clasificacin de este patrn, y esto lleva a que no haya actualizacin de los pesos de la red Iteracin 4 Se presenta a la red p4, La red ha clasificado incorrectamente este patrn y por lo tanto deben modificarse pesos y ganancias En esta iteracin la red se comportara de acuerdo a la caracterstica de decisin de la figura 2.1.13 Interceptos con los ejes: Figura 2.1.13 Caracterstica de decisin final De la figura 2.1.13 se observa que la red ha clasificado correctamente los patrones de entrenamiento, despus de entrenada la red con los pesos y ganancias finales, cualquier otro valor de entrada ser clasificado segn la caracterstica de decisin mostrada. Es de importancia notar que en este caso los patrones de entrada se encuentran en dos dimensiones y por lo tanto es fcil determinar grficamente cuando han sido clasificados correctamente, en el caso que los patrones se encuentren en tres dimensiones esta visualizacin se dificulta y en el caso de que los patrones sean de orden superior la visualizacin resulta imposible; para estos casos se debe comprobar matemticamente que el error correspondiente a cada patrn de entrenamiento para los pesos finales es nulo. 1 PERCEPTRN 2.1.4 Limitacin de la red Perceptrn En la seccin 2.1.1, se plante la restriccin que existe para los tipos de problemas que una red Perceptrn puede solucionar, como se dijo esta red puede resolver solamente problemas que sean linealmente separables, esto es problemas cuyas salidas estn clasificadas en dos categoras diferentes y que permitan que su espacio de entrada sea divido en estas dos regiones por medio de un hiperplano de caractersticas similares a la ecuacin del Perceptrn, es decir (2.1.19) Ejemplos de problemas de este tipo son las funciones lgicas OR y AND estudiadas anteriormente; para ilustrar ms claramente que significa que un problema sea linealmente separable se analizar un caso que no lo sea, el caso de la compuerta XOR, el cual se visualiza en la figura 2.1.14 Figura 2.1.14 Compuerta XOR Se pretende que para los valores de entrada 00 y 11 se devuelva la clase 0 y para los patrones 01 y 10 la clase 1. Como puede verse de la figura 2.1.15 el problema radica en que no existe ninguna lnea recta que separe los patrones de una clase de los de la otra Figura 2.1.15 Plano formado por el problema de la XOR Los cuatro puntos en la figura son las posibles entradas de la red; la lnea divide el plano en dos regiones, por lo que se podra clasificar los puntos de una regin como pertenecientes a la clase que posee salida 1 (puntos azules) y los de la otra regin como pertenecientes a la clase que posee salida 0 (puntos rojos), sin embargo no hay ninguna forma de posicionar la lnea para que los puntos correctos para cada clase se encuentren en la misma regin. El problema de la compuerta XOR no es linealmente separable y una red tipo Perceptrn no esta en capacidad de clasificar correctamente los patrones de esta funcin, debido a esta limitacin del Perceptrn y a su amplia publicacin en el libro de Minsky y Papert, el estudio de las redes neuronales se estanco durante casi 20 aos. El proceso para determinar si un problema es linealmente separable o no, se realiza grficamente sin problema, cuando los patrones de entrada generan un espacio de dos dimensiones, como en el caso de las funciones AND, OR o de la XOR; sin embargo, esta visualizacin se dificulta cuando el conjunto de patrones de entrada es de tres dimensiones, y resulta imposible de observar grficamente cuando los patrones de entrada son de dimensiones superiores; en este caso se requiere plantear condiciones de desigualdad que permitan comprobar la separabilidad lineal de los patrones, esto se realiza con base en la ecuacin de salida del Perceptrn , para aquellos patrones cuya salida deseada sea 1 , para aquellos patrones cuya salida deseada sea 0 En el caso de la XOR, teniendo en cuenta los valores de la tabla al lado derecho de la figura 2.1.14, estas desigualdades se expresan as: (p1) (p3) (p2) (p4) Si no hay contradiccin en las desigualdades anteriores, el problema es linealmente separable. Como se observa de las desigualdades 2, 3 y 4, es imposible que , y que su suma sea menor que cero, esta es una forma alternativa de comprobar que el problema de la XOR no es linealmente separable. El aporte de esta tcnica se aprecia mejor para problemas cuyo espacio de entrada sea de dimensiones mayores. La solucin al problema de clasificacin de patrones de la funcin XOR se encontrara fcilmente si se descompone el espacio en tres regiones: una regin pertenecera a una de las clases de salida y las otras dos pertenecen a la segunda clase, as que si en lugar de utilizar nicamente una neurona de salida se utilizaran dos, se obtendran dos rectas por lo que podran delimitarse tres zonas; para poder elegir entre una zona u otra de las tres, es necesario utilizar otra capa con una neurona cuyas entradas sern las salidas de las neuronas anteriores; las dos zonas o regiones que contienen los puntos (0,0) y (1,1) se asocian a una salida nula de la red y la zona central se asocia a la salida con valor 1, de esta forma es posible encontrar una solucin al problema de la funcin XOR, por tanto se ha de utilizar una red de tres neuronas, distribuidas en dos capas para solucionar este problema. En la figura 2.1.16 se observa un esquema de lo que sera una red Perceptrn multicapa, con los valores de pesos y ganancias que clasifican correctamente los patrones de la compuerta XOR Figura 2.1.16 Perceptrn multicapa para la XOR Los valores de la matriz de pesos y del vector de ganancias son: w11=1 w12=1 w21=1 w22=1 w31=1 w32=-1.5 b1=0.5 b2=1.5 b3=0.5 2.1 PERCEPTRN 2.1.5 Perceptrn multicapa: En el problema de la funcin XOR se explic como un Perceptrn multicapa haba sido implementado para hallar una solucin, el esquema general de un Perceptrn multicapa puede encontrarse generalizando la figura 2.4.1 a una red con mltiples entradas y que incluya una entrada adicional representada por la ganancia b, este esquema general se ve en la figura 2.1.17 en donde se notan las conexiones entre sus nodos de entrada y las neuronas de salida. Figura 2.1.17 Conexiones del Perceptrn Un Perceptrn multicapa es una red con alimentacin hacia delante, compuesta de varias capas de neuronas entre la entrada y la salida de la misma, esta red permite establecer regiones de decisin mucho ms complejas que las de dos semiplanos, como lo hace el Perceptrn de un solo nivel. Un esquema simplificado del modelo del Perceptrn de la figura 2.1.17 se observa en la figura 2.1.18 Figura 2.1.18 Notacin compacta para la red tipo Perceptrn La salida de la red est dada por: (2.1.20) Donde W: Matriz de pesos asignada a cada una de las entradas de la red de dimensiones SxR, con S igual al nmero de neuronas, y R la dimensin del vector de entrada p: Vector de entradas a la red de dimensiones Rx1 b: Vector de ganancias de la red de dimensiones Sx1 Las capacidades del Perceptrn multicapa con dos y tres capas y con una nica neurona en la capa de salida se muestran en la figura 2.1.19 extrada del libro de Hilera J y Martnez V []. En la segunda columna se muestra el tipo de regin de decisin que se puede formar con cada una de las configuraciones, en la siguiente se indica el tipo de regin que se formara para el problema de la XOR, en las dos ltimas columnas se muestran las regiones formadas para resolver el problema de clases mezcladas y las formas ms generales para cada uno de los casos. Estructura Regiones de Decisin Problema de la XOR Clases con Regiones Mezcladas Formas de Regiones ms Generales Medio Plano Limitado por un Hiperplano Regiones Cerradas o Convexas Complejidad Arbitraria Limitada por el Nmero de Neuronas Figura 2.1.19 Distintas formas de las regiones generadas por un Perceptrn multicapa El Perceptrn bsico slo puede establecer dos regiones separadas por una frontera lineal en el espacio de entrada de los patrones; un Perceptrn con dos capas, puede formar cualquier regin convexa en este espacio. Las regiones convexas se forman mediante la interseccin de regiones formadas por cada neurona de la segunda capa, cada uno de estos elementos se comporta como un Perceptrn simple, activndose su salida para los patrones de un lado del hiperplano, si el valor de los pesos de las conexiones entre las neuronas de la segunda capa y una neurona del nivel de salida son todos igual a 1, y la funcin de salida es de tipo hardlim, la salida de la red se activar slo si las salidas de todos los nodos de la segunda capa estn activos, esto equivale a ejecutar la funcin lgica AND en el nodo de salida, resultando una regin de decisin interseccin de todos los semiplanos formados en el nivel anterior. La regin de decisin resultante de la interseccin ser una regin convexa con un nmero de lados a lo sumo igual al nmero de neuronas de la segunda capa. A partir de este anlisis surge el interrogante respecto a los criterios de seleccin para las neuronas de las capas ocultas de una red multicapa, este nmero en general debe ser lo suficientemente grande como para que se forme una regin compleja que pueda resolver el problema, sin embargo no debe ser muy grande pues la estimacin de los pesos puede ser no confiable para el conjunto de los patrones de entrada disponibles. Hasta el momento no hay un criterio establecido para determinar la configuracin de la red y esto depende ms bien de la experiencia del diseador. La regla de aprendizaje del Perceptrn para una red multicapa es una generalizacin de las ecuaciones (2.1.17) y (2.1.18) (2.1.21) (2.1.22) 2.2 ADALINE 2.2.1 Antecedentes: Al mismo tiempo que Frank Rosenblatt trabajaba en el modelo del Perceptrn Bernard Widrow y su estudiante Marcian Hoff introdujeron el modelo de la red Adaline y su regla de aprendizaje llamada algoritmo LMS (Least Mean Square). La red Adaline es similar al Perceptrn, excepto en su funcin de transferencia, la cual es una funcin de tipo lineal en lugar de un limitador fuerte como en el caso del Perceptrn. La red Adaline presenta la misma limitacin del Perceptrn en cuanto al tipo de problemas que pueden resolver, ambas redes pueden solo resolver problemas linealmente separables, sin embargo el algoritmo LMS es ms potente que la regla de aprendizaje del Perceptrn ya que minimiza el error medio cuadrtico, la regla sirvi de inspiracin para el desarrollo de otros algoritmos, este es el gran aporte de esta red. El trmino Adaline es una sigla, sin embargo su significado cambi ligeramente a finales de los aos sesenta cuando decay el estudio de las redes neuronales, inicialmente se llamaba ADAptive LInear NEuron (Neurona Lineal Adaptiva), para pasar despus a ser Adaptive LInear Element (Elemento Lineal Adaptivo), este cambio se debi a que la Adaline es un dispositivo que consta de un nico elemento de procesamiento, como tal no es tcnicamente una red neuronal. El elemento de procesamiento realiza la suma de los productos de los vectores de entrada y de pesos, y aplica una funcin de salida para obtener un nico valor de salida, el cual debido a su funcin de transferencia lineal ser +1 si la sumatoria es positiva o 1 si la salida de la sumatoria es negativa. En trminos generales la salida de la red est dada por (2.2.1) En este caso, la salida es la funcin unidad al igual que la funcin de activacin; el uso de la funcin identidad como funcin de salida y como funcin de activacin significa que la salida es igual a la activacin, que es la misma entrada neta al elemento. El Adaline es ADaptivo en el sentido de que existe un procedimiento bien definido para modificar los pesos con objeto de hacer posible que el dispositivo proporcione el valor de salida correcto para la entrada dada; el significado de correcto para efectos del valor de salida depende de la funcin de tratamiento de seales que est siendo llevada a cabo por el dispositivo. El Adaline es LIneal porque la salida es una funcin lineal sencilla de los valores de la entrada. Es una NEurona tan solo en el sentido (muy limitado) del PE. Tambin se podra decir que el Adaline es un Elemento Lineal, evitando por completo la definicin como NEurona. 2.2 ADALINE 2.2.2 Estructura de la red: La estructura general de la red tipo Adaline puede visualizarse en la figura 2.2.1 Figura 2.2.1 Estructura de una red Adaline La salida de la red est dada por: (2.2.2) Para una red Adaline de una sola neurona con dos entradas el diagrama corresponde a la figura 2.2.2 Figura 2.2.2 Adaline de una neurona y dos entradas En similitud con el Perceptrn, el lmite de la caracterstica de decisin para la red Adaline se presenta cuando n = 0, por lo tanto: (2.2.3) Especfica la lnea que separa en dos regiones el espacio de entrada, como se muestra en la figura 2.2.3 Figura 2.2.3. Caracterstica de decisin de una red tipo Adaline La salida de la neurona es mayor que cero en el rea gris, en el rea blanca la salida es menor que cero. Como se mencion anteriormente, la red Adaline puede clasificar correctamente patrones linealmente separables en dos categoras. 2.2 ADALINE 2.2.3 Regla de aprendizaje: Al igual que el Perceptrn, la red Adaline es una red de aprendizaje supervisado que necesita conocer de antemano los valores asociados a cada entrada. Los pares de entrada/salida tienen la siguiente forma: (2.2.4) Donde es la entrada a la red y es su correspondiente salida deseada, cuando una entrada p es presentada a la red, la salida de la red es comparada con el valor de t que le es asociado. El algoritmo LMS se deriva de la regla Widrow-Hoff Delta, la que en trminos generales para un proceso de actualizacin de los pesos de una red Adaline, se deduce de la siguiente manera, de acuerdo al procedimiento descrito en Widrow[] (2.2.5) En el cual k representa la iteracin actual del proceso de actualizacin, es el siguiente valor que tomar el vector de pesos y es el valor actual del vector de pesos. El error actual e(k) es definido como la diferencia entre la respuesta deseada y la salida de la red antes de la actualizacin: (2.2.6) La variacin del error en cada iteracin es representada por (2.2.7) En concordancia con la ecuacin (2.2.5) la actualizacin de los pesos, teniendo en cuenta el error es: (2.2.8) Combinando las ecuaciones (2.2.8) y (2.2.7), se obtiene: (2.2.9) De esta forma, el error es reducido por un factor mientras los pesos van cambiando a medida que se presenta un valor de entrada. Cada vez que se presenta un nuevo patrn el ciclo de actualizacin inicia nuevamente; el siguiente error es reducido por un factor , y el proceso continua. Los valores iniciales del vector de pesos son usualmente escogidos como cero y se actualizan hasta que el algoritmo alcance convergencia. La eleccin de controla la estabilidad y velocidad de la convergencia del proceso de entrenamiento como puede verse en la ecuacin (2.2.9); si se escoge un valor muy pequeo de , el algoritmo pierde velocidad y tarda mucho en alcanzar convergencia, si por el contrario se toma un valor muy grande, el algoritmo pierde estabilidad y se torna oscilante alrededor del valor de convergencia. Para patrones de entrada independientes en el tiempo, la estabilidad es garantizada para valores de que varen entre (2.2.10) Si se fija en un valor mayor a 1 el error es innecesariamente sobre-corregido, por lo tanto un rango de valores prcticos para la rata de aprendizaje es: (2.2.11) Este algoritmo es auto-normalizado en el sentido que la eleccin de no depende de la magnitud de las seales de entrada; cada peso actualizado es colineal con los parmetros de entrada y su magnitud es inversamente proporcional a . Si se emplea como entradas binarias 1 y 0, la actualizacin no ocurre para pesos cuya entrada sea cero, mientras con entradas binarias todos los pesos son actualizados en cada iteracin y la convergencia es ms rpida. Por esta razn, las entradas simtricas +1 y 1 son generalmente preferidas. Una descripcin geomtrica del proceso de actualizacin de pesos en la regla Widrow-Hoff delta o algoritmo LMS, se describe en la figura 2.2.4 Figura 2.2.4 Actualizacin de pesos del algoritmo LMS De acuerdo a la ecuacin (2.2.8), equivale la suma de y , adems es paralelo con el vector de entrada . De la ecuacin (2.2.7), el cambio en el error es igual al producto negativo de y , como el algoritmo LMS selecciona a de tal forma que sea colineal con , el cambio en el error deseado se calcula con la menor magnitud de posible, empleando el principio de mnima perturbacin []. Extendiendo el algoritmo a la actualizacin de las ganancias, se tiene: (2.2.12) El algoritmo LMS corrige el error y si todos los patrones de entrada son de igual longitud, la actualizacin de pesos y ganancias tiende a minimizar el error medio cuadrtico, esta es la principal propiedad de este algoritmo. En el algoritmo LMS, los valores de los incrementos y se calculan con base en las derivadas parciales de la funcin del error medio cuadrtico con respecto a pesos y ganancias respectivamente. Para explicar el clculo del error medio cuadrtico se considerar una red Adaline y se emplear un algoritmo de pasos descendientes aproximado, como el que utilizaron Widrow y Hoff; con este algoritmo calculando el gradiente en cada iteracin (gradiente instantneo) y no el gradiente verdadero, la funcin para el error medio cuadrtico es: (2.2.13) En la ecuacin 2.2.13 representa la salida esperada en la iteracin k y representa la salida de la red; el error cuadrtico esperado ha sido reemplazado por el error cuadrtico en la iteracin k, por lo tanto en cada iteracin se tiene un gradiente del error de la siguiente forma: (2.2.14) y (2.2.15) Los primeros R elementos del error son derivadas parciales con respecto a los pesos de la red, mientras que los elementos restantes son derivadas parciales con respecto a las ganancias Se evaluar primero la derivada parcial de con respecto a : (2.2.16) Donde es el i-simo elemento del vector de entrada en la k-sima iteracin, esto puede simplificarse as: (2.2.17) De manera similar se obtiene el elemento final del gradiente, correspondiente a la derivada parcial del error con respecto a la ganancia: (2.2.18) En esta ecuacin pueden verse las ventajas de la simplificacin del error medio cuadrtico al poder ser calculado por medio del error en la iteracin k, y as para calcular el error se necesita solo multiplicar el error por el nmero de entradas. La aproximacin de encontrada en la ecuacin (2.2.14) es reemplazada en la ecuacin (2.2.5) que define el proceso de actualizacin de pesos para el algoritmo LMS; despus de haber evaluado las derivadas parciales el proceso de actualizacin puede expresarse como sigue: (2.2.19) (2.2.20) Ahora t(k) y W(k) son trminos independientes. Las ecuaciones (2.2.19) y (2.2.20) conforman la regla de actualizacin de parmetros empleada por una red Adaline, la rata de aprendizaje se tom constante durante el proceso de deduccin del algoritmo. En forma matricial el algoritmo de actualizacin para pesos y ganancias para la red Adaline, se expresa como: (2.2.21) (2.2.22) Ntese que ahora el error e y la ganancia b son vectores 2.2 ADALINE 2.2.4 Principal aplicacin de la red Adaline: La red Adaline ha sido ampliamente utilizada en el procesamiento de seales; para valorar el real aporte de esta red en ese campo, se detallarn un poco las herramientas hasta ahora empleadas en los procesos de filtrado. A comienzos del estudio de las comunicaciones electrnicas, se diseaban filtros analgicos empleando circuitos RLC (Resistencias, Inductores, Condensadores) para eliminar el ruido en las seales empleadas de comunicaciones; este procesamiento se ha transformado en una tcnica de mltiples facetas, destacndose en la actualidad el uso de procesadores digitales de seales (DSP), que pueden llevar a cabo los mismos tipos de aplicaciones de filtrado ejecutando filtros de convolucin realizados mediante programacin convencional, en cualquier lenguaje de programacin conocido. El proceso de filtrado sigue ocupando un lugar muy importante en la industria, pues siempre ser necesario eliminar el ruido en seales portadoras de informacin. Considrese una transmisin de radio en AM, las tcnicas electrnicas de comunicacin, bien sean para seales de audio o de datos constan de una codificacin y una modulacin de la seal. La informacin que hay que transmitir, se puede codificar en forma de una seal analgica que reproduce exactamente las frecuencias y las amplitudes del sonido original. Dado que los sonidos que se estn codificando representan un valor continuo que va desde el silencio, pasando por la voz, hasta la msica, la frecuencia instantnea de la seal variar con el tiempo, oscilando entre 0 y 10.000 Hz aproximadamente. En lugar de intentar transmitir directamente esta seal codificada, se transmite la seal en forma ms adecuada para la transmisin por radio; esto se logra modulando la amplitud de una seal portadora de alta frecuencia con la seal de informacin analgica. Para la radio AM, la frecuencia portadora estar en el intervalo de los 550 a los 1650 kHz , dado que la frecuencia de la portadora es muy superior a la frecuencia mxima de la seal de informacin, se pierde muy poca informacin como consecuencia de la modulacin; la seal modulada puede ser transmitida despus a una estacin receptora (o se puede retransmitir a cualquiera que tenga un receptor de radio), en la cual la seal se demodula y se reproduce en forma de sonido. La razn ms evidente para utilizar un filtro en una radio de AM es que cada persona tiene sus preferencias de msica y diversin y dado que hay tantas emisoras de radio diferentes es necesario permitir que cada usuario sintonice su receptor a una cierta frecuencia seleccionable. Al sintonizar la radio, lo que se est haciendo es, modificar las caractersticas de respuesta en frecuencia de un filtro pasa banda que est dentro de la radio, este filtro solo deja pasar las seales procedentes de la emisora en la que se est interesado y elimina todas las dems seales que estn siendo transmitidas dentro del espectro AM. Figura 2.2.5 Tcnicas de codificacin de informacin y modulacin en amplitud La herramienta matemtica para el diseo de filtros ms utilizada es la Serie de Fourier, que describe la naturaleza de las seales peridicas en el dominio frecuencia y viene dada por: (2.2.23) En donde : Frecuencia fundamental de la seal en el dominio del tiempo : Coeficientes necesarios para modular la amplitud de los trminos individuales de la serie. Las primeras realizaciones de los cuatro filtros bsicos de la figura 2.2.6 posean una gran limitacin: Solo eran ajustables en un pequeo intervalo Figura 2.2.6 Caractersticas de los cuatro filtros bsicos Todos los filtros se pueden caracterizar a partir de su respuesta a la funcin de impulso unitario, que se representa por en la forma: (2.2.24) La ventaja de esta formulacin es que una vez se conoce la respuesta del sistema para el impulso unitario, la salida del sistema para cualquier entrada est dada por (2.2.25) Donde es la entrada al sistema Esta ecuacin describe una convolucin entre la seal de entrada y la respuesta del sistema al impulso unitario. Para este caso, basta tener en cuenta que la convolucin es una operacin de suma entre productos, similar al tipo de operacin que realiza un Perceptrn cuando calcula su seal de activacin. La red Adaline emplea este mismo clculo para determinar cuanta estimulacin de entrada recibe a partir de una seal instantnea de entrada; esta red tiene diseado en su interior una forma de adaptar los coeficientes ponderables (pesos de la red) para hacer aumentar o disminuir la estimulacin que recibir la prxima vez que se le presente la misma seal. La utilidad de esta capacidad se pone de manifiesto cuando se disea un filtro digital por medio de software; con un programa normal, el programador debe saber exactamente como se especfica el algoritmo de filtrado y cules son los detalles de las caractersticas de las seales; si se necesitaran modificaciones, o si cambian las caractersticas de la seal, es necesario reprogramar; cuando se emplea una red tipo Adaline, el problema se convierte, en que la red sea capaz de especificar la seal de salida deseada, dada una seal de entrada especfica. La red Adaline toma la entrada y la salida deseada, y se ajusta a s misma para ser capaz de llevar a cabo la transformacin deseada. Adems, si cambian las caractersticas de la seal, la red Adaline puede adaptarse automticamente. En orden a usar la red tipo Adaline para implementar un filtro adaptivo, se debe incorporar el concepto de retardos en lnea, el cual se visualiza en la figura 2.2.7 Figura 2.2.7 Retardos en lnea Si se combina la red Adaline con un bloque de retardos en lnea, se ha creado un filtro adaptivo como el de la figura 2.2.8 Figura 2.2.8 Filtro adaptivo Cuya salida est dada por: (2.2.26) 2.3 BACKPROPAGATION 2.3.1 Antecedentes: La regla de aprendizaje del Perceptrn de Rosenblatt y el algoritmo LMS de Widrow y Hoff fueron diseados para entrenar redes de una sola capa. Como se discuti anteriormente, estas redes tienen la desventaja que solo pueden resolver problemas linealmente separables, fue esto lo que llevo al surgimiento de las redes multicapa para sobrepasar esta dificultad en las redes hasta entonces conocidas. El primer algoritmo de entrenamiento para redes multicapa fue desarrollado por Paul Werbos en 1974, este se desarroll en un contexto general, para cualquier tipo de redes, siendo las redes neuronales una aplicacin especial, razn por la cual el algoritmo no fue aceptado dentro de la comunidad de desarrolladores de redes neuronales. Fue solo hasta mediados de los aos 80 cuando el algoritmo Backpropagation o algoritmo de propagacin inversa fue redescubierto al mismo tiempo por varios investigadores, David Rumelhart, Geoffrey Hinton y Ronal Williams, David Parker y Yann Le Cun. El algoritmo se populariz cuando fue incluido en el libro "Parallel Distributed Processing Group" por los siclogos David Rumelhart y James McClelland. La publicacin de este libro trajo consigo un auge en las investigaciones con redes neuronales, siendo la Backpropagation una de las redes ms ampliamente empleadas, aun en nuestros das. Uno de los grandes avances logrados con la Backpropagation es que esta red aprovecha la naturaleza paralela de las redes neuronales para reducir el tiempo requerido por un procesador secuencial para determinar la correspondencia entre unos patrones dados. Adems el tiempo de desarrollo de cualquier sistema que se est tratando de analizar se puede reducir como consecuencia de que la red puede aprender el algoritmo correcto sin que alguien tenga que deducir por anticipado el algoritmo en cuestin. La mayora de los sistemas actuales de cmputo se han diseado para llevar a cabo funciones matemticas y lgicas a una velocidad que resulta asombrosamente alta para el ser humano. Sin embargo la destreza matemtica no es lo que se necesita para solucionar problemas de reconocimiento de patrones en entornos ruidosos, caracterstica que incluso dentro de un espacio de entrada relativamente pequeo, puede llegar a consumir mucho tiempo. El problema es la naturaleza secuencial del propio computador; el ciclo tomar ejecutar de la naturaleza Von Neumann solo permite que la mquina realice una operacin a la vez. En la mayora de los casos, el tiempo que necesita la mquina para llevar a cabo cada instruccin es tan breve (tpicamente una millonsima de segundo) que el tiempo necesario para un programa, as sea muy grande, es insignificante para los usuarios. Sin embargo, para aquellas aplicaciones que deban explorar un gran espacio de entrada o que intentan correlacionar todas las permutaciones posibles de un conjunto de patrones muy complejo, el tiempo de computacin necesario se hace bastante grande. Lo que se necesita es un nuevo sistema de procesamiento que sea capaz de examinar todos los patrones en paralelo. Idealmente ese sistema no tendra que ser programado explcitamente, lo que hara es adaptarse a s mismo para aprender la relacin entre un conjunto de patrones dado como ejemplo y ser capaz de aplicar la misma relacin a nuevos patrones de entrada. Este sistema debe estar en capacidad de concentrarse en las caractersticas de una entrada arbitraria que se asemeje a otros patrones vistos previamente, sin que ninguna seal de ruido lo afecte. Este sistema fue el gran aporte de la red de propagacin inversa, Backpropagation. La Backpropagation es un tipo de red de aprendizaje supervisado, que emplea un ciclo propagacin adaptacin de dos fases. Una vez que se ha aplicado un patrn a la entrada de la red como estmulo, este se propaga desde la primera capa a travs de las capas superiores de la red, hasta generar una salida. La seal de salida se compara con la salida deseada y se calcula una seal de error para cada una de las salidas. Las salidas de error se propagan hacia atrs, partiendo de la capa de salida, hacia todas las neuronas de la capa oculta que contribuyen directamente a la salida. Sin embargo las neuronas de la capa oculta solo reciben una fraccin de la seal total del error, basndose aproximadamente en la contribucin relativa que haya aportado cada neurona a la salida original. Este proceso se repite, capa por capa, hasta que todas las neuronas de la red hayan recibido una seal de error que describa su contribucin relativa al error total. Basndose en la seal de error percibida, se actualizan los pesos de conexin de cada neurona, para hacer que la red converja hacia un estado que permita clasificar correctamente todos los patrones de entrenamiento. La importancia de este proceso consiste en que, a medida que se entrena la red, las neuronas de las capas intermedias se organizan a s mismas de tal modo que las distintas neuronas aprenden a reconocer distintas caractersticas del espacio total de entrada. Despus del entrenamiento, cuando se les presente un patrn arbitrario de entrada que contenga ruido o que est incompleto, las neuronas de la capa oculta de la red respondern con una salida activa si la nueva entrada contiene un patrn que se asemeje a aquella caracterstica que las neuronas individuales hayan aprendido a reconocer durante su entrenamiento. Y a la inversa, las unidades de las capas ocultas tienen una tendencia a inhibir su salida si el patrn de entrada no contiene la caracterstica para reconocer, para la cual han sido entrenadas. Varias investigaciones han demostrado que, durante el proceso de entrenamiento, la red Backpropagation tiende a desarrollar relaciones internas entre neuronas con el fin de organizar los datos de entrenamiento en clases. Esta tendencia se puede extrapolar, para llegar a la hiptesis consistente en que todas las unidades de la capa oculta de una Backpropagation son asociadas de alguna manera a caractersticas especficas del patrn de entrada como consecuencia del entrenamiento. Lo que sea o no exactamente la asociacin puede no resultar evidente para el observador humano, lo importante es que la red ha encontrado una representacin interna que le permite generar las salidas deseadas cuando se le dan las entradas, en el proceso de entrenamiento. Esta misma representacin interna se puede aplicar a entradas que la red no haya visto antes, y la red clasificar estas entradas segn las caractersticas que compartan con los ejemplos de entrenamiento. 2.3 BACKPROPAGATION 2.3.2 Estructura de la Red: La estructura tpica de una red multicapa se observa en la figura 2.3.1 Figura 2.3.1 Red de tres capas Puede notarse que esta red de tres capas equivale a tener tres redes tipo perceptrn en cascada; la salida de la primera red, es la entrada a la segunda y la salida de la segunda red es la entrada a la tercera. Cada capa puede tener diferente nmero de neuronas, e incluso distinta funcin de transferencia. En la figura 2.3.1, W 1 representa la matriz de pesos para la primera capa, W 2 los pesos de la segunda y as similarmente para todas las capas que incluya una red. Para identificar la estructura de una red multicapa, se emplear una notacin abreviada, donde el nmero de entradas va seguido del nmero de neuronas en cada capa: R : S 1 : S 2 : S 3 (2.3.1) Donde S representa el nmero de neuronas y el exponente representa la capa a la cual la neurona corresponde. La notacin de la figura 2.3.1 es bastante clara cuando se desea conocer la estructura detallada de la red, e identificar cada una de las conexiones, pero cuando la red es muy grande, el proceso de conexin se torna muy complejo y es bastante til utilizar el esquema de la figura 2.3.2 Figura 2.3.2 Notacin compacta de una red de tres capas 2.3 BACKPROPAGATION 2.3.3 Regla de Aprendizaje El algoritmo Backpropagation para redes multicapa es una generalizacin del algoritmo LMS, ambos algoritmos realizan su labor de actualizacin de pesos y ganancias con base en el error medio cuadrtico. La red Backpropagation trabaja bajo aprendizaje supervisado y por tanto necesita un set de entrenamiento que le describa cada salida y su valor de salida esperado de la siguiente forma: {p1,t1}, {p2,t2}, . . . ,{pQ, tQ} (2.3.2) Donde pQ es una entrada a la red y tQ es la correspondiente salida deseada para el patrn q-simo. El algoritmo debe ajustar los parmetros de la red para minimizar el error medio cuadrtico. El entrenamiento de una red neuronal multicapa se realiza mediante un proceso de aprendizaje, para realizar este proceso se debe inicialmente tener definida la topologa de la red esto es: nmero de neuronas en la capa de entrada el cual depende del nmero de componentes del vector de entrada, cantidad de capas ocultas y nmero de neuronas de cada una de ellas, nmero de neuronas en la capa de la salida el cual depende del nmero de componentes del vector de salida o patrones objetivo y funciones de transferencia requeridas en cada capa, con base en la topologa escogida se asignan valores iniciales a cada uno de los parmetros que conforma la red. Es importante recalcar que no existe una tcnica para determinar el nmero de capas ocultas, ni el nmero de neuronas que debe contener cada una de ellas para un problema especfico, esta eleccin es determinada por la experiencia del diseador, el cual debe cumplir con las limitaciones de tipo computacional. Cada patrn de entrenamiento se propaga a travs de la red y sus parmetros para producir una respuesta en la capa de salida, la cual se compara con los patrones objetivo o salidas deseadas para calcular el error en el aprendizaje, este error marca el camino ms adecuado para la actualizacin de los pesos y ganancias que al final del entrenamiento producirn una respuesta satisfactoria a todos los patrones de entrenamiento, esto se logra minimizando el error medio cuadrtico en cada iteracin del proceso de aprendizaje. La deduccin matemtica de este procedimiento se realizar para una red con una capa de entrada, una capa oculta y una capa de salida y luego se generalizar para redes que tengan ms de una capa oculta. Figura 2.3.3 Disposicin de una red sencilla de 3 capas Es importante aclarar que en la figura 2.3.3 q: Equivale al nmero de componentes el vector de entrada. m: Nmero de neuronas de la capa oculta l: Nmero de neuronas de la capa de salida Para iniciar el entrenamiento se le presenta a la red un patrn de entrenamiento, el cual tiene q componentes como se describe en la ecuacin (2.3.3) (2.3.3) Cuando se le presenta a la red una patrn de entrenamiento, este se propaga a travs de las conexiones existentes produciendo una entrada neta n en cada una las neuronas de la siguiente capa, la entrada neta a la neurona j de la siguiente capa debido a la presencia de un patrn de entrenamiento en la entrada est dada por la ecuacin (2.3.4), ntese que la entrada neta es el valor justo antes de pasar por la funcin de transferencia (2.3.4) W o ji: Peso que une la componente i de la entrada con la neurona j de la capa oculta pi: Componente i del vector p que contiene el patrn de entrenamiento de q componentes b o j: Ganancia de la neurona j de la capa oculta Donde el superndice ( o ) representa la capa a la que pertenece cada parmetro, es este caso la capa oculta. Cada una de las neuronas de la capa oculta tiene como salida a o j que est dada por la ecuacin (2.3.5) (2.3.5) f o : Funcin de transferencia de las neuronas de la capa oculta Las salidas a o j de las neuronas de la capa oculta (de l componentes) son las entradas a los pesos de conexin de la capa de salida, este comportamiento esta descrito por la ecuacin (2.3.6) (2.3.6) W s kj: Peso que une la neurona j de la capa oculta con la neurona k de la capa de salida, la cual cuenta con s neuronas a o j: Salida de la neurona j de la capa oculta, la cual cuenta con m neuronas. b s k: Ganancia de la neurona k de la capa de salida. n s k: Entrada neta a la neurona k de la capa de salida La red produce una salida final descrita por la ecuacin (2.3.7) (2.3.7) f s : Funcin de transferencia de las neuronas de la capa de salida Reemplazando (2.3.6) en (2.3.7) se obtiene la salida de la red en funcin de la entrada neta y de los pesos de conexin con la ltima capa oculta (2.3.8) La salida de la red de cada neurona a s k se compara con la salida deseada tk para calcular el error en cada unidad de salida (2.3.9) (2.3.9) El error debido a cada patrn p propagado est dado por (2.3.11) (2.3.10) ep 2 : Error medio cuadrtico para cada patrn de entrada p : Error en la neurona k de la capa de salida con l neuronas Este proceso se repite para el nmero total de patrones de entrenamiento (r), para un proceso de aprendizaje exitoso el objetivo del algoritmo es actualizar todos los pesos y ganancias de la red minimizando el error medio cuadrtico total descrito en (2.3.11) (2.3.11) e 2 : Error total en el proceso de aprendizaje en una iteracin luego de haber presentado a la red los r patrones de entrenamiento El error que genera una red neuronal en funcin de sus pesos, genera un espacio de n dimensiones, donde n es el nmero de pesos de conexin de la red, al evaluar el gradiente del error en un punto de esta superficie se obtendr la direccin en la cual la funcin del error tendr un mayor crecimiento, como el objetivo del proceso de aprendizaje es minimizar el error debe tomarse la direccin negativa del gradiente para obtener el mayor decremento del error y de esta forma su minimizacin, condicin requerida para realizar la actualizacin de la matriz de pesos en el algoritmo Backpropagation: (2.3.12) El gradiente negativo de ep 2 se denotara como y se calcula como la derivada del error respecto a todos los pesos de la red En la capa de salida el gradiente negativo del error con respecto a los pesos es: (2.3.13) : Componente del gradiente respecto al peso de la conexin de la neurona de la capa de salida y la neurona j de la capa oculta : Derivada de la salida de la neurona k de la capa de salida respecto, al peso W s kj Para calcular se debe utilizar la regla de la cadena, pues el error no es una funcin explcita de los pesos de la red, de la ecuacin (2.3.7) puede verse que la salida de la red a s k esta explcitamente en funcin de n s k y de la ecuacin (2.3.6) puede verse que n s k esta explcitamente en funcin de W s kj, considerando esto se genera la ecuacin (2.3.13) (2.3.14) Tomando la ecuacin (2.3.14) y reemplazndola en la ecuacin (2.3.13) se obtiene, (2.3.15) : Derivada de la entrada neta a la neurona k de la capa de salida respecto a los pesos de la conexin entre las neuronas de la capa oculta y la capa de salida : Derivada de la salida de la neurona k de la capa de salida respecto a su entrada neta. Reemplazando en la ecuacin (2.3.15) las derivadas de las ecuaciones (2.3.6) y (2.3.7) se obtiene (2.3.16) Como se observa en la ecuacin (2.3.16) las funciones de transferencia utilizadas en este tipo de red deben ser continuas para que su derivada exista en todo el intervalo, ya que el trmino f s (n s k) es requerido para el clculo del error. Las funciones de transferencia ms utilizadas y sus respectivas derivadas son las siguientes: logsig: (2.3.17) tansig: (2.3.18) purelin: (2.3.19) De la ecuacin (2.3.16), los trminos del error para las neuronas de la capa de salida estn dados por la ecuacin (2.3.20), la cual se le denomina comnmente sensitividad de la capa de salida. (2.3.20) Este algoritmo se denomina Backpropagation o de propagacin inversa debido a que el error se propaga de manera inversa al funcionamiento normal de la red, de esta forma, el algoritmo encuentra el error en el proceso de aprendizaje desde las capas ms internas hasta llegar a la entrada; con base en el clculo de este error se actualizan los pesos y ganancias de cada capa. Despus de conocer (2.3.20) se procede a encontrar el error en la capa oculta el cual est dado por: (2.3.21) Para calcular el ltimo trmino de la ecuacin (2.3.21) se debe aplicar la regla de la cadena en varias ocasiones como se observa en la ecuacin (2.3.22) puesto que la salida de la red no es una funcin explcita de los pesos de la conexin entre la capa de entrada y la capa oculta (2.3.22) Todos los trminos de la ecuacin (2.3.23) son derivados respecto a variables de las que dependan explcitamente, reemplazando (2.3.22) en (2.3.21) tenemos: (2.3.23) Tomando las derivas de las ecuaciones (2.3.4) (2.3.5) (2.3.6) (2.3.7) y reemplazndolas en la ecuacin (2.3.23) se obtiene la expresin del gradiente del error en la capa oculta (2.3.24) Reemplazando la ecuacin (2.3.20) en la ecuacin (2.3.24) se tiene: (2.3.25) Los trminos del error para cada neurona de la capa oculta est dado por la ecuacin (2.3.26), este trmino tambin se denomina sensitividad de la capa oculta (2.3.26) Luego de encontrar el valor del gradiente del error se procede a actualizar los pesos de todas las capas empezando por la de salida, para la capa de salida la actualizacin de pesos y ganancias esta dada por (2.3.27) y (2.3.28). (2.3.27) (2.3.28) : Rata de aprendizaje que vara entre 0 y 1 dependiendo de las caractersticas del problema a solucionar. Luego de actualizar los pesos y ganancias de al capa de salida se procede a actualizar los pesos y ganancias de la capa oculta mediante las ecuaciones (2.3.29) y (2.3.30) (2.3.29) (2.3.30) Esta deduccin fue realizada para una red de tres capas, si se requiere realizar el anlisis para una red con dos o ms capas ocultas, las expresiones pueden derivarse de la ecuacin (2.3.26) donde los trminos que se encuentran dentro de la sumatoria pertenecen a la capa inmediatamente superior, este algoritmo es conocido como la regla Delta Generalizada desarrollada por Rumelhart D [], la cual es una extensin de la regla delta desarrollada por Widrow [] en 1930 Para algunos autores las sensibilidades de las capas estn detonadas por la letra S, reescribiendo las ecuaciones (2.3.20) y (2.3.26) con esta notacin se obtienen las ecuaciones (2.3.31) y (2.3.32) (2.3.31) (2.3.32) En la ecuacin (2.3.31) M representa la ltima capa y S M la sensitividad para esta capa, la ecuacin (2.3.32) expresa el clculo de la sensitividad capa por capa comenzando desde la ltima capa oculta, cada uno de estos trminos involucra que el trmino para la sensitividad de la capa siguiente ya este calculado. Como se ve el algoritmo Backpropagation utiliza la misma tcnica de aproximacin en pasos descendientes que emplea el algoritmo LMS, la nica complicacin est en el clculo del gradiente, el cual es un trmino indispensable para realizar la propagacin de la sensitividad. En las tcnicas de gradiente descendiente es conveniente avanzar por la superficie de error con incrementos pequeos de los pesos; esto se debe a que tenemos una informacin local de la superficie y no se sabe lo lejos o lo cerca que se est del punto mnimo, con incrementos grandes, se corre el riesgo de pasar por encima del punto mnimo, con incrementos pequeos, aunque se tarde ms en llegar, se evita que esto ocurra. El elegir un incremento adecuado influye en la velocidad de convergencia del algoritmo, esta velocidad se controla a travs de la rata de aprendizaje , la que por lo general se escoge como un nmero pequeo, para asegurar que la red encuentre una solucin. Un valor pequeo de significa que la red tendr que hacer un gran nmero de iteraciones, si se toma un valor muy grande, los cambios en los pesos sern muy grandes, avanzando muy rpidamente por la superficie de error, con el riesgo de saltar el valor mnimo del error y estar oscilando alrededor de l, pero sin poder alcanzarlo. Es recomendable aumentar el valor de a medida que disminuye el error de la red durante la fase de entrenamiento, para garantizar as una rpida convergencia, teniendo la precaucin de no tomar valores demasiado grandes que hagan que la red oscile alejndose demasiado del valor mnimo. Algo importante que debe tenerse en cuenta, es la posibilidad de convergencia hacia alguno de los mnimos locales que pueden existir en la superficie del error del espacio de pesos como se ve en la figura 2.3.4. Figura 2.3.4 Superficie tpica de error En el desarrollo matemtico que se ha realizado para llegar al algoritmo Backpropagation, no se asegura en ningn momento que el mnimo que se encuentre sea global, una vez la red se asiente en un mnimo sea local o global cesa el aprendizaje, aunque el error siga siendo alto. En todo caso, si la solucin es admisible desde el punto de vista del error, no importa si el mnimo es local o global o si se ha detenido en algn momento previo a alcanzar un verdadero mnimo. 2.3 BACKPROPAGATION Para ilustrar el clculo de cada uno de los trminos del algoritmo Backpropagation, este se utilizara se para aproximar la siguiente funcin: (2.3.33) La funcin se ha restringido al intervalo entre 2 y 2 para conservarla dentro de lmites observables, como se observa en la figura 2.3.5 Figura 2.3.5 Intervalo de la funcin t La configuracin escogida para la red corresponde a una red 1:2:1 segn la notacin definida con anterioridad, es decir una entrada, dos neuronas en la capa oculta y una salida; esta estructura se visualiza en la figura 2.3.6 Figura 2.3.6 Red utilizada para aproximar la funcin Como se observa la salida de la red para la primera capa est dada por a 1 = tansig(W 1 p T +b) (2.3.34) Las redes tipo Backpropagation utilizan principalmente dos funciones de transferencia en la primera capa: logsig, cuando el rango de la funcin es siempre positivo y tansig como en este caso, cuando se le permite a la funcin oscilar entre valores positivos y negativos limitados en el intervalo 1, 1. La salida de la segunda capa est determinada generalmente por la funcin de transferencia purelin, la cual reproduce exactamente el valor resultante despus de la sumatoria. a 2 = purelin(W 2 * a 1 +b 2 ) (2.3.35) Al evaluar la ecuacin (2.3.33) en los diferentes patrones de entrenamiento, se obtienen los valores de las entradas y sus salidas asociadas, ya que como se dijo antes la red Backpropagation es una red de aprendizaje supervisado. Es importante destacar, que no es estrictamente necesario el conocimiento de la funcin a aproximar, basta con conocer la respuesta a una entrada dada, o un registro estadstico de salidas para modelar el comportamiento del sistema, limitando el problema a la realizacin de pruebas a una caja negra. Los parmetros de entrada y sus valores de salida asociados, se observan en la tabla 2.3.1 1 2 3 4 5 6 p -2 -1,2 0,4 0,4 1,2 2 t -1 - 0,81 - 0,31 0,309 0,809 1 Tabla 2.3.1 Set de entrenamiento de la red Los valores iniciales para la matriz de pesos y el vector de ganancias de la red se escogieron en forma aleatoria as: , , , , Para el proceso de clculo, se le presenta a la red el patron de entrenamiento p1, de esta forma la primera iteracin es como sigue e=t - a= - 1- (0.63) = -1.63 Como se esperaba la primera iteracin no ha sido suficiente, para aproximar la funcin correctamente, as que se calcular la sensitividad para iniciar el proceso de actualizacin de los valores de los pesos y las ganancias de la red. Los valores de las derivadas del error medio cuadrtico son: Y las sensitividades, empezando desde la ltima hasta la primera capa, s 2 =-2(1) (-1.63) = 3.26 Con estos valores, y de acuerdo a la regla de actualizacin descrita anteriormente, los nuevos parmetros de la red son: Con esto se completa la primera iteracin, y el algoritmo queda listo para presentar a la red el siguiente patrn y continuar el proceso iterativo hasta obtener un valor de tolerancia aceptable para el error. En 1989 Funahashi [] demostr matemticamente que una red neuronal multicapa puede aproximar cualquier funcin no lineal o mapa lineal multivariable, f (x)= R n R Este teorema es de existencia, pues prueba que la red existe pero no indica cmo construirla y tampoco garantiza que la red aprender funcin. El algoritmo Backpropagation es fcil de implementar, y tiene la flexibilidad de adaptarse para aproximar cualquier funcin, siendo una de las redes multicapa ms potentes; esta caracterstica ha convertido a esta red en una de las ms ampliamente utilizadas y ha llevado al desarrollo de nuevas tcnicas que permitan su mejoramiento. Dentro de estas tcnicas encontramos dos mtodos heursticos y dos mtodos basados en algoritmos de optimizacin numrica. 2.3 BACKPROPAGATION 2.3.3.1 Red Backpropagation con momentum: Esta modificacin est basada en la observacin de la ltima seccin de la grfica del error medio cuadrtico en el proceso de convergencia tpico para una red Backpropagation; este proceso puede verse en la figura 2.3.7 en la cual se nota la cada brusca del error en la iteracin para la cual alcanza convergencia Figura 2.3.7 Comportamiento tpico del proceso de convergencia para una red Backpropagation Este comportamiento puede causar oscilaciones no deseadas, por lo que es conveniente suavizar esta seccin de la grfica incorporando un filtro pasa-bajo al sistema. Para ilustrar el efecto positivo del filtro en el proceso de convergencia, se analizar el siguiente filtro de primer orden: (2.3.36) Donde w(k) es la entrada al filtro, y(k) su salida y es el coeficiente de momentum que est en el intervalo El efecto del filtro puede observase en la figura 2.3.8, en la cual se tom como entrada al filtro la funcin: (2.3.37) Figura 2.3.8 Efecto del coeficiente de momentum El coeficiente de momentum se asumi para la grfica de la izquierda y para la grfica de la derecha. De esta figura puede notarse como la oscilacin es menor a la salida del filtro, la oscilacin se reduce a medida que se decrementa, el promedio de la salida del filtro es el mismo que el promedio de entrada al filtro aunque mientras sea incrementado la salida del filtro ser ms lenta. Recordando los parmetros de actualizacin empleados por el algoritmo Backpropagation tradicional: (2.3.38) (2.3.39) Al adicionar el filtro con momentum a este algoritmo de actualizacin, se obtienen las siguientes ecuaciones que representan el algoritmo Backpropagation con momentum: (2.3.40) (2.3.41) Este algoritmo, hace que la convergencia sea estable e incluso ms rpida, adems permite utilizar una rata de aprendizaje alta. La figura 2.3.9 referencia el comportamiento del algoritmo con momentum en el punto de convergencia: Figura 2.3.9 Trayectoria de convergencia con momentum 2.3 BACKPROPAGATION 2.3.3.2 Red Backpropagation con rata de aprendizaje variable: Del anlisis de la seccin 2.3.3 se vio que es el gradiente del error, de igual forma se definir como la Hessiana de la funcin de error, donde x representa las variables de las cuales depende el error (pesos y ganancias), esta matriz es siempre de la forma: (2.3.42) La superficie del error medio cuadrtico para redes de una sola capa es siempre una funcin cuadrtica y la matriz Hessiana es por tanto constante, esto lleva a que la mxima rata de aprendizaje estable para el algoritmo de pasos descendientes sea el mximo valor propio de la matriz Hessiana dividido 2,HBD[]. Para una red multicapa la superficie del error no es una funcin cuadrtica, su forma es diferente para diferentes regiones del espacio, la velocidad de convergencia puede incrementarse por la variacin de la rata de aprendizaje en cada parte de la superficie del error, sin sobrepasar el valor mximo para aprendizaje estable definido anteriormente. Existen varias tcnicas para modificar la rata de aprendizaje; este algoritmo emplea un procedimiento mediante el cual la rata de aprendizaje vara de acuerdo al rendimiento que va presentando el algoritmo en cada punto; si el error disminuye vamos por el camino correcto y se puede ir ms rpido incrementando la rata de aprendizaje, si el error aumenta, es necesario decrementar la rata de aprendizaje; el criterio de variacin de debe estar en concordancia con las siguientes reglas heursticas: 1. Si el error cuadrtico de todos los parmetros del set de entrenamiento se incrementa en un porcentaje tpicamente entre 1% y 5%, despus de la actualizacin de los pesos, esa actualizacin es descartada, la rata de aprendizaje se multiplica por un factor , y el coeficiente de momentum es fijado en cero. 2. Si el error cuadrtico se decrementa despus de la actualizacin de los pesos, esa actualizacin es aceptada y la rata de aprendizaje es multiplicada por un factor . Si haba sido previamente puesto en cero, se retorna a su valor original. 3. Si el error cuadrtico se incrementa en un valor menor a , los pesos actualizados son aceptados, pero la rata de aprendizaje y el coeficiente de momentum no son cambiados. Figura 2.3.10 Caracterstica de convergencia para una rata de aprendizaje variable La figura 2.3.10, muestra la trayectoria de la rata de aprendizaje para este algoritmo en comparacin con la caracterstica de convergencia Existen muchas variaciones de este algoritmo, por ejemplo Jacobs[] propuso la regla delta-bar-delta, en la cual cada uno de los parmetros de la red, (pesos y ganancias) tenan su propia rata de aprendizaje. El algoritmo incrementa la rata de aprendizaje para un parmetro de la red si el parmetro escogido, ha estado en la misma direccin para varias iteraciones; si la direccin del parmetro escogido cambia, entonces la rata de aprendizaje es reducida. Los algoritmos Backpropagation con momentum y con rata de aprendizaje variable son los dos mtodos heursticos ms utilizados para modificar el algoritmo Backpropagation tradicional. Estas modificaciones garantizan rpida convergencia para algunos problemas, sin embargo presentan dos problemas principales: primero, requieren de un gran nmero de parmetros , los que la mayora de las veces se definen por un mtodo de ensayo y error de acuerdo a la experiencia del investigador, mientras que el algoritmo tradicional, solo requiere definir la rata de aprendizaje; segundo, estas modificaciones pueden llevar a que el algoritmo nunca converja y se torne oscilante para problemas muy complejos. Como se mencion antes, existen tambin mtodos de modificacin basados en tcnicas de optimizacin numrica, de esta clase de modificaciones se destacaran las ms sobresalientes; es importante recalcar que estos mtodos requieren una matemtica ms exigente, que el simple del dominio de clculo diferencial. 2.3 BACKPROPAGATION 2.3.3.3 Mtodo del Gradiente Conjugado []: Este algoritmo no involucra el clculo de las segundas derivadas de las variables y converge al mnimo de la funcin cuadrtica en un nmero finito de iteraciones. El algoritmo del gradiente conjugado, sin aplicarlo an al algoritmo de propagacin inversa consiste en: 1. Seleccionar la direccin de p0 , la condicin inicial, en el sentido negativo del gradiente: (2.3.43) Donde (2.3.44) 2. Seleccionar la rata de aprendizaje para minimizar la funcin a lo largo de la direccin (2.3.45) 3. Seleccionar la direccin siguiente de acuerdo a la ecuacin (2.3.46) con (2.3.47) 4.Si el algoritmo en este punto an no ha convergido, regresamos al numeral 2 Este algoritmo no puede ser aplicado directamente a una red neural porque el error no es una funcin cuadrtica; lo que afecta al algoritmo en dos formas, primero no es hbil para minimizar la funcin a lo largo de una lnea como es requerido en el paso 2; segundo, el error mnimo no ser alcanzado normalmente en un nmero finito de pasos y por esto el algoritmo necesitar ser inicializado despus de un nmero determinado de iteraciones. A pesar de estas complicaciones, esta modificacin del algoritmo Backpropagation converge en muy pocas iteraciones, y es incluso uno de los algoritmos ms rpidos para redes multicapa, como puede notarse en la figura 2.3.11 Figura 2.3.11 Trayectoria del Gradiente Conjugado 2.3 BACKPROPAGATION 2.3.3.4 Algoritmo de Levenberg - Marquardt:[] Este algoritmo es una modificacin del mtodo de Newton, el que fue diseado para minimizar funciones que sean la suma de los cuadrados de otras funciones no lineales; es por ello que el algoritmo de Levenberg - Marquardt, tiene un excelente desempeo en el entrenamiento de redes neuronales donde el rendimiento de la red est determinado por el error medio cuadrtico. El mtodo de Newton para optimizar el rendimiento e(x) es: (2.3.48) (2.3.49) Si asumimos que e(x) es una suma de funciones cuadrticas: (2.3.50) El gradiente puede ser escrito entonces en forma matricial: (2.3.51) Donde J (x) es la matriz Jacobiana. Ajustando el mtodo de Newton, obtenemos el algoritmo de Levenberg Marquardt (2.3.52) o (2.3.53) La nueva constante determina la tendencia el algoritmo, cuando se incrementa, este algoritmo se aproxima al algoritmo de pasos descendientes para ratas de aprendizaje muy pequeas; cuando se decrementa este algoritmo se convierte en el mtodo de Gauss - Newton El algoritmo comienza con un valor pequeo para , por lo general 0.01, si en ese paso no se alcanza el valor para e(x) entonces el paso es repetido con multiplicado por un factor . Si se ha escogido un valor pequeo de paso en la direccin de paso descendiente, e(x) debera decrecer. Si un paso produce un pequeo valor para e(x), entonces el algoritmo tiende al mtodo de Gauss - Newton, el que se supone garantiza una rpida convergencia. Este algoritmo genera un compromiso entre la velocidad del mtodo de Gauss-Newton y la garanta de convergencia del mtodo de paso descendiente. Los elementos de la matriz Jacobiana necesarios en el algoritmo de Levenberg- Marquardt son de este estilo: (2.3.54) Donde x es el vector de parmetros de la red, que tiene la siguiente forma: (2.3.55) Para utilizar este algoritmo en las aplicaciones para redes multicapa, se redefinir el trmino sensitividad de forma que sea ms simple hallarlo en cada iteracin. (2.3.56) Donde h=(q-1)S M + k Con la sensitividad definida de esta manera, los trminos de la matriz Jacobiana pueden ser calculados ms fcilmente: (2.3.57) y para las ganancias: (2.3.58) De esta forma, cuando la entrada pQ ha sido aplicada a la red y su correspondiente salida a M Q ha sido computada, el algoritmo Backpropagation de Levenberg-Marquardt es inicializado con: (2.3.59) Cada columna de la matriz S M Q debe ser propagada inversamente a travs de la red para producir una fila de la matriz Jacobiana. Las columnas pueden tambin ser propagadas conjuntamente de la siguiente manera: (2.3.60) La matrices sensitividad total para cada capa en el algoritmo de Levenberg- Marquardt son formadas por la extensin de las matrices computadas para cada entrada: (2.3.61) Para cada nueva entrada que es presentada a la red, los vectores de sensitividad son propagados hacia atrs, esto se debe a que se ha calculado cada error en forma individual, en lugar de derivar la suma al cuadrado de los errores. Para cada entrada aplicada a la red habr S M errores, uno por cada elemento de salida de la red y por cada error se generara una fila de la matriz Jacobiana. Este algoritmo puede resumirse de la siguiente manera: 1. Se presentan todas las entradas a la red, se calculan las correspondientes salidas y cada uno de los errores segn (2.3.62) se calcula despus, la suma de los errores cuadrados para cada entrada e(x) 2. Se calculan las sensitividades individuales y la matriz sensitividad total y con estas, se calculan los elementos de la matriz Jacobiana. 3. Se obtiene 4. Se recalcula la suma de los errores cuadrados usando . Si esta nueva suma es ms pequea que el valor calculado en el paso 1 entonces se divide por , se calcula y se regresa al paso 1. Si la suma no se reduce entonces se multiplica por y se regresa al paso 3. El algoritmo debe alcanzar convergencia cuando la norma del gradiente de (2.3.63) Sea menor que algn valor predeterminado, o cuando la suma de los errores cuadrados ha sido reducida a un error que se haya trazado como meta. El comportamiento de este algoritmo se visualiza en la figura 2.3.12, la cual muestra la trayectoria de convergencia con y Figura 2.3.12 Trayectoria del algoritmo Levenberg-Marquardt Como puede verse, este algoritmo converge en menos iteraciones que cualquier mtodo discutido anteriormente, por supuesto requiere mucha ms computacin por iteracin, debido a que implica el clculo de matrices inversas. A pesar de su gran esfuerzo computacional sigue siendo el algoritmo de entrenamiento ms rpido para redes neuronales cuando se trabaja con un moderado nmero de parmetros en la red, si el nmero de parmetros es muy grande utilizarlo resulta poco prctico. 4 APRENDIZAJE ASOCIATIVO 2.4.1 Antecedentes: Las redes con aprendizaje no supervisado (tambin conocido como auto-supervisado) no requieren influencia externa para ajustar los pesos de las conexiones entre sus neuronas, la red no recibe ninguna informacin por parte del entorno que le indique si la salida generada en respuesta a una determinada entrada es o no correcta, por ello suele decirse que estas redes son capaces de auto organizarse. Estas redes deben encontrar las caractersticas, regularidades, correlaciones o categoras que se puedan establecer entre los datos que se presenten en su entrada; puesto que no hay supervisor que indique a la red la respuesta que debe generar ante una entrada concreta, cabra preguntarse precisamente por lo que la red genera en estos casos, existen varias posibilidades en cuanto a la interpretacin de la salida de estas redes que dependen de su estructura y del algoritmo de aprendizaje empleado. En algunos casos, la salida representa el grado de familiaridad o similitud entre la informacin que se le est presentando en la entrada de la red y las informaciones que se le han mostrado hasta entonces, en otro caso la red podra realizar una clusterizacin (clustering) o establecimiento de categoras, indicando la salida de la red a que categora pertenece la informacin presentada a la entrada, siendo la propia red quien deba encontrar las categoras apropiadas a partir de correlaciones entre las informaciones presentadas. Una variacin de esta categorizacin es el prototipado, en este caso la red obtiene ejemplares o prototipos representantes de las clases a las que pertenecen las informaciones de entrada. El aprendizaje sin supervisin permite tambin realizar una codificacin de los datos de entrada, generando a la salida una versin codificada de la entrada con menos bits, pero manteniendo la informacin relevante de los datos. Algunas redes con aprendizaje no supervisado generan un mapeo de caractersticas (featuring mapping), obtenindose en las neuronas de salida una disposicin geomtrica que representa un mapa fotogrfico de las caractersticas de los datos de entrada, de tal forma que si se presentan a la red informaciones similares siempre sean afectadas neuronas de salida prximas entre s, en la misma zona del mapa. En cuanto a los algoritmos de aprendizaje no supervisado, en general se consideran dos tipos, que dan lugar a los siguientes aprendizajes: Aprendizaje asociativo Aprendizaje competitivo En el primer caso normalmente se pretende medir la familiaridad o extraer caractersticas de los datos de entrada, mientras que el segundo suele orientarse hacia la clusterizacin o clasificacin de dichos datos. En esta seccin se profundizar en el estudio del primero de estos algoritmos, el correspondiente al aprendizaje asociativo. Una asociacin es cualquier vnculo entre la entrada de un sistema y su correspondiente salida. Cuando dos patrones son vinculados por una asociacin, el patrn de entrada es a menudo referido como el estmulo, y la salida es referida como la respuesta. El aprendizaje asociativo fue inicialmente estudiado por escuelas de Sicologa, las cuales se dedicaron a estudiar las relaciones entre el comportamiento humano y el comportamiento animal. Una de las primeras influencias en este campo fue el experimento clsico de Pavlov, en el cual se entren a un perro para salivar al escuchar el sonido de una campana si le era presentado un plato de comida, este es un ejemplo del llamado Condicionamiento Clsico. Otro de los principales exponentes de esta escuela fue B.F. Skinner, su experimento involucr el entrenamiento de ratas, las cuales deban presionar un botn para obtener comida, a este tipo de entrenamiento se le llamo Condicionamiento Instrumental. Basado en este tipo de comportamiento, Donald Hebb postul el siguiente principio conocido como la regla de Hebb: Cuando un axn de una celda A est lo suficientemente cerca de otra celda B como para excitarla y repetidamente ocasiona su activacin, un cambio metablico se presenta en una o ambas celdas, tal que la eficiencia de A, como celda excitadora de B, se incrementa". Con el trmino celda, Hebb se refera a un conjunto de neuronas fuertemente conexionadas a travs de una estructura compleja, la eficiencia podra identificarse con la intensidad o magnitud de la conexin, es decir el peso. Este postulado aplicado a redes asociativas, marc el inicio del aprendizaje no supervisado. Un gran nmero de investigadores ha contribuido al aprendizaje asociativo, en particular Tuevo Kohonen, James Anderson y Stephen Grossberg. Anderson y Kohonen desarrollaron independientemente el asociador lineal a finales de los aos 60s y Grossberg introdujo la red asociativa no lineal durante este mismo periodo. Segn la regla de aprendizaje de Hebb, la actividad coincidente en las neuronas prsinptica y postsinptica es crtica para fortalecer la conexin entre ellas, a esto se denomina mecanismo asociativo pre-post. 2.4 APRENDIZAJE ASOCIATIVO 2.4.2 Estructura de la red: La red ms sencilla capaz de realizar una asociacin se presenta en la figura 2.4.1, esta es una red de una sola neurona con una funcin de transferencia limitador fuerte Figura 2.4.1 Asociador lineal con un limitador fuerte La salida a de la neurona est determinada por su entrada p, de acuerdo a: a=hardlim (wp+b) (2.4.1) Por simplicidad se tomar el valor de p como cero o uno, indicando presencia o ausencia de estmulo. El valor de a esta limitado por la funcin de transferencia con salida cero o uno. La presencia de una asociacin entre el estmulo p=1 y la respuesta a=1, es indicada por el valor de w. La red responder al estmulo, solamente si wp es mayor que b. El estudio de redes asociativas ha evitado el uso de redes complejas, por tanto se han definido dos tipos de estmulos: un conjunto de entradas llamado estmulo no condicionado, anlogo a la comida presentada al perro en el experimento de Pavlov y otro conjunto de entradas llamado estmulo condicionado, anlogo a la campana en el experimento. Inicialmente el perro saliva solamente cuando la comida es presentada, esta caracterstica innata hace que el perro aprenda. Sin embargo, cuando la campana ha acompaado la comida repetidas veces, el perro es condicionado a salivar con el sonido de la campana an cuando la comida no haya sido presentada. Definiendo las clases de entradas a una red asociativa, se tiene: Estmulo no condicionado: Corresponde a la entrada, que pudiendo ser de carcter escalar o vectorial, refuerza el aprendizaje y ayuda a hacer la asociacin con la salida deseada, este estmulo se presenta intermitentemente para simular un real proceso de aprendizaje y memorizacin de la red; la mayora de las veces el estmulo no condicionado se convierte en la salida deseada de la red. Estmulo condicionado: Es el objeto de la asociacin, debe ser siempre presentado a la red y sta debe asociarlo con la salida deseada; al final del proceso de aprendizaje la red debe ser capaz de entregar la respuesta correcta con la presentacin de este nico estmulo a su entrada, sin importar si el estmulo no condicionado ha sido presentado o no, pues la asociacin ya ha sido realizada. En este caso representaremos el estmulo no condicionado por p 0 y el estmulo condicionado simplemente por p. Los pesos w 0 , asociados con p 0 se tomarn fijos y los pesos w asociados a p sern actualizados en cada iteracin. La figura 2.4.2 representa la red correspondiente al asociador lineal para una fruta, la red tiene ambos estmulos, no condicionado (forma de la fruta) y condicionado (olor de la fruta), escogidos aleatoriamente para este caso, en el cual se tratar simplemente de ilustrar el objeto de una asociacin. Segn la eleccin de los estmulos se desea que la red asocie la forma de la fruta pero no su olor, es decir el sensor de olor trabajar siempre correctamente, de tal manera que la red lo tendr siempre presente, pero el sensor de forma trabajar intermitentemente, cuando la forma sea detectada (sensor de forma p 0 =1), la red responder correctamente identificando la fruta. Figura 2.4.2 Asociador para una fruta La definicin de los estmulos estar dada por: Con el propsito de cumplir las condiciones matemticas del ejemplo, se ha escogido b = -0.5. Para iniciar con el asociador se asignar a w 0 un valor mayor a - b y a w un valor menor que b. Los siguientes valores satisfacen estos requerimientos: w 0 =1, w=0 (2.4.2) La funcin de entrada/salida del asociador para una fruta, puede simplificarse a: a= hardlim (p 0 - 0.5) (2.4.3) La red responder solo si p 0 =1, sin importar si p=1, o p=0, es decir la red responder independientemente del estmulo condicionado. Llegar un momento en que el sensor de forma no trabajar ms y se espera que para ese momento la red haya realizado una asociacin correcta para identificar la fruta con la sola presencia del olor, sin necesidad de que su forma tenga que ser detectada, esto se lograr variando los valores para los pesos de conexin de la red para el estmulo condicionado. 2.4 APRENDIZAJE ASOCIATIVO 2.4.3 Regla de Hebb: Esta regla puede interpretarse matemticamente teniendo en cuenta que si dos neuronas en cualquier lado de la sinapsis son activadas simultneamente, la longitud de la sinapsis se incrementar. Si se revisa la figura 2.4.3 correspondiente a un asociador lineal, se ve como la salida a, es determinada por el vector de entrada p. Figura 2.4.3 Asociador Lineal (2.4.4) Puede notarse como la conexin (sinapsis) entre la entrada pj y la salida ai es el peso wij. De esta forma el postulado de Hebb implica que si un valor positivo pj produce un valor positivo ai, el valor de wij debe incrementarse, (2.4.5) Donde: pjq :j-simo elemento del q-simo vector de entrada pq aiq :i-simo elemento de salida de la red, cuando el q-simo vector de entrada es presentado :es la rata de aprendizaje, la cual es un valor positivo constante La regla de Hebb dice que el cambio en el peso wij es proporcional al producto de las funciones de activacin en cualquier lado de la sinapsis. As, los pesos sern incrementados cuando pj y ai sean positivos, pero tambin lo harn cuando ambos parmetros sean negativos, en contraposicin los pesos se decrementarn cuando pj y aijtengan signos contrarios. Si se retorna a la discusin de los estmulos en animales y seres humanos, debe decirse que ambos tienden a asociar eventos que ocurren simultneamente. Parafraseando el postulado de Hebb: "Si el estmulo del olor de la fruta, ocurre simultneamente con la respuesta del concepto de esa fruta, (activada por algn otro estmulo como la forma de la fruta), la red debe alargar la conexin entre ellos para que despus, la red active el concepto de esa fruta en respuesta a su olor solamente." La regla de aprendizaje de Hebb determina que el incremento del peso wij entre la entrada pj de una neurona y su salida ai en la q-sima iteracin es: (2.4.6) La rata de aprendizaje determina cuantas veces un estmulo y su respuesta deben ocurrir juntos antes de que la asociacin sea hecha. En la red de la figura 2.4.2, una asociacin ser hecha cuando w > -b = 0.5, entonces para una entrada p=1 se producir una salida a=1, sin importar el valor de p 0 Para comprender el funcionamiento de la regla de Hebb, sta se aplicar a la solucin del asociador de la fruta resuelto en el numeral anterior. El asociador ser inicializado con los valores determinados anteriormente w 0 =1, w (0) = 0 (2.4.7) El asociador ser repetidamente expuesto a la fruta; sin embargo mientras el sensor de olor trabajar en forma siempre confiable (estmulo condicionado), el sensor de la forma operar intermitentemente (estmulo no condicionado). As la secuencia de entrenamiento consiste en la repeticin de la siguiente secuencia de valores de entrada: {p 0 (1) = 0, p(1) = 1}, {p 0 (2) = 1, p(2) = 1}.... (2.4.8) Usando una rata de aprendizaje , y empleando la regla de Hebb, sern actualizados los pesos w correspondientes al estmulo condicionado, ya que como se dijo anteriormente, los pesos correspondientes al estmulo no condicionado se mantendrn constantes. La salida para la primera iteracin (q=1) es: a(1) = hardlim(w 0 p 0 (1)+ w(0) p (1) - 0.5) = hardlim (1*0 + 0*1- 0.5) = 0 No hay respuesta (2.4.9) El olor solamente no ha generado una respuesta esto es, no hubo una asociacin entre el olor de la fruta y el concepto de la fruta como tal, sin una respuesta la regla de Hebb, no altera el valor de w W (1)=w (0)+a (1) p (1) = 0 + 0*1=0 (2.4.10) En la segunda iteracin, son detectados tanto la forma como el olor de la fruta y la red responder correctamente identificando la fruta a(2) = hardlim (w 0 p 0 (2) + w(1) p(2) - 0.5) (2.4.11) = hardlim(1*1 + 0*1- 0.5) = 1 La fruta ha sido detectada Como el estmulo del olor y la respuesta de la red ocurrieron simultneamente la regla de Hebb, incrementa los pesos entre ellos. w(2)= w(1) + a(2) p(2) = 0 + 1*1 =1 (2.4.12) En la tercera iteracin a pesar de que el sensor de la forma falla nuevamente, la red responde correctamente. La red ha realizado una asociacin til entre el olor de la fruta y su respuesta. a(3)=hardlim(w 0 p 0 (3)+w(2) p(3) - 0.5) (2.4.13) =hardlim(1*0+1*1-0.5) =1 La fruta ha sido detectada w(3) = w(2)+a(3) p(3) = 1+1*1 = 2 (2.4.14) Ahora la red es capaz de identificar la fruta por medio de su olor o de su forma; incluso si los dos sensores tienen fallas intermitentes, la red responder correctamente la mayora de las veces. Una forma de mejorar la regla de Hebb, es adicionar un trmino que controle el crecimiento de la matriz de peso, a esta modificacin se le da el nombre de regla de Hebb con rata de olvido. (2.4.15) Donde es la rata de olvido, la cual es una constante positiva menor que 1; cuando se aproxima a cero la ley de aprendizaje se convierte en la ley de Hebb estndar; cuando se aproxima a 1, la rata de aprendizaje olvida rpidamente las entradas anteriores y recuerda solamente los patrones ms recientes. El efecto de esta nueva constante, es controlar que el crecimiento de la matriz de pesos no se realice sin lmites y as darle un mejor aprovechamiento a la capacidad de memoria de la red. 2.4 APRENDIZAJE ASOCIATIVO 2.4.4 Red Instar: Hasta ahora se han considerado solamente reglas de asociacin entre entradas y salidas escalares. Si se examina la red de la figura 2.4.4, se nota como esta neurona est enfrentada a un problema de reconocimiento de patrones cuya entrada es de tipo vectorial; esta neurona es el tipo de red ms simple capaz de resolver esta clase de problemas y es llamada red Instar. Figura 2.4.4 Red Instar Puede notarse la similitud entre la red Instar y la red Perceptrn de la figura 2.1.6, o incluso a la red Adaline de la figura 2.2 3. Estas redes han tenido diferentes nombres, debido a razones histricas y a que su desempeo ha sido analizado en diferentes ambientes. Para la Instar no se considerar directamente su caracterstica de decisin, concepto que fue bastante importante para el Perceptrn, en lugar de ello se analizar la capacidad de la Instar para reconocimiento de patrones a travs de asociaciones y aprendizaje no supervisado. La ecuacin para determinar la entrada/salida de la Instar es: a= hardlims (w T p+b) (2.4.16) La red Instar se activar si el producto punto entre el vector de pesos (fila de la matriz de pesos) y la entrada sea mayor o igual a b (2.4.17) Los vectores w y p son de longitud constante, por lo tanto el mayor producto punto se presentar cuando los dos vectores apunten en la misma direccin; dicho de otra forma cuando el ngulo entre w y p sea , esto permite observar que la red instar de la figura 2.4.4 se activar cuando p y w estn muy cercanos, escogiendo un apropiado valor para la ganancia b se puede determinar qu tan cerca deben estar p y w para que la instar se active, si se fija (2.4.18) la instar se activar solamente cuando p apunte exactamente en la misma direccin de w, de esta forma b se puede incrementar a valores ligeramente mayores a , el mayor valor de b se presentar cuando la Instar est activa. Es importante recalcar que este anlisis asume que todos los vectores tienen la misma longitud. Uno de los inconvenientes de la regla de Hebb con rata de olvido, es que requiere que los estmulos se presenten de forma repetitiva o de lo contrario se perder la asociacin, se desea encontrar una regla alternativa que habilite el trmino con olvido solo cuando la Instar es activa , de esta forma los valores de los pesos seguirn siendo limitados, pero el porcentaje de olvido ser minimizado. Para obtener los beneficios del trmino de peso con rata de olvido, se adiciona un nuevo trmino proporcional a ai(q). (2.4.19) El nuevo trmino de peso se hace proporcional a la salida escalar ai(q), ya que se desea controlar esta salida para que reproduzca el estmulo no condicionado; si se considera que la rata a la cual la red aprende nuevos pesos es igual a la rata de olvido , la ecuacin (2.4.18) puede simplificarse a: (2.4.20) Esta ecuacin es la llamada regla de Instar, que en forma vectorial teniendo en cuenta el caso en que la instar esta activa (ai=1), se convierte en: w(q)= w(q-1) + (p(q) - w(q-1)) = (1- ) w(q-1)+ p(q) (2.4.21) Esta operacin se muestra en la figura 2.4.5 Figura 2.4.5 Representacin grfica de la regla de Instar Cuando la instar es activa, el vector de pesos se mueve hacia el vector de entrada a lo largo de una lnea entre el vector de pesos anterior y el vector de entrada. La distancia a la que se mueve el vector depende del valor de la rata de aprendizaje . Cuando =0, el nuevo vector de pesos es igual al vector de pesos anterior. Cuando =1, el nuevo vector de pesos es igual al vector de entrada. Si =0.5 el nuevo vector de pesos ser la mitad entre el vector de pesos anterior y el vector de entrada. Una caracterstica til de la regla Instar es que si los vectores de entrada son normalizados, entonces w ser tambin normalizado una vez la red haya aprendido un vector particular p, esta regla no solamente minimiza la rata de olvido, tambin normaliza los vectores de peso si el vector de entrada es normalizado. Se aplicar la regla de Instar para solucionar el problema de la figura 2.4.6, similar al problema del asociador para una fruta; este nuevo caso cuenta con dos entradas, una indicando si la fruta ha sido visualizada o no (estmulo no condicionado) y otra consistente en un vector de tres medidas pertenecientes a la fruta (estmulo condicionado). Figura 2.4.6 Reconocimiento de una fruta por medio de una Instar La salida de la red, est determinada por a = hardlim(w 0 p 0 +Wp+b) Los elementos de entrada a la red sern valores de 1 o 1, las tres propiedades que se medirn de la fruta son: forma, textura y peso, de esta manera la salida del sensor de forma ser 1 si la fruta es aproximadamente redonda o 1 si la fruta es elptica, la salida del sensor de textura ser 1 si la superficie de la fruta es suave y ser 1 si es rugosa y la salida del sensor de peso ser 1 si la fruta pesa ms de una libra o 1 si el peso de la fruta es menor de esta medida. En este caso la eleccin del estmulo condicionado y el no condicionado ya no es aleatoria, pues como se dijo en anlisis anteriores, el estmulo no condicionado se convierte la mayora de las veces en la salida deseada de la red que es tipo de escalar para una red Instar, por lo tanto el sensor que representa la visualizacin de la red ser el estmulo no condicionado y el vector de medidas de la fruta ser el estmulo condicionado. Con las dimensiones consideradas p es un vector normalizado con = . La definicin de p 0 y p es: El valor de la ganancia se asumir como b = -2, un valor ligeramente ms positivo que - 2 = -3. Lo ideal es que la red tenga una asociacin constante, entre la visualizacin de la fruta y su respuesta, para que w 0 sea mayor que b. Inicialmente la red no responder a ninguna combinacin de medidas de la fruta, puesto que la fruta no ha sido detectada visualmente, as que los pesos iniciales sern cero w 0 =3, W(0) = 1w T (0) = [0 0 0] (2.4.22) Usando la regla Instar con una rata de aprendizaje , los pesos actualizados se encontrarn de la siguiente forma: w(q) = w (q -1) + a(q) (p(q) - w(q-1)) (2.4.23) La secuencia de entrenamiento consistir en repetidas presentaciones de la fruta, los sensores estarn actuando todo el tiempo sin embargo, en orden a observar la operacin de la regla Instar se asumir que el sensor que visualiza la fruta actuar intermitentemente, simulando as una falla en su construccin (2.4.24) Como la matriz W inicialmente contiene ceros, la Instar no responder a los sensores de la fruta en la primera iteracin a(1)=hardlim(w 0 p 0 (1) + Wp (1) - 2) (2.4.25) Como la neurona no respondi, sus pesos no sern actualizados por la regla Instar w(0) = w(0)+ a (1)(p(1)-w (0)) (2.4.26) En la segunda iteracin, cuando la fruta haya sido detectada visualmente, la neurona responder a(2) = hardlim (w 0 p 0 (2)+Wp (2)-2) (2.4.27) El resultado es que la red aprendi a asociar el vector de medidas de la fruta con su respuesta. El vector de pesos de la red, se convierte en una copia del vector de medidas de la fruta. w(2) = w(1)+ a (2)(p(2)-w (1)) (2.4.28) La red puede ahora reconocer la fruta por sus medidas; la neurona respondi en la tercera iteracin, aun cuando el sistema de deteccin visual fall, por lo tanto la red realizar una asociacin entre la presencia de la fruta y el vector de estmulos condicionados, sin importar si el sensor de visualizacin (estmulo no condicionado) opera adecuadamente. a(3) = hardlim (w 0 p 0 (3)+Wp (3) - 2) (2.4.29) Cuando las medidas de la fruta han sido detectadas completamente, los pesos dejan de cambiar y se estabilizan. w(3) = w(2)+ a (3)(p(3)-w (2)) (2.4.30) 2.4 APRENDIZAJE ASOCIATIVO 2.4.5 Red Outstar: Ya se ha visto como la red Instar (con una entrada tipo vector y una salida tipo escalar) puede resolver problemas de reconocimiento de patrones por asociacin de un vector particular de estmulo, con su respuesta. La red Outstar, mostrada en la figura 2.4.7 tiene una entrada tipo escalar y una salida tipo vectorial y puede recordar patrones por asociacin de un estmulo con un vector de respuesta. Figura 2.4.7 Red Outstar La expresin de salida de esta red es: a=satlins(Wp) (2.4.30) Se desea recordar un vector con valores entre 1 y 1, para lo cual se utilizar la funcin de saturacin simtrica satlins, aunque pueden usarse otras funciones como por ejemplo hardlims. Para derivar la regla Instar, el problema del olvido presentado por la regla de aprendizaje de Hebb fue limitado por el nuevo trmino de peso, el cual era proporcional a la salida de la red ai. De manera similar, para obtener la regla de aprendizaje Outstar el trmino con olvido se har proporcional a la entrada de la red pj ya que la salida de esta red es un vector, con el cual se espera simular el estmulo no condicionado (2.4.31) Si se hace la rata de olvido igual a la rata de aprendizaje se obtiene wij(q) = wij (q -1) + (ai(q) - wij(q-1)) pj(q) (2.4.32) La regla Outstar tiene propiedades complementarias a la regla Instar; el aprendizaje ocurre cuando una entrada pj tiene un valor diferente a cero (en lugar de ai). Cuando el aprendizaje ocurre, la columna wj, se acerca al vector de salida. Se entrenar la red de la figura 2.4.8, para observar el funcionamiento del algoritmo Figura 2.4.8 Reconocimiento de una fruta mediante una Outstar La salida de la red ser calculada como: a=satlins(W 0 p 0 +Wp) (2.4.33) Donde (2.4.34) Continuando con el reconocimiento de frutas, los estmulos condicionado y no condicionado son: Como puede verse el estmulo no condicionado para una red Outstar tiene forma vectorial y el estmulo no condicionado forma escalar, en forma opuesta a la red de Instar; la salida esperada de la red, es el vector de medidas de la fruta para cualquier entrada disponible. La matriz de pesos para el estmulo no condicionado W 0 es la matriz identidad, as cualquier conjunto de medidas p 0 (con valores entre 1 y-1) ser reproducido a la salida de la red. La matriz de pesos para el estmulo condicionado W, es inicializada en ceros para que un 1 en p no genere respuesta. Wser actualizada con la regla Outstar, usando una rata de aprendizaje de 1. La secuencia de entrenamiento consiste en repetidas presentaciones de la visualizacin de la fruta y de sus medidas, las cuales se escogieron de la siguiente forma: (2.4.35) Para probar la red, el sistema de medidas de la red ser presentado intermitentemente (2.4.36) En la primera iteracin la fruta es vista pero sus medidas no estn disponibles, y como el vector de medidas es en este caso el estmulo no condicionado la red no estregar una respuesta. a=satlins(W 0 p 0 (1)+Wp(1)) (2.4.37) La red ve la fruta, pero no puede determinar sus medidas porque an no las ha aprendido; por lo tanto los pesos no son alterados w1(1) = w1(0)+(a (1) w1 (2)) p(1) (2.4.38) En la segunda iteracin, tanto la fruta como sus medidas son presentadas a la red (2.4.39) La red entreg las medidas de la fruta a la salida, es decir realiz la primera asociacin entre la fruta y sus medidas, por lo tanto los pesos son actualizados w1(2) = w1(1)+(a (2) w1 (1)) p(2) (2.4.40) Cuando la fruta fue visualizada y sus medidas presentadas, la red forma una asociacin entre ellas, la matriz de pesos es ahora una copia de las medidas de la fruta y de esa forma podr recordarlas ms adelante. En la tercera iteracin, las medidas no son presentadas a la red, y an as la red las reproduce porque las recuerda por medio de la asociacin que realiz (2.4.41) Desde este momento, los pesos no sufrirn grandes cambios, a menos que la fruta sea vista con medidas diferentes w1(3) = w1(2)+(a (3) w1 (2)) p(3) (2.4.42) Las redes de Instar y Outstar son empleadas conjuntamente en la red ART [], y cada una en forma independiente son utilizadas en gran cantidad de aplicaciones debido a su fcil implementacin y al funcionamiento casi intuitivo de su regla de aprendizaje; las redes asociativas se utilizan principalmente para filtrado de informacin en la reconstruccin de datos, eliminando distorsiones o ruido, tambin se emplean para explorar relaciones entre informaciones similares, para facilitar la bsqueda por contenido en bases de datos y para resolver problemas de optimizacin. 2.5 REDES COMPETITIVAS 2.5.1 Antecedentes: En las redes con aprendizaje competitivo (y cooperativo), suele decirse que las neuronas compiten (y cooperan) unas con otras con el fin de llevar a cabo una tarea dada. Con este tipo de aprendizaje se pretende que cuando se presente a la red cierta informacin de entrada, slo una de las neuronas de salida de la red, o una por cierto grupo de neuronas, se active (alcance su valor de respuesta mximo). Por tanto las neuronas compiten para activarse quedando finalmente una, o una por grupo, como neurona vencedora y el resto quedan anuladas y siendo forzadas a sus valores de respuesta mnimos. La competicin entre neuronas se realiza en todas las capas de la red, existiendo en estas redes neuronas con conexiones de autoexcitacin (signo positivo) y conexiones de inhibicin (signo negativo) por parte de neuronas vecinas. El objetivo de este aprendizaje es categorizar (clisterizar) los datos que se introducen en la red, de esta forma las informaciones similares son clasificadas formando parte de la misma categora y por tanto deben activar la misma neurona de salida. Las clases o categoras deben ser creadas por la propia red, puesto que se trata de un aprendizaje no supervisado a travs de las correlaciones entre los datos de entrada. A principios de 1959, Frank Rosenblatt cre su simple clasificador espontneo, una red de aprendizaje no supervisado basado en el Perceptrn, el cual aprenda a clasificar vectores de entrada en dos clases con igual nmero de trminos. A finales de los aos 60s y principios de los 70s, Stephen Grossberg introdujo muchas redes competitivas que usaban inhibicin lateral obteniendo buenos resultados. Algunos de los comportamientos tiles obtenidos por l, fueron la supresin del ruido, aumento del contraste y normalizacin de vectores. En 1973, Christoph Von Der Malsburg introduce la regla del mapa de organizacin propia, que permita a la red clasificar entradas en las cuales las neuronas que estuviesen en un vecindario cercano a la neurona ganadora, respondieran a entradas similares. La topologa de esta red imitaba de alguna forma las estructuras encontradas en la corteza visual de los gatos, estudiada por David Hubel y Torten Wiesel. Su regla de aprendizaje gener gran inters, pero esta utilizaba un clculo no local para garantizar que los pesos fueran normalizados, este hecho haca este modelo biolgicamente poco posible. Grossberg extendi el trabajo de Von Der Malsburg, redescubriendo la regla Instar. Grossberg mostr que la regla Instar removi la necesidad de renormalizar los pesos, porque los vectores de pesos que aprendan a reconocer vectores de entrada normalizados, automticamente se normalizarn ellos mismos. El trabajo de Grossberg y Von Der Malsburg enfatiz la posibilidad biolgica de sus redes. Otro exitoso investigador, Tuevo Kohonen ha sido tambin un fuerte proponente de las redes competitivas; sin embargo, su nfasis ha sido en aplicaciones para ingeniera y en descripciones de eficiencia matemtica de las redes. Durante la dcada de los 70 Kohonen desarroll una versin simplificada de la regla Instar, inspirada tambin en la red de Von Der Malsburg y Grossberg, de esta forma encontr una manera muy eficiente de incorporar topologa a una red competitiva. Otra forma de aplicar este tipo de aprendizaje fue propuesta por Rumelhart y Zisper [32] en 1985, quienes utilizaban redes multicapa dividiendo cada capa en grupos de neuronas, de tal forma que stas disponan de conexiones inhibitorias con otras neuronas de su mismo grupo y conexiones excitadoras con las neuronas de la siguiente capa; en una red de este tipo, despus de recibir diferentes informaciones de entrada, cada neurona en cada grupo se especializa en la respuesta a determinadas caractersticas de los datos de entrada. En este tipo de redes cada neurona tiene asignado un peso total (suma de todos los pesos de las conexiones que tiene a su entrada), el aprendizaje afecta slo a las neuronas ganadoras (activas), en las que se redistribuye el peso total entre sus conexiones y se sustrae una porcin de los pesos de todas las conexiones que llegan a la neurona vencedora, repartiendo esta cantidad por igual entre todas las conexiones procedentes de unidades activas, por tanto la variacin del peso de una conexin entre una unidad i y otra j ser nula si la neurona j no recibe excitacin por parte de la neurona i (no vence en presencia de un estmulo por parte de i) y se modificar (se reforzar) si es excitada por dicha neurona. Una variacin del aprendizaje supervisado aplicado a redes multicapa consiste en imponer una inhibicin mutua entre neuronas nicamente cuando estn a cierta distancia unas de otras (suponiendo que las neuronas se han dispuesto geomtricamente, por ejemplo formando capas bidimensionales), existe entonces un rea o regin de vecindad alrededor de las neuronas que constituye un grupo local. Fukushima [11] emple esta idea en 1975 para una red multicapa llamada Cognitron, fuertemente inspirada en la anatoma y fisiologa del sistema visual humano y en 1980 el mismo Fukushima [12] en una versin mejorada de la anterior a la que llam Necognitron, present una variacin de esta red utilizando aprendizaje supervisado. El Necognitrron dispona de un gran nmero de capas con arquitectura muy especfica de interconexiones entre ellas y era capaz de aprender a diferenciar caracteres, aunque estos se presentasen a diferente escala, en diferente posicin o distorsionados. El aspecto geomtrico de la disposicin de neuronas de una red, es la base de un caso particular de aprendizaje competitivo introducido por Kohonen en 1982 conocido como feature mapping (mapas de caractersticas), aplicado en redes con una disposicin bidimensional de las neuronas de salida, que permiten obtener mapas topolgicos o topogrficos (topology preserving maps, topographics maps, self organization maps) en los que de algn modo estaran representadas las caractersticas principales de las informaciones presentadas a la red. De esta forma, si la red recibe informaciones con caractersticas similares, se generaran mapas parecidos, puesto que seran afectadas neuronas de salidas prximas entre s. 2.5 REDES COMPETITIVAS 2.5.2 Red de Kohonen: Existen evidencias que demuestran que en el cerebro hay neuronas que se organizan en muchas zonas, de forma que las informaciones captadas del entorno a travs de los rganos sensoriales se representan internamente en forma de mapas bidimensionales. Por ejemplo, en el sistema visual se han detectado mapas del espacio visual en zonas del crtex (capa externa del cerebro), tambin en el sistema auditivo se detecta una organizacin segn la frecuencia a la que cada neurona alcanza mayor repuesta (organizacin tonotpica). Aunque en gran medida esta organizacin neuronal est predeterminada genticamente, es probable que parte de ella se origine mediante el aprendizaje, esto sugiere que el cerebro podra poseer la capacidad inherente de formar mapas topolgicos de las informaciones recibidas del exterior, de hecho esta teora podra explicar su poder de operar con elementos semnticos: algunas reas del cerebro simplemente podran crear y ordenar neuronas especializadas o grupos con caractersticas de alto nivel y sus combinaciones, en definitiva se construiran mapas especiales para atributos y caractersticas. A partir de estas ideas Tuevo Kohonen [24] present en 1982 un sistema con un comportamiento semejante, se trataba de un modelo de red neuronal con capacidad para formar mapas de caractersticas de manera similar a como ocurre en el cerebro; el objetivo de Kohonen era demostrar que un estmulo externo (informacin de entrada) por s solo, suponiendo una estructura propia y una descripcin funcional del comportamiento de la red, era suficiente para forzar la formacin de los mapas. Este modelo tiene dos variantes denominadas LVQ (Learning Vector Quantization) y TPM (Topology Preserving Map) o SOM (Self Organizing Map), ambas se basan en el principio de formacin de mapas topolgicos para establecer caractersticas comunes entre las informaciones (vectores) de entrada a la red, aunque difieren en las dimensiones de stos, siendo de una sola dimensin en el caso de LVQ y bidimensional o tridimensional en la red SOM. Estas redes se tratarn con mayor profundidad en secciones posteriores. El aprendizaje en el modelo de Kohonen es de tipo Off-line, por lo que se distingue una etapa de aprendizaje y otra de funcionamiento. En la etapa de aprendizaje se fijan los valores de las conexiones (feedforward) entre la capa de entrada y la salida. Esta red utiliza un aprendizaje no supervisado de tipo competitivo, las neuronas de la capa de salida compiten por activarse y slo una de ellas permanece activa ante una determinada informacin de entrada a la red, los pesos de las conexiones se ajustan en funcin de la neurona que haya resultado vencedora. Durante la etapa de entrenamiento, se presenta a la red un conjunto de informaciones de entrada (vectores de entrenamiento) para que sta establezca en funcin de la semejanza entre los datos las diferentes categoras (una por neurona de salida), que serviran durante la fase de funcionamiento para realizar clasificaciones de nuevos datos que se presenten a la red. Los valores finales de los pesos de las conexiones entre cada neurona de la capa de salida con las de entrada se correspondern con los valores de los componentes del vector de aprendizaje que consigue activar la neurona correspondiente. En el caso de existir ms patrones de entrenamiento que neuronas de salida, ms de uno deber asociarse con la misma neurona, es decir pertenecern a la misma clase. En este modelo el aprendizaje no concluye despus de presentarle una vez todos los patrones de entrada, sino que habr que repetir el proceso varas veces para refinar el mapa topolgico de salida, de tal forma que cuantas ms veces se presenten los datos, tanto ms se reducirn las zonas de neuronas que se deben activar ante entradas parecidas, consiguiendo que la red pueda realizar una clasificacin ms selectiva. Un concepto muy importante en la red de Kohonen es la zona de vecindad, o vecindario alrededor de la neurona vencedora i*, los pesos de las neuronas que se encuentren en esta zona a la que se le dar el nombre de X(q), sern actualizados junto con el peso de la neurona ganadora, en un ejemplo de aprendizaje cooperativo. El algoritmo de aprendizaje utilizado para establecer los valores de los pesos de las conexiones entre las N neuronas de entrada y las M de salida es el siguiente: 1. En primer lugar se inicializan los pesos (wij) con valores aleatorios pequeos y se fija la zona inicial de vecindad entre las neuronas de salida. 2. A continuacin se presenta a la red una informacin de entrada (la que debe aprender) en forma de vector p = (p1, p2, ..., pn), cuyas componentes pi sern valores continuos. 3. Puesto que se trata de un aprendizaje competitivo, se determina la neurona vencedora de la capa de salida, esta ser aquella i cuyo vector de pesos wi (vector cuyas componentes son los valores de los pesos de las conexiones entre esa neurona y cada una de las neuronas de la capa de entrada) sea el ms parecido a la informacin de entrada p (patrn o vector de entrada). Para ello se calculan las distancias o diferencias entre ambos vectores, considerando una por una todas las neuronas de salida, suele utilizarse la distancia eucldea o la siguiente expresin que es similar a aquella, pero eliminando la raz cuadrada: (2.5.1) pj: Componente i-simo del vector de entrada wij: Peso de la conexin entre la neurona j de la capa de entrada y la neurona i de la capa de salida. Figura 2.5.1 Conexiones de una red de Kohonen 4. Una vez localizada la neurona vencedora (i*), se actualizan los pesos de las conexiones entre las neuronas de entrada y dicha neurona, as como los de las conexiones entre las de entrada y las neuronas vecinas de la vencedora, en realidad lo que se consigue con esto es asociar la informacin de entrada con una cierta zona de la capa de salida. Esto se realiza mediante la siguiente ecuacin w(q)= w(q-1)+a(q)(p(q)-w(q-1)) para i X(q) (2.5.2) El tamao de X(q) se puede reducir en cada iteracin del proceso de ajuste de los pesos, con lo que el conjunto de neuronas que pueden considerarse vecinas cada vez es menor como se observa en la figura 2.5.2, sin embargo en la prctica es habitual considerar una zona fija en todo el proceso de entrenamiento de la red. Figura 2.5.2 Posible evolucin de la vecindad en una red de Kohonen El trmino es el coeficiente de aprendizaje o parmetro de ganancia, con un valor entre 0 y 1 el cual decrece con el nmero de iteraciones (q) del proceso de entrenamiento, de tal forma que cuando se ha presentado un gran nmero de veces todo el juego de patrones de aprendizaje su valor es prcticamente nulo, con lo que la modificacin de los pesos es insignificante. Para hallar suele utilizarse una de las siguientes expresiones [20]: (2.5.3) Siendo un valor de 0.1 0.2 y un valor prximo al nmero total de iteraciones del aprendizaje, que por lo general se toma como 10000 para esta red. 5. El proceso debe repetirse, volviendo a presentar todo el juego de patrones de aprendizaje p1, p2..,pn hasta obtener la salida deseada. Como la regla Instar, la regla de Kohonen habilita a los pesos de una neurona a aprender un vector de entrada y de esta forma resolver aplicaciones de reconocimiento de patrones. A diferencia de la regla Instar, el aprendizaje no es proporcional a la salida de la neurona ai(q), en lugar de ello el aprendizaje ocurre cuando la neurona i sea miembro del conjunto X(q), si la regla Instar es aplicada a una capa de neuronas cuya funcin de transferencia solamente retorna valores de 0 o 1 (por ejemplo hardlim), la regla de Kohonen es equivalente a la regla Instar. En definitiva lo que hace una red de Kohonen es realizar una tarea de clasificacin, puesto que la neurona de salida activada ante una entrada representa la clase a la que pertenece dicha informacin de entrada, adems ante otra entrada parecida se activa la misma neurona de salida, u otra cercana a la anterior debido a la semejanza entre las clases, as se garantiza que las neuronas topolgicamente prximas sean sensibles a entradas fsicamente similares; por esta causa la red es especialmente til para establecer relaciones desconocidas previamente entre conjuntos de datos. 2.5 REDES COMPETITIVAS 2.5.3 Red de Hamming: La red de Hamming ilustrada en la figura 2.5.3 es uno de los ejemplo ms simples de aprendizaje competitivo, a pesar de ello su estructura es un poco compleja ya que emplea el concepto de capas recurrentes en su segunda capa y aunque hoy en da en redes de aprendizaje competitivo se ha simplificado este concepto con el uso de funciones de activacin ms sencillas, la red de Hamming representa uno de los primeros avances en este tipo de aprendizaje, convirtindola en un modelo obligado de referencia dentro de las redes de aprendizaje competitivo. Las neuronas en la capa de salida de esta red compiten unas con otras para determinar la ganadora, la cual ndica el patrn prototipo ms representativo en la entrada de la red, la competicin es implementada por inhibicin lateral (un conjunto de conexiones negativas entre las neuronas en la capa de salida). Esta red consiste en dos capas; la primera capa, la cual es una red Instar, realiza la correlacin entre el vector de entrada y los vectores prototipo, la segunda capa realiza la competicin para determinar cul de los vectores prototipo est ms cercano al vector de entrada. Figura 2.5.3 Red de Hamming Capa 1: La red Instar es capaz de clasificar solo un patrn; para que mltiples patrones sean reconocidos se necesitan mltiples Instar y es precisamente de esa forma como est compuesta la primera capa de la red de Hamming. Para una mejor comprensin de su funcionamiento se partir de unos vectores prototipo que la red debe clasificar { p1, p2 ,..., pQ} (2.5.4) La matriz de pesos W 1 y el vector de ganancias b 1 para la capa uno sern: (2.5.5) Donde cada fila de W 1 representa un vector prototipo, el cual deseamos reconocer y cada elemento b 1 es igual al nmero de elementos en cada vector de entrada (R) (el nmero de neuronas S es igual al nmero de vectores prototipo Q). As la salida de la primera capa ser: (2.5.6) La salida de la capa 1 es igual al producto punto de los vectores prototipo con la entrada ms el vector R; este producto indica cuan cercano est cada vector de entrada a los patrones prototipo. Capa 2: La red Instar emplea una funcin de transferencia poslin para decidir si el vector de entrada estaba lo suficientemente cerca al vector prototipo. En la capa 2 de la red de Hamming se utilizan mltiples Instar, as se determinara por medio de una capa competitiva el patrn prototipo ms cercano. Las neuronas en esta capa son inicializadas con la salida de la capa en realimentacin, la cual ndica la correlacin entre los patrones prototipo y el vector de entrada. Las neuronas compiten unas con otras para determinar una ganadora; despus de la competicin solo una neurona tendr una salida no cero. La neurona ganadora ndica cual categora de entrada fue presentada a la red (cada vector prototipo representa una categora). La salida de la primera capa a 1 es usada para inicializar la segunda capa: a 2 (0) = a 1 (2.5.7) La salida de la segunda capa est determinada de acuerdo a la siguiente relacin recurrente: a 2 (t +1) = poslin (W 2 a 2 (t)) (2.5.8) Los pesos de la segunda capa W 2 son fijados de tal forma que los elementos de la diagonal sean 1, y los elementos por fuera de la diagonal tengan pequeos valores negativos. (2.5.9) Esta matriz produce un efecto inhibitorio, en el cual la salida de cada neurona tiene un efecto inhibitorio sobre todas las otras neuronas. Para ilustrar este efecto, sustituimos los valores de peros de 1 y por los apropiados elementos de W 2 . Reescribiendo la ecuacin de salida de la red para una sola neurona se tiene: a 2 i (t+1) = poslin (2.5.10) En cada iteracin, cada salida de la neurona se decrementar en proporcin a la suma de las salidas de las otras neuronas. La salida de la neurona con la condicin inicial ms grande se decrementar ms despacio que las salidas de otras neuronas; eventualmente cada neurona tendr una salida positiva y en ese punto la red habr alcanzado el estado estable. 2.5 REDES COMPETITIVAS 2.5.4 Estructura general de una red competitiva: En las redes asociativas, se vio como la regla instar puede aprender a responder a un cierto grupo de vectores de entrada que estn concentrados en una regin del espacio. Supngase que se tienen varias instar agrupadas en una capa, tal como se muestra en la figura 2.5.4, cada una de las cuales responde en forma mxima a un cierto grupo de vectores de entrada de una regin distinta del espacio. Figura 2.5.4 Instar agrupadas en una capa Se puede decir que esta capa de Instars clasifica cualquier vector de entrada, porque la Instar con la mayor respuesta para alguna entrada dada es la que identifica a la regin del espacio en la cual yace el vector de entrada. En lugar de examinar la respuesta de cada instar para determinar cul es la mayor, la labor de clasificacin sera ms fcil si la Instar de mayor respuesta fuera la nica unidad que tuviese una salida no nula; esto se puede conseguir si las instar compiten unas con otras por el privilegio de la activacin, este es el principio de las redes competitivas. Las neuronas de la segunda capa de la red de Hamming, estn en competicin porque cada neurona se excita a s misma e inhibe a todas las otras neuronas, para simplificar la discusin se definir una nueva funcin de transferencia que hace el trabajo de una capa recurrente competitiva a =compet (n) (2.5.11) Donde a es la salida total de la red y n es la entrada neta a la funcin de transferencia, compet es una funcin de transferencia que encuentra el ndice i * de la neurona con la entrada neta ms grande y fija su salida en uno, todas las otras neuronas tienen salida 0. (2.5.12) Reemplazando la capa recurrente de la red de Hamming, con una funcin de transferencia competitiva, la presentacin de una capa competitiva se simplifica de la siguiente manera. Figura 2.5.5 Capa Competitiva Como con la red de Hamming, los vectores prototipo son almacenados en las filas de W. La entrada neta n calcula la distancia entre el vector de entrada p y cada prototipo wi (asumiendo que los vectores tienen longitudes normalizadas L). La entrada neta ni de cada neurona es proporcional al ngulo entre p y el vector prototipo wi: (2.5.13) La funcin de transferencia competitiva asigna una salida de 1 a la neurona cuyo vector de pesos apunte en la direccin ms cercana al vector de entrada a =compet (n) (2.5.14) 2.5 REDES COMPETITIVAS 2.5.5 Regla de aprendizaje: En este punto es posible disear una red competitiva que realice clasificaciones correctas fijando el valor de las filas de Wen los valores del vector prototipo esperado, sin embargo es deseable tener una regla de aprendizaje que pueda entrenar los pesos en una red competitiva sin conocer los vectores prototipo, una de estas reglas es la Instar estudiada es el numeral 2.4.3 1w(q) = 1w(q-1) + a(q)(p(q) -1w(q-1)) (2.5.15) Para redes competitivas, a tiene un valor diferente de cero solamente para la neurona ganadora (i=i * ), de esta forma los mismos resultados sern obtenidos utilizando la regla de Kohonen iw(q) = iw(q-1)+ (p(q) iw(q-1))= (1- ) iw (q-1) + p(q) (2.5.16) y w(q)=w(q-1) i i* (2.5.17) As, la fila de la matriz de pesos que est ms cerca al vector de entrada (o tenga el producto punto ms grande con el vector de entrada) se mover haca el vector de entrada. Este se mueve a lo largo de la lnea entre la fila anterior del vector de pesos y el vector de entrada, como puede verse en la figura 2.5.6 Figura 2.5.6 Representacin grfica de la regla de Kohonen Para demostrar cmo trabaja una red competitiva, se crear una red que clasifique los siguientes vectores: Figura 2.5.7 Vectores de entrada La red tendr tres neuronas, por lo tanto los vectores sern clasificados en tres clases o grupos, esta es una de las principales caractersticas de las redes competitivas, ellas pueden agrupar los patrones de entrada en clases que no se conocen. Los pesos normalizados escogidos aleatoriamente son: Los vectores de datos y los pesos asignados pueden visualizarse en la figura 2.5.8 Figura 2.5.8 Vectores de entrada y vector de pesos Se presenta a la red el vector p2 El vector de peso de la segunda neurona estaba ms cercano a p2, por lo tanto gan la competicin (i * =2) y su salida es 1. Ahora se aplicar la regla de Kohonen a la neurona ganadora con una rata de aprendizaje 2w nuevo = 2w anterior + (p2 2w anterior ) La regla de Kohonen hace que 2w tienda hacia p2 como puede verse en la figura 2.5.9, si continuamos escogiendo vectores de entrada aleatoriamente y presentndoselos a la red, en cada iteracin el vector de pesos se acercar ms al vector de entrada. Figura 2.5.9 Proceso de entrenamiento Cada vector de pesos apuntar hacia una clase diferente del vector de entrada, convirtindose en un prototipo para esa clase. Cuando termine el proceso de entrenamiento, los pesos finales se vern como aparece en la figura 2.5.10 Figura 2.5.10 Pesos Finales 2.5 REDES COMPETITIVAS 2.5.6 Problemas de las redes Competitivas: Las redes competitivas, son bastante eficientes para resolver problemas de clasificacin, sin embargo presentan algunos problemas. El primero es la eleccin de una rata de aprendizaje que permita hallar un punto de equilibrio entre velocidad de convergencia y la estabilidad final de los vectores de peso. Una rata de aprendizaje cercana a cero, torna el aprendizaje muy lento pero garantiza que cuando un vector haya alcanzado el centro de la clase objetivo, se mantendr all indefinidamente. En contraste, una rata de aprendizaje cercana a uno genera un aprendizaje muy rpido, pero los vectores de peso continuarn oscilando an despus de que se haya alcanzado convergencia. La indecisin que se presenta al escoger la rata de aprendizaje puede ser empleada como una ventaja si se inicia el entrenamiento con una rata de aprendizaje alta y se decrementa en el transcurso del proceso de entrenamiento cuando sea necesario, desafortunadamente esta tcnica no funciona si la red necesita continuamente ser adaptada a nuevos argumentos de los vectores de entrada (caso en que la red se trabaje 0n-line). Un ejemplo de este problema se visualiza en la figura 2.5.11 Figura 2.5.11 Variacin de la rata de aprendizaje Un problema de estabilidad ms serio, ocurre cuando las clases estn muy juntas; en ciertos casos, un vector de pesos tratando de apuntar hacia una clase determinada, puede entrar al territorio de otro vector de pesos. En la figura 2.5.12, pueden observarse con crculos azules, como dos vectores de entrada son presentados repetidas veces a la red; el resultado, es que los vectores de pesos que representan las clases de la mitad y de la derecha se encuentran a la derecha. Con seguridad, se presentar el caso en que una de las clases de la derecha ser clasificada por el vector de pesos del centro Figura 2.5.12 Aprendizaje Inestable Un tercer problema con redes competitivas, es que es posible que el vector de pesos inicial de una neurona se encuentre muy lejos de cualquiera de los vectores de entrada y por lo tanto nunca gane la competicin. La consecuencia ser, la "muerte" de la neurona, lo que por supuesto no es recomendable. Figura 2.5.13 Causa de la muerte de una neurona En la figura 2.5.13 el vector de peso w3 nunca ganar la competicin, sin importar cul sea el orden en que se le presenten los vectores de entrada. Una solucin a este problema, consiste en adicionar una ganancia negativa a la entrada neta de cada neurona y decrementar as la ganancia total cada vez que la neurona gane la competicin; esto har que difcilmente una neurona gane varias veces la competicin, a este mecanismo se le llama "conciencia". Una capa competitiva tiene tantas clases como neuronas, lo que podra complicar algunas aplicaciones, especialmente cuando el nmero de clases no se conoce de antemano. En capas competitivas, cada clase consiste de una regin convexa del espacio de entrada, las capas competitivas no pueden formar clases con regiones no convexas o clases que sean la unin de regiones no conectadas. 2.5 REDES COMPETITIVAS 2.5.7 Mapas de auto organizacin (SOM): Se cree que algunos sistemas biolgicos realizan sus operaciones siguiendo un mtodo de trabajo que algunos investigadores han llamado, on-center/off-surround; este trmino describe un patrn de conexin entre neuronas, cada neurona se refuerza a ella misma (center) mientras inhibe a todas las neuronas a su alrededor (surround). En las redes competitivas biolgicas, lo que sucede realmente es que cuando una neurona se refuerza a ella misma, refuerza tambin las neuronas que estn cerca; la transicin entre reforzar las neuronas "vecinas" o inhibirlas, se realiza suavemente a medida que la distancia entre las neuronas aumenta. De esta forma el proceso on-center/off-surround; para redes biolgicas sigue el comportamiento sealado en la figura 2.5.14, funcin que habitualmente es referida como sombrero mejicano debido a su forma. Figura 2.5.14 on-center/off-surround; para capas biolgicas Tratando de emular la actividad biolgica, sin tener que implementar conexiones on-center/off-surround; de realimentacin no lineal, Kohonen dise la red conocida como mapa de auto organizacin (SOM). Esta red determina primero la neurona ganadora i * usando el mismo procedimiento que las redes competitivas, luego los vectores de pesos de todas las neuronas que se encuentren en una regin cercana "vecindario", sern actualizados mediante la regla de Kohonen iw(q) = iw(q-1)+ (p(q) iw(q-1)) para i Ni*(d) (2.5.18) Donde el vecindario Ni * contiene el ndice para todas las neuronas que se encuentren a un radio "d" de la neurona ganadora i * (2.5.19) Cuando un vector p es presentado, los pesos de la neurona ganadora y de sus vecinas tendern hacia p, el resultado es que despus de muchas presentaciones las neuronas vecinas habrn aprendido vectores similares que cada una de las otras. El concepto de vecindario es ilustrado en la figura 2.5.15; para la primera figura se ha tomado un vecindario de radio d =1 alrededor de la neurona 13; para la segunda figura se ha tomado un vecindario de radio d =2. Figura 2.5.15 Vecindarios Estos vecindarios pueden definirse como sigue: N13 (1) = {8,12,13,14,18} (2.5.20) N13 (2) = {3,7,8,9,11,12,13,14,15,17,18,19,23} El vecindario puede determinarse en diferentes formas; Kohonen, por ejemplo ha sugerido vecindarios rectangulares o hexagonales para lograr alta eficiencia; es importante destacar que el rendimiento de la red no es realmente sensitivo a la forma exacta del vecindario. La figura 2.5.16 ilustra un mapa de auto organizacin de dos dimensiones Figura 2.5.16 Mapa de auto organizacin 2.5 REDES COMPETITIVAS 2.5.8 Learning Vector Quantization (LVQ): Esta red es un hbrido que emplea tanto aprendizaje no supervisado, como aprendizaje supervisado para clasificacin de patrones Figura 2.5.17 Red LVQ En la red LVQ, cada neurona de la primera capa es asignada a una clase, despus cada clase es asignada a una neurona en la segunda capa. El nmero de neuronas en la primera capa, S 1 debe ser mayor o al menos igual que el nmero de neuronas en la segunda capa, S 2 . Al igual que con redes competitivas, cada neurona en la primera capa de la red LVQ aprende un vector prototipo, el cual permite a la neurona clasificar una regin del espacio de entrada, sin embargo en lugar de calcular la distancia entre la entrada y el vector de pesos por medio del producto punto, la red LVQ calcula la distancia directamente. Una ventaja de hacer el clculo de la distancia directamente, es que los vectores no necesitan ser normalizados, cuando los vectores son normalizados la respuesta de la red ser la misma sin importar la tcnica que se utilice. La entrada neta a la primera capa de la red LVQ es entonces, (2.5.21) La salida de la primera capa de la red LVQ es, a 1 =compet (n 1 ) (2.5.22) As, la neurona cuyo vector de pesos este cercano al vector de entrada tendr salida 1 y las otras neuronas, tendrn salida 0; en este aspecto la red LVQ se comporta igual a las redes competitivas, la nica diferencia consiste en la interpretacin, mientras que en las redes competitivas la salida no cero representa una clase del vector de entrada, para el algoritmo LVQ, ndica ms bien una sub- clase, y de esta forma muchas neuronas (subclases), conforman una clase. Figura 2.5.18 Comportamiento de las neuronas en una red LVQ La segunda capa de la red LVQ es usada para combinar subclases dentro de una sola clase, esto es realizado por la matriz de pesos W 2 Las columnas de W 2 representan las subclases y las filas representan las clases, W 2 tiene un solo 1 en cada columna, todos los dems elementos son cero, la fila en la cual se presenta el 1 ndica cual es la clase a la que la subclase pertenece. W 2 ki = 1 la subclase i pertenece a la clase k (2.5.23) Una propiedad importante de esta red, es que el proceso de combinar subclases para formar clases, permite a la red LVQ crear clases ms complejas. Una capa competitiva estndar tiene la limitacin de que puede crear solo regiones de decisin convexas; la red LVQ soluciona esta limitacin. La red LVQ combina aprendizaje competitivo con aprendizaje supervisado, razn por lo cual necesita un set de entrenamiento que describa el comportamiento propio de la red {p1, t1}, {p2, t2}, ... , {pQ, tQ} (2.5.24) Para ilustrar el desempeo de la red LVQ, se considerar la clasificacin de un vector particular de tres elementos dentro de otro de cuatro clases, de esta forma: (2.5.25) Antes de que suceda el aprendizaje, cada neurona en la segunda capa es asignada a una neurona de salida, as se genera la matriz W 2 ; por lo general, igual nmero de neuronas ocultas son conectadas a cada neurona de salida, para que cada clase pueda ser conformada por el mismo nmero de regiones convexas. Todos los elementos de W 2 son cero excepto los que cumplan la siguiente condicin: Si la neurona i es asignada a la clase k w 2 ki=1 (2.5.26) Una vez W 2 ha sido definida, nunca ser alterada. Los pesos ocultos W 1 son actualizados por medio de la regla de Kohonen. La regla de aprendizaje del algoritmo LVQ, trabaja de la siguiente manera: 1. En cada iteracin, un vector de entrada p es presentado a la red y se calcula la distancia a cada vector prototipo. 2. Las neuronas ocultas compiten, la neurona i* gana la competicin y el i*- simo elemento de a 1 se fija en 1. 3. a 1 es multiplicada por W 2 para obtener la salida final a 2 , la cual tiene solamente un elemento no cero, k * , indicando que el patrn p est siendo asignado a la clase k * La regla de Kohonen es empleada para mejorar la capa oculta de la red LVQ, en dos formas: Primero, si p es clasificado correctamente los pesos de la neurona ganadora se hacen tender hacia p. i*w(q) = i*w(q -1) - a(q) (p (q) i*w(q-1)) si a 2 k = tk* = 1 (2.5.27) Segundo, si p es clasificado incorrectamente una neurona equivocada gan la competicin y por lo tanto sus pesos i*w 1 se alejan de p. i*w(q) = i*w(q -1) - a(q) (p (q) i*w(q-1)) si a 2 k* = 1 tk* = 0 (2.5.28) El resultado ser que cada neurona se mover hacia los vectores que cayeron dentro de la clase, para la cual ellos forman una subclase y lejos de los vectores que cayeron en otras clases. Se ilustrar el funcionamiento de la red LVQ, buscando que clasifique correctamente los siguientes patrones, cuyas clases se han definido arbitrariamente: Los vectores esperados asociados a cada una de las entradas son: La posicin inicial de los patrones de entrada es la siguiente: Figura 2.5.19 Posicin de los patrones de entrada Si se escogen dos subclases para cada una de las dos clases existentes, tendremos entonces cuatro subclases, lo que determina que debe haber cuatro neuronas en la capa oculta. La matriz de pesos para la capa de salida es: W 2 conecta las neuronas ocultas 1 y 2 a la neurona de salida 1 y las neuronas ocultas 3 y 4 a la neurona de salida 2. Cada clase ser formada por dos regiones convexas. Figura 2.5.20 Esquema de la red LVQ que solucionar el ejemplo W 1 ser inicializada con valores aleatorios, de la siguiente forma: La posicin inicial de estos vectores de pesos, se observa en la figura 2.5.21 Figura 2.5.21 Estado inicial del vector de peso Un vector de entrada diferente ser presentado en cada iteracin, se encontrar su respuesta y luego se actualizaran los pesos correspondientes. Se presentar inicialmente p3 a la red: La tercera neurona oculta ha estado ms cerca del vector p3 y de esta forma ya se determin la subclase, ahora determinamos la clase a la cual pertenece multiplicando a 1 por W 2 La salida de la red ndica que p3 es un miembro de la clase 2, lo cual es correcto por lo tanto 3w 1 es desplazado en la direccin de p3. 3w 1 (1) = 3w 1 (0) + (p3 3w 1 (0)) Figura 2.5.22 Resultado despus de la primera y despus de muchas iteraciones El diagrama al lado izquierdo de la figura 2.5.22, muestra como el vector peso 3w 1 es actualizado despus de la primera iteracin; el diagrama de la derecha, muestra la localizacin de los pesos despus de que el algoritmo ha alcanzado convergencia, adems en esta parte de la grfica puede verse como las regiones del espacio de entrada son clasificadas. Los vectores de entrada p1 y p2 perteneciente a la clase uno son visualizadas en azul y los vectores p3 y p4 pertenecientes a la clase dos pueden verse en blanco. 2.6 REDES RECURRENTES En el contexto de las redes recurrentes existen redes dinmicas por naturaleza como lo son la red de Hopfield, la red de Jordan y la red de Elman y redes dinmicas que siendo de naturaleza esttica como lo son las redes multicapa logran el comportamiento dinmico realimentando sus entradas con muestras anteriores de las salidas, el comportamiento dinmico de las redes recurrentes hace que sean una poderosa herramienta para simular e identificar sistemas dinmicos no lineales. 2.6.1 Red de Hopfield: 2.6.1.1 Antecedentes: En la dcada de los 80s con el fin de estudiar procesos que involucran sistemas gobernados por ecuaciones diferenciales no lineales surge la teora clsica de control geomtrico basada en la geometra diferencial; simultneamente renace el estudio de las Redes Neuronales debido al redescubrimiento del algoritmo Backpropagation, este hecho sumado al fracaso de las metodologas tradicionales aplicadas a la inteligencia artificial y a la disponibilidad de herramientas computacionales de bajo costo permitieron el desarrollo las redes neuronales recurrentes cuya principal aplicacin es el control e identificacin de sistemas no lineales. Este desarrollo es posible debido a que las propiedades matemticas de las redes recurrentes estn enmarcadas en las mismas propiedades que fundamentan el control geomtrico, la primera red neuronal recurrente de naturaleza dinmica fue propuesta por Hopfield en 1984 bajo el contexto de las memorias asociativas. 2.6.1 Red de Hopfield: 2.6.1.2 Estructura de la red: En bsqueda de una implementacin prctica, Hopfield present su modelo bsico como un circuito elctrico, el cual se muestra en la figura 2.6.1, donde cada neurona se representa por un amplificador operacional y una red asociada formada por una capacitancia y una resistencia, la entrada a cada amplificador es la suma de las corrientes Ii mas las realimentaciones provenientes de otros amplificadores, por ejemplo el segundo amplificador realimenta al amplificador S a travs de la resistencia RS2, en caso de necesitarse realimentaciones con signo negativo, estas se hacen por medio de la salida inversora de cada amplificador; la ecuacin para el modelo de Hopfield basado en las leyes de Kirchhoff se muestra en la ecuacin (2.6.1). Figura 2.6.1 Circuito Elctrico red Hopfield (2.6.1) Donde ni es el voltaje de entrada a cada amplificador y ai =f(ni) su salida, con caracterstica de amplificacin f la cual es generalmente de tipo sigmoidal, . Multiplicando a ambos lados de la ecuacin (2.6.1) por Ri y definiendo =RiC, ij=RiTij y bi=RiIi, esta puede reescribirse en la ecuacin (2.6.2) la cual describe el comportamiento de cada una de las neuronas dinmicas que componen el circuito elctrico de la red de Hopfield. (2.6.2) Utilizando la ecuacin (2.6.2) y escribindola en su forma matricial con a(t)=f(n(t)), se obtiene (2.6.3), en esta ecuacin se describe el comportamiento de la red de Hopfield (2.6.3) La red de Hopfield en notacin compacta se muestra en la figura 2.6.2, en donde el vector de p no se considera como la entrada a la red sino como la condicin inicial de la red Figura 2.6.2 Notacin compacta red de Hopfield Como se observa, la red de Hopfield esta compuesta de neuronas dinmicas altamente interconectadas gobernadas por ecuaciones diferenciales no lineales, esta red funciona como una memoria asociativa no lineal que puede procesar patrones presentados de forma incompleta o con ruido, siendo til como una poderosa herramienta de optimizacin En el libro "Neural Network Design" [23], se muestra que una de las principales contribuciones de Hopfield fue la aplicacin de la teora de estabilidad de Lyapunov al anlisis de las redes recurrentes, la teora de estabilidad de Lyapunov se aplica a travs del teorema de LaSalle y para su utilizacin el primer paso es escoger una funcin de Lyapunov, para lo cual Hopfield sugiri la siguiente funcin: (2.6.4) Donde a es la salida de la red, W es la matriz de pesos y b es el vector de ganancias. La escogencia de esta particular funcin, fue clave en el desarrollo de Hopfield, pues el primer y el trcer termino de esta ecuacin conforman una funcin cuadrtica, las cuales pueden aproximar gran cantidad de funciones en un pequeo intervalo, especialmente cerca de puntos donde se encuentre un mnimo local. Para usar el teorema de LaSalle se necesita evaluar la derivada de la ecuacin 2.6.4, por claridad se evaluar cada uno de los tres trminos de forma independiente, tomando la derivada del primer trmino de la ecuacin 2.6.4 se obtiene: (2.6.5) Derivando el segundo trmino de la ecuacin 2.6.4, el cual consiste de una sumatoria de integrales y considerando una de estas integrales se obtiene: (2.6.6) Tomando en consideracin todas las integrales, en forma matricial la derivada del segundo trmino es: (2.6.7) Derivando el tercer trmino de la ecuacin 2.6.4 y apoyndose en las propiedades de las funciones cuadrticas se obtiene la ecuacin 2.6.8 (2.6.8) La derivada total de la ecuacin 2.6.8 se obtiene al unir los resultados de las ecuaciones 2.6.5, 2.6.7 y 2.6.8 (2.6.9) comparando con la ecuacin (2.6.3) del modelo elctrico de Hopfield, se tiene que: (2.6.10) Esto permite reescribir la ecuacin 2.6.9 as como sigue: (2.6.11) ya que ni = f - 1 (ai), es posible expandir la derivada de ni de la siguiente forma: (2.6.12) Con esto la ecuacin (2.6.11) puede ser reescrita como: (2.6.13) si se asume que f - 1 (ai) es una funcin incremental, como sucede en los amplificadores operacionales, entonces: (2.6.14) Este resultado implica en la ecuacin 2.6.12 que: (2.6.15) De esta manera, si f - 1 (ai) es una funcin incremental, todos los valores propios de la funcin dV(a)/dt son no positivos lo cual implica que la red sea estable, entonces V(a) es una funcin de Lyapunov valida Los atractores de Hopfield son puntos estacionarios de la funcin de Lyapunov que satisfacen la ecuacin (2.6.16) (2.6.16) Estos puntos estacionarios son puntos donde se encuentra un mnimo de la funcin V(a) descrita en la ecuacin (2.6.4), en estos puntos el gradiente de la funcin V(a) igual a cero [21]. (2.6.17) La funcin de Lyapunov descrita por la ecuacin (2.6.4) puede simplificarse si se considera que la ganancia es grande, como sucede en los amplificadores con los que se implementa la red, una funcin de transferencia tpica para estos amplificadores no lineales se muestra a continuacin: (2.6.18) Para evaluar el segundo trmino de la funcin de Lyapunov se requiere el clculo de f - 1 (u). (2.6.19) Si la ganancia es muy grande y la salida de la red se mantiene en el rango 1>a>1, el segundo trmino de la funcin de Lyapunov tiende a cero y puede definirse la funcin de alta ganancia de Lyapunov como: (2.6.20) 2.6.1 Red de Hopfield: 2.6.1.3 Regla de Aprendizaje La red de Hopfield no tiene una ley de aprendizaje asociada, esto significa que la red no es entrenada ni realiza un proceso de aprendizaje, sin embargo es posible determinar la matriz de pesos por medio de un procedimiento basado en la funcin de alta ganancia de Lyapunov descrita por la ecuacin 2.6.20. (2.6.21) El procedimiento consiste en escoger la matriz de pesos W y el vector de ganancias b tal que V toma la forma de la funcin que se quiere minimizar, convirtiendo el problema que se quiere resolver, en un problema de minimizacin cuadrtica, puesto que la red de Hopfield minimizar a V Una red de Hopfield puede disearse como una memoria asociativa, en este caso es llamada memoria de contenido direccionable, porque la memoria recupera la informacin almacenada con base en parte de su contenido, en contraste con las memorias estndar de computo, donde la informacin se recupera con base en sus direcciones, por ejemplo si se tiene una base de datos de contenido direccionable que contiene nombres y direcciones de los empleados de una empresa, la informacin completa se recupera por ejemplo suministrando el nombre (o parte de l), este tipo de memoria es la misma memoria autoasociativa excepto que en este caso se utilizar la red recurrente de Hopfield en vez del asociador lineal estudiado en la seccin 2.4. Cuando se le presenta un patrn de entrada a la red de Hopfield, el estado inicial de la salida ser el mismo patrn de entrada y luego la red converger al patrn prototipo almacenado que se encuentre ms cercano (o que ms se parezca) al patrn de entrada, para que la red memorice un patrn prototipo, este debe ser un mnimo de la funcin de Lyapunov Asumiremos que los patrones prototipo son y que cada uno de estos vectores se compone de S elementos, al asumir que Q<<S, el espacio de estado es amplio y los patrones prototipo se encuentran bien distribuidos y por lo tanto no estn cercanos uno de otro. Para garantizar que los patrones prototipo a almacenar son mnimos de la funcin de Lyapunov, se propone la siguiente funcin para evaluar el error en la aproximacin. (2.6.22) Si los elementos de a son restringidos a valores de 1, la funcin es minimizada en los patrones prototipo como se mostrara a continuacin: Asumiendo que los patrones prototipo son ortogonales, y evaluando el error en uno de ellos, se tendr que. (2.6.23) La segunda igualdad de la ecuacin 2.6.23 se debe a la ortogonalidad de los patrones prototipo y la ltima igualdad a que todos los elementos de pj son 1, evaluando el error del patrn aleatorio de entrada, el cual presumiblemente no est cercano a ningn patrn prototipo, cada elemento de la sumatoria en la ecuacin (2.6.22) es el producto punto entre un patrn prototipo y la entrada, el producto punto se incrementara cuando la entrada se mueva cerca del patrn prototipo, sin embargo, si la entrada no se encuentra cerca de algn patrn prototipo, todos los trminos de la sumatoria sern pequeos y por lo tanto J(a) ser la mayor (menos negativa) y cuando a sea igual a alguno de los patrones prototipo J(a) ser ms pequea (ms negativa). La ecuacin (2.6.22) es una funcin cuadrtica que indica con precisin el desempeo del contenido de la memoria direccionable, el prximo paso es escoger la matriz de pesos W y ganancias b, tal que la funcin de Lyapunov de Hopfield V sea equivalente al desempeo de la funcin cuadrtica J. Si se utiliza la regla de aprendizaje supervisado de Hebb para calcular la matriz de pesos (con patrones objetivo iguales a los patrones de entrada) y b=0 (2.6.24) Entonces la funcin de Lyapunov ser: (2.6.25) Y puede ser reescrita como: (2.6.26) Podemos observar que la funcin de Lyapunov es igual al desempeo del error del contenido de la memoria direccionable, la salida de la red de Hopfield tendera a converger a los patrones prototipo almacenados, en el caso que todos los patrones prototipo sean ortogonales, cada uno ser un punto de equilibrio de la red; la red puede tener muchos otros puntos de equilibrio indeseables, una regla prctica para evitarlos consiste en que cuando se utilice la regla de Hebb, el nmero de patrones almacenados no debe superar el 15% del nmero de neuronas de la red. 6.1 Red de Hopfield: 2.6.1.4 Identificacin de Sistemas No Lineales: El comportamiento dinmico de las redes recurrentes hace que sean una poderosa herramienta en la identificacin de sistemas dinmicos no lineales. En la forma estndar una neurona dinmica est regida por la siguiente ecuacin y se muestra en la figura 2.6.3 (2.6.27) Figura 2.6.3 Neurona dinmica O en forma matricial: (2.6.28) Donde , , , y En la figura 2.6.4 se observa una red neuronal dinmica recurrente, donde cada unidad de procesamiento es una neurona dinmica y cada punto es un peso. Figura 2.6.4 Red neuronal dinmica recurrente Para garantizar la estabilidad de las redes dinmicas recurrentes en el proceso de identificacin de sistemas no lineales, Delgado[9] formul condiciones estrictas para los pesos la red y su desarrollo se basa en la funcin de Lyapunov. Para el entrenamiento de la red de Hopfield en identificacin de sistemas, se utiliza el algoritmo de Chemotaxis, el cual permite entrenar redes neuronales de cualquier tipo sin calcular el gradiente del error, este algoritmo fue formulado considerando el movimiento de una bacteria en un medio donde hay un gradiente de solucin alimenticia; la bacteria se mueve inicialmente al azar hasta detectar un aumento en la concentracin de la solucin y luego continua en esa direccin. El algoritmo de Chemotaxis toma los pesos iniciales al azar con distribucin Gaussinana, cuando una iteracin es exitosa (disminuye el valor de la funcin de error) el algoritmo continua en esta direccin hasta que la funcin de error J no muestra cambios Figura 2.6.5 Algoritmo de Chemostaxis it_max: Numero mximo de iteraciones it: Contador de iteraciones i_s: Contador de iteraciones exitosas i_f: Contador de iteraciones no exitosas Rata de aprendizaje 1: Antigua matriz de pesos 2: Antigua matriz de pesos Perturbacion en la matriz de pesos gauss( ): Generador de nmeros aleatorios con distribucin Gaussiana Ji: Indice de la funcin de error correspondiente a la matriz de pesos i. La funcin de error Ji relaciona la salida del sistema a aproximar con la salida de la red dinmica entrenada con NP patrones de entrenamiento. (2.6.29) dk: Salida deseada para el patrn de entrenamiento k. yk: Salida actual de la red ante el patrn de entrenamiento k. 2.6.2 Redes Multicapa 2.6.2.1 Estructura de la red: Las redes multicapa son de naturaleza esttica, o sea su salida no evoluciona con el tiempo (para un patrn de entrada existe una salida asociada), pero pueden adquirir un comportamiento dinmico (para un patrn entrada la salida posee un estado transitorio y converge a un valor en el estado estacionario) realimentando sus entradas con estados anteriores de sus salidas. La red est compuesta de una capa esttica la cual generalmente posee un nmero de neuronas superior al nmero de variables de estado del sistema a identificar, la salida de la capa esttica va a un sumador donde se le resta el valor anterior de la variable de estado Zi identificada por el sistema, de esta operacin se genera la derivada de cada una de las i variables de estado identificadas por el sistema. Figura 2.6.6 Red Dinmica Multicapa La red recurrente dinmica multicapa cuyo comportamiento lo describe la ecuacin (2.6.30) puede identificar el comportamiento de un sistema autnomo (u=0) descrito por la ecuacin (2.6.31) (2.6.30) (2.6.31) donde , , , , , , y funcin de transferencia ( )=tansig( ), n es el nmero de variables de estado del sistema y N el nmero de neuronas en la capa oculta. Segn Delgado[9], sin prdida de generalidad si el origen se asume como punto de equilibrio, el sistema (2.6.31) ser identificado con la red (2.6.30) alrededor de su regin de atraccin y se garantiza que el error en la aproximacin e(t) es limitado. 2.6.2 Redes Multicapa 2.6.2.2 Regla de Aprendizaje: La etapa esttica que hace parte de la red multicapa dinmica recurrente generalmente es entrenada con el algoritmo de Chemotaxis o cualquier algoritmo de propagacin inversa (Backpropagation), estos algoritmos fueron descritos en la seccin 2.3, el algoritmo de Chemotaxis fue explicado en el contexto de la identificacin de sistemas dinmicos por medio de la red de Hopfield donde es realmente indispensable, pues para redes dinmicas multicapa los algoritmos de propagacin inversa son ms eficientes y rpidos. Los patrones de entrenamiento de la capa esttica de la figura (2.6.6) son diferentes combinaciones de valores de las variables de estado y los patrones objetivo estn dados por la suma de cada variable de estado con su correspondiente derivada como se muestra en la figura 2.6.7 Figura 2.6.7 Patrones de entrenamiento de la red multicapa La red despus de entrenada tiene la estructura de la ecuacin (2.6.32) (2.6.32) Para garantizar que la red a identificado la dinmica del sistema, el Jacobiano de la red en el origen (2.6.33) debe tener valores propios muy cercanos a los del sistema que ha sido aproximado. (2.6.33) Transformado una red dinmica multicapa en una red dinmica recurrente tipo Hopfield La red dinmica multicapa de la figura (2.6.6), puede transformarse en una red dinmica tipo Hopfield por medio de la siguiente transformacin lineal descrita en la ecuacin (2.6.34) (2.6.34) Generalmente la matriz T es cuadrada, pero en caso no ser cuadrada la transformacin se realiza por medio de la inversa generalizada; la red transformada tendr la estructura (2.6.35) (2.6.35) Donde el nuevo vector de estado , , es la matriz identidad de dimensin N, la transformacin (2.6.34) extiende la red dinmica multicapa (2.6.32) en la red dinmica recurrente de Hopfield (2.6.35), aunque en la red de Hopfield no existen neuronas en la capa oculta el nmero de estados es mayor o igual al nmero de estados de la red multicapa N n Despus de realizar la transformacin, la red tiene la estructura (2.6.36) (2.6.36) El Jacobiano de la red descrito en la ecuacin 2.6.37 debe tener valores propios muy cercanos a los del sistema que ha sido aproximado e iguales a los de la red multicapa. (2.6.37) 2.6.3 Red de Elman 2.6.3.1 Estructura de la Red: La red de Elman tpicamente posee dos capas, cada una compuesta de una red tipo Backpropagation, con la adicin de una conexin de realimentacin desde la salida de la capa oculta hacia la entrada de la misma capa oculta, esta realimentacin permite a la red de Elman aprender a reconocer y generar patrones temporales o variantes con el tiempo. Figura 2.6.8 Red de Elman La red de Elman generalmente posee neuronas con funcin transferencia sigmoidal en su capa oculta, en este caso tansig y neuronas con funcin de transferencia tipo lineal en la capa de salida, en esta caso purelin, la ventaja de la configuracin de esta red de dos capas con este tipo de funciones de trasferencia, es que segn lo demostrado por Funahashi [16], puede aproximar cualquier funcin con la precisin deseada mientras que esta posea un numero finito de discontinuidades, para lo cual la precisin de la aproximacin depende de la seleccin del nmero adecuado de neuronas en la capa oculta. Para la red de Elman la capa oculta es la capa recurrente y el retardo en la conexin de realimentacin almacena los valores de la iteracin previa, los cuales sern usados en la siguiente iteracin; dos redes de Elman con los mismos parmetros y entradas idnticas en las mismas iteraciones podran producir salidas diferentes debido a que pueden presentar diferentes estados de realimentacin. 2.6.3 Red de Elman 2.6.3.2 Entrenamiento de la red: Debido a la estructura similar de la red de Elman con una red tipo Backpropagation, esta red puede entrenarse con cualquier algoritmo de propagacin inversa como los explicados en la seccin 2.3 de este captulo, entre los cuales se destacan los algoritmos basados en tcnicas de optimizacin como el del gradiente conjugado o el algoritmo de Levemberg Marquard. El entrenamiento de la red puede resumirse en los siguientes pasos: Presentar a la red, los patrones de entrenamiento y calcular la salida de la red con los pesos iniciales, comparar la salida de la red con los patrones objetivo y generar la secuencia de error. Propagar inversamente el error para encontrar el gradiente del error para cada conjunto de pesos y ganancias, Actualizar todos los pesos y ganancias con el gradiente encontrado con base en el algoritmo de propagacin inversa. La red de Elman no es tan confiable como otros tipos de redes porque el gradiente se calcula con base en una aproximacin del error, para solucionar un problema con este tipo de red se necesitan ms neuronas en la capa oculta que si se solucionara el mismo problema con otro tipo de red. CAPITULO 3 3.1.1 Descripcin del problema: Un robot es un dispositivo automtico que realiza acciones especficas, que dependen de las necesidades del proceso en que se encuentre involucrado, en este caso se tiene un robot que cuenta con cuatro sensores de proximidad en distintas ubicaciones que permanentemente detectan si hay objetos que se encuentren a una distancia superior o inferior a la preestablecida, con base en esto se decide si dar marcha adelante o atrs a cada uno de los dos motores que posee; en las lecturas de los sensores podran darse 16 posibles combinaciones (16=2 4 ) y para cada combinacin cada uno de los dos motores podra dar marcha adelante o marcha atrs. Figura 3.1.1 Robot El comportamiento del robot lo describe la tabla 3.1.2, cuando los sensores detecten un objeto que se encuentra a una distancia inferior a la predeterminada se dir que el objeto se encuentra cerca y esto se representa por medio de un 1 y cuando se detecte un objeto que se encuentra a una distancia mayor que la predeterminada se dir que el objeto est lejos lo cual se indica con un 1; dependiendo de estas lecturas los motores podrn dar marcha adelante, lo que se representara por un 1 o dar marcha atrs con un 1. S1 S2 S3 S4 M1 M2 1 1 1 1 -1 -1 -1 1 1 1 -1 1 1 1 -1 -1 1 -1 -1 -1 -1 -1 1 1 1 -1 1 1 1 -1 1 1 -1 1 -1 1 1 1 1 -1 1 -1 Tabla 3.1.1 Comportamiento del robot 3.1 DETECCIN DE OBSTCULOS POR MEDIO DE UN ROBOT 3.1.2 Justificacin del tipo de red Este tipo de problema generalmente es resuelto suministrndole al robot una base de datos que contiene todas las posibles situaciones que se podran presentarse y sus respectivas soluciones, en este caso se necesitara almacenar las respuestas para ambos motores ante las 16 posibles combinaciones en las lecturas de los sensores, cuando el nmero de variables de entrada y el nmero de salidas es mucho mayor, la cantidad de datos necesarios para especificar cada posible situacin crece indefinidamente, debido a esto se requeriran dispositivos con gran capacidad de almacenamiento; en contraste una red neuronal puede entrenarse con un nmero representativo de patrones y aprender el comportamiento del sistema utilizando dispositivos de menos capacidad de almacenamiento y costo. Una red tipo Perceptrn puede ser entrenada con patrones de cualquier dimensin en la entrada y en la salida con datos binarios, por la simplicidad del problema este tipo de red es la ms adecuada. Para garantizar que el problema puede ser resuelto por una red neuronal tipo Perceptrn se debe comprobar que los patrones de entrenamiento son linealmente separables, para esto se deben plantear las desigualdades generadas por cada patrn de entrenamiento, en este caso cada patrn de cuatro dimensiones generara dos desigualdades (una por cada salida), estas desigualdades no deben contradecirse, si esto ocurriera el problema no podra ser resuelto por una red tipo Perceptrn de una sola capa y deber buscarse otro tipo de solucin. Debido a la naturaleza bipolar de la salida, la funcin de transferencia a utilizar es hardlims (ver seccin 1.3.2), la cual se rige por las siguientes condiciones. (3.1.1) La salida de la red est dada por la ecuacin 3.1.2, (ver seccin 2.1) (3.1.2) Aplicando esta ecuacin a cada patrn de entrenamiento se tienen las desigualdades de la tabla 3.1.2, las cuales se satisfacen plenamente, lo que implica que el problema es linealmente separable y puede ser resuelto por una red tipo Perceptron Tabla 3.1.2 Desigualdades que garantizan que el problema sea linealmente separable 3.1 DETECCIN DE OBSTCULOS POR MEDIO DE UN ROBOT 3.1.3 Entrenamiento de la red: A la red se le presentaran 7 patrones de la tabla 3.1.1, para los cuales dependiendo de las lecturas de los sensores se le dir al robot que hacer especficamente y luego se probar la red con los casos restantes para comprobar la capacidad de generalizacin de la red neuronal ante un patrn nunca antes visto. Los estados de lecturas de los sensores y de operacin de los motores fueron designados con 1 y 1, puesto que para la convergencia del proceso de entrenamiento resulta ms ventajosos propagar valores de 1 y 1 que de 1 y 0. Debido a la naturaleza de la salida y de la entrada de la red, la funcin de transferencia apropiada es hardlims, la cual trabaja con valores bipolares. Figura 3.1.2 Red tipo Perceptrn Se crear una red de 4 entradas con una neurona tipo Perceptrn para cada salida, teniendo as una salida bidimensional, los pesos iniciales aleatorios de la red se muestran en la tabla 3.1.3 Wi=net.IW{1,1} bi=net.b{1} S1 S2 S3 S4 M1 0.8636 -0.1627 0.0503 0.3443 M1 1 M2 -0.0680 0.6924 -0.5947 0.6762 M2 1 Tabla 3.1.3 Pesos Iniciales El siguiente cdigo crea una red tipo Perceptrn con funcin de transferencia hardlims, dos neuronas en la salida, utiliza como patrones de entrenamiento las lecturas de los cuatro sensores almacenados en p y como patrones objetivo o salidas deseadas las acciones de ambos motores almacenados en el vector t. net=newp([-1 1;-1 1;-1 1;-1 1],2,hardlims); net.adaptParam.passes=200; Wi; [net,a,e]=adapt(net,P,t); Wf=net.IW{1,1}; bf=net.b{1}; Los pesos finales de la red entrada que satisface todos los patrones de entrada y salida son: Wf=net.IW{1,1} bf=net.b{1} S1 S2 S3 S4 M1 0.8636 -4.1627 0.0503 -3.6557 M1 1 M2 -4.0680 0.6924 -4.5947 4.6762 M2 1 Tabla 3.1.4 Pesos finales red entrenada La red fue simulada para la totalidad de combinaciones posibles de entrada para comprobar que no exista error en el aprendizaje de los patrones de entrenamiento y para observar su capacidad de generalizacin en los casos restantes S1=[1 -1]; S2=[1 -1]; S3=[1 -1]; S4=[1 -1]; P=combvec(S1,S2,S3,S4); net=newp([-1 1;-1 1;-1 1;-1 1],2,hardlims); Wf; t=sim(net,P); La respuesta de la red a todos los patrones de entrenamiento fue exitosa, como puede observarse en la tabla 3.1.5 S1 S2 S3 S4 M1 M2 P1 1 1 1 1 -1 -1 P2 -1 1 1 1 -1 1 P3 1 1 -1 -1 1 -1 P4 -1 -1 -1 -1 1 1 P5 1 -1 1 1 1 -1 P6 1 1 -1 1 -1 1 P7 1 1 1 -1 1 -1 Tabla 3.1.5 Simulacin de la red para los Patrones de Entrenamiento La red fue simulada para las posibles combinaciones restantes obtenindose los siguientes resultados: S1 S2 S3 S4 M1 M2 C1 -1 -1 1 1 1 1 C2 -1 1 -1 1 -1 1 C3 1 -1 -1 1 1 1 C4 -1 -1 -1 1 1 1 C5 -1 1 1 -1 -1 -1 C6 1 -1 1 -1 1 -1 C7 -1 -1 1 -1 1 -1 C8 -1 1 -1 -1 -1 1 C9 1 -1 -1 -1 1 -1 Tabla 3.1.6 Simulacin de la red para las nuevas combinaciones Las combinaciones que no hacan parte del set de entrenamiento, al ser presentadas a la red fueron aproximadas al patrn del set de entrenamiento aprendido con menor distancia euclidiana. Para las combinaciones C1, C2 y C4 la red decidi dar marcha adelante a ambos motores; para la combinacin C5 la red decidi dar marcha atrs a ambos motores, para las combinaciones C6, C7 y C9 la red decidi dar marcha adelante a M1 y marcha atrs a M2 y para las combinaciones C2 y C8 la red decidi dar marcha atrs a M1 y marcha adelante a M2 Una red tipo Perceptrn de una sola capa es una buena solucin a un problema que involucre patrones linealmente separables, en el caso de contar con patrones que no son linealmente separables se tiene la alternativa de utilizar una red Perceptrn multicapa o cambiar definitivamente de red, ntese que una red Perceptrn multicapa puede solucionar el problema de separabilidad lineal a medida que aumenta el nmero de capas de la red. La capacidad de generalizacin de las redes neuronales juega un papel importante cuando las posibles combinaciones de patrones de entrada son tantas que resultara imposible especificarle a un dispositivo que hacer en cada caso, puesto que la red se entrena con un nmero de patrones representativo y no con la totalidad de ellos, ahorrando tiempo de computo en la solucin del problema. En las aplicaciones desarrolladas con redes neuronales juega un papel importante la tolerancia a fallas que las caracteriza, pues en caso de fallar uno o varios sensores (como en este caso) la red siempre producir una salida que en la mayora de los casos es la ms acertada, debido a que la red despus de un proceso de aprendizaje exitoso est en capacidad de generalizar el comportamiento del sistema. 3.2 CONTROL DE GIRO DE UN MOTOR DE INDUCCIN DE JAULA DE ARDILLA 3.2.1 Descripcin del problema: Un motor de induccin tiene fsicamente el mismo estator de una mquina sincrnica con diferente construccin de rotor, existen dos tipos diferentes de rotores de motor de induccin que se pueden colocar dentro del estator, rotor jaula de ardilla y rotor devanado; para esta aplicacin se estudiar el rotor de jaula de ardilla, el cual consiste en una serie de barras conductoras colocadas en ranuras talladas en la cara del rotor y con sus extremos puestos en corto circuito. Este diseo hace referencia a un rotor de jaula de ardilla, porque los conductores parecen las ruedas de ejercicio en donde suelen jugar las ardillas o los ratones de laboratorio, ejemplos de este tipo de motor pueden verse en las figuras 3.2.1.a y 3.2.1.b Figura 3.2.1.a Corte tpico de un motor jaula de ardilla pequeo Figura 3.2.1.b Corte tpico de un motor jaula de ardilla grande En la figura 3.2.2 se muestra un motor de induccin jaula de ardilla, en el un sistema de voltajes trifsicos ha sido aplicado al estator y un conjunto de corrientes trifsicas del estator circula en sus embobinados. Estas corrientes producen un campo magntico Bs, el cual est girando en sentido contrario al de las manecillas del reloj. La velocidad de rotacin del campo magntico est dada por (3.2.1) Donde es la frecuencia del sistema en Hz y P es el nmero de polos de la mquina. Este campo magntico rotatorio Bs, pasa sobre las barras del rotor y les induce un voltaje. El voltaje inducido en una barra de rotor dada se obtiene mediante la ecuacin (3.2.2) Donde v: Velocidad de las barras del rotor con relacin al campo magntico B: Densidad de flujo magntico del estator L: Longitud de la barra del rotor Figura 3.2.2 Desarrollo del momento de torsin en un motor de induccin El movimiento relativo del rotor con relacin al campo magntico del estator es lo que produce el voltaje inducido en una barra del rotor. La velocidad de las barras superiores del rotor, con relacin al campo magntico es hacia la derecha, de tal forma que el voltaje inducido en las barras superiores estar hacia fuera de la figura y el voltaje inducido en las varillas inferiores estar hacia adentro de la figura. Esto determina un flujo de corriente hacia fuera de las barras superiores y hacia adentro de las barras inferiores, sin embargo como el conjunto del rotor es inductivo y su corriente pico se atrasa con relacin a su voltaje pico (parte central de la figura 3.2.2), el flujo de corriente del rotor produce un campo magntico BR. Por ltimo, como el momento de torsin inducido en la mquina se expresa por: (3.2.3) el momento resultante es contrario al sentido de las manecillas del reloj, por lo cual el rotor se acelera en esta direccin. No obstante, la velocidad del motor tiene un lmite superior finito. Si el rotor del motor de induccin girar a velocidad sincrnica, entonces sus barras permaneceran estacionarias con relacin al campo magntico y no habra induccin de voltaje; si fuera igual a cero, entonces no habra corriente ni campo magntico en el rotor; sin campo magntico en ste, el momento de torsin inducido sera cero porque el rotor se frenara como consecuencia de las prdidas por friccin. Un motor puede, en esta forma, acelerarse hasta cerca de la velocidad sincrnica, pero jams podr alcanzar exactamente la velocidad sincrnica. En esta aplicacin sugerida en Delgado [8], se requiere entrenar una red neuronal que sintetice el accionamiento correspondiente a la inversin del sentido de giro de un motor de las condiciones descritas anteriormente. En la figura 3.2.3 se hace una representacin grfica de la secuencia de contactos que deben accionarse para dar paso a una inversin en el giro del motor. Figura 3.2.3 Diagrama Elctrico y de Contactos Cada elemento en la figura anterior representa: F1: Fusible circuito principal F2: Rel trmico (I1) K1: Contactor derecha (Q1) K2: Contactor izquierda (Q2) S1: Pulsador de paro (I2) S2: Pulsador izquierda (I3) S3: Pulsador derecha (I4) Las ecuaciones lgicas del circuito son: (3.2.4) (3.2.5) Los valores de entrada a la red fueron determinados por Delgado [8] los cuales cubren las posibles combinaciones de contactores de la figura 3.2.3, de tal modo que su interconexin determinar el sentido de giro para el motor trifsico. Los estados de cada uno de los contactores se agrupan en la tabla 3.2.1, en donde 1 representa el contactor se encuentra activo y 1 representa que el contactor est inactivo. P P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 I1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 I2 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 I3 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 I4 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 P P13 P14 P15 P16 P17 P18 P19 P20 P21 P22 P23 P24 P25 I1 -1 1 -1 -1 1 1 1 1 1 1 1 1 1 I2 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 I3 1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 I4 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 Tabla 3.2.1 Entradas a la red La quinta fila de la tabla 3.2.1 representa un sensor que se ha implementado para determinar el estado de giro en que se encuentra el motor al momento de accionamiento para cambio. Este sensor es necesario para determinar si el cambio debe realizarse o no, es decir, si dada una configuracin cualquiera el motor se encuentra girando hacia la derecha y el contactor Q1, que da la orden de cambiar a derecha y que para la red neuronal es representada por un 1, es accionado, la red no tendr que dar al motor ninguna orden de cambio; si por el contrario para esta misma configuracin es accionado el contartor Q2, que da la orden de cambiar a izquierda y que para la red es representado por 1, la red inmediatamente debe dar la orden de cambio de giro, y el motor debe pasar de girar hacia la derecha a girar hacia la izquierda. Siendo 1 el valor que representa el giro del motor por derecha y 1 el valor que representa el giro por izquierda, los valores esperados de salida se visualizan en la tabla 3.2.2: t t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 t13 t14 t15 t16 t17 t18 t19 t20 t21 T22 t23 t24 t25 -1 1 -1 -1 1 1 1 1 1 1 1 1 1 Tabla 3.2.2 Salidas esperadas de la red 3.2 CONTROL DE GIRO DE UN MOTOR DE INDUCCIN DE JAULA DE ARDILLA 3.2.2 Justificacin del tipo de red: En Ingeniera Elctrica hay muchos tipos de problemas cuya solucin depende solo de dos estados: on - off, si - no, 1-0, alto - bajo, o como en el caso que se estudia izquierda - derecha, este tipo de problemas divide el espacio solucin en dos regiones, cada una de ellas limitada por un hiperplano que determina el lmite donde empieza una y termina la otra. La regla de aprendizaje del Perceptrn, es hbil para dividir el espacio de entrada en dos regiones, ms que una lnea existe un hiperplano que separa fsicamente el espacio en cada una de las categoras de entrada, matemticamente este hiperplano se expresa as: (3.2.6) Los problemas que permiten que un hiperplano de estas caractersticas separe sus categoras de entrada en dos regiones diferentes son llamados problemas linealmente separables y pueden ser solucionados por una red tipo Perceptrn. Expresar los datos de la tabla 3.2.1 grficamente para saber si los valores de entrada a la red son linealmente separables, es imposible debido al orden de estos datos los cuales generan una grfica en R 5 , as que es necesario emplear la tcnica alternativa del captulo 2, en la cual por medio de desigualdades se determina la separabilidad lineal de un conjunto de vectores dados y se comprueba la factibilidad de emplear una red Perceptrn en su solucin. 3.2 CONTROL DE GIRO DE UN MOTOR DE INDUCCIN DE JAULA DE ARDILLA 3.2.3 Entrenamiento de la red: El proceso de entrenamiento de esta red fue realizado por medio del Matlab, utilizando las funciones de la herramienta de redes neuronales. Como patrones de entrada a la red se emplearon los datos de la tabla 3.2.1, y sus salidas asociadas corresponden a la tabla 3.2.2. La red fue generada por medio de la funcin newp, de acuerdo a la sintaxis referida en el anexo 1 y escogiendo la funcin de transferencia hardlims de acuerdo con la naturaleza de los datos de salida net=newp([-1 1;-1 1;-1 1;-1 1;-1 1],1,hardlims); Los valores iniciales para la matriz de peso W se generaron aleatoriamente y el valor inicial para la ganancia b, se escogi arbitrariamente como 1 net.IW{1,1}=rands(1,5); net.b{1}=[1]; Los comandos bsicos para entrenar una red Perceptrn se presentan a continuacin; mediante los valores fijados se logr un buen desempeo de la red net.adaptParam.passes=50; [net,a,e]=adapt(net,p,t); Los resultados obtenidos se agrupan en la siguiente tabla: Pesos = 6.0056 2.4189 1.8578 1.6092 1.3793 Ganancia= -1 Tabla 3.2.3 Valores finales de los parmetros de la red finalizada el proceso de entrenamiento El error entregado por esta red fue cero, demostrando no slo la efectividad de la red tipo Perceptrn para clasificar patrones linealmente separables, sino su facilidad de implementacin, ya que slo requiere tener clarificados la naturaleza de los datos de entrada a la red y la respuesta asociada a cada uno de ellos. 3.3 FILTRO ADAPTIVO 3.3.1 Descripcin del problema: Sin duda la principal aplicacin de la red Adaline est en el campo del procesamiento de seales, en concreto para el diseo y realizacin de filtros que eliminen el ruido de seales portadoras de informacin. Como filtro adaptivo se ha utilizado sta red en numerosas aplicaciones, destacndose su uso en filtros de ecualizacin adaptivos en modems de alta velocidad y canceladores adaptivos del eco para filtrado de seales en comunicaciones telefnicas de larga distancia y comunicaciones va satlite. Una de las primeras aplicaciones de redes neuronales que tuvo xito en la industria fue el Adaline para la eliminacin de ecos en circuitos telefnicos. Por otro lado, los filtros adaptivos se pueden usar para predecir el valor futuro de una seal a partir de su valor actual basndose en un aprendizaje en el que se emplea como entrada el valor retardado de la seal actual y como salida esperada, el valor actual de la seal, el filtro intentar minimizar el error entre su salida y la seal anterior. Una vez el filtro predice correctamente la seal actual, basndose en la seal anterior, se puede utilizar directamente la actual como entrada sin el retardo, el filtro realizar una prediccin del valor futuro de la seal. Otro ejemplo es el filtro adaptivo utilizado para modelar las respuestas de un sistema basndose en las seales de entrada, en este caso las entradas al filtro son las mismas que las del sistema, ajustando los pesos durante el aprendizaje en funcin de la diferencia entre su salida y la del sistema, ste ser el modelo de filtro adaptivo utilizado en esta aplicacin. Existen sistemas en los cuales es posible determinar la fuente de ruido, por ejemplo cuando son los mismos elementos de medicin los que introducen seales de ruido a la seal original; este ruido es ocasionado por los niveles de voltaje y de frecuencia del sistema alimentador de los aparatos, el cual es imprescindible en el proceso. En la presente aplicacin, una seal de ruido ha sido introducida por los cables de conexin de los aparatos y se ha mezclado con la seal que se desea medir, lo que en este caso es crtico, ya que no se conoce la forma exacta de la seal de inters y por tanto no es posible determinar cul debe ser la seal correcta de salida. Aprovechando que la fuente de ruido ha sido completamente determinada, se utilizar este conocimiento para implementar un procedimiento de filtrado que por medio de un filtro adaptivo permita recuperar la seal original. La figura 3.3.1, es un esquema de la disposicin que se dar al filtro dentro del contexto general que se ha dispuesto para solucionar el problema. Las variables son: Figura 3.3.1 Diagrama de Bloques de un filtro adaptivo s: Seal de inters, es decir es la seal que se desea medir, aunque se conoce su naturaleza, su forma es indeterminada. v: Fuente de poder de los instrumentos de medida, por sus caractersticas de potencia y frecuencia es una fuente de ruido. m: La seal v, es indispensable en el proceso de medicin ya que sin ella los aparatos de medida no funcionaran; v es la fuente detectada de ruido, pero su contribucin se limita a la parte inducida en los cables de conexin, que se convierten en el camino de contaminacin; de esta forma la seal m es la fuente de ruido que afecta realmente la seal original s. t: Seal resultante de la suma de la seal de inters s y de m que es el porcentaje efectivo de ruido que afecta la medicin. a: Salida del filtro. e: Diferencia entre la seal contaminada t y la seal que entrega el filtro adaptivo, si el filtro realiza un buen trabajo, esta seal debe ser la seal restaurada sin ruido. Durante el proceso de aprendizaje la seal e servir como referencia para determinar el desempeo del filtro. La seal v es una seal por lo general de 60Hz, que en este caso alimenta el filtro adaptivo, los parmetros del filtro deben ajustarse para minimizar la seal de error e, de esta forma y de acuerdo con el esquema de la figura 3.3.1 podra pensarse que la salida esperada del filtro a es la seal contaminada t, pero debe recordarse que la nica fuente efectiva de ruido es la seal mpor lo tanto, lo que realmente se espera del filtro es que reproduzca slo la parte de t que afecta la medicin (t= s+m), o sea m. Por consiguiente la salida del filtro a debe ser cada vez ms cercana a mpara que la seal de error e, se aproxime a la seal no contaminada s. La entrada al filtro es el valor de la fuente de ruido, que en este caso se asumir como una seal senoidal uniformemente distribuida entre -0.2 y 0.2 para conservarla dentro de lmites observables; la frecuencia de la onda es de 60 Hz, y la frecuencia de muestreo es de 180 Hz. (3.3.1) El estudio de los procesos de filtrado se ha basado en un anlisis en el dominio de la frecuencia, determinado por las series de Fourier, as para un sistema de filtrado dado, una seal de entrada que produce una salida caracterstica del sistema en el dominio del tiempo, se obtendr un anlogo en el dominio de la frecuencia tal que, F(w) producir una seal de salida F(w)H(w). En la figura 3.3.2, se observa como el sistema acta como un filtro de las diferentes componentes de frecuencia. Para garantizar que el filtrado sea exitoso, el filtro debe atenuar igualmente todas las componentes de frecuencia, la respuesta debe ser una rplica de la seal de entrada no en magnitud, pero si en forma; en general puede haber un retraso de tiempo asociado con esta rplica, por lo tanto, se habr filtrado exitosamente una seal , si la respuesta es ; la respuesta es una rplica de la entrada con magnitud k veces la seal original y un retraso de t0 segundos. Figura 3.3.2 Representacin de un sistema de filtrado en el dominio del tiempo y en el dominio frecuencial Para el filtro adaptivo v(t) es la seal de entrada al filtro y la respuesta debe ser que en el dominio de la frecuencia, equivale a desfasar la funcin original 90 0 y multiplicarla por un factor k, el cual se escogi como 1/10 para simplificar el proceso de visualizacin. Como se indic anteriormente, la salida del filtro debe ser la seal m para que al final del proceso pueda obtenerse la seal restaurada, por lo tanto la forma de la seal m ser: (3.3.2) Para tener una idea clara de la relacin entre m y v, la figura 3.3.3 ilustra la proporcin de la seal original de ruido y de la seal efectiva de ruido que afecta la medicin. En la grfica de la parte superior de la figura 3.3.3, se ve como v es una seal senoidal de magnitud 1.2, mientras que la grfica inferior muestra la seal m que alcanza solo la dcima parte de v con una magnitud de 0.12 y desfasada 90 0 con respecto a la seal v, stas dos ondas representan los patrones de entrenamiento de la red, siendo v la entrada y m la salida deseada. Figura 3.3.3 Seal original de ruido y seal que afecta el proceso de medicin 3.3 FILTRO ADAPTIVO 3.3.2 Justificacin del tipo de red Como puede notarse, la red Adaline tiene la estructura bsica del Perceptrn, la diferencia es que su funcin de transferencia es del tipo lineal, pero por poseer una estructura similar presenta la misma limitacin de la red tipo Perceptrn de poder resolver solo problemas linealmente separables. A pesar de sus limitaciones innatas, la red Adaline es ampliamente usada en los procesos de filtrado combinndola con retardos en lnea a su entrada, que mejoran la calidad del filtrado Figura 3.3.4 Estructura de un filtro adaptivo con una red Adaline Cuando no es posible determinar la forma de onda de la seal original, ya que este es precisamente el propsito de la medicin, un filtro adaptivo se hace bastante til, pues como su nombre lo dice se adapta a cualquier forma de seal que se le presente, sobrepasando as las limitaciones de los filtros tradicionales. FILTRO ADAPTIVO 3.3.3 Entrenamiento de la red: El objetivo del algoritmo diseado en Matlab es lograr obtener la seal m a la salida del filtro, minimizando el error medio cuadrtico hasta reproducir una buena copia de la seal original s. La red es creada con la funcin de las herramientas de redes neuronales newlin, que genera una nueva red tipo Adaline, a la cual se le han introducido cuatro retardos, para conformar el filtro adaptivo que filtrar la seal de entrada. El valor de los retardos fue escogido por prueba y error, escogiendo aquel nmero que presentar un mejor rendimiento para la red. net=newlin([-1,2],1); net.inputWeights{1,1}.delays=[0 1 2 3 4]; Los valores de los pesos iniciales y de las ganancias de la red son inicializados aleatoriamente, con ayuda de la funcin rands net.IW{1,1}=rands(1,5); net.b{1}=[0]; pi={1 2 3 4}; Los valores correspondientes a la entrada y a la salida de la red se obtuvieron evaluando la ecuacin (3.3.1) para valores desde hasta . La red se entren para 5000 iteraciones, mediante las cuales el filtro logr una excelente aproximacin de la funcin original. net.adaptParam.passes=5000; [net,y,E,pf,af]=adapt(net,p,T,pi); Para entrenar la red se generaron 101 puntos, algunos de los cuales pueden verse en la siguiente tabla: 1 2 23 51 52 78 101 Entrada a la red (v) 0.6967 1.1345 .... 1.1926 .... 0.2119 0.8583 .... -1.1165 .... -0.3137 Valor esperado (m) 0.0561 -0.0159 .... -0.0653 .... 0.0961 0.0365 .... 0.0107 .... 0.1176 Valor entregado (a) -0.2592 -0.2379 .... -0.0385 .... 0.0766 0.0293 .... 0.0163 .... 0.1098 W1=net.IW{1,1} b1=net.b{1} I1 I2 I3 I4 I5 N1 -0.0405 -0.0127 -0.0319 -0.0389 -0.0097 N1 0.0032 Mse 0.0022 Tabla 3.3.1 Resultados del proceso de entrenamiento Para poder juzgar el trabajo realizado por el filtro, la figura 3.3.5 muestra la seal original y la seal restaurada, que permiten comprobar las bondades del filtro adaptivo. En la figura 3.3.5 se observa como la seal e (verde) reproduce la seal original s (naranja) logrando una excelente aproximacin, a partir de la cual puede retomarse el proceso de medicin, pues en este punto cualquier tratamiento que se le haga a la seal de inters es altamente confiable, ya que sta se encuentra libre de ruido. Figura 3.3.5 Seal recuperada por el filtro Al final del proceso iterativo el mximo error entregado por la red equivale a 1.41e- 07, este es un valor bastante aceptable teniendo en cuenta que el error difcilmente ser cero, puesto que el algoritmo LMS emplea un valor aproximado para el gradiente, que como se dijo en el captulo 2 recibe el nombre de gradiente instantneo, en lugar del valor real para realizar la actualizacin de los pesos; este valor del gradiente es una versin distorsionada del verdadero gradiente que ocasionar que los pesos sigan variando suavemente, a pesar de que el error medio cuadrtico haya alcanzado el mnimo valor posible. Es importante diferenciar entre el valor del error del filtro adaptivo, el cual mide su desempeo y corresponde al error medio cuadrtico descrito anteriormente, y e la seal de error del sistema en general, con la cual se espera reproducir la seal original sin contaminacin s, trabajo que depende a su vez del desempeo del filtro. En esta red todos los parmetros estn muy ligados, por ejemplo en el esquema general de la figura 3.3.1 se observa como la salida e (correspondiente a la diferencia entre a la salida del filtro y m la seal que se esperaba que este entregar para poder reproducir la seal original s a la salida del sistema), realimenta el filtro adaptivo convirtindose en un factor decisivo en el proceso de actualizacin de los pesos de la red, por otro lado la dimensin del vector de pesos tiene una influencia directa en el tiempo necesario de entrenamiento, por lo que generalmente se debe tomar un compromiso entre este aspecto y la aceptabilidad de la solucin (normalmente se mejora el error aumentando el nmero de pesos). El valor del parmetro tiene una gran influencia sobre el entrenamiento. Si es demasiado grande, es posible que la convergencia no se produzca debido a que se darn altos en torno al mnimo sin alcanzarlo. Si es demasiado pequeo, se alcanzara convergencia pero a costa de una etapa 3.4 PREDICCIN DE CONSUMO DE CARGA 3.4.1 Descripcin del problema Un sistema de energa elctrica debe abastecer de energa a todos los puntos de carga con una buena calidad del servicio. Por lo tanto un sistema elctrico confiable, el cual asegura buena calidad, debe contar con las siguientes caractersticas: Entregar energa en forma continua a todos los puntos de carga. Los lmites de la frecuencia y la tensin deben estar dentro de valores tolerables. El sistema debe operar en la medida de lo posible, con costos mnimos y con un mnimo de alteraciones ambientales o ecolgicas. Estas caractersticas pueden adquirirse por medio de una planeacin exhaustiva del sistema, que permita conocer no solo su estado actual, sino tambin las medidas que deben adoptarse para condiciones futuras. Una de las herramientas tiles en el planeamiento de un sistema elctrico es la prediccin del consumo de carga, la cual permite conocer de antemano la necesidad de expansin del sistema; la finalidad de la prediccin siempre ser el mejoramiento del servicio, convirtindose en uno de los primeros pasos en cualquier proceso de planeamiento de un sistema elctrico. Al hablar de prediccin de carga, resulta til aclarar que como carga se asume todo equipo que demanda energa del sistema de energa elctrica, tales como lmparas, electrodomsticos, motores elctricos, hornos elctricos, etc. De esta manera se tienen varios tipos de carga: Motores en general Equipos de calentamiento Equipos electrnicos Equipo de iluminacin Desde el punto de vista del sistema de energa elctrica, las cargas pueden ser separadas en tres (3) grupos funcionales: Cargas domiciliarias Cargas industriales Cargas comerciales Estas cargas presentan caractersticas muy diferentes con relacin al tamao, simetra (1 o 3 ), constancia de la carga y el perodo de funcionamiento. La prediccin de consumo de carga refleja las necesidades futuras de una poblacin; esta previsin debe ser lo ms ajustada a la realidad, ya que unos valores inferiores a los reales causaran deficiencias en la prestacin del servicio en el futuro y un pronstico de necesidades superior al real, motiva la inversin prematura en instalaciones que no tendrn un aprovechamiento inmediato. La proyeccin del suministro de energa se hace con base en el consumo, aplicando porcentajes de prdidas que pueden obtenerse de un anlisis de los registros histricos (que normalmente se presentan en forma estadstica), o por similitud con otros sistemas. En general las prdidas tienden a disminuir a causa de las mejoras progresivas, que se introducen en los sistemas de transmisin, subtransmisin y distribucin. En forma similar al consumo de energa, la proyeccin de la demanda pico se obtiene sumando las demandas mximas coincidentes en hora pico [37]. En la tabla 3.4.1 se observa el comportamiento tpico de consumo de carga de una poblacin, a la cual se realiz un seguimiento hora a hora durante una semana. Se ha tomado el da lunes como 1 y en su orden el da domingo como 7, se asumi la una de la maana como la hora 0 y las doce de la noche como la hora 23. Los datos correspondientes al consumo de la poblacin se encuentran en (kW). HORA 0 1 2 3 4 5 6 7 8 9 10 11 Lunes 1,2300 1,0889 1,0289 0,9879 0,9879 1,1050 1,3729 1,6649 1,6649 2,1569 2,3230 2,3659 Martes 1,6049 1,4389 1,3631 1,3559 1,3439 1,3890 1,5699 1,7750 2,0180 2,1900 2,3359 2,3630 Mircoles 1,6630 1,4689 1,3890 1,3751 1,3611 1,4140 1,6040 1,8009 2,0739 2,2301 2,3649 2,3990 Jueves 1,7299 1,5159 1,4320 1,3931 1,3909 1,4310 1,6140 1,8170 2,0989 2,2260 2,3810 2,3741 Viernes 1,7129 1,4569 1,3461 1,2880 1,2331 1,1911 1,1570 1,1700 1,2139 1,3370 1,4799 1,5740 Sbado 1,7130 1,2821 1,1820 1,1220 1,0961 1,1059 1,1710 1,2751 1,4121 1,5450 1,7110 1,7410 Domingo 1,4140 1,3250 1,2249 1,2239 1,1240 1,0191 0,9989 0,9989 0,9790 1,0150 1,1271 1,2271 HORA 12 13 14 15 16 17 18 19 20 21 22 23 Lunes 2,3731 2,2311 2,1560 2,2080 2,2949 2,3741 2,5000 2,4340 2,3560 2,0000 1,9890 1,8080 Martes 2,3359 2,1560 2,0799 0,1651 2,2551 2,3671 2,4770 2,4310 2,3540 2,2100 1,7085 1,7000 Mircoles 2,3580 2,2000 2,1231 2,1749 2,2049 2,3349 2,4640 2,3780 2,4140 2,0040 1,8582 1,7071 Jueves 2,3021 2,1459 2,0581 2,0809 2,1651 2,2380 2,2820 2,1540 2,1020 1,9950 1,9040 1,8590 Viernes 1,5951 1,5771 1,5629 1,5320 1,5440 1,6380 1,7310 1,7480 1,7921 1,8321 1,8620 1,7930 Sbado 1,7129 1,6200 1,1570 1,5831 1,6251 1,6251 1,8950 1,9040 1,9310 1,9360 1,9580 1,748 Domingo 1,2950 1,3130 1,2909 1,2600 1,2669 1,3631 1,1530 1,6020 1,6440 1,6150 1,5030 1,4990 Tabla 3.4.1 Datos de consumo de carga de una poblacin durante una semana Estos datos son una recopilacin de un promedio histrico de diferentes aos, del consumo de la poblacin escogida como muestra, con ellos podemos determinar la tendencia del consumo de los usuarios de esta poblacin. El objetivo es entrenar una red neuronal que aprenda los datos anteriores y a partir de ellos est en capacidad de predecir lo que suceder en cualquier da de la semana a una hora determinada en aos futuros. El comportamiento de estos usuarios se visualiza en la figura 3.4.1, en donde puede notarse las tendencias que pueden llegar a causar congestin en la central en caso de no preverse con anticipacin: Figura 3.4.1 Curvas de Carga 3.4 PREDICCIN DE CONSUMO DE CARGA 3.4.2 Justificacin del tipo de red: El algoritmo Backpropagation es un algoritmo de aprendizaje supervisado, el cual necesita conocer cual es la salida esperada (columnas interiores de la tabla 3.4.1) asociada a cada una de las entradas (columnas referentes al da y a la hora en la tabla 3.4.1), que actualiza pesos y ganancias siguiendo la regla de pasos descendientes descrita en la seccin 2.3.3 (3.4.1) (3.4.2) Una de las mayores ventajas de las redes multicapa, y en especial de la red Backpropagation, es que pueden aproximar cualquier funcin si se escoge una adecuada configuracin para la red [16] y un adecuado nmero de neuronas en la capa oculta, escogencia que depende de la experiencia del desarrollador de la red. La red Bakcpropagation es un excelente aproximador de funciones, aunque es imposible determinar una configuracin exacta de la red para cada aplicacin. El proceso de aprendizaje no es fijo para ninguna red neuronal, el xito consiste en probar con diferentes configuraciones hasta obtener la respuesta deseada; para esta aplicacin se escogi una red 2:12:8:1, es decir que para un vector de entrada de dos dimensiones y esperando una sola salida de red, se tienen 12 neuronas en la primera capa oculta y 8 neuronas en la segunda capa oculta. Un esquema de la red puede observarse en la figura 3.4.2, la cual muestra las caractersticas de los datos de entrada y salida de la red. All puede verse que es necesario ingresar a la red el da y la hora para los cuales se desea conocer el valor de demanda pico de acuerdo a la convencin de la tabla 3.4.1, las condiciones de entrada a la red pueden ser tan complejas como se quiera, es decir, la entrada puede convertirse fcilmente en un vector de cuatro componentes que incluya adems del da y la hora, el mes y el ao para los cuales se requiere predecir el valor de demanda; existen tambin otras opciones como convertir la entrada en un vector de tres componentes donde se incluya hora, da y tipo de carga para el cual se desea prever el consumo. La eleccin de los patrones de entrada debe realizarse dependiendo de las necesidades explcitas que se tengan en el momento de hacer la prediccin de carga, de la forma en que vaya a procesarse la informacin de salida de la red y de la cantidad y calidad de la informacin disponible. Figura 3.4.2 Red Backpropagation 2:12:8:1 para prediccin del consumo de carga Cualquier cambio que se realice en los patrones de entrenamiento exige una codificacin diferente del vector de entrada y a su vez cambia las condiciones generales de la red, pero el proceso de entrenamiento sigue siendo igual. En esta aplicacin se utiliz la configuracin de la figura 3.4.2 porque el objetivo es mostrar el funcionamiento general de una red Backpropagation, mostrando las bondades de este tipo de red para aproximar funciones (en este caso las curvas de carga de la poblacin en estudio) y su gran capacidad para predecir comportamientos futuros de patrones nunca antes presentados en la etapa de aprendizaje. 3.4 PREDICCIN DE CONSUMO DE CARGA 3.4.3 Entrenamiento de la red El cdigo de entrenamiento para esta red, es desarrollado con base en la herramienta de redes neuronales del Matlab. La red es creada mediante el comando newff para creacin de redes Backpropagation, con las siguientes caractersticas: net=newff([0 1;0 1],[12,10,1], {tansig,tansig,purelin},trainlm); Los valores de iniciacin de la matriz de pesos se generaron aleatoriamente; despus de varias pruebas, los parmetros que determinan el entrenamiento se fijaron en los siguientes valores, mediante los cuales se alcanz el rendimiento ptimo de la red. net.trainParam.show =10; net.trainParam.epochs =1000; net.trainParam.goal =1e-5; net.trainParam.lr=0.075; net.trainParam.max_fail =5; net.trainParam.mem_reduc =1; net.trainParam.min_grad =1e-12; net.trainParam.time =inf; Una explicacin del significado de los comandos anteriores, puede encontrarse en el anexo A. Los valores de entrada a la red se agruparon en el vector de dos entradas p, (tabla 3.4.1), las cuales describen el da y la hora en que desea saberse el valor de consumo. La red se entren solo con 180 valores de entrada de los 206 que conforman todo el set de entrenamiento, estos valores fueron normalizados porque de esa forma se obtuvo una mejor generalizacin de la red en el proceso de aprendizaje; el proceso de normalizacin consiste en dividir cada uno de los valores de demanda de la tabla 3.4.1 por el valor de demanda mximo, de tal forma que el mayor valor de entrada a la red ser uno: El valor esperado, el valor de la potencia pico en un instante determinado, es representado por el escalar t t=t; [net,tr]=train(net,p,t); Los restantes 26 valores de los patrones de entrenamiento se tomaron como valores de prueba del rendimiento de la red y se agruparon en el vector p1, siendo t1 el vector de salidas esperadas. p1=p1; a = sim(net,p1); Luego de varias iteraciones el error cay por debajo de 2x10 -5 , el desempeo del error medio cuadrtico puede observarse en la figura 3.4.3. Figura 3.4.3 Iteraciones Vs Error en una prediccin de consumo de carga Los parmetros de la red entrenada se presentan en la tabla 3.4.2 W1=net.IW{1,1} 1 2 N1 -21,9482 3,0064 N2 -0,4403 14,0061 N3 -30,1225 -14,4532 N4 6,8063 9,6593 N5 -0,6548 10,661 N6 -32,5167 -16,0543 N7 -31,5269 28,1193 N8 -26,5558 -10,0917 N9 2,4681 -26,1821 N10 7,306 1,6967 N11 -0,0242 9,3016 N12 -5,2355 0,211 W2=net.LW{2,1} 1 2 3 4 5 6 N1 -0,3267 18,5006 1,4482 7,3519 5,56 -63,61 N2 -1,7789 -34,377 132,102 56,1894 -36,79 5,4474 N3 2,9001 -1,6303 31,2892 2,0873 -3,0091 -1,3828 N4 -0,8462 8,6876 4,0463 6,0138 2,3158 -0,2587 N5 12,0037 0,1605 60,885 148,871 2,5194 106,22 N6 -98,9806 105,356 115,699 0,5065 95,0003 -17,001 N7 -5,6485 136,978 15,7418 43,3306 -13,133 -23,351 N8 -0,7708 -80,889 1,397 100,628 5,1579 -0,1767 7 8 9 10 11 12 N1 72,191 -27,627 42,4595 0,9163 -2,2968 57,8689 N2 180,2947 -253,47 -92,087 0,066 3,5167 -77,476 N3 3,3586 2,9584 1,2985 -0,0981 0,0207 -1,3115 N4 29,6843 0,8862 -10,697 0,4033 -1,1097 25,1813 N5 10,1653 0,8031 -30,127 0,2075 2,0099 3,7721 N6 46,6346 112,561 -28,56 6,8125 96,3854 172,322 N7 -58,043 -16,587 -10,875 -35,975 0,3041 74,7964 N8 94,3186 -1,8353 -1,4035 0,0731 -0,1007 33,8039 W3=net.LW{3,2} 1 2 3 4 5 6 7 8 N1 -0.1029 -0.2205 1.1001 0.2796 0.2537 -1.0455 -0.0863 1.0944 b1=net.b{1} b2=net.b{2} b3=net.b{3} N1 17,6647 N1 35,736 N1 -0.5760 N2 -12,2797 N2 -58,2132 N3 36,1202 N3 -28,9712 N4 -11,3385 N4 29,135 N5 -4,2961 N5 7,4498 N6 29,8648 N6 -119,529 N7 -12,2397 N7 20,4235 N8 5,5126 N8 84,9714 N9 16,6252 N10 -2,721 N11 -0,2757 N12 4,0912 Tabla 3.4.2 Resultados obtenidos con la red entrenada En la tabla 3.4.3, se muestran seis de los valores de la simulacin de la red; los valores de a1 corresponden a los valores entregados por al red y los valores de t1 corresponden a los valores esperados. a1= 1,341 1,3925 1,1588 1,1699 1,2124 1,339 1,4776 t1= 1,3439 1,389 1,157 1,17 1,2139 1,337 1,4799 e= 0,0029 0,0035 0,0018 0,0001 0,0015 0,002 0,0023 emx= emin = 0,0035 1,19E-04 Tabla 3.4.3 Valores de la simulacin Los comandos, que evaluaron el desempeo de la red son los siguientes, con ellos se calcul el error en la simulacin e=abs(t1-a1) emax=max(e) emin=min(e) En la tabla 3.4.3 puede observarse el trabajo final de la red y la excelente labor de aproximacin que realiza. Ilustrar el resultado para todos los patrones de prueba resulta un poco extenso, por lo tanto se escogieron los patrones ms representativos, donde puede verse que sin ningn problema la red ha aproximado patrones que no se le haban presentado durante el entrenamiento, garantizando el xito de la red para realizar predicciones de consumo de carga. De los datos entregados en el entrenamiento, el error ms significativo equivale a 0.0035, es decir 3.5kW, valor muy aceptable teniendo en cuenta la disparidad de los datos de entrada, ya que como se observa de la figura 3.4.1 la poblacin tiene un comportamiento bastante aleatorio, pues aunque se conserva la forma de onda, indicando que el comportamiento es similar todos los das de la semana, los valores de la demanda pico son muy diferentes cada da Despus de probar los algoritmos traingd, traingda, (ver anexo A) se comprob que el algoritmo trainlm, correspondiente al mtodo de Levenberg Marquardt garantizaba una alta velocidad de aprendizaje y una excelente generalizacin de los patrones de entrenamiento que no se le haban presentado inicialmente, y por eso se escogi para completar el proceso de entrenamiento. El proceso de entrenamiento, involucr experimentar con muchos tipos de redes tratando de encontrar no solo una configuracin ptima, si no tambin un algoritmo que adems de rapidez garantizara estabilidad en el resultado final. La red escogida en la figura 3.4.2 es bastante robusta e involucra un gran nmero de parmetros (149 en total), sin embargo alcanz convergencia en menos tiempo que otras redes escogidas en las cuales se trabaj con una sola capa oculta compuesta por un gran nmero de neuronas, de esta forma se confirma que no existe un procedimiento establecido para determinar el modelo de red que debe emplearse en cada aplicacin y que slo con la prctica puede determinarse cul es la configuracin de red que garantiza mejores resultados, esta aparente dificultad de las redes neuronales puede aprovecharse para resaltar una de sus grandes ventajas: La adaptabilidad de esta teora a diferentes lenguajes de programacin, de tal forma que con unos pocos comandos los parmetros de la red pueden ser transformados sin mayor problema, adoptando una configuracin totalmente diferente. Redes con el tipo de estructura, como la utilizada en esta aplicacin pueden emplearse para predecir la necesidad de una reconfiguracin del sistema en un da y una hora especfica. Es posible tambin que los resultados de una red como sta, se utilicen para adoptar estrategias de restauracin del servicio en diferentes horas y diferentes das, pues al conocer los valores de demanda es fcil determinar comportamientos crticos y dar prioridad en el restablecimiento, dejando por fuera a la menor cantidad de usuarios posible. Las diferentes aplicaciones para las que sea necesario implementar una prediccin de consumo de carga, pueden derivarse fcilmente de sta adaptando el cdigo fuente a los patrones con los que se desea realizar la prediccin, as como se mencion anteriormente, lo nico necesario es variar la estructura del vector de entrada p adecundolo a la cantidad de entradas que se vayan a ingresar (hora, da, mes, ao, tipo de carga) a la red y tambin establecer con claridad que tipo de informacin de salida se espera dependiendo del propsito de la prediccin. 3.5 CONTROL DE VOLTAJE POR INYECCIN DE REACTIVOS EN UNA BARRA REMOTA 3.5.1 Descripcin del problema: El objetivo de un sistema de potencia es suministrar a las barras de carga, potencia activa y reactiva para su consumo conservando los niveles de voltaje dentro de los lmites establecidos. Sin embargo los niveles de tensin en las barras estn determinados por las condiciones del sistema, no obstante es posible realizar un control en el nivel de tensin inyectando reactivos en una barra remota, para de este modo controlar los niveles de tensin. Cuando se desea especificar el nivel de voltaje en una barra de carga PQ, sta barra se declara como tipo PQV, la barra donde se inyecta potencia reactiva que generalmente es de tipo PV se declara como tipo P. Las ecuaciones bsicas que describen el flujo de carga en un sistema de potencia son las siguientes: (3.5.1) (3.5.2) Para Nmero de barras del sistema La solucin de las ecuaciones de flujo de potencia generalmente se realizan por el mtodo de Newton-Raphson, donde se calculan las derivadas de P y Q de las ecuaciones (3.5.1) y (3.5.2) respecto a las variables V y . El sistema de ecuaciones no lineales en forma matricial se describe en la ecuacin 3.5.3, donde el Jacobiano del sistema es la matriz despus de la igualdad. (3.5.3) Para la solucin de flujo de potencia cada barra aporta distintas ecuaciones e incgnitas segn su tipo, como se puede ver en las tablas 3.5.1 y 3.5.2 Barra tipo PV Ecuacin: Incgnita: Barra tipo PQ Ecuaciones: Incgnitas: , Tabla 3.5.1 Ecuaciones e incgnitas barras, tipo PV y PQ Cuando se desea realizar control de voltaje por inyeccin de reactivos en una barra remota, las barras tipo P y PQV proporcionan las siguientes ecuaciones: Barra tipo P o de Control Ecuacin: Incgnitas: , Barra tipo PQV o Controlada Ecuaciones: Incgnita: Tabla 3.5.2 Ecuaciones e incgnitas barras tipo P y PQV En resumen las ecuaciones e incgnitas que aporta cada tipo de barra se sintetiza en el grupo de ecuaciones (3.5.4). (3.5.4) Dnde: Nmero de barras con control remoto de voltaje. , Nmero de barras tipo PQ y PV respectivamente Esta aplicacin se llevar a cabo en un sistema de tres barras donde la barra 1 es una barra slack o de compensacin V, la barra 2 es una barra tipo P, desde donde se pretende controlar por inyeccin de reactivos el voltaje de la barra 3, la cual es una barra tipo PQV. Figura 3.5.1 Sistema de 3 barras El sistema tiene como potencia base Sb=100MVA y voltaje base Vb=230kV, el voltaje en el nodo slack se mantendr en V1=1.015p.u. Las ecuaciones no lineales que describen el comportamiento del flujo de potencia en el sistema de tres barras en forma matricial son las siguientes: (3.5.5) (3.5.6) (3.5.7) (3.5.8) (3.5.9) (3.5.10) (3.5.11) (3.5.12) (3.5.13) (3.5.14) (3.5.15) El proceso de clculo se realiza de forma iterativa, cuando el sistema de ecuaciones ha convergido por debajo del error deseado se obtiene V2, de las condiciones iniciales del flujo de carga se tienen V1 y V3 y con estos datos se calcula la potencia reactiva inyectada en la barra 2 (Q2), que satisface las condiciones impuestas en la barra 3. (3.5.16) Los datos de las lneas en p.u. son: Z serie Y/2 paralelo 1-2 0.0229+j0.0400 j0.036 2-3 0.0118+j0.0333 j0.027 3-1 0.0046+j0.0267 j0.040 Tabla 3.5.3 Datos de las lneas del sistema de tres barras Y bus en p.u. 1 2 3 1 17.04606-j55.12630 -10.77946+j18.82875 -6.26660+j36.37354 2 -10.77946+j18.82875 22.37953-j41.94710 -12.60006+j23.18134 3 -6.26660+j36.37354 -12.60006+j23.18134 18.86667-j59.48788 Tabla 3.5.4 Y bus del sistema de tres barras 3.5 CONTROL DE VOLTAJE POR INYECCIN DE REACTIVOS EN UNA BARRA REMOTA 3.5.2 Justificacin del tipo de red: El problema de flujos de potencia est regido por ecuaciones no lineales, las cuales segn lo demostrado por Funahashi[16] pueden ser aprendidas por una red multicapa, en esta publicacin el autor demuestra que siempre existe la red neuronal apropiada; este teorema es solo de existencia pues prueba que la red existe pero no indica cmo construirla ni tampoco garantiza que la red aprender la funcin. La red neuronal de propagacin inversa o Backpropagation es una generalizacin para redes multicapa del algoritmo LMS. Ambas utilizan la tcnica del error medio cuadrtico, pero la red Backpropagation es ms ampliamente utilizada para aproximacin de funciones en especial no lineales. 3.5 CONTROL DE VOLTAJE POR INYECCIN DE REACTIVOS EN UNA BARRA REMOTA 3.5.3 Entrenamiento de la Red utilizando como entradas P3, Q3 y V3; para obtener Q2 utilizando 10 neuronas en la capa oculta Figura 3.5.2 Red neuronal en configuracin 3:10:1 La red ser entrenada para determinar la cantidad de potencia reactiva en p.u. inyectada en la barra dos (Q2) para satisfacer las condiciones impuestas por V3, P3 y Q3, que son el voltaje, la potencia activa y reactiva demandada en la barra 3. Para generar el set de entrenamiento, se resolvieron las ecuaciones no lineales que describen el comportamiento del sistema por el mtodo de Newton-Raphson considerando variaciones de V3, P3, Q3; cada variable se increment segn lo mostrado en la tabla 3.5.3; se mantuvieron constantes el voltaje en el nodo slack V1=1.015p.u. y la potencia activa demandada en la barra dos, P2=0.7p.u. Valor Inicial Valor Final Incremento V3 0.997 1.015 0.003 P3 0.700 0.850 0.030 Q3 0.250 0.400 0.030 Tabla 3.5.5 Patrones de entrenamiento De estas variaciones se obtuvieron 252 combinaciones que conforman el vector de patrones de entrenamiento p, que generan a su vez igual nmero de patrones objetivos o salidas deseadas t. P P1 P2 P36 P78 P79 P140 P252 V3 0.9970 0.9970 .... 0.9970 .... 1.0030 1.0030 .... 1.0060 .... 1.0150 P3 0.8500 0.8500 .... 0.7000 .... 0.8500 0.8200 .... 0.7000 .... 0.7000 Q3 0.2500 0.2800 .... 0.4000 .... 0.4000 0.2500 .... 0.2800 .... 0.4000 t t1 t2 t36 t78 t79 t140 t252 Q2 -0.7480 -0.6939 .... -0.5495 .... 0.0685 -0.2244 .... 0.0464 .... 1.1281 Tabla 3.5.6 Patrones de entrenamiento de la red neuronal Los pesos iniciales de la red fueron obtenidos de la funcin initlay que calcula los pesos iniciales con base al rango de los datos de entrada p. W1i=net.IW{1,1} b1i=net.b{1} I1 I2 I3 N1 -82.4449 -30.1178 24.7463 N1 101.2545 N2 251.4143 -20.6245 -16.7856 N2 -233.8294 N3 -325.2046 -1.0347 9.6617 N3 326.4934 N4 325.4475 -9.5779 0.6391 N4 -321.1904 N5 329.3532 -5.3503 -5.1664 N5 -325.8389 N6 -142.9295 34.0779 12.7224 N6 112.9068 N7 64.3926 -27.4716 28.3361 N7 -51.6923 N8 294.8647 -14.5486 -12.3960 N8 -279.6544 N9 231.7537 21.5285 -19.5048 N9 -241.1438 N10 -186.3720 -28.7647 -17.0220 N10 212.2988 W2i=net.LW{2,1} N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 S1 -0.1769 -0.4281 -0.2117 0.0060 0.4440 -0.3876 -0.7757 -0.1134 -0.0665 -0.9707 b2i=net.b{2} S1 0.3281 Tabla 3.5.7 Pesos iniciales para la red neuronal Se entrenar la red de la figura 3.5.2 con 3 distintos algoritmos de aprendizaje y luego se simular cada red con los siguientes patrones de prueba: 1 2 3 4 5 6 7 8 V3 1.0120 0.9950 1.0100 1.0200 1.0070 1.0160 1.0050 1.0100 P3 0.7320 0.8300 0.8250 0.8370 0.7520 0.9120 0.8720 0.8500 Q3 0.3710 0.3600 0.2300 0.4100 0.3230 0.2500 0.4500 0.2020 Q2 0.7992 -0.7359 0.3895 1.7141 0.2457 1.0476 0.3588 0.3497 9 10 11 12 13 14 15 16 V3 1.0100 1.0170 1.0050 1.0120 1.0030 0.9950 1.0200 1.0100 P3 0.8430 0.9000 0.7500 0.8500 0.8200 0.6500 0.9000 0.8000 Q3 0.3570 0.1500 0.3100 0.5000 0.2800 0.1500 0.2000 0.3000 Q2 0.6390 0.9463 0.0349 1.1089 -0.1691 -1.1977 1.3368 0.5088 Tabla 3.5.8 Patrones de prueba de las RNs Los valores de prueba que se encuentran en negrilla se encuentran por fuera del rango de entrenamiento y buscan probar la capacidad de extrapolacin de la red, la mayora de los datos de prueba que se encuentran dentro del rango de entrenamiento no coinciden exactamente con el valor utilizado en el entrenamiento para probar la capacidad de interpolacin de la red. 3.5.3 Entrenamiento de la Red utilizando como entradas P3, Q3 y V3; para obtener Q2 utilizando 10 neuronas en la capa oculta Entrenamiento utilizando el algoritmo trainrp El siguiente cdigo entrena una red neuronal con 3 entradas, 10 neuronas en la capa oculta y 1 en la capa salida, utilizando la funcin de aprendizaje trainrp (Ver Anexo 1) y como objetivo un error medio cuadrtico de 6x10 -6 . net=newff([0.997 1.015;0.7 0.85;0.25 0.4],[10,1], {tansig,purelin},trainrp); net.trainParam.epochs=50000; net.trainParam.goal=6e-6; net.trainParam.min_grad=1e-10; net.trainParam.lr=0.03; net.trainParam.delt_inc=1.08; net.trainParam.delt_dec=0.70; net.trainParam.delta0=0.08; net.trainParam.deltamax=50.0; [net,tr]=train(net,P,t); El error medio cuadrtico objetivo fue fijado en 6x10 -6 , puesto que con la variacin de los distintos parmetros no fue posible alcanzar un valor inferior; los mejores resultados se obtuvieron para una rata de aprendizaje de 0.03, para esta red un valor superior causa serias inestabilidades lo que a su vez ocasiona un proceso de aprendizaje bastante pobre (la red generaliza de manera incorrecta) y un valor inferior produce un aprendizaje bastante lento. La figura 3.5.3 muestra la evolucin del error medio cuadrtico a travs de 50000 iteraciones hasta alcanzar el error deseado. Figura 3.5.3 Error medio cuadrtico utilizando trainrp Luego de 50000 iteraciones el error medio cuadrtico cay por debajo de 6x10 -6 , los pesos y ganancias de la red entrenada son: W1f=net.IW{1,1} b1f=net.b{1} I1 I2 I3 N1 -79.6128 -24.9124 34.8705 N1 112.1139 N2 252.3923 -15.6532 -27.2092 N2 -232.4849 N3 -323.5910 -0.0197 0.3244 N3 327.5410 N4 322.9282 -0.2053 -0.1796 N4 -324.6580 N5 325.8474 -0.0746 0.2680 N5 -325.7568 N6 -133.9024 3.5832 15.9724 N6 127.9533 N7 59.2478 1.9485 7.0366 N7 -63.8474 N8 275.5195 5.1249 21.3110 N8 -284.2129 N9 234.3145 -18.7189 -245.3248 N9 -129.0298 N10 -200.4902 -7.0055 -22.0806 N10 212.8007 W2f=net.LW{2,1} N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 S1 -0.0688 -0.0069 -0.2988 0.2533 0.2656 0.0251 0.2475 0.0563 -0.0031 -0.0346 b2f=net.b{2} S1 0.2726 Tabla 3.5.9 Pesos finales de la RN Para hallar la respuesta de la red (Q2Rn) ante los patrones de prueba, se simul la red y para hallar el error en las aproximaciones se compar con la respuesta producida por las ecuaciones del flujo de carga (Q2Fc). 1 2 3 4 5 6 7 8 Q2Fc 0.7992 -0.7359 0.3895 1.7141 0.2457 1.0476 0.3588 0.3497 Q2Rn 0.7980 -0.6457 0.3799 1.3230 0.2549 1.0028 0.3215 0.3437 Error 0.0011 -0.0902 0.0097 0.3911 -0.0092 0.0448 0.0374 0.0060 9 10 11 12 13 14 15 16 Q2Fc 0.6390 0.9463 0.0349 1.1089 -0.1691 -1.1977 1.3368 0.5088 Q2Rn 0.6333 0.8745 0.0268 0.9868 -0.1672 -0.9485 1.0116 0.4964 Error 0.0057 0.0718 0.0081 0.1220 -0.0019 -0.2492 0.3252 0.0123 Tabla 3.5.10 Simulacin de la RN con los patrones de prueba Los errores ms altos se presentaron en los patrones de prueba 4 (2), 12 (1), 14 (3) y 15 (3), donde los valores entre parntesis son el nmero de datos extrapolados del set de entrenamiento; algunos resultados son muy prximos a los valores que produciran las ecuaciones de flujo de carga que describen el comportamiento del sistema, pero en general el aprendizaje fue muy lento (50000 iteraciones) y la aproximacin es muy deficiente. 3.5.3 Entrenamiento de la Red utilizando como entradas P3, Q3 y V3; para obtener Q2 utilizando 10 neuronas en la capa oculta Entrenamiento utilizando el algoritmo trainbfg El siguiente cdigo entrena una red neuronal con 3 entradas, 10 neuronas en la capa oculta y 1 en la salida, utilizando la funcin de aprendizaje trainbfg (Ver Anexo 1) y como objetivo un error medio cuadrtico de 1.35x10 -8 . net=newff([0.997 1.015;0.7 0.85;0.25 0.4],[10,1], {tansig,purelin},trainbfg); net.trainParam.epochs=1800; net.trainParam.goal=1.35e-8; net.trainParam.min_grad=1e-10; net.trainParam.searchFcn=srchcha net.trainParam.scal_tol=20; net.trainParam.alpha=0.001; net.trainParam.beta=0.1; net.trainParam.delta=0.01; net.trainParam.gama=0.1; net.trainParam.low_lim=0.1; net.trainParam.up_lim=0.5; [net,tr]=train(net,P,t); El error medio cuadrtico fue fijado en 1.35x10 -8 , por debajo de este valor la matriz Jacobiana de esta red se vuelve singular o sin inversa y por este motivo se presenta un estancamiento en el proceso de aprendizaje, pero antes de que esto suceda los resultados obtenidos presentan un error medio cuadrtico bastante pequeo, produciendo una muy buena aproximacin y generalizacin de las funciones deseadas La figura 3.5.4 muestra la evolucin del error medio cuadrtico a travs de 1523 iteraciones hasta alcanzar el error deseado. Figura 3.5.4 Error medio cuadrtico utilizando trainbfg Luego de 1523 iteraciones el error medio cuadrtico cayo por debajo de 1.35x10 -8 , alcanzado el error deseado, los pesos y ganancias de la red entrenada son: W1f=net.IW{1,1} b1f=net.b{1} I1 I2 I3 N1 314.7873 292.0234 160.5730 N1 492.3094 N2 311.7056 -134.0357 138.9636 N2 -159.4016 N3 -84.6597 -0.4099 -1.4174 N3 87.8088 N4 26.3003 0.1433 0.5297 N4 -26.8251 N5 109.2728 0.6771 2.6136 N5 -109.7182 N6 -63.4637 -296.9911 231.7073 N6 208.1393 N7 -75.4292 -98.1638 5.7991 N7 -188.8066 N8 643.5915 286.1720 167.6307 N8 66.2581 N9 257.6940 33.3274 -21.1659 N9 -215.0041 N10 -220.3097 125.5978 -512.3378 N10 171.3954 W2f=net.LW{2,1} N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 S1 -35.0242 -5.1142 -0.3124 3.4025 0.0932 0.0000 29.3423 -617.2979 -545.3703 0.2596 b2f=net.b{2} S1 1233.1 Tabla 3.5.11 Pesos finales de la RN entrenada con trainbfg Para hallar la respuesta de la red (Q2Rn) ante los patrones de prueba, se simul la red y para hallar el error en las aproximaciones se compar con la respuesta producida por las ecuaciones del flujo de carga (Q2Fc). 1 2 3 4 5 6 7 8 Q2Fc 0.7992 -0.7359 0.3895 1.7141 0.2457 1.0476 0.3588 0.3497 Q2Rn 0.7992 -0.7356 0.3893 1.7148 0.2459 1.0474 0.3582 0.3492 Error -0.0000 -0.0002 0.0002 -0.0007 -0.0001 0.0001 0.0007 0.0005 9 10 11 12 13 14 15 16 Q2Fc 0.6390 0.9463 0.0349 1.1089 -0.1691 -1.1977 1.3368 0.5088 Q2Rn 0.6390 0.9454 0.0351 1.1073 -0.1690 -1.1897 1.3380 0.5089 Error -0.0000 0.0008 -0.0001 0.0015 -0.0001 -0.0080 -0.0011 -0.0001 Tabla 3.5.12 Simulacin de la RN con los patrones de prueba Como se observa esta red tiene una amplia capacidad de generalizacin tanto para interpolar como para extrapolar, el error ms grande se produjo en el patrn de prueba 15 el cual tiene 3 valores extrapolados con respecto al set de entrenamiento. 3.5.3 Entrenamiento de la Red utilizando como entradas P3, Q3 y V3; para obtener Q2 utilizando 10 neuronas en la capa oculta Entrenamiento utilizando el algoritmo trainlm El siguiente cdigo entrena una red neuronal con 3 entradas, 10 neuronas en la capa oculta y 1 en la salida, utilizando la funcin de aprendizaje trainlm y como objetivo un error medio cuadrtico de 1x10 -8 . net=newff([0.997 1.015;0.7 0.85;0.25 0.4],[10,1], {tansig,purelin},trainlm); net.trainParam.epochs=700; net.trainParam.goal=1e-8; net.trainParam.lr=0.03; net.trainParam.mem_reduc=1; net.trainParam.min_grad=1e-10; [net,tr]=train(net,P,t); Se utiliz una rata de aprendizaje de 0.03, para este valor se obtuvieron los mejores resultados de error medio cuadrtico en el menor nmero de iteraciones, para valores diferentes a esta rata de aprendizaje se obtuvieron valores superiores en el error medio cuadrtico para el mismo nmero de iteraciones. No fue necesario fraccionar por submatrices el clculo de la matriz Jacobiana del algoritmo de entrenamiento, lo cual en algunos casos se hace indispensable por razones computacionales cuando el conjunto de patrones de entrenamiento es muy extenso, pues el Jacobiano de este algoritmo tiene dimensiones QxN donde Q es el nmero de patrones de entrenamiento y N es el nmero de pesos y ganancias de la red. La figura 3.5.5 muestra la evolucin del error medio cuadrtico a travs de 601 iteraciones hasta alcanzar el error deseado. Figura 3.5.5 Error medio cuadrtico utilizando trainlm Luego de 601 iteraciones el error medio cuadrtico cay por debajo de 1x10 -8 , alcanzado el error deseado, los pesos y ganancias de la red entrenada son: W1f=net.IW{1,1} b1f=net.b{1} I1 I2 I3 N1 -88.3684 -9.3759 -10.4875 N1 105.0244 N2 249.1384 -17.7323 -11.8856 N2 -236.6178 N3 -289.7534 -1.2117 -8.7486 N3 296.1395 N4 333.5132 -34.3139 1.4535 N4 -312.9180 N5 320.8474 1.9620 9.7026 N5 -324.2801 N6 -143.5382 31.1396 23.1280 N6 113.2598 N7 13.7085 0.0753 0.2782 N7 -14.1171 N8 298.9814 -14.0175 -39.8990 N8 -274.3762 N9 241.2621 -9.1133 -10.0929 N9 -232.4621 N10 -193.7428 0.4029 2.1040 N10 195.5529 W2f=net.LW{2,1} N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 S1 -0.3137 -0.0002 0.0016 0.0002 0.0043 0.0001 6.9859 0.0001 0.0007 -0.0068 b2f=net.b{2} S1 1.7103 Tabla 3.5.13 Pesos y ganancias RN entrenada con trainlm Para hallar la respuesta de la red (Q2Rn) ante los patrones de prueba, se simul la red y para hallar el error en las aproximaciones se compar con la respuesta producida por las ecuaciones del flujo de carga (Q2Fc) 1 2 3 4 5 6 7 8 Q2Fc 0.7992 -0.7359 0.3895 1.7141 0.2457 1.0476 0.3588 0.3497 Q2Rn 0.7992 -0.7361 0.3896 1.7055 0.2459 1.0469 0.3598 0.3497 Error -0.0001 0.0002 -0.0001 0.0086 -0.0001 0.0007 -0.0010 0.0000 9 10 11 12 13 14 15 16 Q2Fc 0.6390 0.9463 0.0349 1.1089 -0.1691 -1.1977 1.3368 0.5088 Q2Rn 0.6387 0.9443 0.0350 1.1132 -0.1692 -1.1856 1.3291 0.5087 Error 0.0003 0.0020 -0.0000 -0.0043 0.0001 -0.0120 0.0078 0.0000 Tabla 3.5.14 Simulacin de la RN con los patrones de prueba Como se observa, esta red tiene una amplia capacidad de generalizacin para interpolar como para extrapolar, los errores ms grandes se produjeron en los patrones de prueba 4 y 15 los cuales tienen 2 y 3 valores extrapolados respectivamente con relacin al set de entrenamiento; este algoritmo produjo resultados tan buenos como los obtenidos con el algoritmo trainbfg pero en menor nmero de iteraciones y sin problemas de singularidad de la matriz Jacobiana en el proceso de aprendizaje. 3.5 CONTROL DE VOLTAJE POR INYECCIN DE REACTIVOS EN UNA BARRA REMOTA 3.5.4 Entrenamiento de la Red utilizando como entradas P3, Q3, V3 y P2; para obtener Q2 utilizando 12 neuronas en la capa oculta Figura 3.5.6 Red Neuronal en configuracin 4:12:1 La red ser entrenada para determinar la cantidad de potencia reactiva en p.u. inyectada en la barra 2 (Q2) para satisfacer las condiciones impuestas por V3, P3 Q3 y P2, que son el voltaje, la potencia activa y reactiva deseados en la barra 3 y la potencia activa demandada en la barra 2. Para generar el set de entrenamiento se resolvieron las ecuaciones no lineales que describen el comportamiento del sistema por el mtodo de Newton-Raphson considerando variaciones de V3, P3, Q3 , P2 y sus posibles combinaciones en los rangos mostrados en la tabla 3.5.13, el voltaje en el nodo slack V1=1.015p.u se conservo constante. Valor Inicial Valor Final Incremento V3 0.997 1.015 0.0045 P3 0.700 0.850 0.0500 Q3 0.250 0.400 0.0500 P2 0.600 0.750 0.0500 Tabla 3.5.15 Patrones de entrenamiento De estas variaciones se obtuvieron 320 patrones de entrenamiento p, que generaron a su vez igual nmero de respuestas esperadas t P p1 p2 p75 p148 p149 p263 p320 V3 0.9970 0.9970 .... 1.0015 .... 1.0060 1.0060 .... 1.0150 .... 1.0150 P3 0.8500 0.8500 .... 0.8500 .... 0.8000 0.8000 .... 0.8500 .... 0.7000 Q3 0.2500 0.2500 0.3500 0.2500 0.3000 0.3000 0.4000 P2 0.6000 0.6500 .... 0.7000 .... 0.7500 0.6000 .... 0.7000 .... 0.7500 t t1 t2 t75 t148 t149 t263 t320 Q2 -0.7800 -0.7641 .... -0.1617 .... 0.0577 0.1008 .... 1.0139 .... 1.1456 Tabla 3.5.16 Patrones de entrenamiento de la red neuronal Los pesos iniciales de la red fueron obtenidos de la funcin initlay que calcula los pesos iniciales con base en el rango de los datos de entrada W1i=net.IW{1,1} b1f=net.b{1} I1 I2 I3 I4 N1 214.9557 18.4104 8.3064 11.5648 N1 - 243.6249 N2 85.1487 -25.6540 -20.9690 2.1943 N2 -62.5758 N3 -84.5134 12.2602 12.9213 28.0521 N3 54.0424 N4 -203.3228 18.7339 16.1259 -0.8630 N4 186.5500 N5 77.5282 -22.7461 -7.6400 -23.3397 N5 -42.8385 N6 130.9888 27.2670 -5.8177 13.5142 N6 - 160.3749 N7 -68.2392 4.5660 10.2405 31.8477 N7 40.0478 N8 -207.9645 6.7104 17.1889 15.6131 N8 187.1758 N9 -63.1775 -25.1240 -12.1456 19.2571 N9 72.7921 N10 272.6824 6.2926 -9.6419 -1.9396 N10 - 273.0942 N11 129.7327 22.8632 5.0148 -20.4160 N11 - 133.9472 N12 250.8019 -11.8106 4.7112 11.8144 N12 - 250.0536 W2i=net.LW{2,1} N1 N2 N3 N4 N5 N6 S1 -0.2693 -0.7199 0.1335 0.6460 0.3479 0.9989 b2f=net.b{2} N7 N8 N9 N10 N11 N12 S1 0.9233 -0.8823 -0.2794 0.0970 -0.4765 0.1947 S1 -0.9014 Tabla 3.5.17 Pesos iniciales para la red neuronal Se entrenar la red de la figura 3.5.6 con dos distintos algoritmos de aprendizaje y luego se simular cada red con los siguientes patrones de prueba: 1 2 3 4 5 6 7 8 V3 1.0120 0.9950 1.0100 1.0200 1.0070 1.0160 1.0050 1.0100 P3 0.7320 0.8300 0.8250 0.8370 0.7520 0.9120 0.8720 0.8500 Q3 0.3710 0.3600 0.2300 0.4100 0.3230 0.2500 0.4500 0.2020 P2 0.5300 0.5500 0.6200 0.6100 0.7580 0.7420 0.6320 0.5840 Q2 0.7416 -0.7836 0.3626 1.6821 0.2653 1.0623 0.3359 0.3108 9 10 11 12 13 14 15 16 V3 1.0100 1.0170 1.0050 1.0120 1.0030 0.9950 1.0200 1.0100 P3 0.8430 0.9000 0.7500 0.8500 0.8200 0.6500 0.9000 0.8000 Q3 0.3570 0.1500 0.3100 0.5000 0.2800 0.1500 0.2000 0.3000 P2 0.6500 0.7800 0.6200 0.5800 0.5500 0.6000 0.6800 0.7000 Q2 0.6220 0.9743 0.0085 1.0673 -0.2180 -1.2288 1.3298 0.5088 Tabla 3.5.18 Patrones de prueba de las RNs Los valores de la tabla 3.5.18 que se encuentran en negrilla se encuentran por fuera del rango de entrenamiento y con ellos se busca probar la capacidad de extrapolacin de la red, la mayora de los datos de prueba que se encuentran dentro del rango de entrenamiento no coinciden exactamente con el valor utilizado en el entrenamiento para probar la capacidad de interpolacin de la red. 3.5.4 Entrenamiento de la Red utilizando como entradas P3, Q3, V3 y P2; para obtener Q2 utilizando 12 neuronas en la capa oculta Entrenamiento utilizando el algoritmo trainbfg El siguiente cdigo entrena una red neuronal con 4 entradas, 12 neuronas en la capa oculta y 1 en la salida, utilizando la funcin de aprendizaje trainbfg (Ver Anexo 1) y como objetivo un error medio cuadrtico de 2.15x10 -8 . net=newff([0.997 1.015;0.7 0.85;0.25 0.4;0.6 0.75],[12,1], {tansig,purelin},trainbfg); net.trainParam.epochs=1500; net.trainParam.goal=5e-8; net.trainParam.min_grad=1e-10; net.trainParam.searchFcn=srchcha net.trainParam.scal_tol=20; net.trainParam.alpha=0.001; net.trainParam.beta=0.1; net.trainParam.delta=0.01; net.trainParam.gama=0.1; net.trainParam.low_lim=0.1; net.trainParam.up_lim=0.5; [net,tr]=train(net,P,t); En el entrenamiento de la red con este algoritmo se presentaron de nuevo inconvenientes en la invertibilidad de la matriz Jacobiana del algoritmo en el proceso iterativo, por lo cual el error medio cuadrtico objetivo fue fijado en 5x10 -8 , por debajo de este valor la matriz Jacobiana del algoritmo se vuelve singular y presenta los inconvenientes antes descritos, pero antes de que esto suceda los resultados obtenidos proveen una muy buena aproximacin. La figura 3.5.7 muestra la evolucin del error medio cuadrtico a travs de 1066 iteraciones hasta alcanzar el error deseado. Figura 3.5.7 Error medio cuadrtico utilizando trainbfg Luego de 1066 iteraciones el error medio cuadrtico cayo por debajo de 5x10 -8 , alcanzado el error deseado, los pesos y ganancias de la red entrenada son: W1f=net.IW{1,1} b1f=net.b{1} I1 I2 I3 I4 N1 224.4737 1.1518 4.1945 0.7659 N1 - 231.1824 N2 102.8281 19.5357 -69.0280 -18.4298 N2 -48.5460 N3 132.9784 173.1409 67.2342 171.2176 N3 272.5634 N4 -783.1072 -316.8951 -154.8182 -441.7653 N4 - 385.5031 N5 -151.4010 -190.8937 -109.9698 -159.8299 N5 - 271.9678 N6 425.0669 259.6459 85.3641 183.3998 N6 132.7761 N7 361.8879 328.3253 140.2923 276.1773 N7 464.9202 N8 47.0275 204.3169 40.6780 175.2289 N8 445.8823 N9 -45.6292 -0.2511 -0.9316 -0.1655 N9 46.1722 N10 268.0715 1.2620 4.5158 0.8389 N10 - 272.7277 N11 82.6771 4.2783 13.3543 -42.3772 N11 - 177.9131 N12 243.0169 1.3006 4.7068 0.8643 N12 - 248.8931 W2f=net.LW{2,1} N1 N2 N3 N4 N5 N6 S1 0.2130 10.4271 10.5727 -2.6097 27.1693 -906.5415 b2f=net.b{2} N7 N8 N9 N10 N11 N12 S1 794.0887 -14.8412 -1.9511 0.0293 -0.4926 0.0775 S1 130.1609 Tabla 3.5.19 Pesos y ganancias RN entrenada con trainbfg Para hallar la respuesta de la red (Q2Rn) ante los patrones de prueba, se simul la red y para hallar el error en las aproximaciones se compar con la respuesta producida por las ecuaciones del flujo de carga (Q2Fc) 1 2 3 4 5 6 7 8 Q2Fc 0.7416 -0.7836 0.3626 1.6821 0.2653 1.0623 0.3359 0.3108 Q2Rn 0.7412 -0.7841 0.3629 1.5963 0.2658 1.0627 0.3350 0.3112 Error 0.0004 0.0005 -0.0003 0.0858 -0.0005 -0.0004 0.0010 -0.0003 9 10 11 12 13 14 15 16 Q2Fc 0.6220 0.9743 0.0085 1.0673 -0.2180 -1.2288 1.3298 0.5088 Q2Rn 0.6221 0.9742 0.0083 1.0634 -0.2184 -1.2087 1.3310 0.5088 Error -0.0002 0.0001 0.0003 0.0040 0.0004 -0.0201 -0.0012 -0.0001 Tabla 3.5.20 Simulacin de la RN con los patrones de prueba. Como se observa, esta red tiene una amplia capacidad de generalizacin para interpolar como para extrapolar, los errores ms grandes se produjeron en los patrones de prueba 4 y 14 los cuales tienen 2 y 3 valores extrapolados respectivamente en relacin al set de entrenamiento. 3.5.4 Entrenamiento de la Red utilizando como entradas P3, Q3, V3 y P2; para obtener Q2 utilizando 12 neuronas en la capa oculta Entrenamiento utilizando el algoritmo trainlm El siguiente cdigo entrena una red neuronal con 4 entradas, 12 neuronas en la capa oculta y 1 en la salida, utilizando la funcin de aprendizaje trainlm y como objetivo un error medio cuadrtico de 1x10 -8 . net=newff([0.997 1.015;0.7 0.85;0.25 0.4;0.6 0.75],[12,1], {tansig,purelin},trainlm); net.trainParam.epochs=700; net.trainParam.goal=1e-8; net.trainParam.lr=0.03; net.trainParam.max_fail=5; net.trainParam.mem_reduc=1; net.trainParam.min_grad=1e-10; [net,tr]=train(net,P,t); Despus de realizar varias pruebas, se decidi utilizar una rata de aprendizaje de 0.03, para este valor se obtuvieron los mejores resultados en el entrenamiento de la red, llegando a un valor muy pequeo en el error medio cuadrtico a travs de pocas iteraciones. Como en el caso anterior de entrenamiento con este algoritmo, no fue necesario fraccionar por submatrices el calculo de la matriz Jacobiana, pues los patrones de entrenamiento y el nmero de parmetros de la red son estrictamente los necesarios La figura 3.5.8 muestra la evolucin del error medio cuadrtico a travs de 362 iteraciones hasta alcanzar el error deseado. Figura 3.5.8 Error medio cuadrtico utilizando trainlm Luego de 362 iteraciones el error medio cuadrtico cayo por debajo de 1x10 -8 , alcanzado el error deseado, los pesos y ganancias de la red entrenada son: W1f=net.IW{1,1} b1f=net.b{1} I1 I2 I3 I4 N1 217.3050 1.1784 4.3958 0.7495 N1 -221.8890 N2 86.3682 -28.0087 -14.8760 2.4348 N2 -60.9291 N3 -82.5289 9.5925 36.1293 22.6072 N3 50.6335 N4 -196.4316 15.3102 -1.1168 -1.8863 N4 187.3245 N5 73.2020 -19.7579 -4.5863 -25.2722 N5 -49.0199 N6 144.0374 0.7851 2.9423 0.5168 N6 -145.1983 N7 -66.5832 7.3605 5.8988 24.5765 N7 41.1724 N8 -191.3809 -1.0280 -3.8772 -0.6760 N8 194.3911 N9 -70.7928 -0.3863 -1.4178 -0.2546 N9 72.9238 N10 263.8718 9.4256 8.6166 1.3268 N10 -275.1674 N11 126.0300 11.5735 16.9349 2.5421 N11 -139.0503 N12 246.1641 -2.9151 -7.5082 -1.6426 N12 -244.2148 W2f=net.LW{2,1} N1 N2 N3 N4 N5 N6 S1 0.0595 -0.0001 0.0001 -0.0001 -0.4521 0.4525 b2f=net.b{2} N7 N8 N9 N10 N11 N12 S1 0.0003 -0.1357 -1.3382 0.0004 0.0024 0.0023 S1 0.1047 Tabla 3.5.21 Pesos y ganancias RN entrenada con trainlm Para hallar la respuesta de la red (Q2Rn) ante los patrones de prueba, se simul la red y para hallar el error en las aproximaciones se compar con la respuesta producida por las ecuaciones del flujo de carga (Q2Fc) 1 2 3 4 5 6 7 8 Q2Fc 0.7416 -0.7836 0.3626 1.6821 0.2653 1.0623 0.3359 0.3108 Q2Rn 0.7406 -0.7842 0.3624 1.6512 0.2652 1.0621 0.3357 0.3105 Error 0.0010 0.0007 0.0002 0.0308 0.0001 0.0002 0.0002 0.0004 9 10 11 12 13 14 15 16 Q2Fc 0.6220 0.9743 0.0085 1.0673 -0.2180 -1.2288 1.3298 0.5088 Q2Rn 0.6222 0.9730 0.0089 1.0680 -0.2182 -1.1664 1.3250 0.5089 Error -0.0002 0.0013 -0.0004 -0.0006 0.0002 -0.0624 0.0048 - 0.0002 Tabla 3.5.22 Simulacin de la RN con los patrones de prueba De la tabla 3.5.22 se observa que esta red tiene una amplia capacidad de generalizacin para interpolar como para extrapolar, los errores ms grandes se produjeron en los patrones de prueba 4 (2), 14 (3) y 15 (3) donde los valores entre parntesis son el nmero de datos extrapolados en relacin con el set de entrenamiento; este algoritmo produjo resultados tan buenos como los obtenidos con el algoritmo trainbfg pero en menor nmero de iteraciones y sin problemas de singularidad de la matriz Jacobiana en el proceso de aprendizaje. Para entrenar una red neuronal se bebe invertir cierta cantidad de tiempo en la eleccin del tipo de red, conjunto de patrones de entrenamiento, topologa de la red, proceso de entrenamiento; la inversin de esta cantidad de tiempo se ve recompensada cuando la red ha sido entrenada, pues la velocidad de la respuesta de la red es muy grande y la confiabilidad en las respuestas es muy alta Los sistemas de potencia poseen diferentes tpicos en los cuales se dificulta la solucin de las complejas ecuaciones que los describen, una red neuronal entrenada correctamente con abundante y representativa informacin puede controlar las condiciones de operacin de un sistema de potencia, con la precisin y acierto de un operador experto Utilizando redes neuronales se podran entrenar dispositivos inteligentes para lograr despacho econmico en mercado abierto y obtener flujos ptimos en el sistema de potencia sin necesidad de recurrir a resolver el sistema de ecuaciones no lineales que describen este de difcil solucin. 3.6 RECONFIGURACIN DE UN ALIMENTADOR PRIMARIO DE CATORCE NODOS 3.6.1 Descripcin del problema: En la figura 3.6.1 vemos el sistema de distribucin que ser analizado en este ejemplo, el sistema cuenta con tres alimentadores, 14 barras, 13 ramas del rbol y 3 ramas de enlace. Figura 3.6.1 Sistema de 14 nodos Cada uno de los nodos representa la carga concentrada como una inyeccin de potencia, o la divisin de diferentes ramas y/o ubicacin de un seccionador. Las ramas o lneas continuas interconectan los nodos, transportando la energa demandada y conformando as el rbol; para completar el sistema las lneas punteadas representan lneas desenergizadas formando el corbol. Cuando una rama del rbol se intercambia con una rama del corbol, conservando la estructura radial, la topologa del sistema cambia, y a esta maniobra se le llama reconfiguracin de la red de distribucin. Bajo condiciones de operacin normal la reconfiguracin es til para balancear cargas, evitando sobre corrientes en las lneas o sobrecargas en los transformadores, mejora los niveles de tensin y reduciendo las prdidas de potencia activa del sistema; ante aumentos de demanda, la reconfiguracin es una herramienta til en la planeacin y diseo de nuevas configuraciones ptimas. En este ejemplo el objetivo principal es utilizar la reconfiguracin como una herramienta para reduccin de prdidas, para ello es necesario correr un flujo de carga antes y despus de la maniobra, lo que nos permitir conocer los valores de las prdidas de potencia y comprobar as la eficiencia de la operacin. Las prdidas de potencia activa totales del sistema pueden calcularse como sigue: (3.6.1) Donde: Pa: Prdidas activas totales del sistema Pi: Flujo de potencia activa por la rama i Qi: Flujo de potencia reactiva por la rama i Vi: Magnitud del voltaje de recibo por la rama i n : Nmero de ramas del sistema El objetivo es encontrar una configuracin ptima del sistema de distribucin, es decir encontrar todas aquellas posibles configuraciones que con base en la figura 3.6.1 minimicen las prdidas; nuestra funcin objetivo (F.O) es entonces: (3.6.2) La reconfiguracin ptima debe cumplir con las siguientes restricciones: Conservar la topologa radial de la red sin que se presenten aislamientos del sistema S i-1 = Si + SLi (i=2,3,4...n) (3.6.3) Donde: Si-1 : Flujo de potencia que sale del nodo i -1 Si : Flujo de potencia que sale del nodo i SLi : Potencia de carga en el nodo i-simo n : Nmero de nodos del sistema No sobrepasar las restricciones de voltaje mnimo en la carga Vi Vi min (i=1,2,3...,n) (3.6.4) Donde: Vi : Voltaje en el nodo i Vi min : Voltaje mnimo permitido par el nodo i n : Nmero de nodos del sistema Cumplir con las especificaciones de carga mxima en los transformadores y de corriente mxima que circule por cada rama Si Si max (i= 1,2,3,...,m) (3.6.5) Donde: Si : Flujo de carga por la rama i, o potencia demandada para el transformador i Si max : Capacidad mxima de la rama i, o capacidad mxima del transformador i n : Nmero de ramas del alimentador o nmero de transformadores En el proceso de encontrar la configuracin ptima, pueden diferenciarse dos tcnicas, aquellas exhaustivas que estudian todas las combinaciones de estados del sistema, y otras que proporcionen una ruta heurstica que se acerque de manera rpida al estado objetivo. Una heurstica es una tcnica que aumenta la eficiencia de un proceso de bsqueda, en ocasiones pueden causar que una ruta sea pasada por alto, pero en promedio, mejoran la calidad de las rutas que exploran. Al usar buenas heursticas se esperan soluciones a problemas difciles, que aunque no siempre son las ptimas, podra decirse que son subptimas. Un gran nmero de las metodologas que se han utilizado para resolver el problema de la reconfiguracin de alimentadores primarios, se ha basado en tcnicas heursticas; de estos trabajos se destacan: Cinvalar [7], Baran M.E y Wu F.F [4], Goswami K.S y Basu S.K [20], Chen C.S y Cho M [6] y Gallego R.[18], metodologa que se emplear en esta aplicacin. En la figura 3.6.1, las lneas punteadas representan los enlaces del sistema para la configuracin inicial. Los datos de la estructura del sistema pueden verse en la tabla 3.6.1, cuyos valores base son: Vb=23Kv y Sb=100MVA, Nodo de Nodo de Resistencia Reactancia Demanda nodo de recibo Envo Recibo de rama (pu) De rama(pu) P(MW) Q(MVAR) 14 13 0.0075 0.1 2 1.6 13 12 0.08 0.11 3 1.5 13 11 0.09 0.18 2 0.8 11 10 0.04 0.04 1.5 1.2 14 9 0.11 0.11 4 2.7 9 8 0.08 0.11 5 3 9 7 0.11 0.11 1 0.9 8 6 0.11 0.11 0.6 0.1 8 5 0.08 0.11 4.5 2 14 4 0.11 0.11 1 0.9 4 3 0.09 0.12 1 0.7 4 2 0.08 0.11 1 0.9 2 1 0.04 0.04 2.1 1 12 6 0.04 0.04 7 3 0.04 0.04 10 1 0.09 0.12 Tabla 3.6.1 Estructura del sistema de catorce nodos Como no existen curvas de carga que simulen el comportamiento de este sistema, se supondr un agrupamiento segn perfiles de demanda de igual tendencia, de acuerdo con el procedimiento empleado por Baran M.E [4] Grupo Nodos que conforman el grupo Grupo #1 6-10-11-13 Grupo #2 4-8-9-12 Grupo #3 1-2-3-5-7 Tabla 3.6.2 Clasificacin de las cargas segn su tipo Cada grupo representa un perfil de demanda tpico, el grupo #1 Residencial, grupo #2 Comercial y grupo #3 Industrial. Para discretizar las curvas de carga en niveles, aunque estas no se conozcan se pueden utilizar una discretizacin por niveles representativos que son un porcentaje de la demanda pico, este criterio es utilizado principalmente por N.I SANTOSO y O.T TAN [39] quienes consideraron que los niveles de carga que deben tenerse en cuenta ocurren para el 50%, 70%, 85% y 100% de la demanda pico. Segn lo anterior para el nodo #1, las variaciones de la demanda a tenerse en cuenta son: Valor de la demanda al 100% 2.0MW+j1.6MVAR Valor de la demanda al 85% 1.7MW+j1.36MVAR Valor de la demanda al 70% 1.4MW+j1.12MVAR Valor de la demanda al 50% 1.0MW+j0.8MVAR Tabla 3.6.3 Niveles representativos de la demanda pico para el nodo #1 Por lo tanto para tres grupos de demanda, cada uno de ellos con cuatro niveles de carga, el nmero total de combinaciones de carga es 4 3 = 64, que sern los datos con los cuales se entrenar la red, este criterio de discretizacin puede verse ampliamente en FLOREZ O. y SALAZAR H [11], de donde se extrajo la siguiente tabla que ilustra las 64 combinaciones posibles: Combinacin Nivel grupo 1 Nivel grupo 2 Nivel grupo 3 Combinacin Nivel grupo 1 Nivel grupo 2 Nivel grupo 3 1 1,00 1,00 1,00 33 0,70 1,00 1,00 2 1,00 1,00 0,85 34 0,70 1,00 0,85 3 1,00 1,00 0,70 35 0,70 1,00 0,70 4 1,00 1,00 0,50 36 0,70 1,00 0,50 5 1,00 0,85 1,00 37 0,70 0,85 1,00 6 1,00 0,85 0,85 38 0,70 0,85 0,85 7 1,00 0,85 0,70 39 0,70 0,85 0,70 8 1,00 0,85 0,50 40 0,70 0,85 0,50 9 1,00 0,70 1,00 41 0,70 0,70 1,00 10 1,00 0,70 0,85 42 0,70 0,70 0,85 11 1,00 0,70 0,70 43 0,70 0,70 0,70 12 1,00 0,70 0,50 44 0,70 0,70 0,50 13 1,00 0,50 1,00 45 0,70 0,50 1,00 14 1,00 0,50 0,85 46 0,70 0,50 0,85 15 1,00 0,50 0,70 47 0,70 0,50 0,70 16 1,00 0,50 0,50 48 0,70 0,50 0,50 17 0,85 1,00 1,00 49 0,50 1,00 1,00 18 0,85 1,00 0,85 50 0,50 1,00 0,85 19 0,85 1,00 0,70 51 0,50 1,00 0,70 20 0,85 1,00 0,50 52 0,50 1,00 0,50 21 0,85 0,85 1,00 53 0,50 0,85 1,00 22 0,85 0,85 0,85 54 0,50 0,85 0,85 23 0,85 0,85 0,70 55 0,50 0,85 0,70 24 0,85 0,85 0,50 56 0,50 0,85 0,50 25 0,85 0,70 1,00 57 0,50 0,70 1,00 26 0,85 0,70 0,85 58 0,50 0,70 0,85 27 0,85 0,70 0,70 59 0,50 0,70 0,70 28 0,85 0,70 0,50 60 0,50 0,70 0,50 29 0,85 0,50 1,00 61 0,50 0,50 1,00 30 0,85 0,50 0,85 62 0,50 0,50 0,85 31 0,85 0,50 0,70 63 0,50 0,50 0,70 32 0,85 0,50 0,50 64 0,50 0,50 0,50 Tabla 3.6.4 Nmero total de combinaciones El procedimiento para determinar la topologa que disminuye las prdidas para los 64 datos de entrada es [11]: 1. Leer los datos del sistema original 2. Leer una fila de los niveles de carga, es decir una fila de la tabla 3.6.4 3. Multiplicar la demanda pico de cada barra, por el nivel correspondiente ledo en el numeral anterior. 4. Ejecutar el algoritmo de Gallego R [18], con los valores de carga establecidos en tres. 5. Ejecutar un flujo de carga radia, con la configuracin encontrada en cuatro para determinar la efectividad del reconfigurador. 6. Repetir los pasos anteriores para cada una de las 64 combinaciones Mediante este procedimiento se encontr que las dos topologas que garantizaban una disminucin en las prdidas de potencia activa son las ilustradas en la tabla 3.6.5: Nmero de Configuracin Ramas del Corbol 1 9 - 7 8 - 6 10 - 1 2 11 - 10 9 - 7 8 6 Tabla 3.6.5 Configuraciones ptimas despus de evaluar las 64 combinaciones Para formar el set de entrenamiento los niveles de carga para cada nodo se representan por un vector de cuatro elementos el cual tendr un uno en la posicin que corresponda al nivel de carga, por consiguiente el set de entrenamiento estar conformado por una matriz de 54 filas, las 52 primera corresponden los niveles de carga en forma binaria y los dos ltimos a la configuracin que disminuye las prdidas; cada columna es un patrn de entrenamiento. De esta forma las entradas a la red sern siempre 0 o 1, los patrones de entrenamiento de la red se presentan en la tabla 3.6.6 Tabla 3.6.6 Matriz de entrenamiento 3.6 RECONFIGURACIN DE UN ALIMENTADOR PRIMARIO DE CATORCE NODOS 3.6.2 Justificacin del tipo de red El objetivo es entrenar una red neuronal competitiva y ms explcitamente una red LVQ que para cada una de las 64 combinaciones generadas encuentre la mejor configuracin, esta configuracin consistir en una de las dos especificadas en la tabla 3.6.5. El entrenamiento de la primera capa de la red LVQ, la cual es una capa competitiva y por lo tanto de aprendizaje no supervisado, determinar las subclases dentro de las cuales se ubicar cada una de las combinaciones, estas subclases son cuatro (determinadas arbitrariamente). El entrenamiento de la segunda capa de la red LVQ, la cual es una capa lineal de aprendizaje supervisado, requiere conocer las clases en las cuales se ubicar cada una de las salidas de la primera capa, estas clases son las dos topologas encontradas en el set de entrenamiento. Un esquema general de la red que solucionar la aplicacin es: Figura 3.6.2 Esquema general de la red LVQ para reconfiguracin La funcin de transferencia compet retorna un vector de salida formado por ceros a excepcin de la neurona ganadora, aquella cuyos pesos estn ms cercanos al vector de entrada y que ocasiona una salida de uno, esto es, las neuronas de esta capa compiten por ser la subclase ganadora. El vector de salida de la segunda capa, el cual depende de la subclase ganadora de la primera capa, determina la configuracin ptima para cada patrn de entrada, de tal manera que si se obtiene un uno en la primera fila, la configuracin ptima ser la configuracin nmero uno correspondiente a las ramas de corbol 9-7, 8-6, 10 -1 y si el uno es obtenido en la segunda fila, la configuracin ptima corresponde al corbol 11-10, 9 -7, 8 6. La disposicin de las dos capas del algoritmo LVQ en notacin compacta es la que se muestra en la figura 3.6.2. Figura 3.6.3 Red LVQ La salida de la capa competitiva a1 determina una posible configuracin, la que red sospecha que es la configuracin indicada a travs del aprendizaje no supervisado, sin embargo la decisin de la mejor configuracin es determinada en la capa dos, mediante un aprendizaje supervisado. De esta forma la red LVQ ofrece una gran ventaja, puesto que en su primera capa la red tiene la libertad de determinar la "mejor" configuracin, la cual es corroborada por la segunda capa, esto presenta dos mejoras, primero, un menor tiempo computacional en su entrenamiento y segundo, ofrece la flexibilidad para que la red pueda generar sus propias representaciones (configuraciones) en la capa competitiva, la cual en el mejor de los casos puede ser una configuracin completamente desconocida. 3.6 RECONFIGURACIN DE UN ALIMENTADOR PRIMARIO DE CATORCE NODOS 3.6.3 Entrenamiento de la red El cdigo del algoritmo para esta aplicacin fue desarrollado en Matlab 5.3, por medio de comandos generales sin utilizar la herramienta de redes neuronales, esto con el fin de utilizar los datos de la tabla 3.6.5 sin transformaciones; es necesario aclarar que para el entrenamiento de la red se emplearon las funciones de transferencia adecuadas para una red tipo competitiva. Como datos de entrenamiento se tomaron 36 columnas de las 64 disponibles en la tabla 3.6.5, los valores restantes fueron escogidos como patrones de prueba para comprobar la capacidad de generalizacin de la red. Los datos iniciales de los pesos fueron generados aleatoriamente con valores entre 1 y 1, por medio de la funcin rands W1i=rands(52,36); dim=size(W1); cw=dim(2); Los valores de W2 (dos ltimas filas de la tabla 3.6.5) representan las clases a las que corresponden los vectores de entrada en el algoritmo LVQ; en este caso, cada una de ellas muestra la configuracin apropiada que debe adoptarse dependiendo de las condiciones impuestas por los datos de entrada. La rata de aprendizaje, se vari hasta encontrar un valor ptimo de 0.45 Alfa=0.45; Los comandos mediante los cuales se realiza la validacin y actualizacin de los pesos son los siguientes: for i=1:cw for j=1:cw n(j,1)=-norm(W1(:,j)-p(:,i)); end a1=compet(n); a2=W2*a1; e(:,i)=a2-W2(:,i); if e(:,i)==0 W1(:,i)=W1(:,i)+alfa*(p(:,i)-W1(:,i)); else l=find(a1); W1(:,l)=W1(:,l)-alfa*(p(:,i)-W1(:,l)); end end Despus de ejecutar este algoritmo para seis iteraciones la red alcanz convergencia, obteniendo los siguientes valores para la matriz de pesos de la capa competitiva: W1=net.IW{1,1} 1 2 3 4 ..... 48 49 50 51 52 N1 1,1229 0,8898 1,1379 1,052 ..... 0,0232 -0,111 0,0271 -0,0448 0,0603 N2 -0,0713 0,0111 -0,353 -0,2442 ..... -0,0773 -0,1375 -0,2203 0,0168 -0,0654 N3 -0,1078 -0,1675 -0,0779 -0,1233 ..... 0,9166 -0,0185 0,0619 0,9126 -0,0326 N4 -0,0037 0,0525 0,1002 0,0298 ..... -0,0532 0,9624 1,0164 -0,0679 0,9667 Tabla 3.6.7 Pesos de la capa competitiva Los pesos para la segunda capa se visualizan en la tabla 3.6.7, los cuales como se esperaba, corresponden a la salida deseada de la red. W2=net.LW{2,1} 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 N1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 N2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 N1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 N2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Tabla 3.6.8 Pesos de la capa lineal El algoritmo LVQ no tiene ganancias, aun as la red alcanza un eficiente desempeo clasificando correctamente todos los patrones, es decir encontrando la configuracin ms adecuada para cada una de las condiciones del sistema, esta evaluacin del desempeo de la red se hace con base en los flujos de carga ejecutados para las diferentes combinaciones y comparndolo con la configuracin ptima determinada por la red, ya que al ser ste tipo de red un hbrido entre aprendizaje supervisado y competitivo no es posible determinar un error en su entrenamiento, pues el vector de salida para la primera capa no est especificado. Esta red tiene grandes ventajas con respecto a otras que podran tambin realizar esta aplicacin, una de ellas es el tiempo de computo, el cual es ms corto para una red LVQ, comparado con el tiempo que invierte por ejemplo una Backpropagation en alcanzar convergencia para el mismo nmero de patrones de entrenamiento [11]. Otra importante caracterstica es la configuracin de la red, pues el nmero de neuronas de cada una de las dos capas queda determinado por las mismas condiciones del problema. Adems su capacidad de generalizacin no se ve afectada por la cantidad de patrones de entrada a la red. 3.7 IDENTIFICACION DE UN SISTEMA NO LINEAL 3.7.1 Descripcin del Problema: La identificacin de un sistema consiste en determinar una funcin que relacione las variables de entrada con las variables de salida, esta identificacin tradicionalmente se hace a travs de tcnicas de regresin y con un conocimiento previo de la naturaleza del sistema. Clsicamente el comportamiento de un sistema se describe a travs de sus ecuaciones de estado, las cuales son un conjunto de ecuaciones diferenciales no lineales de primer orden, donde el objetivo es encontrar las funciones f y g mostradas en las siguientes ecuaciones: (3.7.1) (3.7.2) En la identificacin de un sistema pueden conocerse previamente el orden del sistema y desconocer de forma precisa sus parmetros o desconocer totalmente el orden del sistema y sus parmetros; la identificacin de un sistema mediante redes neuronales no pretende encontrar las funciones f y g, sino un mapa de la relacin entrada - salida con base a los patrones con que fue entrenada. El sistema que se quiere identificar es el pndulo invertido propuesto por Kuschewski et al. (1993), mostrado en la figura 3.7.1 Figura 3.7.1 Pndulo Invertido Las ecuaciones diferenciales no lineales que describen el comportamiento del sistema son: (3.7.3) (3.7.4) (3.7.5) (3.7.6) Km: Constante de Torque del motor = 0.1NM/A Kb: Constante de Fuerza Contra electromotriz = 0.1Vs/rad Nt: Relacin de Transformacin entre los piones = 10 g = 9.8 m/s 2 l = 1m m = 1 kg Ra = 1 La = 1 mH Con estos parmetros, las ecuaciones de estado que representan el comportamiento del Pndulo Invertido estn dadas por: (3.7.7) (3.7.8) Las variables de estado del sistema son: , , (3.7.9) 3.7 IDENTIFICACION DE UN SISTEMA NO LINEAL 3.7.2 Justificacin del tipo de red: Segn lo demostrado en la seccin 2.6.1 del captulo 2, una red neuronal dinmica recurrente puede identificar el comportamiento de un sistema dinmico descrito por ecuaciones diferenciales no lineales si se tiene abundante y representativa informacin de sus datos de entrada y salida. Segn lo demostrado en la seccin 2.6.2 un sistema dinmico autnomo (u=0) puede ser identificado una red dinmica multicapa, utilizando en la capa esttica un algoritmo tipo backpropagation. 3.7.3 Entrenamiento de la red 3.7.3.1 Identificacin del Sistema Autnomo (u=0) utilizando una red dinmica multicapa: Se identificara la dinmica del pndulo invertido autnomo considerando nulo el voltaje aplicado. Figura 3.7.2 Red multicapa Para encontrar los pesos tij y wij de la red recurrente multicapa, se entrenara la capa esttica con un algoritmo de propagacin inversa y luego se implementara la red de la figura 3.7.2 para identificar plenamente la dinmica del sistema autnomo. El set de entrenamiento se gener con variaciones en el ngulo, la velocidad, la corriente y todas sus posibles combinaciones en los siguientes rangos: Valor Inicial Valor Final Incremento Conversin Ang -30 30 12 pi/180 Vel -115 46 115 pi/180 u 0 8 1.6 - Tabla 3.7.1 Rangos del set de entrenamiento Los patrones de entrenamiento esperados se calculan como el valor actual del patrn de entrada ms el valor de cada una de sus derivadas como se explic en la seccin 2.6.2, el valor de las derivadas de las variables de estado se obtiene al evaluar su valor actual en el conjunto de ecuaciones que describe el comportamiento de la planta. P P1 P2 P42 P144 P145 P180 P216 Z1 -0.5236 -0.3142 .... 0.5236 .... 0.5236 -0.5236 .... 0.5236 .... 0.5236 Z2 -2.0071 -2.0071 .... -2.0071 .... 2.0071 -2.0071 .... 2.0071 .... 2.0071 Z3 0.0000 0.0000 .... 1.6000 .... 4.8000 6.4000 .... 6.4000 .... 8.0000 t t1 t2 t42 t144 t145 t180 t216 Z1+dZ1 -2.5307 -2.3213 ... -1.4835 ... 2.5307 -2.5307 ... 2.5307 ... 2.5307 Z2+dZ2 2.8929 1.0212 ... -5.3071 ... 1.9071 9.2929 ... 3.5071 ... 5.1071 Z3+dZ3 20.0713 20.0713 ... 5.6713 ... - 63.2713 - 37.5287 ... - 77.6713 ... - 92.0713 Tabla 3.7.2 Patrones de entrenamiento Para la capa esttica tipo backpropagation los pesos iniciales son: W1i=net.IW{1,1} Z1 Z2 Z3 N1 2.4024 -1.0466 -0.0833 N2 -2.3909 0.2432 -0.4966 N3 2.6014 0.2716 -0.4746 N4 2.2506 -0.6173 -0.4285 N5 -2.7268 0.1526 -0.4748 W2i=net.LW{2,1} N1 N2 N3 N4 N5 Z1 -0.2321 -0.9293 -0.9685 0.1738 0.2629 Z2 0.3662 0.2248 -0.9673 -0.8848 0.4353 Z3 -0.8143 0.2171 -0.6199 -0.2649 0.3853 Tabla 3.7.3 Valores iniciales de los Parmetros de la Capa Esttica El siguiente cdigo crea una red de 3 entradas, 5 neuronas en la capa oculta y 3 salidas y la entrena con el algoritmo trainlm (Ver Anexo A): net=newff(minmax(P),[5 3],{tansig purelin},trainlm); net.trainParam.epochs=1000; net.trainParam.goal=1e-06; net.trainParam.lr=0.03 net.trainParam.mem_reduc=1 [net,tr]=train(net,P,t); Luego de 500 iteraciones el error medio cuadrtico cae por debajo de 1x10 -6 , los valores de los parmetros de la red luego del proceso de entrenamiento se muestran en la tabla 3.7.2 tij=W1f=net.IW{1,1} Z1 Z2 Z3 N1 0.7305 0.0000 0.0000 N2 0.0002 0.0211 0.0188 N3 -0.0003 -0.0212 -0.0189 N4 -0.0003 -0.0287 -0.0256 N5 -0.0078 -0.0074 0.0004 wij=W2i=net.LW{2,1} N1 N2 N3 N4 N5 Z1 -0.0004 10.1756 7.9010 -1.1967 - 127.9416 Z2 -13.2698 16.1031 -28.6495 -24.1701 15.6964 Z3 0.0000 -217.4789 187.7513 218.6130 -13.3227 Tabla 3.7.4 Valores finales de los Parmetros de la Capa Esttica Segn lo demostrado en la seccin 2.6.2, el Jacobiano de la red multicapa en el origen se calcula como: (3.7.10) Reemplazando en la ecuacin 3.7.10, los valores de la tabla 3.7.4 el Jacobiano de la red multicapa es como se sigue: JM 0.0002 10.260 0.0231 -9.7995 0.5254 1.4680 -0.0490 -14.7521 -14.2328 Tabla 3.7.5 Jacobiano de la Red Multicapa Para una identificacin exitosa los valores propios del Jacobiano de la red multicapa mostrado en la tabla 3.7.5 deben ser muy prximos a los valores propios del sistema descritos en la ecuacin 3.7.10 (3.7.11) Los valores propios del sistema son calculados del sistema de ecuaciones 3.7.7 (3.7.12) Como se observa, los valores del Jacobiano de la red multicapa se encuentran prximos a los del sistema, por lo tanto la red a identificado el sistema correctamente, ntese adems que todos los valores propios tanto de la red como del sistema se encuentran en el semiplano complejo izquierdo haciendo que el sistema y la red neuronal sean estables. Segn lo demostrado en la seccin 2.6.2, una red dinmica multicapa puede ser transformada en una red dinmica tipo Hopfield por medio de la siguiente transformacin: (3.7.13) Tomando los valores de los parmetros de la red multicapa y reemplazndolos en la ecuacin 3.7.13 se obtiene la matriz de pesos de la red dinmica de Hopfield equivalente a la red dinmica recurrente, la matriz de pesos de la red de Hopfield se muestra en la tabla 3.7.6 Matriz de Pesos Red de Hopfield = TW -0.0003 7.4337 5.7721 -0.8742 -93.4671 -0.2803 -3.7494 2.9285 3.6020 0.0568 0.2810 3.7589 -2.9370 -3.6117 -0.0488 0.3813 5.0998 -3.9839 -4.8997 -0.0721 0.0979 -0.2832 0.2229 0.2730 0.8793 Tabla 3.7.6 Matriz de pesos Red de Hopfield equivalente El Jacobiano de la red de Hopfield segn lo demostrado en la seccin 2.6.2 se calculan como: (3.7.14) y tiene los siguientes valores propios: (3.7.15) Ntese que los tres primeros valores propios de la ecuacin 3.7.15 coinciden con los valores propios de la ecuacin 3.7.12, y estos a su vez se encuentran muy prximos a los valores propios del sistema, los valores propios adicionales de la ecuacin 3.7.15 corresponden a los estados adicionales que se agregaron para una adecuada identificacin del sistema. Para comprobar la efectividad de la aproximacin, en la figura 3.7.3 se muestra la comparacin de la respuesta de las variables de estado del sistema con la respuesta de la red neuronal multicapa; como la identificacin que se realizo fue del sistema autnomo (u=0), para la simulacin se requieren condiciones iniciales en las variables de estado del sistema y en las variables de estado estimadas de la res multicapa, los valores iniciales para la simulacin fueron: X1 0 =0.2, X2 0 =-0.3, X3 0 =0. Figura 3.7.3 Respuesta del sistema Vs Red Multicapa La lnea azul representa la respuesta del sistema y la lnea roja muestra la respuesta de la red dinmica multicapa, en la grfica de la izquierda se grfica cada variable de estado en funcin del tiempo y en la grfica de la derecha se tienen los planos de fase descritos por las tres variables de estado, de la grfica 3.7.3 se observa, que se obtuvo una muy buena aproximacin del sistema autnomo y de la ecuacin 3.7.11 se tiene una buena aproximacin de los valores propios del sistema. 3.7.3 Entrenamiento de la red 3.7.3.2 Identificacin de la dinmica del Sistema: Se entrenara una red recurrente segn el procedimiento descrito en el tutorial del Matlab versin 5.3 [34], esta red tiene como entradas el ngulo, la velocidad, la corriente de armadura y el voltaje aplicado, para identificar Figura 3.7.4 Capa Esttica Red Recurrente De la figura 3.7.4, se puede observar que la red recurrente posee una capa backpropagation, para la cual el set de entrenamiento fue generado con variaciones en el ngulo, la velocidad, la corriente y todas sus posibles combinaciones Valor Inicial Valor Final Incremento Conversin Ang -30 30 15 pi/180 Vel -115 55 115 pi/180 ia 0 8 2 - u -6 3 6 - Tabla 3.7.7 Datos de entrenamiento Adicionalmente se incluyen en el set de entrenamiento datos de posiciones iniciales con velocidad y corriente igual a cero Valor Inicial Valor Final Incremento Conversin Ang -30 30 6 pi/180 Vel 0 0 0 - ia 0 0 0 - u 0 0 0 - Tabla 3.7.8 Datos adicionales de entrenamiento Todos los patrones de entrenamiento se evaluaron en el conjunto de ecuaciones que describen el comportamiento del sistema, las ecuaciones diferenciales no lineales fueron resueltas en cada caso para un tiempo tstep=0.05s, la salida esperada para cada patrn de entrada es el vector solucin X menos el valor de Xo utilizado como condicin inicial. tstep=0.05; t=zeros(3,length(P)); for i=1:length(P) [time,X]=ode45(modelo,[0 tstep],P(:,i)); t(:,i)=X(length(X),1:3)-P(1:3,i); end P P1 P2 P72 P144 P145 P340 P636 X1 0 -0.5236 -0.2618 .... -0.2618 .... 0.2618 0.5236 .... 0.5236 .... 0.5236 X2 0 -2.0071 -2.0071 .... 1.8326 .... 0.8727 0.8727 .... -0.0873 .... 0.0000 X3 0 0.0000 0.0000 .... 4.0000 .... 0.0000 0.0000 .... 6.0000 .... 0.0000 U -6.0000 -6.0000 .... -6.0000 .... -3.0000 -3.0000 .... 0.0000 .... 0.0000 T t1 t2 t72 t144 t145 t340 t636 X1-X1 0 -0.0946 -0.0975 ... 0.0972 ... 0.0396 0.0367 ... -0.0041 ... -0.0061 X2-X2 0 0.2217 0.1069 ... 0.1770 ... -0.1772 -0.2935 ... -0.0072 ... -0.2432 X3-X3 0 -1.6197 -1.5950 ... -4.7026 ... -1.4890 -1.4641 ... -2.3287 ... 0.0520 Tabla 3.7.9 Patrones de entrenamiento P y patrones esperados t La red fue entrenada con el algoritmo backpropagation trainlm con los siguientes pesos iniciales: W1i=net.IW{1,1} b1i=net.b{1} I1 I2 I3 I4 N1 4.3432 0.1214 -0.1408 -0.0044 N1 -1.7807 N2 1.8875 0.1985 -0.2226 0.3175 N2 -0.7742 N3 1.7496 0.7324 -0.3268 0.1682 N3 0.3622 N4 3.6430 -0.1749 -0.3306 0.0347 N4 0.9709 N5 2.6789 0.6421 0.0647 0.2351 N5 0.1337 N6 -2.4939 -0.5881 0.3700 0.1018 N6 -2.5404 N7 -1.4134 -0.1684 -0.4461 0.2178 N7 0.0877 N8 -1.7871 0.1220 0.0541 -0.3562 N8 -2.5602 W2i=net.LW{2,1} N1 N2 N3 N4 N5 N6 N7 N8 S1 -0.5745 -0.8180 -0.1714 0.8758 -0.3649 -0.6993 -0.2245 0.1744 S2 0.4294 -0.4508 -0.9462 -0.5202 0.7740 0.3627 -0.0005 0.6912 S3 -0.7391 -0.9940 0.4196 -0.6382 0.3041 -0.2284 -0.7049 0.1802 b2f=net.b{2} S1 0.9108 S2 0.1123 S3 -0.7037 Tabla 3.7.10 Pesos iniciales red recurrente El siguiente cdigo entrena la red backpropagation de 4 entradas, 8 neuronas en la capa oculta y 3 salidas con el algoritmo de entrenamiento trainlm. net=newff(minmax(P),[8 3],{tansig purelin},trainlm); net.trainParam.epochs=700; net.trainParam.goal=1e-8; net.trainParam.lr=0.03; net.trainParam.mem_reduc=1; net.trainParam.min_grad=1e-10; [net,tr]=train(net,P,t); Figura 3.7.5 Error medio cuadrtico utilizando trainlm Despus de 435 iteraciones de entrenamiento, el error medio cuadrtico cay por debajo de 1x10 -8 , los pesos y ganancias de la red entrenada son: W1f=net.IW{1,1} b1f=net.b{1} I1 I2 I3 I4 N1 -0.0043 0.0241 0.0298 -0.0246 N1 0.5084 N2 0.7562 0.0193 0.0003 0.0001 N2 0.0001 N3 0.0139 0.0040 -0.0005 -0.0173 N3 -0.0546 N4 5.3898 -0.9620 0.1449 0.0234 N4 2.5040 N5 0.0007 0.0333 -0.0006 -0.0002 N5 0.0052 N6 -0.2605 -0.0725 0.0168 0.2906 N6 -1.8745 N7 -3.5076 -0.4256 -1.7086 0.0763 N7 0.2389 N8 -0.0047 0.0266 0.0329 -0.0272 N8 -0.8470 W2f=net.LW{2,1} N1 N2 N3 N4 N5 N6 N7 N8 S1 0.0516 -0.0148 -0.1203 0.00001 1.4688 0.0002 0.00000 0.0425 S2 0.9975 -0.5914 -2.3910 0.00000 -0.9662 0.0033 -0.00001 0.8211 S3 -10.8348 0.1225 -3.2830 -0.00005 -1.5610 0.0045 0.00003 -8.8873 b2f=net.b{2} S1 -0.0089 S2 -0.0235 S3 -1.2166 Tabla 3.7.10 Pesos finales de la red recurrente Para comprobar si la red neuronal recurrente identifica correctamente la dinmica de la planta, esta fue simulada con los pesos finales anteriormente encontrados utilizando el siguiente algoritmo, con condiciones iniciales mostradas de las variables de estado X1 (ngulo) = -8, X2 (velocidad) = 0 /s, X3 (corriente de armadura) = 0 A, y u (voltaje)= 1 V, estos valores estn contenidos en Xo Xo=[-8*pi/180; 0; 0]; u=1; tstep=0.05; times=0:tstep:10; estado=Xo; estados=zeros(3,length(times)); estados(:,1)=estado; for i=2:length(times) estado=estado+sim(net,[estado;u]); estados(:,i)=estado; end Para obtener la respuesta de la red en el tiempo deseado, esta debe ser simulada en intervalos de tiempo iguales al tiempo para el cual fueron resueltas las ecuaciones del set de entrenamiento, en este caso las ecuaciones fueron resueltas para un tiempo tstep=0.05s, por lo tanto para obtener la respuesta de la red en un tiempo total de 10s, debe simularse 201 veces en intervalos de 0.05s. Figura 3.7.6 Comparacin de la respuesta del sistema y la RN La lnea continua azul representa la respuesta del sistema simulado y las cruces rojas representan las simulaciones de la red neuronal entrenada, como se observa la red neuronal ha identificado la dinmica de la red perfectamente, en la siguiente grfica puede observarse que los planos de fase descritos por la planta y por la red neuronal coinciden exactamente. Figura 3.7.7 Comparacin de los planos de fase Como se observa en la figura 3.7.7, cuando la misma red neuronal es simulada en intervalos de tiempo distintos al tiempo para el cual fueron solucionadas las ecuaciones que generaron el set de entrenamiento, la red produce las mismas respuestas que la planta en estado estacionario, pero en el estado transitorio la forma de la respuesta es similar pero en el caso de un intervalo de simulacin menor tstep=0.3 la red neuronal responde mas rpido que la planta y en el caso de un intervalo de simulacin mayor tstep=0.10 la red neuronal responde mas lento que la planta, para una identificacin optima de la planta tanto en estado estacionario como en estado el intervalo de simulacin debe ser igual a tiempo de solucin de las ecuaciones que generaron los patrones de entrenamiento. Figura 3.7.8 Red neuronal con diferentes tiempos de simulacin DESCRIPCIN DE LAS FUNCIONES UTILIZADAS EN MATLAB 1. Red tipo Perceptrn: Las siguientes son las herramientas de redes neuronales del Matlab 5.3: utilizadas en el entrenamiento de las redes neuronales correspondientes a las aplicaciones del proceso de deteccin de obstculos de un robot y Control de cambio de giro de un motor trifsico. newp: Crea una red tipo Perceptrn, que requiere las siguientes entradas: NET = NEWP(PR,S,TF,LF) PR : Rx2 matriz de valores mximos y mnimos para los R elementos de entrada. S : Nmero de neuronas. TF : Funcin de Transferencia, en este caso hardlims. LF : Funcin de aprendizaje, para este caso learnp. rands: Funcin simtrica que inicializa aleatoriamente los valores de pesos y ganancias de una red con valores entre -1 y 1; requiere de la estructura rands(S,PR), generando una matriz de dimensiones S x PR. adapt: Permite a una red neuronal adaptarse a los patrones de entrada, esta funcin tiene la siguiente sintaxis: [net,Y,E,Pf,Af] = adapt(NET,P,T,Pi,Ai) net : Red que va a crearse P : Entradas a la red; deben aparecer en forma de un arreglo de matrices. T : Salidas esperadas de la red, si no se especifican son ceros por defecto. Pi : Condiciones de retardo para la entrada inicial, por defecto son ceros. Ai : Condiciones de retardo para la capa inicial, por defecto ceros net.adaptParam.passes: Nmero de iteraciones que utiliza el programa. 2. Red tipo Adaline: Las siguientes son las funciones de las herramientas de Redes Neuronales del Matlab utilizadas en el entrenamiento del filtro adaptivo diseado con base en una red Adaline. newlin: Funcin para crea una red tipo Adaline, que requiere las siguientes entradas: NEWLIN(PR,S,ID,LR) R: Matriz de Rx2 que contiene los valores mximos y mnimos de cada uno de los R elementos de entrada. S : Nmero de neuronas ID : Arreglo que contiene los valores de los retardos, por defecto todos sus valores son cero. LR : Rata de aprendizaje, por defecto = 0.01 net.inputWeights{1,1}.delays: Especifica los retardos iniciales net.adaptParam.passes: Nmero mximo de iteraciones [net,y,E,pf,af]=adapt(net,p,T,pi): Comando de entrenamiento de la red; requiere como entradas la red creada anteriormente, los patrones de entrada, las salidas esperadas y los retardos iniciales, retorna el estado final de la red, los valores obtenidos para cada patrn de entrada con sus correspondientes errores as como los valores finales de los retardos. 3. Red tipo Backpropagation: La red neuronal Backpropagation presenta una gran variedad de opciones de configuracin, dependiendo de la necesidad de aprendizaje y de la aplicacin que se este desarrollando. newff: Crea una red tipo Backpropagation, requiere que le sean especificados los siguientes parmetros newff: (PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) PR : Rx2 Matriz de valores mximos y mnimos de cada uno de las R neuronas de entrada. Si : Nmero de neuronas para cada una de las capas. TFi : Funcin de transferencia a utilizar en cada una de las capas, por defecto utiliza tansig BTF : Algoritmo de entrenamiento a utilizar, por defecto utiliza trainlm BLF : Funcin de actualizacin de los pesos, por defecto utiliza learngdm. PF : Funcin para evaluar el desempeo de la red, por defecto utiliza mse. Los siguientes fueron los algoritmos de entrenamiento que se utilizaron en el ejemplo de control de voltaje por inyeccin de reactivos en una barra remota y en la aplicacin de prediccin de consumo de carga durante sus respectivos procesos de aprendizaje hasta que se encontr uno que brindara un aprendizaje ptimo, para cada uno de ellos utilizando la red Backpropagation: 3.1 Traingd: Algoritmo de pasos descendientes, que actualiza pesos y ganancias varindolos en la direccin negativa del gradiente de la funcin del error. Es un algoritmo de aprendizaje muy lento, que requiere de la siguiente sintaxis: net.trainParam.epochs: Mximo nmero de iteraciones para obtener convergencia net.trainParam.goal: Error mximo permitido net.trainParam.lr: Rata de aprendizaje net.trainParam.max_fail: Mximo nmero de fallas net.trainParam.min_grad: Mnimo rendimiento del gradiente net.trainParam.show: Intervalo de visualizacin de los resultados net.trainParam.time: Mximo tiempo de entrenamiento en segundos Con este algoritmo el aprendizaje de la red se detendr si el nmero de iteraciones excede el comando net.trainParam.epochs, si se alcanz el valor del error propuesto como meta, si la magnitud del gradiente es menor que net.trainParam.min_grad, o si el tiempo d entrenamiento supera el valor de net.trainParam.time. 3.2 Traingdm: Equivale al algoritmo tradicional, ms un nuevo coeficiente de momentum, que interviene en el proceso de actualizacin de los pesos. Si el error de la red en una iteracin dada, excede el valor del error en la iteracin anterior, en un valor mayor al definido por un radio de cobertura dado el que puede determinarse por medio de la funcin max_perf_inc y que est tpicamente alrededor de 1.04, los nuevos pesos y ganancias son descartados y el coeficiente de momentum mc es fijado en cero. La sintaxis de este algoritmo es igual a la utilizada para el algoritmo traingd, ms un nuevo comando que permite modificar el coeficiente de momentum net.trainParam.mc: Valor fijado para el coeficiente de momentum 3.2 Traingda: Algoritmo de Gradiente Descendiente, que emplea una rata de aprendizaje adaptiva durante el proceso de entrenamiento. La rata de aprendizaje vara entre 0.01 y 1, una rata de aprendizaje muy pequea torna lento el aprendizaje, pero si se incrementa demasiado el aprendizaje puede tornarse inestable y crear divergencia, por esto la funcin traingda vara la rata de aprendizaje tratando de sacar provecho de la inclinacin del gradiente en cada momento; su gran desventaja es que los pesos iniciales varan muy poco as se encuentren distantes de los valores de convergencia. La sintaxis de este el algoritmo es la siguiente: net.trainParam.epochs: Mximo nmero de iteraciones para obtener convergencia net.trainParam.goal: Error mximo permitido net.trainParam.lr: Rata de aprendizaje inicial net.trainParam.lr_inc: Porcentaje que incrementa la rata de aprendizaje cuando el error disminuye net.trainParam.lr_dec: Porcentaje en que es decrementada la rata de aprendizaje cuando el error aumenta net.trainParam.max_fail: Mximo nmero de fallas net.trainParam.max_perf_inc: Mximo incremento del rendimiento net.trainParam.min_grad: Mnimo rendimiento del gradiente net.trainParam.show: Los resultados son visualizados siempre que transcurre este nmero de iteraciones. net.trainParam.time: Mximo tiempo de entrenamiento en segundos 3.3 Trainrp: Las redes multicapa, utilizan tpicamente una funcin de transferencia sigmoidal (ver captulo 1) en las capas ocultas, estas funciones comprimen un infinito rango de entradas, dentro de un finito rango de salidas, adems se caracterizan porque su pendiente tendera cada vez ms a cero, mientras ms grande sea la entrada que se le presenta a la red, esto ocasiona problemas cuando se usa un algoritmo de entrenamiento de pasos descendientes, porque el gradiente empieza a tomar valores muy pequeos y por lo tanto no habrn cambios representativos en los pesos y las ganancias, as se encuentren bastante lejos de sus valores ptimos. El propsito del algoritmo Backpropagation Resileint (RPROP) es eliminar este efecto en la magnitud de las derivadas parciales. En este algoritmo solamente el signo de la derivada es utilizado para determinar la direccin de actualizacin de los parmetros, la magnitud de las derivadas no tiene efecto en la actualizacin. La magnitud en el cambio de cada peso es determinada por separado; el valor del incremento de pesos y ganancias es determinado por el factor delt_inc, as la derivada parcial del error con respecto a los pesos tenga el mismo signo durante dos iteraciones sucesivas; el valor de decremento est determinado por el factor delt_dec as la derivada del error con respecto a los pesos haya cambiado de signo con respecto a la anterior iteracin; si la derivada es cero, entonces el valor actualizado se conserva; si los pesos continan cambiando en la misma direccin durante varias iteraciones, la magnitud de cambios de los pesos se decrementa. La sintaxis de este algoritmo se resume a continuacin: net.trainParam.epochs: Mximo nmero de iteraciones del entrenamiento net.trainParam.show: Intervalo de visualizacin de los resultados net.trainParam.goal: Error deseado net.trainParam.time=inf: Mximo tiempo de entrenamiento en segundos net.trainParam.min_grad: Mnimo rendimiento del gradiente net.trainParam.max_fail: Mximo nmero de fallas net.trainParam.lr: Rata de aprendizaje net.trainParam.delt_inc: Incremento en la actualizacin de pesos net.trainParam.delt_dec: Decremento en la actualizacin de pesos net.trainParam.delta0: Incremento inicial en la actualizacin de pesos net.trainParam.deltamax: Mximo cambio en los pesos 3.4 Trainbfg: Algoritmo alternativo que emplea la tcnica del gradiente conjugado, su expresin matemtica se deriva del mtodo de Newton, con la ventaja de que no es necesario computar las segundas derivadas; este algoritmo requiere mas capacidad de almacenamiento que el algoritmo tradional, pero generalmente converge en menos iteraciones. Requiere de un clculo aproximado de la matriz Hessiana, la cual es de dimensiones n 2 x n 2 , donde n la cantidad de pesos y ganancias de la red; para redes que involucren una gran cantidad de parmetros es preferible emplear el algoritmo trainrp. net.trainParam.epochs: Mximo nmero de iteraciones del entrenamiento net.trainParam.show: Nmero de iteraciones entre las cuales se muestran resultados net.trainParam.goal: Error deseado net.trainParam.time=inf: Mximo tiempo de entrenamiento en segundos net.trainParam.min_grad: Mnimo rendimiento del gradiente net.trainParam.max_fail=5: Mximo nmero de fallas net.trainParam.searchFcn srchcha Nombre de la rutina de bsqueda lineal a utilizar. net.trainParam.scal_tol: Se divide entre el valor de Delta para determinar la tolerancia para la bsqueda lineal. net.trainParam.alpha: Factor de escala que determina una reduccin suficiente en el desempeo. net.trainParam.beta: Factor de escala que determina un tamao de paso suficientemente grande. net.trainParam.delta: Tamao de paso inicial en el intervalo de localizacin de paso. net.trainParam.gama: Parmetro para evitar pequeas reducciones en el desempeo. net.trainParam.low_lim: Lmite inferior en el cambio del tamao del paso. net.trainParam.up_lim: Lmite superior en el cambio del tamao del paso. net.trainParam.maxstep: Mximo longitud de paso. net.trainParam.minstep: Mnima longitud de paso; por defecto es 1.0e-6 net.trainParam.bmax: Mximo tamao de paso. 3.5 Trainlm: Algoritmo que actualiza los pesos y las ganancias de acuerdo a la optimizacin de Levenberg-Marquardt. Es el algoritmo ms rpido para redes Backpropagation; tiene la desventaja de requerir de un set de entrenamiento lo ms estndar posible, pues de otra forma solo aproximar correctamente valores que se encuentren dentro de los patrones de aprendizaje. Si el set de entrenamiento es muy extenso, se recomienda reducir el Jacobiano. La sintaxis de este algoritmo es la siguiente: net.trainParam.epochs: Mximo nmero de iteraciones del entrenamiento net.trainParam.goal: Error deseado net.trainParam.lr: Rata de aprendizaje net.trainParam.max_fail: Mximo nmero de veces que falla el valor de Mu net.trainParam.mem_reducFactor de fraccionamiento de Jacobiano para ahorrar memoria net.trainParam.min_grad: Mnimo rendimiento del gradiente net.trainParam.show:Intervalo de visualizacin de los resultados. net.trainParam.time: Mximo tiempo de entrenamiento en segundos tr.mu: Valor del Mu adaptivo Algunos Enlaces Interesantes... Los siguientes son algunos enlaces interesantes en el contexto del desarrollo de las redes neuronaeles Tutorial de Redes Neuronales desarrollado en la Universidad Politcnica de Madrid UPM (Espaa), bajo la direccin del Dr. Diego Andina de la Fuente Contiene una explicacin de los distintos tipos de redes segun su forma de aprendizaje y permite descargar un simulador para entrenar una red tipo backpropagation http://www.gc.ssr.upm.es/inves/neural/ann2/anntutor.htm Applets en Java que permiten de forma interactiva entrenar una Red Neuronal Artificial, una Red tipo Perceptron de una sola y bvarias capas; el codigo fuente es abierto con fines academicos Proyecto de grado de Fred Corbett de la universidad de Manitoba, Canada http://home.cc.umanitoba.ca/~umcorbe9/mlp.html Aplicacin en Java de una Red Neuronal para aproximar distintas funciones http://neuron.eng.wayne.edu/bpFunctionApprox/bpFunctionApprox.html Visin Artificial y Visin Humana, aplicacin a la percepcin Visual en Robotica Grupo de investigacion dirigido por el profesor Luis Jaez Esacaladas http://sirio.psi.ucm.es/PROYECTOS/VISIONROBOT/vavh.html Redes Neuronales aplicadas al reconocimiento de voz. Proyecto desarrollado por Jos Mara Garcia Jimnez en Madrid, Espaa http://electronica.com.mx/neural/aplicaciones/index.html Pagina de la Universidad de Chile contiene manual sobre el Snns http://cipres.cec.uchile.cl/~em753/ Tutorial con teoria detallada http://www.paisvirtual.com/informatica/navegadores/toniomos/rn/temas- rn.htm Redes de Resonancia Adaptiva (ART), arquitectura, entrenamiento y aplicaciones de esta redProyectos finales curso Redes Neuronales, Universidad del Valle, Colombia http://maxwell.univalle.edu.co/proyectos/rna/ART1/ http://maxwell.univalle.edu.co/proyectos/rna/ART2/ http://maxwell.univalle.edu.co/proyectos/rna/ART4/ Sistemas NeurodifusosProyectos finales curso Redes Neuronales y Logica Difusa, Universidad del Valle, Colombia http://maxwell.univalle.edu.co/proyectos/rna/neurofuzzy1/ http://maxwell.univalle.edu.co/proyectos/rna/neurofuzzy2/ Introduccin a las Redes Neuronales Artificiales. Desarrollado por Alfredo Catalina Gallegohttp://www.gui.uva.es/login/13/redesn.html Control de procesos mediante Redes NeuronalesPresentado por Cristina Garrido de la Universidad de Concepcin paraoptar al ttulo de Ingeniero Civil Qumicohttp://www.diq.udec.cl/~cgarrido/ http://melquiades.diq.udec.cl/~cgarrido/ Tutorial Redes Neuronales contiene Teoria General l http://www.gc.ssr.upm.es/inves/neural/ann2/anntutorial.html BIBLIOGRAFA 1. BARAN M.E, WU F.F. "Network reconfiguration in distribution sistems for loss reduction and load balancing". IEEE. Transaction on power delivery, Vol 4, # 2, April 1989. 2. CHAPMAN Stephen J. "Mquinas Elctricas". McGraw Hill. Santaf de Bogot Colombia. 1997 3. DELGADO Alberto. "Inteligencia Artificial y Minirobots". Bogota D.C. Colombia. Ecoe Ediciones. Julio 1998. 4. DELGADO Alberto. "Propiedades Matemticas y Aplicaciones de las Redes Neuronales Dinmicas Recurrentes". Santaf de Bogot Colombia. 5. FISCHBACH Gerald D.. "Mente y cerebro". Investigacin y Ciencia # 194, Noviembre de 1992 6. FLOREZ Oscar y SALAZAR Harold. Proyecto de grado "Utilizacin de Redes Neuronales Artificiales en la Reconfiguracin de Alimentadores Primarios". Pereira Colombia. Universidad Tecnolgica. 1998. 7. FREEMAN James y SKAPURA David. "Redes Neuronales: Algoritmos, aplicaciones y tcnicas de programacin". Delaware E.U.A. Addison Wesley Iberoamericana S.A. 1993 8. GALLEGO Ramn y Ruben. "Flujo de Carga". Pereira Colombia. Universidad Tecnolgica de Pereira. 1999 9. GIRALDO Didier, TABARES Ivan. "Programa que entrena neuronas para implementar funciones lgicas". Scientia et technica. Ao II, #5, Junio de 1997. 10. HAGAN Martin, DEMUTH Howard y BEALE Mark. "Neural Network Design". PWS Publishing Company. Boston U.S.A. 1996. 11. HILERA Jos R., MARTINEZ Vctor J. "Redes Neuronales Artificiales. Fundamentos, modelos y aplicaciones. Ra-ma Editorial. Madrid. 1995 12. HINTON Geoffrey E. "Redes neuronales que aprenden de la experiencia". Investigacin y ciencia. #194, Noviembre de 1992. 13. KANDEL Eric R., ROBERT Hawkins. "Bases biolgicas del aprendizaje y de la individualidad". Investigacin y ciencia #194, Noviembre de 1992. 14. KOHONEN Tuevo. "Associative memory. A system theoretical approach". Springer-Verlag, 1977 15. KOHONEN Tuevo. "Self-organized formaion of topologically correct feature maps". Biological Cybernetics #43 , 1982. Reimpreso en el texto "Neurocomputing" (J.Anderson y E. Rosenfeld ed.), MIT press,1988. 16. KOHONEN Tuevo. "Learning Vector Quantization". Abstracts of the first annual INNS Meeting, #308, 1988. 17. KONONEN Tuevo. "Self-organization and associative memory (3 ed.)". Springer-Verlag, 1989. 18. KOSKO. "Bidirectional Associative Memories". IEEE Transactions on system, Man & Cybernetics, #18, pags 42-60,1988 19. LATHI B.P. "Introduccin a la teora y sistemas de comunicacin". Limusa editores. Mjico. 1995 20. M. Minsky y S. Papert. "Perceptrons". ED. MIT Press,1969