Anda di halaman 1dari 23

Apuntes Ampliados de Introduccin a

las Redes Neuronales


Modelos de Computacin II
Ingeniera Informtica
Curso 2004-2005

Autor: Joaqun Derrac Rus


jderrac@fedro.ugr.es

Introduccin
El texto que aparece a continuacin es una ampliacin a los apuntes y transparencias
dados en clase de Modelos de Computacin II en el ao 2004, correspondiente al tema
de introduccin a las redes neuronales y sus aplicaciones.
El principal motivo de ellos es ampliar los conocimientos y aclarar las dudas que hallan
podido surgir sobre el tema. Puesto que se trata de dar un repaso a los conceptos, he
preferido evitar entrar en temas mas complejos, como descripciones de otros tipos de
redes, deducciones matemticas de frmulas, discusiones sobre el numero de neuronas
por capa, etc y por tanto, remito al lector interesado en estos temas a la bibliografa
sealada al final del texto, a la propia pgina Web de la asignatura, o a cualquier otro
texto que trate el tema de forma ms avanzada.
Respecto a la bibliografa, cabe sealar que cuando hago alguna referencia a ella a lo
largo del escrito lo hago de esta manera: [1], con lo que quiero decir vase en el texto
numero 1 de la bibliografa.
Al final del texto he incluido un pequeo apartado de preguntas cortas sobre el tema,
con objeto de dar un repaso final, y porqu no decirlo, saber a que nos podemos
enfrentar el da del examen.
Y por ltimo, solo queda sealar que, respecto a la terminologa, he procurado seguir la
ms cercana a la expuesta en clase, aunque, dado que no he seguido literalmente las
transparencias ni mis propios apuntes, es posible que algunos trminos varen en
algunos detalles. An as, espero que estos apuntes sean de fcil comprensin para el
lector.

Las Redes Neuronales


Formalmente, las redes neuronales se pueden definir como sistemas de computacin (o
modelos de cmputo) formados por un gran nmero de elementos simples e
interconectados, los cuales procesan informacin por medio de su estado dinmico
como respuesta a entradas externas.
De forma ms general, podemos decir que estn compuestas de un gran nmero de
neuronas, las cuales, como se ver ms adelante, pueden estar organizadas en una sola
capa, o en varias capas. En este ltimo caso se suelen clasificar en tres grupos: neuronas
de entrada (cuya misin es captar los datos desde el exterior), neuronas intermedias u
ocultas (se encargan de procesar la informacin y transmitirla a travs de la red) y
neuronas de salida (recogen la informacin y la presentan como salida de la red).

Su esquema de funcionamiento, una vez entrenada la red convenientemente, se basa en


la recepcin de los datos, la activacin de varias neuronas a travs de las diversas capas
de la red, y la posterior inferencia de una salida, la cual ser el resultado propuesto por
la red.
Su finalidad principal es tratar de imitar los mecanismos del pensamiento natural, es
decir, del cerebro humano, centrndose en procesos de almacenaje y utilizacin de
patrones, para resolver problemas a travs de ellos. Este tipo de tareas, as como la
generalizacin a partir de varios casos expuestos, o la prediccin de resultados, son
difcilmente implementables por los esquemas de programacin clsicos. Es en estos
campos, precisamente, donde las redes neuronales demuestran su utilidad.
Es importante resear que aunque las redes neuronales son muy tiles para la resolucin
de problemas de adaptacin, como los anteriormente descritos, no es apropiada para la
realizacin de clculos precisos, siendo mejor en estos casos emplear los sistemas de
computacin convencionales.

La neurona artificial
Una neurona es la unidad mnima de procesamiento de informacin existente en una red
neuronal.

Como se puede observar en la imagen, son estructuras muy simples. Bsicamente se


componen de:
-Un conjunto de conexiones (sinapsis) , por las que la neurona recibe las entradas
(estmulos) con los que la neurona percibir la informacin. Cada una de estas
conexiones est caracterizada por un peso sinptico, el cual es un factor que caracteriza
la fuerza con que capta un determinado estmulo. Si el peso toma un valor positivo, la
entrada se denomina entrada excitatoria. Si el peso toma un valor negativo, la entrada
se denomina entrada inhibitoria. Si el valor del peso fuese 0, entonces se considera que
dicha conexin no existe.
-Una nica salida, en la que la neurona reproduce su nivel de excitacin. Este nivel es
calculado a partir de la suma de las entradas consideradas individualmente (una vez
ponderadas por sus respectivos pesos sinpticos) y tomando el resultado como entrada
para la funcin de activacin de la neurona. El resultado de esta funcin ser, pues, el
valor de salida de la neurona.
Adems, para cada neurona el sistema debe ser capaz de representar su estado de
activacin, que cambiar conforme vaya avanzando el tiempo. Generalmente se suele
simplificar en este aspecto, haciendo que la neurona solo pueda establecerse en los
estados excitado y en reposo, determinados generalmente con los valores [-1,1] o [0,1],
segn el modelo.

