introduccion a las redes neuronales artificiales

152
REDES NEURONALES ARTIFÍCIALES I CAPITULO I INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES INTRODUCION: El cerebro es un procesador de información con unas características muy notables: es capaz de procesar a gran velocidad grandes cantidades de información procedentes de los sentidos, combinarla o compararla con la información almacenada y dar respuestas adecuadas incluso en situaciones nuevas. Logra discernir un susurro en una sala ruidosa, distinguir una cara en una calle mal iluminada o leer entre líneas en una declaración política; pero lo más impresionante de todo es su capacidad de aprender a representar la información necesaria para desarrollar tales habilidades sin instrucciones explícitas para ello. Aunque todavía se ignora mucho sobre la forma en que el cerebro aprende a procesar la información, se han desarrollado modelos que tratan de mimetizar tales habilidades; denominados redes neuronales artificiales ó modelos de computación conexionista (otras denominaciones son computación neuronal y procesamiento distribuido paralelo o P.D.P.). La elaboración de estos modelos supone en primer lugar la deducción de los rasgos o características esenciales de las neuronas y sus conexiones, y en segundo lugar, la implementación del modelo en una computadora de forma que se pueda simular. Es obvio decir que estos modelos son idealizaciones burdas de las auténticas redes neuronales, en muchos casos de dudosa plausibilidad neurofisiológica, pero que sin embargo resultan interesantes cuando menos por sus capacidades de aprendizaje. De la prehistoria al futuro que tal vez Babbage nunca soñó. El desarrollo de máquinas que puedan imitar la capacidad de aprendizaje del hombre es actualmente un desafío en el que pone sus miras buena parte de la comunidad científica. Con esta amplia Introducción a las redes neuronales, se pretende 1

Upload: escom

Post on 12-Jun-2015

12.061 views

Category:

Education


6 download

DESCRIPTION

INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

TRANSCRIPT

Page 1: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

CAPITULO I

INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

INTRODUCION:

El cerebro es un procesador de información con unas características muy notables: es capaz de procesar a gran velocidad grandes cantidades de información procedentes de los sentidos, combinarla o compararla con la información almacenada y dar respuestas adecuadas incluso en situaciones nuevas. Logra discernir un susurro en una sala ruidosa, distinguir una cara en una calle mal iluminada o leer entre líneas en una declaración política; pero lo más impresionante de todo es su capacidad de aprender a representar la información necesaria para desarrollar tales habilidades sin instrucciones explícitas para ello.

Aunque todavía se ignora mucho sobre la forma en que el cerebro aprende a procesar la información, se han desarrollado modelos que tratan de mimetizar tales habilidades; denominados redes neuronales artificiales ó modelos de computación conexionista (otras denominaciones son computación neuronal y procesamiento distribuido paralelo o P.D.P.). La elaboración de estos modelos supone en primer lugar la deducción de los rasgos o características esenciales de las neuronas y sus conexiones, y en segundo lugar, la implementación del modelo en una computadora de forma que se pueda simular. Es obvio decir que estos modelos son idealizaciones burdas de las auténticas redes neuronales, en muchos casos de dudosa plausibilidad neurofisiológica, pero que sin embargo resultan interesantes cuando menos por sus capacidades de aprendizaje.

De la prehistoria al futuro que tal vez Babbage nunca soñó. El desarrollo de máquinas que puedan imitar la capacidad de aprendizaje del hombre es actualmente un desafío en el que pone sus miras buena parte de la comunidad científica. Con esta amplia Introducción a las redes neuronales, se pretende dar a conocer los elementos básicos de lo que comúnmente se denomina Inteligencia Artificial, para así comprender de qué modo pueden llegar a «pensar» y «aprender» las máquinas.

El hombre se ha caracterizado siempre por una búsqueda constante de nuevas vías para mejorar sus condiciones de vida. Estos esfuerzos le han servido para reducir el trabajo en aquellas operaciones en las que la fuerza juega un papel primordial. Los progresos obtenidos han permitido dirigir estos esfuerzos a otros campos, como por ejemplo, a la construcción de máquinas calculadoras que ayuden a resolver de forma automática y rápida determinadas operaciones que resultan tediosas cuando se realizan a mano.

Uno de los primeros en acometer esta empresa fue Charles Babbage, quien trató infructuosamente de construir una máquina capaz de resolver problemas matemáticos. Posteriormente otros tantos intentaron construir máquinas similares, pero no fue hasta la Segunda Guerra Mundial, cuando ya se disponía de instrumentos electrónicos, que se empezaron a recoger los primeros frutos. En 1946 se construyó la primera computadora

1

Page 2: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

electrónica, ENIAC. Desde entonces los desarrollos en este campo han tenido un auge espectacular.

Estas máquinas permiten implementar fácilmente algoritmos para resolver multitud de problemas que antes resultaban engorrosos de resolver. Sin embargo, se observa una limitación importante: ¿qué ocurre cuando el problema que se quiere resolver no admite un tratamiento algorítmico, como es el caso, por ejemplo, de la clasificación de objetos por rasgos comunes?.

Este ejemplo demuestra que la construcción de nuevas máquinas más versátiles requiere un enfoque del problema desde otro punto de vista.

Los desarrollos actuales de los científicos se dirigen al estudio de las capacidades humanas como una fuente de nuevas ideas para el diseño de las nuevas máquinas. Así, la inteligencia artificial es un intento por descubrir y describir aspectos de la inteligencia humana que pueden ser simulados mediante máquinas. Esta disciplina se ha desarrollado fuertemente en los últimos años teniendo aplicación en algunos campos como visión artificial, demostración de teoremas, procesamiento de información expresada mediante lenguajes humanos... etc.

Las redes neuronales son otra forma de emular otra de las características propias de los humanos: la capacidad de memorizar y asociar hechos. Si examinamos con atención aquellos problemas que no pueden expresarse a través de un algoritmo nos daremos cuenta de que todos ellos tienen una característica común: la experiencia. El hombre es capaz de resolver estas situaciones acudiendo a la experiencia acumulada. Así, parece claro que una forma de aproximarse al problema consista en la construcción de sistemas que sean capaces de reproducir esta característica humana. En definitiva, las redes neuronales no son más que un modelo artificial y simplificado del cerebro humano, que es el ejemplo más perfecto del que disponemos de sistema que es capaz de adquirir conocimiento a través de la experiencia. Una red neuronal es «un nuevo sistema para el tratamiento de la información cuya unidad básica de procesamiento está inspirada en la célula fundamental del sistema nervioso humano, la neurona».

1.1 MARCO HISTORICO DE LAS REDES NEURONALES

Fue en 1943 cuando Warren McCulloch y Walter Pitts propusieron el clásico modelo de neurona en el que se basan las redes neuronales actuales. Seis años después, en 1949, en su libro The Organization of Behavior, Donald Hebb presentaba su conocida regla de aprendizaje.

En 1956 se organizó en Dartmouth la primera conferencia sobre IA. Aquí se discutió el uso potencial de las computadoras para simular “todos los aspectos del aprendizaje o cualquier otra característica de la inteligencia” y se presentó la primera simulación de una red neuronal, aunque todavía no se sabían interpretar los datos resultantes.

2

Page 3: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

En 1957, Frank Rosenblatt presentó el Perceptron, una red neuronal con aprendizaje supervisado cuya regla de aprendizaje era una modificación de la propuesta por Hebb. El Perceptron trabaja con patrones de entrada binarios, y su funcionamiento, por tratarse de una red supervisada, se realiza en dos fases: una primera en la que se presentan las entradas y la salidas deseadas; en esta fase la red aprende la salida que debe dar para cada entrada. La principal aportación del Perceptron es que la adaptación de los pesos se realiza teniendo en cuenta el error entre la salida que da la red y la salida que se desea. En la fase siguiente, de operación, la red «es capaz» de responder adecuadamente cuando se le vuelven a presentar los patrones de entrada. Se crearon grandes expectativas sobre sus aplicaciones, que posteriormente se tornaron en gran decepción cuando en 1969 Minsky y Papert demostraron las grandes limitaciones de esta red.

En 1959, Widrow publica una teoría sobre la adaptación neuronal y unos modelos inspirados en esa teoría, el Adaline (Adaptative Linear Neuron) y el Madaline (Multiple Adaline). Estos modelos fueron usados en numerosas aplicaciones y permitieron usar, por primera vez, una red neuronal en un problema importante del mundo real: filtros adaptativos para eliminar ecos en las líneas telefónicas.

En los años 60 se propusieron otros dos modelos, también supervisados, basados en el Perceptron de Rosenblatt denominados Adaline y Madaline. En estos, la adaptación de los pesos se realiza teniendo en cuenta el error, calculado como la diferencia entre la salida deseada y la dada por la red, al igual que en el Perceptron. Sin embargo, la regla de aprendizaje empleada es distinta. Se define una función error para cada neurona que da cuenta del error cometido para cada valor posible de los pesos cuando se presenta una entrada a la neurona. Así, la regla de aprendizaje hace que la variación de los pesos se produzca en la dirección y sentido contrario del vector gradiente del error. A esta regla de aprendizaje se la denomina Delta.

En 1962, Rosemblatt publica los resultados de un ambicioso proyecto de investigación, el desarrollo del Perceptrón, un identificador de patrones ópticos binarios, y salida binaria. Las capacidades del Perceptrón se extendieron al desarrollar la regla de aprendizaje delta, que permitía emplear señales continuas de entrada y salida.

1.2 DEFINICIÓNES DE REDES NEURONALES

Una red neuronal es un sistema compuesto de muchos elementos procesadores simples operando en paralelo, cuya función es determinada por la estructura de la red, fuerza en las conexiones y el procesamiento realizado por los elementos computacionales en los nodos.

Haykin, S. (1994, Neural Networks: A comprehensive foundation, NY, McMillan, P.2): "Una red neuronal es un procesamiento distribuido masivamente paralelo que tiene una tendencia natural para almacenar conocimiento empírico y hacerlo disponible para el uso. Recuerda al cerebro en dos aspectos: 1.- Conocimiento se adquiere por la red a través de un proceso de aprendizaje.

3

Page 4: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

2.- Las conexiones interneurónicas se conocen como pesos synapticos y se usan para almacenar el conocimiento."

Zurada,J.M. (1992, Introduction to artificial neural nsystems, Boston: PWS Publishing Company, P. XV): "Sistemas de redes neuronales artificiales, o redes neuronales son sistemas celulares físicos que puedan adquirir, almacenar y usar conocimiento empírico."

Las redes neuronales son una forma de un sistema computarizado multi-proceso con: Elementos de procesamiento sencillos. Alto grado de interconexión. Mensajes simples escalares. Interacción adaptable entre elementos.

El concepto de Red Neuronal Artificial está inspirado en las Redes Neuronales Biológicas. Una Red Neuronal Biológica es un dispositivo no lineal altamente paralelo, caracterizado por su robustez y su tolerancia a fallos. Sus principales características son las siguientes:

Aprendizaje mediante adaptación de sus pesos sinápticos a los cambios en el entorno.

Manejo de imprecisión, ruido e información probabilística. Generalización a partir de ejemplos.

Las Redes Neuronales Artificiales intentan imitar algunas, o todas, de estas características. Este paradigma de programación difiere de las secuencias de instrucciones en que la información se encuentra almacenada en las conexiones sinápticas. Cada neurona es un procesador elemental con operaciones muy primitivas como la suma ponderada de sus pesos de entrada y la amplificación o umbralización de esta suma.

Una Red Neuronal viene caracterizada por su topología, por la intensidad de la conexión entre sus pares de neuronas (pesos), por las propiedades de los nodos y por las reglas de actualización de pesos. Las reglas de actualización, también llamadas de aprendizaje, controlan los pesos y/o estados de los elementos de procesados (neuronas).

Los principales aspectos de este modelo de computación distribuida son los siguientes:

Un conjunto de unidades de procesamiento.

Un estado de activación para cada unidad, que es equivalente a la salida de la unidad.

Conexiones entre unidades, generalmente definida por un peso , que determina el efecto de la unidad j sobre la unidad k.

Una regla de propagación que determina la entrada de la unidad a partir de sus entradas externas.

4

Page 5: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Una función de activación que determina el estado de activación en función de la entrada de la unidad (en algunos casos la función de activación tiene en cuenta la activación actual de la unidad).

Una entrada externa (o offset) para cada unidad. Un método para modificar los valores de los pesos (regla de aprendizaje). Un entorno de trabajo en el que sistema opere, compuesto por señales de entrada y,

si es necesario, señales de error.

Normalmente, la dinámica de actuación es definir una función objetivo que representa el estado completo de la red y localizar el conjunto de mínimos de esa función que se corresponden con los diferentes estados estables de la red.

1.3 CARACTERISTICAS DE LAS REDES NEURONALES.

Desde hace algunos años, algunos investigadores han estado creando modelos, tanto en hardware como en software, que interpretan la actividad cerebral en un esfuerzo por producir una forma de inteligencia artificial.

Las RNA están compuestas de un gran número elementos de procesamiento altamente interconectados (Neuronas) trabajando al mismo tiempo para la solución de problemas específicos. Las RNA, tal como las personas, aprenden de la experiencia.

Las RNA están compuestas de muchos elementos sencillos que operan en paralelo, el diseño de la red está determinado mayormente por las conexiones entre sus elementos. Al igual que las conexiones de las neuronas cerebrales.

Las RNA han sido entrenadas para la realización de funciones complejas en variados campos de aplicación. Hoy en día pueden ser entrenadas para la solución de problemas que son difíciles para sistemas computacionales comunes o para el ser humano.

Las características de operación son las siguientes:

Pesos

Las RNA puede tener factores de peso fijos o adaptables. Las que tienen pesos adaptables emplean leyes de aprendizaje para ajustar el valor de la fuerza de un interconexión con otras neuronas. Si las neuronas utilizan pesos fijos, entonces su tarea deberá estar previamente definida. Los pesos serán determinados a partir de una descripción completa del problema. Por otra parte, los pesos adaptables son esenciales si no se conoce previamente  cual deberá de ser su valor correcto.

5

Page 6: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Dos tipos de aprendizaje

Existen dos tipo de aprendizaje: supervisado y no supervisado. El primero ocurre cuando se le proporciona a la red tanto la entrada como la salida correcta, y la red ajusta sus pesos tratando de minimizar el error de su salida calculada. Este tipo de entrenamiento se aplica por ejemplo, en el reconocimiento de patrones. El entrenamiento no supervisado se presenta cuando a la red se le proporcionan únicamente los estímulos, y la red ajusta sus interconexiones basándose únicamente es sus estímulos y la salida de la propia red. Las leyes de aprendizaje determinan como la red ajustará sus pesos utilizando una función de error o algún otro criterio. La ley de aprendizaje adecuada se determina en base a la naturaleza del problema que se intenta resolver.

Dos fases de operación

Las RNA adaptables tienen dos fases en su operación.

1. Entrenamiento de la red. El usuario proporciona a la red un número "adecuado" de estímulos de entrada, y de salida, la red entonces ajusta su pesos de interconexión o sinápsis hasta que la salida de la red esta "lo suficientemente cerca" de la salida correcta.

2. Recuperación de lo aprendido. A la red se le presenta un conjunto de estímulos de entrada y esta simplemente calcula su salida. Cuando la red emplea entrenamiento no supervisado, algunas veces será necesario que reajuste su sinápsis durante la fase de recuperación.

No son algorítmicas

La gran diferencia del empleo de las redes neuronales en relación con otras aplicaciones de la computación radica en que no son algorítmicas, esto es no se programan haciéndoles seguir una secuencia predefinida de instrucciones. Las RNA generan ellas mismas sus propias "reglas", para asociar la respuesta a su entrada; es decir, aprende por ejemplos y de sus propios errores.

El conocimiento de una RNA se encuentra en la función de activación utilizada y en los valores de sus pesos.

Asociar y generalizar sin reglas como en el cerebro humano

Las redes neuronales formadas por los perceptrones se interconectan en forma muy similar a como las neuronas humanas se disponen en la corteza cerebral humana, y lo más importante, son capaces de asociar y generalizar sin reglas. Han sido utilizadas con gran éxito para reconocer retornos de sonar bajo el agua, escritura a mano, voz, topografía de terrenos, controlar brazos de robots, evaluar datos personales, modelar fenómenos cognoscitivos, y, predecir tendencias financieras.

6

Page 7: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Requieren de algún tipo de patrón

La clase de problemas que mejor se resuelven con las redes neuronales son los mismos que el ser humano resuelve mejor: Asociación, evaluación, y reconocimiento de patrones. Las redes neuronales son perfectas para problemas que son muy difíciles de calcular pero que no requieren de respuestas perfectas, sólo respuestas rápidas y buenas. Tal y como acontece con el escenario bursátil en el que se quiere saber ¿compro?, ¿vendo?, ¿mantengo?, o en el reconocimiento cuando se desea saber ¿se parece? ¿es el mismo pero tienen una ligera modificación?

Por otra parte, las redes neuronales son muy malas para cálculos precisos, procesamiento serie, y no son capaces de reconocer nada que no tenga inherentemente algún tipo de patrón. Es por esto, que no pueden predecir la lotería, ya por definición es un proceso al azar.

Existen varias formas de hacer las conexiones en una RNA, así como existen varias formas de conectar neuronas biológicas en el cerebro. Cada tipo sirve para diferentes procesos, el elegir la correcta topología y sus características, es imprescindible para lograr fácilmente la solución del problema.

1.4 APLICACIONES DE LAS REDES NEURONALES.

Desde el punto de vista de la aplicaciones, la ventaja de las Redes Neuronales Artificiales (RNA), reside en el procesado paralelo, adaptativo y no lineal. Las (RNA) han encontrado muchas aplicaciones con éxito en la visión artificial, en el procesado de señales e imágenes, reconocimiento del habla y de caracteres, sistemas expertos, análisis de imágenes médicas, control remoto, control de robots, inspección industrial y exploración científica. El dominio de aplicación de las (RNA) se puede clasificar de la siguiente forma: asociación y clasificación, regeneración de patrones, regresión y generalización, y optimización.

Con el fin de llegar al entendimiento global de (RNA), adoptamos la siguiente perspectiva, llamada top-down que empieza por la aplicación se pasa al algoritmo y de aquí a la arquitectura, como se muestra en la figura 1.1

7

Page 8: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 1.1 Diagrama Topdow

Esta aproximación a las (RNA) está motivada por la aplicación, basada en la teoría y orientada hacia la implementación. Las principales aplicaciones son para el procesado de señal y el reconocimiento de patrones. La primera etapa algorítmica representa una combinación de la teoría matemática y la fundamentación heurística por los modelos neuronales. El fin último es la construcción de neurocomputadores digitales, con la ayuda de las tecnologías VLSI y el procesado adaptativo, digital y paralelo.

•Las Redes Neuronales son útiles para::

Clasificación de patrones Aproximación de funciones Mapeo En los que exista información imprecisa y con tolerancia a fallos Aprendizaje Adaptativo. Autoorganización. Tolerancia a Fallos. Operación en tiempo real. Fácil construcción en circuitos integrados.

1.5 MODELO BIOLÓGICO NEURONAL.

El cerebro, como todo el organismo animal, está formado por células llamadas neuronas. La estructura y la comunicación de las neuronas fueron descritas por el español Santiago Ramón y Cajal, quien encontró una característica fundamental de la comunicación entre las células nerviosas: casi nunca se tocan, están separados por pequeñísimos espacios, cuyo significado y enorme importancia vendría a conocerse mucho tiempo después. A pesar de las diferencias en la forma de las neuronas, su estructura en los sitios en que se comunican unas con otras es muy similar. La parte de la neurona que se comunica con otra neurona tiene siempre una estructura típica, y la región de la neurona que recibe ese contacto también tiene una forma característica. A esta zona de integración de la neurona se le llama

8

Page 9: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

sinapsis, y su funcionamiento es esencial para explicar prácticamente todas las acciones del cerebro, desde la más sencilla como ordenar a los músculos que se contraigan y se relajen en forma coordinada para llevar a cabo un simple movimiento, hasta las más complicadas tareas intelectuales, pasando también por las funciones que originan, controlan y modulan las emociones.

A través de esta comunicación las neuronas forman redes complicadísimas, que por supuesto estamos lejos de conocer por completo. Sabemos que unos de estos circuitos están relacionados con el sueño, otros con el movimiento, y otros más con las emociones y la conducta. La identificación de éstos circuitos puede lograrse con distintos métodos, pero uno relativamente simple consiste en estimular una neurona o un grupo de neuronas y luego tomar un registro en las neuronas que sospechamos se comunican con las primeras.

Estos experimentos demostraron la localización de las funciones motoras en la corteza del cerebro y la existencia de conexiones neuronales desde ésa hasta los músculos. Se observó en éstos experimentos que el movimiento y la sensibilidad de algunas regiones del cuerpo requieren un mayor número de neuronas en la corteza.

El cerebro humano contiene aproximadamente 12 billones (1014)de células nerviosas o neuronas. Cada neurona tiene de 5.600 a 60.000 (103 a 104) conexiones dendríticas provenientes de otras neuronas. Estas conexiones transportan los impulsos enviados desde otras neuronas y están conectadas a la membrana de la neurona. Cada neurona tiene una salida denominada axón. El contacto de cada axón con una dendrita se realiza a través de la sinapsis. Tanto el axón como las dendritas transmiten la señal en una única dirección. La sinapsis consta de un extremo presináptico de un axón conectado a un extremo postsináptico de una dendrita, existiendo normalmente entre éstos un espacio denominado espacio sináptico.

