Anda di halaman 1dari 37

1

1.- Introducción:

1.1 Acerca de las redes neuronales


El hombre se ha caracterizado siempre por su 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 electrónica, ENIAC. Desde
entonces los desarrollos en este campo han tenido un auge espectacular. Estas
máquinas permiten implementar fácilmente algoritmos para resolver multitud de
problemas que antes resultaban engorrosos de resolver. Sin embargo, se
observa una limitación importante: ¿qué ocurre cuando el problema que se
quiere resolver no admite un tratamiento algorítmico, como es el caso, por
ejemplo, de la clasificación de objetos por rasgos comunes? Este ejemplo
demuestra que la construcción de nuevas máquinas más versátiles requiere un
enfoque del problema desde otro punto de vista. Los desarrollos actuales de
los científicos se dirigen al estudio de las capacidades humanas como una
fuente de nuevas ideas para el diseño de las nuevas máquinas. Así, la
inteligencia artificial es un intento por descubrir y describir aspectos de la
inteligencia humana que pueden ser simulados mediante máquinas. Esta
disciplina se ha desarrollado fuertemente en los últimos años teniendo
aplicación en algunos campos como visión artificial, demostración de teoremas,
procesamiento de información expresada mediante lenguajes humanos... etc.
Las redes neuronales son más que otra forma de emular ciertas características
propias de los humanos, como la capacidad de memorizar y de asociar hechos.
Si se examinan con atención aquellos problemas que no pueden expresarse a
través de un algoritmo, se observará que todos ellos tienen una característica
en 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 para un 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”.
Todos los procesos del cuerpo humano se relacionan en alguna u otra
forma con la (in)actividad de estas neuronas. Las mismas son un componente
relativamente simple del ser humano, pero cuando millares de ellas se
conectan en forma conjunta se hacen muy poderosas.
2

Lo que básicamente ocurre en una neurona biológica es lo siguiente: la


neurona es estimulada o excitada a través de sus entradas (inputs) y cuando
se alcanza un cierto umbral, la neurona se dispara o activa, pasando una señal
hacia el axon. Posteriores investigaciones condujeron al descubrimiento de que
estos procesos son el resultado de eventos electroquímicos.
Como ya se sabe, el pensamiento tiene lugar en el cerebro, que consta de
billones de neuronas interconectadas. Así, el secreto de la “inteligencia” sin
importar como se defina se sitúa dentro de estas neuronas interconectadas y
de su interacción. También, es bien conocido que los humanos son capaces de
aprender. Aprendizaje significa que aquellos problemas que inicialmente no
pueden resolverse, pueden ser resueltos después de obtener más información
acerca del problema. Por lo tanto, las Redes Neuronales...
 Consisten de unidades de procesamiento que intercambian datos o
información.
 Se utilizan para reconocer patrones, incluyendo imágenes, manuscritos
y secuencias de tiempo (por ejemplo: tendencias financieras).
 Tienen capacidad de aprender y mejorar su funcionamiento.
Una primera clasificación de los modelos de redes neuronales podría ser,
atendiendo a su similitud con la realidad biológica:
• El modelo de tipo biológico. Este comprende las redes que tratan
de simular
los sistemas neuronales biológicos, así como las funciones auditivas o algunas
funciones básicas de la visión.
• El modelo dirigido a aplicación. Este modelo no tiene por qué
guardar similitud con los sistemas biológicos. Su arquitectura está
fuertemente ligada a las necesidades de las aplicaciones para la
que es diseñada.
1.2 Funcionamiento de una neurona biológica:
El cerebro humano es un sistema muy complejo formado por muchas células
llamadas neuronas; se estima que existen entre 10 elevado a 10 y 10 elevado a
11 de células en el cerebro. Las redes
Un esquema simplificado de una neurona se muestra en la siguiente figura.

Fig. 1
3

En el cuerpo celular se realizan la mayoría de las funciones lógicas de la


neurona. El axón es el canal de salida final de la neurona.
Las dendritas reciben las señales de entrada de los axones de otras neuronas
y se conectan al cuerpo celular por medio de las sinapsis.
4

Fig. 2

1.3 Funcionamiento de una Neurona Artificial


1.3.1 Representación Matemática de una Neurona Artificial

En la siguiente figura se observa la estructura de una neurona artificial


con múltiples entradas.

X1
W
X2 1
W
2
W
∑ u f y
X3 3

W
4.
X4 .
.
W
n
θ
Xn
Fig. 3

En esta estructura, se tiene:

n
u = ∑Wi X i
i =1

Donde : Wi son los pesos de la neurona (sinápsis)


X i son las entradas a la neurona
n es el número de entradas a la neurona

 n 
y = f (u ) = f  ∑ Wi X i − θ 
 i =1 
Donde: y es la salida de la neurona (axón)
f es la función de activación, correspondiente, en
general, a una función no lineal (cuerpo celular)
θ es el sesgo
5

2 Reseña Histórica

2.1 Historia de las redes neuronales.

 1936 - Alan Turing. Fue el primero en estudiar el cerebro como una


forma de ver el mundo de la computación. Sin embargo, los primeros
teóricos que concibieron los fundamentos de la computación neuronal
fueron Warren McCulloch, un neurofisiólogo, y Walter Pitts, un
matemático, quienes, en 1943, lanzaron una teoría acerca de la forma
de trabajar de las neuronas (Un Cálculo Lógico de la Inminente Idea de
la Actividad Nerviosa - Boletín de Matemática Biofísica 5: 115-133). Ellos
modelaron una red neuronal simple mediante circuitos eléctricos.
 1949 - Donald Hebb. Fue el primero en explicar los procesos del
aprendizaje (que es el elemento básico de la inteligencia humana) desde
un punto de vista psicológico, desarrollando una regla de como el
aprendizaje ocurría. Aun hoy, este es el fundamento de la mayoría de las
funciones de aprendizaje que pueden hallarse en una red neuronal. Su
idea fue que el aprendizaje ocurría cuando ciertos cambios en una
neurona eran activados. También intentó encontrar semejanzas entre el
aprendizaje y la actividad nerviosa. Los trabajos de Hebb formaron las
bases de la Teoría de las Redes Neuronales.
 1950 - Karl Lashley. En sus series de ensayos, encontró que la
información no era almacenada en forma centralizada en el cerebro sino
que era distribuida encima de él.
 1956 - Congreso de Dartmouth. Este Congreso frecuentemente se
menciona para indicar el nacimiento de la inteligencia artificial.
 1957 - Frank Rosenblatt. Comenzó el desarrollo del Perceptron. Esta es
la red neuronal más antigua; utilizándose hoy en día para aplicación
como identificador de patrones. Este modelo era capaz de generalizar,
es decir, después de haber aprendido una serie de patrones podía
reconocer otros similares, aunque no se le hubiesen presentado en el
entrenamiento. Sin embargo, tenía una serie de limitaciones, por
ejemplo, su incapacidad para resolver el problema de la función OR-
exclusiva y, en general, era incapaz de clasificar clases no separables
linealmente.
 1959 - Frank Rosenblatt: Principios de Neurodinámica. En este libro
confirmó que, bajo ciertas condiciones, el aprendizaje del Perceptron
convergía hacia un estado finito (Teorema de Convergencia del
Perceptron).
 1960 - Bernard Widroff/Marcian Hoff. Desarrollaron el modelo Adaline
(ADAptative LINear Elements). Esta fue la primera red neuronal aplicada
a un problema real (filtros adaptativos para eliminar ecos en las líneas
telefónicas) que se ha utilizado comercialmente durante varias décadas.
 1961 - Karl Steinbeck: Die Lernmatrix. Red neuronal para simples
