Sunteți pe pagina 1din 118

REDES NEURONALES ARTIFCIALES I

CAPITULO I
INTRODUCCION A LAS REDES NEURONALES ARTIFICIALES
INTRODUCION:
El cerebro es un procesador de informacin con unas caractersticas muy notables: es capaz
de procesar a gran velocidad grandes cantidades de informacin procedentes de los sentidos,
combinarla o compararla con la informacin 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 lneas en una declaracin poltica; pero lo ms
impresionante de todo es su capacidad de aprender a representar la informacin necesaria
para desarrollar tales habilidades sin instrucciones explcitas para ello.
Aunque todava se ignora mucho sobre la forma en que el cerebro aprende a procesar la
informacin, se han desarrollado modelos que tratan de mimetizar tales habilidades;
denominados redes neuronales artificiales modelos de computacin conexionista (otras
denominaciones son computacin neuronal y procesamiento distribuido paralelo o P.D.P.).
La elaboracin de estos modelos supone en primer lugar la deduccin de los rasgos o
caractersticas esenciales de las neuronas y sus conexiones, y en segundo lugar, la
implementacin del modelo en una computadora de forma que se pueda simular. Es obvio
decir que estos modelos son idealizaciones burdas de las autnticas redes neuronales, en
muchos casos de dudosa plausibilidad neurofisiolgica, 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 mquinas que
puedan imitar la capacidad de aprendizaje del hombre es actualmente un desafo en el que
pone sus miras buena parte de la comunidad cientfica. Con esta amplia Introduccin a las
redes neuronales, se pretende dar a conocer los elementos bsicos de lo que comnmente se
denomina Inteligencia Artificial, para as comprender de qu modo pueden llegar a pensar
y aprender las mquinas.
El hombre se ha caracterizado siempre por una bsqueda constante de nuevas vas 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 construccin de
mquinas calculadoras que ayuden a resolver de forma automtica y rpida 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 mquina capaz de resolver problemas matemticos.
Posteriormente otros tantos intentaron construir mquinas similares, pero no fue hasta la
Segunda Guerra Mundial, cuando ya se dispona de instrumentos electrnicos, que se
empezaron a recoger los primeros frutos. En 1946 se construy la primera computadora
1
REDES NEURONALES ARTIFCIALES I
electrnica, ENIAC. Desde entonces los desarrollos en este campo han tenido un auge
espectacular.
Estas mquinas permiten implementar fcilmente algoritmos para resolver multitud de
problemas que antes resultaban engorrosos de resolver. Sin embargo, se observa una
limitacin importante: qu ocurre cuando el problema que se quiere resolver no admite un
tratamiento algortmico, como es el caso, por ejemplo, de la clasificacin de objetos por
rasgos comunes?.
Este ejemplo demuestra que la construccin de nuevas mquinas ms verstiles requiere un
enfoque del problema desde otro punto de vista.
Los desarrollos actuales de los cientficos se dirigen al estudio de las capacidades humanas
como una fuente de nuevas ideas para el diseo de las nuevas mquinas. As, la inteligencia
artificial es un intento por descubrir y describir aspectos de la inteligencia humana que
pueden ser simulados mediante mquinas. Esta disciplina se ha desarrollado fuertemente en
los ltimos aos teniendo aplicacin en algunos campos como visin artificial, demostracin
de teoremas, procesamiento de informacin expresada mediante lenguajes humanos... etc.
Las redes neuronales son otra forma de emular otra de las caractersticas propias de los
humanos: la capacidad de memorizar y asociar hechos. Si examinamos con atencin aquellos
problemas que no pueden expresarse a travs de un algoritmo nos daremos cuenta de que
todos ellos tienen una caracterstica comn: 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 construccin de sistemas que sean capaces de
reproducir esta caracterstica humana. En definitiva, las redes neuronales no son ms que un
modelo artificial y simplificado del cerebro humano, que es el ejemplo ms perfecto del que
disponemos de sistema que es capaz de adquirir conocimiento a travs de la experiencia. Una
red neuronal es un nuevo sistema para el tratamiento de la informacin cuya unidad bsica
de procesamiento est inspirada en la clula 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 clsico modelo de
neurona en el que se basan las redes neuronales actuales. Seis aos despus, 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 caracterstica de la inteligencia y se present la primera simulacin de una red neuronal,
aunque todava no se saban interpretar los datos resultantes.
2
REDES NEURONALES ARTIFCIALES I
En 1957, Frank Rosenblatt present el Perceptron, una red neuronal con aprendizaje
supervisado cuya regla de aprendizaje era una modificacin 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 aportacin del Perceptron es que la adaptacin 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
operacin, 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 decepcin cuando en 1969 Minsky y Papert demostraron
las grandes limitaciones de esta red.
En 1959, Widrow publica una teora sobre la adaptacin neuronal y unos modelos inspirados
en esa teora, 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 lneas telefnicas.
En los aos 60 se propusieron otros dos modelos, tambin supervisados, basados en el
Perceptron de Rosenblatt denominados Adaline y Madaline. En estos, la adaptacin 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 funcin 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 variacin de los pesos se produzca en la
direccin 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 investigacin, el
desarrollo del Perceptrn, un identificador de patrones pticos binarios, y salida binaria. Las
capacidades del Perceptrn se extendieron al desarrollar la regla de aprendizaje delta, que
permita emplear seales continuas de entrada y salida.
1.2 DEFINICINES DE REDES NEURONALES
Una red neuronal es un sistema compuesto de muchos elementos procesadores simples
operando en paralelo, cuya funcin 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 emprico y hacerlo disponible
para el uso. Recuerda al cerebro en dos aspectos:
1.- Conocimiento se adquiere por la red a travs de un proceso de aprendizaje.
3
REDES NEURONALES ARTIFCIALES I
2.- Las conexiones interneurnicas 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
fsicos que puedan adquirir, almacenar y usar conocimiento emprico."
Las redes neuronales son una forma de un sistema computarizado multi-proceso con:
Elementos de procesamiento sencillos.
Alto grado de interconexin.
Mensajes simples escalares.
Interaccin adaptable entre elementos.
El concepto de Red Neuronal Artificial est inspirado en las Redes Neuronales Biolgicas.
Una Red Neuronal Biolgica es un dispositivo no lineal altamente paralelo, caracterizado por
su robustez y su tolerancia a fallos. Sus principales caractersticas son las siguientes:
Aprendizaje mediante adaptacin de sus pesos sinpticos a los cambios en el
entorno.
Manejo de imprecisin, ruido e informacin probabilstica.
Generalizacin a partir de ejemplos.
Las Redes Neuronales Artificiales intentan imitar algunas, o todas, de estas caractersticas.
Este paradigma de programacin difiere de las secuencias de instrucciones en que la
informacin se encuentra almacenada en las conexiones sinpticas. Cada neurona es un
procesador elemental con operaciones muy primitivas como la suma ponderada de sus pesos
de entrada y la amplificacin o umbralizacin de esta suma.
Una Red Neuronal viene caracterizada por su topologa, por la intensidad de la conexin
entre sus pares de neuronas (pesos), por las propiedades de los nodos y por las reglas de
actualizacin de pesos. Las reglas de actualizacin, tambin llamadas de aprendizaje,
controlan los pesos y/o estados de los elementos de procesados (neuronas).
Los principales aspectos de este modelo de computacin distribuida son los siguientes:
Un conjunto de unidades de procesamiento.
Un estado de activacin 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 propagacin que determina la entrada de la unidad a partir de sus
entradas externas.
4
REDES NEURONALES ARTIFCIALES I
Una funcin de activacin que determina el estado de activacin en funcin de la
entrada de la unidad (en algunos casos la funcin de activacin tiene en cuenta la
activacin actual de la unidad).
Una entrada externa (o offset) para cada unidad.
Un mtodo para modificar los valores de los pesos (regla de aprendizaje).
Un entorno de trabajo en el que sistema opere, compuesto por seales de entrada y, si
es necesario, seales de error.
Normalmente, la dinmica de actuacin es definir una funcin objetivo que representa el
estado completo de la red y localizar el conjunto de mnimos de esa funcin que se
corresponden con los diferentes estados estables de la red.
1.3 CARACTERISTICAS DE LAS REDES NEURONALES.
Desde hace algunos aos, 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 estn compuestas de un gran nmero elementos de procesamiento altamente
interconectados (Neuronas) trabajando al mismo tiempo para la solucin de problemas
especficos. Las RNA, tal como las personas, aprenden de la experiencia.
Las RNA estn compuestas de muchos elementos sencillos que operan en paralelo, el diseo
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 realizacin de funciones complejas en variados campos
de aplicacin. Hoy en da pueden ser entrenadas para la solucin de problemas que son
difciles para sistemas computacionales comunes o para el ser humano.
Las caractersticas de operacin 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 interconexin con otras
neuronas. Si las neuronas utilizan pesos fijos, entonces su tarea deber estar previamente
definida. Los pesos sern determinados a partir de una descripcin completa del problema.
Por otra parte, los pesos adaptables son esenciales si no se conoce previamente cual deber
de ser su valor correcto.
5
REDES NEURONALES ARTIFCIALES 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 estmulos, y la red ajusta sus
interconexiones basndose nicamente es sus estmulos y la salida de la propia red. Las leyes
de aprendizaje determinan como la red ajustar sus pesos utilizando una funcin de error o
algn otro criterio. La ley de aprendizaje adecuada se determina en base a la naturaleza del
problema que se intenta resolver.
Dos fases de operacin
Las RNA adaptables tienen dos fases en su operacin.
1. Entrenamiento de la red. El usuario proporciona a la red un nmero "adecuado" de
estmulos de entrada, y de salida, la red entonces ajusta su pesos de interconexin o
sinpsis hasta que la salida de la red esta "lo suficientemente cerca" de la salida
correcta.
2. Recuperacin de lo aprendido. A la red se le presenta un conjunto de estmulos de
entrada y esta simplemente calcula su salida. Cuando la red emplea entrenamiento no
supervisado, algunas veces ser necesario que reajuste su sinpsis durante la fase de
recuperacin.
No son algortmicas
La gran diferencia del empleo de las redes neuronales en relacin con otras aplicaciones de la
computacin radica en que no son algortmicas, esto es no se programan hacindoles 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 funcin de activacin 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 ms 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, topografa de terrenos,
controlar brazos de robots, evaluar datos personales, modelar fenmenos cognoscitivos, y,
predecir tendencias financieras.
6
REDES NEURONALES ARTIFCIALES I
Requieren de algn tipo de patrn
La clase de problemas que mejor se resuelven con las redes neuronales son los mismos que el
ser humano resuelve mejor: Asociacin, evaluacin, y reconocimiento de patrones. Las redes
neuronales son perfectas para problemas que son muy difciles de calcular pero que no
requieren de respuestas perfectas, slo respuestas rpidas y buenas. Tal y como acontece con
el escenario burstil 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
modificacin?
Por otra parte, las redes neuronales son muy malas para clculos precisos, procesamiento
serie, y no son capaces de reconocer nada que no tenga inherentemente algn tipo de patrn.
Es por esto, que no pueden predecir la lotera, ya por definicin es un proceso al azar.
Existen varias formas de hacer las conexiones en una RNA, as como existen varias formas
de conectar neuronas biolgicas en el cerebro. Cada tipo sirve para diferentes procesos, el
elegir la correcta topologa y sus caractersticas, es imprescindible para lograr fcilmente la
solucin 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 visin artificial, en el procesado de seales e imgenes,
reconocimiento del habla y de caracteres, sistemas expertos, anlisis de imgenes mdicas,
control remoto, control de robots, inspeccin industrial y exploracin cientfica. El dominio
de aplicacin de las (RNA) se puede clasificar de la siguiente forma: asociacin y
clasificacin, regeneracin de patrones, regresin y generalizacin, y optimizacin.
Con el fin de llegar al entendimiento global de (RNA), adoptamos la siguiente perspectiva,
llamada top-down que empieza por la aplicacin se pasa al algoritmo y de aqu a la
arquitectura, como se muestra en la figura 1.1
7
REDES NEURONALES ARTIFCIALES I
Figura 1.1 Diagrama Topdow
Esta aproximacin a las (RNA) est motivada por la aplicacin, basada en la teora y
orientada hacia la implementacin. Las principales aplicaciones son para el procesado de
seal y el reconocimiento de patrones. La primera etapa algortmica representa una
combinacin de la teora matemtica y la fundamentacin heurstica por los modelos
neuronales. El fin ltimo es la construccin de neurocomputadores digitales, con la ayuda de
las tecnologas VLSI y el procesado adaptativo, digital y paralelo.
Las Redes Neuronales son tiles para::
Clasificacin de patrones
Aproximacin de funciones
Mapeo
En los que exista informacin imprecisa y con tolerancia a fallos
Aprendizaje Adaptativo.
Autoorganizacin.
Tolerancia a Fallos.
Operacin en tiempo real.
Fcil construccin en circuitos integrados.
1.5 MODELO BIOLGICO NEURONAL.
El cerebro, como todo el organismo animal, est formado por clulas llamadas neuronas. La
estructura y la comunicacin de las neuronas fueron descritas por el espaol Santiago Ramn
y Cajal, quien encontr una caracterstica fundamental de la comunicacin entre las clulas
nerviosas: casi nunca se tocan, estn separados por pequesimos espacios, cuyo significado
y enorme importancia vendra a conocerse mucho tiempo despus. 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
8
REDES NEURONALES ARTIFCIALES I
estructura tpica, y la regin de la neurona que recibe ese contacto tambin tiene una forma
caracterstica. A esta zona de integracin de la neurona se le llama sinapsis, y su
funcionamiento es esencial para explicar prcticamente todas las acciones del cerebro, desde
la ms sencilla como ordenar a los msculos que se contraigan y se relajen en forma
coordinada para llevar a cabo un simple movimiento, hasta las ms complicadas tareas
intelectuales, pasando tambin por las funciones que originan, controlan y modulan las
emociones.
A travs de esta comunicacin las neuronas forman redes complicadsimas, que por supuesto
estamos lejos de conocer por completo. Sabemos que unos de estos circuitos estn
relacionados con el sueo, otros con el movimiento, y otros ms con las emociones y la
conducta. La identificacin de stos circuitos puede lograrse con distintos mtodos, 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 localizacin de las funciones motoras en la corteza del
cerebro y la existencia de conexiones neuronales desde sa hasta los msculos. Se observ en
stos experimentos que el movimiento y la sensibilidad de algunas regiones del cuerpo
requieren un mayor nmero de neuronas en la corteza.
El cerebro humano contiene aproximadamente 12 billones (10
14
)de clulas nerviosas o
neuronas. Cada neurona tiene de 5.600 a 60.000 (10
3
a 10
4
) conexiones dendrticas
provenientes de otras neuronas. Estas conexiones transportan los impulsos enviados desde
otras neuronas y estn conectadas a la membrana de la neurona. Cada neurona tiene una
salida denominada axn. El contacto de cada axn con una dendrita se realiza a travs de la
sinapsis. Tanto el axn como las dendritas transmiten la seal en una nica direccin. La
sinapsis consta de un extremo presinptico de un axn conectado a un extremo postsinptico
de una dendrita, existiendo normalmente entre stos un espacio denominado espacio
sinptico.
Las neuronas son elctricamente activas e interactan entre ellas mediante un flujo de
corrientes elctricas 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 travs del
axn hasta llegar a la sinapsis, produciendo la liberacin de una sustancia qumica
denominada neurotransmisor que se esparce por el fluido existente en el espacio sinptico.
Cuando este fluido alcanza el otro extremo transmite la seal 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 ms impulsos que se propagarn a lo largo del axn.
Aunque todava no est del todo claro, parece que este impulso se inicia en la conexin entre
el axn y la membrana. Su amplitud y velocidad dependen del dimetro del axn y su
frecuencia del nmero de disparos que se efecten.
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
9
REDES NEURONALES ARTIFCIALES I
analoga con el cerebro humano se denomina neurona a cada una de estas unidades de
procesamiento. Cada neurona recibe muchas seales de entrada y enva una nica seal 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 especficas.
Una neurona tpica recoge seales procedentes de otras neuronas a travs de una plyade de
delicadas estructuras llamadas dendritas. La neurona emite impulsos de actividad elctrica a
lo largo de una fibra larga y delgada denominada axn, que se escinde en millares de
ramificaciones.
Figura 1.2: Neurona y conexiones sinpticas
Las extremidades de estas ramificaciones llegan hasta las dendritas de otras neuronas y
establecen unas conexiones llamadas sinpsis, en las cuales se produce una transformacin
del impulso elctrico en un mensaje neuroqumico, mediante la liberacin de unas sustancias
llamadas neurotransmisores.