Conexiones entre neuronas


Como hemos indicado anteriormente, las conexiones entre neuronas tienen asignado un
peso especfico, o peso sinptico, que indica la fuerza de dicha conexin (positiva,
negativa o nula). Es en los pesos de estas conexiones donde realmente se encuentra
almacenada la informacin de la red, pues son estos pesos los responsables de establecer
cual ser la respuesta de la red ante cualquier entrada.
Partiendo de este concepto, la suma ponderada de todos los estmulos percibidos por la
neurona se denomina valor de propagacin, y es el valor que tomar la funcin de
activacin para determinar el estado de la neurona, como veremos posteriormente.

Funciones de activacin y de salida


Una vez que la neurona ya ha captado la suma ponderada de todos sus estmulos (que,
de ahora en adelante, llamaremos net), debe pasar a determinar su estado. De esto se
encarga la funcin de activacin. Al comienzo nicamente se usaron funciones de
activacin lineales, para simplificar el modelo, aunque ms tarde se descubri que el
aadir funciones de activacin no lineales incrementaba la capacidad de la red para
calcular problemas ms complejos.

-Funcin Umbral:

La idea de esta funcin es que si net supera un determinado valor umbral , entonces la
neurona pasa a estar activa ( 1 ), si net es inferior a ,entonces la neurona estar en
reposo (-1).
Esta fue la primera funcin de activacin usada en las neuronas. Su interpretacin
geomtrica es la siguiente:
Supongamos una neurona con dos entradas, las cuales representaremos en un espacio
Euclideo. La funcin de activacin se representa como un hiperplano que divide el
espacio en dos partes, +1 y -1.

Aqu es donde podemos ver de manifiesto la capacidad de las redes neuronales para
clasificar patrones: En realidad lo que hacen es clasificar un conjunto de soluciones en
el espacio.

-Funcin Identidad:

Aqu en lugar de discretizar los estados de la neurona a dos, se permite a la neurona


tomar cualquier valor, que coincidir con el valor de sus entradas (net).

-Funcin semilineal:

Esta es una combinacin de las anteriores. Presenta un intervalo de valores continuo,


pero acotado entre dos valores (-b y b). Esto permite tener un comportamiento similar al
de la funcin umbral, pero permitiendo determinar mejor lo que ocurre si los valores
son muy prximos al umbral.

-Funcin sigmoidal:

Aunque existen varias funciones de este tipo, la ms utilizada es la funcin logstica


1
. Como puede verse, son muy similares a las funciones semilineales. Estn
1 ex
acotadas y su comportamiento cerca del umbral es continuo. La principal ventaja de las
funciones sigmoidales es que son derivables (al contrario que las semilineales), por lo
que pueden ser empleadas en mtodos de aprendizaje que requieran el uso de derivadas.
En particular, la derivada de la funcin logstica es fcil de obtener:
F(x)= F(x)*(1-F(x)). Adems, esta derivada es siempre positiva y cercana a 0.

Estructuras de las redes Neuronales. Tipos


Uno de los aspectos ms importantes en el funcionamiento de una red neuronal es su
estructura .Generalmente, las redes neuronales se organizan formando capas, que son
agrupaciones de neuronas. Por tanto, los parmetros principales que definen la
arquitectura de la red son: El nmero de capas, el nmero de neuronas por capa, el
grado de conectividad entre las neuronas y el tipo de estas conexiones.
Segn el nmero de capas tenemos:

-Redes monocapa: En este tipo de redes se establecen conexiones laterales entre


todas las neuronas que pertenecen a la nica capa de la red. Adems, se pueden definir
conexiones autorecurrentes, de una neurona a si misma.
Se usan principalmente para tareas de autoasociacin, es decir, para regenerar
informaciones de entrada que se presentan de forma incompleta o distorsionada.
Ejemplos: Red de HOPFIELD, mquinas de BOLTZMANN, etc.