realizaciones técnicas (memoria asociativa).
 1969 - Marvin Minsky/Seymour Papert. En este año casi se produjo la
“muerte abrupta” de las Redes Neuronales; ya que Minsky y Papert
probaron (matemáticamente) que el Perceptrons no era capaz de
resolver problemas relativamente fáciles, tales como el aprendizaje de
6

una función no-lineal. Esto demostró que el Perceptron era muy débil,
dado que las funciones no-lineales son extensamente empleadas en
computación y en los problemas del mundo real.
 1974 - Paul Werbos. Desarrolló la idea básica del algoritmo de
aprendizaje de propagación hacia atrás (backpropagation); cuyo
significado quedó definitivamente aclarado en 1985.
 1977 - Stephen Grossberg: Teoría de Resonancia Adaptada (TRA). La
Teoría de Resonancia Adaptada es una arquitectura de red que se
diferencia de todas las demás previamente inventadas. La misma simula
otras habilidades del cerebro: memoria a largo y corto plazo.
 1985 - John Hopfield. Provocó el renacimiento de las redes neuronales
con su libro: “Computación neuronal de decisiones en problemas de
optimización.”
 1986 - David Rumelhart/G. Hinton. Redescubrieron el algoritmo de
aprendizaje de propagación hacia atrás (backpropagation).

A partir de 1986, el panorama fue alentador con respecto a las investigaciones


y el desarrollo de las redes neuronales. En la actualidad, son numerosos los
trabajos que se realizan y publican cada año, las aplicaciones nuevas que
surgen (sobretodo en el área de control) y las empresas que lanzan al mercado
productos nuevos, tanto hardware como software (sobre todo para simulación).

3 Redes Neuronales

3.1 Generalidades
En los últimos años de exploración en inteligencia artificial, los
investigadores se han intrigado por las redes neuronales.
Como lo implica su nombre, una red neuronal artificial consiste en
una red de neuronas artificiales interconectadas.
El concepto se basa vagamente en cómo pensamos que funciona
el cerebro de un animal. Un cerebro consiste en un sistema de células
interconectadas, las cuales son, aparentemente, responsables de los
pensamientos, la memoria y la conciencia. Las neuronas se conectan a
muchas otras neuronas formando uniones llamadas sinapsis.
Las señales electroquímicas se propagan de una neurona a otra a
través de estas sinapsis.
Las neuronas demuestran plasticidad: una habilidad de cambiar
su respuesta a los estímulos en el tiempo, o aprender. En una red
neuronal artificial, se imitan estas habilidades por software.

Existen también diversas definiciones sobre redes neuronales a continuación


pasaremos a mencionar algunas:
 Una nueva forma de computación, inspirada en modelos biológicos.
 Un modelo matemático compuesto por un gran número de elementos
procesales organizados en niveles.
 Un sistema de computación compuesto por un gran número de
elementos simples, elementos de procesos muy interconectados, los
cuales procesan información por medio de su estado dinámico como
respuesta a entradas externas.
7

 Redes neuronales artificiales son redes interconectadas masivamente


en paralelo de elementos simples (usualmente adaptativos) y con
organización jerárquica, las cuales intentan interactuar con los objetos
del mundo real del mismo modo que lo hace el sistema nervioso
biológico.

Antes de comenzar el estudio sobre las redes neuronales, retomemos el


estudio del modelo de una neurona y de cómo ellas son utilizadas por una red
neuronal.

3.2 Modelo de una Neurona


Una neurona es una unidad de procesamiento de información que es
fundamental para la red neuronal [Hilera y Martínez, 1995].

En la siguiente figura se compara una neurona biológica con una


neurona artificial. En la misma se pueden observar las similitudes entre ambas
(tienen entradas, utilizan pesos y generan salidas).

Fig. 4

Mientras una neurona es muy pequeña en sí misma, cuando se combinan


cientos, miles o millones de ellas pueden resolver problemas muy complejos.
Por ejemplo el cerebro humano se compone de billones de tales neuronas.

3.2.1 Función de entrada (input function).


La neurona trata a muchos valores de entrada como si fueran uno solo;
esto recibe el nombre de entrada global. Por lo tanto, ahora nos enfrentamos al
problema de cómo se pueden combinar estas simples entradas (ini1, ini2, ...)
dentro de la entrada global, gini. Esto se logra a través de la función de
entrada, la cual se calcula a partir del vector entrada. La función de entrada
puede describirse como sigue:

inputi = ( ini1 • Wi1 ) * ( ini 2 • Wi 2 ) * ...( inin • Win ) *


Donde: * representa al operador apropiado (por ejemplo: máximo, sumatoria,
productoria, etc.), n al número de entradas a la neurona Ni y wi al peso.
8

Los valores de entrada se multiplican por los pesos anteriormente ingresados a


la neurona. Por consiguiente, los pesos que generalmente no están restringidos
cambian la medida de influencia que tienen los valores de entrada. Es decir,
que permiten que un gran valor de entrada tenga solamente una pequeña
influencia, si estos son lo suficientemente pequeños.

ini1
Wi1

Función
De
Entrada
Función
De
Activació
Función
De outi1
n Salida

Wi 2

ini 2
Fig. 5

La nomenclatura utilizada en la figura es la siguiente: ini1 = entrada


número 1 a la neurona Ni; wi1 = peso correspondiente a ini1; ini2 = entrada
número 2 a la neurona Ni; wi2 = peso correspondiente a ini2; y outi = salida de
la neurona Ni. El conjunto de todas las n entradas ini = (ini1, ini2, ..., ini n) es
comúnmente llamado “vector entrada”.

Una de las funciones de entrada más comúnmente utilizadas y


conocidas es:

• Sumatoria de las entradas pesadas: Es la suma de todos los valores


de entrada a la neurona, multiplicados por sus correspondientes pesos.
9

∑wi =1
ij xij , con j = 1, 2, 3……, n

3.2.1 Función de activación (activation function).

Una neurona biológica puede estar activa (excitada) o inactiva (no


Excitada); es decir, que tiene un “estado de activación”. Las neuronas
artificiales también tienen diferentes estados de activación; algunas de ellas
solamente dos, al igual que las biológicas, pero otras pueden tomar cualquier
valor dentro de un conjunto determinado.

La función activación calcula el estado de actividad de una neurona;


transformando la entrada global (menos el umbral, i) en un valor (estado) de
activación, cuyo rango normalmente va de (0 a 1) o de (–1 a 1). Esto es así,
porque una neurona puede estar totalmente inactiva (0 o –1) o activa (1).

La función activación, es una función de la entrada global (gini) menos el


umbral ( i). Las funciones de activación más comúnmente utilizadas se
detallan a continuación:

• Función Lineal:

− 1 x ≤ −1 / a
 −1/ a ≤ x < 1/ a
f ( x) = a * x
1 x > 1/ a

Con x = gini − θi y a>0.

activación
Linear(a, x)
+1
___ a=1
-- -- a=0.66
- - - - a=2

x = gini − θi

-1

Fig. 6

Los valores de salida obtenidos por medio de esta función de activación


serán:
10

(gini - i), cuando el argumento de (gini - i) esté comprendido dentro del rango
(-1/a, 1/a).

Por encima o por debajo de esta zona se fija la salida en 1 o –1,


respectivamente. Cuando a = 1 (siendo que la misma afecta la pendiente de la
gráfica), la salida es igual a la entrada.

• Función Sigmoidea:

Los valores de salida que proporciona esta función están comprendidos