Las neuronas son eléctricamente activas e interactúan entre ellas mediante un flujo de corrientes eléctricas locales. Estas corrientes se deben a diferencias de potencial entre las membranas celulares de las neuronas. Un impulso nervioso es un cambio de voltaje que ocurre en una zona localizada de la membrana celular. El impulso se transmite a través del axón hasta llegar a la sinapsis, produciendo la liberación de una sustancia química denominada neurotransmisor que se esparce por el fluido existente en el espacio sináptico. Cuando este fluido alcanza el otro extremo transmite la señal a la dendrita. Los impulsos recibidos desde la sinapsis se suman o restan a la magnitud de las variaciones del potencial de la membrana. Si las contribuciones totales alcanzan un valor determinado (alrededor de 10 milivoltios) se disparan uno o más impulsos que se propagarán a lo largo del axón.

Aunque todavía no está del todo claro, parece que este impulso se inicia en la conexión entre el axón y la membrana. Su amplitud y velocidad dependen del diámetro del axón y su frecuencia del número de disparos que se efectúen.

Las redes neuronales artificiales basan su funcionamiento en las redes neuronales reales, estando formadas por un conjunto de unidades de procesamiento conectadas entre sí. Por analogía con el cerebro humano se denomina «neurona» a cada una de estas unidades de

9

Page 10: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

procesamiento. Cada neurona recibe muchas señales de entrada y envía una única señal de salida (como ocurre en las neuronas reales).

Recordemos que el cerebro humano se compone de decenas de billones de neuronas interconectadas entre sí formando circuitos o redes que desarrollan funciones específicas.

Una neurona típica recoge señales procedentes de otras neuronas a través de una pléyade de delicadas estructuras llamadas dendritas. La neurona emite impulsos de actividad eléctrica a lo largo de una fibra larga y delgada denominada axón, que se escinde en millares de ramificaciones.

Figura 1.2: Neurona y conexiones sinápticas

Las extremidades de estas ramificaciones llegan hasta las dendritas de otras neuronas y establecen unas conexiones llamadas sinápsis, en las cuales se produce una transformación del impulso eléctrico en un mensaje neuroquímico, mediante la liberación de unas sustancias llamadas neurotransmisores.

Figura 1.3: Detalle de una sinápsis

El efecto de los neurotransmisores sobre la neurona receptora puede ser excitatorio o inhibitorio, y es variable (la intensidad del efecto depende de numerosos factores que no sería oportuno describir aquí) , de manera que podemos hablar de la fuerza o efectividad de una sinápsis. Las señales excitatorias e inhibitorias recibidas por una neurona se combinan, y en función de la estimulación total recibida, la neurona toma un cierto nivel de activación, que se traduce en la generación de breves impulsos nerviosos con una determinada frecuencia o tasa de disparo, y su propagación a lo largo del axón hacia las neuronas con las cuales sinapta.

10

Page 11: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 1.4: Activación y disparo de una neurona

De esta manera la información se transmite de unas neuronas a otras y va siendo procesada a través de las conexiones sinápticas y las propias neuronas. El aprendizaje de las redes neuronales se produce mediante la variación de la efectividad de las sinápsis, de esta manera cambia la influencia que unas neuronas ejercen sobre otras, de aquí se deduce que la arquitectura, el tipo y la efectividad de las conexiones en un momento dado, representan en cierto modo la memoria o estado de conocimiento de la red.

1.6 ELEMENTOS DE UNA RED NEURONAL.

Los elementos individuales de cálculo que forman los modelos de sistemas neuronales artificiales reciben el nombre de Elementos de Procesado o Neuronas Artificiales. Cada unidad realiza un trabajo muy simple: recibe impulsos de otras unidades o de estímulos externos y calcula una señal de salida que propaga a otras unidades y, además, realiza un ajuste de sus pesos. Este tipo de modelos es inherentemente paralelo en el sentido de que varias unidades pueden realizar sus cálculos al mismo tiempo. El elemento de procesado más simple suele tener el siguiente esquema:

Figura 1.5. Esquema de una neurona artificial

11

Page 12: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Este esquema de elemento de procesado tiene las siguientes características:

Cada elemento de procesado puede tener varias entradas asociadas a propiedades diferentes.

La entrada de tendencia es opcional (valor constante). Las entradas pueden ser: Excitadoras, inhibidoras, de ganancia, de disparo fortuito o

de amortiguamiento. Las entradas están ponderadas por un factor multiplicativo de peso o intensidad de

conexión que resaltan de forma diferente la importancia de cada entrada.. Cada elemento de procesado tiene un valor de activación calculado en función del

valor de entrada neto (calculado a partir de las entradas y los pesos asociados a ellas). En algunos casos, el valor de activación, depende además de la entrada neta del valor anterior de activación.

Una vez calculado el valor de activación, se determina un valor de salida aplicando una función de salida sobre la activación del elemento de procesado.

Conexión entre unidades

En la mayor parte de los casos se asume que cada unidad recibe contribuciones aditivas de las unidades que están conectadas a ellas. La entrada total de la unidad k es la suma ponderada de las entradas que recibe más el término de offset

Cuando el peso de la contribución es positivo se considera que la entrada es excitatoria y cuando el peso es negativo que es inhibitoria.

Este tipo de expresiones que calculan la entrada total se denominan reglas de propagación y, en general, pueden tener diferentes expresiones.

Funciones de activación y salida

Además de la regla de propagación es necesario poseer expresiones para las funciones de activación (calculan la activación en función de la entrada total) y funciones de salida (calculan la salida en función de la activación).

La función de activación calcula la activación de la unidad en función de la entrada total y la activación previa, aunque en la mayor parte de los casos es simplemente una función no decreciente de la entrada total. Los tipos de función más empleados son: la función signo, funciones con umbral lineal y la función sigmoidal.

La función de salida empleada usualmente es la función identidad y así la salida de la unidad de procesado es idéntica a su nivel de activación.

12

Page 13: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Las redes neuronales están formadas por un conjunto de neuronas artificiales interconectadas. Las neuronas de la red se encuentran distribuidas en diferentes capas de neuronas, de manera que las neuronas de una capa están conectadas con las neuronas de la capa siguiente, a las que pueden enviar información.

La arquitectura más usada en la actualidad de una red neuronal se presente en la figura 1.5, la cual consistía en:

Una primera capa de entradas, que recibe información del exterior. Una serie de capas ocultas (intermedias), encargadas de realizar el trabajo de la red. Una capa de salidas, que proporciona el resultado del trabajo de la red al exterior.

Figura 1.6. Esquema de una red neuronal antes del entrenamiento. Los círculos representan neuronas, mientras las flechas representan conexiones entre las neuronas

El número de capas intermedias y el número de neuronas de cada capa dependerá del tipo de aplicación al que se vaya a destinar la red neuronal.

1.7 ESTRUCTURAS GENERALES DE LAS REDES NEURONALES

PERCEPTRON

En 1943, Warren McCulloc y Walter Pitts originaron el primer modelo de operación neuronal, el cual fué mejorado en sus aspectos biológicos por Donald Hebb en 1948. En 1962 Bernard Widrow propuso la regla de aprendizaje Widrow-Hoff, y Frank Rosenblatt desarrolló una prueba de convergencia, y definió el rango de problemas para los que su algoritmo aseguraba una solución. El propuso los 'Perceptrons' como herramienta computacional.

13

Page 14: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 1.7 Modelo del perceptron simple.

BACKPROPAGATION

En esta red, se interconectan varias unidades de procesamiento en capas, las neuronas de cada capa no se interconectan entre sí. Sin embargo, cada neurona de una capa proporciona una entrada a cada una de las neuronas de la siguiente capa, esto es, cada neurona transmitirá su señal de salida a cada neurona de la capa siguiente. La figura muestra un ejemplo esquemático de la arquitectura de este tipo de redes neuronales.

Figura 1.8 Red backpropagation.HOPFIELD

La Red de Hopfield es recurrente y completamente conectada. Funciona como una memoria asociativa no lineal que puede almacenar internamente patrones presentados de forma incompleta o con ruido. De esta forma puede ser usada como una herramienta de optimización. El estado de cada neurona puede ser actualizado un número indefinido de veces, independientemente del resto de las neuronas de la red pero en paralelo.

14

Page 15: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 1.9 Red de Hopfield de 3 unidades

KOHONEN

Existen evidencias que demuestran que en el cerebro existen neuronas que se organizan en muchas zonas, de forma que las informaciones captadas del entorno a través de los órganos sensoriales se representan internamente en forma de capas bidimensionales. Por ejemplo, en el sistema visual se han detectado mapas del espacio visual en zonas de córtex (capa externa del cerebro). También en el sistema auditivo se detecta organización según la frecuencia a la que cada neurona alcanza la mayor respuesta (organización tono tópica). Aunque en gran medida esta organización neuronal está predeterminada genéticamente, es probable que de ella se origine mediante el aprendizaje. Esto sugiere, por tanto, que el cerebro podría poseer la capacidad inherente de formar mapas topológicos de las informaciones recibidas del exterior. De hecho, esta teoría podría explicar su poder de operar con elementos semánticos: algunas áreas del cerebro simplemente podrían crear y ordenar neuronas especializadas o grupos con características de alto nivel y sus combinaciones. Se trataría, en definitiva, de construir mapas espaciales para atributos y características.

1.8 TOPOLOGÍAS DE REDES NEURONALES.

La topología es el número de elementos de procesado que forman la red y las interconexiones existentes entre ellos.

Los elementos de procesado de una red neuronal se distribuyen por capas (conjunto de elementos de procesado que se encuentran en el mismo nivel en la estructura). Existen tres tipos de capas:

15

Page 16: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

1. Capa de entrada: Dependen del problema a abordar. 2. Capa de salida: Salidas que proporciona la estructura. 3. Capas ocultas: conjunto de elementos de procesado asociados en capas que

se encuentran entre la capa de entrada y la capa de salida.

El número de elementos de procesado puede variar en unas capas respecto a otras. Las funciones (tanto de activación como de salida) de los elementos de procesado pueden ser diferentes. No existe limitación en el número de capas ocultas. En general, cuanto mayor sea la diferencia entre los elementos de entrada y los de salida, será necesario dotar a la estructura de más capas ocultas. Estas capas ocultas crean una representación interna de los patrones de entrada. La habilidad de la red para procesar información crece en proporción directa al número de capas ocultas.

Según el número de interconexiones entre capas las redes se clasifican en: totalmente conectadas y localmente conectadas. En las redes totalmente conectadas la salida de un elemento de procesado de la capa i es entrada a todos los elementos de procesado de la capa i+1. Por contra, en las redes localmente conectadas, la salida de un elemento de procesado de la capa i es entrada a una región de elementos de procesado de la capa i+1.

En función de la dirección del movimiento de la información se puede realizar una clasificación en: redes feedforward, redes feedback, redes feedlateral y redes recurrentes, tal como puede verse en la siguiente figura:

Figura 1.10 Tipos de conexiones entre neuronas

Conexiones hacia delante(Feed Forward): para todos los modelos neuronales, los datos de las neuronas de una capa inferior son propagados hacia las neuronas de la capa superior por medio de las redes de conexiones hacia adelante.

Conexiones hacia atrás(Feed Bade): estas conexiones llevan los datos de las neuronas de una capa superior a otras de la capa inferior.

16

Page 17: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Conexiones laterales. Un ejemplo típico de este tipo es el circuito “el ganador toma todo”, que cumple un papel importante en la elección del ganador.

Conexiones con retardo: los elementos de retardo se incorporan en las conexiones para implementar modelos dinámicos y temporales, es decir, modelos que precisan de memoria.

También es posible que las redes sean de una capa con el modelo de pesos hacia atrás o bien el modelo multicapa hacia adelante. Es posible así mismo, el conectar varias redes de una sola capa para dar lugar a redes más grandes.

A continuación se describirán algunas topologías de RNA:

Figura 1.11. Perceptron simple

Figura 1.12. Topología con conexiones hacia delante, hacia atrás, laterales y de retroalimentación

17

Page 18: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 1.13. Topología con conexiones hacia delante y laterales.

Figura 1.14. Topología con conexiones hacia delante.

Figura 1.15. Topología con conexiones hacia delante,hacia atrás, laterales y de retroalimentación.

Figura 1.16. Topología con conexiones hacia delante.

18

Page 19: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 1.17.Topología con conexiones hacia delante.

Figura 1.18. Topologías con conexiones hacia delante, con diferente tipo de correspondencia.

1.9 MECANISMOS DE APRENDIZAJE

Construir un sistema que aprenda ha sido tradicionalmente uno de los objetivos más escurridizos de la inteligencia artificial. El aprendizaje es un proceso de adaptación al entorno; durante el se crean y manipulan representaciones que sean capaces de explicar dicho entorno.

En las redes neuronales la esencia del aprendizaje se encuentra en la modificación colectiva de los pesos de los elementos de procesado. Una definición de aprendizaje en redes neuronales podría ser la siguiente: Proceso por el cual los parámetros libres de una red neuronal son ajustados a través de un proceso continuo de estimulación por parte del entorno en donde se sitúa el sistema. El tipo de aprendizaje viene determinado por la forma en la que tienen lugar dichos cambios. Esta definición implica tres hechos fundamentales:

La red neuronal se encuentra estimulada por el entorno, cambia como consecuencia de esos estímulos y responde de manera diferente al entorno a causa de los cambios que se han producido en sus estructura interna.

19

Page 20: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Existen tres paradigmas de aprendizaje: Supervisado, No supervisado (o auto supervisado) y Reforzamiento (se puede considerar como un caso especial del aprendizaje supervisado).

Hay bastantes algoritmos dentro de cada una de estas categorías.

Supervisado

En el aprendizaje supervisado (aprender con un maestro), la adaptación sucede cuando el sistema compara directamente la salida que proporciona la red con la salida que se desearía obtener de dicha red. Existen tres tipos básicos: por corrección de error, por refuerzo y estocástico.

En el aprendizaje por corrección de error el entrenamiento consiste en presentar al sistema un conjunto de pares de datos, representando la entrada y la salida deseada para dicha entrada (este conjunto recibe el nombre de conjunto de entrenamiento). El objetivo es minimizar el error entre la salida deseada y la salida que se obtiene.

El aprendizaje por refuerzo es más lento que el anterior. No se dispone de un ejemplo completo del comportamiento deseado pues no se conoce la salida deseada exacta para cada entrada sino que se conoce el comportamiento de manera general para diferentes entradas. La relación entrada-salida se realiza a través de un proceso de éxito o fracaso, produciendo este una señal de refuerzo que mide el buen funcionamiento del sistema. La función del supervisor es más la de un crítico que la de un maestro.

El aprendizaje estocástico consiste básicamente en realizar cambios aleatorios de los valores de los pesos y evaluar su efecto a partir del objetivo deseado.

Regla del Perceptron

Supongamos que tenemos un conjunto de muestras de aprendizaje consistentes en vectores de entrada x y salidas deseadas d(x) (en tareas de clasificación d(x) es, usualmente, +1 o -1). La regla de aprendizaje del perceptrón es muy simple y se desarrolla a través de los siguientes pasos:

1. Iniciar la red con un conjunto aleatorio de pesos para las conexiones. 2. Seleccionar un vector de entrada x del conjunto de muestras de entrenamiento. 3. Si el perceptrón proporciona una salida incorrecta, modificar todas las conexiones

mediante la expresión . 4. Volver al paso 2.

Cuando la red responde de forma correcta los pesos de la conexiones no se modifican

Regla delta

Para una red con una única capa con un único elemento de procesado en la salida con una función de activación lineal, la salida viene dada por

20

Page 21: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Una red simple con una única capa es capaz de representar relaciones lineales entre el valor del elemento de procesado de la salida y el valor de los elementos de procesado de la entrada. umbralizando el valor de la salida se puede construir un clasificador. Pero también se pueden realizar otras tareas como aproximación de funciones. En espacios de entrada multidimensionales la red representa un hiperplano de decisión y es trivial asumir que se pueden definir varias unidades de salida.

Supongamos que vamos a entrenar una red para localizar el hiperplano de decisión más

idóneo para un conjunto de muestras de entrada consistente en valores de entrada y

valores de salida deseada . Para cada muestra dada del conjunto de entrada, la salida real

de la red difiere de la salida deseada en , donde es la salida real para el patrón de

entrada . La regla delta una función de error (o función de coste) basada en dicha diferencia para realizar el ajuste de los pesos.

La función de error, dada por el método del menor error cuadrático medio, es la suma de los cuadrados de los errores individuales de cada patrón. Es decir, el error total E viene dado por

donde el índice p recorre el conjunto de patrones de entrada y representa el error del patrón p-ésimo. Los valores de los pesos de conexión se buscan de forma tal que se minimice la función y este proceso se realiza por un método conocido gradiente descendiente. La idea del método es realizar un cambio en los pesos inversamente proporcional a la derivada del error respecto al peso para cada patrón

donde es una constante de proporcionalidad. La derivada se puede descomponer mediante la siguiente expresión

Dado que la función de activación es lineal, como se comentaba al comienzo,

y

con lo cual

21

Page 22: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

donde es la diferencia entre la salida deseada y la salida real para el patrón de entrada p.

La regla delta modifica los pesos como función de las salidas deseada y real para unidades de entrada y salida binarias o continuas. Estas características abrieron un nuevo campo de posibilidades para las redes neuronales.

Regla delta generalizada

La regla delta generalizada, amplía la regla delta al caso de usar unidades de procesamiento con funciones de activación no lineal. La activación es una función diferenciable de la entrada total dada por

donde

Para realizar la generalización de la regla delta debemos considerar

La medida de error viene definida como el error cuadrático total para el patrón p en las

unidades de salida

Considerando E como la suma de los errores cuadráticos podemos ver que la variación del error respecto a los pesos viene dada por

A partir de la expresión de la salida total y definiendo

se puede obtener una regla de actualización de pesos equivalente a la regla delta, resultando un descenso en el valor del gradiente sobre la superficie de error si se realizan los cambios de los pesos de acuerdo a la expresión

La conclusión más importante es que el cálculo recursivo de los factores delta puede implementarse propagando las señales de error desde la capa de salida a capas ocultas de la red.

El cálculo de puede realizarse en términos de un producto de dos factores; uno que refleje el cambio del error como función de la salida de las unidades y otro que refleje el cambio de la salida como función de los cambios en la entrada, es decir

22

Page 23: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Ahora bien, el segundo factor no es otro que la derivada de la función de activación F. Para calcular el primer factor vamos a considerar dos casos: que la unidad k es una unidad de salida de la red y que la unidad k es una unidad de una capa oculta.

En el primer caso, a partir de la definición del error para el patrón p, podemos obtener que

que es el mismo resultado que en la regla delta básica. Por tanto, para las unidades de la capa de salida

en el segundo caso, no se conoce como contribuye la unidad al error de salida de la red, pero la medida de error se puede escribir como función de los pesos de las unidades de la capa oculta a la capa de salida

con lo cual

Extendiendo este cálculo de forma recursiva se pueden calcular los cambios en los pesos de todas las unidades de la red. Este procedimiento se denomina regle delta generalizada para redes feedforward con unidades no lineales.

No supervisado

En el aprendizaje no supervisado (o auto supervisado), la red se sintoniza a las regularidades estadísticas de datos de entrada de forma tal que se formen categorías que optimizan, respecto a los parámetros libres de la red, una medida de calidad de la tarea que se quiere realizar con la red. El funcionamiento de estas redes se basa en la búsqueda de características, regularidades, correlaciones y categorías del conjunto de datos de entrada.Existen diferentes interpretaciones que se le pueden dar a las salidas generadas por una red que utilice este tipo de aprendizaje: similaridad (semejanzas entre la información actual y la información pasada), clusterización (establecimiento de clases), codificación (versión codificada de las entradas) o mapeo (representación topográfica de los datos de entrada).

Aprendizaje competitivo

El aprendizaje competitivo es un proceso que divide el conjunto de patrones de entrada en clusters inherentes a los datos de entrada. El procedimiento de entrenamiento es muy simple: cuando se presenta un patrón de entrada se selecciona una única unidad de salida (la unidad ganadora) y se modifican los pesos de esa unidad.

23

Page 24: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Selección de la unidad ganadora mediante producto:

Asumamos que los patrones de entrada y los pesos están normalizados a la unidad. Cada unidad de salida o calcula su valor de activación a partir del producto del vector del patrón de entrada por el vector de pesos

A continuación, se selecciona el elemento de procesado de salida que presenta mayor valor de activación. Su activación se pone a valor 1 y la del resto de elementos de procesado a 0. En este hecho radica el aspecto competitivo de la red.

Una vez que se ha seleccionado el elemento de procesado k ganador, se adaptan sus pesos (sólo del elemento ganador) de acuerdo a la expresión

Selección de la unidad ganadora mediante distancia:

Cuando no se pueden utilizar patrones normalizados la elección del elemento de procesado ganador se realiza mediante el cálculo de la distancia Euclidea entre el vector del patrón y el vector de pesos. Aquel vector de pesos que presente una distancia mínima determinará el elemento ganador. La ley de actualización de pesos del elemento ganador es la misma que en el caso anterior, sin el denominador pues los vectores no están normalizados.