-Redes multicapa: Las redes multicapa son aquellas cuyas neuronas estn
organizadas en 2, 3 o ms conjuntos. Normalmente, suele existir una capa de entrada,
una o varias capas ocultas, y una capa de salida.

A su vez, las redes multicapa las podemos dividir en dos grupos, segn si las conexiones
son solo hacia delante (redes feedforward), o si permitimos tambin conexiones hacia
atrs (redes feedforward/feedback).
Aun que existen muchos modelos inspirados en feedforward/feedback como las redes
BAM, ART, el COGNITRON y el NEOCOGNITRON. Nosotros nos centraremos en
las redes feedforward, en las que todas las seales se propagan siempre hacia delante a
travs de las caspas de la red, salvo ciertas excepciones (como los mapas de Kohonen).
Los ejemplos ms conocidos de estas redes son el Perceptrn, el ADALINE y
MADALINE, y la red BACKPROPAGATION, y son las que vamos a ver a partir de
ahora.

El aprendizaje:
Una vez definida la estructura de la red, el siguiente paso es entrenarla para que
responda de forma adecuada ante un determinado problema. Para ello lo que hay que
hacer es presentar un conjunto de casos que la red utilizar para modificar sus pesos.
Durante el proceso de aprendizaje, los pesos de la red van cambiando convenientemente
hasta que los pesos permanezcan estables, momento en el cual se dice que la red ha
aprendido.
Existen dos criterios para diferenciar los tipos de aprendizaje existentes. El primero es
que la red pueda aprender durante su funcionamiento (aprendizaje ONLINE), o que
durante el aprendizaje sea desconectada del exterior (aprendizaje OFFLINE).El segundo
es que el aprendizaje sea autnomo o est controlado por un ente exterior a la red. En
este caso estaremos hablando de aprendizaje supervisado o aprendizaje no supervisado.

En el aprendizaje no supervisado, la red no requiere ninguna informacin externa que le


indique si la salida generada es correcta o no. Por eso se dice que estas redes son
capaces de autoorganizarse. Realmente, estas redes se basan en la familiaridad o
similitud entre la informacin presentada y las que ya haba almacenado en el pasado.
Sin embargo, las ms utilizadas son las redes con aprendizaje supervisado. En ellas,
debe indicrsele a la red cuando est actuando bien, realizando un entrenamiento previo
a su uso.
Aunque existen varios mtodos de aprendizaje supervisado, como el aprendizaje por
refuerzo (basado nicamente en una seal que indica si el resultado es vlido o si ha
fallado, pero no en donde ha fallado) o el aprendizaje estocstico (que realiza cambios
aleatorios en los valores de los pesos de la red), el modelo mas usado es el de
aprendizaje por correccin de error, que consiste en obtener el error obtenido tras cada
caso, y usarlo para corregir los pesos de la red, hasta que el error sea el mnimo posible.
Este mtodo de aprendizaje lo veremos ms a fondo en el apartado del perceptrn.
Para finalizar, podemos avanzar que estas redes se suelen usar principalmente en labores
de prediccin y clasificacin.

Redes de propagacin hacia delante


A partir de ahora lo que haremos es describir en profundidad al grupo de redes que
comparten esta caracterstica en comn: Redes con conexiones hacia delante, con
arquitecturas en 1 o varios niveles perfectamente separados, tiles como clasificadores
de patrones y usuarias del aprendizaje supervisado.
Veremos las ms importantes: Perceptrn, ADALINE y MADALINE, y la red
Backpropagation.

Redes monocapa: El Perceptrn


Este fue el primer modelo de red neuronal artificial. Fue desarrollado por Rosenblatt en
1958.
Est formado por varias neuronas de entrada (tantas como la dimensin del patrn de
entrada) y una nica neurona de salida. Como funcin de activacin usan la funcin
umbral.
Su funcionamiento es simple: La neurona de salida realiza la suma ponderada de las
entradas, resta el umbral y pasa el resultado a la funcin de activacin, la cual responde
+1 si el patrn pertenece a la clase A, o -1 si pertenece a la clase B.

El trmino BIAS.
Como puede verse, la respuesta del perceptrn depende de que la suma ponderada de las
entradas pueda superar o no el valor del umbral.
Para poder simplificar la funcin de activacin, lo que se hace es suponer que se usa la
funcin umbral con =0 (la ms simple), y reflejamos el valor umbral real de la
neurona en una conexin especial, llamada BIAS, cuyo salida siempre ser 1,la cual est
conectada a todas las neuronas de la red.
Gracias a esto, podemos especificar el valor umbral de cada neurona como un peso de
una conexin ms, lo cual facilita la tarea de interpretacin de frmulas y sobre todo, el
establecimiento del valor umbral dentro del aprendizaje, ya que se trata a este como a un
peso cualquiera.