Figura 1.3: Detalle de una sinpsis
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 sera
oportuno describir aqu) , de manera que podemos hablar de la fuerza o efectividad de una
sinpsis. Las seales excitatorias e inhibitorias recibidas por una neurona se combinan, y en
funcin de la estimulacin total recibida, la neurona toma un cierto nivel de activacin, que
se traduce en la generacin de breves impulsos nerviosos con una determinada frecuencia o
10
REDES NEURONALES ARTIFCIALES I
tasa de disparo, y su propagacin a lo largo del axn hacia las neuronas con las cuales
sinapta.
Figura 1.4: Activacin y disparo de una neurona
De esta manera la informacin se transmite de unas neuronas a otras y va siendo procesada a
travs de las conexiones sinpticas y las propias neuronas. El aprendizaje de las redes
neuronales se produce mediante la variacin de la efectividad de las sinpsis, 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 clculo 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 estmulos
externos y calcula una seal de salida que propaga a otras unidades y, adems, realiza un
ajuste de sus pesos. Este tipo de modelos es inherentemente paralelo en el sentido de que
varias unidades pueden realizar sus clculos al mismo tiempo. El elemento de procesado ms
simple suele tener el siguiente esquema:
11
REDES NEURONALES ARTIFCIALES I
Figura 1.5. Esquema de una neurona artificial
Este esquema de elemento de procesado tiene las siguientes caractersticas:
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 estn ponderadas por un factor multiplicativo de peso o intensidad de
conexin que resaltan de forma diferente la importancia de cada entrada..
Cada elemento de procesado tiene un valor de activacin calculado en funcin del
valor de entrada neto (calculado a partir de las entradas y los pesos asociados a ellas).
En algunos casos, el valor de activacin, depende adems de la entrada neta del valor
anterior de activacin.
Una vez calculado el valor de activacin, se determina un valor de salida aplicando
una funcin de salida sobre la activacin del elemento de procesado.
Conexin entre unidades
En la mayor parte de los casos se asume que cada unidad recibe contribuciones aditivas de las
unidades que estn conectadas a ellas. La entrada total de la unidad k es la suma ponderada
de las entradas que recibe ms el trmino de offset
Cuando el peso de la contribucin 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 propagacin y,
en general, pueden tener diferentes expresiones.
12
REDES NEURONALES ARTIFCIALES I
Funciones de activacin y salida
Adems de la regla de propagacin es necesario poseer expresiones para las funciones de
activacin (calculan la activacin en funcin de la entrada total) y funciones de salida
(calculan la salida en funcin de la activacin).
La funcin de activacin calcula la activacin de la unidad en funcin de la entrada total y la
activacin previa, aunque en la mayor parte de los casos es simplemente una funcin no
decreciente de la entrada total. Los tipos de funcin ms empleados son: la funcin signo,
funciones con umbral lineal y la funcin sigmoidal.
La funcin de salida empleada usualmente es la funcin identidad y as la salida de la unidad
de procesado es idntica a su nivel de activacin.
Las redes neuronales estn 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 estn conectadas con las neuronas de la capa siguiente, a las
que pueden enviar informacin.
La arquitectura ms usada en la actualidad de una red neuronal se presente en la figura 1.5, la
cual consista en:
Una primera capa de entradas, que recibe informacin 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 crculos representan neuronas,
mientras las flechas representan conexiones entre las neuronas
El nmero de capas intermedias y el nmero de neuronas de cada capa depender del tipo de
aplicacin al que se vaya a destinar la red neuronal.
13
REDES NEURONALES ARTIFCIALES I
1.7 ESTRUCTURAS GENERALES DE LAS REDES NEURONALES
PERCEPTRON
En 1943, Warren McCulloc y Walter Pitts originaron el primer modelo de operacin
neuronal, el cual fu mejorado en sus aspectos biolgicos 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 solucin. El propuso los 'Perceptrons' como herramienta
computacional.
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
seal de salida a cada neurona de la capa siguiente. La figura muestra un ejemplo
esquemtico de la arquitectura de este tipo de redes neuronales.
Figura 1.8 Red backpropagation.
14
REDES NEURONALES ARTIFCIALES I
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
optimizacin. El estado de cada neurona puede ser actualizado un nmero indefinido de
veces, independientemente del resto de las neuronas de la red pero en paralelo.
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 travs 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 crtex (capa externa
del cerebro). Tambin en el sistema auditivo se detecta organizacin segn la frecuencia a la
que cada neurona alcanza la mayor respuesta (organizacin tono tpica).
Aunque en gran medida esta organizacin neuronal est predeterminada genticamente, es
probable que de ella se origine mediante el aprendizaje. Esto sugiere, por tanto, que el
cerebro podra poseer la capacidad inherente de formar mapas topolgicos de las
informaciones recibidas del exterior. De hecho, esta teora podra explicar su poder de operar
con elementos semnticos: algunas reas del cerebro simplemente podran crear y ordenar
neuronas especializadas o grupos con caractersticas de alto nivel y sus combinaciones. Se
tratara, en definitiva, de construir mapas espaciales para atributos y caractersticas.
1.8 TOPOLOGAS DE REDES NEURONALES.
15
REDES NEURONALES ARTIFCIALES I
La topologa es el nmero 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:
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 nmero de elementos de procesado puede variar en unas capas respecto a otras. Las
funciones (tanto de activacin como de salida) de los elementos de procesado pueden ser
diferentes. No existe limitacin en el nmero 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 ms capas ocultas. Estas capas ocultas crean una representacin interna de los patrones de
entrada. La habilidad de la red para procesar informacin crece en proporcin directa al
nmero de capas ocultas.
Segn el nmero 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 regin de elementos de procesado de la capa i+1.
En funcin de la direccin del movimiento de la informacin se puede realizar una
clasificacin 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
16
REDES NEURONALES ARTIFCIALES I
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 atrs(Feed Bade): estas conexiones llevan los datos de las neuronas de una
capa superior a otras de la capa inferior.
Conexiones laterales. Un ejemplo tpico de este tipo es el circuito el ganador toma todo,
que cumple un papel importante en la eleccin del ganador.
Conexiones con retardo: los elementos de retardo se incorporan en las conexiones para
implementar modelos dinmicos y temporales, es decir, modelos que precisan de memoria.
Tambin es posible que las redes sean de una capa con el modelo de pesos hacia atrs o bien
el modelo multicapa hacia adelante. Es posible as mismo, el conectar varias redes de una
sola capa para dar lugar a redes ms grandes.
A continuacin se describirn algunas topologas de RNA:
Figura 1.11. Perceptron simple
Figura 1.12. Topologa con conexiones hacia delante, hacia atrs,
laterales y de retroalimentacin
17
REDES NEURONALES ARTIFCIALES I
Figura 1.13. Topologa con conexiones hacia delante y laterales.
Figura 1.14. Topologa con conexiones hacia delante.
Figura 1.15. Topologa con conexiones hacia delante,
hacia atrs, laterales y de retroalimentacin.
Figura 1.16. Topologa con conexiones hacia delante.
18
REDES NEURONALES ARTIFCIALES I
Figura 1.17.Topologa con conexiones hacia delante.
Figura 1.18. Topologas 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 ms
escurridizos de la inteligencia artificial. El aprendizaje es un proceso de adaptacin 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 modificacin colectiva
de los pesos de los elementos de procesado. Una definicin de aprendizaje en redes
neuronales podra ser la siguiente: Proceso por el cual los parmetros libres de una red
neuronal son ajustados a travs de un proceso continuo de estimulacin por parte del entorno
en donde se sita el sistema. El tipo de aprendizaje viene determinado por la forma en la que
tienen lugar dichos cambios. Esta definicin implica tres hechos fundamentales:
La red neuronal se encuentra estimulada por el entorno, cambia como consecuencia
de esos estmulos y responde de manera diferente al entorno a causa de los cambios
que se han producido en sus estructura interna.
19
REDES NEURONALES ARTIFCIALES 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 categoras.
Supervisado
En el aprendizaje supervisado (aprender con un maestro), la adaptacin sucede cuando el
sistema compara directamente la salida que proporciona la red con la salida que se deseara
obtener de dicha red. Existen tres tipos bsicos: por correccin de error, por refuerzo y
estocstico.
En el aprendizaje por correccin 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 ms 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
relacin entrada-salida se realiza a travs de un proceso de xito o fracaso, produciendo este
una seal de refuerzo que mide el buen funcionamiento del sistema. La funcin del
supervisor es ms la de un crtico que la de un maestro.
El aprendizaje estocstico consiste bsicamente 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 clasificacin d(x) es, usualmente, +1 o -1). La
regla de aprendizaje del perceptrn es muy simple y se desarrolla a travs 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 perceptrn proporciona una salida incorrecta, modificar todas las conexiones
mediante la expresin .
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
funcin de activacin lineal, la salida viene dada por
20
REDES NEURONALES ARTIFCIALES 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 tambin se pueden
realizar otras tareas como aproximacin de funciones. En espacios de entrada
multidimensionales la red representa un hiperplano de decisin y es trivial asumir que se
pueden definir varias unidades de salida.
Supongamos que vamos a entrenar una red para localizar el hiperplano de decisin ms
idneo 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 patrn de
entrada . La regla delta una funcin de error (o funcin de coste) basada en dicha
diferencia para realizar el ajuste de los pesos.
La funcin de error, dada por el mtodo del menor error cuadrtico medio, es la suma de los
cuadrados de los errores individuales de cada patrn. 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
patrn p-simo. Los valores de los pesos de conexin se buscan de forma tal que se minimice
la funcin y este proceso se realiza por un mtodo conocido gradiente descendiente. La idea
del mtodo es realizar un cambio en los pesos inversamente proporcional a la derivada del
error respecto al peso para cada patrn
donde es una constante de proporcionalidad. La derivada se puede descomponer mediante
la siguiente expresin
Dado que la funcin de activacin es lineal, como se comentaba al comienzo,
y
con lo cual
donde es la diferencia entre la salida deseada y la salida real para el patrn de
entrada p.
21
REDES NEURONALES ARTIFCIALES I
La regla delta modifica los pesos como funcin de las salidas deseada y real para unidades de
entrada y salida binarias o continuas. Estas caractersticas abrieron un nuevo campo de
posibilidades para las redes neuronales.
Regla delta generalizada
La regla delta generalizada, ampla la regla delta al caso de usar unidades de procesamiento
con funciones de activacin no lineal. La activacin es una funcin diferenciable de la
entrada total dada por
donde
Para realizar la generalizacin de la regla delta debemos considerar
La medida de error viene definida como el error cuadrtico total para el patrn p en las
unidades de salida
Considerando E como la suma de los errores cuadrticos podemos ver que la variacin del
error respecto a los pesos viene dada por
A partir de la expresin de la salida total y definiendo
se puede obtener una regla de actualizacin 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 expresin
La conclusin ms importante es que el clculo recursivo de los factores delta puede
implementarse propagando las seales de error desde la capa de salida a capas ocultas de la
red.
El clculo de puede realizarse en trminos de un producto de dos factores; uno que refleje
el cambio del error como funcin de la salida de las unidades y otro que refleje el cambio de
la salida como funcin de los cambios en la entrada, es decir
22
REDES NEURONALES ARTIFCIALES I
Ahora bien, el segundo factor no es otro que la derivada de la funcin de activacin 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 definicin del error para el patrn p, podemos obtener que
que es el mismo resultado que en la regla delta bsica. 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 funcin de los pesos de las unidades de la capa
oculta a la capa de salida
con lo cual
Extendiendo este clculo 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
estadsticas de datos de entrada de forma tal que se formen categoras que optimizan, respecto
a los parmetros 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 bsqueda de caractersticas,
regularidades, correlaciones y categoras 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 informacin actual y la
informacin pasada), clusterizacin (establecimiento de clases), codificacin (versin
codificada de las entradas) o mapeo (representacin topogrfica 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 patrn de entrada se selecciona una nica unidad de salida (la unidad
ganadora) y se modifican los pesos de esa unidad.
Seleccin de la unidad ganadora mediante producto:
23
REDES NEURONALES ARTIFCIALES I
Asumamos que los patrones de entrada y los pesos estn normalizados a la unidad. Cada
unidad de salida o calcula su valor de activacin a partir del producto del vector del patrn de
entrada por el vector de pesos
A continuacin, se selecciona el elemento de procesado de salida que presenta mayor valor
de activacin. Su activacin 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
(slo del elemento ganador) de acuerdo a la expresin
Seleccin de la unidad ganadora mediante distancia:
Cuando no se pueden utilizar patrones normalizados la eleccin del elemento de procesado
ganador se realiza mediante el clculo de la distancia Euclidea entre el vector del patrn y el
vector de pesos. Aquel vector de pesos que presente una distancia mnima determinar el
elemento ganador. La ley de actualizacin de pesos del elemento ganador es la misma que en
el caso anterior, sin el denominador pues los vectores no estn 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
REDES NEURONALES ARTIFCIALES I
CAPTULO II
REDES NEURONALES MONOCAPA CON APRENDIZAJE SUPERVISADO
Las redes monocapa se utilizan tpicamente en tareas relacionadas en lo que se conoce como auto Las redes monocapa se utilizan tpicamente en tareas relacionadas en lo que se conoce como auto
asociacin: por ejemplo, para regenerar informaciones de entrada que se presentan a la red asociacin: por ejemplo, para regenerar informaciones de entrada que se presentan a la red
incompletas o distorsionadas. incompletas o distorsionadas.
El Perceptrn
Frank Rosenblatt cre muchas variantes de una mquina, la cual llam Perceptrn. Una de
las ms 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 tcnica de entrenamiento usada es llamada Regla de aprendizaje del perceptrn. El
perceptrn gener un gran inters 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 clasificacin de
patrones simples.
Caractersticas
- Aprendizaje Supervisado (offline)
- Aprendizaje por correccin de error
- Reconocimiento de patrones sencillos
- Clasificacin de patrones linealmente separables
Arquitectura
La red perceptrn consiste de una capa de S neuronas perceptrn, conectadas a r entradas a
travs 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 conexin de la j-
esima entrada a la i-esima neurona.
25
REDES NEURONALES ARTIFCIALES I
Figura 2.1. Arquitectura de una red perceptrn.
La red perceptrn puede tener nicamente una sola capa, debido a que la regla de aprendizaje
del perceptrn es capaz de entrenar solamente una capa. Esta restriccin coloca limitaciones
en cuanto a lo que un perceptrn 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 red
tq = es la salida destino correspondiente
La regla de aprendizaje es un procedimiento para modificar los pesos y los niveles de umbral
de activacin en una red neuronal.
La principal aportacin de Rosenblatt fue el desarrollo de una regla de aprendizaje simple y
automtica aplicada al reconocimiento de patrones.
La red aprenda 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
REDES NEURONALES ARTIFCIALES I
El entrenamiento comienza asignndole valores iniciales pequeos (aleatorios) a los
parmetros de la red (W y b), por medio de las siguientes ecuaciones:
Para el vector de pesos (W)
W
nuevo
= W
anterior
+ ep
t
Para el umbral (b) Para el umbral (b)
b
nuevo
= b
anterior
+ e
Para el error (e) Para el error (e)
e = t - a
Aplicaciones
El rango de tareas que el Perceptrn 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 Perceptrn multicapa
(MLP) puede ser usado para la prediccin de una serie de datos en el tiempo; tal a sido su
xito en la medicin de la demanda de gas y electricidad, adems de la prediccin de
cambios en el valor de los instrumentos financieros.
NETtalk es un Perceptrn que es capaz de transformar texto en ingles en sonido individual
(representaciones fonticas) y la pronunciacin con la utilizacin de un sintetizador de voz;
cuenta con aproximadamente 300 nodos de neuronas (siendo 80 en la capa escondida) y
20,000 conexiones individuales.
27
REDES NEURONALES ARTIFCIALES I
Ejercicios
Mtodo grfico
1. Use un perceptrn simple para clasificar el siguiente conjunto de patrones: 1. Use un perceptrn simple para clasificar el siguiente conjunto de patrones:
p1 =
1
]
1

2
0
t1=1; p2 =
1
]
1

2
2
t2=1;
p3 =
1
]
1

0
2
t3=1; p4 =
1
]
1

2
2
t4=1;
p5 =
1
]
1

2
0
t5=0; p6 =
1
]
1

2
2
t6=0;
p7 =
1
]
1

0
2
t7=0; p8 =
1
]
1

2
2
t8=1;
a) Trace la frontera de decisin
Solucin
Se traza sobre la grfica una lnea que separe los patrones que arrojen salida 1 (negro) de los
patrones cuya salida deseada sea 0 (blanco). El trazo de esta lnea o frontera de decisin
depende del diseador, siempre y cuando se cumpla la clasificacin (separacin de patrones
con salida 1 de los de salida 0). El trazo de la frontera de decisin implica la determinacin
inmediata del vector de pesos que da solucin al problema (la frontera de decisin es siempre
perpendicular al vector de pesos W). Esto se muestra en la figura 2.2.
Figura 2.2. Trazo de la frontera de decisin y vector de pesos
28
REDES NEURONALES ARTIFCIALES I
b) Encuentre la matriz de pesos W y el umbral de activacin b
De la grfica anterior, se obtiene el vector de pesos W:
W = [-2 1]
Dado que la frontera de decisin atraviesa por el origen (0,0), el umbral de activacin es cero.
b = 0
c) Compruebe el funcionamiento del perceptrn con el conjunto de patrones de entrada.
Para el primer par de entrada/salida
p1 =
1
]
1