Reforzamiento

En el aprendizaje con reforzamiento, la red aprende de relaciones entrada-salida. Sin embargo, al contrario que en el aprendizaje supervisado, el sistema conoce si la salida es correcta o no, pero no conoce la salida correcta.

24

Page 25: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

CAPÍTULO II

REDES NEURONALES MONOCAPA CON APRENDIZAJE SUPERVISADO

Las redes monocapa se utilizan típicamente en tareas relacionadas en lo que se conoce como auto Las redes monocapa se utilizan típicamente en tareas relacionadas en lo que se conoce como auto asociación: por ejemplo, para regenerar informaciones de entrada que se presentan a la red asociación: por ejemplo, para regenerar informaciones de entrada que se presentan a la red incompletas o distorsionadas.incompletas o distorsionadas.

El Perceptrón

Frank Rosenblatt creó muchas variantes de una máquina, la cual llamó Perceptrón. Una de las más simples fue una red monocapa cuyos pesos y umbrales pueden ser entrenados para producir un correcto vector objetivo cuando se presenta un correspondiente vector de entrada.

La técnica de entrenamiento usada es llamada Regla de aprendizaje del perceptrón. El perceptrón generó un gran interés debido a su habilidad para generalizar a partir de sus vectores de entrenamiento y aprendizaje a partir de conexiones iniciales distribuidas aleatoriamente. Los perceptrones son apropiados especialmente para clasificación de patrones simples.

Características

- Aprendizaje Supervisado (offline)- Aprendizaje por corrección de error- Reconocimiento de patrones sencillos-- Clasificación de patrones linealmente separables

Arquitectura

La red perceptrón consiste de una capa de S neuronas perceptrón, conectadas a r entradas a través de un conjunto de pesos W(ij) como se muestra en la figura 2.1. Como ya se mencionó anteriormente, los índices de la red i y j indican que W(ij) es la fuerza de conexión de la j-esima entrada a la i-esima neurona.

25

Page 26: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 2.1. Arquitectura de una red perceptrón.

La red perceptrón puede tener únicamente una sola capa, debido a que la regla de aprendizaje del perceptrón es capaz de entrenar solamente una capa. Esta restricción coloca limitaciones en cuanto a lo que un perceptrón puede realizar computacionalmente.

Algoritmo de aprendizaje

El algoritmo de aprendizaje es supervisado, en el cual la regla es provista con un conjunto de El algoritmo de aprendizaje es supervisado, en el cual la regla es provista con un conjunto de ejemplos del comportamiento propio de la red:ejemplos del comportamiento propio de la red:

p1, t1 p2 , t2 p3 , t3

donde:

pq = es la entrada de la redtq = es la salida destino correspondiente

La regla de aprendizaje es un procedimiento para modificar los pesos y los niveles de umbral de activación en una red neuronal.

La principal aportación de Rosenblatt fue el desarrollo de una regla de aprendizaje simple y automática aplicada al reconocimiento de patrones.

La red aprendía de sus errores y se inicializaba con valores aleatorios. La regla de aprendizaje siempre convergirá a los pesos correctos de la red si es que existen los pesos que solucionen dicho problema.

26

Page 27: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

El entrenamiento comienza asignándole valores iniciales pequeños (aleatorios) a los parámetros de la red (W y b), por medio de las siguientes ecuaciones:

Para el vector de pesos (W)

Wnuevo = Wanterior + ept

Para el umbral (b)Para el umbral (b)

bnuevo = banterior + e

Para el error (e)Para el error (e)

e = t - a

Aplicaciones

El rango de tareas que el Perceptrón puede manejar es mucho mayor que simples decisiones y reconocimiento de patrones. Por ejemplo, se puede entrenar una red para formar el tiempo pasado de los verbos en ingles, leer texto en ingles y manuscrito. El Perceptrón multicapa  (MLP)  puede ser usado para la predicción de una serie de datos en el tiempo; tal a sido su  éxito en la medición de  la demanda de gas y electricidad, además de la predicción de cambios en el valor de los instrumentos financieros.

NETtalk es un Perceptrón que es capaz de transformar texto en ingles en sonido individual (representaciones fonéticas) y la pronunciación con la utilización de un sintetizador de voz; cuenta con aproximadamente 300 nodos de neuronas (siendo 80 en la capa escondida)  y 20,000 conexiones individuales.

27

Page 28: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Ejercicios

Método gráfico

1. Use un perceptrón simple para clasificar el siguiente conjunto de patrones:1. Use un perceptrón simple para clasificar el siguiente conjunto de patrones:

p1 = t1=1; p2 = t2=1;

p3 = t3=1; p4 = t4=1;

p5 = t5=0; p6 = t6=0;

p7 = t7=0; p8 = t8=1;

a) Trace la frontera de decisión

Solución

Se traza sobre la gráfica una línea que separe los patrones que arrojen salida 1 (negro) de los patrones cuya salida deseada sea 0 (blanco). El trazo de esta línea o frontera de decisión depende del diseñador, siempre y cuando se cumpla la clasificación (separación de patrones con salida 1 de los de salida 0). El trazo de la frontera de decisión implica la determinación inmediata del vector de pesos que da solución al problema (la frontera de decisión es siempre perpendicular al vector de pesos W). Esto se muestra en la figura 2.2.

Figura 2.2. Trazo de la frontera de decisión y vector de pesos

b) Encuentre la matriz de pesos W y el umbral de activación b

28

Page 29: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

De la gráfica anterior, se obtiene el vector de pesos W:

W = [-2 1]

Dado que la frontera de decisión atraviesa por el origen (0,0), el umbral de activación es cero.

b = 0

c) Compruebe el funcionamiento del perceptrón con el conjunto de patrones de entrada.

Para el primer par de entrada/salida

p1 = t1=1;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([-2 1] + 0)

a = hardlim(2) = 1

Se calcula el error:

e = t1 – a = 1 – 1

e = 0

Para el segundo par de entrada/salida

p2 = t2=1;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([-2 1] + 0)

a = hardlim(6) = 1

Se calcula el error:

e = t2 – a = 1 – 1

29

Page 30: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

e = 0

Para el tercer par de entrada/salida

p3 = t3=1;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([-2 1] + 0)

a = hardlim(4) = 1

Se calcula el error:

e = t3 – a = 1 – 1

e = 0

Para el cuarto par de entrada/salida

p4 = t4=1;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([-2 1] + 0)

a = hardlim(2) = 1

Se calcula el error:

e = t4 – a = 1 – 1

e = 0Para el quinto par de entrada/salida

p5 = t5=0;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([-2 1] + 0)

30

Page 31: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

a = hardlim(-2) = 0

Se calcula el error:

e = t5 – a = 0 – 0

e = 0

Para el sexto par de entrada/salida

p6 = t6=0;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([-2 1] + 0)

a = hardlim(-6) = 0

Se calcula el error:

e = t6 – a = 0 – 0

e = 0

Para el séptimo par de entrada/salida

p7 = t7=0;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([-2 1] + 0)

a = hardlim(-4) = 0

Se calcula el error:

e = t7 – a = 0 – 0

e = 0

31

Page 32: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Para el octavo par de entrada/salida

p8 = t8=0;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([-2 1] + 0)

a = hardlim(-2) = 0

Se calcula el error:

e = t8 – a = 0 – 0

e = 0

Regla de aprendizaje

2. Resuelva el siguiente problema de clasificación del perceptrón y su regla de aprendizaje donde los pares de entrada/salida son:

p1 = t1=1;

p2 = t2=0;

p3 = t3=0;

a) usando la regla de aprendizaje del perceptrón, calcule la matriz de pesos W y el umbral de activación b. Considere los parámetros iniciales:

W = [1 -0.8]b = 0

Solución

Para el primer par de entrada/salida

p1 = t1=1;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

32

Page 33: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

a = hardlim([1 –0.8] + 0)

a = hardlim(-0.6) = 0

Se calcula el error:

e = t1 – a = 1 – 0

e = 1

Usando la regla de aprendizaje del perceptrón, se modifica el vector de pesos:

Wnuevo = Wanterior + ept

Wnuevo = [1 –0.8] + [1 2]

Wnuevo = [2 1.2]

Para el segundo par de entrada/salida

p2 = t2=0;

Se calcula la salida utilizando la función de activación propia de la red (con os nuevos pesos):

a = hardlim(wp + b)

a = hardlim([2 1.2] + 0)

a = hardlim(0.4) = 1

Se calcula el error:

e = t2 – a = 0 - 1

e = -1

Usando la regla de aprendizaje del perceptrón, se modifica el vector de pesos:

Wnuevo = Wanterior + ept

Wnuevo = [2 1.2] + (-1)[-1 2]

Wnuevo = [3 –0.8]

33

Page 34: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Para el tercer par de entrada/salida

p3 = t3=0;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([3 –0.8] + 0)

a = hardlim(0.8) = 1

Se calcula el error:

e = t3 – a = 0 - 1

e = -1

Usando la regla de aprendizaje del perceptrón, se modifica el vector de pesos:Wnuevo = Wanterior + ept

Wnuevo = [3 –0.8] + (-1) [0 -1]

Wnuevo = [3 0.2]

Es necesario comprobar que, cada que se obtiene un vector de pesos nuevo, el error e = 0 para todosEs necesario comprobar que, cada que se obtiene un vector de pesos nuevo, el error e = 0 para todos los pares de entrada/salida, para dar por terminado el proceso de entrenamiento:los pares de entrada/salida, para dar por terminado el proceso de entrenamiento:

Para el primer par de entrada/salida

p1 = t1=1;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([3 0.2] + 0)

a = hardlim(3.4) = 1

Se calcula el error:

e = t1 – a = 1 – 1

e = 0

34

Page 35: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Para el segundo par de entrada/salida

p2 = t2=0;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([3 0.2] + 0)

a = hardlim(-2.6) = 0

Se calcula el error:

e = t2 – a = 0 – 0

e = 0

Para el tercer par de entrada/salida

p3 = t3=0;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([3 0.2] + 0)

a = hardlim(-0.2) = 0

Se calcula el error:

e = t3 – a = 0 – 0

e = 0

Por lo tanto, los valores finales de W y b son:

W = [3 0.2]b = 0

b) Grafique su solución, indicando la frontera de decisión, indicando la frontera de decisión y su vector de pesos.

35

Page 36: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 2.3 Gráfica-solución del ejercicio 2

La figura 2.3 muestra la solución del ejercicio. En ella se puede visualizar el vector de pesos W, la frontera de decisión (perpendicular al vector de pesos W) atravesando el origen. Esto último se debe a que el valor del umbral b es cero.

3. Diseñe una red neuronal que permita clasificar dos tipos de fruta considerando la forma, la textura y el peso. Observe la figura 2.4.

Figura 2.4. Clasificador de frutas

Las entradas para el perceptrón tienen la forma:

P =

Los valores para cada parámetro son:

Forma:- 1, si la fruta es redonda- -1, si la fruta es elíptica

Textura:

36

Page 37: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

- 1, si la superficie de la fruta es suave- -1, si la superficie es rugosa

Peso:- 1, 1 libra- -1, < 1 libra

Según lo anterior, los vectores de entrada para las frutas a clasificar son:

Naranja

p1 = t1 = 0

Manzana

p2 = t2 = 1

Los valores iniciales del vector de pesos y el umbral son:

W = [0.5 -1 -0.5]b = 0.5

a) Aplique la regla de aprendizaje del perceptrón para calcular el vector de pesos W y el umbral b.

Solución

Primera época

Para el primer par de entrada/salida (Primera iteración)

p1 = t1=0;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

37

Page 38: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

a = hardlim([0.5 -1 -0.5] + 0.5)

a = hardlim(2.5) = 1

Se calcula el error:

e = t1 – a = 0 - 1

e = -1

Usando la regla de aprendizaje del perceptrón, se modifica el vector de pesos y el umbral:

Wnuevo = Wanterior + ept

Wnuevo = [0.5 -1 -0.5] + (-1)[1 -1 -1]

Wnuevo = [-0.5 0 0.5]

bnuevo = banterior + e

bnuevo = 0.5 - 1

bnuevo = -0.5

Para el segundo par de entrada/salida (segunda iteración)

p2 = t2=1;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([-0.5 0 0.5] + (-0.5))

a = hardlim(-1.5) = 0

Se calcula el error:

e = t1 – a = 1 - 0

e = 1

38

Page 39: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Usando la regla de aprendizaje del perceptrón, se modifica el vector de pesos y el umbral:

Wnuevo = Wanterior + ept

Wnuevo = [-0.5 0 0.5] + [1 1 -1]

Wnuevo = [0.5 1 -0.5]

bnuevo = banterior + e

bnuevo = -0.5 + 1

bnuevo = 0.5

Segunda época

Para el primer par de entrada/salida (Primera iteración)

p1 = t1=0;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([0.5 1 -0.5] + 0.5)

a = hardlim(0.5) = 1

Se calcula el error:

e = t1 – a = 0 - 1

e = -1

Usando la regla de aprendizaje del perceptrón, se modifica el vector de pesos y el umbral:

Wnuevo = Wanterior + ept

Wnuevo = [0.5 1 -0.5] + (-1)[1 -1 -1]

Wnuevo = [-0.5 2 0.5]

bnuevo = banterior + e

39

Page 40: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

bnuevo = 0.5 - 1

bnuevo = -0.5

Para el segundo par de entrada/salida (segunda iteración)

p2 = t2=1;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([-0.5 2 0.5] + (-0.5))

a = hardlim(0.5) = 1

Se calcula el error:

e = t1 – a = 1 - 1

e = 0

No hay modificación de W y b. Sólo resta probar si se cumple para el primer par de entrada.

p1 = t1=0;

Se calcula la salida utilizando la función de activación propia de la red:

a = hardlim(wp + b)

a = hardlim([-0.5 2 0.5] + (-0.5))

a = hardlim(-3.5) = 0

Se calcula el error:

e = t1 – a = 0 - 0

e = 0

Por lo tanto, los valores finales de W y b son:

W = [-0.5 2 0.5]b = 0.5

40

Page 41: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Simulaciones en Matlab

1. Resuelva el siguiente problema de clasificación del perceptrón y su regla de aprendizaje

Los pares de entrada/salida son:

p1 = t1=1;

p2 = t2=0;

p3 = t3=0;

En el editor de Matlab teclee el siguiente código que resuelve el problema anterior:

clear;echo on;clc;%Se definen los vectores de entradaP=[1 -1 0;

2 2 -1];

%Se define el vector de salidaT = [1 0 0]

% Se inicializa la red con los valores anteriores[w,b]=initp(P,T);

%Se entrena la red usando la regla de aprendizaje[w,b,epoch,errors]=trainp(w,b,P,T,-1);

%Evalúa un par de entrada para clasificarloa=simup([-1;0],w,b)

echo off

En la ventana de comandos de Matlab aparece paso a paso la ejecución del programa, como sigue:

%Se definen los vectores de entradaP=[1 -1 0;

%Se define el vector de salidaT = [1 0 0]

T = 1 0 0

% Se inicializa la red con los valores anteriores

41

Page 42: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

[w,b]=initp(P,T); %Se entrena la red usando la regla de aprendizaje[w,b,epoch,errors]=trainp(w,b,P,T,-1); TRAINP: 0/100 epochs, SSE = 2. TRAINP: 1/100 epochs, SSE = 1. TRAINP: 2/100 epochs, SSE = 0.

%Evalúa un par de entrada para clasificarloa=simup([-1;0],w,b)

a = 0echo off

La salida del programa (además del proceso descrito en la ventana de comandos de Matlab) es una gráfica donde aparecen los patrones de entrada en un plano de dos dimensiones, con la clasificación correspondiente (frontera de decisión). Esto se muestra en la figura 2.5.

Figura 2.5. Patrones clasificados

La frontera de decisión y el vector de pesos y umbral que dan solución al problema dependerá de los valores iniciales que Matlab asigna a w y b.

2. Perceptrón de cuatro clases

Clasifique el siguiente grupo de vectores de entrada en cuatro clases.

Clase 1:

Clase 2:

Clase 3:

Clase 4:

42

Page 43: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Para solucionar un problema de 4 clases de entrada, se necesita un perceptrón con al menos dos neuronas, lo que traerá como consecuencia dos vectores de pesos y, por lo tanto, dos fronteras de decisión.

En el editor de Matlab teclee el siguiente código que resuelve el problema anterior:

clear;echo on;clc;%Se definen los vectores de entradaP=[1 1 2 2 -1 -2 -1 -2;

1 2 -1 0 2 1 -1 -2];

%Se define los vectores de salidaT = [0 0 0 0 1 1 1 1; 0 0 1 1 0 0 1 1];

% Se inicializa la red con los valores anteriores[w,b]=initp(P,T)

%Se entrena la red usando la regla de aprendizaje[w,b,epoch,errors]=trainp(w,b,P,T,-1);

%Evalúa un par de entrada para clasificarloa=simup([1;1],w,b)

echo off

En la ventana de comandos de Matlab aparece paso a paso la ejecución del programa, como sigue:

%Se definen los vectores de entradaP=[1 1 2 2 -1 -2 -1 -2;

%Se define el vector de salidaT = [0 0 0 0 1 1 1 1;

% Se inicializa la red con los valores anteriores[w,b]=initp(P,T) w = 0.9003 0.2137 -0.5377 -0.0280

b = 0.7826 0.5242

%Se entrena la red usando la regla de aprendizaje[w,b,epoch,errors]=trainp(w,b,P,T,-1); TRAINP: 0/100 epochs, SSE = 11.TRAINP: 1/100 epochs, SSE = 3.TRAINP: 2/100 epochs, SSE = 0.

%Evalúa un par de entrada para clasificarlo

43

Page 44: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

a=simup([1;1],w,b) a = 0 0echo off

La salida del programa (además del proceso descrito en la ventana de comandos de Matlab) es una gráfica donde aparecen los patrones de entrada de las cuatro clases, con una marca especial para diferenciar cada una de ellas en un plano de dos dimensiones, con la clasificación correspondiente. Ahora se ve una frontera de decisión en rojo, mientras que la otra es de color azul. Esto se muestra en la figura 2.6.

Figura 2.6. Patrones de las 4 clases clasificados

Las fronteras de decisión al que dan solución al problema dependerá de los valores iniciales que Las fronteras de decisión al que dan solución al problema dependerá de los valores iniciales que Matlab asigna a w y b.Matlab asigna a w y b.

La Red Adaline

Las redes Adaline fueron desarrolladas por Bernie Widrow en la Universidad de Stanford poco después de que Rosenblatt desarrollara el Perceptrón.

El término Adaline es una sigla; sin embargo, significado ha cambiado ligeramente con el paso de los años. Inicialmente se llamaba ADAptative LInear Neuron (neurona Lineal Adaptativa); pasó a ser el ADAptative LInear Element (Elemento Lineal Adaptativo) cuando las redes cayeron en desgracia al final de los años setenta.

Tiene una estructura casi idéntica a la del perceptrón general. La figura 2.7. muestra la estructura deTiene una estructura casi idéntica a la del perceptrón general. La figura 2.7. muestra la estructura de una red Adaline.una red Adaline.

44

Salida binaria

X0

X1

X2

W0

W1

W2

WN

S

sSalida Lineal

y

Conmutador Bipolar

s

y

-1

1

Combinador Adaptativo Lineal

Page 45: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 2.7. Estructura de una red ADALINE

Es necesario hacer dos modificaciones básicas a la estructura del perceptrón general para transformarla en una red Adaline. La primera consiste en añadir una conexión de peso Wo, que se conoce con el nombre de término de tendencia. Este término es el peso de una conexión que siempre tiene un valor de entrada igual a 1. La inclusión de este término se debe fundamentalmente a la experiencia.

La segunda modificación consiste en añadir una condición bipolar a la salida. El cuadro de trazos que se ve en la figura 2.7 encierra una parte de la red que es lo que se denomina combinador adaptativo lineal (ALC). Si la salida del ALC es positiva, la salida de la red es +1. si la salida del ALC es negativa, entonces la salida de la red es –1.

El ALC lleva a cabo el cálculo de una suma de productos empleando los vectores de entrada y de peso, y aplica una función de salida para obtener un valor único de salida, tal y como lo hace el perceptrón.

La función de salida en este caso es la función identidad, así como la función de activación. El uso de esta función como función de salida y como función de activación significa que la salida es igual a la activación, que es lo mismo que la entrada neta de la unidad.

La red Adaline (o el ALC) es adaptativa en el sentido de que existe un procedimiento bien definido para modificar los pesos con objeto de hacer posible que la red proporcione el valor de salida correcto para la entrada dada. La red Adaline es lineal porque la salida es una función lineal sencilla de los valores de entrada. Es una neurona tan sólo en el sentido (muy limitado) del perceptrón. También se podría decir que la red Adaline es un elemento lineal, evitando por completo el tema de la neurona.

Algoritmo de aprendizaje

1. Se aplica un patrón de entrada P.2. Se obtiene la salida del ALC y se calcula la diferencia con respecto a la deseada

(error).

45

XN

Page 46: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

3. Se actualizan los pesos.4. Se repiten pasos 1 a 3 con todos los vectores de entrada. 5. Si el Error es un valor aceptable, detenerse, si no repetir algoritmo. La regla de aprendizaje de Widrow-Hoff o LMS (Least Mean Square), que utiliza la red Adaline para su entrenamiento, hace posible la realización del paso 3.

Por medio de las siguientes ecuaciones, se realiza la actualización de los parámetros de la red:Por medio de las siguientes ecuaciones, se realiza la actualización de los parámetros de la red:

Para el vector de pesos (W)

Wnuevo = Wanterior + 2ept

Para el umbral (b)Para el umbral (b)

bnuevo = banterior + 2e

Para el error (e)Para el error (e)

e = t - a

donde se conoce como razón o tasa de aprendizaje y 0 < < 1.

El cálculo de dicho parámetro se realiza mediante una matriz de correlación R:

R = E(P Pt)

Los eigenvalores i de la matriz de correlación serán útiles para la determinación del parámetro a, pues:

<

Aplicaciones

El principal campo de aplicación es el Procesamiento de Señales. Filtros que eliminen el ruido en señales portadoras de información. Filtros de ecualización adaptativos en Módems de alta velocidad. Cancelación del ruido materno de grabaciones ECG del latido del feto

humano.Eliminación de ecos en circuitos telefónicos. Canceladores adaptativos del eco para el filtrado de señales en comunicaciones

telefónicas de larga distancia y comunicaciones vía satélite.

46

Page 47: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Ejercicios

1. Clasifique el siguiente conjunto de patrones usando el algoritmo LMS y una red Adaline.

p1 = t1=1;

p2 = t2=-1;

Los parámetros iniciales son:

= 0.25W =[0 0], b=0

a) Calcule el vector de pesos W y el umbral b

Primera época

Para el primer par de entrada/salida

p1 = t1=1;

Se calcula la salida utilizando la función de activación propia de la red:

a = pureline(wp + b) = wp + b

a = [0 0] + 0

47

Page 48: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

a = 0

Se calcula el error:

e = t1 – a = 1 -0 = 1

Usando la regla de aprendizaje de Widrow-Hoff, se modifica el vector de pesos y el umbral:

Wnuevo = Wanterior + 2ept

Wnuevo = [0 0] + 2(0.25)(1)[1 1]

Wnuevo = [0.5 0.5] b= 0

Para el segundo par de entrada/salida

p2 = t2=-1;

Se calcula la salida utilizando la función de activación propia de la red:

a = pureline(wp + b) = wp + b

a = [0.5 0.5] + 0

a = 0

Se calcula el error:

e = t2 – a = -1 -0 = -1

Usando la regla de aprendizaje de Widrow-Hoff, se modifica el vector de pesos y el umbral:

Wnuevo = Wanterior + 2ept

Wnuevo = [0.5 0.5] + 2(0.25)(-1)[1 -1]

Wnuevo = [0 1] b= 0

Segunda época

Para el primer par de entrada/salida

p1 = t1=1;

48

Page 49: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Se calcula la salida utilizando la función de activación propia de la red:

a = pureline(wp + b) = wp + b

a = [0 1] + 0

a = 1

Se calcula el error:

e = t1 – a = 1 -1 = 0

Para el segundo par de entrada/salida

p2 = t2=-1;

Se calcula la salida utilizando la función de activación propia de la red:

a = pureline(wp + b) = wp + b

a = [0 1] + 0

a = -1

Se calcula el error:

e = t2 – a = -1 + 1 = 0

Por lo tanto, los valores finales de W y b son:

W = [0 1]b = 0

b) Grafique la frontera de decisión y los patrones

49

Page 50: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 2.8 Gráfica-solución del ejercicio 1

La figura 2.8 muestra la solución del ejercicio. En ella se puede visualizar el vector de pesos W, la frontera de decisión (perpendicular al vector de pesos W) atravesando el origen. Esto último se debe a que el valor del umbral b es cero.

2. Clasifique el siguiente conjunto de patrones usando el algoritmo LMS y una red Adaline.

p1 = t1=-1;

p2 = t2=1;

Los parámetros iniciales son:

W =[0 0 0]b=0

a) Calcule la razón de aprendizaje