Algoritmo de aprendizaje del perceptrn


El algoritmo de aprendizaje del perceptrn es de tipo supervisado, por lo que tendremos
que evaluar cada uno de los resultados durante su aprendizaje y corregir el sistema si
fuese necesario.
La idea es ir presentando un conjunto de casos simples al perceptrn y observar sus
respuestas, de forma que si el perceptrn responde -1, cuando debera responder +1, o
viceversa, modificamos los pesos correspondientes con el valor neto del error

Pasos:
1. Asignar valores aleatorios a los pesos
2. Aplicar un vector de entrada y obtener la salida correspondiente
3. Calcular error.
4. Si error 0, entonces para cada peso w=w+error*entrada
Y el proceso se repite hasta que los pesos alcancen valores estables.
A modo de ejemplo vamos a mostrar el aprendizaje de la funcin booleana AND, de
modo que la neurona muestre 1 si ambas entradas estn activas o -1 si alguna no lo esta.
Cada vector de entrada tendr 3 trminos: B y C, las entradas, y A, el valor umbral, el
cual siempre valdr 1 (recordar la definicin de BIAS).
Inicialmente, como valor aleatorio para los pesos, en este ejemplo tomaremos 0 0 0.
A B C
- - 1 0 0
1 0 1
1 1 0
1 1 1
1 0 0
1 0 1
1 1 0
1 1 1
1 0 0
1 0 1
1 1 0
1 1 1
1 0 0
1 0 1
1 1 0
1 1 1
1 0 0
1 0 1
1 1 0
1 1 1
1 0 0
1 0 1
1 1 0
1 1 1
1 0 0
1 0 1
1 1 0

S. Deseada
-1
-1
-1
1
-1
-1
-1
1
-1
-1
-1
1
-1
-1
-1
1
-1
-1
-1
1
-1
-1
-1
1
-1
-1
-1

S.Obtenida
0
-1
-1
-1
1
1
-1
-1
-1
1
1
1
-1
-1
1
-1
-1
-1
1
-1
-1
-1
1
1
-1
-1
-1

Error
-1
0
0
2
-2
-2
0
2
0
-2
-2
0
0
0
-2
2
0
0
-2
2
0
0
-2
0
0
0
0

Error*ABC
- - -1 0 0
0 0 0
0 0 0
2 2 2
-2 0 0
-2 0 -2
0 0 0
2 2 2
0 0 0
-2 0 -2
-2 -2 0
0 0 0
0 0 0
0 0 0
-2 -2 0
2 2 2
0 0 0
0 0 0
-2 -2 0
2 2 2
0 0 0
0 0 0
-2 -2 0
0 0 0
0 0 0
0 0 0
0 0 0

Pesos ABC
0 0 0
-1 0 0
-1 0 0
-1 0 0
1 2 2
-1 2 2
-3 2 0
-3 2 0
-1 4 2
-1 4 2
-3 4 0
-5 6 0
-5 6 0
-5 6 0
-5 6 0
-7 4 0
-5 6 2
-5 6 2
-5 6 2
-7 4 2
-5 6 4
-5 6 4
-5 6 4
-7 4 4
-7 4 4
-7 4 4
-7 4 4
-7 4 4

Como podemos ver, tras un nmero de iteraciones la neurona ha acabado aprendiendo


como realizar la funcin AND, modificando sus pesos de entrada como: B=4, C=4,y
con un umbral de -7.
Para ver que clase de problemas son resolubles mediante el perceptrn simple,
enunciaremos el siguiente teorema:

Teorema de convergencia:
- Si las clases son linealmente separables, el algoritmo del perceptrn converge a una
solucin correcta en un nmero finito de pasos para cualquier eleccin inicial de los
pesos.
El problema es que la mayora de los problemas a los que nos vamos a enfrentar no son
linealmente separables:

Problemas tan simples como la funcin XOR no pueden ser resueltas mediante el
perceptrn simple, pues es imposible separar el espacio solucin mediante una sola
lnea.
(Mas adelante, se descubrieron varios mtodos para resolver el problema de la XOR,
muchos de ellos basados en la realizacin de transformaciones en el espacio, es decir, en
jugar, con tres dimensiones en lugar de con dos, pero eso se sale del mbito de este
tema. No obstante, en [1] y en [2] puede encontrarse informacin al respecto)