2
0
t1=1;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([-2 1]
1
]
1

2
0
+ 0)
a = hardlim(2) = 1
Se calcula el error:
e = t1 a = 1 1
e = 0
Para el segundo par de entrada/salida
p2 =
1
]
1

2
2
t2=1;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([-2 1]
1
]
1

2
2
+ 0)
a = hardlim(6) = 1
29
REDES NEURONALES ARTIFCIALES I
Se calcula el error:
e = t2 a = 1 1
e = 0
Para el tercer par de entrada/salida
p3 =
1
]
1

0
2
t3=1;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([-2 1]
1
]
1

0
2
+ 0)
a = hardlim(4) = 1
Se calcula el error:
e = t3 a = 1 1
e = 0
Para el cuarto par de entrada/salida
p4 =
1
]
1

2
2
t4=1;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([-2 1]
1
]
1

2
2
+ 0)
a = hardlim(2) = 1
Se calcula el error:
e = t4 a = 1 1
e = 0
Para el quinto par de entrada/salida
30
REDES NEURONALES ARTIFCIALES I
p5 =
1
]
1

2
0
t5=0;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([-2 1]
1
]
1

2
0
+ 0)
a = hardlim(-2) = 0
Se calcula el error:
e = t5 a = 0 0
e = 0
Para el sexto par de entrada/salida
p6 =
1
]
1

2
2
t6=0;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([-2 1]
1
]
1

2
2
+ 0)
a = hardlim(-6) = 0
Se calcula el error:
e = t6 a = 0 0
e = 0
Para el sptimo par de entrada/salida
p7 =
1
]
1

0
2
t7=0;
Se calcula la salida utilizando la funcin de activacin propia de la red:
31
REDES NEURONALES ARTIFCIALES I
a = hardlim(wp + b)
a = hardlim([-2 1]
1
]
1

0
2
+ 0)
a = hardlim(-4) = 0
Se calcula el error:
e = t7 a = 0 0
e = 0
Para el octavo par de entrada/salida
p8 =
1
]
1

2
2
t8=0;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([-2 1]
1
]
1

2
2
+ 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 clasificacin del perceptrn y su regla de aprendizaje donde
los pares de entrada/salida son:
p1 =
1
]
1

2
1
t1=1;
p2 =
1
]
1

2
1
t2=0;
p3 =
1
]
1

1
0
t3=0;
32
REDES NEURONALES ARTIFCIALES I
a) usando la regla de aprendizaje del perceptrn, calcule la matriz de pesos W y el
umbral de activacin b. Considere los parmetros iniciales:
W = [1 -0.8]
b = 0
Solucin
Para el primer par de entrada/salida
p1 =
1
]
1

2
1
t1=1;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([1 0.8]
1
]
1

2
1
+ 0)
a = hardlim(-0.6) = 0
Se calcula el error:
e = t1 a = 1 0
e = 1
Usando la regla de aprendizaje del perceptrn, se modifica el vector de pesos:
W
nuevo
= W
anterior
+ ep
t
W
nuevo
= [1 0.8] + [1 2]
W
nuevo
= [2 1.2]
Para el segundo par de entrada/salida
p2 =
1
]
1

2
1
t2=0;
Se calcula la salida utilizando la funcin de activacin propia de la red (con os nuevos
pesos):
a = hardlim(wp + b)
33
REDES NEURONALES ARTIFCIALES I
a = hardlim([2 1.2]
1
]
1

2
1
+ 0)
a = hardlim(0.4) = 1
Se calcula el error:
e = t2 a = 0 - 1
e = -1
Usando la regla de aprendizaje del perceptrn, se modifica el vector de pesos:
W
nuevo
= W
anterior
+ ep
t
W
nuevo
= [2 1.2] + (-1)[-1 2]
W
nuevo
= [3 0.8]
Para el tercer par de entrada/salida
p3 =
1
]
1

1
0
t3=0;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([3 0.8]
1
]
1

1
0
+ 0)
a = hardlim(0.8) = 1
Se calcula el error:
e = t3 a = 0 - 1
e = -1
Usando la regla de aprendizaje del perceptrn, se modifica el vector de pesos:
W
nuevo
= W
anterior
+ ep
t
W
nuevo
= [3 0.8] + (-1) [0 -1]
W
nuevo
= [3 0.2]
34
REDES NEURONALES ARTIFCIALES I
Es necesario comprobar que, cada que se obtiene un vector de pesos nuevo, el error e = 0 para todos Es 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 =
1
]
1

2
1
t1=1;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([3 0.2]
1
]
1

2
1
+ 0)
a = hardlim(3.4) = 1
Se calcula el error:
e = t1 a = 1 1
e = 0
Para el segundo par de entrada/salida
p2 =
1
]
1

2
1
t2=0;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([3 0.2]
1
]
1

2
1
+ 0)
a = hardlim(-2.6) = 0
Se calcula el error:
e = t2 a = 0 0
e = 0
Para el tercer par de entrada/salida
35
REDES NEURONALES ARTIFCIALES I
p3 =
1
]
1

1
0
t3=0;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([3 0.2]
1
]
1

1
0
+ 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 solucin, indicando la frontera de decisin, indicando la frontera de
decisin y su vector de pesos.
Figura 2.3 Grfica-solucin del ejercicio 2
La figura 2.3 muestra la solucin del ejercicio. En ella se puede visualizar el vector de
pesos W, la frontera de decisin (perpendicular al vector de pesos W)
atravesando el origen. Esto ltimo se debe a que el valor del umbral b es cero.
36
REDES NEURONALES ARTIFCIALES I
3. Disee 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 perceptrn tienen la forma:
P =
1
1
1
]
1

peso
textura
forma
Los valores para cada parmetro son:
Forma:
- 1, si la fruta es redonda
- -1, si la fruta es elptica
Textura:
- 1, si la superficie de la fruta es suave
- -1, si la superficie es rugosa
Peso:
- 1, 1 libra
- -1, < 1 libra
Segn lo anterior, los vectores de entrada para las frutas a clasificar son:
Naranja
37
REDES NEURONALES ARTIFCIALES I
p1 =
1
1
1
]
1

1
1
1
t1 = 0
Manzana
p2 =
1
1
1
]
1

1
1
1
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 perceptrn para calcular el vector de pesos
W y el umbral b.
Solucin
Primera poca
Para el primer par de entrada/salida (Primera iteracin)
p1 =
1
1
1
]
1

1
1
1
t1=0;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([0.5 -1 -0.5]
1
1
1
]
1

1
1
1
+ 0.5)
a = hardlim(2.5) = 1
Se calcula el error:
e = t1 a = 0 - 1
38
REDES NEURONALES ARTIFCIALES I
e = -1
Usando la regla de aprendizaje del perceptrn, se modifica el vector de pesos y el umbral:
W
nuevo
= W
anterior
+ ep
t
W
nuevo
= [0.5 -1 -0.5] + (-1)[1 -1 -1]
W
nuevo
= [-0.5 0 0.5]
b
nuevo
= b
anterior
+ e
b
nuevo
= 0.5 - 1
b
nuevo
= -0.5
Para el segundo par de entrada/salida (segunda iteracin)
p2 =
1
1
1
]
1

1
1
1
t2=1;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([-0.5 0 0.5]
1
1
1
]
1

1
1
1
+ (-0.5))
a = hardlim(-1.5) = 0
Se calcula el error:
e = t1 a = 1 - 0
e = 1
Usando la regla de aprendizaje del perceptrn, se modifica el vector de pesos y el umbral:
39
REDES NEURONALES ARTIFCIALES I
W
nuevo
= W
anterior
+ ep
t
W
nuevo
= [-0.5 0 0.5] + [1 1 -1]
W
nuevo
= [0.5 1 -0.5]
b
nuevo
= b
anterior
+ e
b
nuevo
= -0.5 + 1
b
nuevo
= 0.5
Segunda poca
Para el primer par de entrada/salida (Primera iteracin)
p1 =
1
1
1
]
1

1
1
1
t1=0;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([0.5 1 -0.5]
1
1
1
]
1

1
1
1
+ 0.5)
a = hardlim(0.5) = 1
Se calcula el error:
e = t1 a = 0 - 1
e = -1
Usando la regla de aprendizaje del perceptrn, se modifica el vector de pesos y el umbral:
W
nuevo
= W
anterior
+ ep
t
W
nuevo
= [0.5 1 -0.5] + (-1)[1 -1 -1]
W
nuevo
= [-0.5 2 0.5]
40
REDES NEURONALES ARTIFCIALES I
b
nuevo
= b
anterior
+ e
b
nuevo
= 0.5 - 1
b
nuevo
= -0.5
Para el segundo par de entrada/salida (segunda iteracin)
p2 =
1
1
1
]
1

1
1
1
t2=1;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([-0.5 2 0.5]
1
1
1
]
1

1
1
1
+ (-0.5))
a = hardlim(0.5) = 1
Se calcula el error:
e = t1 a = 1 - 1
e = 0
No hay modificacin de W y b. Slo resta probar si se cumple para el primer par de
entrada.
p1 =
1
1
1
]
1

1
1
1
t1=0;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = hardlim(wp + b)
a = hardlim([-0.5 2 0.5]
1
1
1
]
1

1
1
1
+ (-0.5))
a = hardlim(-3.5) = 0
41
REDES NEURONALES ARTIFCIALES I
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
Simulaciones en Matlab
1. Resuelva el siguiente problema de clasificacin del perceptrn y su regla de aprendizaje
Los pares de entrada/salida son:
p1 =
1
]
1

2
1
t1=1;
p2 =
1
]
1

2
1
t2=0;
p3 =
1
]
1

1
0
t3=0;
En el editor de Matlab teclee el siguiente cdigo que resuelve el problema anterior:
clear;echo on;clc;
%Se definen los vectores de entrada
P=[1 -1 0;
2 2 -1];
%Se define el vector de salida
T = [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);
%Evala un par de entrada para clasificarlo
a=simup([-1;0],w,b)
42
REDES NEURONALES ARTIFCIALES I
echo off
En la ventana de comandos de Matlab aparece paso a paso la ejecucin del programa, como
sigue:
%Se definen los vectores de entrada
P=[1 -1 0;
%Se define el vector de salida
T = [1 0 0]
T =
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);

TRAINP: 0/100 epochs, SSE = 2.

TRAINP: 1/100 epochs, SSE = 1.

TRAINP: 2/100 epochs, SSE = 0.
%Evala un par de entrada para clasificarlo
a=simup([-1;0],w,b)

a =
0
echo off
La salida del programa (adems del proceso descrito en la ventana de comandos de Matlab)
es una grfica donde aparecen los patrones de entrada en un plano de dos dimensiones, con la
clasificacin correspondiente (frontera de decisin). Esto se muestra en la figura 2.5.
Figura 2.5. Patrones clasificados
La frontera de decisin y el vector de pesos y umbral que dan solucin al problema
depender de los valores iniciales que Matlab asigna a w y b.
43
REDES NEURONALES ARTIFCIALES I
2. Perceptrn de cuatro clases
Clasifique el siguiente grupo de vectores de entrada en cuatro clases.
Clase 1:

'

1
]
1

1
]
1

2
1
2 ,
1
1
1 p p

'

1
]
1

1
]
1

0
0
2 ,
0
0
1 t t

Clase 2:

'

1
]
1

1
]
1

0
2
4 ,
1
2
3 p p

'

1
]
1

1
]
1

1
0
4 ,
1
0
3 t t
Clase 3:

'

1
]
1

1
]
1

1
2
6 ,
2
1
5 p p

'

1
]
1

1
]
1

0
1
6 ,
0
1
5 t t
Clase 4:

'

1
]
1

1
]
1

2
2
8 ,
1
1
7 p p

'

1
]
1

1
]
1

1
1
8 ,
1
1
7 t t
Para solucionar un problema de 4 clases de entrada, se necesita un perceptrn con al menos
dos neuronas, lo que traer como consecuencia dos vectores de pesos y, por lo tanto, dos
fronteras de decisin.
En el editor de Matlab teclee el siguiente cdigo que resuelve el problema anterior:
clear;echo on;clc;
%Se definen los vectores de entrada
P=[1 1 2 2 -1 -2 -1 -2;
1 2 -1 0 2 1 -1 -2];
%Se define los vectores de salida
T = [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);
%Evala un par de entrada para clasificarlo
a=simup([1;1],w,b)
echo off
En la ventana de comandos de Matlab aparece paso a paso la ejecucin del programa, como
sigue:
%Se definen los vectores de entrada
44
Salida
Lineal
REDES NEURONALES ARTIFCIALES I
P=[1 1 2 2 -1 -2 -1 -2;
%Se define el vector de salida
T = [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.
%Evala un par de entrada para clasificarlo
a=simup([1;1],w,b)

a =
0
0
echo off
La salida del programa (adems del proceso descrito en la ventana de comandos de Matlab)
es una grfica 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
clasificacin correspondiente. Ahora se ve una frontera de decisin 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 decisin al que dan solucin al problema depender de los valores iniciales que Las fronteras de decisin al que dan solucin al problema depender de los valores iniciales que
Matlab asigna a w y b. Matlab asigna a w y b.
45
Salida
Lineal
REDES NEURONALES ARTIFCIALES I
La Red Adaline
Las redes Adaline fueron desarrolladas por Bernie Widrow en la Universidad de Stanford
poco despus de que Rosenblatt desarrollara el Perceptrn.
El trmino Adaline es una sigla; sin embargo, significado ha cambiado ligeramente con el
paso de los aos. 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 aos setenta.
Tiene una estructura casi idntica a la del perceptrn general. La figura 2.7. muestra la estructura de Tiene una estructura casi idntica a la del perceptrn general. La figura 2.7. muestra la estructura de
una red Adaline. una red Adaline.
Figura 2.7. Estructura de una red ADALINE
Es necesario hacer dos modificaciones bsicas a la estructura del
perceptrn general para transformarla en una red Adaline. La primera
consiste en aadir una conexin de peso Wo, que se conoce con el
nombre de trmino de tendencia. Este trmino es el peso de una
conexin que siempre tiene un valor de entrada igual a 1. La inclusin
de este trmino se debe fundamentalmente a la experiencia.
La segunda modificacin consiste en aadir una condicin 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.
46
X
N
Salida
binaria
X
0
X
1
X
2
W
0
W
1
W
2
W
N
S
s
Salida
Lineal
y
Conmutador Bipolar
s
y
-1
1
Combinador Adaptativo Lineal
REDES NEURONALES ARTIFCIALES I
El ALC lleva a cabo el clculo de una suma de productos empleando los vectores de entrada
y de peso, y aplica una funcin de salida para obtener un valor nico de salida, tal y como lo
hace el perceptrn.
La funcin de salida en este caso es la funcin identidad, as como la funcin de activacin.
El uso de esta funcin como funcin de salida y como funcin de activacin significa que la
salida es igual a la activacin, 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
funcin lineal sencilla de los valores de entrada. Es una neurona tan slo en el sentido (muy
limitado) del perceptrn. Tambin se podra decir que la red Adaline es un elemento lineal,
evitando por completo el tema de la neurona.
Algoritmo de aprendizaje
1. Se aplica un patrn de entrada P.
2. Se obtiene la salida del ALC y se calcula la diferencia con respecto a la deseada
(error).
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 realizacin del paso 3.
Por medio de las siguientes ecuaciones, se realiza la actualizacin de los parmetros de la red: Por medio de las siguientes ecuaciones, se realiza la actualizacin de los parmetros de la red:
Para el vector de pesos (W)
W
nuevo
= W
anterior
+ 2 ep
t
Para el umbral (b) Para el umbral (b)
b
nuevo
= b
anterior
+ 2e
Para el error (e) Para el error (e)
e = t - a
47
REDES NEURONALES ARTIFCIALES I
donde se conoce como razn o tasa de aprendizaje y 0 < < 1.
El clculo de dicho parmetro se realiza mediante una matriz de correlacin R:
R = E(P P
t
)
Los eigenvalores
i
de la matriz de correlacin sern tiles para la determinacin del
parmetro a, pues:
0 < <
max
1
Aplicaciones
El principal campo de aplicacin es el Procesamiento de Seales.
Filtros que eliminen el ruido en seales portadoras de informacin.
Filtros de ecualizacin adaptativos en Mdems de alta velocidad.
Cancelacin del ruido materno de grabaciones ECG del latido del feto humano.
Eliminacin de ecos en circuitos telefnicos.
Canceladores adaptativos del eco para el filtrado de seales en comunicaciones
telefnicas de larga distancia y comunicaciones va satlite.
Ejercicios
1. Clasifique el siguiente conjunto de patrones usando el algoritmo LMS y una red
Adaline.
48
REDES NEURONALES ARTIFCIALES I
p1 =
1
]
1

1
1
t1=1;
p2 =
1
]
1