El cálculo de este parámetro se realiza mediante una matriz de correlación R:

R = E(P · Pt)

R = E(P Pt)

R = P1· P1t + P2· P2t

R = [1 –1 –1] + [1 1 –1]

R = + = =

Se procede ahora al cálculo de los Eigenvalores (i) de la matriz R mediante la fórmula:

P() = |A – I|

50

Page 51: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Esto hace:

- =

Haciendo el cálculo del determinante se tiene:

= (1 - )3 – (1 – )

Factorizando se tiene:

(1 - )3 – (1 – ) = (1 - ) {(1 - )2 – 1} = (1 - ) {1 - 2 + 2 -1} = (1 - ) {-2 + 2 }= (1 - )() = 0

Haciendo el cálculo de las raíces, se obtienen los eigenvalores de la matriz R:

=0=1=2

La máxima razón de aprendizaje estable es:La máxima razón de aprendizaje estable es:

máx == 2

<

= 1 / 2 = 0.5

Se elige una tasa de aprendizaje de 0.2 (valor típico)

Nota: Nota: se puede proponer a través de prueba y error. se puede proponer a través de prueba y error.

51

Page 52: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

b) Calcule el vector de pesos W y el umbral b

Primera época

Para el primer par de entrada/salida

p1 = t1=-1;

Se calcula la salida utilizando la función de activación propia de la red:

a = pureline(wp + b) = wp + b

a = [0 0 0] + 0

a = 0

Se calcula el error:

e = t1 – a = -1 -0 = -1

Usando la regla de aprendizaje de Widrow-Hoff, se modifica el vector de pesos y el umbral:

Wnuevo = Wanterior + 2ept

Wnuevo = [0 0 0] + 2(0.2)(-1)[1 -1 -1]

Wnuevo = [-0.4 0.4 0.4] b= 0

Para el segundo par de entrada/salida

p2 = t2=1;

Se calcula la salida utilizando la función de activación propia de la red:

a = pureline(wp + b) = wp + b

a = [-0.4 0.4 0.4] + 0

a = -0.4

Se calcula el error:

e = t2 – a = 1 + 0.4 = 1.4

Usando la regla de aprendizaje de Widrow-Hoff, se modifica el vector de pesos y el umbral:

52

Page 53: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Wnuevo = Wanterior + 2ept

Wnuevo = [-0.4 0.4 0.4] + 2(0.2)(1.4)[1 1 -1]

Wnuevo = [0.16 0.96 -0.16] b= 0

Segunda época

Para el primer par de entrada/salida

p1 = t1=-1;

Se calcula la salida utilizando la función de activación propia de la red:

a = pureline(wp + b) = wp + b

a = [0.16 0.96 –0.16] + 0

a = -0.64

Se calcula el error:

e = t1 – a = -1 + 0.641 = -0.36

Usando la regla de aprendizaje de Widrow-Hoff, se modifica el vector de pesos y el umbral:

Wnuevo = Wanterior + 2ept

Wnuevo = [0.16 0.96 -0.16] + 2(0.2)(-3.6)[1 -1 -1]

Wnuevo = [0.016 1.1040 -0.016] b= 0

Si se continua el proceso, el algoritmo convergirá en:

W = [0 1 0]b = 0

Simulaciones en MATLAB

1. Resuelva el siguiente problema de clasificación de la red Adaline y su regla de aprendizaje

Los pares de entrada/salida son:

53

Page 54: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

p1 = t1=1;

p2 = t2=1;

p3 = t3=0;

En el editor de Matlab teclee el siguiente código que resuelve el problema anterior:

clear;echo on;clc;

%Se definen los vectores de entradaP=[0 2 -2;

2 0 -2];

%Se define el vector de salidaT = [1 1 0];

%Se crea una red lineal adaptativa NEWLIN(PR,S,ID,LR)donde:

PR – matriz Rx2 de los valores máximos y mínimos para R elementos de entrada. S - Número de elementos de salida ID – Vector de retardo, default = [0]. LR – Tasa de aprendizaje, default = 0.01;

net=newlin([-2 2;-2 2],1);

%Se ajusta el error (valor por omisión=0)net.trainParam.goal=0.1;

%Se ajustan las épocas (valor por omisión=100)net.trainParam.epochs=50;

%Se entrena la red[net,tr]=train(net,P,T);

%Si se desea dar valores iniciales al vector de pesos y umbral, escríbanse las siguientes dos líneas de código

net.IW{1,1}=[-1 -1];net.b{1}=[2];

%Se asignan a las variables W y b los valores calculados una vez terminado el proceso de entrenamiento

W=net.IW{1,1}b=net.b{1}

%Se grafican los patrones de entrada, las salidas deseadas y la frontera de decisión mediante las siguientes líneas

plotpv(P,T)

54

Page 55: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

plotpc(net.IW{1,1},net.b{1})

echo off

En la ventana de comandos de Matlab aparece paso a paso la ejecución del programa, como sigue:

%Se definen los vectores de entradaP=[0 2 -2;

%Se define el vector de salidaT = [1 1 0];

%Se crea una red linealnet=newlin([-2 2;-2 2],1);

%Se ajusta el error (valor por omisión=0)net.trainParam.goal=0.1;

%Se ajustan las épocas (omisión=100)net.trainParam.epochs=50;

%Se entrena la red[net,tr]=train(net,P,T);TRAINWB, Epoch 0/50, MSE 0.666667/0.1.TRAINWB, Epoch 25/50, MSE 0.0972903/0.1.TRAINWB, Performance goal met.

%net.IW{1,1}=[-1 -1];%net.b{1}=[2];

W=net.IW{1,1}

W =

0.1598 0.1598

b=net.b{1}

b = 0.3554plotpv(P,T)plotpc(net.IW{1,1},net.b{1})

echo off

La salida del programa (además del proceso descrito en la ventana de comandos de Matlab) es una sucesión de gráficas donde aparece la variación del error en un número N de épocas. Esto se muestra en la figura 2.9.

55

Page 56: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 2.9. Evolución del error

Los patrones de entrada en un plano de dos dimensiones, con la clasificación correspondiente (frontera de decisión) aparecen después de terminado el proceso de entrenamiento. Esto se muestra en la figura 2.10.

Figura 2.10. Patrones clasificados

56

Page 57: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

CAPITULO III

REDES NEURONALES MULTICAPA CON APRENDIZAJE SUPERVISADO..

3.1.0 Perceptron Multicapa

El Perceptrón multicapa  (MLP)  puede ser usado para la predicción de una serie de datos en el tiempo; tal a sido su  éxito en la medición de  la demanda de gas y electricidad, además de la predicción de cambios en el valor de los instrumentos financieros.

Predicción de mercados financieros, diagnósticos médicos, el Perceptrón como una red codificadora, el Perceptrón aprende a sumar enteros.

NETtalk es un Perceptrón que es capaz de transformar texto en ingles en sonido individual (representaciones fonéticas) y la pronunciación con la utilización de un sintetizador de voz; cuenta con aproximadamente 300 nodos de neuronas (siendo 80 en la capa escondida)  y 20,000 conexiones individuales.

3.1.1 Características

Cada capa de la red es caracterizada por la matriz de parámetros, y el funcionamiento de la red por una composición no lineal de operaciones como se muestra:

Una red neuronal hacia adelante (feedforward) con dos capas (una oculta y una de salida) es comúnmente usada para aproximación de mapas no conocidos. Si la capa de salida es lineal, la red puede tener una estructura similar a una red de base radial (RBF).

El perceptron multicapa es comúnmente usado para aproximar mapas no lineales complejos. En general, esto es posible, dos capas son suficientes para aproximar cualquier función no lineal. Por consiguiente, estamos restringiendo nuestras consideraciones a una red de dos capas.

La estructura de la parte de decodificación de la red de dos capas es representada en la figura (3.1).

Figure 3.1: Diagrama a bloques de una red neuronal de una sola capa oculta con conexión hacia adelante

57

F(W, x) = (W1 ·(Wl ·x) ) (3.11)

Page 58: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

La estructura de cada capa ha sido descrita en la figura. En la capa oculta se usan funciones no lineales y en la capa de salida puede ser diferente. Existen dos matrices de pesos: una matriz de  L ×p Wh en la capa oculta, y una matriz de  m ×L    Wy  en la capa de salida. El funcionamiento de la red puede ser descrito de la siguiente manera:

o simplemente como (3.12)

Típicamente, la función sigmoidal (tangente hiperbólica) es usada, pero existen otras funciones que también se pueden utilizar. Una condición importante desde el punto de vista de el aprendizaje es que la función debe ser diferenciable.

Típicamente funciones no lineales y sus derivadas se usan en el perceptron multicapa: Sigmoidal unipolar:

La derivada de la función sigmoidal:

Sigmoidal bipolar:

La derivada de la función bipolar sigmoidal:

Nota que

Derivadas de la función sigmoidal son siempre no negativas. Derivadas pueden ser calculadas directamente desde la señal de salida usando

simplemente operaciones aritméticas.

y = d

d v=

4 e2 v

(e2 v +1)2 = (1 - y2)

y = d

d v=

e-v

(1 + e-v)2 =  y (1 - y)

y = ( v ) = 1

1 + e-v=

1

2(tanh(v/2) -1) (160,30)

58

u(n) = Wh ·x(n)  ;      h(n) = (u(n))    - hidden signals ;

v(n) = Wy · h(n)  ;      y(n) = (v(n))    - output signals .

y(n) = ( Wy · ( Wh ·x(n) ) )

( v ) = tanh(v)(320,0)

Page 59: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

En saturación, para valores grandes de potencial de activación, v, las derivadas se acercan al cero.

3.1.2 Arquitectura

Figura 3.2. Arquitectura de un perceptron multicapa.

3.1.3 Aplicaciones

El rango de tareas que el Perceptrón puede manejar es mucho mayor que simples decisiones y reconocimiento de patrones. Por ejemplo, se puede entrenar una red para formar el tiempo pasado de los verbos en ingles, leer texto en ingles y manuscrito.

3.2.0 Adaline

Bernard Widrow comenzó a trabajar en las redes neuronales a finales de los años 50, al mismo tiempo que Frank Rosenblatt desarrollaba la regla de aprendizaje del perceptrón. En 1960 Widrow y su estudiante graduado Marcian Hoff, introdujeron la red ADALINE (ADAptive Linear NEuron), y su regla de aprendizaje a la cual ellos llamaron el algoritmo de Mínimos Cuadrados o LMS (Least Mean Square).

El algoritmo LMS ha encontrado mucho mayores aplicaciones prácticas que la regla de aprendizaje del perceptrón.

3.2.1 Características de las redes ADALINE y MADALINE.

Las redes ADALINE (ADAptive LINear Element) y MADALINE (Multiple ADALINE), fueron desarrolladas por Bernard Widrow en la universidad de Stanford poco después de que Rosenblatt desarrollará el Perceptrón. Las arquitecturas de ADALINE y MADALINE son esencialmente las mismas que las del Perceptrón. Ambas estructuras utilizan neuronas con funciones de transferencia escalón. La red Adaline está limitada a una única neurona, mientras que la Madaline puede tener varias. La diferencia fundamental respecto al Perceptrón se refiere al mecanismo de aprendizaje, Adaline y Madaline utilizan la

59

Page 60: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

denominada Regla Delta de Widrow- Hoff o regla del Mínimo Error Cuadrático Medio (LMS), basada en la búsqueda del mínimo de una expresión del error entre la salida deseada y la salida lineal obtenida antes de aplicarle la función de activación escalón (frente a la salida binaria utilizada en el caso del Perceptrón). Debido a esta nueva forma de evaluar el error, estas redes pueden procesar información analógica, tanto de entrada como de salida, utilizando una función de activación lineal o sigmoidal.

3.2.2 Arquitectura de la Red Adaline.

Una red neuronal como la que se muestra en la figura 3.1 tiene una capa de S neuronas conectadas a R entradas a través de una matriz de pesos W.

Figura 3.3 Arquitectura de la red Adaline

Esta red es con frecuencia llamada MADALINE o Múltiples ADALINE. La figura a la derecha define un vector de salida a de longitud S.

La regla de Widrow – Hoff puede entrenar solamente una capa de redes lineales. Esto no es tanto una desventaja, ya que una red de una sola capa es tan capaz como una red de múltiples capas. Para cada red lineal multicapa, existe una red lineal de una sola capa.

3.2.3 Algoritmo de Aprendizaje

La Regla de Aprendizaje LMS.

Si tenemos un vector de entradas X puede ser muy sencillo determinar el vector de pesos W que produzcan una salida S. Sin embargo, si se tiene un conjunto de entrada {x1, x2, ..., xL}, a cada uno de los cuales les corresponde una salida correcta dk, con k = 1, ..., L, ya no es tan fácil saber cuáles son los pesos que producirían un mejor resultado; para esto, el Adaline utiliza la regla de mínimos cuadrados, o que minimiza el error cuadrático medio, llamada LMS (Least Mean Square), o regla delta, porque minimiza la delta o diferencia entre el valor obtenido y el deseado.

Si queremos que el mejor vector de pesos que realice la proyección de los vectores de entrada xk a las salidas deseadas dk, lo que estamos buscando es minimizar el error en la

60

Page 61: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

salida. Si denotamos la salida para el k-ésimo vector de entrada con sk, el error es denotado por la ecuación 3.1.

(3.21)Entonces el error cuadrático medio, que es el valor que deseamos minimizar esta dado por la ecuación 3.2.

(3.22)

considerando a L como el tamaño del conjunto de entrenamiento, o sea, el número de vectores de entrada que usaremos para el entrenamiento. Desarrollando se obtiene 3.23.

(3.23)

Para minimizar esta función debemos derivar con respecto a w e igualar a cero, como se muestra en 3.24.

(3.24)

Ahora, como representa al error cuadrático medio, su gráfica (con dos entradas y dos pesos) debe ser un paraboloide, y como no puede ser negativo, la gráfica debe ser cóncava hacia arriba. De aquí resta que el mínimo encontrado es único, y que no tiene máximos. Pero para obtener un vector de pesos como indica el procedimiento anterior es necesario contar con información estadística acerca de los vectores de entrada. Pero basándonos en lo obtenido, podemos desarrollar un método capaz de aproximar cada vez más el vector de pesos al que nos produce un error cuadrático mínimo. Empezamos suponiendo que el vector de pesos es una función discreta del tiempo, en el que cada paso se actualiza basándose en el vector anterior, como se muestra en la ecuación 3.25.

(3.25)

Este cambio w lo se aproxima mediante el gradiente del error, que nos da la dirección del ascenso más pronunciado, que multiplicado por un factor nos da la dirección y magnitud correcta; vea la ecuación 3.26

(3.26)

61

Page 62: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Pero asumimos que no conocemos las estadísticas de las entradas, por lo que no podemos encontrar el gradiente exacto del error; para librar este inconveniente, aproximamos el error esperado con el error actual, con lo que se obtiene 3.27 y 3.28.

(3.27)

(3.28)

Esta es la expresión para el descenso más pronunciado, del algoritmo LMS. Al factor lr=2se le conoce como constante de proporcionalidad o tasa de aprendizaje. La actualización de pesos y de umbral para la red adaline se describe por la ecuación 3.29.

3.29

Nota:Para la elección de un valor de debemos tener cuidado. Se puede suponer que mientras

que el valor de sea mayor, nos acercaremos más rápido al error mínimo, sin embargo no es así: un valor grande de nos puede hacer que la solución viaje por toda la superficie del paraboloide sin convergir nunca. Por otro lado, un valor muy pequeño seguramente provocará que se consuma un tiempo mayor durante el entrenamiento.

Tampoco es necesario que el valor de permanezca estático: conforme el error vaya disminuyendo, el algoritmo dará pasos más cortos, y en esos momentos es cuando es recomendable incrementar ligeramente en cada paso; pero se debe tener cautela, puesto que si incrementamos demasiado daremos saltos por el fondo de la superficie sin mejorar el error ni llegar al límite buscado.

3.2.4 Aplicaciones

Esta red ha sido extensamente utilizada en ciencia, estadística (en el análisis de regresión lineal), ingeniería (el procesamiento adaptativo de señales, control de sistemas), y así sucesivamente.

En general, la Adaline es usada para ejecutar:

Una aproximación lineal de un pequeño segmento de una superficie no lineal, la cual es generada por una función variable p, y = f(x). En este caso, el bias es usualmente necesario, de aquí, wp = 1.

Filtrado lineal de datos (señales).

62

Page 63: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Asociación de patrones, esto es, generación de m-elemento del vector de salida asociados con su respectivo p-elemento del vector de entrada.

3.2.5 Ejercicios y simulación en Matlab

Predicción adaptativa con Adaline - Ejemplo (adlpr.m)

En este ejemplo una configuración Adaline como en la figura (3.4) es usada para predecir una señal de unidimensional (series de tiempo). Para predecir el siguiente valor de la señla de entrada, p muestras de ésta son colocados a la Adaline. La señal de entrada es también usada como la salida deseada. La regla de aprendizaje LMS es usada para adaptar el vector de pesos en cada paso.

Empezaremos con las especificaciones de una señal senoidal de frecuencia 2kHz muestrada cada 50sec. Después de 5sec la frecuencia de la señal se cuadriplicara con el tiempo de muestreado siendo también reducido a 12.5sec.

f1 = 2 ; % kHzts = 1/(40*f1) ; % 12.5 sec -- sampling time, fs = 80kHzN = 100 ;t1 = (0:N)*4*ts ;t2 = (0:2*N)*ts + 4*(N+1)*ts;t = [t1 t2] ; % 0 to 7.5 secN = size(t, 2) ; % N = 302xt = [sin(2*pi*f1*t1) sin(2*pi*2*f1*t2)];plot(t, xt), grid, title('Signal to be predicted')

63

Page 64: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 3.4: La señal de entrada y la señal predicha

La señal (series de tiempo) se convertira en una collección de vectores de entrada, x(n), y guardadas en una matriz X de p ×N.

p = 4 ; % Number of synapsesX = convmtx(xt, p) ; X = X(:, 1:N) ;d = xt ; % The target signal is equal to the input signal y = zeros(size(d)) ; % memory allocation for yeps = zeros(size(d)) ; % memory allocation for epseta = 0.4 ; % learning rate/gainw = rand(1, p) ; % Initialisation of the weight vectorfor n = 1:N % LMS learning loop y(n) = w*X(:,n) ; % predicted output signal eps(n) = d(n) - y(n) ; % error signal w = w + eta*eps(n)*X(:,n)'; % weight updateend

64

Page 65: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 3.5: El error de predicción

El vector de pesos estimado es w = 0.7049 0.2818 0.2366 -0.2795

3.3.0 Red Backpropagation

El perceptrón solo es el ejemplo más elemental de una red neuronal, de hecho, no puede siquiera ser considerado una "red", puesto que no intervienen otros elementos. Si se combinan varios perceptrones en una "capa", y los estímulos de entrada después se suman tendremos ya una red neuronal. Una red neuronal muy eficaz para resolver fundamentalmente problemas de reconocimiento de patrones es la red neuronal de propagación hacia atrás, en inglés back propagation network.

OrigenAl parecer el algoritmo fue ideado a principios de los 70 por Werbos, y redescubierto a principios de los 80 por Parker y Rumelhart independientemente, sin embargo, no se hizo popular hasta 1986, cuando Rumerlhart, Hinton y Williams presentaron una descripción clara y concisa del mismo. Y es que en un primer momento no se valoró como se merecía. El hecho de que permaneciera en el olvido tanto tiempo también debe ser una consecuencia de la condición interdisciplinaria del campo, repartido entre las matemáticas y ciencias de la computación, las neurociencias y la sicología.

Desde la fecha clave de 1986 han surgido nuevas versiones que han tratado de aumentar la velocidad de convergencia del algoritmo y han tratado de superar algunos de sus inconvenientes, como la tendencia a alcanzar mínimos locales y no globales, punto que será discutido más tarde.

65

Page 66: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

3.3.1 CaracterísticasAl hablar de redes de retropropagación o redes de propagación hacia atrás hacemos referencia a un algoritmo de aprendizaje más que a una arquitectura determinada. La retropropagación consiste en propagar el error hacia atrás, es decir, de la capa de salida hacia la capa de entrada, pasando por las capas ocultas intermedias y ajustando los pesos de las conexiones con el fin de reducir dicho error. Hay distintas versiones o reglas del algoritmo de retropropagación y distintas arquitecturas de conexión a las que pueden ser aplicados.

Durante mucho tiempo no se dispuso de algoritmos para entrenar redes multicapa, y como las redes de una capa estaban muy limitadas en cuanto a lo que eran capaces de representar, el campo de las redes neuronales artificiales estaba estancado. La invención y perfeccionamiento del algoritmo de retropropagación dio un gran impulso al desarrollo de este campo. Tiene un buen fundamento matemático y a pesar de sus limitaciones ha expandido enormemente el rango de problemas donde se aplican las redes neuronales artificiales.

Descripción matemáticaSe explica una versión del algoritmo (Hinton, 1992) para redes con las siguientes características:No recurrentes

Función de activación sigmoidal

Capas totalmente interconectadas

Operación totalmente síncrona

3.3.2 Arquitectura

Figura 3.6. Arquitectura de una red backpropagation.

3.3.3 Algoritmo de Aprendizaje Aleatorizamos los pesos de las conexiones.

Presentamos un patrón de entrada y calculamos la salida.

66

Page 67: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Dada una unidad j-ésima de la capa de salida y unidades i-ésimas de la capa oculta inmediatamente anterior, calculamos la entrada total ponderada y la salida o activación de la misma.

Figura 3.7 . Ilustra el calculo de la capa de salida

Una vez computadas las actividades de todas las unidades de salida se calcula una estimación del error, generalmente una función cuadrática de los errores individuales cometidos por cada unidad, siendo cada error individual la diferencia entre la salida deseada y la obtenida.

siendo dj la salida deseada para la unidad j-ésima

Nota: Se van a indicar por un lado las expresiones matemáticas y por otro lado la explicación intuitiva de cada paso. Conviene recordar que nuestro objetivo es calcular como varía el error al variar el peso de cada conexión (tasa de variación del error respecto al peso de una conexión, EP)

Cómputo de la rapidez de variación del error al cambiar la actividad de cada unidad de salida (EA, error respecto a la actividad)

Es justamente la diferencia entre la salida deseada y la salida real obtenida, es decir, la diferencia entre la actividad deseada y la actividad real

Cómputo de la rapidez de variación del error al cambiar la entrada total que recibe cada unidad de salida.

67

Y 1

Y 2

Y n

Y j

W1,j

W2,j

Wn,j

Y1

Ym

j=1..m

CAPA DE SALIDA

i=1..n

CAPA OCULTA

Page 68: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Es igual a la tasa de variación del error al variar su activación multiplicado por la tasa de variación de la activación al cambiar su entrada ( que es justamente la derivada de la función sigmoidal )

Cómputo de la rapidez de variación del error al ser modificado un peso de la conexión aferente a una unidad de salida.

Es igual a la tasa de variación del error al variar su entrada, por la tasa de variación de la entrada al variar ese peso.

Hasta ahora sabemos calcular el EA sólo para las unidades de salida, ¿ qué pasa con las unidades ocultas?. En este caso no tenemos una estimación directa del error aportado por cada unidad oculta; aquí es donde interviene la retropropagación o propagación hacia atrás del error:

Figura 3.8. Ilustra la propagación hacia atrás del error.

La unidad i-ésima de la capa oculta afecta a todas las unidades de salida, por lo tanto, para estimar como varía el error al variar la actividad de esa unidad oculta, habrá que sumar los efectos individuales de su actividad sobre todas las neuronas de salida. Cada efecto individual sobre la variación del error, será igual a la tasa de variación del error de la unidad de salida al cambiar su entrada total, multiplicado por la tasa de variación de su entrada al variar la actividad de la unidad oculta.

Conociendo EA para las unidades de cualquier capa podemos calcular y EP con las expresiones ya conocidas.

68

Y i

Y 1

C A P A O C U L T A

Y2

Ym

i= 1 . .n

Y n

Y 1Wi,1

Wi,2

Wi,m

CAPA DE SALIDAj=1..m

Wh,i

Page 69: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Disponiendo de la tasa de variación del error respecto al peso de una conexión (EP), podemos usar distintas reglas para modificar ese peso en aras a reducir dicho de error. Una de las primeras reglas que aprovechó este algoritmo es la regla delta generalizada, que calcula el incremento a aplicar a un peso como una proporción directa de la tasa de variación del error.

siendo el coeficiente de aprendizaje, típicamente con valores comprendidos entre 0.01 y 1.0

El algoritmo de retropropagación presenta ciertos problemas, algunos referentes a su dudosa plausibilidad neurofisiológica, y otros referentes a ciertos aspectos computacionales, que son los que vamos a comentar aquí.

Los resultados dependen de los valores iniciales, aleatorios, de las conexiones. Esto hace que sea conveniente entrenar varias redes con distintas valores iniciales y elegir la que mejor funcione.

A veces se requiere mucho tiempo para obtener soluciones sencillas. Este problema se reduce gracias al aumento de potencia de los procesadores y al uso de nuevas tecnologías, sin embargo, el tiempo de cómputo aumenta mucho al aumentar el tamaño de la red. Si bien el volumen de cálculo es proporcional al número total de conexiones. En la práctica, al aumentar el tamaño de la red, hacen falta más ejemplos de aprendizaje, y eso provoca un aumento aumenta mucho mayor del tiempo de aprendizaje. Para incrementar la velocidad de convergencia se han desarrollado diferentes modificaciones del algoritmo.

La “interferencia catastrófica” o empeoramiento en el rendimiento del sistema, como consecuencia de la incorporación de nuevos ejemplos de aprendizaje.

La parálisis: esto sucede cuando los pesos quedan ajustados a valores muy grandes, esto hace operar a las unidades de proceso con una activación muy próxima a 1, y por lo tanto, el gradiente del error, tiende a 0, en consecuencia no se producen modificaciones en los pesos, el aprendizaje queda detenido. Por eso es conveniente aleatorizar los pesos de las conexiones con valores pequeños y usar la tasa de aprendizaje, también pequeña, a pesar de que se alentase el aprendizaje.

Inestabilidad temporal. Si usamos un coeficiente de aprendizaje elevado, se van a producir incrementos grandes en los pesos, de manera que es fácil pasarse de incremento y tener que tratar de compensarlo en el siguiente ciclo, de manera que se producirían oscilaciones continuas. Esto se soluciona usando un coeficiente pequeño, o, para no tener un aprendizaje muy lento, modificar dicho coeficiente adaptativamente (aumentarlo si el error global disminuye, y disminuirlo en caso contrario).

El problema de los mínimos locales. El algoritmo de retropropagación usa un técnica por gradiente descendiente, esto significa que sigue la “superficie del error” siempre hacia

69

Page 70: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

abajo, hasta alcanzar un mínimo local, pero no garantiza que se alcance una solución globalmente óptima. Sin embargo, se ha comprobado que el hecho de alcanzar mínimos locales no impide que se consigan resultados satisfactorios. Por otro lado, se han desarrollado métodos para solventar este problema, como el modo de operación asíncrono o probabilística y el uso de métodos estadísticos, como el equilibrio termodinámico simulado (ver siguiente apartado).

Figura 3.9. Problema de los mínimos locales

Podemos considerar el error como una superficie llena de desniveles, si soltamos una pelota caerá en algún valle, pero no necesariamente en el más hondo, sino en el más cercano (un mínimo local). Una idea intuitiva para solucionar esto, sería aplicarle cierta energía a esa superficie agitándola o haciéndola vibrar, esto haría saltar a la pelota de valle en valle, como de los valles más profundos es más difícil salir, tendería a estar en valles cada vez más profundos. Si dejamos de agitar esa superficie poco a poco, al final tendremos la pelota en el valle más profundo de la superficie.

Otras técnicas que pueden ayudar a no caer en mínimos locales consisten en añadir cierto nivel de ruido a las modificaciones de los pesos de las conexiones. Otra medida propuesta es añadir ruido a las conexiones, pero esto es más útil para darle robustez y aumentar la capacidad de generalización de la red. Estas medidas, por contra, aumentan el tiempo de aprendizaje.

AplicacionesEjercicio y simulaciones en MatlabEjemplo de una función de aproximación (fap2D.m)En este ejemplo de MATLAB aproximamos dos funciones de dos variables,

Usando un perceptron de dos capas,

Los pesos del perceptron, Wh, Wy, son entrenados usando el algoritmo básico de back-propagation.

Empezaremos con la especificación de la red neuronal (fap2Di.m):

p = 3 ; % Número de entradas (2) mas la entrada de el bias

70

y = f(x)   , or   y1 = f1 ( x1, x2)   ,     y2 = f2 ( x1, x2)

y = ( Wy · ( Wh ·x) )

Page 71: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

L = 12; % Número de señales ocultas (con bias)m = 2 ; % Número de salidas

La estructura de la red es la siguiente:

Figura 3.10. Estructura de la red

Dos señales serán aproximadas por un perceptron de dos capas:

El dominio de la función es un cuadrado   x1, x2 [-2,   2). Se tomaran muestras de las funciones para el entrenamiento y se colocaran en una regilla de 16 ×16. El código para formar las matrices de muestras X y D es el siguiente:

na = 16; N = na^2; nn = 0:na-1; % Número de casos de entrenamiento

Especificación del dominio de las funciones:

X1 = nn*4/na-2; % na puntos de -2 en dos, desde (4/na)=.25 a (2-4/na)=1.75[X1 X2] = meshgrid(X1); % especificación de los vértices de la matriz X1 y X2 son na por naR=(X1.^2+X2.^2+1e-5); % R (rho) es una matriz cuadrática de distancias de los vértices de la matriz al punto original.D1 = X1.*exp(-R); D = (D1(:))'; % D1 es na por na, D es 1 por ND2 = 0.25*sin(2*R)./R ; D = [D ; (D2(:))']; %D2 es na por na, D es una matriz 2 por N de 2-D vectores

El dominio de los puntos de muestras es el siguiente:

X1=-2.00 -1.75 ... 1.50 1.75 X2=-2.00 -2.00 ... -2.00 -2.00 -2.00 -1.75 ... 1.50 1.75 -1.75 -1.75 ... -1.75 -1.75 . . . . . . . . . . . . -2.00 -1.75 ... 1.50 1.75 1.50 1.50 ... 1.50 1.50 -2.00 -1.75 ... 1.50 1.75 1.75 1.75 ... 1.75 1.75

y1 = x1 e-   ,      y2 = sin2

4   , donde   = x1

2 + x22

71

Page 72: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Recorriendo las columnas X1  y  X2   y colocando el bias, obtenemos la matriz de entrada   X  la cual es p ×N: X = [X1(:)'; X2(:)';ones(1,N)];

Los ejemplares de entrenamiento son los siguientes: X = -2.0000 -2.0000 ... 1.7500 1.7500 -2.0000 -1.7500 ... 1.5000 1.7500 1.0000 1.0000 ... 1.0000 1.0000

D = -0.0007 -0.0017 ... 0.0086 0.0038 -0.0090 0.0354 ... -0.0439 -0.0127

La función a ser aproximada se puede ver en la Figura 3.11. surfc([X1-2 X1+2], [X2 X2], [D1 D2])

Figure 3.11: Dos funciones de 2-D a ser aproximadas

Inicializando la matriz de pesos aleatoriamente:

Wh = randn(L,p)/p; La matriz de pesos de la capa oculta Wh es L ×p Wy = randn(m,L)/L; La matriz de pesos de la capa de salida Wy es m ×L C = 200; % máximo numero de épocas de entrenamientoJ = zeros(m,C); % Inicialización de la función de erroreta = [0.003 0.1]; % Ganancia de entrenamiento

El ciclo principal (fap2D.m):

72

Page 73: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

for c = 1:C

El paso hacia adelante: H = ones(L-1,N)./(1+exp(-Wh*X)); % Señales ocultas (L-1 x N) Hp = H.*(1-H); % Derivadas de las señales ocultas H = [H ; ones(1,N)]; % bias Y = tanh(Wy*H); % señales de salida (m x N) Yp = 1 - Y.^2; % Derivadas de las señales de salida