Adaline y Madaline
Las redes ADALINE (ADAptative LINear Element) y MADALINE (Multiple
ADALINE). Ambas arquitecturas son similares al perceptrn. La red ADALINE est
limitada a una nica salida, mientras que la red MADALINE tiene varias.
La principal diferencia entre el ADALINE y el perceptrn es el uso de la Regla Delta
durante el aprendizaje. Esto permite al ADALINE emplear funciones de activacin
diferentes de la funcin escaln, como la funcin lineal.
Adems, una ventaja del ADALINE es que no solo garantiza una solucin vlida para
problemas linealmente separables, sino que esa solucin ser la que produzca un error
mnimo, segn el criterio LMS, que veremos a continuacin.

Aprendizaje de la red Adaline. La regla Delta


Bsicamente, la regla Delta lo que pretende es reducir el error cuadrtico medio, que
1 n
p
P 2
viene definido como: E= ( D Y ) , siendo d la salida esperada e y la salida
2 p 1
obtenida.
Para ello, lo que se intenta es tratar de converger hacia mnimos globales de este error,
aplicando un algoritmo iterativo de descenso del gradiente.
Para ello lo que se hace es ir calculando el valor de las derivadas de cada peso respecto
a cada entrada, de donde al final obtenemos que el incremento de pesos es:
W j ( d y ) x j . Si la comparamos con la del perceptrn: W j ( d y ) x j ,

observamos que lo nico que hace la regla delta es aadir una constante , que es la que
indica como de rpido ser el aprendizaje, y es la llamada Tasa de Aprendizaje.

Algoritmo LMS
Este algoritmo (Least Mean Square), similar al perceptrn, se caracteriza por utilizar la
regla delta. Para poder efectuar con xito la derivacin que la aplicacin de esta regla
exige, es necesario que la funcin de activacin sea lineal.

Pasos:
-Asignar valores aleatorios a los pesos
-Aplicar un vector de entrada y obtener la salida correspondiente:
salida= w*x
error= salida deseada salida
wi = wi + * error * xi para todo i .
Y se repite el proceso hasta que el error sea menor a un lmite previamente establecido.
Para el buen desarrollo de este algoritmo, debe tomar valores que , tericamente,
deberan ser infinitamente pequeos. Generalmente se obtienen buenos resultados con
valores cercanos a 0,1.

Redes Multicapa. El perceptrn multicapa


Las redes multicapa aparecieron para tratar de paliar las deficiencias que acabamos de
ver de las redes monocapa.
El primer tipo de red definida as fue el perceptrn multicapa. Lo que introduca es la
utilizacin de varias capas ocultas entre la capa de entrada y la de salida. Eso permita la
designacin de regiones de decisin mucho ms complejas que los dos semiplanos que
nos permita el perceptrn simple.
En este cuadro (extrado de [3], donde se puede consultar la diferencia entre usar la
funcin umbral o emplear una funcin no lineal continua, nosotros solo representaremos
el caso ms general) podemos observar como mejoran las capacidades de divisin del
espacio mientras aumenta el numero de capas.

Usando una nica capa, solo podemos establecer fronteras lineales entre las regiones.
Un perceptrn con dos capas podr formar cualquier regin convexa, es decir, regiones
formadas por la interseccin entre regiones formadas por una nica capa.
Aumentando la complejidad de la red a 3 capas (o ms), se pueden formar regiones de
complejidad arbitraria, de forma que podremos resolver cualquier problema. Hay muy
pocos casos en los que sea necesario aumentar el nmero de capas, y su utilidad se
reduce a mejorar el proceso de aprendizaje.
Para completar este tema, se puede observar en [1] una explicacin ms amplia, tocando
aspectos como el nmero de neuronas por capa o la interpretacin geomtrica de las
zonas delimitadas.