dentro de un rango que va de 0 a 1. Al modificar el valor de g se ve afectada la
pendiente de la función de activación.

activación

+1
Sigmoid(g,x)
___ a=100
-- -- a=10
- - - a=0.3

x = gini − θi
1
f ( xx) == gini − θi
1 + e − gx Con

Fig. 7

• Función Tangente Hiperbólica:


activación
Tanhyp(g, x) +1
____ g=100
-- -- --g=10
- - - - g=0.3

e gx − e − gx
f (xx)==gingxi − θi− gx Con x = gini − θi
e +e

-1
Fig. 8
11

Los valores de salida de la función tangente hiperbólica están comprendidos


dentro de un rango que va de -1 a 1. Al modificar el valor de g se ve afectada la
pendiente de la función de activación.

3.2.3 Función de salida (output function).

El último componente que una neurona necesita es la función de salida. El


valor resultante de esta función es la salida de la neurona i (out i); por ende, la
función de salida determina que valor se transfiere a las neuronas vinculadas.
Si la función de activación está por debajo de un umbral determinado, ninguna
salida se pasa a la neurona subsiguiente. Normalmente, no cualquier valor es
permitido como una entrada para una neurona, por lo tanto, los valores de
salida están comprendidos en el rango [0, 1] o [-1, 1]. También pueden ser
binarios {0, 1} o {-1, 1}.

Dos de las funciones de salida más comunes son:

• Ninguna: este es el tipo de función más sencillo, tal que la salida es la


misma que la entrada. Es también llamada función identidad.
• Binaria
1 act i ≥ θ i contrario
θi  es el umbral
0

4. Topologías o Arquitecturas de redes neuronales

4.1 Topología de las redes neuronales


La topología o arquitectura de una red neuronal consiste en la
organización y disposición de las neuronas en la misma, formando capas o
agrupaciones de neuronas más o menos alejadas de la entrada y salida de
dicha red. En este sentido, los parámetros fundamentales de la red son: el
número de capas, el número de neuronas por capa, el grado de conectividad y
el tipo de conexiones entre neuronas.

4.1.1 Redes Monocapa.


Se establecen conexiones entre las neuronas que pertenecen a la única
capa que constituye la red. Las redes monocapas se utilizan generalmente en
tareas relacionadas con lo que se conoce como autoasociación (regenerar
información de entrada que se presenta a la red de forma incompleta o
distorsionada).
Ejm.

El Perceptrón de una capa (SLP), una de las topologías de red más antiguas,
consiste en una capa de unidades computacionales; las unidades de entrada
no desarrollan ningún cálculo. La capa de entrada se conecta completamente
con la capa de salida, es decir, cada unidad de entrada está conectada a cada
unidad de salida.
12

Fig. 9

4.1.2 Redes Multicapa.

Son aquellas que disponen de un conjunto de neuronas agrupadas en


varios niveles o capas. En estos casos, una forma para distinguir la capa a la
que pertenece una neurona, consistiría en fijarse en el origen de las señales
que recibe a la entrada y el destino de la señal de salida. Normalmente, todas
las neuronas de una capa reciben señales de entrada desde otra capa anterior
(la cual está más cerca a la entrada de la red), y envían señales de salida a
una capa posterior (que está más cerca a la salida de la red). A estas
conexiones se las denomina conexiones hacia adelante o feedforward.

Sin embargo, en un gran número de estas redes también existe la


posibilidad de conectar la salida de las neuronas de capas posteriores a la
entrada de capas anteriores;
a estas conexiones se las denomina conexiones hacia atrás o feedback.

Ejm.
El Perceptrón multicapa tiene capas adicionales, llamadas capas
Ocultas
13

Fig. 10

4.1.3 Redes Recurrentes (Conexión entre neuronas)

La conectividad entre los nodos de una red neuronal está relacionada


con la forma en que las salidas de las neuronas están canalizadas para
convertirse en entradas de otras neuronas. La señal de salida de un nodo
puede ser una entrada de otro elemento de proceso, o incluso ser una entrada
de sí mismo (conexión autorrecurrente).

Cuando ninguna salida de las neuronas es entrada de neuronas del


mismo nivel o de niveles precedentes, la red se describe como de conexión
hacia delante. Cuando las salidas pueden ser conectadas como entradas de
neuronas de niveles previos o del mismo nivel, incluyéndose ellas mismas, la
red es de conexión hacia atrás.

Las redes de propagación hacia atrás que tienen lazos cerrados son llamadas:
sistemas recurrentes.
A continuación se muestran algunas de estas redes:

a) Red recurrente
14

b) Red Recurrente completa c) Red recurrente parcial

Fig. 11

5. Mecanismos de Aprendizaje de Redes Neuronales.

El aprendizaje es el proceso por el cual una red neuronal modifica sus


pesos en respuesta a una información de entrada. Los cambios que se
producen durante el mismo se reducen a la destrucción, modificación y
creación de conexiones entre las neuronas. Una red neuronal debe aprender a
calcular la salida correcta para cada constelación (arreglo o vector) de entrada
en el conjunto de ejemplos. Este proceso de aprendizaje se denomina:
Proceso de Entrenamiento o Acondicionamiento. El conjunto de datos (o
conjunto de ejemplos) sobre el cual este proceso se basa es, por ende,
llamado: Conjunto de datos de Entrenamiento.

Durante el proceso de aprendizaje, los pesos de las conexiones de la


red sufren modificaciones, por lo tanto, se puede afirmar que este proceso ha
terminado (la red ha aprendido) cuando los valores de los pesos permanecen
estables (dwij/dt = 0, lo cual es la primera derivada o primer orden), si los pesos
cambian y sus valores son iguales a 0, se dice que la conexión de la red se ha
destruido.

De esta manera, se dice que los pesos se han adaptado, ya que sus
valores son distintos de 0 y su derivada es igual a 0.

En otras palabras el aprendizaje es el proceso por el cual una red neuronal


modifica sus pesos en respuesta a una información de entrada. Los cambios
que se producen durante el mismo se reducen a la destrucción, modificación y
creación de conexiones entre las neuronas.

Un aspecto importante respecto al aprendizaje de las redes neuronales


es el conocer cómo se modifican los valores de los pesos, es decir, cuáles son
los criterios que se siguen para cambiar el valor asignado a las conexiones
cuando se pretende que la red aprenda una nueva información.
15

Hay dos métodos de aprendizaje importantes que pueden distinguirse:

 Aprendizaje supervisado.
 Aprendizaje no supervisado.

5.1 Aprendizaje supervisado.

El aprendizaje supervisado se caracteriza porque el proceso de aprendizaje se


realiza mediante un entrenamiento controlado por un agente externo
(supervisor, maestro) que determina la respuesta que debería generar la red a
partir de una entrada determinada. El supervisor controla la salida de la red y
en caso de que ésta no coincida con la deseada, se procederá a modificar los
pesos de las conexiones, con el fin de conseguir que la salida obtenida se
aproxime a la deseada.

En este tipo de aprendizaje se suelen considerar, a su vez, tres formas


de llevarlo a cabo, que dan lugar a los siguientes aprendizajes supervisados:

• Aprendizaje por corrección de error.


• Aprendizaje por refuerzo.
• Aprendizaje estocástico.

5.1.1 Aprendizaje por corrección de error.

Consiste en ajustar los pesos de las conexiones de la red en función de


la diferencia entre los valores deseados y los obtenidos a la salida de la red, es
decir, en función del error cometido en la salida.

Un ejemplo de este tipo de algoritmos lo constituye la regla de


