1 Redes Neuronales OK

April 2, 2018 | Author: luthogion | Category: Artificial Neural Network, Neuron, Synapse, Science, Mathematics


Comments



Description

REDES NEURONALESARTIFICIALES Recopilado por: Mg. Miguel Ángel Córdova Solís 2015 1 REDES NEURONALES ARTIFICIALES Una red neuronal artificial es, básicamente, el resultado de los intentos por reproducir mediante computadores el funcionamiento del cerebro humano. Su principal aplicación es en torno a las tareas en que los seres humanos fácilmente superan a los computadores tradicionales, como en procesamiento de señales, procesamiento de imágenes, procesamiento de voz, en robótica y otros. Nuestro cerebro está formado por miles de millones de neuro- nas interconectadas entre sí en forma variable y compleja. Cada neurona recibe señales de las otras neuronas, o señales provenientes del exterior de la red, las procesa, ponderando o dándole distinta importancia a cada una de ellas, y genera una única señal de salida que se transmite a las otras neuronas. La información que procesa una red neuronal se encuentra dispersa entre todas sus interconexiones, lo que la hace fundamentalmente diferente a un computador tradicional, en que la información se encuentra totalmente localizada y no distri- 2 buida como en este caso. Esta cualidad hace que las redes neuronales posean una gran tolerancia a fallas. 1. FUNDAMENTOS BIOLÓGICOS La figura 1 muestra el modelo biológico de la neurona, elemento base de las redes de neuronas. Figura 1. Modelo de la Neurona Biológica Como se aprecia en esta figura, cada neurona en el cerebro está compuesta básicamente por un cuerpo, axones y dendritas. Las dendritas forman un "cepillo filamentoso" muy fino que rodea el cuerpo de la neurona. El axón puede considerarse como un tubo largo y fino que se subdivide en numerosas ramas que terminan en pequeños bulbos, los cuales tienen contacto con las dendritas de las otras células. La pequeña separación entre una terminación y una dendrita es llamada sinapsis. El axón de una neurona puede formar conexiones sinápticas con muchas otras neuronas. Funcionalmente, las dendritas reciben señales desde otras células a través de los puntos de conexión llamados sinapsis. La fuerza de una conexión dada es determi- 3 nada por la eficiencia de la transmisión sináptica. Desde ahí las señales son pasadas al cuerpo de la célula. Las señales que llegan de las dendritas pueden ser excitatorias o inhibitorias, y si la suma ponderada de éstas, realizada dentro del cuerpo de la neurona, supera su "umbral de activación" dentro de un tiempo suficiente, la neurona se disparará, enviando un impulso nervioso a través de su axón. 2. LA NEURONA ARTIFICIAL En la figura 2 se presenta el esquema típico de la neurona artificial. X1 X2 W 1j W 2j Yj .: : Xn Axones Zj= W ij Xi F ( Zj ) W nj Sinapsis Dendritas Cuerpo de la Neurona Axón Figura 2: Modelo de la Neurona Artificial El cuerpo de la neurona será a menudo representada por la suma ponderada de las entradas, Zj, seguida por una función lineal o no lineal, Yj = F( Zj). La eficiencia sináptica es representada por los "pesos de interconexión", Wij. La función F(Zj) es llamada "función de activación", que usa los valores de entrada para determinar la actividad de la neurona. El modelo de la neurona es llamado neurona de McCulloch-Pitts . 4 2.1. PESOS DE INTERCONEXIÓN Los pesos de interconexión, representan la fuerza de interconexión entre las neuronas, y pueden ser positivos (excitatorios) o negativos (inhibito- rios); además pueden ser fijos o adaptables. Las redes con pesos adaptables usan leyes de aprendizaje para ajustar los valores de la fuerza de interconexión. Si la red neuronal usa pesos fijos las tareas a ser ejecutadas deben estar bien definidas a priori. 2.2. FUNCIONES DE ACTIVACIÓN Existen distintos tipos de redes neuronales que usan diferentes funciones de activación, F(Z), pero la estructura interna de la neurona , es decir la suma ponderada seguida por la función F(Z), es común en la mayoría de las redes. Entre las funciones de activación más usadas y conocidas se encuentran las que se muestran en la figura 3. 5 Figura 3. Funciones de Activación 3. REDES DE NEURONAS Una red de neuronas consiste en varios de estos elementos (neuronas) trabajando juntos. Usualmente estos elementos se organizan en grupos conocidos con el nombre de capas. Una red típica consiste en una sucesión de capas conectadas entre ellas en forma total o aleatoria. Estas redes poseen dos capas que tienen contacto con el exterior, que son la capa de entrada y la de salida. Las capas que no se conectan con el exterior reciben el nom- bre de capas ocultas. La figura 4 presenta el esquema típico de una red de neuronas. : : : : Capa de entrada : : Capa escondida Capa de salida Figura 4 Esquema típico de una red de neuronas 6 3.1. REDES MONOCAPA (1 CAPA) En las redes monocapa, como la red de HOPFIELD y la red BRAIN-STATE-IN-A-BOX, se establecen conexiones laterales entre las neuronas que pertenecen a-la única capa que constituye la red. También pueden existir conexiones autorrecurrentes (salida de una neurona conectada a su propia entrada), aunque en algún modelo, como el de HOPFIELD, esta recurrencia no se utiliza. Una topología equivalente a la de las redes de 1 capa es la denominada topología crossbar (barras cruzadas). Una red de este tipo (por ejemplo, la red LEARNING MATRIX) consiste en una matriz de terminales (de entrada y salida) o barras que se cruzan en unos puntos a los que se les asocia un peso. Esta representación crossbar suele utilizarse como etapa de transición cuando se pretende implementar físicamente una red monocapa, puesto que es relativamente sencillo desarrollar como hardware una estructura como la indicada (por ejemplo, las barras cruzadas serían cables, y los puntos de conexión, resistencias cuyos valores representarían los pesos de la red). Finalmente, hay que indicar que las redes monocapa se utilizan típicamente en tareas relacionadas con lo que se conoce como autoasociación; por ejemplo, para regenerar informaciones de entrada que se presentan a la red incompleta o distorsionada. 7 En la tabla 1 se muestran las características topológicas de los modelos de redes monocapa más conocidos. TIPOS DE CONEXIONES CONEXIONES AUTORRECURRENTES CONEXIONES LATERALES EXPLÍCITAS NO AUTORECURRENTES CROSSBAR MODELO DE RED BRAIN-STATE-IN-A-BOX ADDITIVE GROSSBERG (AG) SHUNTING GROSSBERG (SG) OPTIMAL LINEAR ASOCIATIVE MEMORY HOPFIELD BOLTZMANN MACHINE CAUCHY MACHINE LEARNING MATRIX (LM) Tabla 1 modelos de redes monocapa más conocidos Figura 5 Red Hopfield 3.2. REDES NEURONALES MULTICAPAS En el caso de las redes multicapas, sus unidades se clasifican en tres tipos: 8 • Unidades de entrada: al igual que el caso de la red de una sola capa, estas unidades son las que reciben el patrón de entrada directamente. • Unidades ocultas o escondidas: estas no reciben entradas directamente y no poseen realimentación directa. Ellas permiten tener una representación interna del patrón en cuestión. • Unidades de salida: estas son las que entregan el resultado de la red. Las redes multicapa son aquellas que disponen de conjuntos de neuronas agrupadas en varios (2, 3, etc.) niveles o capas. En estos casos, una forma para distinguir la capa a la que pertenece una neurona, consistiría en fijarse en el origen de las señales que recibe a la entrada y, el destino de la señal de salida. Normalmente, todas las neuronas de una capa reciben señales de entrada de otra capa anterior, más cercana a la entrada de la red, y envían las señales de salida a una capa posterior, más cercana a la salida de la red. A estas co- nexiones se les denomina conexiones hacia adelante o feedforward (Fig. 4). Sin embargo, en un gran número de estas redes también existe la posibilidad de conectar las salidas de las neuronas de capa posteriores a las entradas de las capas anteriores, a estas conexiones se les denomina conexiones hacia atrás o feedback (Fig. 6). 9 Figura 6. Red feedback Un modelo de red neuronal multicapa es el Perceptron multinivel o multicapa (Figura 7), el cual es una red de tipo feedforward compuesta de varias capas de neuronas entre la entrada y la salida de la misma. Esta red permite establecer regiones de decisión mucho más complejas que de aquellos modelos de una capa de entrada y otra de salida (figura 9). Figura 7 Perceptron multinivel (red feedforward multicapa) 10 Las capacidades del Perceptron con dos tres y cuatro niveles o capas y con una única neurona en el nivel de salida, se muestra en la figura 8. Figura 8 Distintas formas de las regiones generadas por un perceptron multinivel En la segunda columna se muestra el tipo de región de decisión que se puede formar con cada una de las configuraciones. En la siguiente columna se indica el tipo de región de decisión que se formaría para el problema de la XOR. En las dos últimas columnas se muestran las regiones formadas para resolver el problema de clases con regiones mezcladas y las formas de regiones más generales para cada uno de los casos. El Perceptron básico de dos capas (la de entrada con neuronas lineales y la de salida con función de activación de tipo escalón – ver figura 9-) sólo puede establecer dos regiones separadas por una 11 frontera lineal en el espacio de patrones de entrada. Función tipo escalón Figura 9 El perceptron de una capa de entrada y una capa de salida y la función de activación tipo escalón. Un Perceptron con tres niveles de neuronas puede formar cualquier región convexa en este espacio. La región de decisión resultante será regiones convexas con un número de lados a lo sumo igual al número de neuronas de la segunda capa. Un Perceptron con cuatro capas puede formar regiones de decisión arbitrariamente complejas. El proceso de separación en clases que se lleva a cabo consiste en la partición de la región deseada en pequeños hipercubos (cuadrados para dos entradas de la red). 12 El análisis anterior demuestra que no se requieren más de cuatro capas en una red de tipo Perceptron, pues, como se ha visto una red con cuatro niveles, puede generar regiones de decisión arbitrariamente complejas. El Perceptron es de interés histórico, dado que ha abierto el camino para el desarrollo de otras redes neuronales, entre ellos el Back-Propagation, que se analizará más adelante. 4. OPERACIÓN DE UNA RED NEURONAL Las redes neuronales operan en dos fases: aprendizaje y evocación o recuerdo. El aprendizaje es el proceso en el cual se adaptan o modifican los pesos de las conexiones en respuesta a un estímulo que ha sido presentado en sus entradas y opcionalmente a su salida. El estímulo presentado a la salida corresponde a la salida deseada para una determinada entrada; esta salida deseada debe ser entregada por un "instructor". En tal caso se habla de un aprendizaje supervisado o entrenamiento supervisado. La evocación o recuerdo se refiere a cómo la red procesa los estímulos presentados en sus entradas y genera una respuesta en su salida. A menudo la evocación o recuerdo es una parte del aprendizaje; esto sucede cuando la salida deseada debe ser comparada con la salida actual de la red para originar la señal de error. 5. ENTRENAMIENTO DE UNA RED NEURONAL El entrenamiento de una red es todo el proceso de aprendizaje que realiza una red neuronal. Su objetivo es lo- 13 grar que la aplicación de un conjunto de entradas produzca el conjunto de salidas deseado (o uno al menos consistente). Dicho entrenamiento se realiza aplicando secuencialmen- te vectores de entrada (patrones de entrenamiento), a la vez que se ajustan los pesos de la red de acuerdo a un procedimiento predeterminado (cada modelo define su procedimiento), los cuales convergen gradualmente a valores tales que cada vector de entrada produce el vector de salida deseado. En cuanto a los tipos de aprendizaje, existen dos tipos: el aprendizaje supervisado y el no supervisado. 5.1. ENTRENAMIENTO SUPERVISADO Se selecciona un número suficientemente grande de vectores de entrada con sus correspondientes vectores de salida. Cada vector de entrada se aplica a la red calculándose la salida, la que posteriormente se compara con la salida deseada, determinando el error. Dicho error es realimentado a través de la red, modificando los pesos de acuerdo a un algoritmo que lo minimice. Los vectores del conjunto de entrenamiento se aplican secuencialmente, calculando los errores y modificando los pesos hasta que el error del conjunto total de entrenamiento converja a un nivel aceptable. A continuación se muestra como se realiza el entrenamiento de una red neuronal multicapa: • Lo primero que necesitamos son patrones de entrenamiento (cada fila de la tabla) que contengan el conocimiento de algún dominio en 14 particular. Para nuestro ejemplo (Tabla 2) siguiente tenemos patrones que permiten identificar si un animal es un mamífero (1) o un ave (0). Entrenamiento de una red neuronal Entradas Salida (1= Mamifer o 0=Ave) ¿Tiene pelo? ¿Toma leche? ¿Vuela? ¿Pone ¿Tiene huevos? plumas? ¿Nada? 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 Tabla 2 Patrones de entrenamiento que permiten identificar si un animal es un mamífero (1) o un ave (0) • Ahora necesitamos una red neuronal que permita tomar los patrones de entrada y de salida para el entrenamiento, tal como se muestra en la figura 10. Mg. Abraham Gamarra Moreno 15 Entrenamiento de una red neuronal: ¿Tiene Pelo? ¿Toma leche? ¿Vuela? ¿Pone Huevos? ¿Tiene Plumas? ¿Nada? Salida Figura 10 Red neuronal que permite tomar los patrones de la tabla 2. Los 6 primeros patrones (patrones de entrada) debe suministrar a las neuronas que están en la parte superior (neuronas de entrada) y la última columna se debe suministrarse como salida deseada. Se puede elaborar un programa que permita entrenar la red neuronal y luego de este entrenamiento, se debe probar si el aprendizaje fue correcto o no. Para el primer patrón de entrenamiento, la prueba consiste en ingresar el patrón de entrada (6 primeras columnas) y esperar que se tenga la salida deseada dada en el entrenamiento (última columna que debe ser igual o cercano a 1), vea la figura 11. 16 Figura 11 Resultado que muestra un programa que contiene a la red neuronal entrenada de la figura 10. Para esta ejecución se tiene que el valor devuelto por la red neuronal es muy cercano a 1, tal como se dio en el entrenamiento (la red neuronal aprendió). Al ejecutar el programa, con el último patrón de entrenamiento se tiene que la salida también es correcta (figura 12). Figura 12 Resultados que muestra otra ejecución del programa que contiene a la red neuronal entrenada de la figura 10. Para salidas binarias (0 ó 1), si la salida deseada es 1, un valor aceptable será cuando la salida sea 17 mayor que 0.9 (salida>0.9); de la misma manera si la salida deseada es 0, un valor aceptable será cuando la salida sea menor que 0.1 (salida<0.1). Lo que debemos probar ahora es la capacidad de generalización de la red neuronal. Para realizar esta prueba, suministramos a la red neuronal, sólo la característica toma leche y la red neuronal generaliza e identifica a este como un mamífero (valor cercano o igual a 1). Debemos notar que estas entradas no han sido dadas en el entrenamiento, por lo que la respuesta que se obtiene, es por generalización, vea la figura 13. Figura 13 Resultados que muestra la genearlización del programa que contiene a la red neuronal entrenada de la figura 10. 5.2. ENTRENAMIENTO NO SUPERVISADO El aprendizaje no supervisado ocurre cuando la red es provista sólo de los valores de entrada, y la red ajusta solamente en la fuerza de interconexión basada los valores de la entrada y la salida de la red en progresión. En otras palabras, el 18 la red en progresión. En otras palabras, el proceso de entrenamiento extrae las propiedades estadísticas del conjunto de entrenamiento y agrupa vectores familiares en clases. Puesto que no es posible determinar el patrón de salida específico generado por una clase de vectores en forma previa al entrenamiento, se requiere transformar la salida generada por la red a una forma que sea comprensible. Este tipo de entrenamiento fue desarrollado por Kohonen (1984) y otros el nombre de la en lo que teoría de la se conoce con "autoorganiza- ción". Este tema no será tratado en nuestro estudio. 6. REDES NEURONALES TRADICIONALES Y COMPUTADORES Las redes neuronales no son un reemplazo de los computadores tradicionales, sino que son una clase totalmente distinta de dispositivos computacionales capaces de realizar tareas cualitativamente diferentes. Estas han sido enfocadas a la resolución de problemas más difíciles o imposibles para la computación convencional ya que exhiben habilidades que las diferencian fundamentalmente, y que son: • Aprendizaje: las redes neuronales no ejecutan instrucciones secuencialmente; así tampoco contienen memoria de almacenamiento, de instrucciones o de datos. En vez de esto, las redes neuronales son entrenadas, presentándoles ejemplos de entradas y salidas, los que son memorizados alterando los vectores de pesos. 19 ~ • Generalización: las redes neuronales acomodan los pesos de interconexión de modo de lograr una salida correcta frente a una entrada determinada. Esto sucede aun cuando una de las neuronas esté inhabilitada o alterada (tolerancia a fallas), lo que en la computación clásica puede ser logrado sólo con algoritmos complejos y de alto costo. • Abstracción: la red neuronal tiene capacidad para abstraer un ente ideal desde un conjunto de entrenamiento no ideal, y recordar algo que no necesariamente se le haya enseñado. • Velocidad: el tiempo requerido para obtener una salida es suficientemente independiente del número de asociaciones almacenadas en la red. • Multiproceso: cada neurona de la red es un pro- cesador que opera sobre sus entradas independientemente de los otros procesadores y la convergencia ocupa a todas ellas, aunque se agreguen más procesadores. Esto contrasta con los problemas que presenta la programación paralela convencional. 7. TIPOS DE REDES NEURONALES MÁS IMPORTANTES A continuación se muestra una tabla resumen de los tipos de redes más conocidos, comentando esquemáticamente las aplicaciones más importantes de cada una, sus ventajas e inconvenientes y quién o quiénes fueron sus creadores y en qué año. 20 Nombre de la red Año Aplicaciones más importantes Comentarios Limitaciones Inventada/ Desarro llada por Avalancha 1967 Reconocimiento de habla continua. Control brazos robot. Ninguna red sencilla puede hacer todo esto. Stephen Grossberg. Teoría re- 1986 Reconocimiento sonancia de patrones adaptativa (radar, (ART) Sofisticada. Poco utilizada. No es fácil alterar la velocidad o interpolar el movimiento. Sensible a la translación, distorsión y escala. Sólo es posible clasificar espacios linealmente separados. Sonar, etc.). ADALINE / MADALINE 1960 Back propa- 1974-85 gation Filtrado de señales. Ecualizador adaptativo. Modems. Síntesis Rápida, fácil de implementar con circuitos analógicos o VLSI. Red más po- Necesita Gail Carpenter, Stephen Gressberg. Bernand Widrow. Paul de voz desde pular. Nume- mucho Werbos, texto. David rosas Control de robots. nes con Predic- éxito. Fa- ción. Reconocimiento patrones. aplicacio- de cilidad de aprendizaje. Potente. tiempo para el Parker, aprendizaje muchos ejemplos. David y Rumelhart. 21 Memoria 1985 Memoria Aprendi- asociativa heteroaso- za.je bidireccio- ciativa nal acceso Baja capa- Bart y cidad de de arquitecpor tura contenido. Kosko. almacena- sim- miento. ples. Los datos deben ser codificados. Máquinas de 1985- Reconoci- Redes sim- La máquina Jeffrey Boltzmann y 86 miento Cauchy patrones pacidad de mann nece- Terry (imágenes, represen- sonar de ples. y Ca- de tima Optimiza- de largo patrones. ción. Estate- 1977 Extracción de sita un Se- ra- tación óp- tiempo muy jnowski dar). Brain- Boltz- Hinton, Posible- conoci- mente de , aprendiza- old je. Szu. Realiza- James me- ción y po- Ander- in-a- miento Box. bases de da- zación que aplicaciotos Har- de jor reali- tenciales las redes nes no es- de Hop- tudiadas field. totalmente. son 22 Cerebella- 1969 tron Control del Semejante movimiento de los zos a Avalan- bra- cha. de Requiere David complica- Marr, das entra- James un das robot. de Albus, control. Andres Pellionez. Counter- 1986 propagation Comprensión Combina- de imágenes. ción Numerosas de neuronas y Hecht- Perceptron conexioy TPM. Hopfield 1982 Reconstrucción de trones Puede optimiza- VLSI. ción. cil Nielsen nes. im- Capacidad pa- plementar- y y se Robert John estabi- Hop- en lidad. field Fáde conceptuaNeocognitron Perceptron lizar 1978- ReconociInsensible 84 miento de a la caracteres Translamanuscritos ción, rotación y escala. 1957 Requiere muchos elementos de proceso, niveles y conexiones. ReconociLa red más No puede miento de antigua. reconocer caracteres Construida caracteres impresos en HW. complejos. K. Fukushima Frank Rosenblatt 23 Self1980- ReconociOrganizing- 84 miento de Map (SOM). patrones, Topologycodificación Preservingde datos, Map (TPM). optimización. Realiza mapas de características comunes de los datos aprendidos. Requiere Teuvo mucho en- Kohonen trenamiento. 8. APLICACIONES DE LAS REDES NEURONALES Las redes neuronales son una tecnología computacional emergente que puede utilizarse en un gran número y variedad de aplicaciones, tanto comerciales como militares. Se pueden desarrollar redes neuronales en un período de tiempo razonable y pueden realizar tareas concretas mejor que otras tecnologías convencionales, incluyendo los sistemas expertos. Cuando se implementan mediante hardware (redes neuronales en chips VLSI), presentan una alta tolerancia a fallos del sistema y proporcionan un grado de paralelismo en el proceso de datos muy grande. Eso hará posible insertar redes neuronales de bajo coste en sistemas existentes y recientemente desarrollados. Hay muchos tipos diferentes de redes neuronales, cada uno de los cuales tiene una aplicación particular más apropiada. Relacionamos ejemplos de algunas aplicaciones comerciales separándolas en grupos según las distintas disciplinas: Biología • Aprender más acerca del cerebro y otros sistemas. • Obtención de modelos de la retina. 24 Empresa • Evaluación de probabilidad de formaciones geológicas y petrolíferas. • Identificación de candidatos para posiciones específicas. • Explotación de bases de datos. • Optimización de plazas y horarios en líneas de vuelo. • Reconocimiento de caracteres escritos. Medio ambiente • Analizar tendencias y patrones. • Previsión del tiempo. Finanzas • Previsión de la evolución de los precios. • Valoración del riesgo de los créditos. • Identificación de falsificaciones. • Interpretación de firmas. Manufacturación • Robots automatizados Y sistemas de control (visión artificial y sensores de presión, temperatura, gas, etc.) • Control de producción en líneas de proceso. • Inspecci6n de la calidad. Medicina • Analizadores del habla para la ayuda de audición de sordos profundos. 25 • Diagnóstico y tratamiento a partir de síntomas y/o de datos analíticos (electrocardiograma, encefalograma, análisis sanguíneo, etc.). • Monitorización en cirugía. • Predicción de reacciones adversas a los medicamentos. • Lectores de rayos X. • Entendimiento de la causa de los ataques epilépticos. Militares • Clasificación de las señales de radar. • Creación de armas inteligentes. • Optimización del uso de recursos escasos. • Reconocimiento y seguimiento en el tiro al blanco. Podemos buscar hechos comunes en esta lista de aplicaciones; la mayoría de ellas consisten en realizar un reconocimiento de patrones: buscar un patrón en una serie de ejemplos, clasificar patrones, completar una señal a partir de valores parciales o reconstruir el patrón correcto partiendo de uno distorsionado. Muchos de los ejemplos tienen que trabajar con datos sensoriales y de percepción (señales visuales, auditivas y otras) y, otros realizan filtrado o mapeo de señales de entrada. En general, los ejemplos mostrados indican que son característicos más de las personas que de los ordenadores convencionales. 26 APLICACIONES CONCRETAS DE LAS REDES NEURONALES 1. DETECCIÓN DE OBSTÁCULOS POR MEDIO DE UN ROBOT1 1.1. DESCRIPCIÓN DEL PROBLEMA: Un robot es un dispositivo automático que realiza acciones específicas, 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 atrás a cada uno de los dos motores que posee; en las lecturas de los sensores podrían darse 16 posibles combinaciones (16=24) y pa- 1 Universidad Tecnológica de Pereira. Colombia. Mg. Abraham Gamarra Moreno 27 ra cada combinación cada uno de los dos motores podría dar marcha adelante o marcha atrás. Figura 14 Robot El comportamiento del robot lo describe la tabla 3, 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 esta lejos lo cual se indica con un –1; dependiendo de estas lecturas los motores podrán dar marcha adelante, lo que se representará por un 1 o dar marcha atrás 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 28 1 -1 1 1 1 -1 1 1 -1 1 -1 1 1 1 1 -1 1 -1 Tabla 3 Comportamiento del robot 1.2. JUSTIFICACIÓN DEL TIPO DE RED Este tipo de problema generalmente es resuelto suministrándole al robot una base de datos que contiene todas las posibles situaciones que se podrían presentarse y sus respectivas soluciones, en este caso se necesitaría almacenar las respuestas para ambos motores ante las 16 posibles combinaciones en las lecturas de los sensores, cuando el número de variables de entrada y el número de salidas es mucho mayor, la cantidad de datos necesarios para especificar cada posible situación crece indefinidamente, debido a esto se requerirían dispositivos con gran capacidad de almacenamiento; en contraste una red neuronal puede entrenarse con un número representativo de patrones y aprender el comportamiento del sistema utilizando dispositivos de menos capacidad de almacenamiento y costo. 1.3. IMPLEMENTACION EN NEUROSHELL El ingreso al programa al NEUROSHELL se muestra en la figura 15. Mg. Abraham Gamarra Moreno 29 Figura 15 Ingreso al Neuroshell Luego del ingreso elija FILE, NEW e ingrese un nombre de archivo, como en la figura 16 (no escriba ninguna extensión para el archivo). Figura 16 Mg. Abraham Gamarra Moreno 30 Elija Beginner´s Neural Networks, realice click en el icono (figura 17). Figura 17 Seleccione Data Entry (figura 18) e ingrese los datos de la tabla 3, para entrenar la red neuronal (figura 19). Se sugiere para el entrenamiento duplicar estos datos dos veces salvo el titulo de cada columna. Mg. Abraham Gamarra Moreno 31 Figura 18 Figura 19 Luego de ingresar los datos cierre la ventana después de haber grabado estos con File, Save File. Mg. Abraham Gamarra Moreno 32 Ahora elija el icono en la figura 20, en la lista desplegable variable type selection elija input y haga clic debajo del nombre de cada entrada, este quedará marcado con I, luego elija Actual Output en la lista desplegable anterior y haga clic en el nombre de cada salida para la red neuronal. Ahora elija Settings y Compute mins/maxs. Cierre la ventana. Las figuras 20 al 26 muestran el procedimiento a seguir hasta generar el código fuente en C. Figura 20 Mg. Abraham Gamarra Moreno 33 Figura 21 Figura 22 En la figura 23 elija examinar datos para analizar los datos y los errores generados a la salida. Mg. Abraham Gamarra Moreno 34 Figura 23 El procedimiento de la figura 24 y 25 permite generar el código fuente en C. Figura 24 Mg. Abraham Gamarra Moreno 35 Figura 25 Figura 26 Mg. Abraham Gamarra Moreno 36 2. APLICACIÓN PARA SÍNTOMAS Y DIAGNÓSTICOS DE AUTOMOVILES Consideremos un ejemplo concreto de aplicación de síntomas y diagnósticos. Emplearemos Como base para nuestro ejemplo una aplicación de diagnóstico para automóviles. Concretamente, nos concentraremos en una aplicación que diagnostique por qué no arranca un coche. Primero se definen los distintos síntomas que hay que considerar: • No hace nada: no pasa nada cuando se hace girar la llave del contacto. • Hace clic: cuando se da vuelta a la llave, se oyen fuertes chasquidos. • Molinillo: cuando se da vuelta a la llave se oye un ruido parecido al de un molinillo. • Arranque: el motor gira como si intentase arrancar, pero no es capaz de funcionar por sí mismo. • Sin chispa: al sacar el cable de una bujía y acercarlo al bloque cuando se intenta arrancar, en el motor no saltan chispas. • Cable caliente: después de intentar arrancar el motor, el cable que va de la batería a la bobina del motor de arranque está caliente. • Sin gasolina: al sacar el tubo de gasolina del carburador (o inyector) e intentar arrancar el motor, no sale gasolina por el tubo. A continuación, se consideran las posibles causas del problema, basándose en los síntomas: • Batería: la batería está descargada Mg. Abraham Gamarra Moreno 37 • Bobina del motor de arranque: falla la bobina del motor de arranque. • Motor de arranque: falla el motor de arranque. • Cables: fallan los cables del encendido. • Distribuidor: el rotor o la tapa del distribuidor están corroídos. • Bomba de gasolina: falla la bomba de gasolina. Aunque nuestra lista no es una representación Completa de todos los posibles problemas, los síntomas podrían indicar alguno de estos problemas, o una combinación de ellos. Para completar el ejemplo vamos a construir una matriz que indica la correspondencia de los síntomas con sus causas probables. La matriz se ha ilustrado en la Tabla 4. Al inspeccionar la matriz se aprecia la variedad de problemas que puede indicar cualquier síntoma. La matriz también ilustra el problema que encontramos cuando se intenta programar un sistema para llevar a cabo la función de diagnóstico. Es raro que haya una correspondencia biunívoca entre síntomas y causas. Para tener éxito, nuestro sistema automatizado debe ser capaz de correlacionar muchos síntomas distintos, y, en el caso de que alguno de los síntomas no se aprecie o esté ausente, debe ser capaz de "llenar los espacios en blanco" del problema basándose solamente en los síntomas indicados. Mg. Abraham Gamarra Moreno 38 Causas probables Síntomas No hace nada Clics Molinillo Gira Sin chispa Cable caliente Sin gasolina Batería Bobina Motor de arranque X X X X X X Cables Distribuidor Bomba de gasolina X X X X X X X X X X Tabla 4. Para el problema de diagnósticos del automóvil, se hacen corresponder los síntomas con las causas. 2.1. LA SOLUCIÓN Empleando los dalos de nuestro ejemplo, será necesaria una red con siete unidades de entrada y seis unidades de salida. Esto deja únicamente sin determinar el número de unidades internas (ocultas). En este caso, no hay nada que indique cuántas unidades ocultas se van a necesitar para resolver el problema, y no hay consideraciones de interfaz externa que vayan a limitar el número de unidades ocultas. Por tanto, de manera arbitraria, definimos la red de tal forma que contenga 14 unidades internas. Si el entrenamiento indica que se necesitan más unidades para converger, se pueden añadir posteriormente. Si se necesitan menos unidades, las que sobren se pueden eliminar posteriormente aunque no hay una necesidad apremiante de eliminarlas en una red tan pequeña salvo para mejorar el rendimiento del simulador. Una ecuación empírica según Sierra2, para calcular el número de neuronas de una capa oculta es: 1. 2 Sierra Molina, Guillermo y otros (1995). “Sistemas Expertos en Contabilidad y Administración de Empresas”. Editorial Addison Wesley. USA. Mg. Abraham Gamarra Moreno 39 M 2*M <n< 2* N N donde: M: Es el número de ejemplos con que vamos a entrenar a la red. N: Es el número de unidades de entradas. n: Es el número de neuronas que vamos a situar en capas intermedias A continuación, debemos definir los conjuntos de datos que serán utilizados para entrenar a la red. Volviendo de nuevo a la matriz de nuestro ejemplo, se pueden considerar los datos de los vectores fila de la matriz como tramas de entrada de siete dimensiones; esto es, para cada salida de causa probable que desearíamos que aprendiera la red, hay siete síntomas posibles que indican el problema por su presencia o ausencia. Esta aproximación proporcionará seis pares de vectores de entrenamiento, cada uno de los cuales consta de una trama de síntomas de siete elementos y de una trama de indicación de problema formada por seis elementos. Haremos que la existencia de un síntoma quede indicada por un 1, y que la ausencia de un síntoma sea representada mediante un 0. Para cualquier vector de entrada dado, la causa o causas correctas se indican mediante un 1 lógico en la posición correspondiente del vector de salida. Los pares de vectores de entrenamiento que se producen por la corresMg. Abraham Gamarra Moreno 40 pondencia de la matriz de síntomas y problemas para este ejemplo se muestran en la Tabla 5. Si se comparan las Tabla 5 y Tabla 4, se notarán pequeñas diferencias. Lo único que queda ahora es entrenar a la red con estos pares de datos. Una vez que está entrenada, la red producirá una salida que identifique a la causa probable indicada por el mapa de síntomas de entrada. La red hará esto cuando la entrada sea equivalente a una de las entradas de entrenamiento, tal como se esperaba, y además producirá una salida, indicando la causa probable del problema, cuando la entrada sea parecida a alguna de las entradas de entrenamiento, pero distinta de todas ellas. Esta aplicación ilustra la capacidad de la red para realizar la "mejor suposición" (generalización) y pone de manifiesto la capacidad de la red para enfrentarse a entradas de datos con ruido o incompletas. Clics Molinillo Gira Sin chispa Cable caliente Sin gasolina Batería Bobina Motor de arranque Cables Distribuidor Bomba de gasolina Salida de causas probables No hace nada Entrada de síntomas 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 Tabla 5. Estos pares de vectores de entrenamiento se utilizan para el problema de diagnósticos del automóvil. 41 3. PRONÓSTICO DEL PBI 3.1. INTRODUCCIÓN Con un modelo básico de redes neuronales se pronosticará el PBI por tipo de gasto (estructura porcentual), con la serie de tiempos de 1950 al 1994 y usando 5 variables (consumo final privado, consumo de gobierno, formación bruta de capital, exportación e importación). 3.2. OBJETIVO Formular un modelo basado en redes neuronales, para el pronóstico de la estructura porcentual del PBI, utilizando una serie de datos proporcionada por el Instituto Nacional de Estadística e Informática. 3.3. ESPECIFICACIÓN DEL MODELO 3.3.1. Modelo econométrico El modelo esta conformado por: PBI = f(CFP, CG, FBC, EXPOR, IMPOR) PBI Producto bruto interno. CFP Consumo final privado. CG Consumo del gobierno. FBC Formación bruta del capital. Mg. Abraham Gamarra Moreno 42 EXPOR Exportaciones. IMPOR Importaciones. 3.3.2. Producto bruto interno por tipo de gasto 1950-94 Tabla 6. PRODUCTO BRUTO INTERNO POR TIPO DE GASTO 1950-94 Mg. Abraham Gamarra Moreno 43 AÑOS PRODUCTO BRUTO INTERNO CONSUMO FINAL PRIVADO CONSUMO DE GOBIERNO FORMACION BRUTA DE CAPITAL EXPORTACIONE IMPORTACIONE S S 1950 99,90 70,20 6,10 18,30 19,40 14,10 1951 99,90 70,90 5,80 23,20 17,60 17,60 1952 100,00 68,10 6,10 25,10 19,00 18,30 1953 100,00 67,30 5,90 25,90 19,80 18,90 1954 99,90 68,10 6,60 21,00 19,80 15,60 1955 100,00 69,60 6,30 23,20 19,90 19,00 1956 100,00 67,90 6,40 26,50 20,60 21,40 1957 100,10 67,20 6,90 28,10 19,90 22,00 1958 99,90 67,80 6,90 24,70 20,10 19,60 1959 100,00 66,00 7,50 20,30 22,00 15,80 1960 100,10 61,60 7,90 22,20 25,20 16,80 1961 99,90 61,20 8,50 21,70 27,60 19,10 1962 99,90 62,40 8,20 22,00 27,20 19,90 1963 100,00 66,10 8,40 20,90 25,80 21,20 1964 100,00 65,80 8,80 20,70 25,90 21,20 1965 100,10 67,50 9,00 21,80 25,40 23,60 1966 100,00 67,70 8,30 24,20 24,50 24,70 1967 100,00 70,40 8,30 22,70 25,00 26,40 1968 100,10 70,90 8,80 16,90 27,40 23,90 1969 99,90 70,70 8,90 17,30 25,90 22,90 1970 100,10 70,90 8,90 17,50 25,90 23,10 1971 100,00 70,50 9,10 19,50 24,10 23,20 1972 99,90 70,70 9,40 16,70 25,60 22,50 1973 100,00 69,90 9,50 24,80 19,80 24,00 1974 100,00 68,30 9,20 31,30 19,10 27,90 1975 100,10 68,80 9,90 28,70 18,90 26,20 1976 99,90 68,70 10,10 24,50 19,10 22,50 1977 100,00 68,50 11,60 20,80 21,50 22,40 1978 100,00 63,10 10,10 19,50 24,20 16,90 1979 99,90 61,00 8,60 21,70 27,70 19,10 1980 100,00 61,30 10,10 28,30 24,10 23,80 1981 100,00 61,90 9,50 32,60 22,40 26,40 1982 100,00 62,30 10,70 30,20 23,70 26,90 1983 100,00 65,00 11,20 21,10 24,40 21,70 1984 100,10 63,20 10,20 18,20 25,40 16,90 1985 100,00 63,10 10,30 15,80 25,90 15,10 1986 100,00 66,40 9,80 19,20 21,30 16,70 1987 100,10 67,20 9,60 22,70 18,20 17,60 1988 100,00 67,90 8,80 22,40 18,40 17,50 1989 100,10 63,80 9,20 17,10 24,80 14,80 1990 100,00 65,70 8,80 20,70 22,30 17,50 1991 100,00 65,20 8,70 22,40 24,10 20,50 1992 100,00 67,30 9,10 22,50 24,70 23,60 1993 100,00 66,10 8,80 23,50 24,00 22,50 1994 100,00 64,30 8,50 26,60 25,20 24,60 1995 100,00 64,70 8,70 30,10 25,50 29,00 FUENTE: Instituto Nacional de Estadística e Informática (05/12/97) - Dirección Nacional de Cuentas Nacionales. Mg. Abraham Gamarra Moreno Tendencias de las variables 120.00 100.00 80.00 PRODUCTO BRUTO INTERNO CONSUMO FINAL PRIVADO CONSUMO DE GOBIERNO FORMACION BRUTA DE CAPITAL EXPORTACIONES IMPORTACIONES 60.00 40.00 20.00 0.00 1945 1950 1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 años Ilustración 1. Producto Bruto Interno Por Tipo De Gasto 1950-95. 44 45 4. PRONOSTICO DE ACCIDENTES DE AUTOMOVIL Los datos que se muestran a continuación registran el género del conductor, su edad en años y el número de accidentes en los últimos 5 años (500 registros). Genero: 1=masculino, 2=femenino GENERO 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 1 EDAD 23 35 26 25 28 31 23 31 31 27 26 33 27 30 34 29 24 26 25 27 27 22 29 24 25 33 40 37 31 32 31 38 34 31 28 31 30 34 34 32 35 32 35 NUMERO DE ACCIDENTES 2 1 1 0 2 1 1 3 5 1 3 3 3 5 0 2 1 2 3 3 1 4 3 0 1 3 0 6 4 3 2 1 1 0 3 1 1 1 1 0 2 1 0 46 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 1 1 1 1 1 1 1 1 1 1 1 1 1 33 39 34 30 31 33 28 32 28 34 33 29 31 38 30 38 33 38 36 30 31 30 36 32 38 34 42 40 37 37 33 34 45 36 36 48 38 37 41 39 41 38 46 38 38 37 38 37 40 44 38 38 42 35 36 2 2 1 6 1 2 3 2 1 2 2 2 0 0 2 4 4 1 2 2 1 4 3 2 2 4 0 4 1 0 2 2 2 0 2 1 2 0 2 3 4 4 2 0 1 1 1 3 2 3 5 3 0 4 1 47 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 1 1 1 1 1 1 1 1 1 1 1 1 1 36 37 36 39 40 35 39 42 46 39 47 49 39 42 43 34 42 38 37 41 36 34 44 38 48 38 34 37 42 40 40 37 44 38 36 42 38 42 41 39 36 39 43 41 38 42 49 39 37 46 37 36 44 53 51 1 1 0 1 0 0 4 0 0 5 2 5 4 0 1 2 5 3 0 2 0 4 2 4 0 3 3 1 2 4 3 1 3 0 3 5 2 0 3 2 3 1 0 3 0 0 2 4 1 1 5 0 1 0 1 48 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 1 1 1 1 1 1 1 1 1 1 1 1 1 49 47 45 45 55 42 46 46 41 47 45 49 44 47 43 54 50 43 43 41 49 46 49 45 44 43 47 43 49 43 47 46 42 44 47 49 51 52 45 42 41 46 49 44 45 45 47 54 52 52 50 68 59 54 52 0 4 4 0 1 2 1 0 3 2 6 1 7 1 2 1 1 0 1 2 1 3 0 1 2 4 0 3 4 0 1 6 3 0 6 1 0 1 1 0 2 3 2 2 3 3 1 3 0 1 2 2 1 3 0 49 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 2 2 2 2 2 2 2 2 2 2 2 2 2 53 53 55 48 51 57 49 54 47 50 53 47 54 49 55 49 54 56 64 58 58 56 60 59 58 57 58 57 54 56 59 54 57 55 52 59 62 53 60 53 57 57 25 24 31 26 26 29 22 25 33 30 24 27 29 4 1 1 1 5 3 2 0 1 2 5 1 1 2 1 3 1 2 3 2 2 1 0 3 2 1 1 1 4 2 4 1 1 2 6 7 0 1 2 5 1 6 1 3 1 0 0 0 2 5 5 1 0 1 3 50 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 26 26 23 27 29 34 29 25 35 30 26 26 28 33 34 29 40 32 30 31 37 32 34 39 34 33 43 31 47 31 35 41 35 30 35 30 33 28 32 34 32 33 34 35 31 37 29 33 33 41 43 33 41 28 34 4 0 0 2 1 2 2 3 3 2 2 0 5 1 1 1 2 0 1 1 3 0 1 0 2 3 1 0 6 0 0 4 6 1 1 1 1 0 4 2 1 0 2 1 1 2 0 2 1 1 1 2 1 0 2 51 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 30 38 36 33 31 37 32 38 43 35 44 40 38 34 45 41 36 41 39 41 41 39 38 40 37 37 42 49 38 39 50 36 39 44 38 38 37 37 47 39 45 39 42 36 37 42 43 43 40 43 37 37 39 47 40 Mg. Abraham Gamarra Moreno 0 2 3 0 3 1 1 4 2 0 1 2 2 5 2 3 1 2 1 1 5 0 0 0 1 2 1 1 0 0 2 4 0 5 0 1 0 0 4 0 5 2 2 0 1 0 4 1 2 3 0 0 2 0 0 52 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 37 45 39 36 39 39 38 39 46 43 40 45 39 44 43 38 36 34 38 41 37 41 45 41 37 36 39 48 47 48 46 43 43 44 45 44 51 42 48 50 44 48 45 47 44 41 44 42 45 47 42 48 53 45 48 Mg. Abraham Gamarra Moreno 1 0 0 4 3 2 1 1 3 1 2 3 0 2 0 4 1 5 0 3 2 2 0 0 1 1 0 1 0 1 4 1 2 2 1 0 1 2 2 1 2 2 0 1 2 2 2 2 1 1 1 1 3 0 0 53 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 50 46 43 45 46 58 49 51 42 47 43 48 55 50 42 51 45 48 45 52 43 43 53 49 54 64 52 49 64 50 47 52 48 54 49 51 48 51 54 46 51 56 50 54 57 57 56 56 57 59 52 56 52 56 55 Mg. Abraham Gamarra Moreno 3 1 1 0 1 0 0 2 1 0 3 1 1 3 2 3 0 0 1 2 0 2 1 0 0 1 1 3 0 0 0 2 0 2 0 0 0 0 0 1 2 3 1 3 4 4 0 0 2 3 0 0 1 3 3 54 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 58 53 60 61 56 57 52 58 59 57 57 62 51 56 56 60 54 Mg. Abraham Gamarra Moreno 0 1 4 2 4 1 4 2 4 1 0 0 2 0 1 0 2 55 LA RED BACKPROPAGATION En 1986, Rumelhart, Hinton y Williams, basándose en los tra- bajos de otros investigadores formalizaron un método para que una red neuronal aprendiera la asociación que existe entre los patrones de entrada a la misma y las clases correspondientes, utilizando más niveles de neuronas que los que utilizó Rosenblatt para desarrollar el Perceptron. Este método, conocido en general como backpropagation (propagación del error hacia atrás), está basado en la generalización de la regla delta y, a pesar de sus propias limitaciones, ha ampliado de forma considerable el rango de aplicaciones de las redes neuronales. El algoritmo de propagación hacia atrás. o retropropagación, es una regla de aprendizaje que se puede aplicar en modelos de redes con más de dos capas de células. Una característica im- portante de este algoritmo es la representación interna del conocimiento que es capaz de organizar en la capa intermedia de las células para conseguir cualquier correspondencia entre la entrada y la salida de la red. Ya se ha mostrado en este capítulo que en muchos casos, como la resolución del problema de la OR exclusiva, es imposible encontrar los pesos adecuados para establecer la correspondencia entre la entrada y la salida mediante una red sin capas intermedias. Mg. Abraham Gamarra Moreno Con una capa de 56 neuronas ocultas, sí es posible establecer dicha correspondencia. De forma simplificada, el funcionamiento de una red backpropagation (backpropagation net, BPN) consiste en un aprendizaje de un conjunto predefinido de pares de entradas-salidas dados como ejemplo, empleando un ciclo propagación-adaptación de dos fases: primero se aplica un patrón de entrada como estímulo para la primera capa de las neuronas de la red, se va propagando a través de todas las capas superiores hasta generar una salida, se compara el resultado obtenido en las neuronas de salida con la salida que se desea obtener y se calcula un valor del error para cada neurona de salida. A continuación, estos errores se transmiten hacia atrás, partiendo de la capa de salida, hacia todas las neuronas de la capa intermedia que contribuyan directamente a la salida, recibiendo el porcentaje de error aproximado a la participación de la neurona intermedia en la salida original. Este proceso se repite, capa por capa, hasta que todas las neuronas de la red hayan recibido un error que describa su aportación relativa al error total. Ba- sándose en el valor del error recibido, se reajustan los pesos de conexión de cada neurona. de manera que en la siguiente vez que se presente el mismo patrón, la salida esté más cercana a la deseada; es decir, el error disminuya. La importancia de la red backpropagation consiste en su capacidad de autoadaptar los pesos de las neuronas de las capas intermedias para aprender la relación que existe entre un conjunto de patrones dados como ejemplo y sus salidas correspondientes. Para poder aplicar esa misma relación, después del entrenamiento, a nuevos vectores de entrada con ruido o incompletas, dando una salida activa si la nueva entrada es parecida a las presentadas durante el aprendizaje. Esta caracterís- tica importante, que se exige a los sistemas de aprendizaje, es la capacidad de generalización, entendida como la facilidad Mg. Abraham Gamarra Moreno 57 de dar salidas satisfactorias a entradas que el sistema no ha visto nunca en su fase de entrenamiento. La red debe encon- trar una representación interna que le permita generar las salidas deseadas cuando se le dan las entradas de entrenamiento, y que pueda aplicar, además, a entradas no presentadas durante la etapa de aprendizaje para clasificarlas según las características que compartan con los ejemplos de entrenamiento. 1. LA REGLA DELTA GENERALIZADA La regla propuesta por Widrow en 1960 (regla delta) ha sido extendida a redes con capas intermedias (regla delta generalizada) con conexiones hacia adelante (feedforward) y cuyas células tienen funciones de activación continuas (lineales o sigmoidales), dando lugar al algoritmo de retropropagación (backpropagation). Estas funciones conti- nuas son no decrecientes y derivables. La función sig- moidal pertenece a este tipo de funciones, a diferencia de la función escalón que se utiliza en el Perceptron, ya que esta última no es derivable en el punto en el que se encuentra la discontinuidad. Este algoritmo utiliza también una función o superficie de error asociada a la red, buscando el estado estable de mínima energía o de mínimo error a través del camino descendente de la superficie del error. Por ello, realimen- ta el error del sistema para realizar la modificación de los pesos en un valor proporcional al gradiente decreciente de dicha función de error. 1.1. FUNCIONAMIENTO DEL ALGORITMO El método que sigue la regla delta generalizada para ajustar los pesos es exactamente el mismo que el de la regla delta utilizada en el Perceptron y, ADALINE; es decir, los pesos se actualizan de forma pro- Mg. Abraham Gamarra Moreno 58 porcional a la delta, o diferencia entre la salida deseada y la obtenida (∂ = sal. deseada - sal. obtenida). Dada una neurona (unidad Ui) y la salida que produce, yi (Fig 1), el cambio que se produce en el peso de la conexión que une la salida de dicha neurona con la unidad Uj (wji) para un patrón de aprendizaje p determinado es: ∆w ji (t + 1) = α ∂ pj y pi En donde el subíndice p se refiere al patron de aprendizaje concreto, y ∝ es la constante o tasa de aprendizaje. Figura 27 Conexión entre una neurona de una capa oculta con una neurona de salida. El punto en el que difieren la regla delta Generalizada de la regla delta es en el valor concreto de ∂pj. Por otro lado, en las redes multinivel, a diferencia de las redes sin neuronas ocultas, en principio no se puede conocer la salida deseada de las neuronas de las capas ocultas para poder determinar los pesos en función del error cometido. Sin embar- go, inicialmente sí podemos conocer la salida deseaMg. Abraham Gamarra Moreno 59 da de las neuronas de salida. Según esto, si consi- deramos la unidad Uj de salida (Fig.1), entonces definimos ∂ pj = (d pj − y pj )⋅ f 1 (net j ) donde dpj es la salida deseada de la neurona j para el patrón p y netj es la entrada neta que recibe la neurona j. Esta fórmula es como la de la regla delta, excepto en lo que se refiere a la derivada de la función de transferencia. Este término representa la modificación que hay que realizar en la entrada que recibe la neurona j. En el caso de que dicha neurona no sea de salida, el error que se produce estará en función del error que se cometa en las neuronas que reciban como entrada la salida de dicha neurona. que se denomina procedimiento de Esto es lo propagación del error hacia atrás. Según esto, en el caso de que Uj no sea una neurona de salida (ver Figura 2), el error que se produce está en función del error que se comete en las neuronas que reciben como entrada la salida de Uj:   ∂ pj =  ∑ ∂ pk ⋅ wkj  ⋅ f 1 (net j )  k  donde el rango de k cubre todas aquellas neuronas a las que está conectada la salida de Uj. De esta forma, el error que se produce en una neurona oculta es la suma de los errores que se producen en las neuronas a las que está conectada la salida de ésta, mul- Mg. Abraham Gamarra Moreno 60 tiplicando cada uno de ellos por el peso de la conexión. Figura 28 Conexiones entre neuronas de la capa oculta con la capa de salida. 1.2. ADICIÓN DE UN MOMENTO EN LA REGLA DELTA GENERALIZADA El método de retropropagación del error, también conocido como del gradiente descendente, requiere un importante número de cálculos para lograr el ajuste de los pesos de la red. En la implementación del algoritmo, se toma una amplitud de paso que viene dada por la tasa de aprendizaje ∝. A mayor tasa de aprendizaje, mayor es la modificación de los pesos en cada iteración, con lo que el aprendizaje será más rápido, pero, por otro lado. puede dar lugar a oscilaciones. Rumelhart, Hinton y Williams sugirie- ron que para filtrar estas oscilaciones se añada en la expresión del incremento de los pesos un término (momento), β, de manera que dicha expresión quede: Mg. Abraham Gamarra Moreno 61 w ji (t + 1) = w ji (t ) + α ∂ pj y pi + β (w ji (t ) − w ji (t − 1)) = = ∆w ji (t + 1) = α ∂ pj y pi + β ∆w ji (t ) donde β es una constante (momento) que determínale efecto en t+1 del cambio de los pesos en el instante t. Con este momento se consigue la convergencia de la red en menor número de iteraciones, ya que si en t el incremento de un peso era positivo y en t+l también, entonces el descenso error en t+l es mayor. por la superficie de Sin embargo, si en t el in- cremento era positivo y en t+l es negativo, el paso que se da en t+1 es más pequeño, lo cual es adecuado, ya que eso significa que se ha pasado por un mínimo y que los pasos deben ser menores para poder alcanzarlo. Resumiendo, el algoritmo backpropagation queda finalmente: [ ] w ji (t + 1) = w ji (t ) + ∆w ji (t + 1)   ∆w ji (t + 1) = w ji (t ) + α ∂ pj y pi + β ∆w ji (t )   donde: ∂ pj = (d pj − y pj ) ⋅ f 1 (net j ) si Uj es una neurona de salida y Mg. Abraham Gamarra Moreno 62   ∂ pj =  ∑ ∂ pk ⋅ wkj  ⋅ f 1 (net j )  k  si Uj no es una neurona de salida. 1.3. ESTRUCTURA Y APRENDIZAJE DE LA RED BACKPROPAGATION En una red backpropagation existe una capa de entrada con n neuronas y una capa de salida con m neuronas y al menos una capa oculta de neuronas internas. Cada neurona de una capa (excepto las de entrada) recibe entradas de todas las neuronas de la capa anterior y envía su salida a todas las neuronas de la capa posterior (excepto las de salida). No hay conexiones hacia atrás feedback ni laterales entre backpropagation tiene neuronas de la misma capa. La aplicación del algoritmo dos fases, una hacia adelante y otra hacia atrás. Durante la primera fase el patrón de entrada es presentado a la red y propagado a través de las capas hasta llegar a la capa de salida. Obtenidos los valores de salida de la red, se inicia la segunda fase, comparándose estos valores con la salida esperada para obtener el error. Se ajustan los pesos de la última capa proporcionalmente al error. Se pasa a la capa anterior con (backpropagation), una retropropagación ajustando del convenientemente error los pesos y continuando con este proceso hasta llegar a la primera capa. De esta manera se han modificado los pesos de las conexiones de la red para cada ejemplo o patrón de aprendizaje del problema, del Mg. Abraham Gamarra Moreno 63 que conocíamos su valor de entrada y la salida deseada que debería generar la red ante dicho patrón. Figura 29 Modelo de arquitectura de una red backpropagation. Pueden existir neuronas ficticias de salida y pesos umbral θ de entrada al resto de las neuronas de cada capa. A diferencia de la regla delta en el caso del Perceptron, la técnica backpropagation o generalización de la regla delta, requiere el uso de neuronas cuya Mg. Abraham Gamarra Moreno 64 función de activación sea continua, y por tanto, diferenciable. Generalmente, la función utilizada será del tipo sigmoidal (Fig. 4). Figura 30 Función de activación sigmoidal: y=1/1+e-x A continuación se presentan, a modo de síntesis. los pasos y fórmulas a utilizar para aplicar el algoritmo de entrenamiento: Paso 1 Inicializar los pesos de la red con valores pequeños aleatorios. Paso 2 Presentar un xp1,.xp2,...,xpn, patrón y de especificar entrada, la salida Xp: deseada que debe generar la red: d1, d2,..., dM (si la red se utiliza como un clasificador, todas las salidas deseadas serán cero, salvo una, que será la de la clase a la que pertenece el patrón de entrada). Mg. Abraham Gamarra Moreno 65 Paso 3 Calcular la salida actual de la red, para ello presentamos las entradas a la red y vamos calculando la salida que presenta capa hasta llegar a la capa de salida ésta será la salida de la red y1, y2,...,yM. Los pasos son los siguientes: • Se calculan las entradas netas para las neuronas ocultas procedentes de las neuronas de entrada. Para una neurona j oculta: N net = ∑ whji h pj x pi + θ jh i =1 en donde el índice h se refiere a magnitudes de la capa oculta (hidden); el subíndice p, al pésimo vector de entrenamiento, y j a la j-ésima neurona oculta. El término θ puede ser opcional, pues actúa como una entrada más. • Se calculan las salidas de las neuronas ocultas: ( y pj = f jh net hpj • ) Se realizan los mismos cálculos para obtener las salidas de las neuronas de salida (capa o: output) net o pk L = ∑ wkjo ⋅ y pj + θ ko Mg. Abraham Gamarra Moreno j =1 66 ( y pk = f ko net opk ) Paso 4 Calcular los términos de error para todas las neuronas. Si la neurona k es una neurona de la capa de salida, el valor de la delta es: ∂ o pk = (d pk − y pk )⋅ f o1 k (net ) o pk La función f, como se citó anteriormente, debe cumplir el requisito de ser derivable, lo que implica la imposibilidad de utilizar una función escalón. En general, disponemos de dos formas de función de salida que nos pueden servir: la función lineal de salida (fk(netjk) = netjk) y la función sigmoidal representada en la figura 4 y definida por la expresión: f k (net jk ) = 1 − net 1 + e jk La selección de la función de salida depende de la forma en que se decida representar los datos de salida: si se desea que las neuronas de salida sean binarias, se utiliza la función sigmoidal, puesto que esta función es casi biestable y, además, derivable. En otros casos es tan aplicable una función como otra. 1 Para la función lineal, tenemos: f ko = 1 mientras que la derivada de una función f sigmoidal es: Mg. Abraham Gamarra Moreno 67 ( ) f ko = f ko 1 − f ko = y pk (1 − y pk ) 1 por lo que los términos de error para las neuronas de salida quedan: ∂ opk = (d pk − y pk ) para la salida lineal, y ∂ opk = (d pk − y pk )⋅ y pk (1 − y pk ) para la salida sigmoidal. Si la neurona j no es de salida, entonces la derivada parcial del error no puede ser evaluada directamente. Por tanto, se obtiene el desarrollo a partir de valores que son conocidos y otros que pueden ser evaluados. La expresión obtenida en este caso es: ∂ = f h pj h1 j (net )∑ ∂ h pj o pk ⋅ wkjo k donde observamos que el error en las capas ocultas depende de todos los términos de error de la capa de salida. De hacia atrás. aquí surge el de propagación En particular, para la función sigmoi- dal: ∂ hpj = y pj (1 − y pj )∑ ∂ opk ⋅ wkjo k Mg. Abraham Gamarra Moreno término 68 donde k se refiere a todas las neuronas de la capa superior a la de la neurona j. Así, el error que se produce en una neurona oculta es proporcional a la suma de los errores conocidos que se producen en las neuronas a las que está conectada la salida de ésta, multiplicado cada uno de ellos por el peso de la conexión. Los umbrales internos de las neuronas se adaptan de forma similar, considerando que están conectados con pesos desde entradas auxiliares de valor constante. Paso 5 Actualización de los pesos Para ello, utilizamos el algoritmo recursivo, comenzando por las neuronas de salida y trabajando hacia atrás hasta llegar a la capa de entrada, ajustando los pesos de la forma siguiente: Para los pesos de las neuronas de la capa de salida: wkjo (t + 1) = wkjo (t ) + ∆wkjo (t + 1) ∆wkjo (t + 1) = α ⋅ ∂ opk ⋅ y pj y para los pesos de las neuronas de la capa oculta: whji (t + 1) = whji (t ) + ∆whji (t + 1) ∆whji (t + 1) = α ⋅ ∂ hpj ⋅ x pi Mg. Abraham Gamarra Moreno 69 En ambos casos, para acelerar el proceso de aprendizaje, se puede añadir un término momento de valor: β (wkjo (t ) − wkjo (t − 1)) en el caso de la neurona de salida, y β (whji (t ) − whji (t − 1)) cuando se trata de una neurona oculta. Paso 6 El proceso se repite hasta que el término de error Ep = M 1 2 2 ∂ ∑ pk k =1 resulta aceptablemente pequeño para cada uno de los patrones aprendidos. Mg. Abraham Gamarra Moreno 70 BIBLIOGRAFIA 1. Hilera J.; Martinez V. (1995). Redes Neuronales Artificiales: Fundamentos, modelos y Aplicaciones. España: Editorial RA-MA. 2. Hian-Kang W. (1994). Neural Networks And Simulation Methods. USA: Editorial Marcel Dekker, INC. 3. Freeman J.; Skapura D. (1995). Redes Neuronales: Algoritmos y técnicas de programación. USA: Addison Wesley / Diaz de Santos. 4. Pham D.T. y Karaboga D. (2000). Intelligent Optimisation Techniques. USA: Springer-Verlag. 5. Sierra Molina, Guillermo y otros (1995). “Sistemas Expertos en Contabilidad y Administración de Empresas”. Editorial Addison Wesley. USA. Mg. Abraham Gamarra Moreno
Copyright © 2024 DOKUMEN.SITE Inc.