La retroalimentación: Ey = D - Y; % Los errores de salida (m x K) JJ = (sum((Ey.*Ey)'))'; % El error total después de una época % de aproximación m x 1 delY = Ey.*Yp; % Señal de salida delta (m x K) dWy = delY*H'; % Actualización de la matriz de salida % dWy es L x m Eh = Wy(:,1:L-1)'*delY % La propagación hacia la capa oculta del

error % Eh es L-1 x N delH = Eh.*Hp ; % Señal oculta delta (L-1 x N) dWh = delH*X'; % Actualización de la matriz oculta % dWh es L-1 x p

La actualización de los pesos: Wy = Wy+etay*dWy; Wh = Wh+etah*dWh;

Las dos funciones de aproximación son graficadas después de cada época. Ver la figura 3.12 de la aproximación final.

73

Page 74: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 3.12: Funciones al final de la aproximación

D1(:)=Y(1,:)'; D2(:)=Y(2,:)';surfc([X1-2 X1+2], [X2 X2], [D1 D2]) J(:,c) = JJ ;end % fin del entrenamiento

La suma del error cuadrático al final de cada época de entrenamiento es guardado en una matriz de 2 × C y mostrado en la figura 3.13.

74

Page 75: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 3.13: Error de entrenamiento por cada función al final de cada época

3.4.0 Variantes del algoritmo de retropropagación

El algoritmo de retropropagacíon fue el mayor avance en el campo de la investigación de las redes neuronales. Sin embargo el algoritmo resulta demasiado lento para aplicaciones practicas.

Cuando se aplica el algoritmo básico de retropropagación a problemas prácticos el tiempo de entrenamiento puede llevar días e incluso semanas de computo. Por lo que se a investigado en la búsqueda de métodos para acelerar el algoritmo de convergencia.

La investigación de algoritmos más veloces se clasifica en dos categorías:1. Técnicas Heurísticas

Momento Razón de aprendizaje variable

2. Técnicas de optimización numérica Algoritmo de gradiente conjugado Algoritmo de Levenberg-Marquardt3.4.1 TÉCNICAS HEURÍSTICASEl

método del momentoEste método esta fundamentado en suavizar las oscilaciones, en la trayectoria hacia la convergencia, usando un filtro pasa bajas. El momento toma el siguiente intervalo de valores:0 1Al

75

Page 76: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

incrementar el momento las oscilaciones en la salida filtrada se reducen. El filtro tiene la tendencia a reducir la cantidad de oscilaciones mientras la trayectoria continua avanzando a un valor promedio. El método del momento tiene las siguientes ecuaciones para actualizar los parámetros de las redes neuronales:Figura 3.14. Muestra la trayectoria del algoritmo de momentoVentajas del método del momento.Al usar el método del momento se puede usar una velocidad de aprendizaje mayor, mientras se mantenga la estabilidad del algoritmo. El momento tiende a acelerar la convergencia cuando la trayectoria se esta moviendo en una dirección constante. Este método tiende a hacer la trayectoria continua en la misma dirección.A continuación se muestra un ejemplo del algoritmo del momento.Figura 3.15. Ejemplo del algoritmo del momentoFigura 3.16. Muestra el algoritmo del momentoAlgoritmo de retropropagación con Razón de Aprendizaje VariableEste algoritmo incrementa la velocidad de convergencia incrementando la velocidad de aprendizaje en superficies planas y disminuyéndola, cuando la pendiente aumenta.Reglas del algoritmo de aprendizaje variable1.- Si el error cuadrático se incrementa mayor a un porcentaje establecido (1% a 5%) después de haber actualizado W; entonces se descarta la actualización;a se multiplica por 0 < r < 1

g se ajusta a cero (si se utiliza el momento).

2.- Si el error cuadrático disminuye después de haber actualizado W, entonces la actualización es aceptada. a es multiplicada por un factor h >1. Si g había sido ajusta a cero, este regresa a su valor original.

3.- Si el error cuadrático se incrementa en un valor menor a z , entonces la actualización de W se acepta pero a no cambia. Si g había sido ajusta a cero, este regresa a su valor original. Valores típicos: h = 1.05 r= 0.7 z=4%La razón de aprendizaje y el tamaño del

paso tienden a incrementarse cuando la trayectoria esta viajando en línea recta con una disminución del error constante. Cuando la trayectoria llega a un valle angosto la razón de aprendizaje es disminuido rápidamente. De otra forma la trayectoria se haría oscilatoria y el error se incrementaría dramáticamente.Ejemplo: Figura 3.17. Muestra el algoritmo de razón de aprendizaje variable3.4.2 TÉCNICAS DE OPTIMIZACION NUMÉRICAAlgoritmo de Gradiente Conjugado(CGBP)CGBP converge a un mínimo de una función cuadrática en un numero finito de iteraciones. El procedimiento general para localizar un mínimo de una función en una dirección requiere:Localizar el intervalo donde se encuentra

1. Reducir el intervaloAlgoritmo

1.- La primera dirección en buscar es un paso descendente

2.- Tomar el paso y escoger la razón de aprendizaje para minimizar el error en esa dirección

76

p0 g0–= gk F x x x k=

Page 77: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

3.- Seleccionar la siguiente dirección de acuerdo con:

donde

Localización del intervalo

Se evalúa el índice de desempeño de un punto inicial F(xo). Se evalúa la función en un segundo punto, el cual tiene una distancia d del punto inicial, a lo largo de la dirección de búsqueda Po. Se continua evaluando sucesivamente el índice de desempeño de los nuevos puntos, duplicando la distancia entre estos.

Figura 3.18. Localización del intervalo

Reducción del intervalo

Esto involucra la evaluación de la función en puntos dentro del intervalo.

77

xk 1+ xk kpk+=

pk gk– kpk 1–+=

k

g k 1–T gk

gk 1–T

pk 1–

-----------------------------= k

gkT gk

gk 1–T

g k 1–

-------------------------= k

gk 1–T gk

gk 1–T

gk 1–

-------------------------=

Page 78: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 3.19. (a) Intervalo sin reducir. (b) Reducción del intervalo entre a y b.

Algoritmo LMBP

Presentar todas las entradas a la red y calcular la salidas correspondiente y los errores. Calcular la suma de los errores cuadráticos en todas las entradas. Calcular la matriz Jacobiana. Después de inicializar, calcule la sensibilidades con el algoritmo de retropropagación. Aumente la matrices en las sensibilidades de Marquardt. Calcule los elementos de la matriz Jacobiana.Solucione para obtener el cambio en los pesos.Recalcule la suma del error cuadrático con los nuevos pesos. Si esta nueva suma de cuadrados es mas pequeña, que el calculado en el paso 1,

entonces divida mk en u, actualice los pesos y regrese al paso 1.

Si la suma de los cuadrados no es reducida, entonces multiplique mk por u y regrese

al paso 3.Figura 3.20. Ejemplo de la trayectoria del algoritmo

El LMBP es el algoritmo mas rápido que se ha probado para entrenar redes neuronales multicapa de tamaño moderado.

Su principal inconveniente es los requerimientos de memoria; si la red tiene mas de unos cuantos cientos de paramentos el algoritmo se vuelve impráctico.3.4.4 Ejemplo y Simulación en Matlap

Creación de una red neuronal (newff)

El primer paso del entrenamiento de una red neuronal es crear la red. La función newff crea una red con conexión hacia adelante. Esta función requiere de cuatro parámetros y regresa un objeto del tipo red:

78

Page 79: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

1. La primera entrada es una matriz de (p-1)×2 XR de mínimos y máximos valores por cada uno de los elementos (p-1) de el vector de entrada.

2. La segunda entrada es un arreglo con el tamaño de cada capa. 3. La tercera entrada es un arreglo con los nombres de las funciones de transferencia

que se van a usar en cada capa. 4. La última entrada contiene el nombre del algoritmo de entrenamiento que se va a

utilizar.

Por ejemplo el siguiente comando crea una red de dos capas. Tendrá un vector de entrada con dos elementos (p-1 = 2), tres neuronas en la primera capa (L-1 = 3) y una neurona en la segunda capa (salida) (m = 1).

La función de transferencia en la primera capa será la tansig, y la función de transferencia en la capa de salida será lineal. Los valores para el primer elemento del vector de entrada estarán en el rango de -1 y 2, los valores del segundo elemento del vector de entrada estará en el rango de 0 y 5, esto es, la matriz XR es de la forma siguiente:

XR = [-1 2; 0 5];

Y la función de entrenamiento será traingd (la cual describiremos más adelante).

net=newff(XR,[L-1,m],'tansig','purelin','traingd');

Este comando crea un objeto del tipo red y también inicializa los pesos y el bias de la red, usando por default el comando (initnw). Por lo tanto la red esta lista para ser entrenada.

Inicialización de pesos (init, initnw, rands)

Si necesitas re- inicializar, o cambiar la inicialización por default de los pesos, utiliza el comando init:

net=init(net);

Esta función toma como entrada un objeto de tipo red y regresa un objeto de tipo red con los pesos y bias inicializados. Esta función es invocada por el comando newff y usa el algoritmo de Nguyen-Widrow.

Si, por ejemplo, queremos re-inicializar los pesos y los bias en la primera capa de forma aleatoria, usando la función rands, debemos usar los siguientes comandos:

net.layers{1}.initFcn = 'initwb'; net.inputWeights{1,1}.initFcn = 'rands'; net.biases{1,1}.initFcn = 'rands'; net.biases{2,1}.initFcn = 'rands'; net = init(net);

79

Page 80: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Simulación (sim)

La función sim simula una red neuronal. La función sim toma la entrada de la red X, y el objeto red net, y regresa la salida de la red Y.

Aquí se muestra como puede ser usado el comando simuff, para simular la red que creamos anteriormente para un vector de entrada simple: x = [1;2]; a = sim(net,x) a = -0.1011

Abajo, el comando sim es llamado para calcular las salidas para un vector de entrada de tres elementos. X = [1 3 2;2 4 1]; Y = sim(net,X) Y = -0.1011 -0.2308 0.4955

Entrenamiento incrementado (adapt)

La función adapt es usada para entrenar redes en el modo de crecimiento (pattern). Esta función toma el objeto red, las entradas y los valores deseados para el entrenamiento, y regresa el objeto red entrenado con los valores de salida y errores de la red para los pesos y bias finales.

Entrenamiento Batch (train)

La alternativa para un entrenamiento en crecimiento es el entrenamiento batch, el cual es invocado usando la función train. En el modo batch los pesos y bias de la red son actualizados solo después de haber concluido el entrenamiento en la red.

Algunas de las funciones disponibles para el entrenamiento de tipo batch se listan en la tabla siguiente junto con un tiempo relativo de convergencia.

Function Technique Time Epochs Mflops

traingdx Variable Learning Rate 57.71 980 2.50

trainrp Rprop 12.95 185 0.56

trainscg Scaled Conj. Grad. 16.06 106 0.70

traincgf Fletcher-Powell CG 16.40 81 0.99

traincgp Polak-Ribiére CG 19.16 89 0.75

traincgb Powell-Beale CG 15.03 74 0.59

trainoss One-Step-Secant 18.46 101 0.75

trainbfg BFGS quasi-Newton 10.86 44 1.02

80

Page 81: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

trainlm Levenberg-Marquardt 1.87 6 0.46

Ejemplo

En este ejemplo usaremos el algoritmo de Levenberg-Marquardt para aproximar dos funciones de dos variables.

% Generación de los puntos de entrenamientona = 16 ; N = na^2; nn = 0:na-1;X1 = nn*4/na - 2;[X1 X2] = meshgrid(X1);R = -(X1.^2 + X2.^2 +0.00001);D1 = X1 .* exp(R); D = (D1(:))';D2 = 0.25*sin(2*R)./R ; D = [D ; (D2(:))'];Y = zeros(size(D)) ;X = [ X1(:)'; X2(:)'];figure(1), clf resetsurfc([X1-2 X1+2], [X2 X2], [D1 D2]),title('Two 2-D target functions'), grid, drawnow

% especificaciones de la redp = 2 ; % Numero de entradasL = 12; % Numero de neuronas ocultasm = 2 ; % Numero de salidasxmnmx = [-2 2; -2 2] ; net = newff(xmnmx, [L, m]) ;figure(2) net = train(net, X, D) ; % Entrenamiento Y = sim(net , X) ; % Verificación

D1(:)=Y(1,:)'; D2(:)=Y(2,:)';% Graficación de las funciones aproximadasfigure(3)surfc([X1-2 X1+2], [X2 X2], [D1 D2]), grid, ...title('function approximation'), drawnow

3.5.0 Redes de base Radial

Las redes de Base radial fueron desarrolladas por Broomhead y Lowe (1988), J. Moody y C. Darken (1989)

Las redes de función de base radial (RBFN) han sido tradicionalmente asociados con funciones radiales en una red de capa simple.

81

Page 82: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Los modelos de redes tratados anteriormente están basados en unidades (neuronas) que producen a la salida una función lineal del producto escalar del vector de entrada y el vector de pesos.

a= F( WP +b)En las RBFN consideraremos una clase dentro de los modelos de las redes neuronales, en el cual la activación de las unidades ocultas, esta determinada por la distancia entre el vector de entrada y el vector de pesos

A= f(dist(W,P)*b)

Las redes de base radial pueden requerir mas neuronas que las redes de retropropagación estándar, pero ellas pueden ser diseñadas a menudo en una fracción del tiempo que toma entrenar una red de retropropagación estándar. Estas redes tienen un mejor desempeño cuando el conjunto de vectores de entrenamiento es amplio.

Para este tipo de redes se crearon procedimientos para entrenamiento de redes de función de base radial, los cuales son mucho más rápidos que los métodos usados para entrenar un perceptrón multicapa.3.5.1 Características

Modelo NeuronalLa figura 3.21 muestra el modelo neuronal de una red de base radial con R entradas.

Figura 3.21. Modelo de una neurona de base radial

La función de transferencia, para una función de base radial es radbas. Se puede observar que la expresión para la entrada de red a una neurona con función tipo radbas no es igual a las vistas anteriormente. Una neurona con función de base radial recibe como entrada de red, la distancia vectorial entre el vector de pesos W y el de entrada P, multiplicada por el umbral B. La figura 3.22 muestra gráficas de la función de transferencia de base radial.

82

Page 83: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 3.22. Función de transferencia de una función de base radial.

La gráfica de la figura 3.22 muestra una función de base radial la cual tiene un máximo de uno cuando la entrad es un cero. Esta función es útil al efectuar la resta entre el vector de pesos W y el vector de entrada. conforme la distancia vectorial entre W y P decrece, la salida se incrementa. De esta forma la función de base radial actúa como un detector, cuya salida es uno cuando la entrada P es idéntica al vector W.

El umbral B permite la sensibilidad de la neurona de base radial (redbas) sea ajustada. Por ejemplo si una neurona tiene un umbral de 0.1este enviaría una salida de 0.5, para cualquier vector de entrada P a una distancia de 8.326 (0.8326/B) a partir del vector de peso W.

3.5.2 Arquitectura de Red

Las redes de base radial consistente de dos capas: una capa oculta de base radial (redbas) de S1 neuronas y una capa de salida lineal (pureline) de S2 neuronas.

Figura 3.23. Arquitectura Compacta de una red neuronal con funciones de base radial.

Las líneas de código contenidas debajo de cada capa de la figura 3.23 están contenidas en la función simurb, la cual toma un vector de entrada P, los pesos y los umbrales de la red de base radial, y regresa la salida correspondiente para cada capa.

Si simurb es llamado con un argumento de salida, este regresara justamente la salida de la segunda capa.

83

Page 84: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Se puede comprender como esta red se comporta al seguir un vector de entrada P, a través de la red a la salida a2. Si se presenta un vector de entrada tal como una red, cada neurona en la capa de base radial redbas, enviara un valor de salida de acuerdo a que tan próximo este el vector de entrada al vector peso de cada neurona.

El resultado es que las neuronas de base radial redbas, con vectores de peso muy diferentes de los vectores de entrada P, tendrán salidas cercanas a cero. Estas salidas de valor pequeño tendrán efectos mínimos en las salidas lineales de las neuronas.

En contraste cualquier neurona de base radial redbas cuyo vector de peso es muy próximo al vector de entrada P tendrá un valor cercano a uno. Si una neurona tiene una salida de uno sus pesos de salida en la segunda capa pasan sus valores a las neuronas lineales pureline, en la segunda capa.

De hecho, si únicamente una neurona tiene salida uno, y todas las otras tienen salida cero o cercana a este, la salida de la capa lineal, activaría las neuronas de los pesos de salida. Esto seria un caso extremo. Típicamente varias neuronas se activan siempre, con variación de grados.

3.5.3 Algoritmo de aprendizaje

Las redes de base radial pueden ser diseñadas con la función solverbe, la cual diseña actualmente una red con cero error en los vectores de entrenamiento.

La función solverbe toma matrices de los vectores de entrada P, y vectores de salida T, y una constan de extensión (spread) para la capa de base radial sc, y regresan los pesos y umbrales para la red las cuales permiten una salida exacta T, dada por P.

Esta función trabaja creando tantas neuronas de base radial como existan vectores de entrada P. Cada vector de pesos de las neuronas de base radial W1 es ajustado a la transpuesta del vector de entrada diferencial. De esta forma se tiene una capa de neuronas de base radial de tal forma que cada neurona actua como un detector para diferentes vectores de entrada. Si existen Q vectores de entrada entonces existirán Q neuronas. Cada umbral b1 es ajustado a 0.8326/sc. Esto determina la anchura de un área en el espacio de entrada en al cual cada neurona responde. Si S es 4 entonces cada neurona de base radial responderá con 0.5 o más a cualquier vector de entrada, dentro de un vector de distancia de 4 a partir de su vector de peso. Como pudiera verse, ese debe ser lo suficientemente grande, que las neuronas respondan fuertemente a las regiones de traslape del espacio de entrada.

84

Page 85: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Una vez que W1 y b1 se han encontrado, la salida de la capa radial A1 se puede calcular, por las entradas P. Ahora se diseñara los pesos de la capa lineal. Se conocen las entradas a la capa lineal A1 y el objetivo T. Por lo tanto se puede llamar a la función solvelin para calcular los pesos W2 y el umbral b2, los cuales minimizan la suma del error cuadrático.

De esta forma, la función solverbe crea una red con cero error en los vectores de entrenamiento. La única condición que se tiene que conocer es asegurar que S sea lo suficientemente grande de tal forma que las regiones de entrada activas de las neuronas de base radial se traslapen los suficiente que varias neuronas de base radial siempre salidas ligeramente grandes en cualquier momento. Esto hace la función de red más suave y resulte en una mejor generalización para nuevos vectores de entrada ocurriendo entre los vectores de entrada usados en el diseño. (Sin embargo, S no debe ser demasiado grande, de tal forma que cada neurona este respondiendo efectivamente en el mismo largo y espacio de entrada.

El único inconveniente con la función solverbe es que produce una red con tantas neuronas en la capa oculta como existan vectores de entrada. Por esta razón solverbe no regresa una solución aceptable cuando se necesitan muchos vectores de entrada para definir a la red neuronal, como normalmente sucede.

Algoritmos de Redes de Base Radial más Eficientes

La función solverb interactivamente crea una red de base radial con una neurona a la vez. Las neuronas son agregadas a la red hasta que la suma de los errores cuadrados caen debajo de un error meta o se ha alcanzado un numero máximo de neuronas.

La función solverb toma matrices de los vectores de entrada y destino y parámetros de diseño dp, y regresa los pesos y umbrales para la red de base radial, él numero de neuronas en la capa de base radial nr y una memoria de errores de diseño dr.

Los parámetros de diseño indican que tan a menudo se mostraran los resultados, el numero máximo de neuronas en la capa de base radial, la meta del error cuadrático medio, y la extensión de las neuronas de base radial. Algunos o todos los parámetros pueden ser pasados a solverb; los parámetros omitidos serán remplazados por valores por omisión.

El método de diseño de solverb es similar al de solverbe. La diferencia es que solverb crea neuronas una a la vez. Para cada iteración del vector de entrada el cual produzca una disminución máxima en el error de la red, será usado para crear una neurona de base radial. El error de la red es revisado y si es lo suficientemente bajo finaliza la función solverb. De otra forma la siguiente neurona es agregada. Este proceso se repite hasta alcanzar la meta de error o el máximo numero de neuronas.

85

Page 86: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Al igual que la función solverbe, es importante que el parámetro de extensión sea lo suficientemente grande, que las neuronas de base radial responda a las regiones de traslape del espacio de entrada, pero que no sea demasiado grande que todas las neuronas respondan esencialmente de la misma manera.

Las redes de base radial aun cuando se diseñen eficientemente por la función solverb, tienden a tener la mayoría de las veces mas neuronas que una red de retropropagación con neuronas con funciones sigmoidales en la capa oculta.

Esto se debe a que las neuronas sigmoidales pueden tener salidas sobre una región grande del espacio de entrada, mientras que las neuronas de base radial solo responden a regiones relativamente pequeñas del espacio de entrada. Esto es que entre más grande es el espacio de entrada (en términos del numero de entradas e intervalos en los que las entradas varían) mayor es el numero de neuronas de base radial que se requieren.

Tabla 6.1. Resumen de Funciones relacionadas con redes de base radial.

Las funciones radiales son simplemente una clase de funciones. En principio, ellas podrías ser empleadas en cualquier tipo de modelo (lineal o no lineal) y en cualquier red (una capa o multicapa). De cualquier forma, desde el artículo de Broomhead y Lowe, acerca de las redes de funciones de base radial (RBF networks) han sido tradicionalmente asociadas con funciones radiales en una red de una sola capa, tal como se muestra en la siguiente figura.

86

Page 87: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Aplicaciones

Ejercicios

Una red RBF es no lineal si las funciones base pueden mover o cambiar de tamaño o si hay más de una capa oculta.

Las redes de base radial pueden requerir más neuronas que las redes estándar de retropropagación hacia delante, pero estas pueden ser diseñadas en una fracción de tiempo que toma entrenar a las redes hacia delante. Este tipo de redes trabajan mejor cuando muchos vectores de entrenamiento están disponibles.

Las redes de base radial constituyen la base para una transformación no lineal para un vector de entrada dado. Las funciones radiales están caracterizadas por el hecho de que su respuesta decrece (o incrementa) monótonamente con la distancia de un punto central. Una función radial típica es la función Gaussiana que, en el caso de una señal de entrada escalar,

está dada por

Los parámetros de esta función son el centro c y el radio, denotado por . Para el caso general de una señal de entrada M-dimensional (vector) la función radial cambia a:

donde y y c son vectores de tamaño M.

La figura 3.24a. ilustra una RBF Gaussiana con una señal de entrada escalar y, centro c=0 y un radio =1. Uno puede fácilmente ver que el mencionado punto central c es simplemente el máximo de la función y que decrementa monótonamente es obvio. El decrecimiento radial característico de las RBF dado en la ecuación 1 puede ser observada al expandirse la señal de entrada en un vector de entrada de 2 dimensiones. La figura 2b muestra una gráfica de la función Gaussiana en 3 dimensiones con un vector de entrada de dos dimensiones . El centro c es un vector de la misma dimensión que la señal de

entrada y y establecido en , el radio igual a uno: =1 . La línea circular del contorno en la figura 3.24b ilustra que la respuesta de h(y) decrementa monótonamente incrementando la distancia de su máximo a .

87

Page 88: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 3.24: Función Radial si a)Señal de entrada escalar. b) Vector de entrada 2-dimensional.

Simulaciones en Matlab

88

Page 89: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

CAPÍTULO IV

DISEÑO DE ARQUITECTURAS DE REDES FEEDFORWARD

Ciertos problemas se resuelven de una manera más fácil utilizando arquitecturas de redes particulares. Para redes feedforward multicapa, el número de neuronas ocultas puede hacer la diferencia entre éxito y fracaso. Mientras no existan fórmulas estrictas conocidas hasta este momento, este capítulo trata brevemente algunas reglas empíricas para la selección de un modelo apropiado de red y la definición de características específicas de dicho modelo.

En este capítulo se trata el difícil problema de decisión de una estructura y del entrenamiento de una red feedforward. Se asume que el problema a resolver indica que una red feedforward multicapa es el modelo más apropiado. Dado lo anterior, se debe diseñar la red. Mientras no existan reglas estrictas y rápidas para la definición de los parámetros de la red, se puede determinar que se alcanzará el éxito si se siguen los siguientes tres paradigmas:

1) Usar una capa oculta.2) Usar muy pocas neuronas ocultas.3) Entrenar hasta donde sea posible.

A continuación se examinan los puntos anteriores.

¿Cuántas capas ocultas?

Ya se ha visto que no hay ninguna razón hasta el momento para usar más de dos capas ocultas. También se ha visto que para la mayoría de los problemas prácticos, no hay una razón para usar más de una capa oculta. Aquellos problemas que requieren dos capas ocultas son muy raros en situaciones de la vida real. Pero la pregunta surge en cómo los requerimientos teóricos se relacionan con los requerimientos prácticos. ¿Hay problemas para los cuales el aprendizaje se beneficia teniendo más del mínimo número de capas ocultas teóricamente requerido?

Por experiencia se sabe que usar más de una capa oculta casi nunca es benéfico. El problema es que el entrenamiento es dramáticamente más lento cuando se usan más capas ocultas. Esto se debe a dos efectos:

1) La capa adicional a través de la cual los errores deben ser retropropagados hace que el gradiente sea más inestable. El éxito de cualquier algoritmo de optimización por gradiente depende del grado en el cual el gradiente permanece sin ser modificado mientras los parámetros (pesos en el caso de una red) cambian.

2) El número de mínimos falsos se incrementa usualmente de una manera dramática. Esto significa que hay una probabilidad mayor de que, después de muchas iteraciones que consumen tiempo, se quede estancado en un mínimo local, sin más remedio de abortar la operación o reiniciar.

89

Page 90: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Existe, por supuesto, la posibilidad de que un problema sea resuelto de una manera excelente usando muchas capas ocultas con pocas neuronas, mientras que utilizar pocas capas ocultas con muchas neuronas para ser práctico. El caso es que la experiencia ha mostrado que casi ninguna solución a un problema se haya visto beneficiada con tener más de dos capas ocultas.

Se ha puntualizado que la única vez en que una red de dos capas ocultas ha sido requerida en la práctica se da cuando la red tiene que “aprender” una función con discontinuidad. La función que se muestra en la figura 4.1. es un buen ejemplo.

Figura 4.1. La discontinuidad tratada con una red de dos capas ocultas.

Diferentes redes fueron entrenadas usando 301 puntos igualmente espaciados de esta función. Los resultados se muestran en la siguiente tabla:

Neuronas ocultas

Error de entrenamiento

Error de prueba

Error RMS

1 4.313 4.330 0.20812 2.714 2.739 0.16553 2.136 2.148 0.14654 0.471 0.485 0.06975 0.328 0.349 0.059010 0.319 0.447 0.06683,7 0.398 0.414 0.06435,5 0.161 0.200 0.04477,3 0.113 0.163 0.0403

La primera columna es el número de neuronas ocultas, con las cantidades en la primera y segunda capas mostradas para redes de cuatro capas. La columna de Error de entrenamiento muestra 100 veces el error cuadrático medio del conjunto de entrenamiento. Un conjunto de prueba fue construido usando 1,002 puntos, un valor escogido para evitar la replicación de los puntos del conjunto de entrenamiento, forzando a la red a interpolar. El error para este conjunto es mostrado en la siguiente columna. La última columna en la tabla muestra la raíz cuadrada del error cuadrático medio del conjunto de prueba. Como tal, puede ser considerado un tipo de error promedio.