aprendizaje del Perceptron, utilizada en el entrenamiento de la red del mismo
nombre que desarrolló Rosenblatt en 1958 .Esta es una regla muy simple, para
cada neurona en la capa de salida se le calcula la desviación a la salida
objetivo como el error.

El cual luego se utiliza para cambiar los pesos sobre la conexión de la


neurona precedente. El cambio de los pesos por medio de la regla de
aprendizaje del Perceptron se realiza según la siguiente regla:

∆wij − σ * out j * (a qi − out j )


Donde: aqi es la salida deseada/objetivo de la neurona de salida Ni, i = (aqi –
outi) la desviación objetivo de la neurona Ni y e
 l aprendizaje.
16

La salida de la neurona Nj (outj) se utiliza, porque este valor influye en la


entrada global y, por ende, en la activación y luego en la salida de la neurona
Ni. Esto es semejante a un “efecto en cadena”.

Fig. 12

Otro algoritmo muy conocido y que pertenece a esta clasificación es la regla de


aprendizaje Delta o regla del mínimo error cuadrado (LMS Error: Least Mean
Squared Error), que también utiliza la desviación a la salida objetivo, pero toma
en consideración a todas las neuronas predecesoras que tiene la neurona de
salida. Esto permite cuantificar el error global cometido en cualquier momento
durante el proceso de entrenamiento de la red, lo cual es importante, ya que
cuanto más información se tenga sobre el error cometido, más rápido se
puede aprender. Luego el error calculado ( ) es igualmente repartido entre
las conexiones de las neuronas predecesoras.

Por último se debe mencionar la regla de aprendizaje de propagación


hacia atrás o de backpropagation, también conocido como regla LMS
multicapa, la cual es una generalización de la regla de aprendizaje Delta. Esta
es la primera regla de aprendizaje que permitió realizar cambios sobre los
pesos en las conexiones de la capa oculta.

5.1.2 Aprendizaje por refuerzo.


Se trata de un aprendizaje supervisado, más lento que el anterior, que se
basa en la idea de no disponer de un ejemplo completo del comportamiento
deseado, es decir, de no indicar durante el entrenamiento exactamente la
salida que se desea que proporcione la red ante una determinada entrada.

En el aprendizaje por refuerzo la función del supervisor se reduce a


indicar mediante una señal de refuerzo si la salida obtenida en la red se ajusta
a la deseada (éxito = +1 o fracaso = -1), y en función de ello se ajustan los
pesos basándose en un mecanismo de probabilidades. Se podría decir que en
este tipo de aprendizaje la función del supervisor se asemeja más a la de un
crítico (que opina sobre la respuesta de la red) que a la de un maestro (que
indica a la red la respuesta concreta que debe generar), como ocurría en el
caso de supervisión por corrección del error.

5.1.3 Aprendizaje estocástico.

Consiste básicamente en realizar cambios aleatorios en los valores de


los pesos
de las conexiones de la red y evaluar su efecto a partir del objetivo deseado y
de distribuciones de probabilidad.
17

En pocas palabras el aprendizaje consistiría en realizar un cambio


aleatorio de los valores de los pesos y determinar la energía de la red
(habitualmente la función energía es una función de Liapunov). Si la energía es
menor después del cambio, es decir, si el comportamiento de la red se acerca
al deseado, se acepta el cambio; si, por el contrario, la energía no es menor, se
aceptaría el cambio en función de una determinada y preestablecida
distribución de probabilidades.

5.2 Aprendizaje no Supervisado.

Las redes con aprendizaje no supervisado (también conocido como


autosupervisado) no requieren influencia externa para ajustar los pesos de las
conexiones entre sus neuronas. La red no recibe ninguna información por parte
del entorno que le indique si la salida generada en respuesta a una
determinada entrada es o no correcta.

Estas redes deben encontrar las características, regularidades,


correlaciones o categorías que se puedan establecer entre los datos que se
presenten en su entrada.

Existen varias posibilidades en cuanto a la interpretación de la salida de


estas redes, que dependen de su estructura y del algoritmo de aprendizaje
empleado.

En cuanto a los algoritmos de aprendizaje no supervisado, en general se


suelen considerar dos tipos, que dan lugar a los siguientes aprendizajes:

• Aprendizaje hebbiano.
• Aprendizaje competitivo y comparativo.

5.2.1 Aprendizaje Hebbiano.

Esta regla de aprendizaje es la base de muchas otras, la cual pretende


medir la familiaridad o extraer características de los datos de entrada. El
fundamento es una suposición bastante simple: si dos neuronas Ni y Nj
toman el mismo estado simultáneamente (ambas activas o ambas
inactivas), el peso de la conexión entre ambas se incrementa.

Las entradas y salidas permitidas a la neurona son: {-1, 1} o {0, 1}


(neuronas binarias). Esto puede explicarse porque la regla de aprendizaje
de Hebb se originó a partir de la neurona biológica clásica, que solamente
puede tener dos estados: activa o inactiva.

5.2.2 Aprendizaje competitivo y comparativo.

Se orienta a la clusterización o clasificación de los datos de entrada.


Como característica principal del aprendizaje competitivo se puede decir
que, si un patrón nuevo se determina que pertenece a una clase reconocida
previamente, entonces la inclusión de este nuevo patrón a esta clase
matizará la representación de la misma. Si el patrón de entrada se
18

determinó que no pertenece a ninguna de las clases reconocidas


anteriormente, entonces la estructura y los pesos de la red neuronal serán
ajustados para
reconocer la nueva clase.

5.3 Elección del conjunto inicial de pesos.

Antes de comenzar el proceso de entrenamiento se debe determinar un


estado inicial, lo que significa: escoger un conjunto inicial de pesos para las
diversas conexiones entre las neuronas de la red neuronal. Generalmente un
intervalo del tipo [-n, n], donde n es un número natural positivo.

Cabe mencionar que durante el transcurso del entrenamiento los pesos


no se encuentran restringidos a dicho intervalo.

5.4 Detención del proceso de aprendizaje.

Para determinar cuándo se detendrá el proceso de aprendizaje, es


necesario establecer una condición de detención.

Normalmente el entrenamiento se detiene cuando para cada uno de los


ejemplos dados, el error observado está por debajo de un determinado rango.

Otra condición de detención del aprendizaje puede ser cuando un cierto


número de ciclos y/o pasos de entrenamiento hayan sido completamente
corridos.

Luego de alcanzarse la condición de detención, los pesos no se volverán


a cambiar. Entonces podemos decir que la transformación de los datos de
entrada a los de salida está resuelta. Esto se puede interpretar como una
función f oculta en el conjunto de la red neuronal. Esta función es exactamente
la “instrucción” de cómo la salida será calculada a partir de una constelación
(vector) de entrada.

El orden en que los ejemplos de entrenamiento se presentan a la red


neuronal es otro tema importante; en la mayoría de los casos es beneficioso
realizarlo en forma aleatoria.

5.5 Codificación de los datos de entrada.

Si se observa nuevamente el ejemplo del problema: puntaje para un


crédito (apartado 5.4), se ve que no hay ningún valor numérico en la base de
datos. Por lo tanto la pregunta es ¿cómo puede entonces una red neuronal
calcular una salida? La respuesta
es sencilla; los datos tienen que ser codificados, o sea, deben hallarse valores
apropiados
para representar las características simbólicas (alto, bajo, adecuado, etc.).

Se distinguen dos tipos de variables a ser codificadas:


19

• Variables o atributos numéricos (frecuentemente llamadas continuas).

• Variables o atributos simbólicos (frecuentemente llamados discretos).

