Está en la página 1de 118

REDES NEURONALES ARTI F CI ALES I

1
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
REDES NEURONALES ARTI F CI ALES I
2
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.

REDES NEURONALES ARTI F CI ALES I
3
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.
REDES NEURONALES ARTI F CI ALES I
4
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.
REDES NEURONALES ARTI F CI ALES I
5
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.



REDES NEURONALES ARTI F CI ALES I
6
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.


REDES NEURONALES ARTI F CI ALES I
7

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
REDES NEURONALES ARTI F CI ALES I
8

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
REDES NEURONALES ARTI F CI ALES I
9
tiene siempre una 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
REDES NEURONALES ARTI F CI ALES I
10
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
REDES NEURONALES ARTI F CI ALES I
11
frecuencia o 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:
REDES NEURONALES ARTI F CI ALES I
12

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.


REDES NEURONALES ARTI F CI ALES I
13
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.


REDES NEURONALES ARTI F CI ALES I
14

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.


BACKPROPAGATI ON

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.
REDES NEURONALES ARTI F CI ALES I
15
HOPFI ELD

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.






REDES NEURONALES ARTI F CI ALES I
16
1.8 TOPOLOGAS DE REDES NEURONALES.

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

REDES NEURONALES ARTI F CI ALES I
17

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

REDES NEURONALES ARTI F CI ALES I
18

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.

REDES NEURONALES ARTI F CI ALES I
19

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.

REDES NEURONALES ARTI F CI ALES I
20
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
REDES NEURONALES ARTI F CI ALES I
21

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

REDES NEURONALES ARTI F CI ALES I
22
donde es la diferencia entre la salida deseada y la salida real para el patrn de
entrada p.

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
REDES NEURONALES ARTI F CI ALES I
23

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.

REDES NEURONALES ARTI F CI ALES I
24
Seleccin de la unidad ganadora mediante producto:

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.


REDES NEURONALES ARTI F CI ALES I
25

CAPTULO II

REDES NEURONALES MONOCAPA CON APRENDIZAJE SUPERVISADO


L La as s r re ed de es s m mo on no oc ca ap pa a s se e u ut ti il li iz za an n t t p pi ic ca am me en nt te e e en n t ta ar re ea as s r re el la ac ci io on na ad da as s e en n l lo o q qu ue e s se e c co on no oc ce e c co om mo o a au ut to o
a as so oc ci ia ac ci i n n: : p po or r e ej je em mp pl lo o, , p pa ar ra a r re eg ge en ne er ra ar r i in nf fo or rm ma ac ci io on ne es s d de e e en nt tr ra ad da a q qu ue e s se e p pr re es se en nt ta an n a a l la a r re ed d
i in nc co om mp pl le et ta as s o o d di is st to or rs si io on na ad da as s. .


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.
REDES NEURONALES ARTI F CI ALES I
26


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

E El l a al lg go or ri it tm mo o d de e a ap pr re en nd di iz za aj je e e es s s su up pe er rv vi is sa ad do o, , e en n e el l c cu ua al l l la a r re eg gl la a e es s p pr ro ov vi is st ta a c co on n u un n c co on nj ju un nt to o d de e
e ej je em mp pl lo os s d de el l c co om mp po or rt ta am mi ie en nt to o p pr ro op pi io o d de e l la a r re ed d: :

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.
REDES NEURONALES ARTI F CI ALES I
27
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


P Pa ar ra a e el l u um mb br ra al l ( (b b) )

b
nuevo
= b
anterior
+ e