1
1
t2=-1;
Los parmetros iniciales son:
= 0.25
W =[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 =
1
]
1

1
1
t1=1;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = pureline(wp + b) = wp + b
a = [0 0]
1
]
1

1
1
+ 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:
W
nuevo
= W
anterior
+ 2ep
t
W
nuevo
= [0 0] + 2(0.25)(1)[1 1]
W
nuevo
= [0.5 0.5] b= 0
Para el segundo par de entrada/salida
p2 =
1
]
1

1
1
t2=-1;
49
REDES NEURONALES ARTIFCIALES I
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = pureline(wp + b) = wp + b
a = [0.5 0.5]
1
]
1

1
1
+ 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:
W
nuevo
= W
anterior
+ 2ep
t
W
nuevo
= [0.5 0.5] + 2(0.25)(-1)[1 -1]
W
nuevo
= [0 1] b= 0
Segunda poca
Para el primer par de entrada/salida
p1 =
1
]
1

1
1
t1=1;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = pureline(wp + b) = wp + b
a = [0 1]
1
]
1

1
1
+ 0
a = 1
Se calcula el error:
e = t1 a = 1 -1 = 0
Para el segundo par de entrada/salida
p2 =
1
]
1

1
1
t2=-1;
Se calcula la salida utilizando la funcin de activacin propia de la red:
50
REDES NEURONALES ARTIFCIALES I
a = pureline(wp + b) = wp + b
a = [0 1]
1
]
1

1
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 decisin y los patrones
Figura 2.8 Grfica-solucin del ejercicio 1
La figura 2.8 muestra la solucin del ejercicio. En ella se puede visualizar el vector de
pesos W, la frontera de decisin (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.
51
REDES NEURONALES ARTIFCIALES I
p1 =
1
1
1
]
1

1
1
1
t1=-1;
p2 =
1
1
1
]
1

1
1
1
t2=1;
Los parmetros iniciales son:
W =[0 0 0]
b=0
a) Calcule la razn de aprendizaje
El clculo de este parmetro se realiza mediante una matriz de correlacin R:
R = E(P P
t
)
R = E(P P
t
)
R =
2
1
P1 P1
t
+
2
1
P2 P2
t

R =
2
1
1
1
1
]
1

1
1
1
[1 1 1] +
2
1
1
1
1
]
1

1
1
1
[1 1 1]
R =
2
1
1
1
1
]
1


1 1 1
1 1 1
1 1 1
+
2
1
1
1
1
]
1

1 1 1
1 1 1
1 1 1
=
2
1
1
1
1
]
1

2 0 2
0 2 0
2 0 2
=
1
1
1
]
1

1 0 1
0 1 0
1 0 1
Se procede ahora al clculo de los Eigenvalores (i) de la matriz R mediante la frmula:
P() = |A I|
Esto hace:
52
REDES NEURONALES ARTIFCIALES I
1
1
1
]
1

1 0 1
0 1 0
1 0 1
-
1
1
1
]
1

0 0
0 0
0 0
=
( )
( )
( )


1 0 1
0 1 0
1 0 1
Haciendo el clculo del determinante se tiene:
( )
( )
( )


1 0 1
0 1 0
1 0 1
= (1 - )
3
(1 )
Factorizando se tiene:
(1 - )
3
(1 )
= (1 - ) {(1 - )
2
1}
= (1 - ) {1 - 2 +
2
-1}
= (1 - ) {-2 +
2
}
= (1 - )(2) = 0
Haciendo el clculo de las races, se obtienen los eigenvalores de la matriz R:

1
=0

2
=1

3
=2
La mxima razn de a La mxima razn de aprendizaje estable es: prendizaje estable es:

mx
=
3
= 2

0 < <
max
1
max
1
= 1 / 2 = 0.5
Se elige una tasa de aprendizaje de 0.2 (valor tpico)
Nota: Nota: se puede proponer a travs de prueba y error. se puede proponer a travs de prueba y error.
b) Calcule el vector de pesos W y el umbral b
53
REDES NEURONALES ARTIFCIALES I
Primera poca
Para el primer par de entrada/salida
p1 =
1
1
1
]
1

1
1
1
t1=-1;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = pureline(wp + b) = wp + b
a = [0 0 0]
1
1
1
]
1

1
1
1
+ 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:
W
nuevo
= W
anterior
+ 2ep
t
W
nuevo
= [0 0 0] + 2(0.2)(-1)[1 -1 -1]
W
nuevo
= [-0.4 0.4 0.4] b= 0
Para el segundo par de entrada/salida
p2 =
1
1
1
]
1

1
1
1
t2=1;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = pureline(wp + b) = wp + b
a = [-0.4 0.4 0.4]
1
1
1
]
1

1
1
1
+ 0
a = -0.4
54
REDES NEURONALES ARTIFCIALES I
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:
W
nuevo
= W
anterior
+ 2ep
t
W
nuevo
= [-0.4 0.4 0.4] + 2(0.2)(1.4)[1 1 -1]
W
nuevo
= [0.16 0.96 -0.16] b= 0
Segunda poca
Para el primer par de entrada/salida
p1 =
1
1
1
]
1

1
1
1
t1=-1;
Se calcula la salida utilizando la funcin de activacin propia de la red:
a = pureline(wp + b) = wp + b
a = [0.16 0.96 0.16]
1
1
1
]
1

1
1
1
+ 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:
W
nuevo
= W
anterior
+ 2ep
t
W
nuevo
= [0.16 0.96 -0.16] + 2(0.2)(-3.6)[1 -1 -1]
W
nuevo
= [0.016 1.1040 -0.016] b= 0
Si se continua el proceso, el algoritmo convergir en:
55
REDES NEURONALES ARTIFCIALES I
W = [0 1 0]
b = 0
Simulaciones en MATLAB
1. Resuelva el siguiente problema de clasificacin de la red Adaline y su regla de aprendizaje
Los pares de entrada/salida son:
p1 =
1
]
1

2
0
t1=1;
p2 =
1
]
1

0
2
t2=1;
p3 =
1
]
1