Un atributo numérico es aquel que puede tomar cualquier valor dentro


de un cierto intervalo [a, b]; donde a puede ser -∞(menos infinito) y b, ∞
(infinito).

Ahora si los pesos son dados por un cierto número de términos,


semejantes a:
alto o bajo; entonces el atributo se denomina simbólico.

5.5.1 Codificación de los atributos numéricos.

Los datos son codificados dentro de un intervalo, [0.0 + buffer de baja,


1.0 – buffer de alta], por medio de una función lineal. Los buffer
(amortiguadores) son necesarios, especialmente cuando se trabaja con series
de tiempo, porque a menudo puede observarse que una variable numérica cae
por debajo del valor mínimo presenciado hasta el momento, o por encima del
máximo.

Fig. 13

Por ejemplo, para esta figura se debe encontrar la ecuación que describa la
función de transformación; a la cual llamaremos “t” y se escribe como sigue:

t: datos originales (x) datos codificados (xnuevos);

t(x) = xnuevos = a * x + b;

donde:

a = pendiente y, b = ordenada al origen. De esta manera, para el ejemplo de


la figura se tiene que

a = 0.9-0.1 y b = 0.1 – a * 19.


 31-19
20

De forma genérica:

a = máx. en el intervalo de codificación – min. En el intervalo de codificación


máx. de los datos originales – min. de los datos originales

b = (min. de los datos codificados) – a* (mín. de los datos originales)

5.5.2 Codificación de los atributos simbólicos.

Cada atributo simbólico que se codifica, se adjunta a una neurona en la


capa de entrada. Si hay n valores simbólicos, n neuronas serán
necesarias, cada una de ellas con
un conjunto de entradas permitido: {0, 1} (o {-1, 1}). Por este motivo, se
utilizan neuronas binarias.

Fig. 14

Observando la figura, la edad sólo puede tomar un valor en el ejemplo


dado. En consecuencia, si se tiene el valor de entrada viejo, solamente
la neurona estática para viejo recibe una entrada de 1 (en el ejemplo:
N1), mientras que todas las demás tendrán una entrada igual a 0.

Por supuesto, también es posible codificar atributos simbólicos utilizando


sólo una neurona “real” (recordar que los valores permitidos para este
tipo de neuronas están comprendidos en el rango [0, 1] o [1, 1]).La
mayor desventaja de una codificación binaria es que puede conducir a
una gran capa de entrada.
5.5.3 Resumen de los procedimientos de codificación.
21

Fig. 15

5.6 Validación de la red neuronal.

Después del proceso de entrenamiento los pesos de las conexiones en


la red neuronal quedan fijos. Como paso siguiente se debe comprobar si la red
neuronal puede resolver nuevos problemas, del tipo general, para los que ha
sido entrenada. Por lo tanto, con el propósito de validar la red neuronal se
requiere de otro conjunto de datos, denominado conjunto de validación o
testeo.

Cada ejemplo del conjunto de evaluación contiene los valores de las


variables de entrada, con su correspondiente solución tomada; pero ahora esta
solución no se le es otorgada a la red neuronal. Luego se compara la solución
calculada para cada ejemplo de validación con la solución conocida. Ahora el
problema es que hay que decidir cuando la salida de la red neuronal ha de
considerarse como correcta.

6. Principales Tipos de Redes Neuronales

6.1 Perceptrón

Antecedentes

En 1943, Warren McCulloc y Walter Pitts originaron el primer


modelo de operación neuronal, el cual fue mejorado en sus aspectos
biológicos por Donald Hebb en 1948.

En 1962 Bernard Widrow propuso la regla de aprendizaje Widrow-Hoff, y


Frank Rosenblatt desarrolló una prueba de convergencia, y definió el
rango de problemas para los que su algoritmo aseguraba una solución.
El propuso los 'Perceptrons' como herramienta computacional.

Funcionamiento

En la siguiente figura se representa una neurona "artificial", que


intenta modelar el comportamiento de la neurona biológica. Aquí el
cuerpo de la neurona se representa como un sumador lineal de los
estímulos externos zj, seguida de una función no lineal yj = f(zj). La
función f(zj) es llamada la función de activación, y es la función que
utiliza la suma de estímulos para determinar la actividad de salida de la
neurona.
22

Fig. 16

Este modelo se conoce como perceptrón de McCulloch-Pitts, y es la


base de la mayor parte de las arquitecturas de las RNA que se
interconectan entre sí. Las neuronas emplean funciones de activación
diferentes según la aplicación, algunas veces son funciones lineales,
otras funciones sigmoidales (p.ej. la tanh), y otras funciones de umbral
de disparo. La eficiencia sináptica se representa por factores de peso de
interconección wij, desde la neurona i, hasta la neurona j.

Los pesos pueden ser positivos (excitación) o negativos (inhibición). Los


pesos junto con las funciones f(z) dictan la operación de la red neuronal.
Normalmente las funciones no se modifican de tal forma que el estado
de la red neuronal depende del valor de los factores de peso (sinápsis)
que se aplica a los estímulos de la neurona.

En un perceptrón, cada entrada es multiplicada por el peso W


correspondiente, y los resultados son sumados, siendo evaluados contra
el valor de umbral, si el resultado es mayor al mismo, el perceptrón se
activa.

Limitantes

El perceptrón es capaz tan sólo de resolver funciones definidas


por un hiperplano (objeto de dimensión N-1 contenida en un espacio de
23

dimensión N). que corte un espacio de dimensión N. Un ejemplo de una


función que no puede ser resuelta es el operador lógico XOR.

Una explicación mas sencilla de un hiperplano sería, hablando en un


plano de dos dimensiones, una línea que separa a los elementos
existentes en dos grupos. El perceptrón sólo puede resolver una función,
si todos los posibles resultados del problema pueden separarse de ésta
forma (en dos secciones) es decir, que no se combinen entre sí.

Entrenamiento

El entrenamiento de un perceptrón es por medio de la regla de


aprendizaje delta:
Para cada peso W se realiza un ajuste dW según la regla:

dW = LR ( T - Y ) X

Donde LR es la razón de aprendizaje, T el valor deseado, Y el valor


obtenido, y X la entrada aplicada al perceptrón.

Tipos de perceptrón

El Perceptrón básico de dos capas (entrada con neuronas


lineales, analógicas, y la de salida con función de activación de tipo
escalón, digital) solo pude establecer dos regiones separadas por una
frontera lineal en el espacio de patrones de entrada, donde se tendría un
hiperplano.

Un Perceptrón con tres niveles de neuronas puede formar cualquier


región convexa en este espacio. Las regiones convexas se forman
mediante la intelección entre las regiones formadas por cada neurona de
la segunda capa, cada uno de estos elementos se comporta como un
Perceptrón simple, activándose su salida para los patrones de un lado
del hiperplano.

Un Perceptrón con cuatro capas puede generar regiones de decisión


arbitrariamente complejas. El proceso de separación en clases que se
lleva a cabo consiste en la partición de la región deseada en pequeños
hipercubos. Cada hipercubo requiere 2n neuronas en la segunda capa
(siendo n el numero de entradas a la red), una por cada lado del
hipercubo, y otra en la tercera capa, que lleva a cabo el and lógico de la
salida de los nodos del nivel anterior. La salida de los nodos de este
tercer nivel se activaran solo para las entradas de cada hipercubo. Los
hipercubos se asignan a la región de decisión adecuada mediante la
conexión de la salida de cada nodo del tercer nivel solo con la neurona
de salida (cuarta capa) correspondiente a la región de decisión en la que
este comprendido el hipercubo llevándose a cabo una operación lógica
Or en cada nodo de salida. Este procedimiento se pude generalizar de
manera que la forma de las regiones convexas sea arbitraria, en lugar de
hipercubos.
24