Backpropagation.
Ya en 1986, varios investigadores desarrollaron un mtodo para que una red neuronal
aprendiera la asociacin que existe entre los patrones de entrada a la misma y las clases
correspondientes, utilizando varias capas ocultas. Este mtodo, el Backpropagation, esta
basado en la regla delta (generalizada) y ampli considerablemente el campo de
aplicacin de las redes neuronales.
Este algoritmo se puede aplicar a modelos de redes con ms de una capa. Es capaz de
organizar la representacin interna del conocimiento, consiguiendo cualquier
correspondencia entre la entrada y la salida de la red.
El esquema general de uso de este algoritmo es un aprendizaje a partir de un conjunto
de pares entrada-salida deseada, de forma que lo primero que se hace es presentar la
entrada a la red. As, se obtiene una salida real. Posteriormente se compara con la salida
deseada y se obtiene este error absoluto. A partir de aqu, este error se va propagando
hacia atrs, de forma que todas las neuronas reciben el porcentaje de error aproximado
a la participacin de la neurona intermedia en la salida original.
Una vez que todas las neuronas tienen asignado su error relativo, se procede a ajustar
los pesos conforme a este error, de forma que en la siguiente iteracin, la salida obtenida
sea ms cercana a la esperada, es decir, el error disminuya.

La regla delta generalizada


Es una extensin de la regla delta para que pueda ser usada en capas intermedias. Estas
deben tener funciones de activacin continuas (lineales o sigmoidales), no decrecientes
y derivables.
Su funcionamiento consiste en converger hacia el mnimo error, utilizando para ello la
lnea de mxima pendiente (el mayor gradiente decreciente de dicha funcin).

El punto de partida es el mismo que en la regla delta, la actualizacin de los pesos es:
W j ( d y ) x j => W j j x j

La diferencia entre la regla delta y la regla delta generalizada es este valor . En las
redes multinivel, a diferencia de las redes monocapa, no podemos conocer a priori la
salida deseada de las capas ocultas.
Segn esto, en la regla delta generalizada
j=(dj-yj)* f (entrada j ) para las neuronas de la capa de salida.,
y j= ( k*wjk)* f (entrada j ) para cada neurona que no sea de salida, siendo k todas y
cada una de las neuronas que reciben la salida de j.
De esta forma, el error que se produce en una neurona oculta es la suma de los errores
que se producen en las neuronas a las que est conectada la salida de esta, multiplicando
cada uno de ellos por el peso de la conexin.

El momento (momentum)
Algunos de los principales problemas del Backpropagation son la lentitud en el proceso
de aprendizaje (recurdese que no puede ser muy alta, pues se produciran efectos
oscilatorios y nunca se alcanzara el mnimo),o el posible estancamiento del algoritmo
en mnimos locales.
Para evitarlos, se introdujo en el algoritmo un trmino que recogiese la inercia
(momentum) en el aprendizaje, de forma que los valores converjan ms rapidamente
hacia el mnimo y se puedan superar los mnimos locales.
Este trmino de inercia se define como una parte del incremento anterior:

* Wj(t)
Con lo que, para finalizar, las expresiones del Backpropagation quedan:

W j (t 1) W j (t ) (d j y j ) f ' (entrada j ) W j (t )

Si j es una neurona de salida, o

W j (t 1) W j (t ) ( k W jk ) f ' (entrada j ) W j (t )
k

Si j no es una neurona de salida.

Entrenamiento y validacin
Una vez diseada y construida la red, el ltimo paso de creacin es entrenarla para que
pueda reconocer todos los patrones posibles, siendo capaz de generalizar a partir de los
datos disponibles. Adems, habr que validarla, para comprobar que calcula lo que
pretendemos.
Como gua, siempre podemos tener en cuenta que es fundamental validar con datos no
empleados durante el entrenamiento, as como estimar de forma correcta el error
cometido. Tambin es importante asegurar que los datos usados son representativos
(sino la red no aprender a generalizar).
La idea es evitar una posible mala generalizacin por parte de la red. Si se entrena poco,
la red no ser capaz de generalizar, y si se entrena demasiado, no ser capaz de sacar
conclusiones correctas, como podemos ver en la siguiente grfica.

El problema es, precisamente, saber cuando parar de entrenar para no caer en el


sobreentrenamiento. Para esto existen varios mtodos, de los cuales vamos a revisar la
resustitucin, la validacin simple y la validacin cruzada. Para ampliar esta
informacin, puede consultarse [3].

Resustitucin:
Es el mtodo ms simple: Consiste en entrenar hasta que el error en los datos de
entrenamiento es lo suficientemente bajo. Sin embargo, este mtodo tiene varios
problemas, empezando por que si nos centramos en reducir el error durante el
entrenamiento, la red estar estupendamente preparada para esos datos, pero no para
generalizar en la vida real; y terminando porque este mtodo suele producir
sobreentrenamiento.

