Beruflich Dokumente
Kultur Dokumente
CAPITULO I
INTRODUCION:
Aunque todavía se ignora mucho sobre la forma en que el cerebro aprende a procesar la
información, se han desarrollado modelos que tratan de mimetizar tales habilidades;
denominados redes neuronales artificiales ó modelos de computación conexionista (otras
denominaciones son computación neuronal y procesamiento distribuido paralelo o
P.D.P.). La elaboración de estos modelos supone en primer lugar la deducción de los rasgos
o características esenciales de las neuronas y sus conexiones, y en segundo lugar, la
implementación del modelo en una computadora de forma que se pueda simular. Es obvio
decir que estos modelos son idealizaciones burdas de las auténticas redes neuronales, en
muchos casos de dudosa plausibilidad neurofisiológica, pero que sin embargo resultan
interesantes cuando menos por sus capacidades de aprendizaje.
De la prehistoria al futuro que tal vez Babbage nunca soñó. El desarrollo de máquinas que
puedan imitar la capacidad de aprendizaje del hombre es actualmente un desafío en el que
pone sus miras buena parte de la comunidad científica. Con esta amplia Introducción a las
redes neuronales, se pretende dar a conocer los elementos básicos de lo que comúnmente se
denomina Inteligencia Artificial, para así comprender de qué modo pueden llegar a
«pensar» y «aprender» las máquinas.
El hombre se ha caracterizado siempre por una búsqueda constante de nuevas vías para
mejorar sus condiciones de vida. Estos esfuerzos le han servido para reducir el trabajo en
aquellas operaciones en las que la fuerza juega un papel primordial. Los progresos
obtenidos han permitido dirigir estos esfuerzos a otros campos, como por ejemplo, a la
construcción de máquinas calculadoras que ayuden a resolver de forma automática y rápida
determinadas operaciones que resultan tediosas cuando se realizan a mano.
Uno de los primeros en acometer esta empresa fue Charles Babbage, quien trató
infructuosamente de construir una máquina capaz de resolver problemas matemáticos.
Posteriormente otros tantos intentaron construir máquinas similares, pero no fue hasta la
Segunda Guerra Mundial, cuando ya se disponía de instrumentos electrónicos, que se
empezaron a recoger los primeros frutos. En 1946 se construyó la primera computadora
1
REDES NEURONALES ARTIFÍCIALES I
electrónica, ENIAC. Desde entonces los desarrollos en este campo han tenido un auge
espectacular.
Este ejemplo demuestra que la construcción de nuevas máquinas más versátiles requiere un
enfoque del problema desde otro punto de vista.
Los desarrollos actuales de los científicos se dirigen al estudio de las capacidades humanas
como una fuente de nuevas ideas para el diseño de las nuevas máquinas. Así, la inteligencia
artificial es un intento por descubrir y describir aspectos de la inteligencia humana que
pueden ser simulados mediante máquinas. Esta disciplina se ha desarrollado fuertemente en
los últimos años teniendo aplicación en algunos campos como visión artificial,
demostración de teoremas, procesamiento de información expresada mediante lenguajes
humanos... etc.
Las redes neuronales son otra forma de emular otra de las características propias de los
humanos: la capacidad de memorizar y asociar hechos. Si examinamos con atención
aquellos problemas que no pueden expresarse a través de un algoritmo nos daremos cuenta
de que todos ellos tienen una característica común: la experiencia. El hombre es capaz de
resolver estas situaciones acudiendo a la experiencia acumulada. Así, parece claro que una
forma de aproximarse al problema consista en la construcción de sistemas que sean capaces
de reproducir esta característica humana. En definitiva, las redes neuronales no son más que
un modelo artificial y simplificado del cerebro humano, que es el ejemplo más perfecto del
que disponemos de sistema que es capaz de adquirir conocimiento a través de la
experiencia. Una red neuronal es «un nuevo sistema para el tratamiento de la información
cuya unidad básica de procesamiento está inspirada en la célula fundamental del sistema
nervioso humano, la neurona».
Fue en 1943 cuando Warren McCulloch y Walter Pitts propusieron el clásico modelo de
neurona en el que se basan las redes neuronales actuales. Seis años después, en 1949, en su
libro The Organization of Behavior, Donald Hebb presentaba su conocida regla de
aprendizaje.
2
REDES NEURONALES ARTIFÍCIALES I
En 1957, Frank Rosenblatt presentó el Perceptron, una red neuronal con aprendizaje
supervisado cuya regla de aprendizaje era una modificación de la propuesta por Hebb. El
Perceptron trabaja con patrones de entrada binarios, y su funcionamiento, por tratarse de
una red supervisada, se realiza en dos fases: una primera en la que se presentan las entradas
y la salidas deseadas; en esta fase la red aprende la salida que debe dar para cada entrada.
La principal aportación del Perceptron es que la adaptación de los pesos se realiza teniendo
en cuenta el error entre la salida que da la red y la salida que se desea. En la fase siguiente,
de operación, la red «es capaz» de responder adecuadamente cuando se le vuelven a
presentar los patrones de entrada. Se crearon grandes expectativas sobre sus aplicaciones,
que posteriormente se tornaron en gran decepción cuando en 1969 Minsky y Papert
demostraron las grandes limitaciones de esta red.
En 1959, Widrow publica una teoría sobre la adaptación neuronal y unos modelos
inspirados en esa teoría, el Adaline (Adaptative Linear Neuron) y el Madaline (Multiple
Adaline). Estos modelos fueron usados en numerosas aplicaciones y permitieron usar, por
primera vez, una red neuronal en un problema importante del mundo real: filtros
adaptativos para eliminar ecos en las líneas telefónicas.
3
REDES NEURONALES ARTIFÍCIALES I
El concepto de Red Neuronal Artificial está inspirado en las Redes Neuronales Biológicas.
Una Red Neuronal Biológica es un dispositivo no lineal altamente paralelo, caracterizado
por su robustez y su tolerancia a fallos. Sus principales características son las siguientes:
Las Redes Neuronales Artificiales intentan imitar algunas, o todas, de estas características.
Este paradigma de programación difiere de las secuencias de instrucciones en que la
información se encuentra almacenada en las conexiones sinápticas. Cada neurona es un
procesador elemental con operaciones muy primitivas como la suma ponderada de sus
pesos de entrada y la amplificación o umbralización de esta suma.
Una Red Neuronal viene caracterizada por su topología, por la intensidad de la conexión
entre sus pares de neuronas (pesos), por las propiedades de los nodos y por las reglas de
actualización de pesos. Las reglas de actualización, también llamadas de aprendizaje,
controlan los pesos y/o estados de los elementos de procesados (neuronas).
Los principales aspectos de este modelo de computación distribuida son los siguientes:
4
REDES NEURONALES ARTIFÍCIALES I
Desde hace algunos años, algunos investigadores han estado creando modelos, tanto en
hardware como en software, que interpretan la actividad cerebral en un esfuerzo por
producir una forma de inteligencia artificial.
Las RNA están compuestas de muchos elementos sencillos que operan en paralelo, el
diseño de la red está determinado mayormente por las conexiones entre sus elementos. Al
igual que las conexiones de las neuronas cerebrales.
Las RNA han sido entrenadas para la realización de funciones complejas en variados
campos de aplicación. Hoy en día pueden ser entrenadas para la solución de problemas que
son difíciles para sistemas computacionales comunes o para el ser humano.
Pesos
Las RNA puede tener factores de peso fijos o adaptables. Las que tienen pesos adaptables
emplean leyes de aprendizaje para ajustar el valor de la fuerza de un interconexión con
otras neuronas. Si las neuronas utilizan pesos fijos, entonces su tarea deberá estar
previamente definida. Los pesos serán determinados a partir de una descripción completa
del problema. Por otra parte, los pesos adaptables son esenciales si no se conoce
previamente cual deberá de ser su valor correcto.
5
REDES NEURONALES ARTIFÍCIALES I
No son algorítmicas
La gran diferencia del empleo de las redes neuronales en relación con otras aplicaciones de
la computación radica en que no son algorítmicas, esto es no se programan haciéndoles
seguir una secuencia predefinida de instrucciones. Las RNA generan ellas mismas sus
propias "reglas", para asociar la respuesta a su entrada; es decir, aprende por ejemplos y de
sus propios errores.
Las redes neuronales formadas por los perceptrones se interconectan en forma muy similar
a como las neuronas humanas se disponen en la corteza cerebral humana, y lo más
importante, son capaces de asociar y generalizar sin reglas. Han sido utilizadas con gran
éxito para reconocer retornos de sonar bajo el agua, escritura a mano, voz, topografía de
terrenos, controlar brazos de robots, evaluar datos personales, modelar fenómenos
cognoscitivos, y, predecir tendencias financieras.
6
REDES NEURONALES ARTIFÍCIALES I
La clase de problemas que mejor se resuelven con las redes neuronales son los mismos que
el ser humano resuelve mejor: Asociación, evaluación, y reconocimiento de patrones. Las
redes neuronales son perfectas para problemas que son muy difíciles de calcular pero que
no requieren de respuestas perfectas, sólo respuestas rápidas y buenas. Tal y como acontece
con el escenario bursátil en el que se quiere saber ¿compro?, ¿vendo?, ¿mantengo?, o en el
reconocimiento cuando se desea saber ¿se parece? ¿es el mismo pero tienen una ligera
modificación?
Por otra parte, las redes neuronales son muy malas para cálculos precisos, procesamiento
serie, y no son capaces de reconocer nada que no tenga inherentemente algún tipo de
patrón. Es por esto, que no pueden predecir la lotería, ya por definición es un proceso al
azar.
Existen varias formas de hacer las conexiones en una RNA, así como existen varias formas
de conectar neuronas biológicas en el cerebro. Cada tipo sirve para diferentes procesos, el
elegir la correcta topología y sus características, es imprescindible para lograr fácilmente la
solución del problema.
7
REDES NEURONALES ARTIFÍCIALES I
Esta aproximación a las (RNA) está motivada por la aplicación, basada en la teoría y
orientada hacia la implementación. Las principales aplicaciones son para el procesado de
señal y el reconocimiento de patrones. La primera etapa algorítmica representa una
combinación de la teoría matemática y la fundamentación heurística por los modelos
neuronales. El fin último es la construcción de neurocomputadores digitales, con la ayuda
de las tecnologías VLSI y el procesado adaptativo, digital y paralelo.
• Clasificación de patrones
• Aproximación de funciones
• Mapeo
• En los que exista información imprecisa y con tolerancia a fallos
• Aprendizaje Adaptativo.
• Autoorganización.
• Tolerancia a Fallos.
• Operación en tiempo real.
• Fácil construcción en circuitos integrados.
El cerebro, como todo el organismo animal, está formado por células llamadas neuronas. La
estructura y la comunicación de las neuronas fueron descritas por el español Santiago
Ramón y Cajal, quien encontró una característica fundamental de la comunicación entre las
células nerviosas: casi nunca se tocan, están separados por pequeñísimos espacios, cuyo
significado y enorme importancia vendría a conocerse mucho tiempo después. A pesar de
las diferencias en la forma de las neuronas, su estructura en los sitios en que se comunican
unas con otras es muy similar. La parte de la neurona que se comunica con otra neurona
8
REDES NEURONALES ARTIFÍCIALES I
tiene siempre una estructura típica, y la región de la neurona que recibe ese contacto
también tiene una forma característica. A esta zona de integración de la neurona se le llama
sinapsis, y su funcionamiento es esencial para explicar prácticamente todas las acciones del
cerebro, desde la más sencilla como ordenar a los músculos que se contraigan y se relajen
en forma coordinada para llevar a cabo un simple movimiento, hasta las más complicadas
tareas intelectuales, pasando también por las funciones que originan, controlan y modulan
las emociones.
A través de esta comunicación las neuronas forman redes complicadísimas, que por
supuesto estamos lejos de conocer por completo. Sabemos que unos de estos circuitos están
relacionados con el sueño, otros con el movimiento, y otros más con las emociones y la
conducta. La identificación de éstos circuitos puede lograrse con distintos métodos, pero
uno relativamente simple consiste en estimular una neurona o un grupo de neuronas y luego
tomar un registro en las neuronas que sospechamos se comunican con las primeras.
Las neuronas son eléctricamente activas e interactúan entre ellas mediante un flujo de
corrientes eléctricas locales. Estas corrientes se deben a diferencias de potencial entre las
membranas celulares de las neuronas. Un impulso nervioso es un cambio de voltaje que
ocurre en una zona localizada de la membrana celular. El impulso se transmite a través del
axón hasta llegar a la sinapsis, produciendo la liberación de una sustancia química
denominada neurotransmisor que se esparce por el fluido existente en el espacio sináptico.
Cuando este fluido alcanza el otro extremo transmite la señal a la dendrita. Los impulsos
recibidos desde la sinapsis se suman o restan a la magnitud de las variaciones del potencial
de la membrana. Si las contribuciones totales alcanzan un valor determinado (alrededor de
10 milivoltios) se disparan uno o más impulsos que se propagarán a lo largo del axón.
Aunque todavía no está del todo claro, parece que este impulso se inicia en la conexión
entre el axón y la membrana. Su amplitud y velocidad dependen del diámetro del axón y su
frecuencia del número de disparos que se efectúen.
Las redes neuronales artificiales basan su funcionamiento en las redes neuronales reales,
estando formadas por un conjunto de unidades de procesamiento conectadas entre sí. Por
9
REDES NEURONALES ARTIFÍCIALES I
analogía con el cerebro humano se denomina «neurona» a cada una de estas unidades de
procesamiento. Cada neurona recibe muchas señales de entrada y envía una única señal de
salida (como ocurre en las neuronas reales).
Una neurona típica recoge señales procedentes de otras neuronas a través de una pléyade de
delicadas estructuras llamadas dendritas. La neurona emite impulsos de actividad eléctrica a
lo largo de una fibra larga y delgada denominada axón, que se escinde en millares de
ramificaciones.
Las extremidades de estas ramificaciones llegan hasta las dendritas de otras neuronas y
establecen unas conexiones llamadas sinápsis, en las cuales se produce una transformación
del impulso eléctrico en un mensaje neuroquímico, mediante la liberación de unas
sustancias llamadas neurotransmisores.
10
REDES NEURONALES ARTIFÍCIALES I
frecuencia o tasa de disparo, y su propagación a lo largo del axón hacia las neuronas con las
cuales sinapta.
Los elementos individuales de cálculo que forman los modelos de sistemas neuronales
artificiales reciben el nombre de Elementos de Procesado o Neuronas Artificiales. Cada
unidad realiza un trabajo muy simple: recibe impulsos de otras unidades o de estímulos
externos y calcula una señal de salida que propaga a otras unidades y, además, realiza un
ajuste de sus pesos. Este tipo de modelos es inherentemente paralelo en el sentido de que
varias unidades pueden realizar sus cálculos al mismo tiempo. El elemento de procesado
más simple suele tener el siguiente esquema:
11
REDES NEURONALES ARTIFÍCIALES I
En la mayor parte de los casos se asume que cada unidad recibe contribuciones aditivas de
las unidades que están conectadas a ellas. La entrada total de la unidad k es la suma
ponderada de las entradas que recibe más el término de offset
Este tipo de expresiones que calculan la entrada total se denominan reglas de propagación
y, en general, pueden tener diferentes expresiones.
12
REDES NEURONALES ARTIFÍCIALES I
La arquitectura más usada en la actualidad de una red neuronal se presente en la figura 1.5,
la cual consistía en:
Figura 1.6. Esquema de una red neuronal antes del entrenamiento. Los círculos representan neuronas,
mientras las flechas representan conexiones entre las neuronas
El número de capas intermedias y el número de neuronas de cada capa dependerá del tipo
de aplicación al que se vaya a destinar la red neuronal.
13
REDES NEURONALES ARTIFÍCIALES I
PERCEPTRON
BACKPROPAGATION
14
REDES NEURONALES ARTIFÍCIALES I
HOPFIELD
KOHONEN
Existen evidencias que demuestran que en el cerebro existen neuronas que se organizan en
muchas zonas, de forma que las informaciones captadas del entorno a través de los órganos
sensoriales se representan internamente en forma de capas bidimensionales. Por ejemplo,
en el sistema visual se han detectado mapas del espacio visual en zonas de córtex (capa
externa del cerebro). También en el sistema auditivo se detecta organización según la
frecuencia a la que cada neurona alcanza la mayor respuesta (organización tono tópica).
Aunque en gran medida esta organización neuronal está predeterminada genéticamente, es
probable que de ella se origine mediante el aprendizaje. Esto sugiere, por tanto, que el
cerebro podría poseer la capacidad inherente de formar mapas topológicos de las
informaciones recibidas del exterior. De hecho, esta teoría podría explicar su poder de
operar con elementos semánticos: algunas áreas del cerebro simplemente podrían crear y
ordenar neuronas especializadas o grupos con características de alto nivel y sus
combinaciones. Se trataría, en definitiva, de construir mapas espaciales para atributos y
características.
15
REDES NEURONALES ARTIFÍCIALES I
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:
El número de elementos de procesado puede variar en unas capas respecto a otras. Las
funciones (tanto de activación como de salida) de los elementos de procesado pueden ser
diferentes. No existe limitación en el número de capas ocultas. En general, cuanto mayor
sea la diferencia entre los elementos de entrada y los de salida, será necesario dotar a la
estructura de más capas ocultas. Estas capas ocultas crean una representación interna de los
patrones de entrada. La habilidad de la red para procesar información crece en proporción
directa al número de capas ocultas.
Según el número de interconexiones entre capas las redes se clasifican en: totalmente
conectadas y localmente conectadas. En las redes totalmente conectadas la salida de un
elemento de procesado de la capa i es entrada a todos los elementos de procesado de la capa
i+1. Por contra, en las redes localmente conectadas, la salida de un elemento de procesado
de la capa i es entrada a una región de elementos de procesado de la capa i+1.
16
REDES NEURONALES ARTIFÍCIALES I
Conexiones hacia delante(Feed Forward): para todos los modelos neuronales, los datos de
las neuronas de una capa inferior son propagados hacia las neuronas de la capa superior por
medio de las redes de conexiones hacia adelante.
Conexiones hacia atrás(Feed Bade): estas conexiones llevan los datos de las neuronas de
una capa superior a otras de la capa inferior.
Conexiones laterales. Un ejemplo típico de este tipo es el circuito “el ganador toma todo”,
que cumple un papel importante en la elección del ganador.
Conexiones con retardo: los elementos de retardo se incorporan en las conexiones para
implementar modelos dinámicos y temporales, es decir, modelos que precisan de memoria.
También es posible que las redes sean de una capa con el modelo de pesos hacia atrás o
bien el modelo multicapa hacia adelante. Es posible así mismo, el conectar varias redes de
una sola capa para dar lugar a redes más grandes.
17
REDES NEURONALES ARTIFÍCIALES I
18
REDES NEURONALES ARTIFÍCIALES I
Construir un sistema que aprenda ha sido tradicionalmente uno de los objetivos más
escurridizos de la inteligencia artificial. El aprendizaje es un proceso de adaptación al
entorno; durante el se crean y manipulan representaciones que sean capaces de explicar
dicho entorno.
19
REDES NEURONALES ARTIFÍCIALES I
Supervisado
Regla delta
Para una red con una única capa con un único elemento de procesado en la salida con una
función de activación lineal, la salida viene dada por
20
REDES NEURONALES ARTIFÍCIALES I
Una red simple con una única capa es capaz de representar relaciones lineales entre el valor
del elemento de procesado de la salida y el valor de los elementos de procesado de la
entrada. umbralizando el valor de la salida se puede construir un clasificador. Pero también
se pueden realizar otras tareas como aproximación de funciones. En espacios de entrada
multidimensionales la red representa un hiperplano de decisión y es trivial asumir que se
pueden definir varias unidades de salida.
Supongamos que vamos a entrenar una red para localizar el hiperplano de decisión más
idóneo para un conjunto de muestras de entrada consistente en valores de entrada y
valores de salida deseada . Para cada muestra dada del conjunto de entrada, la salida real
de la red difiere de la salida deseada en , donde es la salida real para el patrón de
entrada . La regla delta una función de error (o función de coste) basada en dicha
diferencia para realizar el ajuste de los pesos.
La función de error, dada por el método del menor error cuadrático medio, es la suma de
los cuadrados de los errores individuales de cada patrón. Es decir, el error total E viene
dado por
con lo cual
21
REDES NEURONALES ARTIFÍCIALES I
La regla delta modifica los pesos como función de las salidas deseada y real para unidades
de entrada y salida binarias o continuas. Estas características abrieron un nuevo campo de
posibilidades para las redes neuronales.
La regla delta generalizada, amplía la regla delta al caso de usar unidades de procesamiento
con funciones de activación no lineal. La activación es una función diferenciable de la
entrada total dada por
donde
La medida de error viene definida como el error cuadrático total para el patrón p en las
unidades de salida
Considerando E como la suma de los errores cuadráticos podemos ver que la variación del
error respecto a los pesos viene dada por
se puede obtener una regla de actualización de pesos equivalente a la regla delta, resultando
un descenso en el valor del gradiente sobre la superficie de error si se realizan los cambios
de los pesos de acuerdo a la expresión
La conclusión más importante es que el cálculo recursivo de los factores delta puede
implementarse propagando las señales de error desde la capa de salida a capas ocultas de la
red.
El cálculo de puede realizarse en términos de un producto de dos factores; uno que
refleje el cambio del error como función de la salida de las unidades y otro que refleje el
cambio de la salida como función de los cambios en la entrada, es decir
22
REDES NEURONALES ARTIFÍCIALES I
Ahora bien, el segundo factor no es otro que la derivada de la función de activación F. Para
calcular el primer factor vamos a considerar dos casos: que la unidad k es una unidad de
salida de la red y que la unidad k es una unidad de una capa oculta.
En el primer caso, a partir de la definición del error para el patrón p, podemos obtener que
que es el mismo resultado que en la regla delta básica. Por tanto, para las unidades de la
capa de salida
con lo cual
Extendiendo este cálculo de forma recursiva se pueden calcular los cambios en los pesos de
todas las unidades de la red. Este procedimiento se denomina regle delta generalizada para
redes feedforward con unidades no lineales.
No supervisado
Aprendizaje competitivo
23
REDES NEURONALES ARTIFÍCIALES I
Asumamos que los patrones de entrada y los pesos están normalizados a la unidad. Cada
unidad de salida o calcula su valor de activación a partir del producto del vector del patrón
de entrada por el vector de pesos
Una vez que se ha seleccionado el elemento de procesado k ganador, se adaptan sus pesos
(sólo del elemento ganador) de acuerdo a la expresión
Reforzamiento
24
REDES NEURONALES ARTIFÍCIALES I
CAPÍTULO II
Las redes monocapa se utilizan típicamente en tareas relacionadas en lo que se conoce como auto
asociación: por ejemplo, para regenerar informaciones de entrada que se presentan a la red
incompletas o distorsionadas.
El Perceptrón
Frank Rosenblatt creó muchas variantes de una máquina, la cual llamó Perceptrón. Una de
las más simples fue una red monocapa cuyos pesos y umbrales pueden ser entrenados para
producir un correcto vector objetivo cuando se presenta un correspondiente vector de
entrada.
Características
Arquitectura
25
REDES NEURONALES ARTIFÍCIALES I
La red perceptrón puede tener únicamente una sola capa, debido a que la regla de
aprendizaje del perceptrón es capaz de entrenar solamente una capa. Esta restricción coloca
limitaciones en cuanto a lo que un perceptrón puede realizar computacionalmente.
Algoritmo de aprendizaje
El algoritmo de aprendizaje es supervisado, en el cual la regla es provista con un conjunto de
ejemplos del comportamiento propio de la red:
donde:
pq = es la entrada de la red
tq = es la salida destino correspondiente
La regla de aprendizaje siempre convergirá a los pesos correctos de la red si es que existen
los pesos que solucionen dicho problema.
26
REDES NEURONALES ARTIFÍCIALES I
bnuevo = banterior + e
Para el error (e)
e=t-a
Aplicaciones
El rango de tareas que el Perceptrón puede manejar es mucho mayor que simples decisiones
y reconocimiento de patrones. Por ejemplo, se puede entrenar una red para formar el tiempo
pasado de los verbos en ingles, leer texto en ingles y manuscrito. El Perceptrón multicapa
(MLP) puede ser usado para la predicción de una serie de datos en el tiempo; tal a sido su
éxito en la medición de la demanda de gas y electricidad, además de la predicción de
cambios en el valor de los instrumentos financieros.
27
REDES NEURONALES ARTIFÍCIALES I
Ejercicios
Método gráfico
0 − 2
p1 = t1=1; p2 = t2=1;
2 2
− 2 − 2
p3 = t3=1; p4 = t4=1;
0 − 2
0 2
p5 = t5=0; p6 = t6=0;
− 2 − 2
2 2
p7 = t7=0; p8 = t8=1;
0 2
Solución
Se traza sobre la gráfica una línea que separe los patrones que arrojen salida 1 (negro) de
los patrones cuya salida deseada sea 0 (blanco). El trazo de esta línea o frontera de decisión
depende del diseñador, siempre y cuando se cumpla la clasificación (separación de patrones
con salida 1 de los de salida 0). El trazo de la frontera de decisión implica la determinación
inmediata del vector de pesos que da solución al problema (la frontera de decisión es
siempre perpendicular al vector de pesos W). Esto se muestra en la figura 2.2.
28
REDES NEURONALES ARTIFÍCIALES I
W = [-2 1]
Dado que la frontera de decisión atraviesa por el origen (0,0), el umbral de activación es
cero.
b=0
0
p1 = t1=1;
2
a = hardlim(wp + b)
0
a = hardlim([-2 1] + 0)
2
a = hardlim(2) = 1
Se calcula el error:
e = t1 – a = 1 – 1
e=0
− 2
p2 = t2=1;
2
a = hardlim(wp + b)
− 2
a = hardlim([-2 1] + 0)
2
29
REDES NEURONALES ARTIFÍCIALES I
a = hardlim(6) = 1
Se calcula el error:
e = t2 – a = 1 – 1
e=0
− 2
p3 = t3=1;
0
a = hardlim(wp + b)
− 2
a = hardlim([-2 1] + 0)
0
a = hardlim(4) = 1
Se calcula el error:
e = t3 – a = 1 – 1
e=0
− 2
p4 = t4=1;
− 2
Se calcula la salida utilizando la función de activación propia de la red:
a = hardlim(wp + b)
− 2
a = hardlim([-2 1] + 0)
− 2
a = hardlim(2) = 1
Se calcula el error:
e = t4 – a = 1 – 1
e=0
30
REDES NEURONALES ARTIFÍCIALES I
0
p5 = t5=0;
− 2
a = hardlim(wp + b)
0
a = hardlim([-2 1] + 0)
− 2
a = hardlim(-2) = 0
Se calcula el error:
e = t5 – a = 0 – 0
e=0
2
p6 = t6=0;
− 2
a = hardlim(wp + b)
2
a = hardlim([-2 1] + 0)
− 2
a = hardlim(-6) = 0
Se calcula el error:
e = t6 – a = 0 – 0
e=0
2
p7 = t7=0;
0
31
REDES NEURONALES ARTIFÍCIALES I
a = hardlim(wp + b)
2
a = hardlim([-2 1] + 0)
0
a = hardlim(-4) = 0
Se calcula el error:
e = t7 – a = 0 – 0
e=0
2
p8 = t8=0;
2
a = hardlim(wp + b)
2
a = hardlim([-2 1] + 0)
2
a = hardlim(-2) = 0
Se calcula el error:
e = t8 – a = 0 – 0
e=0
Regla de aprendizaje
1
p1 = t1=1;
2
− 1
p2 = t2=0;
2
32
REDES NEURONALES ARTIFÍCIALES I
0
p3 = t3=0;
−1
W = [1 -0.8]
b=0
Solución
1
p1 = t1=1;
2
a = hardlim(wp + b)
1
a = hardlim([1 –0.8] + 0)
2
a = hardlim(-0.6) = 0
Se calcula el error:
e = t1 – a = 1 – 0
e=1
Wnuevo = [1 –0.8] + [1 2]
Wnuevo = [2 1.2]
− 1
p2 = t2=0;
2
33
REDES NEURONALES ARTIFÍCIALES I
a = hardlim(wp + b)
− 1
a = hardlim([2 1.2] + 0)
2
a = hardlim(0.4) = 1
Se calcula el error:
e = t2 – a = 0 - 1
e = -1
Wnuevo = [3 –0.8]
0
p3 = t3=0;
−1
a = hardlim(wp + b)
0
a = hardlim([3 –0.8] + 0)
−1
a = hardlim(0.8) = 1
Se calcula el error:
e = t3 – a = 0 - 1
e = -1
34
REDES NEURONALES ARTIFÍCIALES I
Wnuevo = [3 0.2]
Es necesario comprobar que, cada que se obtiene un vector de pesos nuevo, el error e = 0 para todos
los pares de entrada/salida, para dar por terminado el proceso de entrenamiento:
1
p1 = t1=1;
2
a = hardlim(wp + b)
1
a = hardlim([3 0.2] + 0)
2
a = hardlim(3.4) = 1
Se calcula el error:
e = t1 – a = 1 – 1
e=0
− 1
p2 = t2=0;
2
a = hardlim(wp + b)
− 1
a = hardlim([3 0.2] + 0)
2
a = hardlim(-2.6) = 0
Se calcula el error:
e = t2 – a = 0 – 0
e=0
35
REDES NEURONALES ARTIFÍCIALES I
0
p3 = t3=0;
−1
a = hardlim(wp + b)
0
a = hardlim([3 0.2] + 0)
−1
a = hardlim(-0.2) = 0
Se calcula el error:
e = t3 – a = 0 – 0
e=0
W = [3 0.2]
b=0
36
REDES NEURONALES ARTIFÍCIALES I
La figura 2.3 muestra la solución del ejercicio. En ella se puede visualizar el vector de
pesos W, la frontera de decisión (perpendicular al vector de pesos W) atravesando el
origen. Esto último se debe a que el valor del umbral b es cero.
3. Diseñe una red neuronal que permita clasificar dos tipos de fruta considerando la
forma, la textura y el peso. Observe la figura 2.4.
forma
P = textura
peso
Forma:
- 1, si la fruta es redonda
- -1, si la fruta es elíptica
Textura:
- 1, si la superficie de la fruta es suave
- -1, si la superficie es rugosa
Peso:
- 1, ≥ 1 libra
- -1, < 1 libra
37
REDES NEURONALES ARTIFÍCIALES I
Según lo anterior, los vectores de entrada para las frutas a clasificar son:
Naranja
1
p1 = − 1 t1 = 0
− 1
Manzana
1
p2 = 1 t2 = 1
−1
W = [0.5 -1 -0.5]
b = 0.5
Solución
Primera época
1
p1 = − 1 t1=0;
− 1
a = hardlim(wp + b)
1
a = hardlim([0.5 -1 -0.5] − 1 + 0.5)
− 1
a = hardlim(2.5) = 1
38
REDES NEURONALES ARTIFÍCIALES I
Se calcula el error:
e = t1 – a = 0 - 1
e = -1
bnuevo = banterior + e
bnuevo = 0.5 - 1
bnuevo = -0.5
1
p2 = 1 t2=1;
−1
a = hardlim(wp + b)
1
a = hardlim([-0.5 0 0.5] 1 + (-0.5))
−1
a = hardlim(-1.5) = 0
Se calcula el error:
e = t1 – a = 1 - 0
e=1
39
REDES NEURONALES ARTIFÍCIALES I
bnuevo = banterior + e
bnuevo = -0.5 + 1
bnuevo = 0.5
Segunda época
1
p1 = − 1 t1=0;
− 1
a = hardlim(wp + b)
1
a = hardlim([0.5 1 -0.5] − 1 + 0.5)
− 1
a = hardlim(0.5) = 1
Se calcula el error:
e = t1 – a = 0 - 1
e = -1
40
REDES NEURONALES ARTIFÍCIALES I
bnuevo = banterior + e
bnuevo = 0.5 - 1
bnuevo = -0.5
1
p2 = 1 t2=1;
−1
a = hardlim(wp + b)
1
a = hardlim([-0.5 2 0.5] 1 + (-0.5))
−1
a = hardlim(0.5) = 1
Se calcula el error:
e = t1 – a = 1 - 1
e=0
1
p1 = − 1 t1=0;
− 1
a = hardlim(wp + b)
1
a = hardlim([-0.5 2 0.5] − 1 + (-0.5))
− 1
41
REDES NEURONALES ARTIFÍCIALES I
a = hardlim(-3.5) = 0
Se calcula el error:
e = t1 – a = 0 - 0
e=0
W = [-0.5 2 0.5]
b = 0.5
Simulaciones en Matlab
1
p1 = t1=1;
2
− 1
p2 = t2=0;
2
0
p3 = t3=0;
−1
clear;echo on;clc;
%Se definen los vectores de entrada
P=[1 -1 0;
2 2 -1];
42
REDES NEURONALES ARTIFÍCIALES I
echo off
T =
1 0 0
a =
0
echo off
La salida del programa (además del proceso descrito en la ventana de comandos de Matlab)
es una gráfica donde aparecen los patrones de entrada en un plano de dos dimensiones, con
la clasificación correspondiente (frontera de decisión). Esto se muestra en la figura 2.5.
43
REDES NEURONALES ARTIFÍCIALES I
1 1 0 0
Clase 1: p1 = , p 2 = t1 = , t 2 =
1 2 0 0
2 2 0 0
Clase 2: p3 = , p 4 = t 3 = , t 4 =
− 1 0 1 1
− 1 − 2 1 1
Clase 3: p5 = , p 6 = t 5 = , t 6 =
2 1 0 0
− 1 − 2 1 1
Clase 4: p 7 = , p8 = t 7 = , t 8 =
− 1 − 2 1 1
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];
echo off
44
REDES NEURONALES ARTIFÍCIALES I
w =
0.9003 0.2137
-0.5377 -0.0280
b =
0.7826
0.5242
a =
0
0
echo off
La salida del programa (además del proceso descrito en la ventana de comandos de Matlab)
es una gráfica donde aparecen los patrones de entrada de las cuatro clases, con una marca
especial para diferenciar cada una de ellas en un plano de dos dimensiones, con la
clasificación correspondiente. Ahora se ve una frontera de decisión en rojo, mientras que la
otra es de color azul. Esto se muestra en la figura 2.6.
45
REDES NEURONALES ARTIFÍCIALES I
Las fronteras de decisión al que dan solución al problema dependerá de los valores iniciales que
Matlab asigna a w y b.
La Red Adaline
Las redes Adaline fueron desarrolladas por Bernie Widrow en la Universidad de Stanford
poco después de que Rosenblatt desarrollara el Perceptrón.
El término Adaline es una sigla; sin embargo, significado ha cambiado ligeramente con el
paso de los años. Inicialmente se llamaba ADAptative LInear Neuron (neurona Lineal
Adaptativa); pasó a ser el ADAptative LInear Element (Elemento Lineal Adaptativo)
cuando las redes cayeron en desgracia al final de los años setenta.
Tiene una estructura casi idéntica a la del perceptrón general. La figura 2.7. muestra la estructura de
una red Adaline.
s
X0 Salida
Lineal
y
X1 W0 1
W1 S y
s
X2 Salida
W2 Combinador Adaptativo Lineal -1 binaria
W
Conmutador Bipolar
XN N
46
REDES NEURONALES ARTIFÍCIALES I
combinador adaptativo lineal (ALC). Si la salida del ALC es positiva, la salida de la red es
+1. si la salida del ALC es negativa, entonces la salida de la red es –1.
El ALC lleva a cabo el cálculo de una suma de productos empleando los vectores de
entrada y de peso, y aplica una función de salida para obtener un valor único de salida, tal y
como lo hace el perceptrón.
La función de salida en este caso es la función identidad, así como la función de activación.
El uso de esta función como función de salida y como función de activación significa que la
salida es igual a la activación, que es lo mismo que la entrada neta de la unidad.
Algoritmo de aprendizaje
La regla de aprendizaje de Widrow-Hoff o LMS (Least Mean Square), que utiliza la red
Adaline para su entrenamiento, hace posible la realización del paso 3.
Por medio de las siguientes ecuaciones, se realiza la actualización de los parámetros de la red:
e=t-a
47
REDES NEURONALES ARTIFÍCIALES I
R = E(P Pt)
1
0<α<
λmax
Aplicaciones
Ejercicios
48
REDES NEURONALES ARTIFÍCIALES I
1
p1 = t1=1;
1
1
p2 = t2=-1;
−1
α = 0.25
W =[0 0], b=0
Primera época
1
p1 = t1=1;
1
a = pureline(wp + b) = wp + b
1
a = [0 0] + 0
1
a=0
Se calcula el error:
e = t1 – a = 1 -0 = 1
Wnuevo = [0 0] + 2(0.25)(1)[1 1]
49
REDES NEURONALES ARTIFÍCIALES I
1
p2 = t2=-1;
−1
a = pureline(wp + b) = wp + b
1
a = [0.5 0.5] + 0
−1
a=0
Se calcula el error:
e = t2 – a = -1 -0 = -1
Wnuevo = [0 1] b= 0
Segunda época
1
p1 = t1=1;
1
a = pureline(wp + b) = wp + b
1
a = [0 1] + 0
1
a=1
Se calcula el error:
e = t1 – a = 1 -1 = 0
50
REDES NEURONALES ARTIFÍCIALES I
1
p2 = t2=-1;
−1
a = pureline(wp + b) = wp + b
1
a = [0 1] + 0
−1
a = -1
Se calcula el error:
e = t2 – a = -1 + 1 = 0
W = [0 1]
b=0
La figura 2.8 muestra la solución del ejercicio. En ella se puede visualizar el vector de
pesos W, la frontera de decisión (perpendicular al vector de pesos W) atravesando el
origen. Esto último se debe a que el valor del umbral b es cero.
51
REDES NEURONALES ARTIFÍCIALES I
1
p1 = − 1 t1=-1;
− 1
1
p2 = 1 t2=1;
−1
W =[0 0 0]
b=0
R = E(P · Pt)
R = E(P Pt)
1 1
R= P1· P1t + P2· P2t
2 2
1 1
1 1 1
R = − 1 [1 –1 –1] + [1 1 –1]
2 2
− 1 −1
1 − 1 − 1 1 1 − 1 2 0 − 2 1 0 − 1
1 1 1
R = − 1 1 1 + 1 1 − 1 = 0 2 0 = 0 1 0
2 2 2
− 1 1 1 − 1 − 1 1 − 2 0 2 − 1 0 1
P(λ) = |A – λI|
Esto hace:
52
REDES NEURONALES ARTIFÍCIALES I
1 0 − 1 λ 0 0 (1 − λ ) 0 −1
0 1 0 0 λ 0 0 (1 − λ ) 0
- =
− 1 0 1 0 0 λ −1 0 (1 − λ )
(1 − λ ) 0 −1
0 (1 − λ ) 0 = (1 - λ)3 – (1 – λ)
−1 0 (1 − λ )
Factorizando se tiene:
(1 - λ)3 – (1 – λ)
= (1 - λ) {(1 - λ)2 – 1}
= (1 - λ) {1 - 2 λ + λ2 -1}
= (1 - λ) {-2 λ + λ2 }
= (1 - λ)(λ−2) λ = 0
λ1 =0
λ2=1
λ3=2
λmáx = λ3 = 2
1
0<α<
λmax
1
= 1 / 2 = 0.5
λmax
53
REDES NEURONALES ARTIFÍCIALES I
Primera época
1
p1 = − 1 t1=-1;
− 1
a = pureline(wp + b) = wp + b
1
a = [0 0 0] − 1 + 0
− 1
a=0
Se calcula el error:
e = t1 – a = -1 -0 = -1
1
p2 = 1 t2=1;
−1
a = pureline(wp + b) = wp + b
1
a = [-0.4 0.4 0.4] 1 + 0
−1
54
REDES NEURONALES ARTIFÍCIALES I
a = -0.4
Se calcula el error:
e = t2 – a = 1 + 0.4 = 1.4
Segunda época
1
p1 = − 1 t1=-1;
− 1
a = pureline(wp + b) = wp + b
1
a = [0.16 0.96 –0.16] − 1 + 0
− 1
a = -0.64
Se calcula el error:
e = t1 – a = -1 + 0.641 = -0.36
55
REDES NEURONALES ARTIFÍCIALES I
W = [0 1 0]
b=0
Simulaciones en MATLAB
0
p1 = t1=1;
2
2
p2 = t2=1;
0
− 2
p3 = t3=0;
− 2
clear;echo on;clc;
56
REDES NEURONALES ARTIFÍCIALES I
[net,tr]=train(net,P,T);
net.IW{1,1}=[-1 -1];
net.b{1}=[2];
W=net.IW{1,1}
b=net.b{1}
plotpv(P,T)
plotpc(net.IW{1,1},net.b{1})
echo off
%net.IW{1,1}=[-1 -1];
%net.b{1}=[2];
W=net.IW{1,1}
W =
0.1598 0.1598
57
REDES NEURONALES ARTIFÍCIALES I
b=net.b{1}
b =
0.3554
plotpv(P,T)
plotpc(net.IW{1,1},net.b{1})
echo off
La salida del programa (además del proceso descrito en la ventana de comandos de Matlab)
es una sucesión de gráficas donde aparece la variación del error en un número N de épocas.
Esto se muestra en la figura 2.9.
58
REDES NEURONALES ARTIFÍCIALES I
CAPITULO III
El Perceptrón multicapa (MLP) puede ser usado para la predicción de una serie de datos
en el tiempo; tal a sido su éxito en la medición de la demanda de gas y electricidad,
además de la predicción de cambios en el valor de los instrumentos financieros.
3.1.1 Características
Una red neuronal hacia adelante (feedforward) con dos capas (una oculta y una de salida)
es comúnmente usada para aproximación de mapas no conocidos. Si la capa de salida es
lineal, la red puede tener una estructura similar a una red de base radial (RBF).
59
REDES NEURONALES ARTIFÍCIALES I
Figure 3.1: Diagrama a bloques de una red neuronal de una sola capa oculta con conexión 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 Wh en la capa oculta, y una matriz de m ×L Wy en la capa de salida. El
funcionamiento de la red puede ser descrito de la siguiente manera:
u(n) = Wh ·x(n) ; h(n) = ψ(u(n)) - hidden signals ;
v(n) = W · h(n) ;
y
y(n) = ϕ(v(n)) - output signals .
o simplemente como
y(n) = ϕ ( Wy ·ψ ( Wh ·x(n) ) )
(3.12)
Sigmoidal unipolar:
1 1
y = ϕ( v ) = = (tanh(βv/2) -1) (160,30)
1 + e-βv 2
Sigmoidal bipolar:
60
REDES NEURONALES ARTIFÍCIALES I
ϕ( v ) = tanh(βv)(320,0)
Nota que
3.1.2 Arquitectura
3.1.3 Aplicaciones
El rango de tareas que el Perceptrón puede manejar es mucho mayor que simples decisiones
y reconocimiento de patrones. Por ejemplo, se puede entrenar una red para formar el tiempo
pasado de los verbos en ingles, leer texto en ingles y manuscrito.
3.2.0 Adaline
61
REDES NEURONALES ARTIFÍCIALES I
Bernard Widrow comenzó a trabajar en las redes neuronales a finales de los años 50, al
mismo tiempo que Frank Rosenblatt desarrollaba la regla de aprendizaje del perceptrón. En
1960 Widrow y su estudiante graduado Marcian Hoff, introdujeron la red ADALINE
(ADAptive Linear NEuron), y su regla de aprendizaje a la cual ellos llamaron el algoritmo
de Mínimos Cuadrados o LMS (Least Mean Square).
Una red neuronal como la que se muestra en la figura 3.1 tiene una capa de S neuronas
conectadas a R entradas a través de una matriz de pesos W.
62
REDES NEURONALES ARTIFÍCIALES I
La regla de Widrow – Hoff puede entrenar solamente una capa de redes lineales. Esto no es
tanto una desventaja, ya que una red de una sola capa es tan capaz como una red de
múltiples capas. Para cada red lineal multicapa, existe una red lineal de una sola capa.
Si tenemos un vector de entradas X puede ser muy sencillo determinar el vector de pesos W
que produzcan una salida S. Sin embargo, si se tiene un conjunto de entrada {x1, x2, ..., xL},
a cada uno de los cuales les corresponde una salida correcta dk, con k = 1, ..., L, ya no es tan
fácil saber cuáles son los pesos que producirían un mejor resultado; para esto, el Adaline
utiliza la regla de mínimos cuadrados, o que minimiza el error cuadrático medio, llamada
LMS (Least Mean Square), o regla delta, porque minimiza la delta o diferencia entre el
valor obtenido y el deseado.
Si queremos que el mejor vector de pesos que realice la proyección de los vectores de
entrada xk a las salidas deseadas dk, lo que estamos buscando es minimizar el error en la
salida. Si denotamos la salida para el k-ésimo vector de entrada con sk, el error es denotado
por la ecuación 3.1.
ε = d k − sk (3.21)
Entonces el error cuadrático medio, que es el valor que deseamos minimizar esta dado por
la ecuación 3.2.
1 L 2
ε k2 = ∑εk
L k =1
(3.22)
ξ = ε k2 = ( d k − w t x k )
2
= d k2 + w t x k xtk w − 2 d k xtk w
Para minimizar esta función debemos derivar con respecto a w e igualar a cero, como se
muestra en 3.24.
63
REDES NEURONALES ARTIFÍCIALES I
∇ξ = 2 x k xtk w − 2 d k xk = 0
x k xtk w = d k xk (3.24)
−1
w = x k xtk dk xk
Ahora, como ξ representa al error cuadrático medio, su gráfica (con dos entradas y dos
pesos) debe ser un paraboloide, y como no puede ser negativo, la gráfica debe ser cóncava
hacia arriba. De aquí resta que el mínimo encontrado es único, y que no tiene máximos.
Pero para obtener un vector de pesos como indica el procedimiento anterior es necesario
contar con información estadística acerca de los vectores de entrada. Pero basándonos en lo
obtenido, podemos desarrollar un método capaz de aproximar cada vez más el vector de
pesos al que nos produce un error cuadrático mínimo. Empezamos suponiendo que el
vector de pesos es una función discreta del tiempo, en el que cada paso se actualiza
basándose en el vector anterior, como se muestra en la ecuación 3.25.
w ( t + 1) = w ( t ) + ∆w ( t ) (3.25)
Este cambio ∆w lo se aproxima mediante el gradiente del error, que nos da la dirección del
ascenso más pronunciado, que multiplicado por un factor µ nos da la dirección y magnitud
correcta; vea la ecuación 3.26
w ( t + 1) = w ( t ) − µ∇ξ ( w ( t ) ) (3.26)
Pero asumimos que no conocemos las estadísticas de las entradas, por lo que no podemos
encontrar el gradiente exacto del error; para librar este inconveniente, aproximamos el error
esperado con el error actual, con lo que se obtiene 3.27 y 3.28.
∇ξ ≈ ∇ε kt ( t )
≈
((
∂ dk − wt ( t ) xk ) 2
) (3.27)
∂w
≈ −2ε k ( t ) x k
Esta es la expresión para el descenso más pronunciado, del algoritmo LMS. Al factor lr=2µ
se le conoce como constante de proporcionalidad o tasa de aprendizaje. La actualización
de pesos y de umbral para la red adaline se describe por la ecuación 3.29.
w ( t + 1) = w ( t ) + 2αε k x k
3.29
b( t + 1) = b( t ) + 2α e( t )
Nota:
64
REDES NEURONALES ARTIFÍCIALES I
Para la elección de un valor de µ debemos tener cuidado. Se puede suponer que mientras
que el valor de µ sea mayor, nos acercaremos más rápido al error mínimo, sin embargo no es así: un
valor grande de µ nos puede hacer que la solución viaje por toda la superficie del paraboloide sin
convergir nunca. Por otro lado, un valor muy pequeño seguramente provocará que se consuma un
tiempo mayor durante el entrenamiento.
3.2.4 Aplicaciones
Esta red ha sido extensamente utilizada en ciencia, estadística (en el análisis de regresión
lineal), ingeniería (el procesamiento adaptativo de señales, control de sistemas), y así
sucesivamente.
En este ejemplo una configuración Adaline como en la figura (3.4) es usada para predecir
una señal de unidimensional (series de tiempo). Para predecir el siguiente valor de la señla
de entrada, p muestras de ésta son colocados a la Adaline. La señal de entrada es también
usada como la salida deseada. La regla de aprendizaje LMS es usada para adaptar el vector
de pesos en cada paso.
Empezaremos con las especificaciones de una señal senoidal de frecuencia 2kHz muestrada
cada 50µsec. Después de 5sec la frecuencia de la señal se cuadriplicara con el tiempo de
muestreado siendo también reducido a 12.5µsec.
f1 = 2 ; % kHz
ts = 1/(40*f1) ; % 12.5 µsec -- sampling time, fs = 80kHz
65
REDES NEURONALES ARTIFÍCIALES I
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')
p = 4 ; % Number of synapses
X = convmtx(xt, p) ; X = X(:, 1:N) ;
d = xt ; % The target signal is equal to the input signal
y = zeros(size(d)) ; % memory allocation for y
eps = zeros(size(d)) ; % memory allocation for eps
eta = 0.4 ; % learning rate/gain
w = rand(1, p) ; % Initialisation of the weight vector
for n = 1:N % LMS learning loop
y(n) = w*X(:,n) ; % predicted output signal
eps(n) = d(n) - y(n) ; % error signal
w = w + eta*eps(n)*X(:,n)'; % weight update
end
66
REDES NEURONALES ARTIFÍCIALES I
El perceptrón solo es el ejemplo más elemental de una red neuronal, de hecho, no puede
siquiera ser considerado una "red", puesto que no intervienen otros elementos. Si se
combinan varios perceptrones en una "capa", y los estímulos de entrada después se suman
tendremos ya una red neuronal. Una red neuronal muy eficaz para resolver
fundamentalmente problemas de reconocimiento de patrones es la red neuronal de
propagación hacia atrás, en inglés back propagation network.
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 descripción clara y concisa del mismo. Y es
que en un primer momento no se valoró como se merecía. El hecho de que permaneciera en el
olvido tanto tiempo también debe ser una consecuencia de la condición interdisciplinaria del campo,
repartido entre las matemáticas y ciencias de la computación, las neurociencias y la sicología.
Desde la fecha clave de 1986 han surgido nuevas versiones que han tratado de aumentar la
velocidad de convergencia del algoritmo y han tratado de superar algunos de sus inconvenientes,
como la tendencia a alcanzar mínimos locales y no globales, punto que será discutido más tarde.
67
REDES NEURONALES ARTIFÍCIALES I
3.3.1 Características
Al hablar de redes de retropropagación o redes de propagación hacia atrás hacemos referencia a un
algoritmo de aprendizaje más que a una arquitectura determinada. La retropropagación consiste en
propagar el error hacia atrás, es decir, de la capa de salida hacia la capa de entrada, pasando por las
capas ocultas intermedias y ajustando los pesos de las conexiones con el fin de reducir dicho error.
Hay distintas versiones o reglas del algoritmo de retropropagación y distintas arquitecturas de
conexión a las que pueden ser aplicados.
Durante mucho tiempo no se dispuso de algoritmos para entrenar redes multicapa, y como las redes
de una capa estaban muy limitadas en cuanto a lo que eran capaces de representar, el campo de las
redes neuronales artificiales estaba estancado. La invención y perfeccionamiento del algoritmo de
retropropagación dio un gran impulso al desarrollo de este campo. Tiene un buen fundamento
matemático y a pesar de sus limitaciones ha expandido enormemente el rango de problemas donde
se aplican las redes neuronales artificiales.
Descripción matemática
Se explica una versión del algoritmo (Hinton, 1992) para redes con las siguientes características:
No recurrentes
Función de activación sigmoidal
Capas totalmente interconectadas
Operación totalmente síncrona
3.3.2 Arquitectura
68
REDES NEURONALES ARTIFÍCIALES I
Dada una unidad j-ésima de la capa de salida y unidades i-ésimas de la capa oculta
inmediatamente anterior, calculamos la entrada total ponderada y la salida o activación de
la misma.
Y 1
Y1
W1,j
W2,j
Y 2 Y j
Wn,j
Ym
Y n
n
x j = ∑ ( y i ⋅ wij )
i =1
1
yj = −xj
1+ e
Una vez computadas las actividades de todas las unidades de salida se calcula una
estimación del error, generalmente una función cuadrática de los errores individuales
cometidos por cada unidad, siendo cada error individual la diferencia entre la salida
deseada y la obtenida.
1
E= ∑ (d j − y j ) 2 siendo dj la salida deseada para la unidad j-ésima
2 j
Nota: Se van a indicar por un lado las expresiones matemáticas y por otro lado la explicación
intuitiva de cada paso. Conviene recordar que nuestro objetivo es calcular como varía el error al
variar el peso de cada conexión (tasa de variación del error respecto al peso de una conexión, EP)
69
REDES NEURONALES ARTIFÍCIALES I
Cómputo de la rapidez de variación del error al cambiar la entrada total que recibe cada
unidad de salida.
∂E ∂E ∂y j
δj = = = EA j y j (1 − y j ) = y j (1 − y j )(d j − y j )
∂x j ∂y j ∂x j
Es igual a la tasa de variación del error al variar su activación multiplicado por la tasa de variación
de la activación al cambiar su entrada ( que es justamente la derivada de la función sigmoidal )
∂E ∂E ∂x j
EPij = = = δ j yi
∂wij ∂x j ∂wij
Es igual a la tasa de variación del error al variar su entrada, por la tasa de variación de la entrada al
variar ese peso.
Hasta ahora sabemos calcular el EA sólo para las unidades de salida, ¿ qué pasa con las unidades
ocultas?. En este caso no tenemos una estimación directa del error aportado por cada unidad oculta;
aquí es donde interviene la retropropagación o propagación hacia atrás del error:
Y1
Y 1
Wi,1
Wi,2
Wh,i
Yi Y2
Wi,m
Ym
Yn
La unidad i-ésima de la capa oculta afecta a todas las unidades de salida, por lo tanto, para estimar
como varía el error al variar la actividad de esa unidad oculta, habrá que sumar los efectos
individuales de su actividad sobre todas las neuronas de salida. Cada efecto individual sobre la
variación del error, será igual a la tasa de variación del error de la unidad de salida al cambiar su
entrada total, multiplicado por la tasa de variación de su entrada al variar la actividad de la unidad
oculta.
70
REDES NEURONALES ARTIFÍCIALES I
∂E m
∂E ∂x j m
EAi = = ∑( ) = ∑ (δ j ⋅ wij )
∂yi j =1 ∂x j ∂y i j =1
Conociendo EA para las unidades de cualquier capa podemos calcular δ y EP con las
expresiones ya conocidas.
m
δ i = EAi y i (1 − y i ) = y i (1 − y i ) ∑ (δ j wij )
j =1
EPhi = δi ⋅ y h
Disponiendo de la tasa de variación del error respecto al peso de una conexión (EP), podemos usar
distintas reglas para modificar ese peso en aras a reducir dicho de error. Una de las primeras reglas
que aprovechó este algoritmo es la regla delta generalizada, que calcula el incremento a aplicar a
un peso como una proporción directa de la tasa de variación del error.
Los resultados dependen de los valores iniciales, aleatorios, de las conexiones. Esto hace
que sea conveniente entrenar varias redes con distintas valores iniciales y elegir la que
mejor funcione.
A veces se requiere mucho tiempo para obtener soluciones sencillas. Este problema se
reduce gracias al aumento de potencia de los procesadores y al uso de nuevas tecnologías,
sin embargo, el tiempo de cómputo aumenta mucho al aumentar el tamaño de la red. Si bien
el volumen de cálculo es proporcional al número total de conexiones. En la práctica, al
aumentar el tamaño de la red, hacen falta más ejemplos de aprendizaje, y eso provoca un
aumento aumenta mucho mayor del tiempo de aprendizaje. Para incrementar la velocidad
de convergencia se han desarrollado diferentes modificaciones del algoritmo.
La “interferencia catastrófica” o empeoramiento en el rendimiento del sistema, como
consecuencia de la incorporación de nuevos ejemplos de aprendizaje.
La parálisis: esto sucede cuando los pesos quedan ajustados a valores muy grandes, esto
hace operar a las unidades de proceso con una activación muy próxima a 1, y por lo tanto,
el gradiente del error, tiende a 0, en consecuencia no se producen modificaciones en los
pesos, el aprendizaje queda detenido. Por eso es conveniente aleatorizar los pesos de las
conexiones con valores pequeños y usar la tasa de aprendizaje, también pequeña, a pesar
de que se alentase el aprendizaje.
Inestabilidad temporal. Si usamos un coeficiente de aprendizaje elevado, se van a producir
incrementos grandes en los pesos, de manera que es fácil pasarse de incremento y tener que
71
REDES NEURONALES ARTIFÍCIALES I
Distribución de Pesos
pesos
Figura 3.9. Problema de los mínimos locales
Podemos considerar el error como una superficie llena de desniveles, si soltamos una pelota
caerá en algún valle, pero no necesariamente en el más hondo, sino en el más cercano (un
mínimo local). Una idea intuitiva para solucionar esto, sería aplicarle cierta energía a esa
superficie agitándola o haciéndola vibrar, esto haría saltar a la pelota de valle en valle,
como de los valles más profundos es más difícil salir, tendería a estar en valles cada vez
más profundos. Si dejamos de agitar esa superficie poco a poco, al final tendremos la pelota
en el valle más profundo de la superficie.
Otras técnicas que pueden ayudar a no caer en mínimos locales consisten en añadir cierto
nivel de ruido a las modificaciones de los pesos de las conexiones. Otra medida propuesta
es añadir ruido a las conexiones, pero esto es más útil para darle robustez y aumentar la
capacidad de generalización de la red. Estas medidas, por contra, aumentan el tiempo de
aprendizaje.
Aplicaciones
Ejercicio y simulaciones en Matlab
Ejemplo de una función de aproximación (fap2D.m)
En este ejemplo de MATLAB aproximamos dos funciones de dos variables,
y = f(x) , or y1 = f1 ( x1, x2) , y2 = f2 ( x1, x2)
72
REDES NEURONALES ARTIFÍCIALES I
Los pesos del perceptron, Wh, Wy, son entrenados usando el algoritmo básico de back-
propagation.
73
REDES NEURONALES ARTIFÍCIALES I
X1=-2.00 -1.75 ... 1.50 1.75 X2=-2.00 -2.00 ... -2.00 -2.00
-2.00 -1.75 ... 1.50 1.75 -1.75 -1.75 ... -1.75 -1.75
. . . . . . . . . . . .
-2.00 -1.75 ... 1.50 1.75 1.50 1.50 ... 1.50 1.50
-2.00 -1.75 ... 1.50 1.75 1.75 1.75 ... 1.75 1.75
74
REDES NEURONALES ARTIFÍCIALES I
La retroalimentación:
Ey = D - Y; % Los errores de salida (m x K)
JJ = (sum((Ey.*Ey)'))'; % El error total después de una época
% de aproximación m x 1
delY = Ey.*Yp; % Señal de salida delta (m x K)
75
REDES NEURONALES ARTIFÍCIALES I
Las dos funciones de aproximación son graficadas después de cada época. Ver la figura
3.12 de la aproximación final.
D1(:)=Y(1,:)'; D2(:)=Y(2,:)';
surfc([X1-2 X1+2], [X2 X2], [D1 D2]) J(:,c) = JJ ;
end % fin del entrenamiento
La suma del error cuadrático al final de cada época de entrenamiento es guardado en una
matriz de 2 × C y mostrado en la figura 3.13.
76
REDES NEURONALES ARTIFÍCIALES I
Figura 3.13: Error de entrenamiento por cada función al final de cada época
77
REDES NEURONALES ARTIFÍCIALES I
0≤ γ ≤ 1
m m m m–1 T
∆ W ( k) = γ ∆ W ( k – 1 ) – ( 1 – γ )α s ( a )
m m m m –1 T
∆ W ( k) = γ ∆ W ( k – 1 ) – ( 1 – γ )α s ( a )
15
10
-5
-5 0 5 10 15
78
REDES NEURONALES ARTIFÍCIALES I
Al usar el método del momento se puede usar una velocidad de aprendizaje mayor,
mientras se mantenga la estabilidad del algoritmo. El momento tiende a acelerar la
convergencia cuando la trayectoria se esta moviendo en una dirección constante. Este
método tiende a hacer la trayectoria continua en la misma dirección.
2πk
w( k ) = 1 + sin ---------
16
2
1.5
0.5
0
0 50 100 150 200
γ = 0.98
Figura 3.15. Ejemplo del algoritmo del momento
79
REDES NEURONALES ARTIFÍCIALES I
1.5
0.5
0
0 50 100 150 200
γ = 0.9
Figura 3.16. Muestra el algoritmo del momento
80
REDES NEURONALES ARTIFÍCIALES I
Ejemplo:
15
10
-5
-5 0 5 10 15
η = 1.05 ρ = 0.7 ζ = 4%
Figura 3.17. Muestra el algoritmo de razón de aprendizaje variable
w21,1
1.5 60
1 40
0.5 20
0 0 0 0
10 10 2 10 4 10 10 2 10 4
Iteration Number Iteration Number
3.4.2 TÉCNICAS DE OPTIMIZACION NUMÉRICA
81
REDES NEURONALES ARTIFÍCIALES I
xk + 1 = xk + α kp k
3.- Seleccionar la siguiente dirección de acuerdo con:
p k = – gk + βk p k – 1
donde
∆g k – 1 gk
T
gTk gk ∆gk – 1 gk
T
βk = --------T--------------------- βk = -----
T
-------------------- βk = ----T---------------------
∆gk – 1 p k – 1 gk – 1 g k – 1 gk – 1 gk – 1
82
REDES NEURONALES ARTIFÍCIALES I
Figura 3.19. (a) Intervalo sin reducir. (b) Reducción del intervalo entre a y b.
Algoritmo LMBP
Presentar todas las entradas a la red y calcular la salidas correspondiente y los errores.
Calcular la suma de los errores cuadráticos en todas las entradas. Calcular la matriz
Jacobiana. Después de inicializar, calcule la sensibilidades con el algoritmo de
retropropagación. Aumente la matrices en las sensibilidades de Marquardt. Calcule los
elementos de la matriz Jacobiana.
Solucione para obtener el cambio en los pesos.
Recalcule la suma del error cuadrático con los nuevos pesos.
• Si esta nueva suma de cuadrados es mas pequeña, que el calculado en el paso 1,
entonces divida mk en u, actualice los pesos y regrese al paso 1.
• Si la suma de los cuadrados no es reducida, entonces multiplique m k por u y regrese
al paso 3.
83
REDES NEURONALES ARTIFÍCIALES I
15
10
-5
-5 0 5 10 15
Figura 3.20. Ejemplo de la trayectoria del algoritmo
El LMBP es el algoritmo mas rápido que se ha probado para entrenar redes neuronales
multicapa de tamaño moderado.
El primer paso del entrenamiento de una red neuronal es crear la red. La función newff crea
una red con conexión hacia adelante. Esta función requiere de cuatro parámetros y regresa
un objeto del tipo red:
84
REDES NEURONALES ARTIFÍCIALES I
Por ejemplo el siguiente comando crea una red de dos capas. Tendrá un vector de entrada
con dos elementos (p-1 = 2), tres neuronas en la primera capa (L-1 = 3) y una neurona en la
segunda capa (salida) (m = 1).
XR = [-1 2; 0 5];
net=newff(XR,[L-1,m],'tansig','purelin','traingd');
Este comando crea un objeto del tipo red y también inicializa los pesos y el bias de la red,
usando por default el comando (initnw). Por lo tanto la red esta lista para ser entrenada.
Si necesitas re- inicializar, o cambiar la inicialización por default de los pesos, utiliza el
comando init:
net=init(net);
Esta función toma como entrada un objeto de tipo red y regresa un objeto de tipo red con
los pesos y bias inicializados. Esta función es invocada por el comando newff y usa el
algoritmo de Nguyen-Widrow.
Si, por ejemplo, queremos re-inicializar los pesos y los bias en la primera capa de forma
aleatoria, usando la función rands, debemos usar los siguientes comandos:
net.layers{1}.initFcn = 'initwb';
net.inputWeights{1,1}.initFcn = 'rands';
net.biases{1,1}.initFcn = 'rands';
net.biases{2,1}.initFcn = 'rands';
net = init(net);
Simulación (sim)
La función sim simula una red neuronal. La función sim toma la entrada de la red X, y el
objeto red net, y regresa la salida de la red Y.
85
REDES NEURONALES ARTIFÍCIALES I
Aquí se muestra como puede ser usado el comando simuff, para simular la red que creamos
anteriormente para un vector de entrada simple:
x = [1;2];
a = sim(net,x)
a = -0.1011
Abajo, el comando sim es llamado para calcular las salidas para un vector de entrada de
tres elementos.
X = [1 3 2;2 4 1];
Y = sim(net,X)
Y = -0.1011 -0.2308 0.4955
La función adapt es usada para entrenar redes en el modo de crecimiento (pattern). Esta
función toma el objeto red, las entradas y los valores deseados para el entrenamiento, y
regresa el objeto red entrenado con los valores de salida y errores de la red para los pesos y
bias finales.
Ejemplo
86
REDES NEURONALES ARTIFÍCIALES I
% 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) ; % Verificación
D1(:)=Y(1,:)'; D2(:)=Y(2,:)';
% Graficación de las funciones aproximadas
figure(3)
surfc([X1-2 X1+2], [X2 X2], [D1 D2]), grid, ...
title('function approximation'), drawnow
Las redes de Base radial fueron desarrolladas por Broomhead y Lowe (1988), J. Moody y
C. Darken (1989)
Las redes de función de base radial (RBFN) han sido tradicionalmente asociados con
funciones radiales en una red de capa simple.
Los modelos de redes tratados anteriormente están basados en unidades (neuronas)
que producen a la salida una función lineal del producto escalar del vector de
entrada y el vector de pesos.
a= F( WP +b)
87
REDES NEURONALES ARTIFÍCIALES I
En las RBFN consideraremos una clase dentro de los modelos de las redes neuronales, en
el cual la activación de las unidades ocultas, esta determinada por la distancia entre el
vector de entrada y el vector de pesos
A= f(dist(W,P)*b)
Las redes de base radial pueden requerir mas neuronas que las redes de retropropagación
estándar, pero ellas pueden ser diseñadas a menudo en una fracción del tiempo que toma
entrenar una red de retropropagación estándar. Estas redes tienen un mejor desempeño
cuando el conjunto de vectores de entrenamiento es amplio.
Para este tipo de redes se crearon procedimientos para entrenamiento de redes de función
de base radial, los cuales son mucho más rápidos que los métodos usados para entrenar un
perceptrón multicapa.
3.5.1 Características
Modelo Neuronal
La figura 3.21 muestra el modelo neuronal de una red de base radial con R entradas.
La función de transferencia, para una función de base radial es radbas. Se puede observar
que la expresión para la entrada de red a una neurona con función tipo radbas no es igual a
las vistas anteriormente. Una neurona con función de base radial recibe como entrada de
red, la distancia vectorial entre el vector de pesos W y el de entrada P, multiplicada por el
umbral B. La figura 3.22 muestra gráficas de la función de transferencia de base radial.
88
REDES NEURONALES ARTIFÍCIALES I
La gráfica de la figura 3.22 muestra una función de base radial la cual tiene un máximo de
uno cuando la entrad es un cero. Esta función es útil al efectuar la resta entre el vector de
pesos W y el vector de entrada. conforme la distancia vectorial entre W y P decrece, la
salida se incrementa. De esta forma la función de base radial actúa como un detector, cuya
salida es uno cuando la entrada P es idéntica al vector W.
El umbral B permite la sensibilidad de la neurona de base radial (redbas) sea ajustada. Por
ejemplo si una neurona tiene un umbral de 0.1este enviaría una salida de 0.5, para
cualquier vector de entrada P a una distancia de 8.326 (0.8326/B) a partir del vector de
peso W.
Las redes de base radial consistente de dos capas: una capa oculta de base radial (redbas) de
S1 neuronas y una capa de salida lineal (pureline) de S2 neuronas.
Figura 3.23. Arquitectura Compacta de una red neuronal con funciones de base radial.
Las líneas de código contenidas debajo de cada capa de la figura 3.23 están contenidas en
la función simurb, la cual toma un vector de entrada P, los pesos y los umbrales de la red
de base radial, y regresa la salida correspondiente para cada capa.
89
REDES NEURONALES ARTIFÍCIALES I
a 2 = simurb( p, W 1, b1, W 2, b 2)
Se puede comprender como esta red se comporta al seguir un vector de entrada P, a través
de la red a la salida a2. Si se presenta un vector de entrada tal como una red, cada neurona
en la capa de base radial redbas, enviara un valor de salida de acuerdo a que tan próximo
este el vector de entrada al vector peso de cada neurona.
El resultado es que las neuronas de base radial redbas, con vectores de peso muy diferentes
de los vectores de entrada P, tendrán salidas cercanas a cero. Estas salidas de valor pequeño
tendrán efectos mínimos en las salidas lineales de las neuronas.
En contraste cualquier neurona de base radial redbas cuyo vector de peso es muy próximo
al vector de entrada P tendrá un valor cercano a uno. Si una neurona tiene una salida de uno
sus pesos de salida en la segunda capa pasan sus valores a las neuronas lineales pureline,
en la segunda capa.
De hecho, si únicamente una neurona tiene salida uno, y todas las otras tienen salida cero o
cercana a este, la salida de la capa lineal, activaría las neuronas de los pesos de salida. Esto
seria un caso extremo. Típicamente varias neuronas se activan siempre, con variación de
grados.
Las redes de base radial pueden ser diseñadas con la función solverbe, la cual diseña
actualmente una red con cero error en los vectores de entrenamiento.
Esta función trabaja creando tantas neuronas de base radial como existan vectores de
entrada P. Cada vector de pesos de las neuronas de base radial W1 es ajustado a la
transpuesta del vector de entrada diferencial. De esta forma se tiene una capa de neuronas
de base radial de tal forma que cada neurona actua como un detector para diferentes
vectores de entrada. Si existen Q vectores de entrada entonces existirán Q neuronas. Cada
umbral b1 es ajustado a 0.8326/sc. Esto determina la anchura de un área en el espacio de
entrada en al cual cada neurona responde. Si S es 4 entonces cada neurona de base radial
responderá con 0.5 o más a cualquier vector de entrada, dentro de un vector de distancia de
4 a partir de su vector de peso. Como pudiera verse, ese debe ser lo suficientemente grande,
que las neuronas respondan fuertemente a las regiones de traslape del espacio de entrada.
90
REDES NEURONALES ARTIFÍCIALES I
Una vez que W1 y b1 se han encontrado, la salida de la capa radial A1 se puede calcular,
por las entradas P. Ahora se diseñara los pesos de la capa lineal. Se conocen las entradas a
la capa lineal A1 y el objetivo T. Por lo tanto se puede llamar a la función solvelin para
calcular los pesos W2 y el umbral b2, los cuales minimizan la suma del error cuadrático.
De esta forma, la función solverbe crea una red con cero error en los vectores de
entrenamiento. La única condición que se tiene que conocer es asegurar que S sea lo
suficientemente grande de tal forma que las regiones de entrada activas de las neuronas de
base radial se traslapen los suficiente que varias neuronas de base radial siempre salidas
ligeramente grandes en cualquier momento. Esto hace la función de red más suave y resulte
en una mejor generalización para nuevos vectores de entrada ocurriendo entre los vectores
de entrada usados en el diseño. (Sin embargo, S no debe ser demasiado grande, de tal forma
que cada neurona este respondiendo efectivamente en el mismo largo y espacio de
entrada.
El único inconveniente con la función solverbe es que produce una red con tantas neuronas
en la capa oculta como existan vectores de entrada. Por esta razón solverbe no regresa una
solución aceptable cuando se necesitan muchos vectores de entrada para definir a la red
neuronal, como normalmente sucede.
La función solverb interactivamente crea una red de base radial con una neurona a la vez.
Las neuronas son agregadas a la red hasta que la suma de los errores cuadrados caen debajo
de un error meta o se ha alcanzado un numero máximo de neuronas.
Los parámetros de diseño indican que tan a menudo se mostraran los resultados, el numero
máximo de neuronas en la capa de base radial, la meta del error cuadrático medio, y la
extensión de las neuronas de base radial. Algunos o todos los parámetros pueden ser
pasados a solverb; los parámetros omitidos serán remplazados por valores por omisión.
91
REDES NEURONALES ARTIFÍCIALES I
Las redes de base radial aun cuando se diseñen eficientemente por la función solverb,
tienden a tener la mayoría de las veces mas neuronas que una red de retropropagación con
neuronas con funciones sigmoidales en la capa oculta.
Esto se debe a que las neuronas sigmoidales pueden tener salidas sobre una región grande
del espacio de entrada, mientras que las neuronas de base radial solo responden a regiones
relativamente pequeñas del espacio de entrada. Esto es que entre más grande es el espacio
de entrada (en términos del numero de entradas e intervalos en los que las entradas varían)
mayor es el numero de neuronas de base radial que se requieren.
Las funciones radiales son simplemente una clase de funciones. En principio, ellas
podrías ser empleadas en cualquier tipo de modelo (lineal o no lineal) y en cualquier
red (una capa o multicapa). De cualquier forma, desde el artículo de Broomhead y
Lowe, acerca de las redes de funciones de base radial (RBF networks) han sido
tradicionalmente asociadas con funciones radiales en una red de una sola capa, tal
como se muestra en la siguiente figura.
92
REDES NEURONALES ARTIFÍCIALES I
Aplicaciones
Ejercicios
Una red RBF es no lineal si las funciones base pueden mover o cambiar de tamaño o si hay
más de una capa oculta.
Las redes de base radial pueden requerir más neuronas que las redes estándar de
retropropagación hacia delante, pero estas pueden ser diseñadas en una fracción de tiempo
que toma entrenar a las redes hacia delante. Este tipo de redes trabajan mejor cuando
muchos vectores de entrenamiento están disponibles.
Las redes de base radial constituyen la base para una transformación no lineal para un
vector de entrada dado. Las funciones radiales están caracterizadas por el hecho de que su
respuesta decrece (o incrementa) monótonamente con la distancia de un punto central. Una
función radial típica es la función Gaussiana que, en el caso de una señal de entrada escalar,
( y −c ) 2
está dada por h( y ) = exp
−
σ2
Los parámetros de esta función son el centro c y el radio, denotado por σ. Para el caso
general de una señal de entrada M-dimensional (vector) la función radial cambia a:
2
y −c
h( y ) = exp− donde y y c son vectores de tamaño M.
σ2
La figura 3.24a. ilustra una RBF Gaussiana con una señal de entrada escalar y, centro c=0 y
un radio σ=1. Uno puede fácilmente ver que el mencionado punto central c es simplemente
el máximo de la función y que decrementa monótonamente es obvio. El decrecimiento
radial característico de las RBF dado en la ecuación 1 puede ser observada al expandirse la
señal de entrada en un vector de entrada de 2 dimensiones. La figura 2b muestra una
gráfica de la función Gaussiana en 3 dimensiones con un vector de entrada de dos
dimensiones y = [ y1; y 2 ]T . El centro c es un vector de la misma dimensión que la señal
de entrada y y establecido en c = [0;0]T , el radio igual a uno: σ=1 . La línea circular del
contorno en la figura 3.24b ilustra que la respuesta de h(y) decrementa monótonamente
incrementando la distancia de su máximo a y = [0;0]T .
93
REDES NEURONALES ARTIFÍCIALES I
Figura 3.24: Función Radial si a)Señal de entrada escalar. b) Vector de entrada 2-dimensional.
Simulaciones en Matlab
94
REDES NEURONALES ARTIFÍCIALES I
CAPÍTULO IV
Ciertos problemas se resuelven de una manera más fácil utilizando arquitecturas de redes
particulares. Para redes feedforward multicapa, el número de neuronas ocultas puede hacer la
diferencia entre éxito y fracaso. Mientras no existan fórmulas estrictas conocidas hasta este
momento, este capítulo trata brevemente algunas reglas empíricas para la selección de un modelo
apropiado de red y la definición de características específicas de dicho modelo.
Ya se ha visto que no hay ninguna razón hasta el momento para usar más de dos capas
ocultas. También se ha visto que para la mayoría de los problemas prácticos, no hay una
razón para usar más de una capa oculta. Aquellos problemas que requieren dos capas
ocultas son muy raros en situaciones de la vida real. Pero la pregunta surge en cómo los
requerimientos teóricos se relacionan con los requerimientos prácticos. ¿Hay problemas
para los cuales el aprendizaje se beneficia teniendo más del mínimo número de capas
ocultas teóricamente requerido?
Por experiencia se sabe que usar más de una capa oculta casi nunca es benéfico. El
problema es que el entrenamiento es dramáticamente más lento cuando se usan más capas
ocultas. Esto se debe a dos efectos:
1) La capa adicional a través de la cual los errores deben ser retropropagados hace que
el gradiente sea más inestable. El éxito de cualquier algoritmo de optimización por
gradiente depende del grado en el cual el gradiente permanece sin ser modificado
mientras los parámetros (pesos en el caso de una red) cambian.
2) El número de mínimos falsos se incrementa usualmente de una manera dramática.
Esto significa que hay una probabilidad mayor de que, después de muchas
iteraciones que consumen tiempo, se quede estancado en un mínimo local, sin más
remedio de abortar la operación o reiniciar.
95
REDES NEURONALES ARTIFÍCIALES I
Existe, por supuesto, la posibilidad de que un problema sea resuelto de una manera
excelente usando muchas capas ocultas con pocas neuronas, mientras que utilizar pocas
capas ocultas con muchas neuronas para ser práctico. El caso es que la experiencia ha
mostrado que casi ninguna solución a un problema se haya visto beneficiada con tener más
de dos capas ocultas.
Se ha puntualizado que la única vez en que una red de dos capas ocultas ha sido requerida
en la práctica se da cuando la red tiene que “aprender” una función con discontinuidad. La
función que se muestra en la figura 4.1. es un buen ejemplo.
Figura 4.1. La discontinuidad tratada con una red de dos capas ocultas.
Diferentes redes fueron entrenadas usando 301 puntos igualmente espaciados de esta
función. Los resultados se muestran en la siguiente tabla:
96
REDES NEURONALES ARTIFÍCIALES I
Lo primero que se nota es que para las redes de tres capas se necesita un número mágico de
neuronas ocultas. La ejecución “da un salto” al cambiar de tres a cuatro neuronas. No es
inusual cuado se tratan datos de entrenamiento con características muy fuertes. Las redes
que son más pequeñas simplemente no tienen la capacidad teórica que se necesita para
separar el espacio del problema. Lo más importante es observar que parece ser un piso que
no puede ser traspasado añadiendo más neuronas. De hecho, el error del grupo de prueba
empieza a incrementar cuando se añaden más neuronas ocultas.
En resumen, se recomienda demasiado que usar una sola capa oculta sea la primera opción
a considerar para un diseño práctico de redes feedforward. Si la utilización de muchas
neuronas ocultas no resuelve el problema de manera satisfactoria, valdrá la pena probar
utilizando una segunda capa oculta y reducir el número de neuronas ocultas si es posible.
97
REDES NEURONALES ARTIFÍCIALES I
El número de neuronas en cada capa sigue una progresión geométrica. Así, si se tiene una
red de tres capas con n neuronas de entrada y m neuronas de salida, la capa oculta tendrá
sqrt(mn) neuronas. Una regla similar se aplica a las redes de cuatro capas, como se puede
ver en la figura 4.3. En este caso, el cálculo del número de neuronas ocultas se hace
ligeramente más complejo:
n
r = 3
m
...................4.1
NHID1 = m·r2
NHID2 = m·r
Las fórmulas anteriores son sólo aproximaciones al tamaño ideal de la capa oculta. Si hay
muy pocas neuronas de entrada y de salida y el problema es complejo, dichas fórmulas
subestimarán el número requerido. Por ejemplo, la aproximación de una función
complicada de una variable involucra sólo una neurona de entrada y una de salida, pero
requiere una docena o más de neuronas ocultas. Por el otro lado, si es un problema simple
con muchas entradas y salidas, bastará con pocas neuronas ocultas.
98
REDES NEURONALES ARTIFÍCIALES I
No se deben tratar estás fórmulas como estrictas o rigurosas. Son muy utilizadas puesto que
un gran número de problemas prácticos que se pueden resolver mediante el uso de redes
neuronales tienen muchas neuronas de entrada y pocas neuronas de salida. En dichos casos,
las reglas piramidales se utilizan con mucha frecuencia.
Hay un peligro que se debe evitar en el procedimiento anterior. Se debe preservar los pesos
aprendidos anteriores para la siguiente prueba. En otras palabras, supóngase que se ha
entrenado una red con cinco neuronas ocultas. Cuando se agrega una sexta neurona,
manténgase los mismos pesos para las primeras cinco. Inicialícense los pesos para la nueva
sexta neurona con números aleatorios pequeños, y continúese entrenando desde ahí. La
racionalización es muy importante. Sólo úsese la nueva neurona para lo que aún no se ha
aprendido. No se debe realizar esto a menos que se haya decidido inicializar totalmente de
manera aleatoria.
Existe una concepción errónea muy común concerniente al entrenamiento iterativo. Se dice
que las redes neuronales pueden ser sobreentrenadas. Quiere decir que hay una cantidad
óptima de entrenamiento y que se puede entrenar más allá de dicho punto para mejorar el
funcionamiento en el conjunto de entrenamiento, pero degradando dicho funcionamiento en
la población general. Esta idea es particularmente arriesgada porque tiene un elemento de
verdad en ella, para el caso en que la red y/o el conjunto de entrenamiento hayan sido mal
diseñados, el mito puede ser realidad.
99
REDES NEURONALES ARTIFÍCIALES I
Error
Datos de prueba
Datos de entrenamiento
Número de iteraciones
entrenamiento
La figura 4.4. es una gráfica del error en una red neuronal para dos conjuntos diferentes de
datos en función del número realizado de iteraciones de entrenamiento. Un conjunto de
datos es el conjunto de entrenamiento. Como era de esperarse, el error para ese conjunto de
datos decrece monótonamente, aproximando una asíntota. El otro conjunto de datos,
llamado conjunto de validación, es tomado de la misma población que el conjunto de
entrenamiento, pero no es usado para entrenar. Su error decrece al inicio del entrenamiento.
Pero, para sorpresa, si se continúa con el entrenamiento más allá de cierto número de
iteraciones, el error empieza a incrementar. Partiendo del hecho que el conjunto de
validación es representativo de la población a la cual la red será finalmente aplicada, la
solución obvia aparente es detener el entrenamiento hasta que el error de dicho conjunto
desaparezca totalmente. Sin embargo, actuar así es un caso en que el remedio es peor que el
mal.
Se vio en la sección anterior que usar muchas neuronas ocultas puede ocasionar un
sobreajuste. En vez de aprender sólo los patrones generales necesarios para producir una
decisión correcta, la red se enfoca excesivamente a idiosincrasias de muestras individuales.
Cuando éstas demuestran no tener valor en su trabajo posterior, el funcionamiento decae.
Ya que se necesita un tiempo considerable para aprender estas idiosincrasias, mientras los
patrones importantes se aprenden al menos rápidamente, la calidad de la red alcanza
frecuentemente un pico mientras el entrenamiento progresa, después se deteriora. Así nació
el mito de entrenamiento excesivo. Sin embargo, hay dos razones para no limitar el
entrenamiento con esperanzas a encontrar ese pico tan difícil de encontrar:
100
REDES NEURONALES ARTIFÍCIALES I
La moraleja es que se debe utilizar el menor número posible de neuronas ocultas. Empezar
con el número mínimo y después añadir tantas como sea necesario para asegurar el
desempeño adecuado en el conjunto de entrenamiento. Nunca se debe empezar con muchas
neuronas ocultas y después ver cuántas se pueden desechar mientras se mantenga un buen
desempeño.
También se debe tener especial cuidado en escoger un conjunto de entrenamiento que
represente lo mejor posible a la población. Si no, el fenómeno visto en la figura 4.4
aparecerá casi siempre, independientemente del número de neuronas ocultas.
101
REDES NEURONALES ARTIFÍCIALES I
102
REDES NEURONALES ARTIFÍCIALES I
Inicializar pocas
neuronas
Entrenar
Error de No
entrenamiento Agregar neurona
aceptable?
Sí
Escoger conjunto
de prueba de
entrenamiento
Sí
Hecho
Finalmente, obsérvese que el algoritmo anterior puede ser utilizado también para obtener el
mejor desempeño posible de la red. Supóngase que se empieza con un considerable buen
estándar de desempeño, y se sigue el algoritmo hasta que se alcanza el nivel de desempeño.
No se valida la red. Se salva y después se pide mejor desempeño. Obviamente,
inmediatamente se añadirá una neurona oculta. Se tendrá que añadir al conjunto de
entrenamiento un nuevo conjunto de prueba. Se sigue el algoritmo hasta que se canse de
lidiar con un conjunto de entrenamiento enorme o hasta que se haya alcanzado la nueva
expectativa. Tanto tiempo en lo que la suposición fundamental de la calidad de los
103
REDES NEURONALES ARTIFÍCIALES I
104
REDES NEURONALES ARTIFÍCIALES I
5.1.1 Introducción.
• Adquisición de datos
• Análisis y exploración de datos
• Procesamiento de imagen y visualización
• Algoritmo de prototipo y desarrollo
• El modelar y simulación
• Programación y desarrollo
Características Dominantes
105
REDES NEURONALES ARTIFÍCIALES I
Este amplio sistema de capacidades hace de MATLAB una base de origen ideal para los
líquidos de revelado de los problemas técnicos.
¿Que es MATLAB?
• Matemáticas y cómputo
• Desarrollo de algoritmo
• El modelar, simulación, y el prototipo
• Análisis de datos, exploración, y visualización
• Gráficos científicos y de ingeniería
• Desarrollo del uso, incluyendo el edificio gráfico del interfaz utilizado
El nombre MATLAB está dado por el laboratorio de la matriz . MATLAB fue escrito
originalmente para proporcionar el acceso fácil al software de la matriz desarrollado por los
proyectos de LINPACK y de EISPACK. Hoy, el software de las aplicaciones de MATLAB
se convirtió por los proyectos de LAPACK y de ARPACK, que juntos representan el estado
plus ultra en el software para el cómputo de la matriz.
106
REDES NEURONALES ARTIFÍCIALES I
El Sistema de MATLAB
Ambiente Del Desarrollo. Éste es el sistema de las herramientas y de las instalaciones que
le ayudan a utilizar funciones y archivos de MATLAB. Muchas de estas herramientas son
interfaces gráficas. Incluye el tablero del escritorio de MATLAB y la ventana del comando,
una historia del comando, y los browsers para la visión, el espacio de trabajo, los archivos,
y el camino de búsqueda en un fichero.
El Application Program Interface de MATLAB (Api). Ésta es una biblioteca que permite
que usted escriba los programas de C y del FORTRAN que trabajan recíprocamente con
MATLAB. Incluye las instalaciones para las rutinas que llaman de MATLAB (el
107
REDES NEURONALES ARTIFÍCIALES I
ligamiento dinámico), llamando a MATLAB como motor de cómputo, y para los archivos
de lectura y de escritura.
Características Dominantes
• Interfaz gráfica (GUI) para crear, entrenar, y simular a sus redes neuronales
• La ayuda para usuario lo más comúnmente posible arquitecturas de red supervisada y
no supervisada.
• Un sistema comprensivo de entrenamiento y de funciones de aprendizaje
• Una habitación de los bloques del Simulink, así como la documentación y
demostraciones de los usos del sistema de control
• La generación automática de Simulink modelado de los objetos de la red neuronal
• Representación modular de la red, permitiendo un número ilimitado de la entrada
que fija capas, e interconexiones de la red
• Funciones pre y de proceso del bias para mejorar el entrenamiento de la red y
determinar el funcionamiento de la red
• Rutinas para mejorar la generalización
• Funciones de la visualización para el funcionamiento de la red neuronal
El primer paso del entrenamiento de una red neuronal es crear la red. La función newff crea
una red con conexión hacia adelante. Esta función requiere de cuatro parámetros y regresa
un objeto del tipo red:
108
REDES NEURONALES ARTIFÍCIALES I
Por ejemplo el siguiente comando crea una red de dos capas. Tendrá un vector de entrada
con dos elementos (p-1 = 2), tres neuronas en la primera capa (L-1 = 3) y una neurona en la
segunda capa (salida) (m = 1).
XR = [-1 2; 0 5];
net=newff(XR,[L-1,m],'tansig','purelin','traingd');
Este comando crea un objeto del tipo red y también inicializa los pesos y el bias de la red,
usando por default el comando (initnw). Por lo tanto la red esta lista para ser entrenada.
Si necesitas re- inicializar, o cambiar la inicialización por default de los pesos, utiliza el
comando init:
net=init(net);
Esta función toma como entrada un objeto de tipo red y regresa un objeto de tipo red con
los pesos y bias inicializados. Esta función es invocada por el comando newff y usa el
algoritmo de Nguyen-Widrow.
Si, por ejemplo, queremos re-inicializar los pesos y los bias en la primera capa de forma
aleatoria, usando la función rands, debemos usar los siguientes comandos:
net.layers{1}.initFcn = 'initwb';
net.inputWeights{1,1}.initFcn = 'rands';
net.biases{1,1}.initFcn = 'rands';
net.biases{2,1}.initFcn = 'rands';
net = init(net);
109
REDES NEURONALES ARTIFÍCIALES I
Simulación (sim)
La función sim simula una red neuronal. La función sim toma la entrada de la red X, y el
objeto red net, y regresa la salida de la red Y.
Aquí se muestra como puede ser usado el comando simuff, para simular la red que creamos
anteriormente para un vector de entrada simple:
x = [1;2];
a = sim(net,x)
a = -0.1011
Abajo, el comando sim es llamado para calcular las salidas para un vector de entrada de
tres elementos.
X = [1 3 2;2 4 1];
Y = sim(net,X)
Y = -0.1011 -0.2308 0.4955
La función adapt es usada para entrenar redes en el modo de crecimiento (pattern). Esta
función toma el objeto red, las entradas y los valores deseados para el entrenamiento, y
regresa el objeto red entrenado con los valores de salida y errores de la red para los pesos y
bias finales.
110
REDES NEURONALES ARTIFÍCIALES I
Lista de funciones
Versión 4,0,1
Funciones de aprendizaje
learncon - función de aprendizaje diagonal de la conciencia
learngd - función de aprendizaje del gradiente descendente
learngdm - función de aprendizaje del gradiente con momentum
learnh - función del aprendizaje de Hebb
learnhd - Hebb con la función de aprendizaje descendente
learnis - función de aprendizaje del peso de Instar
learnk - función de aprendizaje Kohonen
learnlv1 - función de aprendizaje LVQ1
learnlv2 - función de aprendizaje LVQ2
learnos - función de aprendizaje de Outstar
learnp - función de aprendizaje del Perceptron
learnpn - función normalizada de aprendizaje del perceptron
learnsom - función de aprendizaje del mapa de auto-organización
learnwh - regla de aprendizaje de Widrow-Hoff
Creación redes
red - crea una red neuronal
newc - crea una capa competitiva
newcf - crea una red conexión hacia adelante backpropagation
111
REDES NEURONALES ARTIFÍCIALES I
Funciones de entrenamiento
trainb - entrenamiento con regla de aprendizaje de la hornada del peso y del bias
trainbfg - backpropagation quasi-Newton de BFGS
trainbr - regularización bayesiana
trainc - funciones ascendentes de entrenamiento cíclico
traincgb - backpropagation conyugal del gradiente de Powell-Beale
traincgf - backpropagation conyugal del gradiente de Fletcher-Powell
traincgp - backpropagation conyugal del gradiente de Polak-Ribiere
traingd - backpropagation de la pendiente del gradiente
traingdm - pendiente del gradiente con el backpropagation del ímpetu
112
REDES NEURONALES ARTIFÍCIALES I
Funciones de transferencia
compet - función de transferencia competitiva
hardlim - función de transferencia escalon
hardlims - función de transferencia de limite simétrica
logsig - función de transferencia sigmoidal
poslin - función de transferencia lineal positiva
purelin - función de transferencia lineal
radbas - función de transferencia de base radial
satlin - saturación de la función de transferencia lineal
satlins - función de transferencia lineal de saturación simétrica
softmax - función de transferencia máxima suave
tansig - función de transferencia sigmoidea de la tangente hiperbólica
tribas - función de transferencia de base triangular
Simulación 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 características de una red neuronal
exhibit - exhibe el nombre y las características de una variable de la red neuronal
113
REDES NEURONALES ARTIFÍCIALES I
5.2. NeuroSolutions
5.2.1. Introducción
114
REDES NEURONALES ARTIFÍCIALES I
Si se abre una paleta, se marcará inmediatamente con una palomita, como se muestra en la figura
1.1. Una paleta abierta se ve y actúa como una barra de herramientas con un conjunto de iconos.
Las paletas pueden ser desplazadas y colocadas como cualquier barra de herramientas estándar de
Windows. La figura 1.2 muestra como ejemplo la paleta de la familia Axón.
Colocación de componentes
Si el puntero del ratón se coloca sobre la paleta y se esperan unos segundos, aparecerá una
pequeña ventana con el nombre del componente. Esto es muy útil para determinar el
componente que se está seleccionando de la paleta. Si se hace clic en un componente, el
puntero se convierte en una “estampa”. Si se hace de nuevo clic sobre cualquier punto de la
tablilla de conexión, la estampa (componente) será pegada en ese punto. A este proceso se
le denomina “estampado de componentes”.
Conexión de componentes
Nótese que en los componentes de la familia de axones (así como en algunas otras familias)
hay un punto de contacto doble-diamante a la izquierda (conector hembra) y un punto de
contacto de simple-diamante a la derecha (conector macho). El flujo de datos en
NeuroSolutions está diseñado para un movimiento de izquierda a derecha en la tablilla de
conexión. Para conectar dos componentes, simplemente es necesario “arrastrar” el conector
macho a la derecha del componente hacia el conector hembra (lado izquierdo9 del otro
componente. La conexión está visualmente indicada por tres líneas dibujadas entre los
componentes.
También se podrá notar que mientras se arrastra el conector, la flecha que caracteriza el
puntero del ratón cambiará a un cursor de movimiento, queriendo decir que se puede
115
REDES NEURONALES ARTIFÍCIALES I
Axones y Sinapsis
La familia Axón tiene dos funciones. Los componentes suman todas sus entradas y después
aplican una función de activación a dicha suma. Los diferentes componentes en la familia
Axón aplican una función diferente a la suma de entradas. Cada una de las diferentes
imágenes en los iconos de dicha familia representa la función que será aplicada. El axón de
tipo lineal (llamado simplemente Axón) simplemente pasa la suma de las entradas
directamente a la salida. El axón Bias suma la entrada y agrega un valor de umbral. Un sólo
componente de la familia Axón puede representar cualquier número de PEs. Esto se
muestra en la figura 1.3.
116
REDES NEURONALES ARTIFÍCIALES I
La familia Sinapsis, mostrada en la figura 1.4., se usa para hacer conexiones entre axones. En
general, se le asigna un peso a cada conexión en una sinapsis que hace un escalamiento de los datos
que pasan a través de ella. La manera en que se ajustan esos pesos será la manera en que se entrena
una red o sistema adaptativo para ejecutar la tarea deseada. El miembro más utilizado de esta
familia es la Sinapsis Completa y conecta todos y cada uno de los PE’s en el axón del otro
componente. Además, la Sinapsis Completa contiene nm conexiones (y pesos) para n PEs de
entrada y m Pes de salida. La Sinapsis Arbitraria permite seleccionar cuál de las nm conexiones
posibles unirá un axón a otro.
Esta sección trata los componentes extra necesarios para entrenar un sistema adaptativo
utilizando gradiente descendente. Lo importante de esta sección no es entender todos los
conceptos, sino la mecánica.
El aprendizaje adaptativo se basa en utilizar el error entre la salida del sistema y la salida
del sistema deseada para entrenar el sistema. El algoritmo de aprendizaje adapta los pesos
del sistema basado en el error hasta que el sistema no produzca la salida deseada. La
familia de Criterios de Error, que se muestra en la figura 1.5. en Neurosolutions calcula
diferentes medidas de error que pueden ser utilizadas en el entrenamiento de una red.
Aprendizaje y retropropagación
Se puede utilizar el error para modificar los pesos del sistema, permitiendo a éste aprender.
La misión del sistema es igualar la salida del sistema a la salida deseada, por lo que se
necesita minimizar el error cuadrático. El método para hacerlo es conocido como
117
REDES NEURONALES ARTIFÍCIALES I
retropropagación del error. Esencialmente es un proceso de tres pasos. Primero, los datos de
la entrada son propagados hacia adelante a través de la red para calcular la salida del
sistema.
El paso siguiente es calcular el error y propagarlo hacia atrás. Esto se utiliza finalmente
para modificar los pesos.
Este plano se conoce como plano de gradiente descendente y se encuentra por arriba del
plano de retropropagación. Un componente típico de gradiente descendiente es el
componente Momentum. Nótese en la figura 1.7. que sólo los componentes relacionados
con los pesos utilizan los componentes de gradiente descendente.
Figura 1.7. Red neuronal con los tres planos: de propagacaión hacia delante, retropropagación y gradiente descendiente
118