En teoría, el Perceptrón de 4 capas puede resuelve una gran variedad


de problemas cuyas entradas sean analógicas, la salida sea digital y sea
linealmente separable. El problema práctico radica en el numero de
neuronas, en el numero idóneo de capas ocultas, la extensión de la
función de activación, el tiempo de entrenamiento de la red, las
implicaciones en la generación de ruido (al tener un numero excesivo de
neuronas) en contraparte con la ventaja de tener un sistema tolerante a
fallas al tener un numero de neuronas redundante.

Aplicaciones del perceptrón

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.

Predicción de mercados financieros, diagnósticos médicos, el


Perceptrón como una red codificadora, el Perceptrón aprende a sumar
enteros.

NETtalk es un Perceptrón que es capaz de transformar texto en


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

6.2 Backpropagation
25

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.

Fig. 17

En esta red, se interconectan varias unidades de procesamiento


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

Algoritmo

El algoritmo de aprendizaje proporciona una forma de entrenar


una red multicapa con alimentación hacia adelante. Comienza
26

alimentando los valores de la entrada de acuerdo a las siguientes


ecuaciones:

donde A es el grupo de neuronas en una capa, y B es la otra. Oj es la


activacion para la neurona J, y Wji son los pesos asignados a la
conexión entre las neuronas j e i. En la ecuación anterior, se toman los
valores de salida y se alimentan a la siguiente capa a través de los
pesos. Esta operación se realiza para cada neurona en la siguiente
capa, produciendo un valor de red para el. Este valor es la suma de
todos los valores de activacion en las neuronas de la capa anterior, y
cada valor de red es aplicado ahora a la siguiente ecuación, conocida
como función de activación, para producir la activación de esa neurona.

Después de que todas las neuronas tienen un valor de activación


asociado a un patrón de valores de entrada, el algoritmo sigue buscando
errores en cada neurona que no es entrada.

Los errores encontrados para las neuronas de salidas, son


propagados hacia atrás, a la capa anterior para que puedan ser
asignados a neuronas de las capas escondidas, esto se calcula por:

donde D es el gripo de neuronas en una capa que no es de entrada y E


es el grupo de neuronas de la siguiente capa. Este cálculo se repite para
cada capa escondida en la red.

Después de que se ha encontrado la activación y el error asociado a


cada grupo de neuronas, los pesos se actualizan, primero encontrando
el valor que cada peso debe modificarse, esto se logra calculando:
27

Donde C, conocida como la razón de aprendizaje, es una constante que


controla el valor del cambio de los pesos y Wij es el cambio de los pesos
entre la neurona i y j. El peso es cambiado evaluando:

6.3 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 tonotó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.

Antecedentes

A partir de estas ideas, T. Kohonen presentó en 1982 un sistema


con un comportamiento semejante. Se trataba de un modelo de red
neuronal con capacidad para formar mapas de características de
manera similar a como ocurre en el cerebro.

El objetivo de Kohonen era demostrar que en un estímulo externo


(información de entrada) por si solo, suponiendo una estructura propia y
una descripción funcional del comportamiento de la red, era suficiente
para forzar la formación de mapas.

Este modelo tiene dos variantes, denominadas LVQ (Learning Vector


Quantization) y TPM (Topology-Preserving Map) o SOM (Self-
Organizating Map). Ambas se basan en el principio de formación de
mapas topológicos para establecer características comunes entre las
informaciones (vectores) de entrada a la red, aunque difieren en las
dimensiones de éstos, siendo de una sola dimensión en el caso de LVQ,
y bidimensional, e incluso tridimensional, en la red TPM.
28

Características

Pertenece a la categoría de las redes competitivas o mapas de


autoorganización, es decir, aprendizaje no supervisado. Poseen una
arquitectura de dos capas (entrada-salida) (una sola capa de
conexiones), funciones de activación lineales y flujo de información
unidireccional (son redes en cascada).

Las unidades de entrada reciben datos continuos normalizados,


se normalizan así mismo los pesos de las conexiones con la capa de
salida. Tras el aprendizaje de la red, cada patrón de entrada activará una
única unidad de salida.

El objetivo de este tipo de redes es clasificar los patrones de


entrada en grupos de características similares, de manera que cada
grupo activará siempre la(s) misma(s) salida(s). Cada grupo de entradas
queda representado en los pesos de las conexiones de la unidad de
salida triunfante. La unidad de salida ganadora para cada grupo de
entradas no se conoce previamente, es necesario averiguarlo después
de entrenar a la red.

Arquitectura

En la arquitectura de la versión original (LVQ) del modelo


Kohonen no existen conexiones hacia atrás. Se trata de una de las N
neuronas de entrada y M de salida. Cada una de las N neuronas de
entrada se conecta a las M de salida a través de conexiones hacia
adelante (feedfoward).

Entre las neuronas de la capa de salida, puede decirse que


existen conexiones laterales de inhibición (peso negativo) implícitas,
pues aunque no estén conectadas, cada una de las neuronas va a tener
cierta influencia sobre sus vecinas. El valor que se asigne a los pesos de
las conexiones hacia adelante entre las capas de entrada y salida (Wji)
durante el proceso de aprendizaje de la red va a depender precisamente
de esta interacción lateral.

La influencia que una neurona ejerce sobre las demás es función


de la distancia entre ellas, siendo muy pequeñas cuando están muy
alejadas. Es frecuente que dicha influencia tenga la forma de un
sombrero mexicano.

Por otra parte, la versión del modelo denominado TPM (Topology


Preserving Map) trata de establecer una correspondencia entre los datos
de entrada y un espacio bidimensional de salida, creando mapas
topológicos de dos dimensiones, de tal forma que ante datos de entrada
con características comunes se deben activar neuronas situadas en
próximas zonas de la capa de salida.
29

Aprendizaje

Supongamos que tenemos patrones de entrada n-dimensionales.

0. Aleatorizar los pesos de las conexiones. Normalizar los pesos de las


conexiones incidentes de cada unidad de salida sobre la unidad: dividir
cada conexión por la raíz cuadrada de la suma de los cuadrados de las
conexiones de cada unidad. Normalizar igualmente los datos de entrada

1. Aplicar un patrón de entrada.


2. Calcular alguna medida de similitud/disimilitud (producto interno,
distancia euclídea o de Mahalanobis, etc.) entre las entradas y los pesos
de las conexiones.
3. La unidad de salida con los pesos más parecidos al patrón de entrada es
declarada ganadora. El vector de pesos de la unidad ganadora, se
convierte en el centro de un grupo de vectores cercanos a él.
4. Modificar los pesos de los vectores de pesos Wj "cercanos" a Wc
(distancia menor a D), según la fórmula:

De esta manera conseguimos que los vectores de pesos de la unidad


ganadora y de su "vecindario" se parezcan cada vez más al patrón de
entrada que hace ganar a esa unidad.

5. Repetir los pasos 1 a 4 con todos los patrones de entrada.

A medida que avanza el aprendizaje hay que ir reduciendo D y a.


Kohonen recomienda empezar con un valor de a cercano a 1 y reducirlo
gradualmente hasta 0.1. D puede empezar valiendo la máxima distancia
existente entre los pesos de las conexiones al principio y acabar siendo tan
pequeño que no quede ninguna unidad en el vecindario de la unidad
ganadora. En ese momento solo se entrenará una unidad, que al final
tendrá su vector de pesos igual al vector de entrada.