2
2
t3=0;
En el editor de Matlab teclee el siguiente cdigo que resuelve el problema anterior:
clear;echo on;clc;
%Se definen los vectores de entrada
P=[0 2 -2;
2 0 -2];
%Se define el vector de salida
T = [1 1 0];
%Se crea una red lineal adaptativa NEWLIN(PR,S,ID,LR)
donde:
PR matriz Rx2 de los valores mximos y mnimos para R elementos
de entrada.
S - Nmero 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 omisin=0)
net.trainParam.goal=0.1;
%Se ajustan las pocas (valor por omisin=100)
net.trainParam.epochs=50;
%Se entrena la red
[net,tr]=train(net,P,T);
56
REDES NEURONALES ARTIFCIALES I
%Si se desea dar valores iniciales al vector de pesos y umbral,
escrbanse las siguientes dos lneas de cdigo
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 decisin mediante las siguientes lneas
plotpv(P,T)
plotpc(net.IW{1,1},net.b{1})
echo off
En la ventana de comandos de Matlab aparece paso a paso la ejecucin del programa, como
sigue:
%Se definen los vectores de entrada
P=[0 2 -2;
%Se define el vector de salida
T = [1 1 0];
%Se crea una red lineal
net=newlin([-2 2;-2 2],1);
%Se ajusta el error (valor por omisin=0)
net.trainParam.goal=0.1;
%Se ajustan las pocas (omisin=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}
57
REDES NEURONALES ARTIFCIALES I
b =
0.3554
plotpv(P,T)
plotpc(net.IW{1,1},net.b{1})
echo off
La salida del programa (adems del proceso descrito en la ventana de comandos de Matlab)
es una sucesin de grficas donde aparece la variacin del error en un nmero N de pocas.
Esto se muestra en la figura 2.9.
Figura 2.9. Evolucin del error
Los patrones de entrada en un plano de dos dimensiones, con la clasificacin correspondiente
(frontera de decisin) aparecen despus de terminado el proceso de entrenamiento. Esto se
muestra en la figura 2.10.
Figura 2.10. Patrones clasificados
58
REDES NEURONALES ARTIFCIALES I
CAPITULO III
REDES NEURONALES MULTICAPA CON APRENDIZAJE
SUPERVISADO..
3.1.0 Perceptron Multicapa
El Perceptrn multicapa (MLP) puede ser usado para la prediccin de una serie de datos en
el tiempo; tal a sido su xito en la medicin de la demanda de gas y electricidad, adems de
la prediccin de cambios en el valor de los instrumentos financieros.
Prediccin de mercados financieros, diagnsticos mdicos, el Perceptrn como una red
codificadora, el Perceptrn aprende a sumar enteros.
NETtalk es un Perceptrn que es capaz de transformar texto en ingles en sonido individual
(representaciones fonticas) y la pronunciacin con la utilizacin 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 Caractersticas
Cada capa de la red es caracterizada por la matriz de parmetros, y el funcionamiento de la
red por una composicin no lineal de operaciones como se muestra:
Una red neuronal hacia adelante (feedforward) con dos capas (una oculta y una de salida) es
comnmente usada para aproximacin 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 comnmente usado para aproximar mapas no lineales complejos.
En general, esto es posible, dos capas son suficientes para aproximar cualquier funcin no
lineal. Por consiguiente, estamos restringiendo nuestras consideraciones a una red de dos
capas.
La estructura de la parte de decodificacin de la red de dos capas es representada en la figura
(3.1).
59
F(W, x) = (W
1
(W
l
x) ) (3.11)
REDES NEURONALES ARTIFCIALES I
Figure 3.1: Diagrama a bloques de una red neuronal de una sola capa oculta con conexin hacia adelante
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 W
h
en la capa oculta, y una matriz de m L W
y
en la capa de salida. El
funcionamiento de la red puede ser descrito de la siguiente manera:
o simplemente como
(3.12)
Tpicamente, la funcin sigmoidal (tangente hiperblica) es usada, pero existen otras
funciones que tambin se pueden utilizar. Una condicin importante desde el punto de vista
de el aprendizaje es que la funcin debe ser diferenciable.
Tpicamente funciones no lineales y sus derivadas se usan en el perceptron multicapa:

Sigmoidal unipolar:
La derivada de la funcin sigmoidal:
Sigmoidal bipolar:
La derivada de la funcin bipolar sigmoidal:
60
u(n) =
W
h
x(n) ; h(n) = (u(n)) - hidden signals ;
v(n) =
W
y
h(n) ; y(n) = (v(n)) - output signals .
y(n) = ( W
y
( W
h
x(n) ) )
y = ( v ) =
1
1 + e
-

v
=
1
2
(tanh(v/2) -1) (160,30)
y =
d
d v
=
e
-

v

(1 + e
-

v
)
2

= y (1 - y)
( v ) = tanh(v)(320,0)
REDES NEURONALES ARTIFCIALES I
Nota que
Derivadas de la funcin sigmoidal son siempre no negativas.
Derivadas pueden ser calculadas directamente desde la seal de salida usando
simplemente operaciones aritmticas.
En saturacin, para valores grandes de potencial de activacin, 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 Perceptrn 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 aos 50, al
mismo tiempo que Frank Rosenblatt desarrollaba la regla de aprendizaje del perceptrn. 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
Mnimos Cuadrados o LMS (Least Mean Square).
El algoritmo LMS ha encontrado mucho mayores aplicaciones prcticas que la regla de
aprendizaje del perceptrn.
61
y =
d
d v
=
4 e
2

v

(e
2

v
+1)
2

= (1 - y
2
)
REDES NEURONALES ARTIFCIALES I
3.2.1 Caractersticas 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 despus de que
Rosenblatt desarrollar el Perceptrn. Las arquitecturas de ADALINE y MADALINE son
esencialmente las mismas que las del Perceptrn. Ambas estructuras utilizan neuronas con
funciones de transferencia escaln. La red Adaline est limitada a una nica neurona,
mientras que la Madaline puede tener varias. La diferencia fundamental respecto al
Perceptrn se refiere al mecanismo de aprendizaje, Adaline y Madaline utilizan la
denominada Regla Delta de Widrow- Hoff o regla del Mnimo Error Cuadrtico Medio
(LMS), basada en la bsqueda del mnimo de una expresin del error entre la salida deseada
y la salida lineal obtenida antes de aplicarle la funcin de activacin escaln (frente a la
salida binaria utilizada en el caso del Perceptrn). Debido a esta nueva forma de evaluar el
error, estas redes pueden procesar informacin analgica, tanto de entrada como de salida,
utilizando una funcin de activacin 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 travs de una matriz de pesos W.
Figura 3.3 Arquitectura de la red Adaline
Esta red es con frecuencia llamada MADALINE o Mltiples 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 mltiples
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.
62
REDES NEURONALES ARTIFCIALES I
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 {x
1
, x
2
, ..., x
L
}, a
cada uno de los cuales les corresponde una salida correcta d
k
, con k = 1, ..., L, ya no es tan
fcil saber cules son los pesos que produciran un mejor resultado; para esto, el Adaline
utiliza la regla de mnimos cuadrados, o que minimiza el error cuadrtico 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 proyeccin de los vectores de entrada
x
k
a las salidas deseadas d
k
, lo que estamos buscando es minimizar el error en la salida. Si
denotamos la salida para el k-simo vector de entrada con s
k
, el error es denotado por la
ecuacin 3.1.
k k
s d
(3.21)
Entonces el error cuadrtico medio, que es el valor que deseamos minimizar esta dado por la
ecuacin 3.2.

L
k
k k
L
1
2 2
1

(3.22)
considerando a L como el tamao del conjunto de entrenamiento, o sea, el nmero de
vectores de entrada que usaremos para el entrenamiento. Desarrollando se obtiene 3.23.
( )
w x w x x w
w x x w w x
x w
t
k k
t
k k
t
k
t
k k
t t
k k k
k
t
k k
d d
d d
d
2
2
2
2
2
2
+
+

(3.23)
Para minimizar esta funcin debemos derivar con respecto a w e igualar a cero, como se
muestra en 3.24.
k k
t
k k
k
t
k k
k
t
k k
d
d
d
x x x w
x w x x
x w x x
k
k
1
0 2 2


(3.24)
Ahora, como representa al error cuadrtico medio, su grfica (con dos entradas y dos pesos)
debe ser un paraboloide, y como no puede ser negativo, la grfica debe ser cncava hacia
arriba. De aqu resta que el mnimo encontrado es nico, y que no tiene mximos. Pero para
obtener un vector de pesos como indica el procedimiento anterior es necesario contar con
informacin estadstica acerca de los vectores de entrada. Pero basndonos en lo obtenido,
podemos desarrollar un mtodo capaz de aproximar cada vez ms el vector de pesos al que
nos produce un error cuadrtico mnimo. Empezamos suponiendo que el vector de pesos es
63
REDES NEURONALES ARTIFCIALES I
una funcin discreta del tiempo, en el que cada paso se actualiza basndose en el vector
anterior, como se muestra en la ecuacin 3.25.
( ) ( ) ( ) t t t w w w + +1 (3.25)
Este cambio w lo se aproxima mediante el gradiente del error, que nos da la direccin del
ascenso ms pronunciado, que multiplicado por un factor nos da la direccin y magnitud
correcta; vea la ecuacin 3.26
( ) ( ) ( ) ( ) t t t w w w +1 (3.26)
Pero asumimos que no conocemos las estadsticas 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.
( )
( ) ( ) ( )
( )
k k
k
t
k
t
k
t
t d
t
x
w
x w


2
2


(3.27)
( ) ( )
k k
t t x w w 2 1 + +
(3.28)
Esta es la expresin para el descenso ms pronunciado, del algoritmo LMS. Al factor lr=2
se le conoce como constante de proporcionalidad o tasa de aprendizaje. La actualizacin de
pesos y de umbral para la red adaline se describe por la ecuacin 3.29.
( ) ( )
( ) ( ) ( ) t t t
t t
k k
e b b
x w w

2 1
2 1
+ +
+ +
3.29
Nota:
Para la eleccin de un valor de debemos tener cuidado. Se puede suponer que mientras
que el valor de sea mayor, nos acercaremos ms rpido al error mnimo, sin embargo no es as: un
valor grande de nos puede hacer que la solucin viaje por toda la superficie del paraboloide sin
convergir nunca. Por otro lado, un valor muy pequeo seguramente provocar que se consuma un
tiempo mayor durante el entrenamiento.
Tampoco es necesario que el valor de permanezca esttico: conforme el error vaya
disminuyendo, el algoritmo dar pasos ms 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 lmite buscado.
64
REDES NEURONALES ARTIFCIALES I
3.2.4 Aplicaciones
Esta red ha sido extensamente utilizada en ciencia, estadstica (en el anlisis de regresin
lineal), ingeniera (el procesamiento adaptativo de seales, control de sistemas), y as
sucesivamente.
En general, la Adaline es usada para ejecutar:
Una aproximacin lineal de un pequeo segmento de una superficie no lineal, la cual
es generada por una funcin variable p, y = f(x). En este caso, el bias es usualmente
necesario, de aqu, w
p
= 1.
Filtrado lineal de datos (seales).
Asociacin de patrones, esto es, generacin de m-elemento del vector de salida
asociados con su respectivo p-elemento del vector de entrada.
3.2.5 Ejercicios y simulacin en Matlab
Prediccin adaptativa con Adaline - Ejemplo (adlpr.m)
En este ejemplo una configuracin Adaline como en la figura (3.4) es usada para predecir una
seal de unidimensional (series de tiempo). Para predecir el siguiente valor de la sela de
entrada, p muestras de sta son colocados a la Adaline. La seal de entrada es tambin 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 seal senoidal de frecuencia 2kHz muestrada
cada 50sec. Despus de 5sec la frecuencia de la seal se cuadriplicara con el tiempo de
muestreado siendo tambin reducido a 12.5sec.
f1 = 2 ; % kHz
ts = 1/(40*f1) ; % 12.5 sec -- sampling time, fs = 80kHz
N = 100 ;
t1 = (0:N)*4*ts ;
t2 = (0:2*N)*ts + 4*(N+1)*ts;
t = [t1 t2] ; % 0 to 7.5 sec
N = size(t, 2) ; % N = 302
xt = [sin(2*pi*f1*t1) sin(2*pi*2*f1*t2)];
plot(t, xt), grid, title('Signal to be predicted')
65
REDES NEURONALES ARTIFCIALES I
Figura 3.4: La seal de entrada y la seal predicha
La seal (series de tiempo) se convertira en una colleccin de vectores de entrada, x(n), y
guardadas en una matriz X de p N.
p = 4 ; % Number of synapses
X = 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 y
eps = zeros(size(d)) ; % memory allocation for eps
eta = 0.4 ; % learning rate/gain
w = rand(1, p) ; % Initialisation of the weight vector
for 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 update
end
66
REDES NEURONALES ARTIFCIALES I
Figura 3.5: El error de prediccin
El vector de pesos estimado es w = 0.7049 0.2818 0.2366 -0.2795
3.3.0 Red Backpropagation
El perceptrn solo es el ejemplo ms 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 estmulos de entrada despus 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 propagacin hacia atrs, en
ingls back propagation network.
Origen
Al 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 descripcin clara y concisa del mismo. Y es
que en un primer momento no se valor como se mereca. El hecho de que permaneciera en el
olvido tanto tiempo tambin debe ser una consecuencia de la condicin interdisciplinaria del campo,
repartido entre las matemticas y ciencias de la computacin, las neurociencias y la sicologa.
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 mnimos locales y no globales, punto que ser discutido ms tarde.
67
REDES NEURONALES ARTIFCIALES I
3.3.1 Caractersticas
Al hablar de redes de retropropagacin o redes de propagacin hacia atrs hacemos referencia a un
algoritmo de aprendizaje ms que a una arquitectura determinada. La retropropagacin consiste en
propagar el error hacia atrs, 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 retropropagacin y distintas arquitecturas de
conexin 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 invencin y perfeccionamiento del algoritmo de
retropropagacin dio un gran impulso al desarrollo de este campo. Tiene un buen fundamento
matemtico y a pesar de sus limitaciones ha expandido enormemente el rango de problemas donde
se aplican las redes neuronales artificiales.
Descripcin matemtica
Se explica una versin del algoritmo (Hinton, 1992) para redes con las siguientes caractersticas:
No recurrentes
Funcin de activacin sigmoidal
Capas totalmente interconectadas
Operacin totalmente sncrona
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 patrn de entrada y calculamos la salida.
68
REDES NEURONALES ARTIFCIALES 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 activacin de la
misma.
Figura 3.7 . Ilustra el calculo de la capa de salida
x y w
j i
i
n
ij

( )
1
y
e
j x
j

+

1
1
Una vez computadas las actividades de todas las unidades de salida se calcula una estimacin
del error, generalmente una funcin cuadrtica de los errores individuales cometidos por cada
unidad, siendo cada error individual la diferencia entre la salida deseada y la obtenida.
E d y
j j
j

1
2
2
( )
siendo dj la salida deseada para la unidad j-sima
Nota: Se van a indicar por un lado las expresiones matemticas y por otro lado la explicacin
intuitiva de cada paso. Conviene recordar que nuestro objetivo es calcular como vara el error al
variar el peso de cada conexin (tasa de variacin del error respecto al peso de una conexin, EP)
Cmputo de la rapidez de variacin del error al cambiar la actividad de cada unidad de salida
(EA, error respecto a la actividad)
EA
E
y
d y
j
j
j j

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
Cmputo de la rapidez de variacin del error al cambiar la entrada total que recibe cada
unidad de salida.
69
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
REDES NEURONALES ARTIFCIALES I

j
j j
j
j
j j j j j j j
E
x
E
y
y
x
EA y y y y d y ( ) ( )( ) 1 1
Es igual a la tasa de variacin del error al variar su activacin multiplicado por la tasa de variacin
de la activacin al cambiar su entrada ( que es justamente la derivada de la funcin sigmoidal )
Cmputo de la rapidez de variacin del error al ser modificado un peso de la conexin
aferente a una unidad de salida.
EP
E
w
E
x
x
w
y
ij
ij j
j
ij
j i


Es igual a la tasa de variacin del error al variar su entrada, por la tasa de variacin de la entrada al
variar ese peso.
Hasta ahora sabemos calcular el EA slo para las unidades de salida, qu pasa con las unidades
ocultas?. En este caso no tenemos una estimacin directa del error aportado por cada unidad oculta;
aqu es donde interviene la retropropagacin o propagacin hacia atrs del error:
Figura 3.8. Ilustra la propagacin hacia atrs del error.
La unidad i-sima de la capa oculta afecta a todas las unidades de salida, por lo tanto, para estimar
como vara 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
variacin del error, ser igual a la tasa de variacin del error de la unidad de salida al cambiar su
entrada total, multiplicado por la tasa de variacin de su entrada al variar la actividad de la unidad
oculta.
EA
E
y
E
x
x
y
w
i
i j
j
i j
m
j ij
j
m


( ) ( )
1 1
70
Y i
Y 1
C A P A O C U L T A
Y2
Ym
i = 1 . . n
Y n
Y 1
Wi,1
Wi,2
Wi,m
CAPA DE SALIDA
j =1..m
Wh,i
REDES NEURONALES ARTIFCIALES I
Conociendo EA para las unidades de cualquier capa podemos calcular y EP con las
expresiones ya conocidas.

i i i i i i j ij
j
m
EA y y y y w

( ) ( ) ( ) 1 1
1
EP y
hi i h

Disponiendo de la tasa de variacin del error respecto al peso de una conexin (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 proporcin directa de la tasa de variacin del error.
w y
ij j i

siendo el coeficiente de aprendizaje, tpicamente con valores
comprendidos entre 0.01 y 1.0
w t w t w
ij ij ij
( ) ( ) + + 1
El algoritmo de retropropagacin presenta ciertos problemas, algunos referentes a su dudosa
plausibilidad neurofisiolgica, 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 tecnologas, sin
embargo, el tiempo de cmputo aumenta mucho al aumentar el tamao de la red. Si bien el
volumen de clculo es proporcional al nmero total de conexiones. En la prctica, al
aumentar el tamao de la red, hacen falta ms 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 catastrfica o empeoramiento en el rendimiento del sistema, como
consecuencia de la incorporacin de nuevos ejemplos de aprendizaje.
La parlisis: esto sucede cuando los pesos quedan ajustados a valores muy grandes, esto hace
operar a las unidades de proceso con una activacin muy prxima 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 pequeos y usar la tasa de aprendizaje, tambin pequea, 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 fcil pasarse de incremento y tener que
tratar de compensarlo en el siguiente ciclo, de manera que se produciran oscilaciones
continuas. Esto se soluciona usando un coeficiente pequeo, o, para no tener un aprendizaje
71
REDES NEURONALES ARTIFCIALES I
muy lento, modificar dicho coeficiente adaptativamente (aumentarlo si el error global
disminuye, y disminuirlo en caso contrario).
El problema de los mnimos locales. El algoritmo de retropropagacin usa un tcnica por
gradiente descendiente, esto significa que sigue la superficie del error siempre hacia abajo,
hasta alcanzar un mnimo local, pero no garantiza que se alcance una solucin globalmente
ptima. Sin embargo, se ha comprobado que el hecho de alcanzar mnimos locales no impide
que se consigan resultados satisfactorios. Por otro lado, se han desarrollado mtodos para
solventar este problema, como el modo de operacin asncrono o probabilstica y el uso de
mtodos estadsticos, como el equilibrio termodinmico simulado (ver siguiente apartado).
Distribucin de Pesos
pesos
Funcin objetivo (error)
Figura 3.9. Problema de los mnimos locales
Podemos considerar el error como una superficie llena de desniveles, si soltamos una pelota
caer en algn valle, pero no necesariamente en el ms hondo, sino en el ms cercano (un
mnimo local). Una idea intuitiva para solucionar esto, sera aplicarle cierta energa a esa
superficie agitndola o hacindola vibrar, esto hara saltar a la pelota de valle en valle, como
de los valles ms profundos es ms difcil salir, tendera a estar en valles cada vez ms
profundos. Si dejamos de agitar esa superficie poco a poco, al final tendremos la pelota en el
valle ms profundo de la superficie.
Otras tcnicas que pueden ayudar a no caer en mnimos locales consisten en aadir cierto
nivel de ruido a las modificaciones de los pesos de las conexiones. Otra medida propuesta es
aadir ruido a las conexiones, pero esto es ms til para darle robustez y aumentar la
capacidad de generalizacin de la red. Estas medidas, por contra, aumentan el tiempo de
aprendizaje.
Aplicaciones
Ejercicio y simulaciones en Matlab
Ejemplo de una funcin de aproximacin (fap2D.m)
En este ejemplo de MATLAB aproximamos dos funciones de dos variables,
Usando un perceptron de dos capas,
72
y = f(x) , or y
1
= f
1
( x
1
, x
2
) , y
2
= f
2
( x
1
, x
2
)
y = ( W
y
( W
h
x) )
REDES NEURONALES ARTIFCIALES I
Los pesos del perceptron, W
h
, W
y
, son entrenados usando el algoritmo bsico de back-
propagation.
Empezaremos con la especificacin de la red neuronal (fap2Di.m):
p = 3 ; % Nmero de entradas (2) mas la entrada de el bias
L = 12; % Nmero de seales ocultas (con bias)
m = 2 ; % Nmero de salidas
La estructura de la red es la siguiente:
Figura 3.10. Estructura de la red
Dos seales sern aproximadas por un perceptron de dos capas:
El dominio de la funcin es un cuadrado x
1
, x
2
[-2, 2).
Se tomaran muestras de las funciones para el entrenamiento y se colocaran en una regilla de
16 16. El cdigo para formar las matrices de muestras X y D es el siguiente:
na = 16; N = na^2; nn = 0:na-1; % Nmero de casos de entrenamiento
Especificacin 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); % especificacin de los vrtices de la
matriz X1 y X2 son na por na
R=(X1.^2+X2.^2+1e-5); % R (rho) es una matriz cuadrtica de
distancias de los vrtices de la matriz al punto original.
D1 = X1.*exp(-R); D = (D1(:))'; % D1 es na por na, D es 1 por N
D2 = 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:
73
y
1
= x
1
e
-

, y
2
=
sin2
4
, donde = x
1
2
+ x
2
2

REDES NEURONALES ARTIFCIALES I
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
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 funcin 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 W
h
es L p
74
REDES NEURONALES ARTIFCIALES I
Wy = randn(m,L)/L; La matriz de pesos de la capa de salida W
y
es m
L
C = 200; % mximo numero de pocas de entrenamiento
J = zeros(m,C); % Inicializacin de la funcin de error
eta = [0.003 0.1]; % Ganancia de entrenamiento
El ciclo principal (fap2D.m):
for c = 1:C
El paso hacia adelante:
H = ones(L-1,N)./(1+exp(-Wh*X)); % Seales ocultas (L-1 x N)
Hp = H.*(1-H); % Derivadas de las seales ocultas
H = [H ; ones(1,N)]; % bias
Y = tanh(Wy*H); % seales de salida (m x N)
Yp = 1 - Y.^2; % Derivadas de las seales de salida
La retroalimentacin:
Ey = D - Y; % Los errores de salida (m x K)
JJ = (sum((Ey.*Ey)'))'; % El error total despus de una poca
% de aproximacin m x 1
delY = Ey.*Yp; % Seal de salida delta (m x K)
dWy = delY*H'; % Actualizacin de la matriz de salida
% dWy es L x m
Eh = Wy(:,1:L-1)'*delY % La propagacin hacia la capa oculta del
error
% Eh es L-1 x N
delH = Eh.*Hp ; % Seal oculta delta (L-1 x N)
dWh = delH*X'; % Actualizacin de la matriz oculta
% dWh es L-1 x p
La actualizacin de los pesos:
Wy = Wy+etay*dWy; Wh = Wh+etah*dWh;
Las dos funciones de aproximacin son graficadas despus de cada poca. Ver la figura 3.12
de la aproximacin final.
75
REDES NEURONALES ARTIFCIALES I
Figura 3.12: Funciones al final de la aproximacin
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 cuadrtico al final de cada poca de entrenamiento es guardado en una
matriz de 2 C y mostrado en la figura 3.13.
76
REDES NEURONALES ARTIFCIALES I
Figura 3.13: Error de entrenamiento por cada funcin al final de cada poca
3.4.0 Variantes del algoritmo de retropropagacin
El algoritmo de retropropagacon fue el mayor avance en el campo de la investigacin de las
redes neuronales. Sin embargo el algoritmo resulta demasiado lento para aplicaciones
practicas.
Cuando se aplica el algoritmo bsico de retropropagacin a problemas prcticos el tiempo de
entrenamiento puede llevar das e incluso semanas de computo. Por lo que se a investigado en la
bsqueda de mtodos para acelerar el algoritmo de convergencia.
La investigacin de algoritmos ms veloces se clasifica en dos categoras:
1. Tcnicas Heursticas
Momento
Razn de aprendizaje variable
2. Tcnicas de optimizacin numrica
Algoritmo de gradiente conjugado
Algoritmo de Levenberg-Marquardt
77
REDES NEURONALES ARTIFCIALES I
3.4.1 TCNICAS HEURSTICAS
El mtodo del momento
Este mtodo 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 1
Al 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 mtodo del momento tiene las siguientes ecuaciones para actualizar los
parmetros de las redes neuronales:
Figura 3.14. Muestra la trayectoria del algoritmo de momento
Ventajas del mtodo del momento.
78
W
m
k ( ) W
m
k 1 ( ) 1 ( ) s
m
a
m 1
( )
T
=
W
m
k ( ) W
m
k 1 ( ) 1 ( ) s
m
a
m 1
( )
T
=
-5 0 5 10 15
-5
0
5
10
15
REDES NEURONALES ARTIFCIALES I
Al usar el mtodo 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 direccin constante. Este mtodo tiende a
hacer la trayectoria continua en la misma direccin.
A continuacin se muestra un ejemplo del algoritmo del momento.
Figura 3.15. Ejemplo del algoritmo del momento
79
0 50 100 150 200
0
0.5
1
1.5
2
w k ( ) 1
2k
16
---------
,
_
sin + =
0.98 =
REDES NEURONALES ARTIFCIALES I
Figura 3.16. Muestra el algoritmo del momento
Algoritmo de retropropagacin con Razn de Aprendizaje Variable
Este algoritmo incrementa la velocidad de convergencia incrementando la velocidad de
aprendizaje en superficies planas y disminuyndola, cuando la pendiente aumenta.
Reglas del algoritmo de aprendizaje variable
1.- Si el error cuadrtico se incrementa mayor a un porcentaje establecido (1% a 5%) despus
de haber actualizado W; entonces se descarta la actualizacin;
a se multiplica por 0 < r < 1
g se ajusta a cero (si se utiliza el momento).
2.- Si el error cuadrtico disminuye despus de haber actualizado W, entonces la
actualizacin es aceptada.
a es multiplicada por un factor h >1.
Si g haba sido ajusta a cero, este regresa a su valor original.
3.- Si el error cuadrtico se incrementa en un valor menor a z , entonces la actualizacin de
W se acepta pero a no cambia.
Si g haba sido ajusta a cero, este regresa a su valor original.
Valores tpicos: h = 1.05 r= 0.7 z=4%
80
0.9 =
0 50 100 150 200
0
0.5
1
1.5
2
REDES NEURONALES ARTIFCIALES I
La razn de aprendizaje y el tamao del paso tienden a incrementarse cuando la
trayectoria esta viajando en lnea recta con una disminucin del error constante.
Cuando la trayectoria llega a un valle angosto la razn de aprendizaje es disminuido
rpidamente. De otra forma la trayectoria se hara oscilatoria y el error se
incrementara dramticamente.
Ejemplo:
Figura 3.17. Muestra el algoritmo de razn de aprendizaje variable
3.4.2 TCNICAS DE OPTIMIZACION NUMRICA
81
-5 0 5 10 15
-5
0
5
10
15
10
0
10
2
10
4
0
0.5
1
1.5
Iteration Number
10
0
10
2
10
4
0
20
40
60
Iteration Number
w
2
1,1
1.05 = 0.7 = 4% =
REDES NEURONALES ARTIFCIALES I
Algoritmo de Gradiente Conjugado(CGBP)
CGBP converge a un mnimo de una funcin cuadrtica en un numero finito de iteraciones.
El procedimiento general para localizar un mnimo de una funcin en una direccin requiere:
1. Localizar el intervalo donde se encuentra
2. Reducir el intervalo
Algoritmo
1.- La primera direccin en buscar es un paso descendente
2.- Tomar el paso y escoger la razn de aprendizaje para minimizar el error en esa direccin
3.- Seleccionar la siguiente direccin de acuerdo con:
donde
Localizacin del intervalo
Se evala el ndice de desempeo de un punto inicial F(x
o
). Se evala la funcin en un
segundo punto, el cual tiene una distancia d del punto inicial, a lo largo de la direccin de
bsqueda P
o
. Se continua evaluando sucesivamente el ndice de desempeo de los nuevos
puntos, duplicando la distancia entre estos.
Figura 3.18. Localizacin del intervalo
82
p
0
g
0
=
g
k
F x ( )
x x
k
=

x
k 1 +
x
k

k
p
k
+ =
p
k
g
k

k
p
k 1
+ =

k
g
k 1
T
g
k
g
k 1
T
p
k 1
----------------------------- =
k
g
k
T
g
k
g
k 1
T
g
k 1
------------------------- =

k
g
k 1
T
g
k
g
k 1
T
g
k 1
------------------------- =
REDES NEURONALES ARTIFCIALES I
Reduccin del intervalo
Esto involucra la evaluacin de la funcin en puntos dentro del intervalo.
Figura 3.19. (a) Intervalo sin reducir. (b) Reduccin 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 cuadrticos en todas las entradas. Calcular la matriz
Jacobiana. Despus de inicializar, calcule la sensibilidades con el algoritmo de
retropropagacin. 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 cuadrtico con los nuevos pesos.
Si esta nueva suma de cuadrados es mas pequea, que el calculado en el paso 1,
entonces divida m
k
en u, actualice los pesos y regrese al paso 1.
Si la suma de los cuadrados no es reducida, entonces multiplique m
k
por u y regrese
al paso 3.
83
REDES NEURONALES ARTIFCIALES I
Figura 3.20. Ejemplo de la trayectoria del algoritmo
El LMBP es el algoritmo mas rpido que se ha probado para entrenar redes neuronales
multicapa de tamao moderado.
Su principal inconveniente es los requerimientos de memoria; si la red tiene mas de unos
cuantos cientos de paramentos el algoritmo se vuelve imprctico.
3.4.4 Ejemplo y Simulacin en Matlap
Creacin de una red neuronal (newff)
El primer paso del entrenamiento de una red neuronal es crear la red. La funcin newff crea
una red con conexin hacia adelante. Esta funcin requiere de cuatro parmetros y regresa un
objeto del tipo red:
1. La primera entrada es una matriz de (p-1)2 X
R
de mnimos y mximos valores por
cada uno de los elementos (p-1) de el vector de entrada.
2. La segunda entrada es un arreglo con el tamao 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.
84
-5 0 5 10 15
-5
0
5
10
15
REDES NEURONALES ARTIFCIALES I
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 funcin de transferencia en la primera capa ser la tansig, y la funcin de transferencia en
la capa de salida ser lineal. Los valores para el primer elemento del vector de entrada estarn
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 X
R
es de la forma siguiente:
XR = [-1 2; 0 5];
Y la funcin de entrenamiento ser traingd (la cual describiremos ms adelante).
net=newff(XR,[L-1,m],'tansig','purelin','traingd');
Este comando crea un objeto del tipo red y tambin 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.
Inicializacin de pesos (init, initnw, rands)
Si necesitas re- inicializar, o cambiar la inicializacin por default de los pesos, utiliza el
comando init:
net=init(net);
Esta funcin toma como entrada un objeto de tipo red y regresa un objeto de tipo red con los
pesos y bias inicializados. Esta funcin 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 funcin 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);
Simulacin (sim)
La funcin sim simula una red neuronal. La funcin sim toma la entrada de la red X, y el
objeto red net, y regresa la salida de la red Y.
85
REDES NEURONALES ARTIFCIALES I
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 funcin adapt es usada para entrenar redes en el modo de crecimiento (pattern). Esta
funcin 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 funcin train. En el modo batch los pesos y bias de la red son
actualizados solo despus 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-Ribire 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
Ejemplo
86
REDES NEURONALES ARTIFCIALES I
En este ejemplo usaremos el algoritmo de Levenberg-Marquardt para aproximar dos
funciones de dos variables.
% Generacin de los puntos de entrenamiento
na = 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 reset
surfc([X1-2 X1+2], [X2 X2], [D1 D2]),
title('Two 2-D target functions'), grid, drawnow
% especificaciones de la red
p = 2 ; % Numero de entradas
L = 12; % Numero de neuronas ocultas
m = 2 ; % Numero de salidas
xmnmx = [-2 2; -2 2] ;
net = newff(xmnmx, [L, m]) ;
figure(2)
net = train(net, X, D) ; % Entrenamiento
Y = sim(net , X) ; % Verificacin
D1(:)=Y(1,:)'; D2(:)=Y(2,:)';
% Graficacin de las funciones aproximadas
figure(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 funcin de base radial (RBFN) han sido tradicionalmente asociados con
funciones radiales en una red de capa simple.
Los modelos de redes tratados anteriormente estn basados en unidades (neuronas)
que producen a la salida una funcin lineal del producto escalar del vector de entrada
y el vector de pesos.
a= F( WP +b)
87
REDES NEURONALES ARTIFCIALES I
En las RBFN consideraremos una clase dentro de los modelos de las redes neuronales, en el
cual la activacin 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 retropropagacin
estndar, pero ellas pueden ser diseadas a menudo en una fraccin del tiempo que toma
entrenar una red de retropropagacin estndar. Estas redes tienen un mejor desempeo
cuando el conjunto de vectores de entrenamiento es amplio.
Para este tipo de redes se crearon procedimientos para entrenamiento de redes de funcin de
base radial, los cuales son mucho ms rpidos que los mtodos usados para entrenar un
perceptrn multicapa.
3.5.1 Caractersticas
Modelo Neuronal
La 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 funcin de transferencia, para una funcin de base radial es radbas. Se puede observar
que la expresin para la entrada de red a una neurona con funcin tipo radbas no es igual a
las vistas anteriormente. Una neurona con funcin 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 grficas de la funcin de transferencia de base radial.
88
REDES NEURONALES ARTIFCIALES I
Figura 3.22. Funcin de transferencia de una funcin de base radial.
La grfica de la figura 3.22 muestra una funcin de base radial la cual tiene un mximo de
uno cuando la entrad es un cero. Esta funcin 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 funcin de base radial acta como un detector, cuya salida es
uno cuando la entrada P es idntica 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 enviara 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 lneas de cdigo contenidas debajo de cada capa de la figura 3.23 estn contenidas en la
funcin 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.
89
[ ] ( ) 2 , 2 , 1 , 1 , 2 , 1 b W b W p simurb a a
( ) 2 , 2 , 1 , 1 , 2 b W b W p simurb a
REDES NEURONALES ARTIFCIALES I
Se puede comprender como esta red se comporta al seguir un vector de entrada P, a travs 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 prximo 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, tendrn salidas cercanas a cero. Estas salidas de valor pequeo
tendrn efectos mnimos en las salidas lineales de las neuronas.
En contraste cualquier neurona de base radial redbas cuyo vector de peso es muy prximo 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, activara las neuronas de los pesos de salida. Esto
seria un caso extremo. Tpicamente varias neuronas se activan siempre, con variacin de
grados.
3.5.3 Algoritmo de aprendizaje
Las redes de base radial pueden ser diseadas con la funcin solverbe, la cual disea
actualmente una red con cero error en los vectores de entrenamiento.
La funcin solverbe toma matrices de los vectores de entrada P, y vectores de salida T, y una
constan de extensin (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 funcin 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 existirn 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 ms
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.
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 diseara 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 funcin solvelin para calcular los
pesos W2 y el umbral b2, los cuales minimizan la suma del error cuadrtico.
90
[ ] ( ) sc T P solverb b W b W , , 2 , 2 , 1 , 1
REDES NEURONALES ARTIFCIALES I
De esta forma, la funcin solverbe crea una red con cero error en los vectores de
entrenamiento. La nica condicin 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 funcin de red ms suave y resulte
en una mejor generalizacin para nuevos vectores de entrada ocurriendo entre los vectores de
entrada usados en el diseo. (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 funcin solverbe es que produce una red con tantas neuronas
en la capa oculta como existan vectores de entrada. Por esta razn solverbe no regresa una
solucin aceptable cuando se necesitan muchos vectores de entrada para definir a la red
neuronal, como normalmente sucede.
Algoritmos de Redes de Base Radial ms Eficientes
La funcin 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 mximo de neuronas.
La funcin solverb toma matrices de los vectores de entrada y destino y parmetros de diseo
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 diseo dr.
Los parmetros de diseo indican que tan a menudo se mostraran los resultados, el numero
mximo de neuronas en la capa de base radial, la meta del error cuadrtico medio, y la
extensin de las neuronas de base radial. Algunos o todos los parmetros pueden ser pasados
a solverb; los parmetros omitidos sern remplazados por valores por omisin.
El mtodo de diseo de solverb es similar al de solverbe. La diferencia es que solverb crea
neuronas una a la vez. Para cada iteracin del vector de entrada el cual produzca una
disminucin mxima 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 funcin solverb. De
otra forma la siguiente neurona es agregada. Este proceso se repite hasta alcanzar la meta de
error o el mximo numero de neuronas.
Al igual que la funcin solverbe, es importante que el parmetro de extensin 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.
91
[ ]
[ ] ( ) dp T P solverb dr nr b W b W
spread goal err neuron max freq disp dp
, , , , 2 , 2 , 1 , 1
; _ _ _

REDES NEURONALES ARTIFCIALES I


Las redes de base radial aun cuando se diseen eficientemente por la funcin solverb, tienden
a tener la mayora de las veces mas neuronas que una red de retropropagacin con neuronas
con funciones sigmoidales en la capa oculta.
Esto se debe a que las neuronas sigmoidales pueden tener salidas sobre una regin grande del
espacio de entrada, mientras que las neuronas de base radial solo responden a regiones
relativamente pequeas del espacio de entrada. Esto es que entre ms grande es el espacio de
entrada (en trminos del numero de entradas e intervalos en los que las entradas varan)
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
podras ser empleadas en cualquier tipo de modelo (lineal o no lineal) y en cualquier
red (una capa o multicapa). De cualquier forma, desde el artculo 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.
Aplicaciones
92
REDES NEURONALES ARTIFCIALES I
Ejercicios
Una red RBF es no lineal si las funciones base pueden mover o cambiar de tamao o si hay
ms de una capa oculta.
Las redes de base radial pueden requerir ms neuronas que las redes estndar de
retropropagacin hacia delante, pero estas pueden ser diseadas en una fraccin de tiempo
que toma entrenar a las redes hacia delante. Este tipo de redes trabajan mejor cuando muchos
vectores de entrenamiento estn disponibles.
Las redes de base radial constituyen la base para una transformacin no lineal para un vector
de entrada dado. Las funciones radiales estn caracterizadas por el hecho de que su respuesta
decrece (o incrementa) montonamente con la distancia de un punto central. Una funcin
radial tpica es la funcin Gaussiana que, en el caso de una seal de entrada escalar, est dada
por

,
_


2
2
) (
exp ) (

c y
y h
Los parmetros de esta funcin son el centro c y el radio, denotado por . Para el caso
general de una seal de entrada M-dimensional (vector) la funcin radial cambia a:

,
_


2
2
exp ) (

c y
y h
donde y y c son vectores de tamao M.
La figura 3.24a. ilustra una RBF Gaussiana con una seal de entrada escalar y, centro c=0 y
un radio =1. Uno puede fcilmente ver que el mencionado punto central c es simplemente el
mximo de la funcin y que decrementa montonamente es obvio. El decrecimiento radial
caracterstico de las RBF dado en la ecuacin 1 puede ser observada al expandirse la seal de
entrada en un vector de entrada de 2 dimensiones. La figura 2b muestra una grfica de la
funcin Gaussiana en 3 dimensiones con un vector de entrada de dos dimensiones
T
y y y ]
2
;
1
[
. El centro c es un vector de la misma dimensin que la seal de entrada y y
establecido en
T
c ] 0 ; 0 [
, el radio igual a uno: =1 . La lnea circular del contorno en la
figura 3.24b ilustra que la respuesta de h(y) decrementa montonamente incrementando la
distancia de su mximo a
T
y ] 0 ; 0 [
.
93
REDES NEURONALES ARTIFCIALES I
Figura 3.24: Funcin Radial si a)Seal de entrada escalar. b) Vector de entrada 2-dimensional.
Simulaciones en Matlab
94
REDES NEURONALES ARTIFCIALES I
CAPTULO IV
DISEO DE ARQUITECTURAS DE REDES FEEDFORWARD
Ciertos problemas se resuelven de una manera ms fcil utilizando arquitecturas de redes
particulares. Para redes feedforward multicapa, el nmero de neuronas ocultas puede hacer la
diferencia entre xito y fracaso. Mientras no existan frmulas estrictas conocidas hasta este
momento, este captulo trata brevemente algunas reglas empricas para la seleccin de un modelo
apropiado de red y la definicin de caractersticas especficas de dicho modelo.
En este captulo se trata el difcil problema de decisin 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 ms apropiado. Dado lo anterior, se debe disear la red. Mientras no
existan reglas estrictas y rpidas para la definicin de los parmetros 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 continuacin se examinan los puntos anteriores.
Cuntas capas ocultas?
Ya se ha visto que no hay ninguna razn hasta el momento para usar ms de dos capas
ocultas. Tambin se ha visto que para la mayora de los problemas prcticos, no hay una
razn para usar ms 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 cmo los
requerimientos tericos se relacionan con los requerimientos prcticos. Hay problemas para
los cuales el aprendizaje se beneficia teniendo ms del mnimo nmero de capas ocultas
tericamente requerido?
Por experiencia se sabe que usar ms de una capa oculta casi nunca es benfico. El problema
es que el entrenamiento es dramticamente ms lento cuando se usan ms capas ocultas. Esto
se debe a dos efectos:
1) La capa adicional a travs de la cual los errores deben ser retropropagados hace que el
gradiente sea ms inestable. El xito de cualquier algoritmo de optimizacin por
gradiente depende del grado en el cual el gradiente permanece sin ser modificado
mientras los parmetros (pesos en el caso de una red) cambian.
2) El nmero de mnimos falsos se incrementa usualmente de una manera dramtica.
Esto significa que hay una probabilidad mayor de que, despus de muchas iteraciones
que consumen tiempo, se quede estancado en un mnimo local, sin ms remedio de
abortar la operacin o reiniciar.
95
REDES NEURONALES ARTIFCIALES 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 prctico. El caso es que la experiencia ha mostrado que casi
ninguna solucin a un problema se haya visto beneficiada con tener ms de dos capas ocultas.
Se ha puntualizado que la nica vez en que una red de dos capas ocultas ha sido requerida en
la prctica se da cuando la red tiene que aprender una funcin con discontinuidad. La
funcin 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 funcin.
Los resultados se muestran en la siguiente tabla:
Neuronas
ocultas
Error de
entrenamiento
Error de
prueba
Error
RMS
1 4.313 4.330 0.2081
2 2.714 2.739 0.1655
3 2.136 2.148 0.1465
4 0.471 0.485 0.0697
5 0.328 0.349 0.0590
10 0.319 0.447 0.0668
3,7 0.398 0.414 0.0643
5,5 0.161 0.200 0.0447
7,3 0.113 0.163 0.0403
La primera columna es el nmero 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 cuadrtico medio del conjunto de entrenamiento. Un conjunto de
prueba fue construido usando 1,002 puntos, un valor escogido para evitar la replicacin 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 raz
cuadrada del error cuadrtico medio del conjunto de prueba. Como tal, puede ser considerado
un tipo de error promedio.
Lo primero que se nota es que para las redes de tres capas se necesita un nmero mgico de
neuronas ocultas. La ejecucin da un salto al cambiar de tres a cuatro neuronas. No es
96
REDES NEURONALES ARTIFCIALES I
inusual cuado se tratan datos de entrenamiento con caractersticas muy fuertes. Las redes que
son ms pequeas simplemente no tienen la capacidad terica que se necesita para separar el
espacio del problema. Lo ms importante es observar que parece ser un piso que no puede ser
traspasado aadiendo ms neuronas. De hecho, el error del grupo de prueba empieza a
incrementar cuando se aaden ms neuronas ocultas.
En resumen, se recomienda demasiado que usar una sola capa oculta sea la primera opcin a
considerar para un diseo prctico de redes feedforward. Si la utilizacin de muchas neuronas
ocultas no resuelve el problema de manera satisfactoria, valdr la pena probar utilizando una
segunda capa oculta y reducir el nmero de neuronas ocultas si es posible.
Cuntas neuronas ocultas?
La eleccin de un apropiado nmero 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 perodo razonable de tiempo. Adems, un nmero excesivo de neuronas ocultas
puede causar un problema de sobreajuste. La red tendr una gran capacidad de
procesamiento de informacin que aprender aspectos insignificantes del conjunto de
entrenamiento, aspectos que son irrelevantes en una poblacin 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 poblacin en general, lo har de una manera deficiente. Esto se
debe a que considerar caractersticas triviales que son nicas en el conjunto de
entrenamiento, as como las caractersticas generales relevantes, y se confundir. As, es
forzoso que se use el mnimo nmero de neuronas ocultas con las que la red tenga un
rendimiento adecuado.
Un paradigma somero para la eleccin del nmero de neuronas ocultas en muchos problemas
es la regla de la pirmide geomtrica. Establece que, para muchas redes prcticas, el nmero
de neuronas sigue una forma piramidal, con el nmero decreciendo de la capa de entrada a la
capa de salida. Obviamente esto no se cumple para redes autoasociativas, que tienen el
mismo nmero de entradas y salidas. Pero muchas otras redes siguen este patrn. Esto se
muestra en la figura 4.2.
97
REDES NEURONALES ARTIFCIALES I
Figura 4.2. Una red de 3 capas tpica.
El nmero de neuronas en cada capa sigue una progresin geomtrica. 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 clculo del nmero de neuronas ocultas se hace ligeramente ms
complejo:
r =
3
m
n
...................4.1
NHID
1
= mr
2
NHID
2
= mr
Las frmulas anteriores son slo aproximaciones al tamao ideal de la capa oculta. Si hay
muy pocas neuronas de entrada y de salida y el problema es complejo, dichas frmulas
subestimarn el nmero requerido. Por ejemplo, la aproximacin de una funcin complicada
de una variable involucra slo una neurona de entrada y una de salida, pero requiere una
docena o ms 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 tpica.
No se deben tratar ests frmulas como estrictas o rigurosas. Son muy utilizadas puesto que
un gran nmero de problemas prcticos 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 aproximacin para encontrar el nmero ptimo de neuronas ocultas es el consumo
de tiempo, pero se debe seguir siempre para las tareas importantes. Comenzar con un nmero
de neuronas que sea definitivamente muy pequeo. Si el tener xito con una buena suposicin
de muy pequeo es imposible, comincese 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. Despus incrementar levemente el nmero de neuronas, y
98
REDES NEURONALES ARTIFCIALES I
entrenar y probar de nuevo. Reptase hasta que el error no sea aceptablemente pequeo o
hasta el punto en que ya no haya mejora. Es fuerza bruta y demasiado lento, pero funciona.
Si los conjuntos de validacin son obtenidos fcilmente, se querr posiblemente tratar de
agregar neuronas ms all del punto de resultados aceptables, contando con el procedimiento
de validacin para prevenir el sobreajuste. De otra manera se debe estar contento con utilizar
el nmero mnimo de neuronas ocultas necesario para conseguir un funcionamiento
aceptable. El incremento del nmero ms all del mnimo causa frecuentemente un deterioro
en la habilidad de la red para generalizar. Ms adelante se da una descripcin ms 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, supngase que se ha
entrenado una red con cinco neuronas ocultas. Cuando se agrega una sexta neurona,
mantngase los mismos pesos para las primeras cinco. Inicialcense los pesos para la nueva
sexta neurona con nmeros aleatorios pequeos, y continese entrenando desde ah. La
racionalizacin es muy importante. Slo sese la nueva neurona para lo que an no se ha
aprendido. No se debe realizar esto a menos que se haya decidido inicializar totalmente de
manera aleatoria.
Cunto tiempo se debe entrenar?
Existe una concepcin errnea muy comn 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 ms all de dicho punto para mejorar el
funcionamiento en el conjunto de entrenamiento, pero degradando dicho funcionamiento en
la poblacin 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
diseados, el mito puede ser realidad.
A continuacin se examinar brevemente cmo el concepto de sobreentrenamiento tom
forma, porqu es usualmente (si no es que siempre) una nocin inapropiada y cmo se puede
detectar y evitar el problema comn que se malentiende como sobreentrenamiento.
Figura 4.4. Manifestacin de sobreentrenamiento.
99
Nmero de iteraciones
entrenamiento
Error
Datos de entrenamiento
Datos de prueba
REDES NEURONALES ARTIFCIALES I
La figura 4.4. es una grfica del error en una red neuronal para dos conjuntos diferentes de
datos en funcin del nmero 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 montonamente, aproximando una asntota. El otro conjunto de datos, llamado
conjunto de validacin, es tomado de la misma poblacin que el conjunto de entrenamiento,
pero no es usado para entrenar. Su error decrece al inicio del entrenamiento. Pero, para
sorpresa, si se contina con el entrenamiento ms all de cierto nmero de iteraciones, el
error empieza a incrementar. Partiendo del hecho que el conjunto de validacin es
representativo de la poblacin a la cual la red ser finalmente aplicada, la solucin 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 seccin anterior que usar muchas neuronas ocultas puede ocasionar un
sobreajuste. En vez de aprender slo los patrones generales necesarios para producir una
decisin 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 rpidamente, la calidad de la red alcanza
frecuentemente un pico mientras el entrenamiento progresa, despus 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 difcil de encontrar:
1) Tratando el sntoma, no la enfermedad. Reducir el nmero de neuronas ocultas al
punto en que la red no aprenda idiosincrasias, o incrementar el tamao 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 tena que aprender. Probablemente despus ya no. Y nunca se
estar seguro de eso.
El segundo punto merece un examen ms profundo. Cuando se usa un conjunto de
entrenamiento para representar una poblacin entera, se est confiando en que la red ser
capaz de interpolar entre muestras e de entrenamiento cuando haya muestras desconocidas
que no son idnticas a las que se utilizaron al entrenar. Esto implica una suave transicin
entre casos de entrenamiento vecinos. Dado que se empieza tpicamente el proceso de
entrenamiento con pesos aleatorios pequeos, las derivativas de las salidas con respecto a las
entradas sern pequeas, dirigindose a la suavidad deseada. Sin embargo, slo con usar
polinomiales de grado mayor en aproximacin de funciones permite mayor oscilacin debida
a derivativas mayores, el uso de ms neuronas ocultas tambin permite mayor oscilacin.
Cuando todos los recursos de las capas ocultas no se utilizan slo para asegurar un
funcionamiento adecuado, algunas neuronas pueden aprender a especializar. As como el
entrenamiento contina, sus pesos pueden llevarse a extremos en los cuales las neuronas slo
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 interpolacin suave se pierde. La
filosofa de detener el entrenamiento prematuramente es la prevencin de que los pesos
alcancen esos valores extremos.
100
REDES NEURONALES ARTIFCIALES I
Superficialmente, esto parece razonable. Es indiscutible el hecho de que, en cierto casos,
continuar con el entrenamiento degrada el desempeo en el conjunto de validacin y por lo
tanto degradar probablemente el desempeo en la poblacin 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
direccin. Puede ser que se tenga que pasar por una regin en la cual el conjunto de
validacin tenga un desempeo pobre, pero que mejorara si se continuase. Y ciertamente no
se tienen bases para exigir que se deje de entrenar cuando el conjunto de validacin ha
encontrado un tipo de optimalidad prctica. Eso es estafar. Es en efecto usar lo que se
supone es el juez final de calidad como un conjunto de entrenamiento sustituto. Se podra
haberlo unido tambin al conjunto de entrenamiento. Cualquier grado al cual el conjunto de
validacin no es representativo de la poblacin ser reflejado en la red entrenada si se basa la
decisin de paro en ese conjunto. El desempeo estimado ser excesivamente optimista.
La moraleja es que se debe utilizar el menor nmero posible de neuronas ocultas. Empezar
con el nmero mnimo y despus aadir tantas como sea necesario para asegurar el
desempeo adecuado en el conjunto de entrenamiento. Nunca se debe empezar con muchas
neuronas ocultas y despus ver cuntas se pueden desechar mientras se mantenga un buen
desempeo.
Tambin se debe tener especial cuidado en escoger un conjunto de entrenamiento que
represente lo mejor posible a la poblacin. Si no, el fenmeno visto en la figura 4.4 aparecer
casi siempre, independientemente del nmero de neuronas ocultas.
En resumen, un entrenamiento correcto se hace de la siguiente manera. Para cada nmero
experimental de neuronas ocultas, generar pesos iniciales aleatorios y entrenar hasta que la
mejora sea despreciable. Despus generar ms pesos iniciales y entrenar de nuevo. Y otra
vez. Y otra vez. Cuando un nmero moderado de estas repeticiones fracasa a mejorar el
desempeo, se puede estar seguro que la red se entren lo mejor que se pudo para el
conjunto de entrenamiento. Despus se debe probarla con un conjunto de validacin
independiente. Si, despus de todo el entrenamiento, su desempeo en el conjunto de
validacin es significativamente peor que con el conjunto de entrenamiento, o el conjunto de
entrenamiento es psimo (muy pequeo o no representativo de la poblacin), o hay muchas
neuronas ocultas. La red no fue sobreentrenada.
Siempre se debe recordar que el sobreajuste es el reflejo de un conjunto de entrenamiento no
representativo de la poblacin. No puede haber sobreajuste si el conjunto de entrenamiento
est formado por toda la poblacin. Naturalmente, esto es una imposibilidad prctica. Si
embargo, los conjuntos de entrenamiento minuciosos hacen que el sobreajuste sea menos
problemtico.
Tambin es necesario recordar que el sobrejuste se produce cuando el conjunto de
entrenamiento es pequeo en relacin con el nmero de neuronas ocultas. Se compensa la
escasez de datos de entrenamiento limitando el nmero de neuronas ocultas. El tamao del
conjunto de entrenamiento y el nmero de capas ocultas estn ntimamente ligados. Cuando
no estn balanceados en una direccin, la red no es capaz de aprender tan bien como debera.
101
REDES NEURONALES ARTIFCIALES I
Cuando no estn 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 fcilmente grandes cantidades de datos
conocidos, hay un procedimiento de entrenamiento efectivo a seguir. Una ventaja de este
procedimiento es que puede ser utilizado tambin para seleccionar el nmero ptimo de
neuronas ocultas. An se escogen un conjunto de entrenamiento inicial y un conjunto de
validacin independiente que sern 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 generalizacin de una red entrenada. Si el desempeo 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
informacin importante presente en el conjunto de prueba no estuvo presente en el conjunto
de entrenamiento. En ambos casos, la solucin es aadir el conjunto de prueba al conjunto de
entrenamiento, y volver a entrenar. Esto se hace explcito en el diagrama de flujo mostrado en
la figura 4.5.
102
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
S
No
S
REDES NEURONALES ARTIFCIALES I
Figura 4.5. Entrenamiento cuando los casos conocidos son pocos
Ntese que el algoritmo anterior depende de que el conjunto de prueba de entrenamiento sea
representativo de la poblacin 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 validacin final.
Aunque se puede evitar este paso, siempre se estar ms seguro si se realiza antes de
determinar a la red como definitiva.
Finalmente, obsrvese que el algoritmo anterior puede ser utilizado tambin para obtener el
mejor desempeo posible de la red. Supngase que se empieza con un considerable buen
estndar de desempeo, y se sigue el algoritmo hasta que se alcanza el nivel de desempeo.
No se valida la red. Se salva y despus se pide mejor desempeo. Obviamente,
inmediatamente se aadir una neurona oculta. Se tendr que aadir 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 suposicin fundamental de la calidad de los conjuntos
de prueba se alcanza, las acciones son legales. El objetivo de desempeo es limitado slo por
la capacidad de acumular nuevos datos y por los recursos computacionales. El nmero de
neuronas ocultas crecer tanto como sea necesario, y el sobreajuste ser prevenido mediante
los conjuntos de prueba.
103
REDES NEURONALES ARTIFCIALES I
CAPITULO V. Simuladores de Redes Neuronales Artificiales.
5.1 Matlab: Neural Network Toolbox.
5.1.1 Introduccin.
Los tcnicos profesionales por todo el mundo confan en MATLAB acelera su investigacin,
condensa el tiempo invertido en el anlisis y desarrollo, reduce costos del proyecto, y
produce soluciones eficaces. El ambiente de MATLAB fomenta la creatividad y le permite
probar y comparar rpidamente alternativas mltiples. Consecuentemente, usted produce
soluciones mejores
Los usuarios han encontrado que la combinacin de la interfaz de MATLAB, el lenguaje, y
las funciones incorporadas de las matemticas y de los grficos hace a MATLAB la
plataforma preferida para programar, comparado a C, al FORTRAN, y a otros lenguajes.
MATLAB incluye las herramientas para:
Adquisicin de datos
Anlisis y exploracin de datos
Procesamiento de imagen y visualizacin
Algoritmo de prototipo y desarrollo
El modelar y simulacin
Programacin y desarrollo
5.1.2 Caractersticas Generales.
MATLAB maneja una gama de tareas computacionales que se usan en la ingeniera y la
ciencia, de la adquisicin de datos y del anlisis, al desarrollo. El ambiente de MATLAB
integra procesador matemtico, la visualizacin, y un lenguaje tcnico de gran alcance. Las
interfaces incorporadas le permiten tener acceso rpidamente e importar datos a los
instrumentos, de los archivos, y de las bases de datos y de los programas externos. Adems,
MATLAB le deja integrar las rutinas externas escritas en C, C++, el FORTRAN, y Java con
sus usos de MATLAB.
Caractersticas Dominantes
104
REDES NEURONALES ARTIFCIALES I
El procesador numrico para los resultados rpidos y exactos
Grficos para visualizar y para analizar sus datos
Ambiente interactivo del lenguaje y de programacin
Herramientas para construir GUIs de encargo
Interfaces a las lenguajes externos, tales como C, C++, FORTRAN, y Java
Ayuda para los datos de importacin de archivos y de dispositivos externos y
para usar el archivo bajo I/O (ms el acceso a las bases de datos y al hardware
adicional va productos adicionados)
Conversin de los usos de MATLAB a C y a C++ con la habitacin del
recopilador
Este amplio sistema de capacidades hace de MATLAB una base de origen ideal para los
lquidos de revelado de los problemas tcnicos.
El ambiente de MATLAB se disea para el cmputo interactivo o automatizado. Usando las
funciones incorporadas de la matemticas y de los grficos y las herramientas fciles de
utilizar, usted puede analizar y visualizar sus datos en marcha. Las herramientas estructuradas
del lenguaje y la programacin 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 tcnico.
Integra el cmputo, la visualizacin, y la programacin en un ambiente fcil de utilizar donde
los problemas y las soluciones se expresan en la notacin matemtica familiar. Las
aplicaciones tpicas incluyen:
Matemticas y cmputo
Desarrollo de algoritmo
El modelar, simulacin, y el prototipo
Anlisis de datos, exploracin, y visualizacin
Grficos cientficos y de ingeniera
Desarrollo del uso, incluyendo el edificio grfico del interfaz utilizado
MATLAB es un sistema interactivo con un elemento de datos bsico, es un arsenal que no
requiere el dimensioning. Esto permite que usted solucione muchos problemas tcnicos,
especialmente sos con formulaciones de matriz y de vector, en una fraccin del tiempo que
tomara 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 fcil 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 cmputo de la matriz.
105
REDES NEURONALES ARTIFCIALES I
MATLAB se ha desarrollado durante aos con la entrada de muchos usuarios. En ambientes
de la universidad, es la herramienta educacional estndar para los cursos introductorios y
avanzados en matemticas, la ingeniera, y la ciencia. En industria, MATLAB es la
herramienta de la opcin para la investigacin, el desarrollo, y el anlisis de alta-
productividad.
MATLAB ofrece una familia de las soluciones de aplicacin especifica (application-specific)
llamadas las cajas de herramientas . Muy importante para la mayora de los usuarios de
MATLAB, las cajas de herramientas permite que usted aprenda y que aplique tecnologa
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 estn disponibles
incluyen el proceso de seal, sistemas de control, redes neuronales, lgica difusa, la
simulacin, 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 grficas. Incluye el tablero del escritorio de MATLAB y la ventana del comando,
una historia del comando, y los browsers para la visin, el espacio de trabajo, los archivos, y
el camino de bsqueda en un fichero.
La Biblioteca Matemtica De la Funcin de MATLAB. sta es una coleccin extensa de
algoritmos de cmputo que se extienden de funciones elementales como la suma, seno,
coseno, y la aritmtica compleja, a funciones ms sofisticadas como lo contrario de la matriz,
valores propios de la matriz, las funciones de Bessel, y transformada rpida 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 caractersticas
de programacin orientadas al objeto. Permite la creacin rpida de pequeos programas
desechables, y tambin crear programas completos de uso grande y complejo.
Manejador Graphics. ste es el sistema de los grficos de MATLAB. Incluye los
comandos de alto nivel para la visualizacin de los datos, el proceso de imagen, la animacin,
y los grficos de dos dimensiones y tridimensionales de la presentacin. Tambin incluye los
comandos bajos as como los cuales permita que usted modifique completamente el aspecto
para requisitos particulares de grficos para construir interfaces grficas 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 recprocamente con
MATLAB. Incluye las instalaciones para las rutinas que llaman de MATLAB (el ligamiento
dinmico), llamando a MATLAB como motor de cmputo, y para los archivos de lectura y
de escritura.
106
REDES NEURONALES ARTIFCIALES I
Descripcin de la caja de herramientas de redes neuronales (Neural Network Toolbox)
La caja de herramientas de redes neuronales extiende el ambiente de aplicacin de MATLAB
para proporcionar las herramientas para el diseo, la puesta en prctica, la visualizacin, y la
simulacin de redes neuronales. Las redes neuronales son herramientas nicamente de gran
alcance en usos donde estara difcil o imposible el anlisis formal, por ejemplo el
reconocimiento de patrones y la identificacin 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 grfica que permita que usted disee y que maneje
sus redes. El diseo modular, abierto, y extensible de la caja de herramientas simplifica la
creacin de funciones y de redes modificadas para requisitos particulares.
Caractersticas Dominantes
Interfaz grfica (GUI) para crear, entrenar, y simular a sus redes neuronales
La ayuda para usuario lo ms comnmente posible arquitecturas de red supervisada y
no supervisada.
Un sistema comprensivo de entrenamiento y de funciones de aprendizaje
Una habitacin de los bloques del Simulink, as como la documentacin y
demostraciones de los usos del sistema de control
La generacin automtica de Simulink modelado de los objetos de la red neuronal
Representacin modular de la red, permitiendo un nmero 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 generalizacin
Funciones de la visualizacin para el funcionamiento de la red neuronal
5.1.3. Construccin de redes neuronales.
Creacin de una red neuronal (newff)
El primer paso del entrenamiento de una red neuronal es crear la red. La funcin newff crea
una red con conexin hacia adelante. Esta funcin requiere de cuatro parmetros y regresa un
objeto del tipo red:
5. La primera entrada es una matriz de (p-1)2 X
R
de mnimos y mximos valores por
cada uno de los elementos (p-1) de el vector de entrada.
6. La segunda entrada es un arreglo con el tamao 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.
8. La ltima entrada contiene el nombre del algoritmo de entrenamiento que se va a
utilizar.
107
REDES NEURONALES ARTIFCIALES I
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 funcin de transferencia en la primera capa ser la tansig, y la funcin de transferencia en
la capa de salida ser lineal. Los valores para el primer elemento del vector de entrada estarn
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 X
R
es de la forma siguiente:
XR = [-1 2; 0 5];
Y la funcin de entrenamiento ser traingd (la cual describiremos ms adelante).
net=newff(XR,[L-1,m],'tansig','purelin','traingd');
Este comando crea un objeto del tipo red y tambin 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.
Inicializacin de pesos (init, initnw, rands)
Si necesitas re- inicializar, o cambiar la inicializacin por default de los pesos, utiliza el
comando init:
net=init(net);
Esta funcin toma como entrada un objeto de tipo red y regresa un objeto de tipo red con los
pesos y bias inicializados. Esta funcin 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 funcin 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. Simulacin de Redes Neuronales.
Simulacin (sim)
108
REDES NEURONALES ARTIFCIALES I
La funcin sim simula una red neuronal. La funcin 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 funcin adapt es usada para entrenar redes en el modo de crecimiento (pattern). Esta
funcin 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 funcin train. En el modo batch los pesos y bias de la red son
actualizados solo despus 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-Ribire 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
109
REDES NEURONALES ARTIFCIALES I
Lista de funciones
Versin 4,0,1
Funciones del anlisis
errsurf - superficie del error de la neurona de entrada
maxlinlr mxima tarifa del aprendizaje para una capa lineal
Funciones de inicializacin de la capa
initnw - funcin de la inicializacin de la capa de Nguyen-Widrow
initwb - funcin de inicializacin de los pesos y del bias.
Funciones de aprendizaje
learncon - funcin de aprendizaje diagonal de la conciencia
learngd - funcin de aprendizaje del gradiente descendente
learngdm - funcin de aprendizaje del gradiente con momentum
learnh - funcin del aprendizaje de Hebb
learnhd - Hebb con la funcin de aprendizaje descendente
learnis - funcin de aprendizaje del peso de Instar
learnk - funcin de aprendizaje Kohonen
learnlv1 - funcin de aprendizaje LVQ1
learnlv2 - funcin de aprendizaje LVQ2
learnos - funcin de aprendizaje de Outstar
learnp - funcin de aprendizaje del Perceptron
learnpn - funcin normalizada de aprendizaje del perceptron
learnsom - funcin de aprendizaje del mapa de auto-organizacin
learnwh - regla de aprendizaje de Widrow-Hoff
Funciones de la bsqueda de la lnea
srchbac - bsqueda de la vuelta hacia atrs
srchbre - interpolacin de la combinacin de la seccin de oro y cuadrtica de Brent
srchcha - interpolacin cbica de Charalambous
srchgol - bsqueda de la seccin oro
srchhyb - bsqueda del hbrido bisection/cubic
Creacin redes
red - crea una red neuronal
newc - crea una capa competitiva
newcf - crea una red conexin hacia adelante backpropagation
newelm - crea una red de Elman backpropagation
newff - crea una red feed-forward backpropagation
newfftd - crea un red feed-forward de entrada retrasada backpropagation
newgrnn - disea una red neuronal generalizada de regresin
newhop - crea una red recurrente de Hopfield
110
REDES NEURONALES ARTIFCIALES I
newlin - crea una capa lineal
newlind - disea una capa lineal
newlvq - crea una red de cuantizacin del vector de aprendizaje
newp - crea un perceptron
newpnn - disea una red probabilistica
newrb - disea una red de base radial
newrbe - disea una red de base radial exacta
newsom - crea un mapa de auto-organizacin
Funciones de inicializacin de la red
initlay - funcin de inicializacin de la red capa por capa
Funciones del error
mae - funcin absoluta del error
mse funcin cuadrtica media del error
msereg funcin de regularizacin de ajuste del error medio
sse funcin que ajusta la suma del error
Funciones para graficar
hintonw - grfico de Hinton de la matriz del peso
hintonwb - grfico de Hinton de la matriz del peso y del vector bias
plotbr grafica el funcionamiento de la red del diagrama para el entrenamiento bayesian de
la regularizacin
plotes - traza una superficie del error de una sola neurona de entrada
plotpc - traza la lnea en diagrama del vector de clasificacin del perceptron
plotpv diagrama de los vectores input/target del perceptron
plotep - traza una posicin del peso-bias respecto a una superficie de error
plotperf diagrama del funcionamiento de la red
plotsom diagrama del mapa de auto-organizacin
plotv diagrama de los vectores de origen como lneas
plotvec diagrama de los vectores con diversos colores
Funciones de entrenamiento
trainb - entrenamiento con regla de aprendizaje de la hornada del peso y del bias
trainbfg - backpropagation quasi-Newton de BFGS
trainbr - regularizacin bayesiana
trainc - funciones ascendentes de entrenamiento cclico
traincgb - backpropagation conyugal del gradiente de Powell-Beale
traincgf - backpropagation conyugal del gradiente de Fletcher-Powell
traincgp - backpropagation conyugal del gradiente de Polak-Ribiere
traingd - backpropagation de la pendiente del gradiente
traingdm - pendiente del gradiente con el backpropagation del mpetu
traingda - pendiente del gradiente con el backpropagation adaptativo del lr
traingdx - pendiente w/momentum y backpropagation adaptativo del gradiente del lr
trainlm - backpropagation de Levenberg-Marquardt
trainoss - backpropagation secante de un solo paso
trainr - funciones ascendentes del entrenamiento w/learning al azar
111
REDES NEURONALES ARTIFCIALES I
trainrp - backpropagation resistente (Rprop)
trains - funciones incrementales del entrenamiento w/learning secuencial
trainscg - backpropagation conyugal del gradiente descendente
Funciones de transferencia
compet - funcin de transferencia competitiva
hardlim - funcin de transferencia escalon
hardlims - funcin de transferencia de limite simtrica
logsig - funcin de transferencia sigmoidal
poslin - funcin de transferencia lineal positiva
purelin - funcin de transferencia lineal
radbas - funcin de transferencia de base radial
satlin - saturacin de la funcin de transferencia lineal
satlins - funcin de transferencia lineal de saturacin simtrica
softmax - funcin de transferencia mxima suave
tansig - funcin de transferencia sigmoidea de la tangente hiperblica
tribas - funcin de transferencia de base triangular
Simulacin redes
sim - simula una red neuronal
init - inicializa una red neuronal
adap - permite que una red neuronal se adapte
train - entrena a una red neuronal
disp - exhibe las caractersticas de una red neuronal
exhibit - exhibe el nombre y las caractersticas de una variable de la red neuronal
Funciones del peso
dist - funcin euclidiana de la distancia del peso
dotprod - funcin del producto de punto del peso
mandist - funcin de la distancia de Maniatan del peso
negdist - funcin del producto de punto del peso
normprod - funcin normalizada del producto de punto del peso
Funciones de inicializacin de los pesos y bias
initcon - funcin de inicializacin diagonal de la conciencia
initzero - funcin de inicializacin a cero de weight/bias
randnc - funcin de inicializacin normalizada de la columna del peso
randnr - funcin de inicializacin normalizada de la fila del peso
rands - funcin de inicializacin simtrica al azar de weight/bias
112
REDES NEURONALES ARTIFCIALES I
5.2. NeuroSolutions
5.2.1. Introduccin
NeuroSolutions est basado en una aproximacin al diseo 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
diseo de un circuito electrnico. Diversos componentes son
colocados en una tablilla de conexin y despus interconectados para
formar un circuito. Despus el circuito se prueba introduciendo
seales y monitoreando respuestas. Esta interfaz provee ms
flexibilidad que un simulador de tipo caja negra. NeuroSolutions
incluye una coleccin comprehensiva de muestras-ejemplo que
permiten al usuario/diseador 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. Caractersticas Generales.
La interfaz de usuario de NeuroSolutions organiza sus componentes en paletas. Cada paleta
de componentes contiene una familia de componentes que tienen una funcin similar. Por
ejemplo, todos los displays de salida o monitores estn contenidos en una sola paleta. Se
pueden encontrar todas las paletas en el men de paletas.
113
REDES NEURONALES ARTIFCIALES 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 acta como una barra de herramientas con un conjunto de iconos.
Las paletas pueden ser desplazadas y colocadas como cualquier barra de herramientas estndar de
Windows. La figura 1.2 muestra como ejemplo la paleta de la familia Axn.
1.2 Paleta de la familia Axn
Se pueden seleccionar los componentes de la paleta y colocarlos en la tablilla de conexin.
Colocacin de componentes