90

Page 91: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Lo primero que se nota es que para las redes de tres capas se necesita un número mágico de neuronas ocultas. La ejecución “da un salto” al cambiar de tres a cuatro neuronas. No es inusual cuado se tratan datos de entrenamiento con características muy fuertes. Las redes que son más pequeñas simplemente no tienen la capacidad teórica que se necesita para separar el espacio del problema. Lo más importante es observar que parece ser un piso que no puede ser traspasado añadiendo más neuronas. De hecho, el error del grupo de prueba empieza a incrementar cuando se añaden más neuronas ocultas.

En resumen, se recomienda demasiado que usar una sola capa oculta sea la primera opción a considerar para un diseño práctico de redes feedforward. Si la utilización de muchas neuronas ocultas no resuelve el problema de manera satisfactoria, valdrá la pena probar utilizando una segunda capa oculta y reducir el número de neuronas ocultas si es posible.

¿Cuántas neuronas ocultas?

La elección de un apropiado número de neuronas en las capas ocultas es extremadamente importante. El usar muy pocas neuronas ocultas dejará a la red neuronal sin los recursos necesarios para resolver el problema. El usar muchas neuronas podrá incrementar el tiempo de entrenamiento, quizá demasiado como para que se vuelva imposible el entrenamiento de la red en un período razonable de tiempo. Además, un número excesivo de neuronas ocultas puede causar un problema de sobreajuste. La red tendrá una gran capacidad de procesamiento de información que aprenderá aspectos insignificantes del conjunto de entrenamiento, aspectos que son irrelevantes en una población general. Si el rendimiento de la red es evaluado con el conjunto de entrenamiento, será excelente. Sin embargo, cuando la red tenga que trabajar con una población en general, lo hará de una manera deficiente. Esto se debe a que considerará características triviales que son únicas en el conjunto de entrenamiento, así como las características generales relevantes, y se confundirá. Así, es forzoso que se use el mínimo número de neuronas ocultas con las que la red tenga un rendimiento adecuado.

Un paradigma somero para la elección del número de neuronas ocultas en muchos problemas es la regla de la pirámide geométrica. Establece que, para muchas redes prácticas, el número de neuronas sigue una forma piramidal, con el número decreciendo de la capa de entrada a la capa de salida. Obviamente esto no se cumple para redes autoasociativas, que tienen el mismo número de entradas y salidas. Pero muchas otras redes siguen este patrón. Esto se muestra en la figura 4.2.

91

Page 92: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 4.2. Una red de 3 capas típica.

El número de neuronas en cada capa sigue una progresión geométrica. Así, si se tiene una red de tres capas con n neuronas de entrada y m neuronas de salida, la capa oculta tendrá sqrt(mn) neuronas. Una regla similar se aplica a las redes de cuatro capas, como se puede ver en la figura 4.3. En este caso, el cálculo del número de neuronas ocultas se hace ligeramente más complejo:

r =

...................4.1NHID1 = m·r2

NHID2 = m·r

Las fórmulas anteriores son sólo aproximaciones al tamaño ideal de la capa oculta. Si hay muy pocas neuronas de entrada y de salida y el problema es complejo, dichas fórmulas subestimarán el número requerido. Por ejemplo, la aproximación de una función complicada de una variable involucra sólo una neurona de entrada y una de salida, pero requiere una docena o más de neuronas ocultas. Por el otro lado, si es un problema simple con muchas entradas y salidas, bastará con pocas neuronas ocultas.

Figura 4.3. Una red de 4 capas típica.

92

Page 93: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

No se deben tratar estás fórmulas como estrictas o rigurosas. Son muy utilizadas puesto que un gran número de problemas prácticos que se pueden resolver mediante el uso de redes neuronales tienen muchas neuronas de entrada y pocas neuronas de salida. En dichos casos, las reglas piramidales se utilizan con mucha frecuencia.

La mejor aproximación para encontrar el número óptimo de neuronas ocultas es el consumo de tiempo, pero se debe seguir siempre para las tareas importantes. Comenzar con un número de neuronas que sea definitivamente muy pequeño. Si el tener éxito con una buena suposición de “muy pequeño” es imposible, comiéncese con dos neuronas! Escoger un criterio apropiado para evaluar el rendimiento de la red. Entrenar y probar la red, haciendo un registro de su rendimiento. Después incrementar levemente el número de neuronas, y entrenar y probar de nuevo. Repítase hasta que el error no sea aceptablemente pequeño o hasta el punto en que ya no haya mejoría. Es fuerza bruta y demasiado lento, pero funciona. Si los conjuntos de validación son obtenidos fácilmente, se querrá posiblemente tratar de agregar neuronas más allá del punto de resultados aceptables, contando con el procedimiento de validación para prevenir el sobreajuste. De otra manera se debe estar contento con utilizar el número mínimo de neuronas ocultas necesario para conseguir un funcionamiento aceptable. El incremento del número más allá del mínimo causa frecuentemente un deterioro en la habilidad de la red para generalizar. Más adelante se da una descripción más detallada del procedimiento anterior. Se muestra un diagrama de flujo en la figura 4.5.

Hay un peligro que se debe evitar en el procedimiento anterior. Se debe preservar los pesos aprendidos anteriores para la siguiente prueba. En otras palabras, supóngase que se ha entrenado una red con cinco neuronas ocultas. Cuando se agrega una sexta neurona, manténgase los mismos pesos para las primeras cinco. Inicialícense los pesos para la nueva sexta neurona con números aleatorios pequeños, y continúese entrenando desde ahí. La racionalización es muy importante. Sólo úsese la nueva neurona para lo que aún no se ha aprendido. No se debe realizar esto a menos que se haya decidido inicializar totalmente de manera aleatoria.

¿Cuánto tiempo se debe entrenar?

Existe una concepción errónea muy común concerniente al entrenamiento iterativo. Se dice que las redes neuronales pueden ser sobreentrenadas. Quiere decir que hay una cantidad óptima de entrenamiento y que se puede entrenar más allá de dicho punto para mejorar el funcionamiento en el conjunto de entrenamiento, pero degradando dicho funcionamiento en la población general. Esta idea es particularmente arriesgada porque tiene un elemento de verdad en ella, para el caso en que la red y/o el conjunto de entrenamiento hayan sido mal diseñados, el mito puede ser realidad.

A continuación se examinará brevemente cómo el concepto de sobreentrenamiento tomó forma, porqué es usualmente (si no es que siempre) una noción inapropiada y cómo se puede detectar y evitar el problema común que se malentiende como sobreentrenamiento.

93

Page 94: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 4.4. Manifestación de sobreentrenamiento.

La figura 4.4. es una gráfica del error en una red neuronal para dos conjuntos diferentes de datos en función del número realizado de iteraciones de entrenamiento. Un conjunto de datos es el conjunto de entrenamiento. Como era de esperarse, el error para ese conjunto de datos decrece monótonamente, aproximando una asíntota. El otro conjunto de datos, llamado conjunto de validación, es tomado de la misma población que el conjunto de entrenamiento, pero no es usado para entrenar. Su error decrece al inicio del entrenamiento. Pero, para sorpresa, si se continúa con el entrenamiento más allá de cierto número de iteraciones, el error empieza a incrementar. Partiendo del hecho que el conjunto de validación es representativo de la población a la cual la red será finalmente aplicada, la solución obvia aparente es detener el entrenamiento hasta que el error de dicho conjunto desaparezca totalmente. Sin embargo, actuar así es un caso en que el remedio es peor que el mal.

Se vio en la sección anterior que usar muchas neuronas ocultas puede ocasionar un sobreajuste. En vez de aprender sólo los patrones generales necesarios para producir una decisión correcta, la red se enfoca excesivamente a idiosincrasias de muestras individuales. Cuando éstas demuestran no tener valor en su trabajo posterior, el funcionamiento decae. Ya que se necesita un tiempo considerable para aprender estas idiosincrasias, mientras los patrones importantes se aprenden al menos rápidamente, la calidad de la red alcanza frecuentemente un pico mientras el entrenamiento progresa, después se deteriora. Así nació el mito de entrenamiento excesivo. Sin embargo, hay dos razones para no limitar el entrenamiento con esperanzas a encontrar ese pico tan difícil de encontrar:

1) Tratando el síntoma, no la enfermedad. Reducir el número de neuronas ocultas al punto en que la red no aprenda idiosincrasias, o incrementar el tamaño y variedad del conjunto de entrenamiento, y la enfermedad es curada.

2) No olvidar que usualmente se empieza el entrenamiento con valores aleatorios de pesos. Si se detiene prematuramente el entrenamiento, posiblemente se habrá aprendido lo que se tenía que aprender. Probablemente después ya no. Y nunca se estará seguro de eso.

El segundo punto merece un examen más profundo. Cuando se usa un conjunto de entrenamiento para representar una población entera, se está confiando en que la red será capaz de interpolar entre muestras e de entrenamiento cuando haya muestras desconocidas

94

Número de iteraciones entrenamiento

Error

Datos de

Datos de

Page 95: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

que no son idénticas a las que se utilizaron al entrenar. Esto implica una suave transición entre casos de entrenamiento vecinos. Dado que se empieza típicamente el proceso de entrenamiento con pesos aleatorios pequeños, las derivativas de las salidas con respecto a las entradas serán pequeñas, dirigiéndose a la suavidad deseada. Sin embargo, sólo con usar polinomiales de grado mayor en aproximación de funciones permite mayor oscilación debida a derivativas mayores, el uso de más neuronas ocultas también permite mayor oscilación. Cuando todos los recursos de las capas ocultas no se utilizan sólo para asegurar un funcionamiento adecuado, algunas neuronas pueden aprender a especializar. Así como el entrenamiento continúa, sus pesos pueden llevarse a extremos en los cuales las neuronas sólo se dedican a encontrar idiosincrasias en el conjunto de entrenamiento. Las derivativas de las salidas con respecto a las entradas se hacen mayores, y la interpolación suave se pierde. La filosofía de detener el entrenamiento prematuramente es la prevención de que los pesos alcancen esos valores extremos.

Superficialmente, esto parece razonable. Es indiscutible el hecho de que, en cierto casos, continuar con el entrenamiento degrada el desempeño en el conjunto de validación y por lo tanto degradará probablemente el desempeño en la población entera. Pero el defecto en este razonamiento proviene del hecho de que los pesos iniciales fueron elegidos de manera aleatoria. No se sabe realmente si se está aproximando a los pesos óptimos desde una buena dirección. Puede ser que se tenga que pasar por una región en la cual el conjunto de validación tenga un desempeño pobre, pero que mejoraría si se continuase. Y ciertamente no se tienen bases para exigir que se deje de entrenar cuando el conjunto de validación ha encontrado un tipo de optimalidad práctica. Eso es estafar. Es en efecto usar lo que se supone es el juez final de calidad como un conjunto de entrenamiento sustituto. Se podría haberlo unido también al conjunto de entrenamiento. Cualquier grado al cual el conjunto de validación no es representativo de la población será reflejado en la red entrenada si se basa la decisión de paro en ese conjunto. El desempeño estimado será excesivamente optimista.

La moraleja es que se debe utilizar el menor número posible de neuronas ocultas. Empezar con el número mínimo y después añadir tantas como sea necesario para asegurar el desempeño adecuado en el conjunto de entrenamiento. Nunca se debe empezar con muchas neuronas ocultas y después ver cuántas se pueden desechar mientras se mantenga un buen desempeño.También se debe tener especial cuidado en escoger un conjunto de entrenamiento que represente lo mejor posible a la población. Si no, el fenómeno visto en la figura 4.4 aparecerá casi siempre, independientemente del número de neuronas ocultas.

En resumen, un entrenamiento correcto se hace de la siguiente manera. Para cada número experimental de neuronas ocultas, generar pesos iniciales aleatorios y entrenar hasta que la mejora sea despreciable. Después generar más pesos iniciales y entrenar de nuevo. Y otra vez. Y otra vez. Cuando un número moderado de estas repeticiones fracasa a mejorar el desempeño, se puede estar seguro que la red se entrenó lo mejor que se pudo para el conjunto de entrenamiento. Después se debe probarla con un conjunto de validación independiente. Si, después de todo el entrenamiento, su desempeño en el conjunto de validación es significativamente peor que con el conjunto de entrenamiento, o el conjunto de entrenamiento es pésimo (muy pequeño o no representativo de la población), o hay muchas neuronas ocultas. La red no fue sobreentrenada.

95

Page 96: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Siempre se debe recordar que el sobreajuste es el reflejo de un conjunto de entrenamiento no representativo de la población. No puede haber sobreajuste si el conjunto de entrenamiento está formado por toda la población. Naturalmente, esto es una imposibilidad práctica. Si embargo, los conjuntos de entrenamiento minuciosos hacen que el sobreajuste sea menos problemático.

También es necesario recordar que el sobrejuste se produce cuando el conjunto de entrenamiento es pequeño en relación con el número de neuronas ocultas. Se compensa la escasez de datos de entrenamiento limitando el número de neuronas ocultas. El tamaño del conjunto de entrenamiento y el número de capas ocultas están íntimamente ligados. Cuando no están balanceados en una dirección, la red no es capaz de aprender tan bien como debería. Cuando no están balanceados a la inversa, la red aprende mucho y generaliza poco. Debe haber un balance. Ahora se discute una manera de conseguir ese balance.

En el evento fortuito en que se puedan acumular fácilmente grandes cantidades de datos conocidos, hay un procedimiento de entrenamiento efectivo a seguir. Una ventaja de este procedimiento es que puede ser utilizado también para seleccionar el número óptimo de neuronas ocultas. Aún se escogen un conjunto de entrenamiento inicial y un conjunto de validación independiente que serán usados para calificar a la red final. Pero ahora se permite escoger un tercer conjunto, llamado conjunto de prueba de entrenamiento. Este conjunto se utiliza para revisar la habilidad de generalización de una red entrenada. Si el desempeño de la red con el conjunto de prueba de entrenamiento es significativamente peor que con el conjunto de entrenamiento, se puede concluir que se ha producido un sobreajuste, o que la información importante presente en el conjunto de prueba no estuvo presente en el conjunto de entrenamiento. En ambos casos, la solución es añadir el conjunto de prueba al conjunto de entrenamiento, y volver a entrenar. Esto se hace explícito en el diagrama de flujo mostrado en la figura 4.5.

96

Inicializar pocas neuronas

Entrenar

Error de entrenamiento aceptable?

Agregar neurona

Escoger conjunto de prueba de entrenamiento

Error del conjunto de prueba aceptable?

Unir conjunto de prueba al conjunto de entrenamiento

Hecho

No

No

Page 97: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 4.5. Entrenamiento cuando los casos conocidos son pocos

Nótese que el algoritmo anterior depende de que el conjunto de prueba de entrenamiento sea representativo de la población y sea independiente del conjunto de entrenamiento. Se tienen problemas si el error de toma de muestras provee un conjunto de prueba extremadamente similar al conjunto de entrenamiento. En consecuencia, se deben tomar dos precauciones. Primero, asegurarse de que los conjuntos son suficientemente grandes para disminuir la probabilidad de ocurrencia de problemas de este tipo. Segundo, no evitar la validación final. Aunque se puede evitar este paso, siempre se estará más seguro si se realiza antes de determinar a la red como definitiva.

Finalmente, obsérvese que el algoritmo anterior puede ser utilizado también para obtener el mejor desempeño posible de la red. Supóngase que se empieza con un considerable buen estándar de desempeño, y se sigue el algoritmo hasta que se alcanza el nivel de desempeño. No se valida la red. Se salva y después se pide mejor desempeño. Obviamente, inmediatamente se añadirá una neurona oculta. Se tendrá que añadir al conjunto de entrenamiento un nuevo conjunto de prueba. Se sigue el algoritmo hasta que se canse de lidiar con un conjunto de entrenamiento enorme o hasta que se haya alcanzado la nueva expectativa. Tanto tiempo en lo que la suposición fundamental de la calidad de los conjuntos de prueba se alcanza, las acciones son legales. El objetivo de desempeño es limitado sólo por la capacidad de acumular nuevos datos y por los recursos

97

Page 98: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

computacionales. El número de neuronas ocultas crecerá tanto como sea necesario, y el sobreajuste será prevenido mediante los conjuntos de prueba.

98

Page 99: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

CAPITULO V. Simuladores de Redes Neuronales Artificiales.

5.1 Matlab: Neural Network Toolbox.

5.1.1 Introducción.

Los técnicos profesionales por todo el mundo confían en MATLAB acelera su investigación, condensa el tiempo invertido en el análisis y desarrollo, reduce costos del proyecto, y produce soluciones eficaces. El ambiente de MATLAB fomenta la creatividad y le permite probar y comparar rápidamente alternativas múltiples. Consecuentemente, usted produce soluciones mejores

Los usuarios han encontrado que la combinación de la interfaz de MATLAB, el lenguaje, y las funciones incorporadas de las matemáticas y de los gráficos hace a MATLAB la plataforma preferida para programar, comparado a C, al FORTRAN, y a otros lenguajes.

MATLAB incluye las herramientas para:

  • Adquisición de datos  • Análisis y exploración de datos  • Procesamiento de imagen y visualización  • Algoritmo de prototipo y desarrollo  • El modelar y simulación  • Programación y desarrollo

5.1.2 Características Generales.

MATLAB maneja una gama de tareas computacionales que se usan en la ingeniería y la ciencia, de la adquisición de datos y del análisis, al desarrollo. El ambiente de MATLAB integra procesador matemático, la visualización, y un lenguaje técnico de gran alcance. Las interfaces incorporadas le permiten tener acceso rápidamente e importar datos a los instrumentos, de los archivos, y de las bases de datos y de los programas externos. Además, MATLAB le deja integrar las rutinas externas escritas en C, C++, el FORTRAN, y Java con sus usos de MATLAB.

99

Page 100: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Características Dominantes  • El procesador numérico para los resultados rápidos y exactos  • Gráficos para visualizar y para analizar sus datos  • Ambiente interactivo del lenguaje y de programación  • Herramientas para construir GUIs de encargo  • Interfaces a las lenguajes externos, tales como C, C++, FORTRAN, y Java  • Ayuda para los datos de importación de archivos y de dispositivos externos y

para usar el archivo bajo I/O (más el acceso a las bases de datos y al hardware adicional vía productos adicionados)

  • Conversión de los usos de MATLAB a C y a C++ con la habitación del recopilador

Este amplio sistema de capacidades hace de MATLAB una base de origen ideal para los líquidos de revelado de los problemas técnicos.

El ambiente de MATLAB se diseña para el cómputo interactivo o automatizado. Usando las funciones incorporadas de la matemáticas y de los gráficos y las herramientas fáciles de utilizar, usted puede analizar y visualizar sus datos en marcha. Las herramientas estructuradas del lenguaje y la programación le dejan los resultados de sus exploraciones interactivos y desarrollan sus propios algoritmos y usos.

¿Que es MATLAB?

El ® de MATLAB es una lengua de alto rendimiento para un proceso computacional técnico. Integra el cómputo, la visualización, y la programación en un ambiente fácil de utilizar donde los problemas y las soluciones se expresan en la notación matemática familiar. Las aplicaciones típicas incluyen:

Matemáticas y cómputo Desarrollo de algoritmo El modelar, simulación, y el prototipo Análisis de datos, exploración, y visualización Gráficos científicos y de ingeniería Desarrollo del uso, incluyendo el edificio gráfico del interfaz utilizado

MATLAB es un sistema interactivo con un elemento de datos básico, es un arsenal que no requiere el dimensioning. Esto permite que usted solucione muchos problemas técnicos, especialmente ésos con formulaciones de matriz y de vector, en una fracción del tiempo que tomaría para escribir un programa en una lengua no interactivo escalar tal como C o FORTRAN.

El nombre MATLAB está dado por el laboratorio de la matriz . MATLAB fue escrito originalmente para proporcionar el acceso fácil al software de la matriz desarrollado por los proyectos de LINPACK y de EISPACK. Hoy, el software de las aplicaciones de MATLAB se convirtió por los proyectos de LAPACK y de ARPACK, que juntos representan el estado plus ultra en el software para el cómputo de la matriz.

100

Page 101: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

MATLAB se ha desarrollado durante años con la entrada de muchos usuarios. En ambientes de la universidad, es la herramienta educacional estándar para los cursos introductorios y avanzados en matemáticas, la ingeniería, y la ciencia. En industria, MATLAB es la herramienta de la opción para la investigación, el desarrollo, y el análisis de alta-productividad.

MATLAB ofrece una familia de las soluciones de aplicación especifica (application-specific) llamadas las cajas de herramientas . Muy importante para la mayoría de los usuarios de MATLAB, las cajas de herramientas permite que usted aprenda y que aplique tecnología especializada. Las cajas de herramientas son colecciones comprensivas de las funciones de MATLAB (M-archivos) que extienden el ambiente de MATLAB para solucionar clases particulares de problemas. Las áreas en las cuales las cajas de herramientas están disponibles incluyen el proceso de señal, sistemas de control, redes neuronales, lógica difusa, la simulación, y muchos otras.

El Sistema de MATLAB

El sistema de MATLAB consiste en cinco porciones principales:

Ambiente Del Desarrollo. Éste es el sistema de las herramientas y de las instalaciones que le ayudan a utilizar funciones y archivos de MATLAB. Muchas de estas herramientas son interfaces gráficas. Incluye el tablero del escritorio de MATLAB y la ventana del comando, una historia del comando, y los browsers para la visión, el espacio de trabajo, los archivos, y el camino de búsqueda en un fichero.

La Biblioteca Matemática De la Función de MATLAB. Ésta es una colección extensa de algoritmos de cómputo que se extienden de funciones elementales como la suma, seno, coseno, y la aritmética compleja, a funciones más sofisticadas como lo contrario de la matriz, valores propios de la matriz, las funciones de Bessel, y transformada rápida de Fourier.

El Lenguaje de MATLAB. Este es un lenguaje de alto nivel de matrix/array con declaraciones de control del flujo, funciones, las estructuras de datos, la entrada-salida, y las características de programación orientadas al objeto. Permite la creación rápida de pequeños programas desechables, y también crear programas completos de uso grande y complejo.

Manejador Graphics®. Éste es el sistema de los gráficos de MATLAB. Incluye los comandos de alto nivel para la visualización de los datos, el proceso de imagen, la animación, y los gráficos de dos dimensiones y tridimensionales de la presentación. También incluye los comandos bajos así como los cuales permita que usted modifique completamente el aspecto para requisitos particulares de gráficos para construir interfaces gráficas completas en sus usos de MATLAB.

El Application Program Interface de MATLAB (Api). Ésta es una biblioteca que permite que usted escriba los programas de C y del FORTRAN que trabajan recíprocamente con MATLAB. Incluye las instalaciones para las rutinas que llaman de MATLAB (el

101

Page 102: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

ligamiento dinámico), llamando a MATLAB como motor de cómputo, y para los archivos de lectura y de escritura.

Descripción de la caja de herramientas de redes neuronales (Neural Network Toolbox)

La caja de herramientas de redes neuronales extiende el ambiente de aplicación de MATLAB para proporcionar las herramientas para el diseño, la puesta en práctica, la visualización, y la simulación de redes neuronales. Las redes neuronales son herramientas únicamente de gran alcance en usos donde estaría difícil o imposible el análisis formal, por ejemplo el reconocimiento de patrones y la identificación y el control no lineales del sistema. La caja de herramientas de redes neuronales proporciona la ayuda comprensiva para muchos paradigmas probados de la red, así como una interfaz gráfica que permita que usted diseñe y que maneje sus redes. El diseño modular, abierto, y extensible de la caja de herramientas simplifica la creación de funciones y de redes modificadas para requisitos particulares.

Características Dominantes • Interfaz gráfica (GUI) para crear, entrenar, y simular a sus redes neuronales• La ayuda para usuario lo más comúnmente posible arquitecturas de red supervisada y

no supervisada.• Un sistema comprensivo de entrenamiento y de funciones de aprendizaje• Una habitación de los bloques del Simulink, así como la documentación y

demostraciones de los usos del sistema de control• La generación automática de Simulink modelado de los objetos de la red neuronal• Representación modular de la red, permitiendo un número ilimitado de la entrada

que fija capas, e interconexiones de la red• Funciones pre y de proceso del bias para mejorar el entrenamiento de la red y

determinar el funcionamiento de la red• Rutinas para mejorar la generalización• Funciones de la visualización para el funcionamiento de la red neuronal

5.1.3. Construcción de redes neuronales.

Creación de una red neuronal (newff)

El primer paso del entrenamiento de una red neuronal es crear la red. La función newff crea una red con conexión hacia adelante. Esta función requiere de cuatro parámetros y regresa un objeto del tipo red:

5. La primera entrada es una matriz de (p-1)×2 XR de mínimos y máximos valores por cada uno de los elementos (p-1) de el vector de entrada.

6. La segunda entrada es un arreglo con el tamaño de cada capa. 7. La tercera entrada es un arreglo con los nombres de las funciones de transferencia

que se van a usar en cada capa.

102

Page 103: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

8. La última entrada contiene el nombre del algoritmo de entrenamiento que se va a utilizar.

Por ejemplo el siguiente comando crea una red de dos capas. Tendrá un vector de entrada con dos elementos (p-1 = 2), tres neuronas en la primera capa (L-1 = 3) y una neurona en la segunda capa (salida) (m = 1).

La función de transferencia en la primera capa será la tansig, y la función de transferencia en la capa de salida será lineal. Los valores para el primer elemento del vector de entrada estarán en el rango de -1 y 2, los valores del segundo elemento del vector de entrada estará en el rango de 0 y 5, esto es, la matriz XR es de la forma siguiente:

XR = [-1 2; 0 5];

Y la función de entrenamiento será traingd (la cual describiremos más adelante).

net=newff(XR,[L-1,m],'tansig','purelin','traingd');

Este comando crea un objeto del tipo red y también inicializa los pesos y el bias de la red, usando por default el comando (initnw). Por lo tanto la red esta lista para ser entrenada.

Inicialización de pesos (init, initnw, rands)

Si necesitas re- inicializar, o cambiar la inicialización por default de los pesos, utiliza el comando init:

net=init(net);

Esta función toma como entrada un objeto de tipo red y regresa un objeto de tipo red con los pesos y bias inicializados. Esta función es invocada por el comando newff y usa el algoritmo de Nguyen-Widrow.

Si, por ejemplo, queremos re-inicializar los pesos y los bias en la primera capa de forma aleatoria, usando la función rands, debemos usar los siguientes comandos:

net.layers{1}.initFcn = 'initwb'; net.inputWeights{1,1}.initFcn = 'rands'; net.biases{1,1}.initFcn = 'rands'; net.biases{2,1}.initFcn = 'rands'; net = init(net);

5.1.4. Simulación de Redes Neuronales.

Simulación (sim)

103

Page 104: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

La función sim simula una red neuronal. La función sim toma la entrada de la red X, y el objeto red net, y regresa la salida de la red Y.

Aquí se muestra como puede ser usado el comando simuff, para simular la red que creamos anteriormente para un vector de entrada simple: x = [1;2]; a = sim(net,x) a = -0.1011

Abajo, el comando sim es llamado para calcular las salidas para un vector de entrada de tres elementos. X = [1 3 2;2 4 1]; Y = sim(net,X) Y = -0.1011 -0.2308 0.4955

Entrenamiento incrementado (adapt)

La función adapt es usada para entrenar redes en el modo de crecimiento (pattern). Esta función toma el objeto red, las entradas y los valores deseados para el entrenamiento, y regresa el objeto red entrenado con los valores de salida y errores de la red para los pesos y bias finales.

Entrenamiento Batch (train)

La alternativa para un entrenamiento en crecimiento es el entrenamiento batch, el cual es invocado usando la función train. En el modo batch los pesos y bias de la red son actualizados solo después de haber concluido el entrenamiento en la red.

Algunas de las funciones disponibles para el entrenamiento de tipo batch se listan en la tabla siguiente junto con un tiempo relativo de convergencia.

Function Technique Time Epochs Mflops

traingdx Variable Learning Rate 57.71 980 2.50

trainrp Rprop 12.95 185 0.56

trainscg Scaled Conj. Grad. 16.06 106 0.70

traincgf Fletcher-Powell CG 16.40 81 0.99

traincgp Polak-Ribiére CG 19.16 89 0.75

traincgb Powell-Beale CG 15.03 74 0.59

trainoss One-Step-Secant 18.46 101 0.75

trainbfg BFGS quasi-Newton 10.86 44 1.02

trainlm Levenberg-Marquardt 1.87 6 0.46

104

Page 105: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Lista de funcionesVersión 4,0,1

Funciones del análisiserrsurf - superficie del error de la neurona de entradamaxlinlr – máxima tarifa del aprendizaje para una capa lineal

Funciones de inicialización de la capainitnw - función de la inicialización de la capa de Nguyen-Widrowinitwb - función de inicialización de los pesos y del bias.

Funciones de aprendizajelearncon - función de aprendizaje diagonal de la conciencialearngd - función de aprendizaje del gradiente descendentelearngdm - función de aprendizaje del gradiente con momentumlearnh - función del aprendizaje de Hebblearnhd - Hebb con la función de aprendizaje descendentelearnis - función de aprendizaje del peso de Instarlearnk - función de aprendizaje Kohonenlearnlv1 - función de aprendizaje LVQ1learnlv2 - función de aprendizaje LVQ2learnos - función de aprendizaje de Outstarlearnp - función de aprendizaje del Perceptronlearnpn - función normalizada de aprendizaje del perceptronlearnsom - función de aprendizaje del mapa de auto-organizaciónlearnwh - regla de aprendizaje de Widrow-Hoff

Funciones de la búsqueda de la líneasrchbac - búsqueda de la vuelta hacia atrássrchbre - interpolación de la combinación de la sección de oro y cuadrática de Brentsrchcha - interpolación cúbica de Charalamboussrchgol - búsqueda de la sección orosrchhyb - búsqueda del híbrido bisection/cubic

Creación redesred - crea una red neuronalnewc - crea una capa competitivanewcf - crea una red conexión hacia adelante backpropagationnewelm - crea una red de Elman backpropagationnewff - crea una red feed-forward backpropagationnewfftd - crea un red feed-forward de entrada retrasada backpropagationnewgrnn - diseña una red neuronal generalizada de regresiónnewhop - crea una red recurrente de Hopfield

105

Page 106: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

newlin - crea una capa linealnewlind - diseña una capa linealnewlvq - crea una red de cuantización del vector de aprendizajenewp - crea un perceptronnewpnn - diseña una red probabilisticanewrb - diseña una red de base radialnewrbe - diseña una red de base radial exactanewsom - crea un mapa de auto-organización

Funciones de inicialización de la redinitlay - función de inicialización de la red capa por capa

Funciones del errormae - función absoluta del errormse – función cuadrática media del errormsereg – función de regularización de ajuste del error mediosse – función que ajusta la suma del error

Funciones para graficarhintonw - gráfico de Hinton de la matriz del pesohintonwb - gráfico de Hinton de la matriz del peso y del vector biasplotbr – grafica el funcionamiento de la red del diagrama para el entrenamiento bayesian de la regularizaciónplotes - traza una superficie del error de una sola neurona de entradaplotpc - traza la línea en diagrama del vector de clasificación del perceptronplotpv – diagrama de los vectores input/target del perceptronplotep - traza una posición del peso-bias respecto a una superficie de errorplotperf – diagrama del funcionamiento de la redplotsom – diagrama del mapa de auto-organizaciónplotv – diagrama de los vectores de origen como líneasplotvec – diagrama de los vectores con diversos colores

Funciones de entrenamientotrainb - entrenamiento con regla de aprendizaje de la hornada del peso y del biastrainbfg - backpropagation quasi-Newton de BFGStrainbr - regularización bayesianatrainc - funciones ascendentes de entrenamiento cíclicotraincgb - backpropagation conyugal del gradiente de Powell-Bealetraincgf - backpropagation conyugal del gradiente de Fletcher-Powelltraincgp - backpropagation conyugal del gradiente de Polak-Ribieretraingd - backpropagation de la pendiente del gradientetraingdm - pendiente del gradiente con el backpropagation del ímpetutraingda - pendiente del gradiente con el backpropagation adaptativo del lrtraingdx - pendiente w/momentum y backpropagation adaptativo del gradiente del lrtrainlm - backpropagation de Levenberg-Marquardttrainoss - backpropagation secante de un solo pasotrainr - funciones ascendentes del entrenamiento w/learning al azar

106

Page 107: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

trainrp - backpropagation resistente (Rprop)trains - funciones incrementales del entrenamiento w/learning secuencialtrainscg - backpropagation conyugal del gradiente descendente

Funciones de transferenciacompet - función de transferencia competitivahardlim - función de transferencia escalon hardlims - función de transferencia de limite simétricalogsig - función de transferencia sigmoidalposlin - función de transferencia lineal positiva purelin - función de transferencia lineal radbas - función de transferencia de base radial satlin - saturación de la función de transferencia lineal satlins - función de transferencia lineal de saturación simétricasoftmax - función de transferencia máxima suave tansig - función de transferencia sigmoidea de la tangente hiperbólicatribas - función de transferencia de base triangular

Simulación redessim - simula una red neuronalinit - inicializa una red neuronaladap - permite que una red neuronal se adaptetrain - entrena a una red neuronaldisp - exhibe las características de una red neuronalexhibit - exhibe el nombre y las características de una variable de la red neuronal

Funciones del pesodist - función euclidiana de la distancia del pesodotprod - función del producto de punto del pesomandist - función de la distancia de Maniatan del pesonegdist - función del producto de punto del peso normprod - función normalizada del producto de punto del peso

Funciones de inicialización de los pesos y bias initcon - función de inicialización diagonal de la concienciainitzero - función de inicialización a cero de weight/bias randnc - función de inicialización normalizada de la columna del pesorandnr - función de inicialización normalizada de la fila del pesorands - función de inicialización simétrica al azar de weight/bias

107

Page 108: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

5.2. NeuroSolutions

5.2.1. Introducción

NeuroSolutions está basado en una aproximación al diseño de sistemas adaptativos orientada a objetos. Las redes son descompuestas en un conjunto fundamental de componentes que son individualmente simples pero susceptibles a ser combinados para crear sistemas poderosos capaces de resolver problemas muy complejos.

La interfaz de usuario de NeuroSolutions está inspirada en el proceso de diseño de un circuito electrónico. Diversos componentes son colocados en una tablilla de conexión y después interconectados para formar un circuito. Después el circuito se prueba introduciendo señales y monitoreando respuestas. Esta interfaz provee más flexibilidad que un simulador de tipo “caja negra”. NeuroSolutions incluye una colección comprehensiva de muestras-ejemplo que permiten al usuario/diseñador monitorear cualquier aspecto de la red neuronal durante los procesos de entrenamiento y prueba. Los atributos especiales de NeuroSolutions lo hacen ideal para un entrenamiento interactivo. Debido a la simplicidad y a la potencia de NeuroSolutions, es ideal para el desarrollo de redes neuronales.

5.2.2. Características Generales.

La interfaz de usuario de NeuroSolutions organiza sus componentes en paletas. Cada paleta de componentes contiene una familia de componentes que tienen una función similar. Por ejemplo, todos los displays de salida o monitores están contenidos en una sola paleta. Se pueden encontrar todas las paletas en el menú de paletas.

108

Page 109: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 1.1 Menú de paletas

Si se abre una paleta, se marcará inmediatamente con una palomita, como se muestra en la figura 1.1. Una paleta abierta se ve y actúa como una barra de herramientas con un conjunto de iconos. Las paletas pueden ser desplazadas y colocadas como cualquier barra de herramientas estándar de Windows. La figura 1.2 muestra como ejemplo la paleta de la familia Axón.

1.2 Paleta de la familia Axón

Se pueden seleccionar los componentes de la paleta y colocarlos en la tablilla de conexión.

Colocación de componentes Si el puntero del ratón se coloca sobre la paleta y se esperan unos segundos, aparecerá una pequeña ventana con el nombre del componente. Esto es muy útil para determinar el componente que se está seleccionando de la paleta. Si se hace clic en un componente, el puntero se convierte en una “estampa”. Si se hace de nuevo clic sobre cualquier punto de la tablilla de conexión, la estampa (componente) será pegada en ese punto. A este proceso se le denomina “estampado de componentes”.

Ayuda en línea (on-line)

Una descripción completa de cada componente está contenida en la ayuda en línea. El medio más fácil de acceder a la ayuda de un componente dado es haciendo clic con el cursor en el componente. El cursor de ayuda está colocado en la barra de herramientas. Sólo basta con hacer clic en él y después trasladar el puntero del ratón hacia el componente deseado, haciendo clic sobre el icono de éste.

Conexión de componentes

Nótese que en los componentes de la familia de axones (así como en algunas otras familias) hay un punto de contacto doble-diamante a la izquierda (conector hembra) y un punto de contacto de simple-diamante a la derecha (conector macho). El flujo de datos en NeuroSolutions está diseñado para un movimiento de izquierda a derecha en la tablilla de conexión. Para conectar dos componentes, simplemente es necesario “arrastrar” el conector macho a la derecha del componente hacia el conector hembra (lado izquierdo9 del otro componente. La conexión está visualmente indicada por tres líneas dibujadas entre los componentes. También se podrá notar que mientras se arrastra el conector, la flecha que caracteriza el puntero del ratón cambiará a un cursor de movimiento, queriendo decir que se puede colocar el conector macho en cualquier posición no ocupada de la tablilla. Si es colocado en

109

Page 110: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

una posición no válida, el puntero se convierte en un círculo cruzado, queriendo decir que en ese lugar no se puede colocar el conector. Una manera alternativa de conectar componentes es seleccionando el primer componente (haciendo clic con el botón izquierdo del ratón), y después haciendo clic en el segundo componente con el botón derecho del ratón, para después seleccionar la opción “Conectar a” (“Connect to”) del menú. Se establecerán automáticamente las tres líneas de conexión.

5.2.3. Construcción de Redes Neuronales.

Axones y Sinapsis

Se puede aplicar fácilmente la aproximación tipo construyendo-bloques para construir sistemas neuronales o adaptativos. Estas redes básicamente están constituidas por elementos de procesamiento (PEs) atados juntos con conexiones con pesos. La familia Axón (la mayoría de la terminología utilizada en NeuroSolutions está basada en la neurobiología) implementa los PEs en la red, y la familia Sinapsis implementa las conexiones con pesos.

Figura 1.3 Paleta de la familia Axón y algunos de sus componentes

La familia Axón tiene dos funciones. Los componentes suman todas sus entradas y después aplican una función de activación a dicha suma. Los diferentes componentes en la familia Axón aplican una función diferente a la suma de entradas. Cada una de las diferentes imágenes en los iconos de dicha familia representa la función que será aplicada. El axón de tipo lineal (llamado simplemente Axón) simplemente pasa la suma de las entradas directamente a la salida. El axón Bias suma la entrada y agrega un valor de umbral. Un sólo componente de la familia Axón puede representar cualquier número de PEs. Esto se muestra en la figura 1.3.

110

Page 111: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

Figura 1.4. Paleta de la familia Sinapsis y algunos de sus componentes

La familia Sinapsis, mostrada en la figura 1.4., se usa para hacer conexiones entre axones. En general, se le asigna un peso a cada conexión en una sinapsis que hace un escalamiento de los datos que pasan a través de ella. La manera en que se ajustan esos pesos será la manera en que se entrena una red o sistema adaptativo para ejecutar la tarea deseada. El miembro más utilizado de esta familia es la Sinapsis Completa y conecta todos y cada uno de los PE’s en el axón del otro componente. Además, la Sinapsis Completa contiene nm conexiones (y pesos) para n PEs de entrada y m Pes de salida. La Sinapsis Arbitraria permite seleccionar cuál de las nm conexiones posibles unirá un axón a otro.

5.2.4. Simulación de Redes Neuronales.

Entrenamiento de una red

Esta sección trata los componentes extra necesarios para entrenar un sistema adaptativo utilizando gradiente descendente. Lo importante de esta sección no es entender todos los conceptos, sino la mecánica. El aprendizaje adaptativo se basa en utilizar el error entre la salida del sistema y la salida del sistema deseada para entrenar el sistema. El algoritmo de aprendizaje adapta los pesos del sistema basado en el error hasta que el sistema no produzca la salida deseada. La familia de Criterios de Error, que se muestra en la figura 1.5. en Neurosolutions calcula diferentes medidas de error que pueden ser utilizadas en el entrenamiento de una red.

Figura 1.5 Paleta de la familia Criterios de Error

Aprendizaje y retropropagación

Se puede utilizar el error para modificar los pesos del sistema, permitiendo a éste aprender. La misión del sistema es igualar la salida del sistema a la salida deseada, por lo que se necesita minimizar el error cuadrático. El método para hacerlo es conocido como

111

Page 112: INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES

REDES NEURONALES ARTIFÍCIALES I

retropropagación del error. Esencialmente es un proceso de tres pasos. Primero, los datos de la entrada son propagados hacia adelante a través de la red para calcular la salida del sistema.

El paso siguiente es calcular el error y propagarlo hacia atrás. Esto se utiliza finalmente para modificar los pesos. NeuroSolutions implementa la retropropagación del error en un “plano” secundario que se encuentra en la parte superior de axones y sinapsis. Este es el plano de retropropagación, y se muestra en la figura 1.6.

Figura 1.6.Red neuronal con plano de retropropagación

NeuroSolutions muestra el plano de retropropagación utilizando versiones más pequeñas de axones y sinapsis apilados sobre ellos. El plano de retropropagación pasa los errores hacia atrás desde el componente de Criterios de error hasta el principio de la red (y manipula los errores durante el camino). NeuroSolutions agrega un tercer plano que utiliza el error en ese momento en el plano de retropropagación para cambiar los pesos de la red – es aquí donde realmente se lleva a cabo el aprendizaje. Este plano se conoce como plano de gradiente descendente y se encuentra por arriba del plano de retropropagación. Un componente típico de gradiente descendiente es el componente Momentum. Nótese en la figura 1.7. que sólo los componentes relacionados con los pesos utilizan los componentes de gradiente descendente.

Figura 1.7. Red neuronal con los tres planos: de propagacaión hacia delante, retropropagación y gradiente descendiente

112