La precisión de la clasificación de los patrones de entrada aumenta con


el número de ciclos de aprendizaje. Kohonen recomienda una cantidad de
ciclos no inferior a 500 veces el número de neuronas de salida para obtener
buenos resultados.

Aplicación

Una vez entrenada, podemos usar a la red para clasificar patrones de


entrada similares en el espacio n-dimensional. Una clase o grupo de
patrones similares tiende a controlar una neurona específica, que
representará el centro de una esfera n-dimensional (de radio unitario, pues
normalizamos los datos sobre la unidad). Esa neurona resultará la más
activada frente a los patrones más parecidos a su vector de pesos.

Después del aprendizaje, la clasificación consiste en presentar una


entrada y seleccionar la unidad más activada. Además, el vector de pesos nos
servirá para reconstruir el patrón de entrada.
30

6.4 Hopfield

Las redes de Hopfield son redes de adaptación probabilística,


recurrentes, funcionalmente entrarían en la categoría de las memorias
autoasociativas, es decir, que aprenden a reconstruir los patrones de entrada
que memorizaron durante el entrenamiento. Son arquitecturas de una capa con
interconexión total, funciones de activación booleana de umbral (cada unidad
puede tomar dos estados, 0 o 1, dependiendo de si la estimulación total
recibida supera determinado umbral), adaptación probabilística de la activación
de las unidades, conexiones recurrentes y simétricas, y regla de aprendizaje no
supervisado. Mientras que las redes en cascada (no recurrentes) dan
soluciones estables, los modelos recurrentes dan soluciones inestables
(dinámicas), lo que no siempre es aconsejable.

La principal aportación de Hopfield consistió precisamente en conseguir


que tales redes recurrentes fueran así mismo estables. Imaginó un sistema
físico capaz de operar como una memoria autoasociativa, que almacenara
información y fuera capaz de recuperarla aunque la misma se hubiera
deteriorado.

La Red de Hopfield es recurrente y completamente conectada. Funciona


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

Boltzmann

En la Máquina de Boltzmann, generalización de la red de Hopfield que


incluye unidades ocultas, la operación de actualización se basa en un concepto
de termodinámica estadística conocido como "simulated annealing". La red de
Hopfield, la máquina de Boltzmann y un derivado conocido como la máquina
del teorema de campo medio se han utilizado en aplicaciones de segmentación
y restauración de imágenes y optimización combinacional.

Características

La red de Hopfield consiste en un conjunto de N elementos de


procesado interconectadas que actualizan sus valores de activación de forma
asíncrona e independiente del resto de las elementos de procesado. Todos los
elementos son a la vez de entrada y salida. Los valores de activación son
binarios.

El estado del sistema esta dado por los valores de activación Yk. La
entrada de la neurona k en el ciclo temporal t+1 viene dada por
31

Para obtener el nuevo valor de activación se aplica una función umbral.

Cuando un elemento de procesado mantiene su valor de activación se


dice que es estable. Se llama estado estable a aquel en el cual todos los
elementos de procesado son estables.

Con la restricción extra de simetría en los pesos de conexión, Wjk=Wkj,


el sistema puede ser descrito mediante una función energía de la forma

Funcionamiento

A cada estado de la red se le puede atribuir una cierta cantidad de


energía, el sistema evoluciona tratando de disminuir la energía mediante
un proceso de relajación, hasta alcanzar un mínimo (valle) donde se
estabiliza. Los mínimos de energía se corresponden con los recuerdos
almacenados durante el aprendizaje de la red.

Ante la presentación de un estímulo nuevo se obtendrá una


configuración inicial más o menos parecida a alguno de los estímulos
almacenados, el sistema evolucionará hasta caer en una configuración
estable que representa el recuerdo asociado a ese estímulo. Si la
configuración inicial discrepa mucho de los recuerdos almacenados
podemos alcanzar algún mínimo que no se corresponde a ningún
recuerdo almacenado, recuperando en ese caso una información
espuria, o podríamos no alcanzar ningún mínimo, quedando inestable:
en ese caso diríamos que la red está "confundida", no es capaz de
reconocer el estímulo, no recuerda.

Una tercera posibilidad es que al cabo de unos pasos de


evolución empiece a repetir periódicamente una secuencia definida de
estados; con esta dinámica se han modelado ciertas excitaciones
nerviosas que regulan acciones rítmicas y repetitivas; y se ha tratado de
reproducir la memoria de secuencias temporales, pe. el recuerdo de
melodías.

Modelo de Red de Hopfield de 3 unidades


32

Fig. 18

Como habíamos dicho, las neuronas se conectan todas entre sí, y


consigo mismas. Para empezar se le asigna a cada unidad el valor o

estado correspondiente del patrón de entrada. En cada ciclo se


elige una neurona al azar y se calcula su activación según la función de
umbral:

Sea n el número de neuronas en la red, la estimulación total se


calcula como el sumatorio de todas las entradas ponderadas, incluida la
procedente de la misma unidad.

Se puede trabajar con cualquier valor de umbral para la función


de activación, pero típicamente se usa el 0 como umbral; tiene la ventaja
de simplificar las ecuaciones.

yi=1 si xi > 0 yi=0 si xi < 0

Por definición los recuerdos (ítems o patrones almacenados) son


puntos fijos en la dinámica de la red, es decir, configuraciones que no
cambian en el tiempo aunque se siga aplicando la regla de evolución.
Para almacenar un recuerdo habrá que lograr que la presentación del
patrón de entrada lleve a la red a alcanzar un punto fijo, esto se logrará
33

mediante alguna regla de aprendizaje que modifique los pesos de las


conexiones.

Aplicación

Las redes de Hopfield se han aplicado a campos como la


percepción el reconocimiento de imágenes y optimización de problemas,
mostrando gran inmunidad al ruido y robustez. Incluso se han llegado a
desrrollar chips específicos para este tipo redes. El estudio de las
representaciones de secuencias temporales es un área de gran interés,
con aplicaciones en reconocimiento automático de voces y movimientos.

Hopfield ha mostrado como aplicar los mismos principios con


funciones de activación continuas como la función sigmoidal, con muy
pocas modificaciones.

Pero pese a sus evidentes ventajas no están exentas de problemas:

El número máximo de patrones no correlacionados que puede


almacenar es igual al 15% del número de neuronas de la red.

Requieren mucho tiempo de procesamiento hasta converger a


una solución estable, lo que limita su aplicabilidad.

Otro de los problemas achacados a las redes de Hopfield es su


tendencia a caer en mínimos locales, como en las redes de
retropropagación. La solución pasa por aplicar los métodos estadísticos
que ya comentamos en el apartado dedicado a las redes de
retropropagación, el equilibrio termodinámico simulado.

7.- Ventajas de las redes neuronales


Debido a su constitución y a sus fundamentos, las redes
neuronales artificiales presentan un gran número de características semejantes
a las del cerebro. Por ejemplo, son capaces de aprender de la experiencia, de
generalizar de casos anteriores a nuevos casos, de abstraer características
esenciales a partir de entradas que representan información irrelevante, etc.
Esto hace que ofrezcan numerosas ventajas y que este tipo de tecnología se
esté aplicando en múltiples áreas. Entre las ventajas se incluyen:
• Aprendizaje Adaptativo. Capacidad de aprender a realizar tareas
basadas en un entrenamiento o en una experiencia inicial.
• Auto-organización. Una red neuronal puede crear su propia organización
o representación de la información que recibe mediante una etapa de
aprendizaje.
• Tolerancia a fallos. La destrucción parcial de una red conduce a una
degradación de su estructura; sin embargo, algunas capacidades de la
red se pueden retener, incluso sufriendo un gran daño.
34