Validacin simple:
Este mtodo, tambin llamado Hold-Out consiste en dividir todos los datos disponibles
en tres grupos:
-Datos de entrenamiento: 65% Aproximadamente. Para entrenamiento inicial de la red
-Datos de validacin: 15% Aproximadamente. Para comprobar que la red esta
calculando lo que deseamos.
-Datos de test: 20% Aproximadamente.
Para comprobar si la red generaliza
adecuadamente.
La idea es conseguir un aprendizaje ptimo, que minimice el error, tanto en los datos de
entrenamiento como en los de validacin, como podemos ver a continuacin:

Validacin cruzada:
Este procedimiento se basa en dividir el conjunto de datos en varios grupos (tpicamente
10), y entrenar la red ese mismo nmero de veces, reservando cada vez uno de los
grupos para la validacin.
Este sistema puede utilizarse para entrenar la red de forma mucho ms robusta que los
anteriores, y adems nos puede dar una idea sobre cual ser el error medio de
generalizacin.

Aunque este mtodo precisa de una mayor cantidad de tiempo de entrenamiento, y no


usa el concepto de validacin en el entrenamiento final, tiene la ventaja de que utiliza
todos los datos disponibles ntegramente, lo cual hace que el aprovechamiento sea
mayor, con lo que dar resultados mejores que la validacin simple, al menos si solo se
dispone de conjuntos de datos pequeos.

Ventajas del uso de redes neuronales

A pesar de su incapacidad para realizar clculos precisos, las redes neuronales presentan
gran cantidad de ventajas frente a otros modelos, como pueden ser:

-Capacidad de trabajar en tiempo real: Dadas sus caractersticas de


multicomputacin paralela, son capaces de realizar cmputos de reconocimiento y
clasificacin de patrones de forma flexible y rpida.

-Organizacin automtica: Durante la etapa de aprendizaje, es la propia red quien


modifica su propia estructura y la adapta al entorno necesario para resolver el problema
para el que esta siendo entrenada. Es esta caracterstica la que dota a la red de la
habilidad de generalizar la solucin de un problema a partir de unos pocos datos de
prueba.

-Facilidad de empleo: Generalmente, al tratarse de un modelo de cmputo, las redes


neuronales pueden ser implementadas fcilmente en casi cualquier sistema, usando
cualquier lenguaje de programacin estructural, como C++. (de hecho, en [2] pueden
consultarse ejemplos de cdigos fuente ya realizados, en los que podemos observar los
mtodos y clases necesarios para la implementacin de las redes).

-Aprendizaje adaptativo: La red es capaz de aprender a realizar tareas apoyndose


nicamente en un entrenamiento inicial. Pueden, por ejemplo, aprender a diferenciar
patrones a partir de unos cuantos ejemplos de prueba.
Adems, este aprendizaje es dinmico, por lo que la red es capaz de estar evolucionando
continuamente para ser capaz de adaptarse a nuevas condiciones.

-Tolerancia a fallos: Las redes neuronales fueron los primeros sistemas


computacionales creados con la capacidad inherente de tolerancia a fallos. Para
empezar, las redes son capaces de reconocer patrones con ruido o distorsionados si se
las entrena para ello, con lo que puede soportar fallos referentes a los datos de entrada.
Por otra parte, la destruccin parcial de la red, aunque influir en el comportamiento del
sistema, no impedir su funcionamiento.

Ejemplos de uso.
Como hemos indicado a lo largo del tema, las aplicaciones de las redes neuronales son,
principalmente, problemas de prediccin, clasificacin o reconocimiento de formas, as
como descubrir informacin comn a familias de distintos patrones sin tener
informacin a priori.
Ms concretamente, se han venido utilizando hasta ahora en campos tan variados como:
Medio Ambiente: Previsin del tiempo
Manufacturacin: Control de produccin en lneas de proceso
Inspeccin de la calidad

Economa: Evaluacin de probabilidad de formaciones geolgicas y petrolferas


Optimizacin de plazas y horarios de vuelo.
Identificacin de candidatos para posiciones especficas.
Biologa: Obtencin de modelos de retina
Finanzas: Valoracin de riesgo en los crditos
Identificacin de falsificaciones
Militares: Creacin de armas inteligentes.
Reconocimiento y seguimiento en el tiro al blanco
Optimizacin del uso de recursos escasos
Medicina: Monitorizacin en ciruga.
Prediccin de reacciones adversas a los medicamentos
Lectores de rayos X
De donde, para finalizar este trabajo, podemos concluir que el uso de las redes
neuronales es mucho ms amplio del que cabra esperar en el momento de su desarrollo,
siendo una pieza vital en los avances de gran cantidad de campos de la ciencia y la
tecnologa actuales.

