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.
La neurona artificial
Una neurona es la unidad mnima de procesamiento de informacin existente en una red
neuronal.
-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:
-Funcin semilineal:
-Funcin sigmoidal:
-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.
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.
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
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.
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.
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.
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 )
W j (t 1) W j (t ) ( k W jk ) f ' (entrada j ) W j (t )
k
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.
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.
A pesar de su incapacidad para realizar clculos precisos, las redes neuronales presentan
gran cantidad de ventajas frente a otros modelos, como pueden ser:
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
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.
1
como funcin de activacin en los
1 ex
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)