• Operación en tiempo real. Los cómputos neuronales pueden ser


realizados en paralelo; para esto se diseñan y fabrican máquinas con
hardware especial para obtener esta capacidad.
• Fácil inserción dentro de la tecnología existente. Se pueden obtener
chips especializados para redes neuronales que mejoran su capacidad
en ciertas tareas. Ello facilitará la integración modular en los sistemas
existentes.

7.1 Aprendizaje Adaptativo.


La capacidad de aprendizaje adaptativo es una de las características
más atractivas de redes neuronales. Esto es, aprenden a llevar a cabo
ciertas tareas mediante un entrenamiento con ejemplos ilustrativos. Como
las redes neuronales pueden aprender a diferenciar patrones mediante
ejemplos y entrenamientos, no es necesario elaborar modelos a priori ni
necesidad de especificar funciones de distribución de probabilidad. Las
redes neuronales son sistemas dinámicos autoadaptativos. Son adaptables
debido a la capacidad de autoajuste de los elementos procesales
(neuronas) que componen el sistema. Son dinámicos, pues son capaces de
estar constantemente cambiando para adaptarse a las nuevas condiciones.
En el proceso de aprendizaje, los enlaces ponderados de las neuronas se
ajustan de manera que se obtengan ciertos resultados específicos. Una red
neuronal no necesita un algoritmo para resolver un problema, ya que ella
puede generar su propia distribución de pesos en los enlaces mediante el
aprendizaje. También existen redes que continúan aprendiendo a lo largo de
su vida, después de completado su período de entrenamiento. La función
del diseñador es únicamente la obtención de la arquitectura apropiada. No
es problema del diseñador el cómo la red aprenderá a discriminar. Sin
embargo, sí es necesario que desarrolle un buen algoritmo de aprendizaje
que le proporcione a la red la capacidad de discriminar, mediante un
entrenamiento con patrones.

7.2 Auto-organización.
Las redes neuronales emplean su capacidad de aprendizaje adaptativo
para autoorganizar la información que reciben durante el aprendizaje y/o la
operación. Mientras que el aprendizaje es la modificación de cada elemento
procesal, la autoorganización consiste en la modificación de la red neuronal
completa para llevar a cabo un objetivo específico. Cuando las redes
neuronales se usan para reconocer ciertas clases de patrones, ellas
autoorganizan la información usada. Por ejemplo, la red llamada
backpropagation, creará su propia representación característica, mediante
la cual puede reconocer ciertos patrones. Esta autoorganización provoca la
generalización: facultad de las redes neuronales de responder
apropiadamente cuando se les presentan datos o situaciones a las que no
había sido expuesta anteriormente. El sistema puede generalizar la entrada
para obtener una respuesta. Esta característica es muy importante cuando
se tiene que solucionar problemas en los cuales la información de entrada
35

no es muy clara; además permite que el sistema dé una solución, incluso


cuando la información de entrada está especificada de forma incompleta.

7.3 Tolerancia a fallos.


Las redes neuronales fueron los primeros métodos computacionales con
la capacidad inherente de tolerancia a fallos. Comparados con los sistemas
computacionales tradicionales, los cuales pierden su funcionalidad cuando
sufren un pequeño error de memoria, en las redes neuronales, si se
produce un fallo en un número no muy grande de neuronas y aunque el
comportamiento del sistema se ve influenciado, no sufre una caída
repentina. Hay dos aspectos distintos respecto a la tolerancia a fallos:
a) Las redes pueden aprender a reconocer patrones con ruido,
distorsionados o incompletos. Esta es una tolerancia a fallos respecto a
los datos.
b) Las redes pueden seguir realizando su función (con cierta degradación)
aunque se destruya parte de la red.

La razón por la que las redes neuronales son tolerantes a los fallos es que
tienen su información distribuida en las conexiones entre neuronas,
existiendo cierto grado de redundancia en este tipo de almacenamiento. La
mayoría de los ordenadores algorítmicos y sistemas de recuperación de
datos almacenan cada pieza de información en un espacio único, localizado
y direccionable. En cambio, las redes neuronales almacenan información no
localizada. Por lo tanto, la mayoría de las interconexiones entre los nodos
de la red tendrán sus valores en función de los estímulos recibidos, y se
generará un patrón de salida que represente la información almacenada.

7.4 Operación en tiempo real.


Una de las mayores prioridades, casi en la totalidad de las áreas de
aplicación, es la necesidad de realizar procesos con datos de forma muy
rápida. Las redes neuronales se adaptan bien a esto debido a su
implementación paralela. Para que la mayoría de las redes puedan operar
en un entorno de tiempo real, la necesidad de cambio en los pesos de las
conexiones o entrenamiento es mínimo.

7.5 Fácil inserción dentro de la tecnología existente.


Una red individual puede ser entrenada para desarrollar una única y bien
definida tarea (tareas complejas, que hagan múltiples selecciones de
patrones, requerirán sistemas de redes interconectadas). Con las
herramientas computacionales existentes (no del tipo PC), una red puede
ser rápidamente entrenada, comprobada, verificada y trasladada a una
implementación hardware de bajo coste. Por lo tanto, no se presentan
dificultades para la inserción de redes neuronales en aplicaciones
específicas, por ejemplo de control, dentro de los sistemas existentes. De
esta manera, las redes neuronales se pueden utilizar para mejorar sistemas
en forma incremental y cada paso puede ser evaluado antes de acometer
un desarrollo más amplio.
36

8. Aplicaciones.

8.1 Aplicaciones de las redes neuronales.

Las redes neuronales pueden utilizarse en un gran número y


variedad de aplicaciones, tanto comerciales como militares.

Hay muchos tipos diferentes de redes neuronales; cada uno de los


cuales tiene una aplicación particular más apropiada. Algunas
aplicaciones comerciales son:

 Biología:
 Aprender más acerca del cerebro y otros sistemas.
 Obtención de modelos de la retina.
 Empresa:
 Evaluación de probabilidad de formaciones geológicas y
petrolíferas.
 Identificación de candidatos para posiciones específicas.
 Explotación de bases de datos.
 Optimización de plazas y horarios en líneas de vuelo.
 Reconocimiento de caracteres escritos.
 Modelado de sistemas para automatización y control.
 Medio ambiente:
 Analizar tendencias y patrones.
 Previsión del tiempo.
 Finanzas:
 Previsión de la evolución de los precios.
 Valoración del riesgo de los créditos.
 Identificación de falsificaciones.
 Interpretación de firmas.

 Manufacturación:
 Robots automatizados y sistemas de control (visión
artificial y censores de presión, temperatura, gas, etc.).
 Control de producción en líneas de procesos.
 Inspección de la calidad.

 Medicina:
 Analizadores del habla para ayudar en la audición de
sordos profundos.
 Diagnóstico y tratamiento a partir de síntomas y/o de datos
analíticos(electrocardiograma, encefalogramas, análisis
sanguíneo..).
 Monitorización en cirugías.
37

 Predicción de reacciones adversas en los medicamentos.


 Entendimiento de la causa de los ataques cardíacos.

 Militares:
 Clasificación de las señales de radar.
 Creación de armas inteligentes.
 Optimización del uso de recursos escasos.
 Reconocimiento y seguimiento en el tiro al blanco.

Desde el punto de vista de los casos de aplicación, la ventaja de las


redes neuronales reside en el procesado paralelo, adaptativo y no lineal.

Anda mungkin juga menyukai