Si el puntero del ratn se coloca sobre la paleta y se esperan unos segundos, aparecer una
pequea 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 conexin, la estampa (componente) ser pegada en ese punto. A este proceso se le
denomina estampado de componentes.
Ayuda en lnea (on-line)
Una descripcin completa de cada componente est contenida en la ayuda en lnea. El medio
ms fcil 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. Slo basta con
hacer clic en l y despus trasladar el puntero del ratn hacia el componente deseado,
haciendo clic sobre el icono de ste.
Conexin de componentes
114
REDES NEURONALES ARTIFCIALES I
Ntese 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 diseado para un movimiento de izquierda a derecha en la tablilla de
conexin. 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 conexin est visualmente indicada por tres lneas dibujadas entre los
componentes.

Tambin se podr notar que mientras se arrastra el conector, la flecha que caracteriza el
puntero del ratn cambiar a un cursor de movimiento, queriendo decir que se puede colocar
el conector macho en cualquier posicin no ocupada de la tablilla. Si es colocado en una
posicin no vlida, el puntero se convierte en un crculo 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 botn izquierdo del ratn), y despus haciendo clic en el segundo
componente con el botn derecho del ratn, para despus seleccionar la opcin Conectar a
(Connect to) del men. Se establecern automticamente las tres lneas de conexin.
5.2.3. Construccin de Redes Neuronales.
Axones y Sinapsis
Se puede aplicar fcilmente la aproximacin tipo construyendo-bloques para construir
sistemas neuronales o adaptativos. Estas redes bsicamente estn constituidas por elementos
de procesamiento (PEs) atados juntos con conexiones con pesos. La familia Axn (la mayora
de la terminologa utilizada en NeuroSolutions est basada en la neurobiologa) implementa
los PEs en la red, y la familia Sinapsis implementa las conexiones con pesos.
Figura 1.3 Paleta de la familia Axn y algunos de sus componentes
115
REDES NEURONALES ARTIFCIALES I
La familia Axn tiene dos funciones. Los componentes suman todas sus entradas y despus
aplican una funcin de activacin a dicha suma. Los diferentes componentes en la familia
Axn aplican una funcin diferente a la suma de entradas. Cada una de las diferentes
imgenes en los iconos de dicha familia representa la funcin que ser aplicada. El axn de
tipo lineal (llamado simplemente Axn) simplemente pasa la suma de las entradas
directamente a la salida. El axn Bias suma la entrada y agrega un valor de umbral. Un slo
componente de la familia Axn puede representar cualquier nmero de PEs. Esto se muestra
en la figura 1.3.
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 conexin en una sinapsis que hace un escalamiento de los datos
que pasan a travs 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 ms utilizado de esta
familia es la Sinapsis Completa y conecta todos y cada uno de los PEs en el axn del otro
componente. Adems, la Sinapsis Completa contiene nm conexiones (y pesos) para n PEs de
entrada y m Pes de salida. La Sinapsis Arbitraria permite seleccionar cul de las nm conexiones
posibles unir un axn a otro.
5.2.4. Simulacin de Redes Neuronales.
Entrenamiento de una red
Esta seccin trata los componentes extra necesarios para entrenar un sistema adaptativo
utilizando gradiente descendente. Lo importante de esta seccin no es entender todos los
conceptos, sino la mecnica.

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.
116
REDES NEURONALES ARTIFCIALES I
Figura 1.5 Paleta de la familia Criterios de Error
Aprendizaje y retropropagacin
Se puede utilizar el error para modificar los pesos del sistema, permitiendo a ste aprender.
La misin del sistema es igualar la salida del sistema a la salida deseada, por lo que se
necesita minimizar el error cuadrtico. El mtodo para hacerlo es conocido como
retropropagacin del error. Esencialmente es un proceso de tres pasos. Primero, los datos de
la entrada son propagados hacia adelante a travs de la red para calcular la salida del sistema.
El paso siguiente es calcular el error y propagarlo hacia atrs. Esto se utiliza finalmente para
modificar los pesos.

NeuroSolutions implementa la retropropagacin del error en un plano secundario que se
encuentra en la parte superior de axones y sinapsis. Este es el plano de retropropagacin, y se
muestra en la figura 1.6.
Figura 1.6.Red neuronal con plano de retropropagacin
NeuroSolutions muestra el plano de retropropagacin utilizando versiones ms pequeas de
axones y sinapsis apilados sobre ellos. El plano de retropropagacin pasa los errores hacia
atrs 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 retropropagacin 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 retropropagacin. Un componente tpico de gradiente descendiente es el
componente Momentum. Ntese en la figura 1.7. que slo los componentes relacionados con
los pesos utilizan los componentes de gradiente descendente.
117
REDES NEURONALES ARTIFCIALES I
Figura 1.7. Red neuronal con los tres planos: de propagacain hacia delante, retropropagacin y gradiente descendiente
118

S-ar putea să vă placă și