Anexo: Aproximacin de funciones mediante una


red neuronal
Si bien a lo largo del texto hemos expuesto que la verdadera utilidad de las redes
neuronales es resolver problemas de clasificacin y prediccin, un resultado importante,
que se obtuvo recientemente (1989) es el siguiente teorema (se puede consultar la
demostracin en [4]):
-En toda funcin continua F, definida en un conjunto k cerrado y acotado, para
cualquier valor > 0, existe una Red Neuronal tal que || f-RN || , es decir,
cualquier funcin continua puede ser aproximada por una Red Neuronal con la precisin
que queramos.
Sin embargo, sigue siendo imposible usar una Red Neuronal para calcular el valor
exacto de una funcin, pues habra que almacenar en la red infinitos valores.

Problemas y cuestiones:
A continuacin, se incluyen algunas cuestiones relativas a las redes neuronales y sus
caractersticas y aplicaciones, as como la respuesta a cada una de ellas:
-Qu aportan las capas ocultas en una red neuronal?
Aportan la capacidad de poder separar el espacio de soluciones en regiones convexas
(con una nica capa) o de complejidad arbitraria (con dos o mas), salvando las
limitaciones del perceptrn, es decir, la incapacidad que tiene de resolver problemas que
no sean linealmente separables. Es importante indicar que, para que el uso de ms capas
sea til, la funcin de activacin debe ser no lineal.
-Se puede calcular mediante una red neuronal la funcin real de variable real
f(x)=Cos(x)?
No. Para que una red pudiera calcular la funcin Cos(x) debera almacenar los infinitos
valores reales que toma esa funcin, lo cual es imposible. Sin embargo, si es posible
que aproxime cualquier funcin continua. (Como hemos explicado en el anexo).
-Existen funciones que no sean calculables mediante una mquina de Turing pero que
si lo sean mediante una red neuronal?
No, puesto que cualquier funcin calculable ser calculable en una mquina de Turing.
-Existen problemas que no se puedan resolver mediante un perceptrn con entrada
continua, pero si se pueden resolver mediante una red neuronal?Que ventajas aportan
las redes neuronales a los perceptrones?
Si, cualquier problema que no sea separable linealmente. Por tanto, la principal ventaja
que aportan las redes neuronales es esta capacidad, que hace que el campo de uso de las
redes sea considerablemente mayor.
-Qu interpretacin tiene la tasa de aprendizaje en el algoritmo de retropropagacin de
errores?
La velocidad con la que la red aprende los casos. Un valor alto significar que aprender
ms rpido, pero si lo es demasiado pueden aparecer efectos oscilatorios perjudiciales
para el aprendizaje. Se aconseja establecerla entre 0,1 y 0,25 , segn los casos.
-Qu diferencia hay entre utilizar una o dos capas ocultas en una red neuronal?
Con una capa oculta nicamente podremos tener acceso a delimitar zonas convexas,
mientras que con dos ya podremos delimitar zonas de complejidad arbitraria.

-Por qu se usa la funcin logstica


perceptrones continuos?

1
como funcin de activacin en los
1 ex

Porque es la funcin que ms se asemeja a la funcin de activacin usada en el


perceptrn simple (la funcin umbral), y cumple los requisitos necesarios, como son
tener una expresin sencilla de derivar ( F(x)= F(x)*( 1-F(x) ) ),ser creciente, y acotada
entre dos valores.

Bibliografa:
[1]: Redes Neuronales Artificiales. Fundamentos, modelos y aplicaciones.
Autores: Jos R. Hilera / Vctor J. Martnez.
Editorial: Ra-Ma
Signatura: I.2.6 HIL red
[2]: Redes Neuronales Artificiales. Un enfoque prctico.
Autores: Juan Manuel Corchado, Fernando Daz, Lourdes Borrajo,
Florentino Fernndez.
Servicio de Publicaciones de la Universidad de Vigo.
Signatura: I.2.6 RED red
[3]: Transparencias sobre redes neuronales.
Autor: Juan Luis Castro Pea
Disponibles en http://decsai.ugr.es/~castro/MCII/
[4]: Neural networks with a continuous squashing function in the output are universal
approximators
Autores: J.L Castro, C.J.Mantas, J.M.Benitez
Departamento de Ciencias de la Computacin. Universidad de Granada.
Disponible en: www.elsevier.com/locate/neunet
(Neural Networks 13 (2000) 561-563)

Anda mungkin juga menyukai