P Pa ar ra a e el l e er rr ro or r ( (e 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.















REDES NEURONALES ARTI F CI ALES I
28
Ejercicios

Mtodo grfico

1 1. . U Us se e u un n p pe er rc ce ep pt tr r n n s si im mp pl le e p pa ar ra a c cl la as si if fi ic ca ar r e el l s si ig gu ui ie en nt te e c co on nj ju un nt to o d de e p pa at tr ro on ne es s: :

p1 =
(

2
0
t1=1; p2 =
(

2
2
t2=1;

p3 =
(

0
2
t3=1; p4 =
(

2
2
t4=1;

p5 =
(

2
0
t5=0; p6 =
(

2
2
t6=0;

p7 =
(

0
2
t7=0; p8 =
(

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
REDES NEURONALES ARTI F CI ALES I
29

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 =
(

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]
(

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 =
(

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]
(

2
2
+ 0)
REDES NEURONALES ARTI F CI ALES I
30

a = hardlim(6) = 1

Se calcula el error:

e = t2 a = 1 1

e = 0

Para el tercer par de entrada/salida

p3 =
(

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]
(

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 =
(

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]
(

2
2
+ 0)
a = hardlim(2) = 1

Se calcula el error:

e = t4 a = 1 1

e = 0
REDES NEURONALES ARTI F CI ALES I
31
Para el quinto par de entrada/salida

p5 =
(

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]
(

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 =
(

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]
(

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 =
(

0
2
t7=0;

REDES NEURONALES ARTI F CI ALES I
32
Se calcula la salida utilizando la funcin de activacin propia de la red:

a = hardlim(wp + b)
a = hardlim([-2 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 =
(

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]
(

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 =
(

2
1
t1=1;
p2 =
(

2
1
t2=0;
REDES NEURONALES ARTI F CI ALES I
33
p3 =
(

1
0
t3=0;

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 =
(

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]
(

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 =
(

2
1
t2=0;

REDES NEURONALES ARTI F CI ALES I
34
Se calcula la salida utilizando la funcin de activacin propia de la red (con os nuevos
pesos):

a = hardlim(wp + b)
a = hardlim([2 1.2]
(

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
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
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


REDES NEURONALES ARTI F CI ALES I
35
W
nuevo
= [3 0.8] + (-1) [0 -1]

W
nuevo
= [3 0.2]

E Es s n ne ec ce es sa ar ri io o c co om mp pr ro ob ba ar r q qu ue e, , c ca ad da a q qu ue e s se e o ob bt ti ie en ne e u un n v ve ec ct to or r d de e p pe es so os s n nu ue ev vo o, , e el l e er rr ro or r e e = = 0 0 p pa ar ra a t to od do os s
l lo os s p pa ar re es s d de e e en nt tr ra ad da a/ /s sa al li id da a, , p pa ar ra a d da ar r p po or r t te er rm mi in na ad do o e el l p pr ro oc ce es so o d de e e en nt tr re en na am mi ie en nt to o: :

Para el primer par de entrada/salida

p1 =
(

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]
(

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 =
(

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]
(

2
1
+ 0)

a = hardlim(-2.6) = 0

Se calcula el error:

e = t2 a = 0 0

e = 0
REDES NEURONALES ARTI F CI ALES I
36


Para el tercer par de entrada/salida

p3 =
(

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
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

REDES NEURONALES ARTI F CI ALES I
37
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.

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 =
(
(
(

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







REDES NEURONALES ARTI F CI ALES I
38
Segn lo anterior, los vectores de entrada para las frutas a clasificar son:


Naranja

p1 =
(
(
(

1
1
1
t1 = 0

Manzana

p2 =
(
(
(

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
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
+ 0.5)

a = hardlim(2.5) = 1

REDES NEURONALES ARTI F CI ALES I
39
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 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
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
+ (-0.5))

a = hardlim(-1.5) = 0

Se calcula el error:

e = t1 a = 1 - 0

e = 1





REDES NEURONALES ARTI F CI ALES I
40
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 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
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
+ 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]

REDES NEURONALES ARTI F CI ALES I
41
W
nuevo
= [-0.5 2 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
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
+ (-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
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
+ (-0.5))
REDES NEURONALES ARTI F CI ALES I
42

a = hardlim(-3.5) = 0

Se calcula el error:

e = t1 a = 0 - 0

e = 0

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

W = [-0.5 2 0.5]
b = 0.5


Simulaciones en Matlab

1. Resuelva el siguiente problema de clasificacin del perceptrn y su regla de aprendizaje

Los pares de entrada/salida son:

p1 =
(

2
1
t1=1;
p2 =
(

2
1
t2=0;
p3 =
(

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);




REDES NEURONALES ARTI F CI ALES I
43
%Evala un par de entrada para clasificarlo
a=simup([-1;0],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
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
REDES NEURONALES ARTI F CI ALES I
44
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.

2. Perceptrn de cuatro clases

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

Clase 1:
)
`

=
(

=
2
1
2 ,
1
1
1 p p
)
`

=
(

=
0
0
2 ,
0
0
1 t t

Clase 2:
)
`

=
(

=
0
2
4 ,
1
2
3 p p
)
`

=
(

=
1
0
4 ,
1
0
3 t t

Clase 3:
)
`

=
(

=
1
2
6 ,
2
1
5 p p
)
`

=
(

=
0
1
6 ,
0
1
5 t t

Clase 4:
)
`

=
(

=
2
2
8 ,
1
1
7 p p
)
`

=
(

=
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


REDES NEURONALES ARTI F CI ALES I
45
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 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

REDES NEURONALES ARTI F CI ALES I
46
L La as s f fr ro on nt te er ra as s d de e d de ec ci is si i n n a al l q qu ue e d da an n s so ol lu uc ci i n n a al l p pr ro ob bl le em ma a d de ep pe en nd de er r d de e l lo os s v va al lo or re es s i in ni ic ci ia al le es s q qu ue e
M Ma at tl la ab b a as si ig gn na a a a w w y y b b. .


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.

T Ti ie en ne e u un na a e es st tr ru uc ct tu ur ra a c ca as si i i id d n nt ti ic ca a a a l la a d de el l p pe er rc ce ep pt tr r n n g ge en ne er ra al l. . L La a f fi ig gu ur ra a 2 2. .7 7. . m mu ue es st tr ra a l la a e es st tr ru uc ct tu ur ra a d de e
u un na a r re ed d A Ad da al li in ne e. .




















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
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 ARTI F CI ALES I
47
combinador adaptativo lineal (ALC). Si la salida del ALC es positiva, la salida de la red es
+1. si la salida del ALC es negativa, entonces la salida de la red es 1.

El ALC lleva a cabo el 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.

P Po or r m me ed di io o d de e l la as s s si ig gu ui ie en nt te es s e ec cu ua ac ci io on ne es s, , s se e r re ea al li iz za a l la a a ac ct tu ua al li iz za ac ci i n n d de e l lo os s p pa ar r m me et tr ro os s d de e l la a r re ed d: :

Para el vector de pesos (W)

W
nuevo
= W
anterior
+ 2o ep
t


P Pa ar ra a e el l u um mb br ra al l ( (b b) )

b
nuevo
= b
anterior
+ 2oe

P Pa ar ra a e el l e er rr ro or r ( (e e) )

e = t - a


REDES NEURONALES ARTI F CI ALES I
48

donde o se conoce como razn o tasa de aprendizaje y 0 < o < 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 < o <
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.
REDES NEURONALES ARTI F CI ALES I
49

p1 =
(

1
1
t1=1;
p2 =
(

1
1
t2=-1;

Los parmetros iniciales son:

o = 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
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
+ 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
+ 2oep
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

REDES NEURONALES ARTI F CI ALES I
50
p2 =
(

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.5 0.5]
(

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
+ 2oep
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
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
+ 0
a = 1

Se calcula el error:

e = t1 a = 1 -1 = 0

Para el segundo par de entrada/salida

REDES NEURONALES ARTI F CI ALES I
51
p2 =
(

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 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.
REDES NEURONALES ARTI F CI ALES I
52

p1 =
(
(
(

1
1
1
t1=-1;
p2 =
(
(
(

1
1
1
t2=1;

Los parmetros iniciales son:

W =[0 0 0]
b=0

a) Calcule la razn de aprendizaje o

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] +
2
1
(
(
(

1
1
1
[1 1 1]

R =
2
1
(
(
(


1 1 1
1 1 1
1 1 1
+
2
1
(
(
(

1 1 1
1 1 1
1 1 1
=
2
1
(
(
(

2 0 2
0 2 0
2 0 2
=
(
(
(

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:

REDES NEURONALES ARTI F CI ALES I
53
(
(
(

1 0 1
0 1 0
1 0 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

L La a m m x xi im ma a r ra az z n n d de e a ap pr re en nd di iz za aj je e e es st ta ab bl le e e es s: :

mx
=
3
= 2

0 < o <
max
1


max
1
= 1 / 2 = 0.5

Se elige una tasa de aprendizaje de 0.2 (valor tpico)


N No ot ta a: : o o s se e p pu ue ed de e p pr ro op po on ne er r a a t tr ra av v s s d de e p pr ru ue eb ba a y y e er rr ro or r. .




b) Calcule el vector de pesos W y el umbral b
REDES NEURONALES ARTI F CI ALES I
54

Primera poca

Para el primer par de entrada/salida

p1 =
(
(
(

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
+ 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
+ 2oep
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
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
+ 0
REDES NEURONALES ARTI F CI ALES I
55
a = -0.4

Se calcula el error:

e = t2 a = 1 + 0.4 = 1.4

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

W
nuevo
= W
anterior
+ 2oep
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
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
+ 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
+ 2oep
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

REDES NEURONALES ARTI F CI ALES I
56

Si se continua el proceso, el algoritmo convergir en:

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 =
(

2
0
t1=1;
p2 =
(

0
2
t2=1;
p3 =
(

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
REDES NEURONALES ARTI F CI ALES I
57
[net,tr]=train(net,P,T);

%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

REDES NEURONALES ARTI F CI ALES I
58
b=net.b{1}

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

REDES NEURONALES ARTI F CI ALES I
59

CAPITULO III

REDES NEURONALES MULTI CAPA CON APRENDI ZAJ E
SUPERVI SADO..

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:


F(W, x) = (W
1
.(W
l
x) .) (3.11)

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).


REDES NEURONALES ARTI F CI ALES I
60
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:


u(n) = W
h
x(n) ; h(n) = (u(n)) - hidden signals ;
v(n) = W
y
h(n) ; y(n) = (v(n)) - output signals .


o simplemente como

y(n) = ( W
y
( W
h
x(n) ) ) (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:


y = ( v ) =
1

1 + e
-|v

=
1

2
(tanh(|v/2) -1) (160,30)
La derivada de la funcin sigmoidal:

y' =
d

d v
= |
e
-|v


(1 + e
-|v
)
2

= | y (1 - y)
Sigmoidal bipolar:


( v ) = tanh(|v)(320,0)
La derivada de la funcin bipolar sigmoidal:

y' =
d

d v
=
4 |e
2 |v


(e
2 |v
+1)
2

= |(1 - y
2
)
REDES NEURONALES ARTI F CI ALES I
61
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.


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
REDES NEURONALES ARTI F CI ALES I
62
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.

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
REDES NEURONALES ARTI F CI ALES I
63
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 = c (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
c c (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
+ =
+ =
= = c
(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

=
=
= = V
(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 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 A + = +1 (3.25)

REDES NEURONALES ARTI F CI ALES I
64
Este cambio Aw 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 V = +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
c
c
2
2
~
c
c
~
V ~ V
(3.27)

( ) ( )
k k
t t x w w c 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
o
oc
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.


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.

REDES NEURONALES ARTI F CI ALES I
65
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')
REDES NEURONALES ARTI F CI ALES I
66

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
REDES NEURONALES ARTI F CI ALES I
67

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.
REDES NEURONALES ARTI F CI ALES I
68
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.
REDES NEURONALES ARTI F CI ALES I
69
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 d
j
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
= =
c
c

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
Y1
Y2
Yn
Yj
W1, j
W2, j
Wn, j
Y1
Ym
j =1. . m
CAPA DE SALI DA
i =1. . n
CAPA OCULTA
REDES NEURONALES ARTI F CI ALES I
70

Cmputo de la rapidez de variacin del error al cambiar la entrada total que recibe cada
unidad de salida.
o
c
c
c
c
c
c
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
= = =
c
c
c
c
c
c
o

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.

Yi
Y1
CAPA OCULTA
Y2
Ym
i=1..n
Yn
Y1
Wi,1
Wi,2
Wi,m
CAPA DE SALIDA
j=1..m
Wh,i
REDES NEURONALES ARTI F CI ALES I
71

EA
E
y
E
x
x
y
w
i
i j
j
i j
m
j ij
j
m
= = =
= =

c
c
c
c
c
c
o ( ) ( )
1 1

Conociendo EA para las unidades de cualquier capa podemos calcular o y EP con las
expresiones ya conocidas.
o o
i i i i i i j ij
j
m
EA y y y y w = =
=

( ) ( ) ( ) 1 1
1

EP y
hi i h
= o

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.

Aw y
ij j i
= qo siendo q el coeficiente de aprendizaje, tpicamente con valores
comprendidos entre 0.01 y 1.0

w t w t w
ij ij ij
( ) ( ) + = + 1 A

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,
pesos, el aprendizaje queda detenido. Por eso es conveniente aleatorizar los pesos de las
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
REDES NEURONALES ARTI F CI ALES I
72
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
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,

y = f(x) , or y
1
= f
1
( x
1
, x
2
) , y
2
= f
2
( x
1
, x
2
)
Usando un perceptron de dos capas,
REDES NEURONALES ARTI F CI ALES I
73

y = o ( W
y
( W
h
x) )
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:

y
1
= x
1
e
-
, y
2
=
sin2

4
, donde = x
1
2
+ x
2
2

El dominio de la funcin es un cuadrado x
1
, x
2
e [-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
REDES NEURONALES ARTI F CI ALES I
74

El dominio de los puntos de muestras es el siguiente:

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

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:

REDES NEURONALES ARTI F CI ALES I
75
Wh = randn(L,p)/p; La matriz de pesos de la capa oculta W
h
es L p
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.
REDES NEURONALES ARTI F CI ALES I
76


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.
REDES NEURONALES ARTI F CI ALES I
77


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

3.4.1 TCNICAS HEURSTICAS

REDES NEURONALES ARTI F CI ALES I
78
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 s s 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.

AW
m
k ( ) AW
m
k 1 ( ) 1 ( )os
m
a
m 1
( )
T
=
AW
m
k ( ) AW
m
k 1 ( ) 1 ( )os
m
a
m 1
( )
T
=
-5 0 5 10 15
-5
0
5
10
15

REDES NEURONALES ARTI F CI ALES I
79
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

0 50 100 150 200
0
0.5
1
1.5
2
w k ( ) 1
2tk
16
---------
\ .
| |
sin + =
0.98 =
REDES NEURONALES ARTI F CI ALES I
80



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%

0.9 =
0 50 100 150 200
0
0.5
1
1.5
2
REDES NEURONALES ARTI F CI ALES I
81
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
-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
q 1.05 = 0.7 = , 4% =
REDES NEURONALES ARTI F CI ALES I
82

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.

p
0
g
0
=
g
k
F x ( ) V
x x
k
=

x
k 1 +
x
k
o
k
p
k
+ =
p
k
g
k
|
k
p
k 1
+ =
|
k
g
k 1
T
A g
k
g
k 1
T
A p
k 1
----------------------------- =
|
k
g
k
T
g
k
g
k 1
T
g
k 1
------------------------- =
|
k
g
k 1
T
A g
k
g
k 1
T
g
k 1
------------------------- =
REDES NEURONALES ARTI F CI ALES I
83

Figura 3.18. Localizacin del intervalo

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.
REDES NEURONALES ARTI F CI ALES I
84
- 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.

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.
-5 0 5 10 15
-5
0
5
10
15
REDES NEURONALES ARTI F CI ALES I
85
3. La tercera entrada es un arreglo con los nombres de las funciones de transferencia
que se van a usar en cada capa.
4. La ltima entrada contiene el nombre del algoritmo de entrenamiento que se va a
utilizar.
Por ejemplo el siguiente comando crea una red de dos capas. Tendr un vector de entrada
con dos elementos (p-1 = 2), tres neuronas en la primera capa (L-1 = 3) y una neurona en la
segunda capa (salida) (m = 1).

La 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)
REDES NEURONALES ARTI F CI ALES I
86
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

REDES NEURONALES ARTI F CI ALES I
87
Ejemplo

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.

REDES NEURONALES ARTI F CI ALES I
88
a= F( WP +b)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.

REDES NEURONALES ARTI F CI ALES I
89

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.
| | ( ) 2 , 2 , 1 , 1 , 2 , 1 b W b W p simurb a a =
REDES NEURONALES ARTI F CI ALES I
90

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 solverbetoma 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.

( ) 2 , 2 , 1 , 1 , 2 b W b W p simurb a =
| | ( ) sc T P solverb b W b W , , 2 , 2 , 1 , 1 =
REDES NEURONALES ARTI F CI ALES I
91
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.

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 solverbees 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.

| |
| | ( ) dp T P solverb dr nr b W b W
spread goal err neuron max freq disp dp
, , , , 2 , 2 , 1 , 1
; _ _ _
=
=
REDES NEURONALES ARTI F CI ALES I
92
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.

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.
REDES NEURONALES ARTI F CI ALES I
93


Aplicaciones

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 ) (
o
c y
y h

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

\
|

=
2
2
exp ) (
o
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 o=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: o=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 [ =
.

REDES NEURONALES ARTI F CI ALES I
94

Figura 3.24: Funcin Radial si a)Seal de entrada escalar. b) Vector de entrada 2-dimensional.

Simulaciones en Matlab
























REDES NEURONALES ARTI F CI ALES I
95

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.
REDES NEURONALES ARTI F CI ALES I
96

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.

REDES NEURONALES ARTI F CI ALES I
97
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
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.

REDES NEURONALES ARTI F CI ALES I
98


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.

REDES NEURONALES ARTI F CI ALES I
99
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
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.

REDES NEURONALES ARTI F CI ALES I
100


Figura 4.4. Manifestacin de sobreentrenamiento.

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
Nmero de iteraciones
entrenamiento
Error
Datos de
entrenamiento
Datos de
prueba
REDES NEURONALES ARTI F CI ALES I
101
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.

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
REDES NEURONALES ARTI F CI ALES I
102
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. 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.

















REDES NEURONALES ARTI F CI ALES I
103




























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
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 ARTI F CI ALES I
104
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.

REDES NEURONALES ARTI F CI ALES I
105
CAPITULO V. Simuladores de Redes Neuronales Artificiales.

5.1 Matlab: Neural Network Toolbox.
5.1.1 I ntroduccin.
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.



REDES NEURONALES ARTI F CI ALES I
106
Caractersticas Dominantes
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
REDES NEURONALES ARTI F CI ALES I
107
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.
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.
REDES NEURONALES ARTI F CI ALES I
108
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.
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:
REDES NEURONALES ARTI F CI ALES I
109
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.
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);

REDES NEURONALES ARTI F CI ALES I
110
5.1.4. Simulacin de Redes Neuronales.

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.

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
REDES NEURONALES ARTI F CI ALES I
111
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


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
REDES NEURONALES ARTI F CI ALES I
112
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
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
REDES NEURONALES ARTI F CI ALES I
113
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
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
REDES NEURONALES ARTI F CI ALES I
114

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.

REDES NEURONALES ARTI F CI ALES I
115
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

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
REDES NEURONALES ARTI F CI ALES I
116
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


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.

REDES NEURONALES ARTI F CI ALES I
117

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.



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
REDES NEURONALES ARTI F CI ALES I
118
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.



Figura 1.7. Red neuronal con los tres planos: de propagacain hacia delante, retropropagacin y gradiente descendiente