Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
Redes Neuronales Artificiales - RNA 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 neuronas 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 distribuida 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 determinada 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 Ing. CIP Renzo Iván Vergara Quiche
Pág. 1
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
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.
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 .
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 (inhibitorios); 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.
Ing. CIP Renzo Iván Vergara Quiche
Pág. 2
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
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 nombre de capas ocultas. La figura 4 presenta el esquema típico de una red de neuronas.
Figura 4 Esquema típico de una red de neuronas
Ing. CIP Renzo Iván Vergara Quiche
Pág. 3
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
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. En la tabla 1 se muestran las características topológicas de los modelos de redes monocapa más conocidos.
Tabla 1 modelos de redes monocapa más conocidos
Figura 5 Red Hopfield
Ing. CIP Renzo Iván Vergara Quiche
Pág. 4
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
3.2. REDES NEURONALES MULTICAPAS En el caso de las redes multicapas, sus unidades se clasifican en tres tipos: • •
•
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 conexiones 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).
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).
Ing. CIP Renzo Iván Vergara Quiche
Pág. 5
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
Figura 7 Perceptron multinivel (red feedforward multicapa)
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 frontera lineal en el espacio de patrones de entrada.
Ing. CIP Renzo Iván Vergara Quiche
Pág. 6
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
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). 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.
Ing. CIP Renzo Iván Vergara Quiche
Pág. 7
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
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 lograr 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 secuencialmente 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 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
Tabla 2 Patrones de entrenamiento que permiten identificar si un animal es un mamífero (1) o un ave (0)
Ing. CIP Renzo Iván Vergara Quiche
Pág. 8
Universidad Nacional José Faustino Sánchez Carrión
•
SISTEMAS INTELIGENTES SESIÓN Nº 12
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.
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.
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). Ing. CIP Renzo Iván Vergara Quiche
Pág. 9
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 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 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 generalizació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 la fuerza de interconexión basada solamente en los valores de la entrada y la salida de la red en progresión. En otras palabras, en 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 en lo que se conoce con el nombre de la teoría de la "autoorganización". Este tema no será tratado en nuestro estudio.
Ing. CIP Renzo Iván Vergara Quiche
Pág. 10
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
6. REDES NEURONALES Y COMPUTADORES TRADICIONALES 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. 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 procesador 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:
Nombre de la Red Avalancha
Aplicaciones más importantes
Año 1967
• •
Comentarios
Limitaciones
Reconocimiento de habla continua Control brazos robot
•
Ninguna red sencilla puede hacer todo esto
•
Teoría Resonancia Adaptativa (ART)
1986
•
Reconocimiento de patrones (radar, sonar, etc.)
• •
Sofisticada Poco utilizada
•
Adaline / Madaline
1960
• •
Filtrado de señales Ecualizador adaptativo Módems
•
Rápida, fácil de implementar con circuitos analógicos o VLSI
•
Síntesis de voz desde texto
•
Red popular
•
•
Back Propagation
1974 1985
•
Ing. CIP Renzo Iván Vergara Quiche
más
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 Necesita mucho tiempo
Inventada /desarrollada por •
Stephen Grossberg
•
Gail Carpenter, Stephen Grossberg Bernard Widrow
•
•
Paul Werbos, Pág. 11
Universidad Nacional José Faustino Sánchez Carrión
Nombre de la Red
1985
SESIÓN Nº 12
Aplicaciones más importantes
Año
• • •
Memoria asociativa bidireccional
SISTEMAS INTELIGENTES
•
Comentarios
Control de robots Predicción Reconocimiento de patrones
Memoria heteroasociativa de acceso por contenido
•
• • •
Numerosas aplicaciones con éxito Facilidad de aprendizaje Potente Aprendizaje y arquitectura simples
para el aprendizaje y muchos ejemplos
•
• Máquinas Boltzmann Cauchy
de y
1985 1986
•
•
Reconocimiento de patrones (imágenes, sonar y radar) Optimización
• •
Redes simples Capacidad de representación óptima de patrones
•
Posiblemente mejor realización que las redes de Hopfield Semejante a Avalancha
•
Brain Estate in a Box
1977
•
Extracción conocimiento bases de datos
de de
•
Cerebellatron
1969
•
Control del movimiento de los brazos de un robot
•
Counter propagation
1986
•
Comprensión imágenes
de
•
Hopfield
1982
Reconstrucción patrones optimización
de y
•
•
• Neocognitron
Perceptron
1978 1984
•
Reconocimiento caracteres manuscritos
de
•
1957
•
Reconocimiento de caracteres impresos
• •
Self Organizing Map (SOM) Topology Preserving Map (TPM)
1980 1984
•
Reconocimiento de patrones, codificación de datos, optimización
Ing. CIP Renzo Iván Vergara Quiche
•
Inventada /desarrollada por
Limitaciones
•
Combinación de Perceptron y TPM Puede implementarse en VLSI Fácil de conceptualizar Insensible a la translación, rotación y escala
•
La red más antigua Construida en HW Realiza mapas de características comunes de los datos aprendidos
•
•
•
•
Baja capacidad de almacenamien to Los datos deben ser codificados La máquina de Boltzmann necesita un tiempo muy largo de aprendizaje Realización y potenciales aplicaciones no estudiadas totalmente Requiere complicadas entradas de control Numerosas neuronas conexiones Capacidad estabilidad
David Parker, David Rumelhart
•
Bart Kosko
•
Jeffrey Hinton, Terry Sejnowski, Harold Szu
•
James Anderson
•
David Marr, James Albus, Andres Pellionez Robert Hecht Nielsen John Hopfield
• y y
•
Requiere muchos elementos de proceso, niveles y conexiones No puede reconocer caracteres complejos Requiere mucho entrenamiento
•
K. Fukushima
•
Frank Rosenblatt
•
Teuvo Kohonen
Pág. 12
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
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.
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. Inspección de la calidad.
Ing. CIP Renzo Iván Vergara Quiche
Pág. 13
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
Medicina • • • • • •
Analizadores del habla para la ayuda de audición de sordos profundos. Diagnóstico y tratamiento a partir de síntomas y/o de datos (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.
analíticos
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.
La Red Backpropagation En 1986, Rumelhart, Hinton y Williams, basándose en los trabajos 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 importante 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. Con una capa de neuronas ocultas, sí es posible establecer dicha correspondencia.
Ing. CIP Renzo Iván Vergara Quiche
Pág. 14
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
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. Basá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ística importante, que se exige a los sistemas de aprendizaje, es la capacidad de generalización, entendida como la facilidad de dar salidas satisfactorias a entradas que el sistema no ha visto nunca en su fase de entrenamiento. La red debe encontrar 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 continuas son no decrecientes y derivables. La función sigmoidal 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, realimenta 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 proporcional 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:
Ing. CIP Renzo Iván Vergara Quiche
Pág. 15
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
En donde el subíndice p se refiere al patrón 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 embargo, inicialmente sí podemos conocer la salida deseada de las neuronas de salida. Según esto, si consideramos la unidad Uj de salida (Fig.1), entonces definimos:
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. Esto es lo que se denomina procedimiento de 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:
Ing. CIP Renzo Iván Vergara Quiche
Pág. 16
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
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, multiplicando 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 sugirieron 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:
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+1 también, entonces el descenso por la superficie de error en t+1 es mayor. Sin embargo, si en t el incremento era positivo y en t+1 es
Ing. CIP Renzo Iván Vergara Quiche
Pág. 17
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
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:
donde:
si Uj es una neurona de salida y
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 neuronas de la misma capa. La aplicación del algoritmo backpropagation tiene 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 una retropropagación del error (backpropagation), ajustando convenientemente 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 que conocíamos su valor de entrada y la salida deseada que debería generar la red ante dicho patrón.
Ing. CIP Renzo Iván Vergara Quiche
Pág. 18
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
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 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: Ing. CIP Renzo Iván Vergara Quiche
Pág. 19
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
Paso 1 Inicializar los pesos de la red con valores pequeños aleatorios. Paso 2 Presentar un patrón de entrada, Xp: xp1,.xp2,...,xpn, y especificar la salida 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). 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:
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:
•
Se realizan los mismos cálculos para obtener las salidas de las neuronas de salida (capa o: output)
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:
Ing. CIP Renzo Iván Vergara Quiche
Pág. 20
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
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:
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. Para la función lineal, tenemos:
mientras que la derivada de una función f sigmoidal es:
por lo que los términos de error para las neuronas de salida quedan:
Para la salida lineal, y
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:
donde observamos que el error en las capas ocultas depende de todos los términos de error de la capa de salida. De aquí surge el término de propagación hacia atrás. En particular, para la función sigmoidal:
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 Ing. CIP Renzo Iván Vergara Quiche
Pág. 21
Universidad Nacional José Faustino Sánchez Carrión
SISTEMAS INTELIGENTES SESIÓN Nº 12
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:
y para los pesos de las neuronas de la capa oculta:
En ambos casos, para acelerar el proceso de aprendizaje, se puede añadir un término momento de valor:
en el caso de la neurona de salida, y
cuando se trata de una neurona oculta.
Paso 6
El proceso se repite hasta que el término de error
resulta aceptablemente pequeño para cada uno de los patrones aprendidos.
Ing. CIP Renzo Iván Vergara Quiche
Pág. 22