Está en la página 1de 110

Sistemas Basados en el Conocimiento II: Introduccin a la Neurocomputacin

Texto base de la asignatura del mismo nombre perteneciente al Plan de Estudios de la Universidad Nacional de Educacin a Distancia.

Equipo Docente de la Asignatura

Universidad Nacional de Educacin a Distancia 2004

II

Sistemas Basados en el Conocimiento II Equipo Docente de la Asignatura This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivs License. To view a copy of this license, visit http://creativecommon s.o rg/ li cen ses / by- nc- nd/2.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

ndice general
1. Introduccin 1.1. 1.2. 1.3. 1.4. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modelos de neurona . . . . . . . . . . . . . . . . . . . . . . . . . . Arquitecturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tareas genricas en Neurocomputacin . . . . . . . . . . . . . . . . 1.4.1. Redes neuronales en tareas de clasicacin . . . . . . . . . . 1.4.2. Redes neuronales para regresin . . . . . . . . . . . . . . . . 1.4.3. Redes neuronales en tareas de control . . . . . . . . . . . . . 1.4.4. Redes neuronales en tareas de prediccin temporal . . . . . . 2. Retropropagacin del error 2.1. El formalismo matemtico del algoritmo. . . . . . . . . . . . . . . . 2.1.1. La arquitectura de la red . . . . . . . . . . . . . . . . . . . . 2.1.2. El algoritmo de ajuste de los pesos . . . . . . . . . . . . . . . 2.2. Aspectos metodolgicos del entrenamiento de una red neuronal. . . . 2.2.1. Preprocesado de las variables de entrada/salida. . . . . . . . 1 1 3 14 15 16 17 17 18 23 23 23 26 35 35 39 42 45 48 50

2.2.2. Descomposicin del error. Denicin de trminos. El compromiso entre sesgo y varianza . . . . . . . . . . . . . . . . . . 2.2.3. Anlisis estadstico: cmo minimizar el error. La validacin cruzada y la regularizacin. . . . . . . . . . . . . . . . . . . 2.2.4. Tipos de error . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. 2.4. Mejoras del algorimo . . . . . . . . . . . . . . . . . . . . . . . . . . La notacin matricial . . . . . . . . . . . . . . . . . . . . . . . . . .
III

IV

NDICE GENERAL

3. Los mapas autoorganizados de Kohonen 3.1. 3.2. Introduccin. Algoritmos de agrupamiento en clases o clustering. . . Los mapas autoorganizados de Kohonen. El algoritmo. . . . . . . . .

53 53 57 71 71 72 72 73 75 79 79 80 80 81 81 82 87 87 87 88 89 89 90 91 92 92 93 94

4. Herramientas de ayuda en el desarrollo de redes neuronales 4.1. 4.2. Concepto de simulador de redes neuronales . . . . . . . . . . . . . . Java Neural Network Simulator (JavaNNS) . . . . . . . . . . . . . . 4.2.1. 4.2.2. 4.2.3. 4.3. Instalacin . . . . . . . . . . . . . . . . . . . . . . . . . . . Creacin de una red neuronal . . . . . . . . . . . . . . . . . Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . .

Herramientas de JavaNNS . . . . . . . . . . . . . . . . . . . . . . . 4.3.1. 4.3.2. Batchman . . . . . . . . . . . . . . . . . . . . . . . . . . . snns2c . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3.3. Simulacin con JavaNNS . . . . . . . . . . . . . . . . . . . . 4.4. SOM_PAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1. 4.4.2. 5. Aplicaciones 5.1. Aplicacin conexionista en tarea de clasicacin. . . . . . . . . . . . 5.1.1. 5.1.2. 5.1.3. 5.1.4. 5.2. Planteamiento del problema . . . . . . . . . . . . . . . . . . Preprocesado de los datos . . . . . . . . . . . . . . . . . . . Arquitectura y aprendizaje . . . . . . . . . . . . . . . . . . . Resumen y propuesta de ejercicio. . . . . . . . . . . . . . . . Instalacin . . . . . . . . . . . . . . . . . . . . . . . . . . . Uso y ejemplos . . . . . . . . . . . . . . . . . . . . . . . . .

Aplicacin conexionista en tarea de identicacin/regresin. . . . . . 5.2.1. 5.2.2. 5.2.3. 5.2.4. Planteamiento del problema . . . . . . . . . . . . . . . . . . Preprocesado de los datos . . . . . . . . . . . . . . . . . . . Arquitectura y aprendizaje . . . . . . . . . . . . . . . . . . . Resumen y propuesta de ejercicio . . . . . . . . . . . . . . .

5.3.

Aplicacin conexionista en tarea de prediccin. . . . . . . . . . . . .

NDICE GENERAL

5.3.1. 5.3.2. 5.3.3. 5.3.4. 5.4. 5.5.

Planteamiento del problema . . . . . . . . . . . . . . . . . . Preprocesado de los datos . . . . . . . . . . . . . . . . . . . Arquitectura y aprendizaje . . . . . . . . . . . . . . . . . . . Resumen y propuesta de ejercicio . . . . . . . . . . . . . . .

96 96 97 98 98 98 101 103

Paradigma unicado para tareas con aprendizaje supervisado . . . . . Aplicacin conexionista en tarea de clustering. . . . . . . . . . . . .

6. Teorema de convergencia de perceptrones Bibliografa

VI

NDICE GENERAL

Captulo 1

Introduccin
Objetivo: En este primer captulo se va a tratar de dar una perspectiva histrica del desarrollo de las redes neuronales como modelo de computacin. Al hilo de este repaso histrico, introduciremos los conceptos fundamentales de un modelo general de neurocomputacin. En captulos siguientes veremos cmo las distintas arquitecturas y algoritmos de aprendizaje se pueden ver como casos particulares del modelo general.

1.1.

Introduccin

Sin que sea ste el propsito principal de este texto, s es conveniente contextualizar el campo de la Neurocomputacin dentro del marco ms general de la Inteligencia Articial ayudndonos de algunos conceptos clave de la Ingeniera del Conocimiento. Desde esta perspectiva, la neurocomputacin es una forma, inspirada en la biologa, de resolver algunas tareas encontradas frecuentemente cuando se trata de reproducir mediante computadoras habilidades atribuidas a la inteligencia humana. Al analizar estas habilidades nos encontramos que las ms complejas se pueden descomponer en tareas y subtareas hasta llegar a inferencias primitivas que aaden informacin a la disponible inicialmente sin que podamos subdividir el proceso en pasos ms simples. A las distintas formas de implementar una tarea se las conoce como Mtodos de Resolucin de Problemas (o Problem Solving Methods en ingls). Estos mtodos en la prctica combinan mdulos que pertenen a muchas categoras distintas de entre las que podemos sealar los sistemas basados en reglas, en lgica, en redes o en marcos/objetos. Para cada mdulo se emplea el paradigma que mejor se ajuste a las caractersticas de la subtarea o inferencia que se desea implementar. Aqu vamos a profundizar en los mtodos conexionistas de resolver tareas que se caracterizan por su naturaleza distribuida, de grano no y autoprogramable. Estos mtodos nacieron de la apuesta de los pioneros de la Inteligencia Articial por intentar resolver los problemas a los que se enfrenta esta disciplina con la misma metodologa de la propia Naturaleza. En otras palabras, buscaron en la Biologa inspiracin para resolver con computadoras tareas propiamente humanas. Esto implica necesariamente recurrir a la Neurobiologa para tratar de entender la forma en que nuestros cerebros realizan esta tareas. Aunque de forma supercial, dedicaremos lo que resta de esta seccin introductoria a resumir lo que sabemos hoy en da de la forma como funcionan las neuronas biolgicas. 1

Introduccin

Figura 1.1: Esquema-dibujo de D. Santiago Ramn y Cajal de las distintas tipologas neuronales del cerebelo. Aunque hay muchos tipos diferentes de neuronas en el sistema nervioso central (SNC, ver gura 1.1) su estructura funcional es la misma: un cuerpo celular denominado soma, un conjunto de ramicaciones que parten del soma denominadas dendritas y una eferencia de mayor longitud y menos ramicada que las dendritas denominada axn (ver gura 1.2). Las dendritas funcionan a modo de antenas receptoras de estmulos procedentes de otras neuronas y dependiendo del nmero de estmulos recibidos en las dendritas y trasmitidos al soma, ste a su vez puede generar una seal de activacin a lo largo del axn que termine excitando a otras neuronas. Por lo tanto, podemos considerar que el soma, respecto de las entradas procedentes de otras neuronas, desempea una funcin de toma de decisin: si el nivel de excitacin de dichas neuronas sobrepasa un cierto umbral el soma se dispara y enva a su vez una seal excitadora a lo largo del axn. Al lugar donde se produce la transmisin de informacin entre el axn de una neurona y la dendrita de otra se lo conoce como sinapsis y, dado que la informacin siempre se transmite en un sentido (del axn de una neurona hacia la dendrita de otra a ) vamos a llamar neurona presinptica a aqulla y postsinptica a sta. La naturaleza exacta de los trminos empleados anteriormente -como estmulo, activacin o excitacin- est relacionada con la siologa de la neurona y, muy particularmente, de su membrana; con la presencia de numerosos canales inicos que pueden abrirse y cerrarse como respuesta a la presencia de determinadas sustancias qumicas (los neurotransmisores) dando lugar a una permeabilidad elctrica variable y a cambios en la diferencia de potencial entre el interior y el exterior de la clula. Las seales a las que hacemos referencia estn codicadas en el potencial intracelular y en su evolucin temporal. Sin embargo, y como ocurrir a menudo a lo largo de los prximos captulos, no podemos perseguir hasta sus ltimas consecuencias este cuadro general y recomendamos al lector interesado la lectura de cualquiera de los nmerosos textos introductorios al

a Desgraciadamente no podemos matizar adecuadamente esta armacin por escaparse del objetivo global de este escrito. Baste decir aqu que investigaciones recientes en el campo de la Neurobiologa apuntan a la existencia de mecanismos qumicos que permiten a la neurona presinptica recibir informacin sobre si su estado de activacin contribuy a disparar un potencial de accin en la neurona postsinptica.

1.2 Modelos de neurona

Figura 1.2: Esquema-dibujo de D. Santiago Ramn y Cajal de las partes que componen una neurona tipo. campo (por ejemplo, [BCP04]). Como decamos, esta descripcin es necesariamente simplicadora. Sin embargo, nos hemos dejado fuera de la descripcin un elemento fundamental que debemos recoger ahora y es el hecho de que las seales procedentes de las neuronas pueden ser excitadoras o inhibidoras y, de igual modo, la seal enviada a lo largo del axn de una neurona, puede servir para excitar o inhibir la excitacin de la neurona postsinptica. Adems, la capacidad excitatoria/inhibitoria de una sinapsis puede variar con el tiempo y potenciarse o disminuir. En resumen, tenemos que desde un punto de vista computacional la neurona funciona como la suma de un campo receptivo dendrtico, una funcin de decisin no lineal (el soma) y una lnea de transmisin de la respuesta (axn). La realidad es innitamente ms compleja y rica que lo que se ha descrito aqu. Pero, como punto de partida para construir modelos de neurona articial tendr que servir.

1.2.

Modelos de neurona

Histricamente, el primer modelo de neurona articial, basado en los conocimientos de neurosiologa disponibles durante la primera mitad del siglo XX, es el de la neurona formal de Warren McCulloch y Walter Pitts [MP43]. Dicho modelo, adaptado a la notacin y nomenclatura unicada que se emplear en el resto del libro, se muestra de forma esquemtica en la gura 1.3. Dicho esquema representa una neurona que recibe Ne entradas. Las conexiones aparecen en la gura como echas que parten de la zona izquierda de la gura y que llevan asociado un peso i donde el subndice i se reere a la entrada y toma valores entre 1 y Ne . McCulloch y Pitts, inspirados en el comportamiento de las neuronas biolgicas,

Introduccin

x1 j1 x2 j2 j3 g(N i=1 ji yi ) jN
Neurona j

x3

xN

Figura 1.3: Representacin esquemtica de un elemento de computacin neuronal. denieron el nivel de activacin de la neurona como y j = g(a) = g( i xi )
i=1 Ne

(1.1)

Funciones de activacin

donde a es la suma de las entradas xi ponderadas por los pesos de las conexiones i y g es una funcin (llamada funcin de activacin) que trasforma dicha suma en la activacin nal de la neurona, de forma que si a es inferior a un cierto umbral b la neurona no se activa (y = 0), y si lo supera la neurona tendr nivel de activacin y igual a uno. Expresado de forma matemtica g(a) = (a) = 1 0 si si ab a<b (1.2)

donde b es el umbral que debe sobrepasar la suma ponderada para activar la neurona. Dicho umbral recibe tambin el nombre de polarizacin o bias en ingls. A la funcin g tal y como la hemos denido en la ecuacin 1.2 se la conoce como funcin paso o funcin umbral (threshold en ingls) y su representacin grca se muestra en la gura 1.4. 1 Funcin Paso o Umbral 0.8 0.6 0.4 0.2 0 -6 -4 -2 g(a j ) = (a j ) g(a j ) = (a j + 2) 0 aj 2 4 6

Figura 1.4: Representacin cartesiana de la funcin paso para dos valores de la polarizacin b = 0 y b = 2.

1.2 Modelos de neurona

x2

x1

Figura 1.5: Representacin en forma de sombreado rojo de los puntos x 1 , x2 del plano que activan la neurona del ejemplo. donde, de hecho, se muestran dos ejemplos de la funcin paso con valores diferentes del umbral o polarizacin b. El valor de g para el caso a < b se podra haber denido como -1 y las propiedades formales de la neurona seran idnticas. Ms adelante veremos un ejemplo en el que se emplea esta eleccin de la funcin umbral. sta no es la nica denicin posible de la funcin de activacin g, pero antes de estudiar las alternativas posibles a la eleccin de McCulloch y Pitts conviene deternos a analizar su signicado. Para ello vamos a estudiar un ejemplo sencillo en el que una neurona formal de McCulloch y Pitts posee nicamente dos entradas. Supongamos que el peso de la primera conexin vale 0,5 y el segundo 0,25, y la polarizacin de la neurona vale 0,1. En ese caso, podemos preguntarnos qu posibles combinaciones de la entrada hacen que se active la neurona. Un clculo sencillo nos lleva a la condicin

i=1

i xi = 0,5 x1 + 0,25 x2 0,1


0,5 x1 + 0,25 x2 = 0,1,

(1.3)

que se cumple exactamente para puntos del semiplano por encima de la recta (1.4)

que aparece sombreado en la gura 1.5. De esta forma, vemos que una neurona formal de McCulloch y Pitts acta como una funcin discriminante que tiene valor 1 en la regin del plano sombreada y 0 en el semiplano restante. En otras palabras, la neurona es capaz de distinguir puntos de una regin de los de otra y clasicarlos segn la activacin resultante. Veremos ms adelante las implicaciones de este sencillo hallazgo cuando tratemos conjuntos de neuronas agrupados en capas y de las tareas genricas para las que el empleo de redes neuronales es apropiado. Por ahora baste sealar el papel desempeado por la polarizacin o bias en el clculo de la neurona, que no es otro que permitir que la recta que divide las dos zonas de activacin no tenga que pasar por el origen. Efectivamente, si la misma neurona hubiese tenido polarizacin 0 la ecuacin discriminante hubiera sido 0,5 x1 + 0,25 x2 = 0 que, como se puede comprobar pasa por el origen de coordenadas (0, 0). Finalmente, antes de pasar a otros modelos de neurona, vamos a introducir un pequeo cambio en la notacin que nos permitir simplicar algunas frmulas. En lugar de incluir explcitamente la polarizacin dentro de la denicin de g, vamos a tratarla Funciones nantes discrimi-

Introduccin

y1

x1

y2

x2

xNe

yNs x0 = 1

Figura 1.6: Modelo esquemtico de la red neuronal denominada perceptrn. como si fuese el peso de una entrada adicional (con subndice 0) de valor igual a 1. De esta forma, 0 = b, x0 = 1 y las ecuaciones 1.1 y 1.2 se transforman en y j = g(a) = g( i xi ) = g(0 1 + i xi )
i=0 i=1 Ne Ne

(1.5)

g(a) = (a) =

1 0

si si

a0 a<0

(1.6)

Podis comprobar que la funcin discriminante sigue siendo la misma porque la neurona se activar en aquellas regiones donde a sea mayor que cero, y stas vienen dadas por la nueva denicin de a que ahora incluye el trmino adicional de subndice 0. Una vez incluida la polarizacin en el conjunto de pesos de la neurona podemos expresar la ecuacin 1.5 en notacin vectorial y = g(a) = g( i xi ) = g(T x)
i=0 Ne

(1.7)

donde T es el vector de pesos de la neurona traspuesto y x es el vector de entradas (1, x1 , x2 , ..., xNe ). El perceptrn Siguiendo el desarrollo histrico del campo de la Neurocomputacin nos encontramos con la extensin del modelo formal de McCulloch y Pitts denominada perceptrn . Un perceptrn, tal como lo presenta Rosenblatt (1962) [Ros62] consiste en un conjunto de neuronas formales de McCulloch y Pitts que comparten las mismas entradas y que no estn conectadas entre s (ver gura 1.6). En dicha gura hemos introducido nuevos cdigos y convenciones que seguiremos empleando a lo largo de todo el libro y que es conveniente explicar. En primer lugar, hemos aadido unos objetos especiales a la izquierda del grafo. Hemos empleado

1.2 Modelos de neurona

crculos para representar dichos objetos porque en muchos textos del campo y en los neurosimuladores de los que hablaremos ms adelante, a dichos objetos se les llama neuronas de entrada (y a la estructura que forman, capa de entrada). En realidad, no se trata de neuronas puesto que no realizan ningn cmputo sobre la entrada que cada una de ellas recibe y se limitan a trasmitir su valor a las neuronas de la capa siguiente. A pesar de ello, esta nomenclatura est tan extendida que se va a mantener en este libro y por ello las hemos representado con crculos. En la gura 1.6 podemos encontrar dos grupos de neuronas: al primer grupo ya hemos hecho alusin, es la capa de neuronas de entrada. El segundo constituye la capa de neuronas de salida y est compuesto de Ns neuronas formales de McCulloch-Pitts. Finalmente, hemos aadido una entrada x0 = 1 asociada al valor de la polarizacin. Vamos a utilizar una red sencilla como el perceptrn para introducir los conceptos ms importantes en el campo de las redes neuronales. A partir de este bloque bsico iremos, a lo largo del libro, exponiendo distintas variantes y modicaciones que darn lugar a los diferentes paradigmas de computacin neuronal. El perceptrn se introduce como clasicador de vectores. Ya hemos visto cmo cada neurona formal de McCulloch-Pitts con dos entradas es un clasicador capaz de agrupar las entradas en dos regiones separadas por una recta. Una neurona de McCullochPitts con Ne entradas divide el espacio de entrada en dos regiones separadas por un hiperplano en Ne dimensiones de forma que los vectores de entrada x que cumplen ( j )T x > 0 activan la neurona. La novedad del perceptrn no radica en el modelo neuronal que, en lo fundamental, corresponde a la neurona formal de McCulloch-Pitts, sino en el algoritmo de ajuste de los pesos. Por simplicidad y sin falta de generalidad puesto que todas las neuronas de la capa de salida son iguales, vamos a estudiarlo para el caso de una nica neurona. Dado un conjunto de vectores x[n] de dimensin Ne con n = 1, 2, .., d , cuya pertenencia a una de dos clases C 1 o C 2 es conocida de antemano, deseamos hallar el conjunto de pesos tales que, para todos los vectores x[n] pertenecientes a la clase C 1 la neurona presente activacin 1 y, al contrario, para todos los de clase C 2 , activacin -1 (a este conjunto de d vectores cuya clase es conocida se lo conoce como conjunto de entrenamiento). Al valor esperado de activacin de la neurona para el n-simo vector x[n] vamos a llamarlo t [n] y ser igual a 1 para vectores de la clase C 1 e igual a -1 para vectores de la clase C 2 b . Lo que vamos a exponer a continuacin es el proceso de clculo de los parmetros de la red (pesos) realizado con el objetivo de que la red proporcione una salida determinada (los valores t [n]). sto es lo que se conoce como entrenamiento supervisado de la red. En general, se llama entrenamiento al proceso de clculo de los prametros de la red. Ms especcamente, se emplea el trmino entrenamiento supervisado cuando dicho clculo se realiza a partir de un conjunto de pares entrada/salida de la red prejados de antemano. En este texto, dichos pares de entrenamiento se representarn como x[n]/t [n] donde x[n] representa el vector de entrada y t [n] el vector de salida que queremos que se produzca al presentar x[n] a la entrada de la red (si slo tenemos una neurona de entrada y una de salida en lugar de vectores tendremos escalares x[n]/t [n]). En resumen, los pesos de la red se van modicando para obtener la salida (los vectores t [n]) deseada. Existe tambin una modalidad de entrenamiento denominada entrenamiento no supervisado que consiste calcular los pesos de la red a

Conjunto namiento

de

entre-

Entrenamiento visado

super-

Entrenamiento no supervisado

b Ntese que aqu hemos modicado ligeramente la denicin de la funcin paso que pasa de valer 0 cuando ()T x es menor que 0 a valer -1. Este cambio facilita la exposicin del algoritmo de entrenamiento sin modicar las propiedades formales de la neurona.

Introduccin

partir del conjunto de vectores de entrada sin forzar de ninguna manera la salida de la red. De ella hablaremos ms adelante en el captulo 3. Para hallar el conjunto de valores de los parmetros de un perceptrn, vamos a adoptar la estrategia de denir una funcin que mida el error con que clasica la red para un conjunto de pesos y, a continuacin, vamos a calcular qu modicaciones en dichos parmetros haran disminuir el error de clasicacin. En una clasicacin perfecta, los valores de los pesos seran tales que tendramos que los vectores x[n] del conjunto de entrenamiento que pertenecen a la clase C 1 cumplen ()T x[n] > 0 y por lo tanto, y[n] = t [n] = 1. Por otra parte, los de clase C 2 cumpliran que ()T x[n] < 0 y, por lo tanto, y[n] = t [n] = 1. Todo lo anterior implica que conseguir una clasicacin perfecta, como objetivo, es equivalente a disminuir el valor de la funcin E () = ()T x[n] t [n]
M

(1.8)

donde M es el conjunto de vectores de entrada mal clasicados dado el conjunto de pesos . La armacin anterior se puede ver de forma sencilla si consideramos que un vector de entrada x[n] puede ser clasicado incorrectamente porque, 1. o bien es de clase C 1 pero x[n] < 0 en cuyo caso habra que aumentar el valor de x[n] o, lo que es lo mismo puesto que t [n] = 1, disminuir el de x[n] t [n] 2. o bien es de clase C 2 pero x[n] > 0 en cuyo caso habra que disminuir el valor de x[n] o, lo que es lo mismo puesto que t [n] = 1, el de x[n] t [n] Como vemos, introducir el factor multiplicativo t [n] resulta en que para cada vector mal clasicado por la red, el objetivo siempre consiste en disminuir x[n] t [n]. Resumiendo lo expuesto hasta ahora, tenemos que un perceptrn es un conjunto de neuronas formales de McCulloch-Pitts cuyos conexiones deben ser ajustadas (mediante los pesos) de forma que minimicen el valor de una funcin E () llamada error. En esto consiste el entrenamiento de cualquier red neuronal: las distintas variaciones sobre el tema central del perceptrn consistirn en elegir diferentes arquitecturas (ver seccin 1.3), funciones de activacin, deniciones del error o algoritmos de minimizacin de dicho funcin del error. A lo largo del temario del libro iremos analizando diferentes elecciones posibles y su signicado. Ya hemos justicado intuitivamente la funcin de error del perceptrn: E () = ()T x[n] t [n]
M

(1.9)

Resta ahora denir un algoritmo de minimizacin de dicha funcin. La opcin ms natural es la que sirvi histricamente para la denicin del perceptrn. Para comprender esta denicin es necesario entender el concepto de gradiente. No nos vamos a ocupar aqu de justicar que el gradiente de una funcin en un punto marca la direccin de mximo crecimiento de dicha funcin, pero dicha justicacin se puede encontrar en cualquier texto de clculo elemental. Dndolo por supuesto, entonces el gradiente cambiado de signo apuntar en la direccin de mxima disminucin que es

1.2 Modelos de neurona

precisamente lo que estamos buscando: disminuir la funcin error. Por ello, el algoritmo de aprendizaje del perceptrn (y de otros muchos tipos de redes) se basa en la frmula E () = (1.10) donde es la cantidad que habr que aadir al vector de pesos para minimizar la funcin de error. La ecuacin 1.10 representa un grupo de mtodos conocidos habitualmente como de descenso del gradiente. Si sustituimos la ecuacin 1.9 en 1.10 obtendremos que = x[n] t [n]
M

Descenso del gradiente

(1.11)

frmula equivalente a =
n=1

x[n]

(t [n] y[n]) 2

(1.12)

en la que hemos incluido los vectores correctamente clasicados que no contribuirn a puesto que para ellos t [n] y[n] = 0. Considrese ahora la situacin descrita en la gura 1.7: en ella vemos cmo aplicando el mtodo de descenso del gradiente podemos pasar de largo el mnimo en la funcin de error si el gradiente es muy pronunciado. Para evitar este tipo de situaciones se suele aplicar slamente una fraccin del incremento de pesos dado por la ecuacin 1.12. A dicha fraccin se la conoce como velocidad de aprendizaje y en este texto se representar por la letra griega . Una fraccin del 10 % del valor dado por la ecuacin 1.12 corresponde a = 0,1. Como vemos, su funcin es ralentizar el aprendizaje para evitar actualizaciones de los pesos demasiado grandes que pudieran desestabilizar el proceso, lo que podra ocurrir si la funcin de error tuviera varios mnimos locales (caso no representado en la gura). 5 4 3 E () 2 1 0 -1 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2

velocidad de aprendizaje

Figura 1.7: Ejemplo de aprendizaje con un nico mnimo local. El proceso de aprendizaje converge nalmente al valor del error mnimo tras una serie de oscilaciones. La introduccin del factor (velocidad de aprendizaje) ayuda a evitar estas oscilaciones y otras posibles dicultades asociadas a la existencia de varios mnimos locales. En ese caso, al introducir la velocidad de aprendizaje la ecuacin de actualizacin de

10

Introduccin

pesos se transforma en = x[n]


n=1 d

(t [n] y[n]) 2

(1.13)

o, si la funcin de activacin hubiese tomado valores 0 para los vectores de claseC 2 la regla de actualizacin en = x[n] (t [n] y[n]).
n=1 d

(1.14)

Entrenamiento por lotes

Entrenamiento secuencial

Ambas ecuaciones proporcionan el incremento de los pesos que hace disminuir la funcin error de acuerdo con el mtodo del descenso del gradiente una vez presentado un ciclo completo de pares de entrenamiento (de ah el sumatorio en n). sto se conoce como entrenamiento por lotes (batch learning en ingls) porque no se modican los pesos hasta haber presentado el lote completo de pares de entrenamiento disponibles. Una alternativa posible es hacer la modicacin correspondiente a cada par inmediatamente despus de ser calculada. sto se conoce como entrenamiento secuencial (sequential o pattern-based learning en ingls). En ese caso, el algoritmo de actalizacin de pesos sera 1. Inicializar el vector de pesos con componentes aleatorias. 2. Inicializar n con el valor 1. 3. Introducir el vector x[n] en la capa de entrada y calcular la activacin de la neurona. 4. Calcular las modicaciones al vector de pesos de acuerdo con la ecuacin 1.13 o 1.14 segn sea la funcin de activacin. 5. Si n es menor que d aumentar n una unidad y retornar al paso anterior. Si n es igual a d , modicar los pesos segn la suma de los incrementos calculados en el paso anterior y retornar al paso 2. y naliza cuando el perceptrn clasica correctamente todos los pares de entrenamiento o cuando el error de clasicacin (dado por la ecuacin 1.9) disminuye por debajo de un umbral aceptable marcado de antemano. Ejemplo 1 (Perceptrn):Calculad los parmetros de la red ms sencilla posible que clasica correctamente los siguientes puntos del plano en las dos clases denidas por t [n] = 0 C 1 y t [n] = 1 C 2 . Supngase que la velocidad de aprendizaje es constante e igual a 0,1. n 1 2 3 4 (x1 ,x2 ) (-0.5, -0.5) (-0.5, 0.5) ( 0.3, -0.5) ( 0.0, 1.0) t [n] 1 1 0 0

Error de la red

SOLUCIN 1: Inicializamos los pesos aleatoriamente en el intervalo [1, +1] de forma que obtenemos

1.2 Modelos de neurona

11

0 0.3577

1 -0.5621

2 -0.9059

donde hemos representado la polarizacin como un nuevo peso 0 asociado a una entrada x0 = 1. Comenzamos el primer ciclo de aprendizaje cuyos resultados se resumen a continuacin: n 1 2 3 4 a 1.0917 0.1858 0.6420 -0.5482 y[n] 1 1 1 0 t [n] y[n] 0 0 -1 0 0 0 0 -0.1 0 1 0 0 -0.03 0 2 0 0 0.05 0

Aplicamos las correcciones a los pesos y obtenemos 0 (polarizacin) 0.2577 1 -0.5921 2 -0.8559

Dado que el resultado no clasica correctamente los pares de entrenamiento realizamos un segundo ciclo de entrenamiento: n 1 2 3 4 a 0.9817 0.1258 0.5080 -0.5982 y[n] 1 1 1 0 t [n] y[n] 0 0 -1 0 0 0 0 -0.1 0 1 0 0 -0.03 0 2 0 0 0.05 0

Aplicamos las correcciones correspondientes a este segundo ciclo y obtenemos 0 (polarizacin) 0.1577 Para el tercer ciclo tendremos n 1 2 3 4 a 0.8717 0.0658 0.3740 -0.6482 y[n] 1 1 1 0 t [n] y[n] 0 0 -1 0 0 0 0 -0.1 0 1 0 0 -0.03 0 2 0 0 0.05 0 1 -0.6221 2 -0.8059

No tiene sentido continuar reproduciendo los clculos detallados del proceso de aprendizaje. Baste decir que, al cabo de pocas iteraciones la red clasica correctamente los cuatro vectores de entrada. La gura 1.8 muestra la situacin de los vectores en el plano y de la funcin discriminante al comienzo y al nal del proceso de aprendizaje.

12

Introduccin

1 0.5 0 -0.5 -1 -1 -0.5 0 x1 0.5 1 x2 Separabilidad lineal

Figura 1.8: Hiperplano de separacin al comienzo (lnea recta de trazo negro) y al nal (trazo rojo) del proceso de aprendizaje. Como se ha demostrado anteriormente, una neurona formal de McCulloch-Pitts es un discriminante que divide el espacio de entrada en dos regiones separadas por un hiperplano (o una recta si, como en los ejemplos, el espacio de entrada es bidimensional). Por lo tanto, un perceptrn, que no es ms que un conjunto de Ns neuronas de McCulloch-Pitts que comparten las entradas, divide el espacio de entrada en 2 Ns regiones separadas por hiperplanos. As pues, un perceptrn ser una herramienta de clasicacin apropiada siempre que las clases denidas en el espacio de entrada sean separables mediante rectas (o hiperplanos) como es el caso del ejemplo anterior y del que se incluye al nal del captulo. Considrese sin embargo el conjunto de pares de entrenamiento mostrado en la gura 1.9. Como se podr comprobar rpidamente, no existe ningn perceptrn de una nica neurona capaz de separar el espacio de entrada en dos regiones que contengan todos los puntos correspondientes a cada clase. Si aumentamos el nmero de neuronas en el perceptrn aumentaremos el nmero de clases pero no conseguiremos que los puntos de la misma clase produzcan una misma salida del perceptrn. El ejemplo de la gura 1.9 es lo que se conoce como un problema no separable linealmente y representa una limitacin muy seria de la capacidad de clasicacin de los perceptrones. Sin embargo, para problemas con la propiedad de separabilidad lineal tenemos que cada actualizacin del vector de pesos hace disminuir la funcin error dada. Si llamamos y +1 a los vectores de pesos antes y despus de la actualizacin respectivamente, tenemos que la nueva contribucin al error debida a un patrn dado despus de actualizar los pesos segn 1.9 ser

(+1 )T x[n] t [n] = ( )T x[n] t [n] ( x[n] t [n])T x[n] t [n] = ( )T x[n] t [n] (x[n] t [n])2 < ( )T x[n] t [n],

(1.15)

es decir, menor que la contribucin previa a la actualizacin de los pesos.

1.2 Modelos de neurona

13

Ms an, el teorema de convergencia garantiza que un perceptrn es capaz de hallar la solucin que clasica todos los patrones de entrenamiento en un nmero nito de pasos. La demostracin del teorema basada en la interpretacin de Bishop [Bis95] del original de Hertz et al. [HKP91] se incluye en el apndice 6. 1.5 1 0.5 0 -0.5 -0.5 x2

Teorema de convergencia del perceptrn

0.5 x1

1.5

Figura 1.9: Representacin grca del problema XOR. Un perceptrn de una capa no puede sintetizar articialmente este problema por no ser linealmente separable en la variables x1 , x2 . Se le ocurre al lector alguna forma de resolverlo con una cambio de variables? La extensin de todo lo antedicho a un perceptrn de ms de una neurona implica la denicin del peso de la entrada i a la neurona de salida j como ji . sto a su vez dar lugar a que cada neurona de salida del perceptrn posea su propio vector de pesos j de componentes ji para i = 1, 2, ..., Ne . Finalmente, para el par de entrenamiento (x[n], t [n]) de Ne y Ns componentes respectivamente tendremos a j = ji xi = ( j )T x,
i=0 Ne

(1.16) (1.17)

j = x[n] y
n=1 d

(t j [n] y j [n]) 2

= x[n] (t j [n] y j [n]). para las dos posibles funciones de activacin del perceptrn.
n=1

(1.18)

Bernard Widrow y Marcian Hoff [WH60] introdujeron en 1960 una variante de las neuronas de McCulloch-Pitts con propiedades interesantes. La variacin de un ADAptive LINear Element (elemento adaptativo lineal o ADALINE) respecto a las neuronas de McCulloch-Pitts consiste en utilizar una nueva funcin de activacin denominada funcin de activacin lineal dada por la ecuacin g(a) = a y representada en la gura 1.10. Esta modicacin permite reescribir la denicin de la funcin error de una forma que se demostrar mucho ms general y potente que la de la ecuacin 1.9 basada, ya no en la suma ponderada de las entradas ()T x[n] sino directamente en la salida de la neurona y[n]. La nueva denicin del error vendr dada por la ecuacin E () = 1 d t [n] y[n] 2n =1
2

Adalines/Madalines

1 d (t [n] y[n])T (t [n] y[n]) 2n =1

(1.19)

14

Introduccin

6 4 Funcin Lineal 2 0 -2 -4 -6 -6 -4 -2 0 aj g(a j ) = a j 2 4 6

Figura 1.10: Funcin de activacin lineal. Error cuadrtico medio conocida como error cuadrtico medio (Mean Square Error en ingls). En el caso de tener ms de una neurona de salida tendremos que t [n] y[n] pasar a t [n] y[n] donde tanto t [n] como y[n] sern vectores de Ns componentes. Con esta denicin del error, la ecuacin de actualizacin de los pesos obtenida aplicando el mtodo de descenso del gradiente (recurdese que no es el nico posible) ser j = (t j [n] y j [n]) x[n].
n=1 d

(1.20)

donde hemos utilizado la ecuacin 1.10 y la denicin de g. A un conjunto de ADALINES se lo conoce como red MADALINE (Multiple ADAptive LINear Element).

1.3.

Arquitecturas

El primer modelo de red neuronal presentado hasta ahora ya ha introducido varios conceptos fundamentales en la denicin de una arquitectura de red. En primer lugar, hemos visto que el bloque constructivo fundamental de una red neuronal es, obviamente, la neurona entendida como un mdulo computacional con una o varias entradas y una salida denida como una funcin de activacin aplicada a la suma de las entradas ponderada por los pesos de las conexiones respectivas c . Ms an, hemos
c Sera posible, en principio, una denicin ms general de neurona si incluimos en la suma ponderada, no slo las entradas de la neurona, sino tambin combinacines de orden superior de las entradas. Por ejemplo, para una neurona de dos entradas, podramos denir a j como 2 a j = 1 x1 + 2 x2 + 11 x2 1 + 22 x2 + 12 x1 x2 .

sta denicin, que incluye trminos de segundo orden o cuadrticos, podra a su vez ser extendida a rdenes superiores. Sin embargo, la introduccin de trminos de orden superior al lineal en capas distintas de la capa de entrada introduce una complicacin computacional no compensada por una mayor efectividad. El caso de la capa de entrada se tratar con ms detalle en la seccin dedicada al preprocesado de los datos.

1.4 Tareas genricas en Neurocomputacin

15

empleado el trmino capa en numerosas ocasiones sin haber dado una denicin precisa del trmino. En este texto, se entender por capa un conjunto de neuronas con la misma denicin funcional de las operaciones que realiza sobre sus entradas y que recibe entradas o enva salidas a un mismo conjunto de neuronas entre las que se pueden encontrar miembros de la misma capa. As, en el perceptrn del ejemplo anterior hemos denominado capa de entrada a un conjunto de neuronas que no reciba conexiones de ninguna neurona pero que enviaba su salida a un mismo conjunto de neuronas y, de nuevo, hemos empleado el trmino capa (de salida) para el conjunto restante de neuronas que no enva su salida a ninguna neurona, pero s recibe sus entradas de un mismo grupo de neuronas. Las primeras comparten una misma denicin funcional: toman su entrada y la trasmiten a las neuronas a las que estn conectadas sin realizar ninguna operacin sobre ellas. Podramos decir que tienen una nica entrada, que el peso de la entrada es la unidad, y que su funcin de activacin es lineal. Por el contrario las segundas realizan una suma de las entradas ponderadas por los pesos de las conexiones respectivas y al resultado le aplican la funcin de activacin paso. En el caso de MADALINES tendremos funciones de activacin lineales en vez de funciones paso pero de nuevo tendremos dos capas que cumplen la denicin dada ms arriba. Finalmente, siguiendo un orden creciente de complejidad, nos encontramos con la denicin de la arquitectura de una red neuronal en trminos del nmero de capas, del nmero de neuronas en cada capa y de la conectividad entre capas e intra capa. Segn este ltimo aspecto (la conectividad de la red o topologa conectiva) nos encontraremos redes unidireccionales o de alimentacin hacia delante (feedforward en ingls) si existe una relacin de orden parcial entre capas, de forma que cada capa recibe entradas nicamente de la capa anterior y enva su salida nicamente a la siguiente. El perceptrn de la gura 1.6 es un ejemplo de arquitectura unidireccional muy simple puesto que slo lo componen dos capas (veremos ejemplos ms complejos en captulos posteriores). Si desde una capa dada se realizan conexiones a capas anteriores tendremos lo que se conoce como realimentacin y la arquitectura de la red ser recurrente (ejemplos de arquitecturas recurrentes se dan en las redes neuronales basadas en la teora de resonancia adaptativa ART o Adaptive Resonance Theory en ingls y en las memorias asociativas bidireccionales BAM o Bidirectional Associative Memories en ingls). Finalmente, si existen conexiones entre las neuronas de una misma capa, diremos que existe interaccin lateral en la red. Un ejemplo de red neuronal de tres capas con conexiones recurrentes (en trazo discontinuo) e interaccin lateral (trazo discontinuo con puntos intercalados) se muestra en la gura 1.11.

1.4.

Tareas genricas en Neurocomputacin

A lo largo de todo este captulo hemos utilizado problemas de clasicacin para ilustrar diversos aspectos de las redes neuronales presentadas. Sin embargo, la clasicacin es un caso particular de tarea genrica realizable por una red neuronal. El conjunto de tareas para cuya realizacin se recurre a redes neuronales se ajusta a un esquema conceptual de tarea conexionista en el que el elemento central lo constituye una relacin entre espacios de representacin y la tarea consiste en hallar el objeto/objetos del espacio de representacin de salida que la relacin asocia a un objeto de entrada dado. En el caso de la tarea genrica de clasicacin, una red neuronal bien entrenada se convierte en un modelo de la relacin que media entre los objetos del espacio de entrada (puntos del plano en los ejemplos de este captulo) y las clases a las que pertenecen (en el espacio de representacin de salida). Esta relacin de pertenencia a la clase Ck queda impresa en los valores de las conexiones de la red de forma que

16

Introduccin

Figura 1.11: Ejemplo de arquitectura de red con conexiones recurrentes (en trazo discontinuo) e interaccin lateral (trazo discontinuo con puntos intercalados). incluso es capaz de clasicar correctamente objetos que no le haban sido presentados con anterioridad (propiedad conocida como generalizacin). A continuacin, y sin pretensin de ser exhaustivos, examinamos varias tareas que se ajustan al esquema conceptual descrito.

Generalizacin

1.4.1. Redes neuronales en tareas de clasicacin


En realidad ya hemos visto con el nivel de profundidad adecuado a este captulo introductorio las caractersticas de una red neuronal clasicadora. Aqu slo vamos a repasar nociones bsicas ya introducidas informalmente en secciones anteriores y a apuntar una interpretacin probabilista de los resultados de una clasicacin neuronal. La clasicacin consta de tres etapas: en la primera se realiza un proceso de abstraccin que, partiendo del universo de objetos de los que trata el problema de clasicacin, extrae caractersticas sucientes para reconocer como similares objetos de la misma clase y como dismiles aqullos de distintas clases; en la segunda, se comparan las caractersticas del objeto que deseamos clasicar con un modelo de dicho universo y se selecciona la clase a la que se encuentra ms prximo; nalmente en la tercera, se genera una respuesta de acuerdo con el resultado de la comparacin que, generalmente, se interpreta como las probabilidades a posteriori de pertenencia del objeto de entrada a cada una de las clases/particiones del espacio de entrada. De esta forma, las activaciones yk (x) de las neuronas de la capa de salida seran funciones del vector de entrada que, interpretadas en el dominio del observador que crea la red, correspon-

1.4 Tareas genricas en Neurocomputacin

17

deran a la probabilidad P (Ck |x) de que, dado el vector x, ste pertenezca a la clase Ck . Existen una serie de condiciones que ha de cumplir una red neuronal para que la activacin de sus neuronas de salida pueda ser interpretada en sentido probabilstico que sern objeto de anlisis en captulos posteriores.

1.4.2. Redes neuronales para regresin


sta tarea est relacionada con la tarea de clasicacin y con problemas de interpolacin de funciones. Formulada en trminos consistentes con la anterior descripcin se trata de, dado un conjunto de pares de vectores A = (x[n], t [n]), con x[n] RNe y t [n] RNs , predecir la asociacin y en el espacio de salida, para un vector x no perteneciente al conjunto A d . La trasposicin del esquema conceptual de tarea conexionista al caso de la regresin es inmediata si suponemos que el conjunto A dene una funcin vectorial de varias variables tal que t [n] = f (x[n]) donde f : RNe RNs . (1.21)

En este caso, la relacin entre el espacio de entrada y el espacio de salida viene dada por las componentes f 1 , f2 , fNs de la funcin vectorial f y el modelo de la relacin queda impreso en los pesos de las conexiones de la red. Por analoga vemos que el proceso de aprendizaje, en el que se modican los pesos de la red para ajustar la funcin f a partir de los pares de entrenamiento del conjunto A es enteramente equivalente a una regresin sobre dicho conjunto.e. Un ejemplo de este tipo de aplicaciones consistira en obtener a partir del conjunto de puntos mostrado en la gura 1.12, una aproximacin de la funcin continua generatriz (dibujada en trazo negro continuo). Este tipo de situaciones se da cuando la funcin generatriz se ha medido mediante un procedimiento que introduce ruido de distribucin gaussiana. Se tratara entonces de encontrar una aproximacin a la funcin y(x) generatriz mediante una red neuronal. Veremos ms adelante las propiedades de diferentes algoritmos de aprendizaje en lo referente a este tipo de tarea genrica.

1.4.3. Redes neuronales en tareas de control


En los dos casos anteriores hemos visto cmo la red neuronal se constitua en puente entre dos espacios de representacin, de forma que a un elemento dado del espacio de entrada (ya fuera ste un objeto que deseamos clasicar o un vector de R Ne ) le corresponde una salida que el creador de la red interpreta en el espacio de representacin de salida como una clase o un valor de la funcin generatriz ajustada. Como hemos tenido ocasin de comprobar, nada hay en la implementacin de una red neuronal que haga referencia explcita a clases, regresiones, probabilidades etc. Todo est en la
d Represe en la similitud con el concepto de generalizacin en el caso de tareas de clasicacin. En ltima instancia, interpretada a la luz del esquema conceptual de tarea conexionista, se trata de la misma propiedad e Los conocimientos necesarios para entender los conceptos introducidos en el ltimo prrafo se pueden encontrar en cualquier manual de introduccin a la Estadstica o al Clculo. En particular, los alumnos de la UNED deben dominar estos conceptos como resultado de haber cursado previamente las asignaturas de Estadstica I y Ampliacin de Matemticas

18

Introduccin

1.00 0.50 0.00 -0.50 -1.00 0.00 1.00 2.00 3.00 4.00 5.00 6.00

Figura 1.12: Problema tpico de regresin: dado el conjunto de puntos de la grca (que se supone generado a partir de una funcin continua como la representada en trazo negro) recuperar la mejor aproximacin a la funcin generatriz. Por supuesto, no se conoce de antemano dicha funcin. En este ejemplo articial, los datos se han obtenido a partir de una funcin seno por adicin de ruido gaussiano. interpretacin del creador de la red. Pues bien, en el caso del empleo de redes neuronales para tareas de control, las entradas se interpretan como variables de estado de un sistema, y las salidas, como un conjunto de instrucciones de actuacin sobre dicho sistema. Por ejemplo, podramos entrenar una red neuronal para conducir un coche de forma que la entrada de la red fuese una imagen de la carretera por la que circulamos (incluyendo referencias visuales como la sealizacin horizontal de los carriles) y la salida, el ngulo de giro del volante necesario para mantener el vehculo dentro de las seales de referencia. Otro ejemplo podra ser el de una red neuronal que monitoriza una planta nuclear y recibe como entradas parmetros del reactor como temperatura, presin, etc y cuyas respuestas se interpretan como acciones tendentes a mantener dichos valores dentro de unos rangos de seguridad determinados.

1.4.4. Redes neuronales en tareas de prediccin temporal


Un ltimo ejemplo de aplicacin de red neuronal consiste en la prediccin de series temporales. En este caso, el espacio de entrada lo componen registros temporales de los valores de una (o varias) variables de estado de un sistema y la salida se interpreta como una prediccin del valor de la variable para valores de la coordenada temporal posteriores al registro. El ejemplo clsico de este tipo de aplicaciones es el de la prediccin de valores burstiles a partir de series temporales de ndices de mercado. Tanto las tareas de control como las de prediccin temporal puedes ser vistas como casos particulares de tareas de regresin en los que las funciones que queremos ajustar son de una clase especial.

1.4 Tareas genricas en Neurocomputacin

19

Repaso de conocimientos Ejercicios de consolidacin del aprendizaje.


Ejemplo 2 (Perceptrn 2D) Entrnese un perceptrn para que clasique correctamente el siguiente conjunto de entrenamiento. n 1
0,1 [+ +1,2 ] 1,0 [+ +0,0 ]

2
0,7 [+ +1,8 ] 1,0 [+ +0,0 ]

3
0,8 [+ +1,6 ] 1,0 [+ +0,0 ]

4
0,8 [+ +0,6 ] 0,0 [+ +0,0 ]

5
1,0 [+ +0,8 ] 0,0 [+ +0,0 ]

6
0,3 [+ +0,5 ] 1,0 [+ +1,0 ]

7
0,0 [+ +0,2 ] 1,0 [+ +1,0 ]

8
0,3 [ +0,8 ] 1,0 [+ +1,0 ]

9
0,5 [ 1,5 ] 0,0 [+ +1,0 ]

10
1,5 [ 1,3 ] 0,0 [+ +1,0 ]

x[n] t [n]

Supngase que la velocidad de aprendizaje es 1.0, que la actualizacin de los pesos se realiza slo al nal de un ciclo (entrenamiento por lotes) y que el proceso de aprendizaje termina cuando todos los vectores de entrada del conjunto de entrenamiento son clasicados correctamente. Solucin 2: Del enunciado del ejercicio se desprende que debemos dividir el espacio de entrada en cuatro clases a las que se les asigna las cuatro posibles salidas de un perceptrn con Ns = 2: (0, 0), (0, 1), (1, 0), (1, 1). Adems, dicho espacio de entrada est constituido por puntos del plano, por lo que Ne = 2. La gura 1.13 muestra el conjunto de entrenamiento dado por el enunciado. 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2 -1 0 x1 1 2

Figura 1.13: Representacin grca del conjunto de entrenamiento. Las cuatro salidas posibles (0,0), (0,1), (1,0) y (1,1) se han representado con diamantes, cuadrados, crculos y tringulos. Como se puede comprobar, dene cuatro clases separables linealmente, por lo que tiene sentido utilizar un perceptrn para realizar la tarea de clasicacin demandada. Si inicializramos aleatoriamente los pesos de la red, podramos obtener los siguientes valores:

x2

20

Introduccin

Neurona de salida 1 Neurona de salida 2

10 -0.2693 20 -0.5059

11 -0.3435 21 0.2653

12 0.5128 22 0.9821

donde, de nuevo, hemos representado la polarizacin como el peso j0 asociado a una nueva entrada x0 = 1. Comenzamos el primer ciclo de aprendizaje cuyos resultados se resumen a continuacin. Tngase en cuenta que el enunciado indica que debemos realizar un aprendizaje por lotes. sto implica que no se actualizarn los pesos hasta haber presentado al perceptrn el conjunto entero de pares de entrenamiento. n 1 2 3 4 5 6 7 8 9 10 a1 +0.3117 +0.4133 +0.2764 -0.2364 -0.2026 -0.1159 -0.1667 +0.2440 -0.8667 -0.4207 a2 +0.6991 +1.4476 +1.2777 +0.2956 +0.5451 +0.0647 -0.3095 +0.2002 -2.1117 -2.1806 y[n]
1,0 [+ +1,0 ] 1,0 [+ +1,0 ] +1,0 [ +1,0 ] 0,0 [+ +1,0 ] 0,0 [+ +1,0 ] +0,0 [ +1,0 ] 0,0 [+ +0,0 ] +1,0 [ +1,0 ] 0,0 [+ +0,0 ] +0,0 [ +0,0 ]

t [n] y[n]
0,0 [+ 1,0 ] 0,0 [+ 1,0 ] +0,0 [ 1,0 ] 0,0 [+ 1,0 ] 0,0 [+ 1,0 ] +1,0 [ +0,0 ] 1,0 [+ +1,0 ] +0,0 [ +0,0 ] 0,0 [+ +1,0 ] +0,0 [ +1,0 ]

0,0 [+ 1,0 ] 0,0 [+ 1,0 ] +0,0 [ 1,0 ] 0,0 [+ 1,0 ] 0,0 [+ 1,0 ] +1,0 [ +0,0 ] 1,0 [+ +1,0 ] +0,0 [ +0,0 ] 0,0 [+ +1,0 ] +0,0 [ +1,0 ]

0 ,0 [+ 0,1 ] 0 ,0 [+ 0,7 ] +0,0 [ 0,8 ] 0 ,0 [+ 0,8 ] 0 ,0 [+ 1,0 ] +0,3 [ +0,0 ] 0 ,0 [+ +0,0 ] +0,0 [ +0,0 ] 0 ,0 [+ 0,5 ] +0,0 [ 1,5 ]

0 ,0 [+ 1,2 ] 0 ,0 [+ 1,8 ] +0,0 [ 1,6 ] 0 ,0 [+ 0,6 ] 0 ,0 [+ 0,8 ] +0,5 [ +0,0 ] 0 ,2 [+ +0,2 ] +0,0 [ +0,0 ] 0 ,0 [+ 1,5 ] +0,0 [ 1,3 ]

Sumando todas las modicaciones de los pesos obtenemos Neurona de salida 1 Neurona de salida 2 10 +2.0 20 -2.0 11 +0.3 21 -5.4 12 +0.7 22 -8.6 10 +1.7307 20 -2.5059 11 -0.0435 21 -5.1347 12 +1.2128 22 -7.6179

Este ciclo se repite hasta que, como resultado de las actualizaciones de los pesos, la red clasica adecuadamente todos los pares de entrenamiento. sto ocurre, para las condiciones dadas por el enunciado, despus de 13 ciclos de actualizacin como muestra la gura 1.14. Los valores de los pesos en ese momento son: Neurona de salida 1 Neurona de salida 2 10 +2.0 20 +0.0 11 +0.3 21 +0.0 12 +0.7 22 +0.0 10 -0.2693 20 +4.4941 11 -4.5435 21 -4.8347 12 +5.8128 22 -4.1179

La gura muestra tambin, para facilitar comparaciones, la posicin inicial de los discriminantes cuando los valores de los pesos son inicializados aleatoriamente y despus de 7 actualizaciones.

1.4 Tareas genricas en Neurocomputacin

21

2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2 -1 0 x1

x2

Particin aleatoria 1 2 -2 -1 0 x1

7 ciclos 1 2 -2 -1 0 x1

14 ciclos 1 2

Figura 1.14: Posicin de los hiperplanos separadores para el ejemplo de clasicacin en diversos puntos del proceso de aprendizaje.

22

Introduccin

Captulo 2

Retropropagacin del error


Objetivo: El presente mdulo se propone como objetivo introducir el que probablemente sea el mtodo de aprendizaje ms popular en aplicaciones reales. A medida que vayamos describindolo, iremos introduciendo nuevos conceptos que completarn y extendern el marco conceptual introducido en el captulo anterior.

2.1.

El formalismo matemtico del algoritmo.

2.1.1. La arquitectura de la red


El algoritmo de aprendizaje basado en la retropropagacin del gradiente del error est diseado para redes neuronales sin realimentacin (feedforward networks en ingls). La arquitectura ms simple es la de un perceptrn con ms de una capa de procesamiento. Recordemos que el perceptrn clsico est compuesto de una capa de entrada (denominada a veces sensorial) cuya nica misin es redistribuir las entradas y una capa de procesado que s realiza clculo neuronal (suma ponderada ms funcin de activacin). En este captulo nos centraremos en redes neuronales de la misma arquitectura que el perceptrn (sin realimentacin ni interaccin lateral), pero con dos o ms capas de procesamiento. A estas redes se las conoce como perceptrones multicapa y nos van a servir de marco para la exposicin del proceso de aprendizaje por retropropagacin del error aun cuando debe recordarse que existen mltiples variaciones que pueden aumentar la complejidad de la red sin modicar el fundamento terico del algoritmo. Vamos a considerar, para jar las ideas, que la red est compuesta de tres capas unidimensionales de Ne , No y Ns neuronas cada una, llamadas capa de entrada (input layer en ingls), capa oculta (hidden layer) y capa de salida (output layer). Las capas tienen conectividad total entre s (cada neurona forma sinapsis con todas las de la siguiente capa) y conectividad interna nula (no existen conexiones sinpticas laterales dentro de una misma capa). La gura 2.1.1 muestra esquemticamente la arquitectura de dicha red. Como vimos en el captulo anterior, podemos considerar la salida de la red como una serie de funciones yk de RNe en R, que para cada conjunto de valores de entrada (x)T = (x1 , x2 , ..., xNe ) nos proporciona un vector a la salida (y)T = (y1 (x), y2 (x), ..., yNs (x)). 23

24

Retropropagacin del error

x1

y1

x2

y2

xNe

yNs

Figura 2.1: Perceptron multicapa. Cada problema tendr un espacio de entrada y uno de salida de dimensionalidad distinta por lo que los valores de Ne y Ns variarn dependiendo del caso concreto que estemos tratando. El valor de No depende de las caractersticas del espacio de entrada por lo que no se pueden enunciar reglas generales relativas a su valor en una aplicacin concreta.Slo poseemos algunas indicaciones sobre qu rangos de valores son ms adecuados. Ms adelante veremos algunas de estas normas y su interpretacin. Como hemos mencionado anteriormente, la capa de entrada no realiza ninguna operacin algebraica con su nica entrada, de forma que la neurona i de dicha capa enva a todas las neuronas de la capa siguiente el valor xi . Las neuronas de la capa oculta s transforman sus entradas en un valor distinto mediante operaciones matemticas. Como vimos anteriormente, llamamos salida o activacin de la neurona al resultado de las operaciones realizadas sobre sus entradas. Decimos que la arquitectura de la red va a ser la de un perceptrn multicapa porque las operaciones que van a realizar tanto las neuronas de la capa oculta como las de la de salida son las mismas que realiza el perceptrn. Para neuronas de la capa oculta, estas operaciones consisten en multiplicar las entradas procedentes de las neuronas de la capa anterior por sus pesos respectivos, sumar el resultado de las Ne multiplicaciones y, nalmente, aplicar la funcin de activacin al resultado. Empleando la notacin introducida en el captulo anterior para los pesos de una conexin sinptica tendremos que la neurona j de la capa oculta realiza las siguientes operaciones: Multiplica la entrada x1 por el peso de la conexin entre la neurona 1 de la capa de entrada y la neurona j de la capa oculta ( j1 ) Multiplica la entrada x2 por el peso de la conexin entre la neurona 2 de la capa de entrada y la neurona j de la capa oculta ( j2 ) ... Multiplica la entrada xNe por el peso de la conexin entre la neurona Ne de la capa de entrada y la neurona j de la capa oculta ( jNe ) Suma el resultado de todos los pasos anteriores ms la polarizacin como entra-

2.1 El formalismo matemtico del algoritmo.

25

1 Funcin Sigmoidea 0.8 0.6 0.4 0.2 0 -6 -4 -2 g(a j ) = g(a j ) = 0 aj


1 a 1+e j 1 (a +2) 1+e j

Figura 2.2: Funcin de activacin sigmoide con = 1 y dos valores de la polarizacin, j0 = 0 (lnea contnua) y j0 = 2 (lnea verde discontnua). En la leyenda de la gura hemos considerado que a j no incorpora la polarizacin para hacer ms evidente su efecto. da de subndice cero: a j = j0 1 + j1 x1 + j2 x2 + ... + jNe xNe = ji xi
i=0 Ne

(2.1)

Aplicar la funcin umbral g al resultado: y j = g(a j ) = g( ji xi )


i=0 Ne

(2.2)

Recordemos que stas son las transformaciones realizadas por las neuronas de un perceptrn y que hemos empleado la misma notacin que en el captulo anterior llamando a j al resultado de sumar ponderadamente las entradas de la neurona j y g a la funcin de activacin. Como se mencionaba en el captulo anterior existen varias funciones de activacin que se pueden utilizar en neurocomputacin. Cada una de ellas va a conferir unas propiedades determinadas a la neurona o capa de neuronas que la utilicen. Hasta ahora hemos visto dos funciones de activacin distintas: la funcin paso y la funcin lineal. Aqu vamos a introducir una nueva funcin de activacin denominada sigmoide. La funcin sigmoide se dene como g(a) = su derivada vale 1 1 + exp ( a) (2.3)

Funciones de activacin sigmoideas

y su representacin grca se muestra en la gura 2.2 para el valor = 1. Dicha gura muestra en realidad dos grcas para dos funciones sigmoideas con y sin polarizacin

dg(a) exp( a) = = g(a) (1 g(a)) da (1 + exp( a))2

(2.4)

26

Retropropagacin del error

x1

y1

x2

y2

xNe

yNs

x0 = 1

y0 = 1

Figura 2.3: Perceptrn multicapa con polarizaciones incorporadas como neuronas de orden cero y entrada unidad. o bias. Como hicimos en el captulo anterior, vamos a incorporar las polarizaciones aadiendo una neurona de subndice 0 a las capas de entrada y oculta segn la gura 2.3. En la grca se distinguen dos regiones de saturacin en las que el valor de la funcin es constante independientemente del valor de la entrada, y una regin intermedia que depende linealmente del valor de a. Se puede comprobar que la funcin paso empleada en el captulo anterior es un caso particular de la funcin sigmoidea si tomamos el lmite de tendiendo a innito. En realidad es un parmetro proporcional a la pendiente de la zona lineal de la funcin, que se suele jar de antemano sin que tenga un efecto importante en el proceso de aprendizaje. En el desarrollo de la exposicin del algoritmo, vamos a suponer que las dos capas de procesamiento (la capa oculta y la capa de salida) van a tener funciones de activacin sigmoideas. La extensin a funciones de activacin lineales se ver en un ejemplo de aplicacin. En ltimo lugar, despus de la capa de entrada y de la intermedia u oculta, encontramos la capa de salida . Las neuronas de esta capa realizan la misma operacin que las de la capa oculta, es decir, suman ponderadamente sus entradas y le aplican al resultado la funcin de activacin, que, en esta ocasin, puede ser sigmoidea o lineal.

2.1.2. El algoritmo de ajuste de los pesos


De acuerdo con la descripcin de la arquitectura hecha en la seccin anterior, vemos que, efectivamente, podemos estudiar la red como una serie de Ns funciones paramtricas no lineales yk (con k = 1, 2, ..., Ns ) de la entrada x donde yk representa la salida de la neurona k-sima de la capa de salida. Decimos paramtrica porque las funciones y k dependen de los valores de los pesos de la red, y para cada conjunto de valores de los pesos, la red ser equivalente a un conjunto distinto de funciones y k .

2.1 El formalismo matemtico del algoritmo.

27

0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -1 -0.5 0 0.5 1

Figura 2.4: Representacin grca del conjunto de pares de entrenamiento.

El objetivo entonces es encontrar los valores de las conexiones ji que aproximen mejor unas funciones objetivo dadas. Las funciones objetivo pueden ser funciones reales de variable real o funciones de clasicacin. Como hemos visto, en el primer caso, diremos que se trata de un problema de regresin; en el segundo, obviamente, de clasicacin. Un ejemplo sencillo del primero sera el siguiente: supongamos que dispongo de una serie de pares (x[n], t [n]) como los siguientes, que denen una funcin: n=1 n=4 n=7 n=10 n=13 n=16 n=19 (x[n], t [n]) (-1.0, -0.9602) (-0.7, 0.3771) (-0.4, 0.4609) (-0.1, -0.4344) ( 0.2, -0.1647) ( 0.5, 0.3960) ( 0.8, -0.0312) n=2 n=5 n=8 n=11 n=14 n=17 n=20 (x[n], t [n]) (-0.9, -0.5770) (-0.6, 0.6405) (-0.3, 0.1336) ( 0.0, -0.5000) ( 0.3, 0.0988) ( 0.6, 0.3449) ( 0.9, -0.2189) n=3 n=6 n=9 n=12 n=15 n=18 n=21 (x[n], t [n]) (-0.8, -0.0729) (-0.5, 0.6600) (-0.2, -0.2013) ( 0.1, -0.3930) ( 0.4, 0.3072) ( 0.7, 0.1816) ( 1.0, -0.3201)

Si representamos grcamente esos pares de puntos obtendremos la gura 2.4 en la que se puede comprobar que dichos puntos parecen dibujar una funcin continua. Pues bien, podramos utilizar la primera componente de los pares como entrada de una red cuya primera y ltima capa tuvieran una nica neurona, y entrenar la red (ajustar los valores de los pesos) para que la salida de la red reproduzca la segunda componente del par. En esa situacin y si el proceso de entrenamiento ha sido correcto en un sentido que matizaremos ms adelante, la salida de la red ser una aproximacin a la funcin que parecan trazar los puntos aislados, de forma que si introducimos en la entrada de la red valores de x comprendidos entre -1 y 1 pero no pertenecientes a los pares de entrenamiento, la activacin y de la nica neurona de salida de la red

28

Retropropagacin del error

ser una interpolacin a partir de los datos iniciales. Lo que acabamos de describir es un proceso de entrenamiento supervisado para una tarea de regresin (ver captulo anterior). Ejemplos del segundo caso, el empleo de redes neuronales para tareas de clasicacin, se han empleado en el captulo anterior para ejemplicar el entrenamiento de un perceptrn. Cmo se van a modicar los pesos en un proceso de entrenamiento? El algoritmo de retropropagacin del error consiste en darle a los pesos valores inicialmente aleatorios, presentarle a la red entradas cuya salida conozcamos y comparar el resultado con la salida esperada. Si no coinciden (que es lo esperable puesto que hemos inicializado los pesos aleatoriamente) modicar los pesos de forma que el error en la clasicacin disminuya y repetir cclicamente este procedimiento hasta que el error quede por debajo de una cota mnima que nosotros impondremos. Todo esto est expresado en un lenguaje no muy claricador. Vamos a ver matemticamente cmo se hara. La exposicin se har con una notacin diferente a la empleada originalmente en la publicacin que di a conocer el mtodo de retropropagacin ([RHW86]). Llamemos A = (x[n], t [n]) al conjunto de ejemplos de que disponemos y a la salida esperada correspondiente. En general, tendremos un nmero grande de pares de entrenamiento al que llamaremos NA , aunque aqu nos restringimos a uno slo (el primero, x[1], t [1]) para no complicar la notacin. Ya hemos dicho que a los pares (x[n] y t [n]) se les llama pares de entrenamiento porque constan de un patrn de entrada y de su correspondiente objetivo. Si introducimos el vector x[1] compuesto de Ne componentes xk con k = 1, 2, ..., Ne en la capa de entrada de la red neuronal, obtendremos como resultado los valores yk a la salida (donde k puede tomar cualquiera de los valores k = 1, 2, ..., Ns ). Este resultado (que depende del valor de los pesos empleados) diferir del esperado que hemos denominado t [1] (un vector con Ns componentes tk , k = 1, 2, ..., Ns ). De entre las variadas formas de cuanticar el error cometido al obtener los y k vamos a emplear el error cuadrtico. ste se dene como: E () = 1 NA t [n] y[n] 2 n =1
2

1 NA Ns (tk yk )2 2 n =1 k=1

(2.5)

Esta frmula hace explcita la dependencia del error con el conjunto de todos los pesos al que hemos dado en llamar . El error depende de los pesos a travs de su dependencia de las salidas y j . Como decamos ms arriba, vamos a realizar los clculos para un nico par de entrenamiento (n = 1) y comenzaremos por los pesos de la ltima capa. La forma ms inmediata y sencilla de disminuir el error modicando los pesos consiste en actualizar los pesos siguiento la direccin opuesta al gradiente de la funcin E () como vimos en el captulo anterior: E () k j = . (2.6) k j Regla delta Para comprender esta frmula (conocida como regla delta) es necesario entender el concepto de gradiente. No nos vamos a ocupar aqu de justicar que el gradiente de una funcin en un punto marca la direccin de mximo crecimiento de dicha funcin,

2.1 El formalismo matemtico del algoritmo.

29

pero se puede encontrar en cualquier texto de clculo elemental a . De igual manera, el gradiente cambiado de signo apuntar en la direccin de mxima disminucin que es precisamente lo que estamos buscando: disminuir la funcin error. En el captulo anterior nos hemos referido a esta estrategia de minimizacin como descenso del gradiente. La regla delta es un ejemplo de este tipo de estrategias. es el parmetro, ya introducido en el captulo anterior, que permite ajustar la velocidad de aprendizaje. Como vimos, es un nmero real que podemos ajustar para que el proceso de aprendizaje sea ms o menos rpido (valores de prximos a 1 darn velocidades de aprendizaje altas e inestabilidad y viceversa para valores prximos a 0). La eleccin de est sujeta a condicionamientos que se tratarn en otro apartado, pero no es tan directa como la frase anterior pudiera dar a entender. En lo que sigue, vamos a calcular el valor de 11 , es decir, la modicacin del peso de la conexin entre la neurona j = 1 de la capa oculta y la neurona k = 1 de la capa de salida. El procedimiento de clculo de un k j (donde k es el subndice de la neurona de salida y j el de la neurona oculta) cualquiera se puede obtener por generalizacin a partir del clculo siguiente. Es importante sealar que el procedimiento que vamos a desarrollar a continuacin es vlido nicamente para pesos de conexiones entre la capa oculta y la capa de salida. El procedimiento para calcular las actualizaciones de los pesos de las conexiones de neuronas de la capa de entrada con neuronas de la capa oculta se mostrarn ms adelante en esta misma seccin. A partir de la ecuacin 2.6 aplicando la regla de la cadena tenemos E E yk = k j yk k j (2.7)

donde ya hemos omitido por razones de claridad la dependencia de E con . El primer trmino de la derecha se puede obtener derivando parcialmente respecto a y k la frmula 2.5 con lo que se obtiene E = (tk yk ) = k yk (2.8)

donde hemos empleado la notacin k para referirnos a (tk yk ). En lo que respecta al segundo trmino, tenemos que
o o g(N (N yk j =0 k j y j ) j =0 k j y j ) = = gk (1 gk ) = gk (1 gk ) y j k j k j k j

(2.9)

donde, por claridad, hemos supuesto que = 1 y hemos sustituido la expresin de g(ak ) = g( k j y j )
j =0 No

(2.10)

por gk . Por lo tanto

Vamos ahora a tratar de extender el formalismo a las conexiones entre neuronas de la capa de entrada y neuronas de la capa oculta. Para la modicacin de cualquiera de esas conexiones tendremos ji =
a De

k j = k gk (1 gk ) y j

(2.11)

E y j E = ji y j ji

(2.12)

igual manera no se justicar la regla de la cadena de derivacin por lo que se recomienda al lector que aproveche la ocasin para refrescar la memoria sobre todos estos aspectos del Clculo.

30

Retropropagacin del error

Para calcular la primera derivada de la derecha tendremos en cuenta que E () no depende directamente de ningn y j (es decir, no depende directamente de los valores de activacin de las neuronas de la capa oculta). Efectivamente, la ecuacin 2.5 nos indica que E () depende de los valores de activacin de las neuronas de la capa de salida yk y slo a travs de stas e indirectamente, de los valores de y j . Por lo tanto, ser necesario aplicar la regla de la cadena para composicin de funciones:
Ns E E yk = y j k=1 yk y j

(2.13)

Puesto que para neuronas de la capa de salida, hemos empleado la notacin E = k yk (2.14)

ahora podemos, por analoga, llamar j a la derivada parcial de la funcin de error respecto al valor de activacin de la neurona de la capa oculta y j . Entonces,
Ns E E yk = = j y j k=1 yk y j

(2.15)

Ya conocemos que y podemos calcular que

E = (tk yk ) = k yk

(2.16)

o g(N yk j =0 k j y j ) = = gk (1 gk ) k j y j y j

(2.17)

de donde

Por otra parte,

Ns E = j = gk (1 gk ) k k j . y j k=1

(2.18)

e g(N y j i=0 ji xi ) = = g j (1 g j ) xi ji ji donde de nuevo se sobreentiende que

(2.19)

g j = g( ji xi )
i=0

Ne

(2.20)

Combinando 2.18 y 2.19 con 2.12 obtenemos nalmente o, resumiendo todo el proceso, que ji = con j = y
No j =0

ji = j g j (1 g j ) xi

(2.21)

E E y j = = j g j (1 g j ) xi ji y j ji

(2.22)

k=1

gk (1 gk) k k j
g j = g( ji xi ).
i=0 Ne

Ns

(2.23)

gk = g( k j y j )

(2.24)

2.1 El formalismo matemtico del algoritmo.

31

Resumen de la notacin empleada: Nmero de neuronas en cada capa: Ne para la capa de entrada, No para la capa oculta, Ns para la capa de salida. Vector de entrada a la red neuronal: x[n] = x1 , x2 , ..., xNe . Objetos de la capa de entrada: subndices i; de la capa oculta, j; de la de salida, k. Peso de la sinapsis que conecta la neurona i (capa de entrada) con la neurona j (capa oculta): ji. Peso de la sinapsis que conecta la neurona j (capa oculta) con la neurona k (capa de salida):k j . Suma ponderada: a j = ji xi
i=0 Ne

ak =

j =0

k j y j .

No

Funcin de activacin: g j = g(a j ) (para neuronas de la capa oculta) o gk = g(ak ) (neuronas de salida). Salida de una neurona (y j corresponde a la salida de la neurona j de la capa oculta e yk a la neurona k de la capa de salida): y j = g(a j ) = g( i j xi )
i=0 Ne

yk = g(ak ) = g( k j y j ).
j =0

No

Conjunto A de entrenamiento: conjunto de NA pares compuestos por un vector de entrada x[n] y su correspondiente vector de salida esperado t [n] con n = 1, 2, ..., NA . Funcin de error: E (). Coeciente de aprendizaje: .

32

Retropropagacin del error

Ejemplo 1 (Retropropagacin del error): Disear una red de tres capas con una sola neurona en la capa de entrada, 5 neuronas en la capa oculta y una neurona en la capa de salida y con funciones de transferencia tipo sigmoide en la capa oculta y lineal en la de salida, para el siguiente conjunto de entrenamiento: n=1 n=2 n=3 n=4 n=5 n=6 n=7 n=8 n=9 n=10 n=11 x[n] -1.0 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0.0 t [n] -0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609 0.1336 -0.2013 -0.4344 -0.5000 n=12 n=13 n=14 n=15 n=16 n=17 n=18 n=19 n=20 n=21 x[n] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 t [n] -0.3930 -0.1647 0.0988 0.3072 0.3960 0.3449 0.1816 -0.0312 -0.2189 -0.3201

Nota: Supongamos que la velocidad de aprendizaje vale 0.1. Solucin: Es muy importante tener en cuenta que en la resolucin del problema vamos a introducir una novedad (ya anunciada al presentar la funcin de activacin sigmoidea) respecto al formalismo matemtico descrito en esta seccin: el enunciado dice explcitamente que la neurona de la capa de salida procesa la suma ponderada de sus entradas con una funcin de transferencia lineal y no con una sigmoide. Esto signica que gk = g(ak ) = ak o, de forma ms detallada y omitiendo la refencia a k: gk = g( k j y j ) =
j =0 5

j =0

k j y j .

Por lo tanto, la ecuacin (2.9) deber ser modicada: g(5 (5 yk j =0 k j y j ) j =0 k j y j ) = = = y j. k j k j k j Finalmente, la frmula para la actualizacin de los pesos de la capa de salida ser: k j = E () E yk = = k y j k j yk k j (2.25)

Adems, habr que modicar la ecuacin de actualizacin de los pesos de la capa oculta (ecuacin 2.17) que quedar
o o g(N (N yk j =0 k j y j ) j =0 k j y j ) = = = k j y j y j y j

(2.26)

de donde, para la neurona j de la capa oculta tendremos


Ns E = j = k k j . y j k=0

(2.27)

Dado que Ns = 1 podemos sustituir el subndice k en todas las expresiones anteriores por un 1. La ecuacin 2.22 no sufre ningn cambio salvo que ahora j viene dada por la ecuacin 2.27.

2.1 El formalismo matemtico del algoritmo.

33

b1 = 10 11 21 31 41 51

y1 y2 y3 y4 y5

b2 = 20

b3 = 30

b4 = 40

b5 = 50

b1

x0 = 1

y0 = 1

Figura 2.5: Red neuronal del ejemplo.

El esquema de nuestra red neuronal se muestra en la gura 2.5 en el que hemos aadido neuronas adicionales con subndice cero, cuyas salidas x 0 e y0 son siempre iguales a 1 y cuyos pesos son precisamente las polarizaciones que queremos introducir (ver captulo anterior). Para el caso de funciones de activacin no sigmoideas, la forma de introducir las polarizaciones es la misma: aadir una neurona cticia de salida igual a 1 en la capa anterior e interpretar los pesos de conexin como las polarizaciones de las funciones de transferencia correspondientes. Teniendo todo esto en cuenta y suponiendo una inicializacin de los pesos y polarizaciones aleatoria ya podemos empezar a iterar el algoritmo de retropropagacin de los errores. Sean los pesos de las sinapsis de la neurona de entrada con las de la capa oculta los siguientes: En lo que sigue se va a detallar el primer paso del procedimiento EntradaOculta 11 = 3,5 10 = b1 = 0,8155 21 = 3,5 20 = b2 = +0,1359 31 = +3,5 30 = b3 = +2,3168 41 = +3,5 40 = b4 = 3,2580 51 = +3,5 50 = b5 = 3,1258 OcultaSalida 11 = +0,0594 10 = b1 = 0,1650 12 = +0,3423 13 = 0,9846 14 = 0,2332 15 = 0,8663

iterativo de clculo de los pesos de la red. El algoritmo de retropropagacin del error consistir en reproducir los clculos descritos hasta que la funcin suma del error cuadrtico medio sea menor que un cierto valor que consideremos suciente.

1. El primer paso consiste en calcular y j para cada una de las neurona de la capa oculta. Como se puede comprobar, las neuronas de la capa de entrada no son propiamente neuronas en la medida en que no procesan la informacin recibida sino que se limitan a transmitirla a las neuronas de la capa siguiente. Dada la primera entrada x = 1, el valor de y j para cada neurona de la capa oculta ser

34

Retropropagacin del error

Donde el primer elemento del vector corresponde a la primera neurona de la capa oculta, el segundo a la segunda neurona y as sucesivamente. 2. El segundo paso consiste en calcular la salida de la nica neurona de la tercera capa o capa de salida para el valor de entrada x = 1. Su valor sera y1 = g(a1 ) = g(0,0082) = 0,0082b 1 = (0,9602 + 0,0082) = 0,9520 3. El error cometido por la red neuronal para el valor de entrada x = 1 es donde -0.9602 es el valor de la salida esperado para dicha entrada (ver enunciado del problema). 4. Recalcular los pesos de la segunda capa: De acuerdo con la frmula 2.25 c 11 = 1 y1 = 0,1 0,4531 0,9361 = 0,0424 21 = 0,1 0,4531 0,9743 = 0,0441 31 = 0,1 0,4531 0,2345 = 0,0106 41 = 0,1 0,4531 0,0012 = 0,0001 51 = 0,1 0,4531 0,0013 = 0,0001

a1 = (1 0,8155) + (3,5 1) = +2,6845 a2 = (1 +0,1359) + (3,5 1) = +3,6359 a= a3 = (1 +2,3168) + (+3,5 1) = 1,1832 a4 = (1 3,2580) + (+3,5 1) = 6,7580 a5 = (1 3,1258) + (+3,5 1) = 6,6258 0,9361 g(+2,6845) g(+3,6359) 0,9743 y = g(a) = g(1,1832) = 0,2345 g(6,7580) 0,0012 0,0013 g(6,6258)

5. Recalcular los pesos de la primera capa: de acuerdo con las ecuaciones 2.22 y 2.27 tendremos i j = j g (1 g) xi 11 = 0,1 (0,9520 0,0594) g(2,6845) (1 g(2,6845)) (1)

41 = 0,1 (0,9520 0,2332) g(6,7580) (1 g(6,7580)) (1) 51 = 0,1 (0,9520 0,8663) g(6,6258) (1 g(6,6258)) (1)

21 = 0,1 (0,9520 0,3423) g(3,6359) (1 g(3,6359)) (1) 31 = 0,1 (0,9520 0,9846) g(1,1832) (1 g(1,1832)) (1)

b Recordad que la funcin de activacin o transferencia de la neurona de salida es lineal y que a se 1 calcula segn

a1 = 1 0,1650 + 0, 0594 0, 9361 + 0, 3423 0, 9743 0,9846 0, 2345 0,2332 0, 0012 0,8663 0, 0013 = 0,0082 .

c Al

reproducir estos clculos tengan en cuenta los errores de redondeo.

2.2 Aspectos metodolgicos del entrenamiento de una red neuronal.

35

Para x = 0,9 repetiramos el mismo procedimiento sustituyendo -1 por -0.9 en la entrada y recalculando las salidas de todas las neuronas de las capas oculta y de salida y los pesos de las conexiones entre todas las capas. As sucesivamente para los 21 valores que van desde -1 hasta 1 en intervalos de 0.1. Este procedimiento general, admite pequeas variaciones que sern tratadas en secciones posteriores. Baste recordar aqu que, adems de la posibilidad de aplicar las correcciones de los pesos obtenidas para cada par de entrenamiento inmediatamente despus de realizado el clculo (entrenamiento secuencial), existe la posibilidad de ir acumulando las modicaciones y aplicarlas sumadas al nal del bloque (entrenamiento por lotes). Al nal de cada actualizacin se compara el error obtenido con el error que nos hayamos jado como meta. Si aqul es menor que ste se detiene la iteracin y se jan los pesos.

2.2.

Aspectos metodolgicos del entrenamiento de una red neuronal.

En lo que sigue, vamos a revisar algunos aspectos del proceso de aprendizaje de especial relevancia. El primero de ellos se reere a la forma ptima en que debemos presentar los datos a la red.

2.2.1.

Preprocesado de las variables de entrada/salida.

Normalizacin/Estandarizacin En principio, una red neuronal como las que estamos estudiando en este captulo no es ms que un mapa entre un espacio de entrada y uno de salida. Deseamos que, a un vector del espacio de entrada, la red le haga corresponder uno del de salida donde cada uno de esos espacios est compuesto de variables dotadas de signicados precisos para el creador de la red. Por ejemplo, si quisiramos identicar nmeros a partir de imgenes digitales, las variables de entrada seran los valores de intensidad de los pxeles de la imagen. Dada la naturaleza de las redes neuronales, no se puede descartar la posibilidad de entrenar una red con los datos de entrada/salida tal y como se denen en la especicacin del problema y obtener un rendimiento que cumpla las expectativas iniciales de la fase de diseo. Sin embargo, podemos pensar en muchas circunstancias en las que una transformacin previa de las variables mejora el rendimiento de la red o incluso es imprescindible para su correcto funcionamiento. La transformacin ms sencilla es la normalizacin o estandarizacin de las variables de entrada. Volvamos al caso del conjunto de entrenamiento A de NA elementos x[n] con n = 1, 2...NA . Podemos denir la media de cada variable i de los vectores de entrada x del conjunto de entrenamiento como 1 NA x i = (2.28) xi [n] NA n =1

36

Retropropagacin del error

y la varianza 2 i como 2 i = Entonces, la transformacin

NA 1 (xi [n] x i). NA 1 n=1

(2.29)

xi [n]

xi [n] x i i

(2.30)

da como resultado que la variable i tome en todo el conjunto de entrenamiento valores cuya media es cero y cuya desviacin estndar es 1. Si repetimos la transformacin para todas las variables del espacio de entrada x1 , x2 , ..., xNe , tendremos que todas las variables tendrn las mismas propiedades estadsticas mencionadas. Es cierto que por la propia denicin del perceptrn, esta transformacin es innecesaria porque la primera capa de neuronas realiza una operacin de reescalado en la que se podra incluir la normalizacin. Sin embargo, de esta forma conseguimos que todas las entradas de la red tengan valores del mismo orden de magnitud y, por lo tanto, tambin los valores de los pesos estarn en el mismo rango. Finalmente, la inicializacin aleatoria de los pesos con valores dentro de esos rangos dar lugar a una convergencia rpida del proceso de aprendizaje y evitar el estancamiento en mnimos locales. Sabra explicar intuitivamente por qu? El lector atento ya habr observado que el proceso de normalizacin reduce la cantidad de informacin que pasamos a la red neuronal puesto que hemos eliminado las diferencias de magnitud entre unas variables y otras. Es el diseador de la red neuronal quien debe evaluar la importancia de esa informacin y si los benecios que obtenemos en el proceso de aprendizaje gracias a la normalizacin justican esa prdida. Una ltima consideracin sobre otro tipo de cambios de escala. La normalizacin propuesta anteriormente admite diversas variantes no todas de la misma utilidad. En particular, una transformacin muy popular consiste en hacer que las componentes de los vectores de entrada se encuentren en el intervalo [0,1]. No existe ningn benecio en ello y es en general preferible que la escala est centrada en cero, por ejemplo, llevando los valores de entrada al intervalo [-1,1].

Complecin de patrones Otro tipo de preprocesado es la complecin de los patrones o vectores de entrada. Pensemos, por centrar las ideas, en un caso de clasicacin. Pues bien, en muchas ocasiones, la recoleccin de un conjunto completo de ejemplos de las clases que queremos reconocer con la red neuronal es una tarea complicada y no son inhabituales situaciones en las que no disponemos de sucientes casos. Pensemos que el conjunto de entrenamiento no slo debe contener instancias de todos los casos que queremos tratar sino que ha de hacerlo en proporciones similares a las que esperamos que se encuentre la red durante su funcionamiento real. Ello implica el aprovechamiento de ejemplos que seran desechados si dispusisemos de una gran cantidad de casos, en particular algunos cuyos vectores de entrada son incompletos. Existen varias formas de completarlos con el n de poder utilizarlos como ejemplos de entrenamiento. La primera de ellas consiste en dar a una variable ausente de un patrn o vector de entrada el valor de la media de los valores de esas variables en los casos de entrenamiento en los que s estn presente. Otra posibilidad es realizar una regresin con los valores disponibles y rellenar los vacos con las predicciones de la funcin obtenida.

2.2 Aspectos metodolgicos del entrenamiento de una red neuronal.

37

Ambas posibilidades sesgan el patrn de entrada de forma no deseada, aunque evidentemente la segunda presta ms atencin a la parte del vector de que s disponemos. Su principal desventaja es que emplear una funcin de regresin implica obviamente infravalorar la covarianza de los datos. La solucin ms deseable pasa por buscar los valores que maximizan la verosimilitud (likelihood, en ingls) y emplear un algoritmo EM (expectation-maximization, ver [GJ95]).

Seleccin de caractersticas. Anlisis de componentes principales. Para terminar esta seccin, vamos a mencionar otra posible etapa del preprocesado de los datos que consiste seleccionar de entre todas las posibles variables de entrada a la red que hemos considerado inicialmente un subconjunto mnimo imprescindible para la realizar la tarea que hemos encomendado a la red. En la prctica, el subconjunto no es mnimo sino un compromiso entre un nmero manejable (no excesivamente grande) de variables y un rendimiento de la red aceptable. Obviamente si disminuimos demasiado el nmero de variables de entrada nos encontraremos con redes neuronales muy manejables, con pocas entradas y ciclos de aprendizaje rpidos pero a costa de disminuir el rendimiento de la red por haber prescindido de variables importante para la tarea. En el extremo contrario, podemos incluir demasiadas variables de entrada, algunas fuertemente correlacionadas y, por tanto, redundantes, lo que resulta en redes a las que proporcionamos toda la informacin de que disponemos pero que presentan ciclos excesivamente largos y a veces un rendimiento sub-ptimo precisamente porque se le hace llegar informacin de forma indiscriminada. En la bibliografa citada al nal del texto se cita en numerosas ocasiones lo que en ingls se conoce como curse of dimesionality [BD62] y que podramos traducir al castellano como la maldicin de la dimensionalidad (aunque podramos traducirlo alternativamente como el azote de la dimensionalidad, conservando un sentido parecido). La expresin hace referencia precisamente a los efectos perniciosos que la sobreabundancia de entradas tiene sobre el rendimiento de una red neuronal. Para explicar intuitivamente su signicado, volvamos a la descripcin de una red neuronal dada en el captulo anterior. All veamos cmo un problema de regresin d era equivalente a encontrar una funcin f : RNe RNs . (2.31) donde RNe era el espacio de entrada y RNs el de salida. Lo que nos interesa aqu es que para reconstruir esa funcin f (es decir, para entrenar la red neuronal) necesitamos ejemplos que cubran la mayor cantidad posible del espacio de entrada R Ne . La representacin ser tanto mejor cuanto menor sea la distancia entre cualquier caso nuevo que se le presente a la red y el ejemplo ms prximo empleado en el entrenamiento. Pues bien, se puede probar que el nmero de ejemplos crece exponencialmente cuanto mayor es la dimensin Ne del espacio de entrada si queremos que esa distancia mnima entre un vector cualquiera y el ejemplo ms prximo se mantenga constante. Ese crecimiento exponencial implica que la complejidad de la red y los tiempos de entrenamiento crecen muy rpidamente con la dimensionalidad del espacio de entrada adems de requerir conjuntos de entrenamiento imposibles de conseguir en la prctica. Por ello, en muchos casos se requiere disminuir la dimensin de dicho espacio eliminando algunas variables de entrada y combinnndolas entre s.
d En

realidad, los problemas de clasicacin tambin pueden ser interpretados como un caso especial de regresin y viceversa.

38

Retropropagacin del error

Existen varias formas de seleccionar las variables o combinaciones de variables que queremos utilizar como entrada a la red neuronal pero aqu nos vamos a restringir a un formalismo general de gran utilidad en muchos campos del anlisis de datos: el anlisis de componentes principales o transformacin de Karhunen-Love. Para exponer dicha transformacin necesitaremos repasar algunos conceptos de lgebra propios de cualquier curso de Matemticas de primeros cursos de carrera tcnica. Entonces se estudiaba que un vector de Ne componentes reales se puede expresar como una combinacin lineal de los vectores de una base de R Ne x[n] = zi [n] ui
i=1 Ne

(2.32)

donde ui es la base vectorial de RNe y zi [n] son los coecientes del vector de entrada x[n] en dicha base. La base fundamental del mtodo es seleccionar una base de R Ne en la que cada sumando de la suma de trminos de 2.32 sea de menor valor absoluto que el anterior. De esta forma, podemos aproximar cualquier vector x[n] del conjunto de entrenamiento por la suma por los M primeros trminos correspondientes a dicho vector ms los Ne M restantes con los mismos coecientes para todo el conjunto de entrenamiento. Si inicialmente necesitbamos los Ne valores de entrada para especicar el ejemplo x[n] ahora nos bastarn los M primeros porque las componentes del resto son iguales para todos los vectores de entrada del conjunto de entrenamiento, lo que implica una reduccin efectiva de la dimensin del espacio de entradas. En resumen tenemos que x[n] x [n] = zi [n] ui +
i=1 M

i=M +1

Ne

bi u i

(2.33)

donde bi con M < i Ne son los Ne M coecientes constantes para todo el conjunto de entrenamiento. Al hacer constantes los ltimos coecientes del desarrollo estaremos cometiendo un error x[n] x [n] =
i=M +1

Ne

(zi [n] bi) ui .

(2.34)

As pues, se trata de reducir la dimensionalidad del espacio de entrada desde Ne hasta M encontrando unos valores bi y una base de vectores en la que el error cometido sea mnimo. Minimizando el error cometido y empleando multiplicadores de Lagrange se obtiene que 1 Ne (2.35) bi = zi [n] Ne n =1 y que la base ui que necesitamos es la base de autovectores o vectores propios de la matriz covarianza =
n=1

) (x[n] x )T . (x[n] x

NA

(2.36)

En resumen, dado un conjunto de entrenamiento A compuesto de NA vectores x[n], el procedimiento consiste en: 1. calcular la media de todos los vectores x =
1 NA
A n= 1 x[n];

2. calcular la matriz de covarianza segn 2.36 y sus valores y vectores propios;

2.2 Aspectos metodolgicos del entrenamiento de una red neuronal.

39

3. seleccionar los M vectores propios correspondientes a los M valores propios de mayor valor absoluto; 4. proyectar los vectores x[n] del conjunto de entrenamiento en la nueva base de vectores propios. Ejemplo 2 (Karhunen-Love): Supongamos que queremos entrenar una red neuronal para que distinga el siguiente conjunto de vectores a partir de una nica caracterstica: x[1] 2.5 2.4 A x[2] 0.5 0.7 B x[3] 2.2 2.9 A x[4] 1.9 2.2 A x[5] 3.1 3.0 A x[6] 2.3 2.7 A x[7] 2.0 1.6 B x[8] 1.0 1.1 B x[9] 1.5 1.6 B x[10] 1.1 0.9 B

Componente x Componente y Clase

El vector medio de este conjunto de entrenamiento es (1,81, 1,91) y, puesto que los vectores de entrada son bidimensionales, la matriz de covarianza tendr dimensiones 2 2 y ser 0,616555556 0,615444444 (2.37) 0,615444444 0,716555556 El mayor autovalor es 1.284 y su vector propio correspondiente (-0.678, -0.735); el segundo autovalor es 0.491 y su vector propio (-0.735, 0.678). Por lo tanto, la direccin de mxima varianza viene dada por el primer vector propio. Recomendamos encarecidamente al lector que represente grcamente los vectores de entrada antes y despus de sustraerles el vector medio y que trace los vectores propios sobre dicha grca. Intente contestar a las siguientes preguntas: 1. Qu direccin marca el vector propio correspondiente al mayor autovalor? 2. Qu ocurre cuando proyectamos los vectores de entrada sobre dicho autovector? 3. Al deshacernos del segundo vector propio Estamos perdiendo informacin esencial para la tarea de clasicacin? 4. El mtodo de Karhunen-Love tiene en cuenta la clase a la que pertenece cada vector de entrada? 5. Se le ocurre otra divisin del conjunto de entrenamiento en clases para la que el mtodo de Karhunen-Love no sirva o implique una prdida total de la posibilidad de clasicar?

2.2.2. Descomposicin del error. Denicin de trminos. El compromiso entre sesgo y varianza
Considrese la gura 2.6 en la que se muestra un problema de regresin parecido al de la gura 1.12. La curva continua representa una funcin seno y los puntos alrededor de la curva han sido obtenidos a partir dicha funcin aadiendo ruido gaussiano. En dicha gura se ejemplican los dos casos extremos a los que nos puede llevar el entrenamiento inadecuado de una red neuronal. Por un lado, un nmero insuciente de

40

Retropropagacin del error

-0.92 -0.94 -0.96 -0.98 -1.00 -1.02 4.40

4.45

4.50

4.55

4.60

4.65

4.70

4.75

4.80

4.85

4.90

Figura 2.6: Ejemplo de problema de regresin en el que, de nuevo, los puntos naranja son pares de entrenamiento y se desea obtener la funcin generatriz representada en trazo negro continuo. neuronas en la red neuronal o un entrenamiento insuciente proporcionan funciones de regresin suaves como la recta discontinua azul pero que resultan en un ajuste pobre a los datos de partida: no son sucientemente exibles como para ajustarse a los datos; en el otro extremo, un entrenamiento excesivo (overtting en ingls) de una red sucientemente compleja har que la curva ajustada (trazo naranja discontinuo) pase por todos los puntos empleados en la regresin (dando lugar por lo tanto a un error nulo para el conjunto de entrenamiento), pero alejndose al mismo tiempo de la curva suave que origin los datos distorsionados por el ruido (lnea continua). El objetivo de un entrenamiento adecuado es el de encontrar un punto de compromiso entre ambas soluciones, esto es, la curva sinusoide continua que di origen a los datos. Una red sobreentrenada ajusta los datos de entrenamiento perfectamente (error cero) pero, ante un dato nuevo no contenido en el conjunto de entrenamiento, har predicciones ms erradas que la curva suave. Lo que necesitamos, por tanto, es que la red neuronal no se limite a reproducir exactamente el conjunto de entrenamiento, sino que a partir de l sea capaz de generalizar y realizar predicciones correctas para nuevas entradas. Vamos a ver por qu a este compromiso se lo conoce como el compromiso sesgo-varianza (bias-variance trade-off en ingls). A continuacin vamos a realizar un experimento mental que nos va a permitir conocer algo ms sobre la naturaleza del error que va a afectar a cualquier red neuronal que construyamos. Para ello, necesitamos imaginar que en lugar de un solo conjunto de entrenamiento, tenemos varios con el mismo nmero de pares (x, t ) cada uno. Supongamos, como hemos hecho anteriormente, que empleamos una funcin del error basada en la suma de cuadrados (ecuacin 2.5 que reproducimos a continuacin) E () = 1 NA t [n] y[n] 2 n =1
2

1 NA Ns (tk yk )2 2 n =1 k=1

2.2 Aspectos metodolgicos del entrenamiento de una red neuronal.

41

donde recordamos que t representa un vector salida del par de entrenamiento e y representa el vector obtenido por la red neuronal para la entrada correspondiente al par al que pertenece t . Esta ecuacin esta basada en la suposicin de que trabajamos con un conjunto de entrenamiento A de NA elementos y de que la red neuronal tiene un espacio de salida de dimensin Ns . Para simplicar, tomemos Ns = 1 con lo que 1 NA t [n] y[n] 2 n =1 1 NA (t y)2 2 n =1

E () =

(2.38)

Llamemos D al conjunto de todos los conjuntos de entrenamiento de nuestro experimento mental (todos ellos, como decamos, de NA elementos). A partir de cada conjunto de entrenamiento, obtendramos una red neuronal distinta que generara un valor de y diferente. Pues bien, para cada uno de ellos podemos escribir la suma a la derecha de 2.38 como
NA NA NA

n=1

(t y)2 =

n=1

(y t )2 =

n=1

(y ED [y] + ED [y] t )2

(2.39)

donde ED [y] representa el valor esperado de la salida de la red neuronal para el conjunto de salidas generadas por cada conjunto A en D . Esto es, dado que para cada vector de entrada x tenemos ND salidas y de cada una de las ND redes neuronales obtenidas a partir de los ND conjuntos de entrenamiento, podemos pensar en el valor esperado de y como la media de dichos ND valores. Reordenando los trminos y realizando sencillas manipulaciones obtenemos

n=1

(y ED [y]+ ED [y] t )2 = (y ED [y])2 +(ED [y] t )2 + 2(y ED [y])(ED [y] t )


n=1

NA

NA

(2.40)

Si ahora queremos calcular el valor esperado del error (que podra ser, para jar ideas, la media de E () para los ND conjuntos de entrenamiento) tendramos

ED [E ()] =
= =

NA 1 ED [ (y ED [y])2 + (ED [y] t )2 + 2(y ED [y])(ED [y] t )] 2 n=1

1 NA ED [(y ED [y])2 ] + ED [(ED [y] t )2] + ED [2(y ED [y])(ED [y] t )] 2 n =1 1 NA ED [(y ED [y])2 ] + (ED [y] t ))2 2 n =1 (2.41)

donde hemos tenido en cuenta que

ED [(ED [y] t )2] = (ED [y] t )2

(2.42)

42

Retropropagacin del error

puesto que la media de ND nmeros iguales es ese mismo nmero, y que

ED [2(y ED [y])(ED [y] t )] = 2(ED [y] t ) ED [(y ED [y])] = 2(ED [y] t ) (ED [y] ED [y]) = 0.

(2.43)

As pues, hemos llegado a la conclusin de que, si pudiramos tener muchos conjuntos de entrenamiento, el error promedio que obtendramos se descompondra en dos trminos: ED [(y ED [y])2 ] y (ED [y] t ))2 . Al primer trmino se lo conoce como varianza y representa la dispersin de los valores de y obtenidos con cada conjunto de entrenamiento respecto a su valor medio. La varianza nos da una idea de la dependencia de la funcin que computa la red neuronal con el conjunto de entrenamiento utilizado. El segundo trmino es el sesgo al cuadrado y mide la diferencia entre el valor promedio de y obtenido con todos los conjuntos de entrenamiento y el valor verdadero de la funcin que deseamos que compute la red.

2.2.3. Anlisis estadstico: cmo minimizar el error. La validacin cruzada y la regularizacin.


La seccin anterior plantea una cuestin interesante que consiste en saber si el conocimiento que hemos obtenido de la naturaleza del error nos puede ayudar a eliminarlo por completo. Por supuesto, el objetivo nal sera una red neuronal que diese respuestas sin error en todos los casos que se le plantearan. Una red tal diramos que ha generalizado a partir del conjunto de pares de entrenamiento. En la prctica eso es imposible salvo para casos simples en los que las soluciones conexionistas no aportan ninguna ventaja frente a soluciones ms sencilla y directas basadas en el conocimiento a priori. Volviendo al concepto del compromiso entre sesgo y varianza y al ejemplo de la gura 2.6, veremos que en realidad una red que tenga muy poca varianza tendr un sesgo desproporcionado y vice versa y que la solucin ptima ser un punto intermedio en el que la suma de ambos trminos sea mnima pero no nula. En el ejemplo que acabamos de mencionar (el de la gura 2.6) imaginemos que para cualquier conjunto de entrenamiento de D ajustamos la funcin que representa la lnea recta discontinua de color azul. En este caso, en el que se le presta escasa atencin a los pares de entrenamiento la varianza es nula porque la funcin ajustada es siempre la misma y no depende del conjunto de entrenamiento empleado. Sin embargo y por esa misma razn, puesto que no se han utilizado los pares de entrenamiento para obtener la funcin, el sesgo (la diferencia entre la funcin computada y la funcin objetivo) ser en general inaceptable. Si por el contrario construysemos una red neuronal que ajustase perfectamente todos los puntos del conjunto de entrenamiento (la otra posibilidad mostrada en la gura 2.6 con lnea discontinua naranja), tendramos que el sesgo se anulara pero la varianza sera muy alta puesto que estaramos ajustando perfectamente conjuntos de entrenamiento distintos y, por lo tanto, la funcin calculada sera muy diferente para distintos conjuntos de entrenamiento. Adems en ese caso, la capacidad de generalizar a partir de los ejemplos sera muy pequea puesto que la red se ha especializado en reproducir, no solo la forma general de la funcin generatriz como era nuestro objetivo, sino tambin y muy especialmente el ruido. Veremos en el ltimo captulo que el ruido en cualquiera de sus formas es un componente fundamental de cualquier aplicacin conexionista. De alguna forma, generalizar consiste en abstraer el ruido y quedarse con la funcin que subyace a ste. La solucin ideal representada en trazo negro continuo es tal que sera muy parecida para diferentes

2.2 Aspectos metodolgicos del entrenamiento de una red neuronal.

43

conjuntos de entrenamiento (baja varianza) y estando adems prxima a los valores de entrenamiento. Estas dos condiciones son, a partir de cierto punto, contradictorias y por eso se habla en general de compromiso sesgo-varianza. Ese punto intermedio que minimiza la suma de las dos fuentes de error es un compromiso entre prestar atencin a los datos de entrenamiento para que la solucin obtenida tenga sesgo pequeo pero no tanta atencin como para que la varianza se dispare (overtting). Para encontrar ese punto cuando partimos de un nmero limitado de pares de entrenamiento existen dos tcnicas sencillas denominadas validacin cruzada y regularizacin. Obviamente, la solucin ideal es disponer de un conjunto de entrenamiento completo tan grande como precisemos. En ese caso, podemos construir redes neuronales arbitrariamente complejas capaces de ajustar cualquier funcin: aumentando la complejidad (el nmero de unidades de computacin o neuronas o el de capas) disminuimos el sesgo y aumentando el conjunto de entrenamiento disminuimos la varianza e. Existen numerosos trabajos de investigacin que tratan la relacin que deben cumplir la complejidad de la red neuronal y el tamao del conjunto de entrenamiento para disminuir la suma de sesgo y varianza. Desgraciadamente, en la mayora de los casos de inters prctico se dispone de un conjunto limitado de pares de entrenamiento lo que hace necesario recurrir a las tcnicas mencionadas anteriormente para hallar el punto ptimo de reduccin del error.

Regularizacin De la gura 2.6 podemos deducir que en el caso particular de la regresin, una solucin sobreentrenada va a estar caracterizada por una curvatura alta. Por supuesto, una solucin como la que representa la lnea discontinua naranja slo se puede alcanzar con redes de complejidad suciente, esto es, con un nmero suciente de capas y neuronas. Es evidente que una red neuronal de tres capas y dos neuronas en la capa oculta no tiene sucientes parmetros para sintetizarla, pero en el caso de que la red tuviera una arquitectura sucientemente compleja para ello, entonces la solucin de regresin tendra una alta curvatura prcticamente en todo el rango de entradas. Podemos utilizar esta caracterstica para guiar el proceso de aprendizaje hacia soluciones que eviten el sobreentrenamiento aadiendo al error total una penalizacin por curvatura: = E () + E (2.44)

donde es un nmero real que parametriza la importancia relativa del trmino de regularizacin frente al trmino clsico de error E () y es una funcin que depende de la curvatura total de la solucinf . De esta forma, conseguimos que el proceso de
e Aclarar este ltimo punto hasta sus ltimas consecuencias est fuera de los objetivos globales de la asignatura; recomendamos al lector interesado en este aspecto la lectura del libro de C.M. Bishop incluido en la bibliografa. Baste decir aqu que, en el lmite de un conjunto de entrenamiento innito, el resultado de la red neuronal tendera al valor esperado de los valores de t para una x dada f La forma de ms claramente relacionada con la curvatura en problemas de regresin en una dimensin (una neurona de entrada y una de salida con una o varias capas ocultas) es la dada por la clase de regularizadores de Tikhonov:

1 R 2 r =0

Z b
a

hr (x) (

dr y 2 ) dx dxr

(2.45)

44

Retropropagacin del error

minimizacin reduzca progresivamente tanto el error cometido por la red durante el proceso de entrenamiento como la curvatura total de la funcin mencionada, llegando a un compromiso entre ambos trminos. La forma ms habitual y sencilla de aplicar regularizacin de soluciones neuronales consiste en penalizar la curvatura mediante una funcin que depende de los pesos: = 1 2 ij 2 i, j (2.46)

A este tipo de regularizacin se lo conoce como weight decay en ingls o disminucin progresiva de los pesos. Aunque es difcil ver la relacin directa entre los pesos y la curvatura de las soluciones, podemos aproximarnos al problema desde la perspectiva de neuronas con funciones de activacin no lineales g(x) de tipo sigmoide. Estas funciones de activacin tienen tramos centrales lineales (para valores pequeos de x) y la no linealidad aparece con la saturacin a valores absolutos de x mayores (ver gura 2.3). Puesto que x es la suma de las entradas ponderada con los pesos, unos pesos de alto valor absoluto darn con mayor probabilidad sumas ponderadas en la regin no lineal de la funcin de activacin y, evidentemente, para que una red neuronal sintetice soluciones de alta curvatura es necesario que una fraccin signicativa de sus neuronas se encuentren operando en regmenes no lineales. De nuevo, esto ltimo se puede ver porque la composicin de funciones lineales es una funcin lineal (una recta) y una red neuronal es una composicin de funciones.

Validacin cruzada Como hemos dicho, uno de los problemas con los que nos encontramos al entrenar una red neuronal es el de poder ajustar perfectamente el conjunto de entrenamiento incluyendo no slo el modelo que subyace al conjunto sino tambin el ruido que lo afecta (esto es, llegar al sobreentrenamiento u overtting) disminuyendo por tanto la capacidad de generalizacin de la red. A esta situacin se llega simplemente cuando el nmero de ciclos de entrenamiento se prolonga indenidamente. Para evitarlo, el mtodo de validacin cruzada divide el conjunto de ejemplos de que disponemos en tres grupos: un conjunto de entrenamiento propiamente dicho (training set en ingls), un conjunto de validacin o validation set y un conjunto de evaluacin o prueba test set. Durante el entrenamiento se monitorizan los valores del error cuadrtico medio tanto del conjunto de entrenamiento como del de validacin. Es de esperar que, a la luz de lo tratado en secciones anteriores, el error cuadrtico medio del primer conjunto disminuya indenidamente (si el conjunto es consistente, esto es, no contiene contradicciones; si se no fuese el caso el error disminuira hasta oscilar alrededor de un valor mnimo). Por el contrario, el error correspondiente al conjunto de validacin disminuye durante la primera fase del entrenamiento (aunque, por lo general, con una pendiente de disminucin menos pronunciada que en el caso del conjunto de entrenamiento), alcanza un valor mnimo y, a partir de ese momento, aumenta con una pendiente que depende de la seleccin particular de ambos conjuntos. La explicacin de este comportamiento es la siguiente: durante la primera fase, ambos
en los que la curvatura se penaliza a travs de las derivadas hasta orden R de la funcin que sintetiza la red neuronal.

2.2 Aspectos metodolgicos del entrenamiento de una red neuronal.

45

errores disminuyen puesto que el algoritmo de aprendizaje modica una red neuronal cuyos parmetros iniciales son obtenidos aleatoriamente. En el punto en que el error cuadrtico medio obtenido para el conjunto de validacin alcanza el mnimo, la red ha impreso en sus conexiones los aspectos ms generales del modelo que queremos reproducir (sea ste un sistema de clasicacin, una funcin de regresin o un sistema no lineal de control o de prediccin). A partir de ese punto, la red empieza a incorporar a sus conexiones detalles particulares del conjunto de entrenamiento asimilables al ruido presente en los datos. El error cuadrtico medio del conjunto de entrenamiento disminuye porque cada vez ajustamos mejor sus detalles particulares pero el error del conjunto de validacin aumenta porque al hacerlo la red pierde capacidad de generalizacin. El mtodo de validacin cruzada consiste entonces simplemente en detener el proceso de aprendizaje cuando se alcanza el valor mnimo del error correspondiente al conjunto de validacin y estimar dicho error mediante el conjunto de prueba. Para ser exactos, el mtodo de validacin cruzada consiste en dividir el conjunto de pares de entrada-salida en N grupos y realizar el entrenamiento con N 1 de ellos y la validacin con el N -simo. Como podemos dejar fuera del conjunto de entrenamiento a cualquiera de los N grupos, tendremos nalmente N redes neuronales distintas cuyos errores podremos promediar.

2.2.4. Tipos de error


En la seccin 2.1 hemos desarrollado el formalismo matemtico que describe el algoritmo de entrenamiento de una red neuronal de conectividad hacia delante (feedforward) mediante la retropropagacin del error cuadrtico dado por la frmula 2.5 pero, a pesar de que intuitivamente parece razonable, en ningn momento hemos razonado por qu se ha elegido esa forma de representar el error. Aqu nos proponemos justicar la utilizacin de esa frmula para medir el error cometido por la red en tareas de regresin y a proponer otras formas de medir el error ms adecuadas para tareas de clasicacin. Para ello necesitaremos introducir notacin probabilstica. En primer lugar, dado un conjunto de vectores de entrada a la red x llamaremos p(x) a la densidad de probabilidad correspondiente a ese conjunto. Ms importante es la denicin de p(t |x) que representa la probabilidad de obtener el conjunto de vectores de salida t dado el conjunto x. Este tipo de probabilidades condicionales describen adecuadamente sucesos dependientes, por ejemplo, la probabilidad de que una persona tenga ebre dado que padece malaria. Es sencillo ver que esa probabilidad es diferente (y mayor) que la probabilidad de que una persona tenga ebre sin saber nada ms de ella. En lo que sigue llamaremos a esta probabilidad condicionada, verosimilitud (likelihood en ingls). Finalmente, la densidad de probabilidad de tener al mismo tiempo los conjuntos x y t la designamos por p(x, t ) En este apartado queremos abordar el problema de cmo medir el error cometido por una red neuronal entrenada con un conjunto A compuesto de un conjunto de vectores de entrada x y otro de salida t . Una buena red neuronal ser aquella para la que la probabilidad condicionada p(t |x) sea alta porque eso querr decir que dados nuestros vectores de entrada, ser probable que obtengamos los vectores objetivo t o, lo que es equivalente, que obtendremos valores prximos a los deseados. A este principio se lo conoce como el de mxima verosimilitud y consiste en seleccionar la red neuronal que maximice p(t |x). Como los pares de entrenamiento de A no dependen los unos de los otros sino que son

46

Retropropagacin del error

casos independientes, podemos escribir la verosimilitud L como

L = p(t |x) = p(t [n]|x[n])


n=1

NA

(2.47)

y el objetivo del algoritmo de entrenamiento ser maximizar la verosimilitud, es decir, la probabilidad de obtener los vectores objetivo dadas las entradas correspondientes. En la prctica, es lo mismo maximizar la verosimilitud que minimizar el logaritmo negativo de dicha verosimilitud ( ln L ) pero lo segundo es ms sencillo y por eso es ms habitual encontrarselo en la bibliografa. En ese caso y dadas las propiedades de los logaritmosg tendramos que minimizar ln L = p(t [n]|x[n]).
n=1 NA

(2.48)

As pues, hemos llegado intuitivamente a la conclusin de que ln L es una medida del error de la red de manera que, cuanto menor es ln L mejor es la red neuronal a la hora de reproducir el conjunto de entrenamiento. Denamos entonces el error como E = ln L . En tareas de regresin como la representada grcamente en la gura 2.6, tenemos un conjunto de entrenamiento que suponemos que se origin a partir de una funcin (dibujada en trazo negro) pero a la que se le ha superpuesto ruido (por ejemplo porque no se ha medido con exactitud el valor). Es razonable esperar que para cada valor de la coordenada horizontal la probabilidad de encontrar los puntos del conjunto de entrenamiento sea mayor cuanto ms prximos estn al valor real de la funcin que los gener y que no tengamos puntos del conjunto de entrenamiento demasiado alejados de la curva negra continua. Matemticamente, eso se escribe como que p(t [n]|x[n]) = 1 22 exp( (y[n] t [n])2 ) 22 (2.49)

donde y[n] es el vector de salida de la red neuronal correspondiente del vector de entrada x[n] y es una variable que mide la dispersin de los ejemplos alrededor de la funcin que los gener. A la distribucin de probabilidad de la ecuacin 2.49 se la conoce como distribucin gaussiana. Pues bien, el lector puede comprobar que si sustituimos la ecuacin 2.49 en 2.48 obtenemos que 1 NA E = 2 (y[n] t [n])2 (2.50) 2 n=1 ms una serie de trminos constantes. Como nuestra intencin es minimizar el error, podemos prescindir de los trminos constantes y quedarnos con la ecuacin 2.50. As pues, hemos obtenido la frmula del error cuadrtico a partir del mtodo de mxima verosimilitud para el caso de una tarea de regresin en la que los ejemplos del conjunto de entrenamiento tienen una distribucin gaussiana alrededor de la funcin generatriz. Qu ocurre con los problemas de clasicacin? En las tareas de clasicacin no tiene sentido pensar en una distribucin gaussiana de los vectores objetivo. Un vector de
g En

este caso, que el logaritmo de un producto es la suma de los logaritmos de los factores.

2.2 Aspectos metodolgicos del entrenamiento de una red neuronal.

47

entrada pertenece a la clase C1 o a la C2 o a la C8 pero no a una clase C1,2 por que no existe tal cosa. As pues, necesitamos otra funcin de error que obtendremos tambin por el mismo procedimiento de maximizar la verosimilitud. De hecho, en muchas ocasiones se utiliza el error cuadrtico para entrenar redes de clasicacin a pesar de que como decimos no es el ms adecuado. La razn es que hacerlo simplica extraordinariamente los algoritmos de aprendizaje convirtindolos en problemas de optimizacin lineal mucho ms tratables en la implementacin. Supongamos que dado un vector x[n] del conjunto de entrenamiento A , codicamos la clase mediante una representacin 1-de-Ns . Volveremos sobre este tipo de codicaciones ms adelante, pero baste aqu decir que consiste en emplear tantas neuronas en la capa de salida como clases posibles haya en el esquema de clasicacin que queremos implementar de forma que si el vector de entrada x[n] pertenece a la clase C k el vector objetivo en el conjunto de entrenamiento t [n] tendr todas sus componentes nulas salvo la correspondiente a la neurona k que valdr 1. Si queremos emplear de nuevo la estrategia de maximizar la verosimilitud, necesitamos una ecuacin equivalente a 2.49 para redes neuronales clasicadoras, es decir, necesitamos una frmula para p(t [n]|x[n]). Nuestro objetivo es construir una red neuronal que dado un vector x[n] nos proporcione a la salida las probabilidades de que pertenezca a las clases A1 , A2 , ..., ANs . Es decir, queremos que yk = p(Ck |x[n]) lo que equivale a que p(t [n]|x[n]) = yk [n]tk [n] .
k=1 Ns

(2.51)

(2.52)

Una vez que hemos obtenido esta ecuacin podemos escribir el error como E = ln L =
NA Ns

n=1 k=1

tk [n] ln yk [n]

(2.53)

y ya hemos conseguido escribir una funcin de error apropiada para tareas de clasicacin. El proceso que nos ha llevado a obtener la frmula del error cuadrtico a partir del mtodo de mxima verosimilitud para el caso de una tarea de clasicacin parte de la exigencia de que los valores de salida de la red deben ser interpretables como probabilidades de pertenencia a las distintas clases (ver ecuacin 2.51). Ello implica que las neuronas de salida deben tener valores comprendidos entre 0 y 1 porque la probabilidad de un suceso (condicionada o no) no puede exceder ese rango. Por ello, en problemas de clasicacin se emplean neuronas softmax en la capa de salida. Las neuronas softmax tienen funciones de activacin derivadas de la funcin de activacin logstica pero convenientemente modicada para cumplir el requisito de que sus valores de salida estn comprendidos en el rango [0,1]. Su expresin matemtica en funcin de las sumas ponderadas ak de cada neurona de salida es yk = exp(ak ) Ns k =1 exp(ak ) (2.54)

Por supuesto, existen muchas otras deniciones del error que dan lugar a distintas soluciones cuando se emplean con el algoritmo de retropropagacin del error. Aqu

48

Retropropagacin del error

hemos mostrado slo dos (las ms populares) pero el lector puede explorar la bibliografa para descubrir diferentes aproximaciones a este tema y sus consecuencias prcticas para la red que resulta. En cualquier caso, la exigencia que hemos impuesto a nuestra denicin de error en el caso de la tarea de clasicacin, a saber, que los resultados de la red sean interpretables directamente como probabilidades condicionadas, es deseable en general. En [Bis95] se puede encontrar una justicacin terica y matemtica de las condiciones que debe cumplir una funcin de error para que sea as.

2.3.

Mejoras del algorimo

Retropropagacin momento

con

La descripcin del algoritmo hecha hasta aqu corresponde a una formulacin bsica sobre la que es posible, como se adelantaba en secciones anteriores, introducir variaciones que aumenten la eciencia del algoritmo. Estas variaciones tienen como objetivo mejorar el proceso de bsqueda de los mnimos de la funcin error E (). Recordemos que la estrategia descrita hasta ahora, denominada regla delta era un caso particular de descenso del gradiente y se resuma en la ecuacin 2.6. La primera variante del mtodo de retropropagacin del error que vamos a presentar se conoce como retropropagacin con momento o retropropagacin mejorada (Enhanced Backpropagation en ingls) [PNH86] y se basa en siguiente frmula de clculo de las actualizaciones de los pesos: E () (l ) (l 1) ji = + ji . (2.55) (l ) ji El segundo trmino de la derecha es lo que se conoce como momento y es un factor comprendido entre 0 y 1 que mide la importancia relativa de dicho trmino. Su efecto sobre el algoritmo es el siguiente: en aquellas regiones del espacio de pesos en que el gradiente sea constante la frmula anterior se puede reescribir como ji =
(l )

E ()
(l ) ji

+ ji

(l 1)

= (1 + )

E () ji
(l )

(2.56)

lo que implica que el trmino de momento ha supuesto un aumento efectivo del parmetro de aprendizaje en un factor (1 + ). En otras palabras, si el gradiente es constante en una regin del espacio aumentamos la velocidad de aprendizaje para atravesar rpido esa regin. Sin embargo, en las proximidades de un mnimo local, el gradiente cambia de signo y de valor absoluto como muestra la gura 1.7 y, por tanto el efecto neto del trmino de momento se cancela. Regla delta-barra-delta La segunda variante del algoritmo que vamos a tratar se conoce como regla deltabarra-delta (delta-bar-delta rule en ingls) [Jac88] e introduce como novedad la existencia de velocidades de aprendizaje dependientes del peso que se est ajustando. En lugar de un nico valor de para todos los pesos, ahora tendremos un conjunto de valores ji correspondiente al conjunto de pesos ji . Matemticamente, la regla de descenso del gradiente se transforma en ji = ji
(l ) (l )

E () ji
(l )

(2.57)

2.3 Mejoras del algorimo

49

de forma que, en regiones en que el gradiente respecto a un peso en particular tiene el mismo signo en pasos consecutivos, la velocidad de aprendizaje puede ser alta mientras que, por el contrario, en regiones en que el signo del gradiente oscila, la velocidad disminuye de valor y todo ello de forma independiente para cada peso.La implementacin prctica ha de dar una prescricin del modo en que se van a modicar las velocidades de apendizaje que podemos resumir as ji = donde q ji =
(l ) (l ) (l )

(l ) ji

si q ji si

(l 1) (l ) q ji (l 1) (l ) q ji q ji

>0 <0

(2.58)

E () ji
(l ) (l ) (l 1)

(2.59) . (2.60)

q ji = (1 ) q ji + q ji

El problema de esta variante es evidente: donde antes tenamos un parmetro () ahora tenemos tres (, y ). Si adems aadimos el trmino de momento, el nmero de parmetros pasa a cuatro lo cual puede convertirse en un serio inconveniente. Adems, es razonable pensar que los pesos no son independientes entre s, sino que existen correlaciones que ligan unos a otros con lo que las ventajas de esta variante no tiene por qu signicar una mejora drstica de las capacidades de la red. Quickpropagation o Quickprop [Fah88] es la tercera variante (tambin basada en la hiptesis de independencia de los pesos) que vamos a describir en este apartado. La frmula de actualizacin de los pesos en este mtodo es
(l +1) ji

Quickpropagation

q ji

(l )

(l 1) (l ) q ji q ji

ji

(l )

(2.61)

donde slo hemos hecho explcita la dependencia de E () con i j . El trmino E ( representa la dependencia del error con el resto de los pesos. La derivada de E () ser E () = 2 c2 ji + c1 i j

y su justicacin proviene de considerar que la funcin error dependiente de los pesos es, en primera aproximacin, una suma de parbolas. En ese caso, podemos escribir que E () = c2 2 (2.62) ji + c1 ji + c0 + E ( )

(2.63)

c1 de forma que, en el mnimo 2 c2 ji + c1 = 0 y, por lo tanto, ji = 2c2 . Ahora bien, existe una relacin entre c1 y c2 , y las derivadas de la funcin error puesto que

2 c2 =

2 E 2 ji

(2.64)

donde hemos omitido por claridad la dependencia de , y c1 = E 2 E (l ) 2 ji . i j ji (2.65)

50

Retropropagacin del error

Escribiendo las derivadas parciales en diferencias nitas tenemos que 2 c2 = y


E (l ) i j (l )

E (l 1) i j (l 1)

ji ji
(l )

q ji q ji ji
(l ) (l )

(l )

(l 1)

(2.66)

c1 = q ji y sustituyendo,
(l +1) ji (l +1) (l ) = ji ji

q ji q ji ji
(l )

(l )

(l 1)

ji

(2.67)

c1 (l ) ji = = 2c2
(l ) (l 1)

(q ji
(l )

(l )

q ji q ji (l ) ji
(l 1)

(l )

(l 1)

) ji (2.68)
(l )

q ji q ji (l ) ji (l )

q ji ji (q ji q ji

(l )

(l )

(l ) (l 1) (q ji q ji )

) ji

ji

(l )

(2.69) (2.70)

de donde se obtiene con facilidad la ecuacin 2.61. Resilient Backpropagation Finalmente, la ltima variante de retropropagacin del error que vamos a mencionar es la que se conoce como Resilient Backpropagation o Retropropagacin exible [RB93]. Consiste en reescribir la regla de actualizacin de los pesos reteniendo la informacin que porta signo del gradiente pero prescindiendo de su valor absoluto. Matemticamente, se expresa como (l ) E ji si >0 ji (l ) (l ) E ji = + ji si (2.71) <0 ji 0 si E = 0
ji

donde

De esta forma, en regiones donde el gradiente cambia lentamente, el signo de la modicacin se conserva respecto a la iteracin anterior y el valor absoluto se incrementa en un factor + , donde + es una constante ligeramente superior a 1. Un valor habitual suele estar entorno a 1,2. Por el contrario, en regiones en que el gradiente cambia de signo (es decir, cuando hemos atravesado un mnimo) el cambio en los pesos invierte el signo respecto a la iteracin anterior y disminuye su valor absoluto en un factor inferior a 1 (del orden de 0,5).

(l 1) + ji (l ) l 1) ji = + (ji (l 1) ji

si

si si

E (l 1) ji ( l 1 ) E ji E (l 1) ji

E (l ) >0 ji ( l 1) E <0 ji E (l ) = 0. ji

(2.72)

2.4.

La notacin matricial

En muchos textos que tratan el tema de las redes neuronales se extiende la notacin empleada hasta aqu con la introduccin del clculo matricial lo que permite resumir

2.4 La notacin matricial

51

el algoritmo de forma mucho ms compacta. Las ecuaciones ms importantes para la capa l -sima de la red seran, escritas en forma matricial, las siguientes:

(l )

a1 (l ) a2 ... (l ) aN

(l )

(l 1) (l 1) (l 1) (l 1) (l 1) (l 1) 21 y1 + 22 y2 + ... + 2Nl 1 yNl 1 = ... (l 1) (l 1) (l 1) (l 1) (l 1) (l 1) Nl 1 y1 + Nl 2 y2 + ... + Nl Nl 1 yNl 1

11

(l 1)

y1

(l 1)

+ 12

(l 1)

y2

(l 1)

+ ... + 1Nl 1 yNl 1

(l 1)

(l 1)

= (l 1) y(l 1) (2.1)

donde (l 1) es la matriz de pesos (de dimensiones Nl Nl 1 ) dada por (l 1) 21 (l 1) = ... (l 1) Nl 1 11


(l 1)

12

(l 1) (l 1) (l 1)

22

... 1Nl 1

(l 1)

Nl 2

(l 1) ... 2Nl 1 (l 1) ... Nl Nl 1

(2.73)

e y(l ) es el vector de salida de la capa l -sima. La matriz de pesos entre la capa de entrada (l = 1) y la primera capa oculta (l = 2), por ejemplo, tiene dimensiones No Ne , y la matriz de pesos entre la capa de oculta y la capa de salida, Ns No . y(l ) = g(a(l ) ) = g((l 1) y(l 1)) Ms an, se pueden denir los vectores (2.2)

y E () =

E () E ()
(l ) y1

(l ) y2 ... E ()
yN
(l ) l

(2.74)

de forma que, en el caso ms simple de un perceptrn de tres capas, las ecuaciones de actualizacin de los pesos de la capa oculta en forma matricial seran: (l 1) = (l 1) E () = [y(l ) E () donde dg (l ) (a )] (y(l 1))T d a(l ) (2.75)

es el producto Hadamardh de dos matrices e (y(l 1) )T es el vector de entradas

dos matrices Amn y Bmn , el producto de Hadamard se dene como la matriz Cmn tal que sus elementos ci j se obtienen como el producto de ai j y bi j .

h Dadas

52

Retropropagacin del error

traspuesto (puesto en forma de vector la). Finalmente, (l 1) E () sera


(l 1) 11

E ()

y, en el caso de funciones de activacin sigmoideas por ejemplo, g(a1 ) (1 g(a1)) g(a2 ) (1 g(a2)) dg (l ) (a ) = ( l ) ... da g(aNl ) (1 g(aNl ))

(l 1) E () =

E ()

(l 1) 12

E () E ()

... ... ... ...

(l 1) 1N l 1

E () E ()

21

(l 1)

22

(l 1)

2N

E () N 1 l

...

(l 1)

E () N 2 l

...

(l 1) l 1

(2.76)

(l 1)

E () N N l l 1
(l 1)

...

(2.77)

Captulo 3

Los mapas autoorganizados de Kohonen


Objetivo: El objetivo del presente mdulo es dar una introduccin a las redes autoorganizadas de Kohonen . La estructura de este mdulo consiste en una introduccin formal del algoritmo de actualizacin de los pesos en su versin ms sencilla, una seccin dedicada al signicado terico del algoritmo y, nalmente, una seccin dedicada a variantes del mtodo y su signicacin terica. Hay que aclarar aqu que slo vamos a tratar de mapas autoorganizados. El trmino ms general de red de Kohonen se puede referir a cualquiera de las arquitecturas y algoritmos desarrollados por el investigador en Neurocomputacin Teuvo Kohonen, por ejemplo, VQ (Vector Quantization en ingls), LVQ (Learning Vector Quantization en ingls) o los propios mapas auroorganizados.

3.1.

Introduccin. Algoritmos de agrupamiento en clases o clustering.

Uno de los problemas ms habituales en los que se emplean redes neuronales es el de la clasicacin no supervisada, que consiste en separar un conjunto de datos en clases sin ningn conocimiento adicional al margen de los propios datos. Este tipo de problemas aparecen con frecuencia en el mbito de la minera de datos con interesantes aplicaciones en el mbito empresarial. Un ejemplo sencillo sera el de una base de datos en la que se almacenan una serie de variables relativas a clientes de una empresa. La empresa podra querer agrupar los clientes en clases homogneas (perles) de forma que pudiera ofrecer a cada cliente productos adecuados al perl de su clase, en lugar de bombardearle con un gran nmero de ofertas entre las que se perderan las verdaderamente interesantes para el cliente. En lo que sigue, vamos a describir una serie de algoritmos competitivos de entrenamiento no supervisado. Se denominan competitivos porque, dado un vector de entradas, las neuronas de la red van a competir entre ellas de acuerdo con un cierto criterio, de forma que el vector de entradas ser asignado a la neurona que sea ms 53

54

Los mapas autoorganizados de Kohonen

adecuada de acuerdo con ese criterio. Se denominan no supervisados porque no conocemos a priori las clases ni qu vectores de entrada pertenecen a qu clases, sino que todo ello emerger como resultado del entrenamiento de la red. El primero de los mtodos no es estrictamente un mtodo conexionista pero se puede implementar con una red neuronal. Se trata de las medias-k (k-means en ingls) y su implementacin conexionista consiste en una red con una primera capa de neuronas de entrada seguida de una capa en la que cada neurona va ser interpretada como una clase. Por lo tanto, en la segunda capa habr que crear tantas neuronas como clases deseemos (esto es, se trata de una decisin previa a la construccin de la red). Supongamos para jar conceptos que tenemos una capa de entrada de M neuronas para la entrada de vectores x de M componentes x1 , x2 , ..., xM y supongamos tambin que la capa de clasicacin tiene Nc neuronas que representan las Nc clases en las que queremos agrupar los vectores de entradas. Cada neurona de la segunda capa recibe conexiones de todas las neuronas de la capa de entrada por lo que su vector de pesos tendr M componentes. Para cada vector x de entradas el algoritmo de las medias-k comienza por buscar la neurona j cuyo vector de pesos j se encuentre ms prximo al vector de entrada. Cmo se mide la proximidad de dos vectores? se es precisamente el criterio al que hacamos referencia anteriormente cuando explicbamos qu es un algoritmo competitivo. En general, la proximidad se mide deniendo primero una mtrica, es decir, una forma de medir distancias. Una forma sencilla y habitual de denir distancias es la eucldea, estudiada en los primeros cursos de matemtica elemental. En este caso, el vector de pesos ms prximo al vector de entrada ser el de la neurona j si el valor de x j = (x1 1 j )2 + (x2 2 j )2 + ... + (xM M j )2 (3.1)

es mnimo, donde x j es la distancia eucldea entre los dos vectores. Si los vectores de entrada x estn normalizadosa, la mtrica eucldea es equivalente a encontrar el vector que forma un ngulo mnimo con el vector de entrada. De esta forma, la neurona j cuyo vector de pesos se encuentra ms prximo al vector de entrada ser aqulla para la cual x j tenga el valor mximo, porque x j = x j cos = cos (3.2) y, por lo tanto, el producto escalar de dos vectores de longitud unidad es igual al coseno del ngulo que forman y ste es mximo cuando el ngulo es mnimo. Supongamos entonces que, dado el vector de entrada x a ste se le asigna la neurona ganadora j de acuerdo con el criterio de la distancia eucldea y supongamos tambin que a dicha neurona ya se le asignaron antes N vectores de entrada (si x es el primer vector que se le presenta a la red, entonces N = 0). Entonces, el nuevo vector de pesos +1 n vendr dado en funcin del valor anterior n i i por la frmula
+1 n = i

1 N n x i + N +1 N +1

(3.3)

que, como se puede comprobar, da como resultado nal de cada ciclo que los vectores i correspondan al valor medio de los vectores de entrada asignados a la neurona i. A
a Un

vector se normaliza a la unidad dividindolo por su mdulo.

3.1 Introduccin. Algoritmos de agrupamiento en clases o clustering.

55

medida que se modican los vectores i de las neuronas clasicadoras, la asignacin de los vectores de entrada puede variar y un vector x que inicialmente fuera asignado a la neurona i por la proximidad (en sentido euclideo) a su vector de pesos, puede posteriormente ser asignado a otra neurona como resultado de la modicacin de i por el algoritmo. Se puede demostrar que esta forma de modicar los pesos de la red asegura la convergencia a una clasicacin ptima si medimos el error de la clasicacin como la suma de los cuadrados de las diferencias entre los vectores de entrada y los vectores de pesos de sus neuronas ganadoras correspondientes. E=

n=1

(x[n] [n])2

NA

(3.4)

donde NA es el nmero de vectores de entrada que queremos agrupar en clases, x[n] es el vector n-simo de ese conjunto de NA vectores y [n] es el vector de pesos de la neurona ganadora correspondiente a x[n]. Ejemplo 1: Supongamos que queremos agrupar en dos clases los siguientes vectores de entrada: x1 20 110 x2 38 1000 x3 18 70 x4 15 70 x5 23 110 x6 39 1100 x7 42 900 x8 18 90 x9 35 1200 x10 40 1100

Los valores de la primera componente de cada vector podra ser la edad de un cliente de banco y la segunda los ingresos mensuales promedio del ltimo ao. Obviamente se puede deducir a simple vista que hay dos clases, una compuesta por mayores de 35 aos con ingresos superiores a 900 euros mensuales y otra de menores de 23 con ingresos inferiores a 110 euros mensuales. Si quisieramos agrupar en clases los 10 vectores de la tabla mediante una red neuronal que implementase las medias-k sta tendra que tener una arquitectura de dos neuronas en la capa de entrada (correspondientes a las dos componentes de cada vector de entrada) y dos neuronas en la capa de clasicacin (dado que queremos agrupar dichos vectores en slo dos clases). Inicializamos los pesos de las neuronas de la capa de clasicacin segn el mtodo ms habitual con los dos primeros vectores de entrada: Neurona 1 11 = 20 21 = 110 Neurona 2 12 = 38 22 = 1000 Presentamos a la red el primer vector de entrada y buscamos la neurona ganadora, calculando su distancia euclidea con los vectores de pesos. Respecto a la neurona 1 la distancia eucldea ser (20 20)2 + (110 110)2 = 0 y respecto a la neurona 2, (20 38)2 + (110 1000)2 = 890,2. Por lo tanto la neurona ganadora es la primera (como caba esperar dada la inicializacin de los pesos) y sus nuevos no cambian porque N = 0 en la ecuacin 3.3 (es el primer vector de entrada asignado a la neurona 1). Presentando el segundo vector de entrada, tendremos que respecto a la neurona 1 la distancia eucldea ser (38 20)2 + (1000 110)2 = 890,2 y respecto a la neurona 2, 0 (de nuevo como caba esperar). Por lo tanto la neurona ganadora es, en esta

56

Los mapas autoorganizados de Kohonen

ocasin la segunda y sus nuevos pesos tampoco cambian porque N = 0 en la ecuacin 3.3 (es el primer vector de entrada asignado a la neurona 2). Presentando el tercer vector de entrada, tendremos que respecto a la neurona 1 la distancia eucldea ser (18 20)2 + (70 110)2 = 40,0 y respecto a la neurona 2, (18 38)2 + (70 1000)2 = 1030,2. Por lo tanto la neurona ganadora es la primera y sus nuevos pesos se calculan segn la ecuacin 3.3

1 1 1 11 = 1 2 20 + 2 18 = 19 21 = 2 110 + 2 70 = 90

Si repetimos el proceso para todos los vectores de entrada iramos obteniendo los siguientes valores de los pesos: Vector de entrada x1 x2 x3 x4 x5 x6 x7 x8 x9 x1 0 Neurona ganadora 1 2 1 1 1 2 2 1 2 2 11 20 10 19 17.7 19.0 19.0 19.0 18.8 18.8 18.8 21 110 110 90 83.3 90.0 90.0 90.0 90.0 90.0 90.0 12 38 38 38 38 38 38.5 39.7 39.7 38.5 38.8 22 1000 1000 1000 1000 1000 1050 1000 1000 1050 1060

que, como se puede comprobar, coincide con las medias de los vectores de entrada para cada clase. Repetimos el proceso hasta que un nuevo ciclo de actualizaciones no vare los pesos ms all de un margen prejado. Otra forma sencilla de realizar la clasicacin no supervisada con algoritmos competitivos es la denominada de Cuanticacin de Vectores (o Vector Quantization en ingls) diseada por Teuvo Kohonen. Es muy similar a la de las medias-k pero la ecuacin de actualizacin de los pesos no depende de N (el nmero de vectores de entrada previamente asignados a la neurona ganadora) sino de una velocidad de aprendizaje elegida a priori:

+1 i = n n i = (x i ) i

(3.5)

o lo que es lo mismo
n+1 i = (1 ) n i +x

(3.6)

En este caso, modicamos el peso de la neurona ganadora haciendo que se aproxime ms al vector de entrada porque le sumamos una fraccin del vector diferencia entre el vector de entrada y el vector de pesos de la neurona ganadora (x i ).

3.2 Los mapas autoorganizados de Kohonen. El algoritmo.

57

3.2.

Los mapas autoorganizados de Kohonen. El algoritmo.

Una red autoorganizada de Kohonen consta de dos capas: la primera pasiva que slo recibe las entradas y las transmite sin procesar a todas las neuronas de la siguiente capa y, la segunda que habitualmente tiene dos dimensiones y que es la responsable del procesamiento de las entradas de acuerdo con el algoritmo que describimos a continuacin. Sea x el vector de Ne componentes compuesto por las entradas a la red neuronal. Cada neurona de la segunda capa estar conectada con todas la neuronas de la capa de entrada. Llamemos ji al peso de la sinapsis que realiza la neurona i de la primera capa con la neurona j de la segunda. Por lo tanto, la neurona j tendr un vector de pesos de Ne componentes dado por j compuesto por ji con i = 1, 2, ..., Ne . Para cada vector x de entrada, el algoritmo comienza por buscar la neurona j cuyo vector de pesos j se encuentre ms prximo al vector de entrada. Supongamos, como en la seccin anterior, que escogemos la distancia eucldea como mtrica con la que seleccionar la neurona con el vector de pesos ms prximo al vector de entrada. Llamemos a esa neurona, neurona ganadora. Una vez hallada, el algoritmo va a modicar sus pesos y los de las neuronas que se encuentren prximas a ella (en su vecindad). sta es una diferencia importante respecto al mtodo de retropropagacin del error en el que todos los pesos de todas las capas son modicados simultneamente. Aqu slo se modican los vectores de pesos de la neurona ganadora y los de las que se encuentran en sus alrededores. En los mapas autoorganizados, cada vector de entrada dene una neurona ganadora cuyos pesos sern modicados as como los de las neuronas de su vecindad y sta es la diferencia fundamental respecto a los algoritmos de agrupamiento en clases vistos en la seccin anterior. Una vez introducidos todos los vectores de entrada, se procede a repetir el ciclo hasta que la presentacin de los vectores de entrada no produzca cambios apreciables en la topologa de la red (es decir, en los valores de los pesos). Como se ha mencionado antes, los trminos proximidad o alrededores implican la denicin de una forma de medir distancias (una mtrica). En prrafos anteriores, el concepto proximidad estaba relacionado con un espacio de vectores: se trataba de dar respuesta a la cuestin de cmo elegir el vector de pesos ms prximo al vector de entrada. En este caso, nuestro espacio es la segunda capa de la red, que hemos supuesto bidimensional. Dada una neurona de esa capa (la neurona ganadora) cuyos pesos vamos a modicar, se plantea la cuestin de hasta dnde se extender su inuencia o, dicho de otro modo, qu neuronas de sus alrededores vern tambin sus pesos modicados y en qu medida. Si llamamos j a la vecindad de la neurona j , podemos denir j como el conjunto de las neuronas que se encuentran a una distancia menor o igual a dmax . Como vemos, al tratar el tema de la proximidad inmediatamente aparece el concepto distancia. De nuevo, podemos decir que existen muchas formas de denir la distancia, pero aqu, por simplicidad, vamos a recurrir de nuevo a la distancia eucldea. Para ello, denamos el vector posicin de una neurona de la segunda capa de un mapa de Kohonen ru,v como el vector de componentes (u, v) donde u y v son las coordenadas la y columna de la neurona en la segunda capa que hemos supuesto bidimensional. Por ejemplo, la segunda neurona de la segunda la del mapa tendr como vector posicin r22 = (2, 2) y la quinta neurona de la sexta la, r65 = (6, 5). De

58

Los mapas autoorganizados de Kohonen

2 4 2 6

Figura 3.1: Distancias eucldea y de Manhattan para las posiciones u = 2, v = 2 y u = 6, v = 5. acuerdo con la denicin de distancia eucldea r65 r22 = (6 2)2 + (5 2)2 = 5 (3.7)

Otra mtrica que podramos haber utilizado es la distancia de Manhattan que se dene como la suma de los valores absolutos de las diferencias en cada coordenada. Para dos vectores x = (x1 , x2 , ..., xn ) e y = (y1 , y2 , ..., yn ) de n componentes tenemos dManhattan = x y
Manhattan

= |xi yi | = |x1 y1 | + |x2 y2 | + ... + |xn yn | (3.8)


i=1

En el ejemplo anterior, la distancia de Manhattan entre r22 y r6,5 sera |2 6| + |2 5| = 4 + 3 = 7. La distancia de Manhattan es siempre mayor o igual a la distancia eucldea que, en dos dimensiones corresponde a la distancia ms corta entre dos puntos, como se puede comprobar en la gura 3.1. Emplearemos la mtrica de Manhattan en alguno de los ejemplos que se incluyen al nal de este captulo. Sin embargo en lo que sigue seguiremos empleando la distancia eucldea para medir proximidades. Una vez denida la vecindad, vamos a estudiar cmo modicar los pesos de la conexiones. La frmula ms simple de actualizacin de los pesos de la neurona ganadora y de las que se encuentran prximas a ella es: i = (x i ) (3.9)

donde i es un subndice que representa a la neurona ganadora y al conjunto de neuronas prximas a ella. en esta versin simplicada es, como en el captulo anterior, una constante que regula la magnitud del cambio en los pesos (la velocidad de aprendizaje). Si deseamos que la actualizacin se realice sin cambios bruscos daremos a un valor pequeo, prximo a cero. Como veremos ms adelante, no suele ser constante sino que depende del ciclo de actualizacin en el que nos encontramos y de la proximidad a la neurona ganadora. Por lo general, ser mayor durante los primeros ciclos de actualizacin e ir disminuyendo a medida que el proceso avance. Asimismo, para un ciclo dado, toma valores altos y positivos para la neurona ganadora y para

3.2 Los mapas autoorganizados de Kohonen. El algoritmo.

59

1 0.8 0.6 0.4 0.2 0 u v

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0

Figura 3.2: Forma del kernel gaussiano dado por la ecuacin 3.12 para n = 1, 0 (1) = 1,0 y (1) = 3 neuronas en su vecindad inmediata y va disminuyendo a medida que nos alejamos de ella pudiendo incluso llegar a ser negativa. Puesto que las neuronas alejadas de la ganadora no experimentan ningn cambio en los pesos, podemos resumir el algoritmo con la ecuacin i = (x i ) si i j 0 si i / j (3.10)

donde j representa la vecindad de la neurona j. El primer renamiento posible ya ha sido sugerido en la seccin anterior. Consiste en modicar para que, en lugar de ser constante, dependa del ciclo de actualizacin. Por ejemplo, podramos denir (n) como 1 n , donde n representa el ciclo en el que se va a realizar la actualizacin. O, de forma ms general, como A B+n (3.11)

con A y B constantes. Con esta denicin, la modicacin de los pesos, que ser la misma para la neurona ganadora y para cualquiera de las que estn en su vecindad, ir disminuyendo a medida que se vayan completando ciclos de actualizacin. Hay otras deniciones funcionales posibles y su adecuacin slo puede ser evaluada experimentalmente. La nica restriccin que impone el mtodo sobre la denicin funcional es que (n) ha de ser una funcin denida positiva y montonamente decreciente. El segundo renamiento posible consiste en hacer dependiente de la distancia a

60

Los mapas autoorganizados de Kohonen

1 0.8 0.6 0.4 0.2 0 u v

0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0

Figura 3.3: Forma del kernel gaussiano dado por la ecuacin 3.12 para n = 10, 0 (10) = 0,8 y (10) = 2 la neurona ganadora. Una opcin habitual en este caso es la eleccin de una forma funcional gaussiana como ruv rug vg 22 (n)
2

(n, ruv rug vg ) = 0 (n) exp(

(3.12)

donde rug vg es el vector posicin de la neurona ganadora, 0 (n), la velocidad de aprendizaje, es una funcin montona decreciente (como 1 n o la denida por la ecuacin 3.11) que har disminuir el valor de (n, ruv rug vg ) a medida que se vayan completando ciclos y (n) tambin es una funcin montona decreciente que hace que el radio dentro del cual la actualizacin de los pesos es signicativa (en relacin con la actualizacin de los pesos de la neurona ganadora) tambin disminuya a medida que avanzamos ciclos. Las guras 3.2-3.4 proporcionan una intuicin visual de la forma de (n, r uv rug vg ) dada por la ecuacin 3.12 y de su evolucin con el paso de los ciclos . Podemos comprobar cmo, a medida que avanzan los ciclos, el mximo del kernel gaussiano disminuye debido a la funcinb 0 y el radio del kernel (que mide el tamao de la regin de inuencia) tambin disminuye al disminuir (n).

b que,

en este caso vendra dada por la ecuacin 0 (n) = 36 35 + n (3.13)

3.2 Los mapas autoorganizados de Kohonen. El algoritmo.

61

1 0.8 0.6 0.4 0.2 0 u v

0.6 0.5 0.4 0.3 0.2 0.1 0

Figura 3.4: Forma del kernel gaussiano dado por la ecuacin 3.12 para n = 25, 0 (25) = 0,6 y (25) = 1

Ejemplo 2: Autoorganizacin en una dimensin Se desea crear un mapa autoorganizado en una sola dimensin de diez componentes a partir del conjunto de vectores del cuadro 3.1 suponiendo que la vecindad de la neurona ganadora est compuesta en todos los ciclos de actualizacin de pesos por todas aquellas neuronas que se encuentran a una distancia de manhattan igual a uno (lo que para este mapa unidimensional representa las neuronas inmediatamente a la derecha o izquierda de la ganadora) y que la velocidad de aprendizaje es constante e igual a 1 para la neurona ganadora y 0.5 para el resto de neuronas en su vecindad. Supngase asimismo que en cada ciclo los vectores se presenta a la red de forma aleatoria. Si representamos los vectores bidimensionales de entrada como puntos del plano obtendremos la grca de la gura 3.2. Dadas las caractersticas del mapa, la red neuronal estar compuesta por una capa de entrada con dos neuronas (puesto que los vectores de entrada tienen dos componentes) y una capa de clasicacin de diez neuronas. Cada vector de entrada, al nal del proceso de entrenamiento activar la neurona cuyo vector de pesos se encuentre ms prximo al vector de entrada y, dadas las caractersticas de los mapas de Kohonen, esperamos que vectores prximos en el espacio de entradas activen neuronas prximas en la capa de clasicacin. Para inicializar la red vamos a asignar a todos los pesos de la capa de clasicacin el valor 0,5.Por lo tanto, si representamos los vectores de pesos en una grca, obtendremos un nico punto situado en las coordenadas (0,5, 0,5). Podramos haberles asignado valores aleatorios en el intervalo [1, 1] o en el intervalo [0, 1] y el resultado nal no habra sido diferente, pero entonces la grca inicial de los pesos mostrara, no un nico punto, sino 10 puntos distribuidos por el intervalo elegido.

62

Los mapas autoorganizados de Kohonen

x1 0 1.0000 x11 0.1580 0.9874 x21 0.3120 0.9501 x31 0.4582 0.8888 x41 0.5929 0.8053 x51 0.7127 0.7015 x61 0.8146 0.5801 x71 0.8960 0.4441 x81 0.9549 0.2969 x91 0.9898 0.1423

x2 0.0159 0.9999 x12 0.1736 0.9848 x22 0.3271 0.9450 x32 0.4723 0.8815 x42 0.6056 0.7958 x52 0.7237 0.6901 x62 0.8237 0.5671 x72 0.9029 0.4298 x82 0.9595 0.2817 x92 0.9920 0.1266

x3 0.0317 0.9995 x13 0.1893 0.9819 x23 0.3420 0.9397 x33 0.4862 0.8738 x43 0.6182 0.7861 x53 0.7346 0.6785 x63 0.8326 0.5539 x73 0.9096 0.4154 x83 0.9638 0.2665 x93 0.9938 0.1108

x4 0.0476 0.9989 x14 0.2048 0.9788 x24 0.3569 0.9341 x34 0.5000 0.8660 x44 0.6306 0.7761 x54 0.7453 0.6668 x64 0.8413 0.5406 x74 0.9161 0.4009 x84 0.9679 0.2511 x94 0.9955 0.0951

x5 0.0634 0.9980 x15 0.2203 0.9754 x25 0.3717 0.9284 x35 0.5137 0.8580 x45 0.6428 0.7660 x55 0.7557 0.6549 x65 0.8497 0.5272 x75 0.9224 0.3863 x85 0.9718 0.2358 x95 0.9969 0.0792

x6 0.0792 0.9969 x16 0.2358 0.9718 x26 0.3863 0.9224 x36 0.5272 0.8497 x46 0.6549 0.7557 x56 0.7660 0.6428 x66 0.8580 0.5137 x76 0.9284 0.3717 x86 0.9754 0.2203 x96 0.9980 0.0634

x7 0.0951 0.9955 x17 0.2511 0.9679 x27 0.4009 0.9161 x37 0.5406 0.8413 x47 0.6668 0.7453 x57 0.7761 0.6306 x67 0.8660 0.5000 x77 0.9341 0.3569 x87 0.9788 0.2048 x97 0.9989 0.0476

x8 0.1108 0.9938 x18 0.2665 0.9638 x28 0.4154 0.9096 x38 0.5539 0.8326 x48 0.6785 0.7346 x58 0.7861 0.6182 x68 0.8738 0.4862 x78 0.9397 0.3420 x88 0.9819 0.1893 x98 0.9995 0.0317

x9 0.1266 0.9920 x19 0.2817 0.9595 x29 0.4298 0.9029 x39 0.5671 0.8237 x49 0.6901 0.7237 x59 0.7958 0.6056 x69 0.8815 0.4723 x79 0.9450 0.3271 x89 0.9848 0.1736 x99 0.9999 0.0159

x10 0.1423 0.9898 x20 0.2969 0.9549 x30 0.4441 0.8960 x40 0.5801 0.8146 x50 0.7015 0.7127 x60 0.8053 0.5929 x70 0.8888 0.4582 x80 0.9501 0.3120 x90 0.9874 0.1580 x100 1.0000 0.0000

Cuadro 3.1: Conjunto de entrenamiento del enunciado.

Comenzamos a ejecutar el algoritmo de creacin del mapa introduciendo un vector (seleccionado aleatoriamente de entre los que componen la tabla 3.1) en la capa de entrada. Cualquiera que sea el vector seleccionado, tendremos que las activaciones de la capa de salida sern todas iguales porque todos los vectores de pesos son iguales y, por lo tanto, no hay neurona ganadora (todas estn igualmente prximas al vector de entrada). Supongamos que el vector seleccionado es el primero de la tabla. Entonces, la distancia eucldea entre ese vector y el vector de pesos de cualquier neurona de la capa de clasicacin ser

d=

(x1 j1)2 + (x2 j2 )2 =

(1,0 0,5)2 + (0,0 0,5)2 = 0,7071 (3.14)

Para este caso (inhabitual porque se suelen inicializar los pesos de forma aleatoria) en el que hay ms de una neurona ganadora (en este caso todas son ganadoras) el

3.2 Los mapas autoorganizados de Kohonen. El algoritmo.

63

1 0.8 0.6 x2 0.4 0.2 0

0.2

0.4 x1

0.6

0.8

Figura 3.5: Conjunto inicial de entrenamiento del mapa unidimensional. algoritmo considera ganadora a la primera neurona segn su ordenacin espacial. La actualizacin de los pesos de la neurona ganadora y su vecindad ser segn la ecuacin 3.10

21 = (x1 21) = 0,5 (0,0 0,5) = 0,25

11 = (x1 11 ) = 1,0 (0,0 0,5) = 0,5

22 = (x2 22 ) = 0,5 (1,0 0,5) = 0,25

12 = (x2 12 ) = 1,0 (1,0 0,5) = 0,5

donde la nica neurona en la vecindad de la ganadora es la segunda neurona de la capa de clasicacin. Cualquier otra neurona de esa capa se encuentra a una distancia de Manhattan superior a 1. Los pesos de las neuronas del mapa unidimensional tendrn entonces los siguientes pesos: 1 0 1.0 2 0.25 0.75 3 0.5 0.5 4 0.5 0.5 5 0.5 0.5 6 0.5 0.5 7 0.5 0.5 8 0.5 0.5 9 0.5 0.5 10 0.5 0.5

A continuacin se introduce en la red un nuevo vector extraido aleatoriamente de la tabla. Supongamos que ese vector es el nmero 17 de componentes (0.2511,0.9679). Entonces la distancia al vector de pesos de la primera neurona clasicadora ser

d=

(x1 j1 )2 + (x2 j2 )2 =

(0,2511 0,0)2 + (0,9679 1,0)2 = 0,2531 (3.15)

64

Los mapas autoorganizados de Kohonen

y el resto de distancias se encuentran resumidas en el cuadro 3.2. 1 0.25 2 0.22 3 0.53 4 0.53 5 0.53 6 0.53 7 0.53 8 0.53 9 0.53 10 0.53

Cuadro 3.2: Distancias del vector de entrada 17 a los distintos vectores de pesos. Vemos que la neurona cuyo vector de pesos est ms prximo al vector de entrada es la segunda y que su vecindario comprende a la primera y tercera neuronas (todas ellas sealadas en la tabla con un fondo distinto).Si volvemos a aplicar el algoritmo de actualizacin de pesos obtendremos 11 = (x1 11 ) = 0,5 (0,25 0,0) = 0,125 12 = (x2 12 ) = 0,5 (0,97 1,0) = 0,015 21 = (x1 21 ) = 1,0 (0,25 0,25) = 0,00 22 = (x2 22 ) = 1,0 (0,97 0,75) = 0,22 31 = (x1 31 ) = 0,5 (0,25 0,5) = 0,25 32 = (x2 32 ) = 0,5 (0,97 0,5) = 0,225 donde recordamos que el valor de depende de la proximidad a la neurona ganadora y vale 1 para dicha neurona, 0,5 para neuronas a una distancia de Manhattan igual a uno y 0 para el resto (que por lo tanto no se actualizan). 1 0.125 0.985 2 0.25 0.97 3 0.25 0.725 4 0.5 0.5 5 0.5 0.5 6 0.5 0.5 7 0.5 0.5 8 0.5 0.5 9 0.5 0.5 10 0.5 0.5

Cuadro 3.3: Valor de los pesos tras la presentacin de un nuevo vector de entrada a la red. Los pesos que obtendramos como resultado de esta actualizacin se recogen en el cuadro 3.3.Tnganse en cuenta las posibles discrepancias debidas al redondeo. El proceso continua hasta calcular las actualizaciones de los vectores de pesos correspondiente a los 98 vectores de entrada restantes, lo que completa el primer ciclo o poca. Tras la realizacin de 100, 200 y 500 ciclos, los 10 vectores de pesos, que inicialmente eran iguales (0,5, 0,5), tendrn valores distribuidos segn la gura 3.6.Vemos que efectivamente, la capa de clasicacin ha distribuido sus pesos por todo el espacio de entrada y, dado que los vectores de entrada se repartan uniformemente por dicho espacio, los vectores de pesos se distribuyen asimismo de forma casi uniforme. Vemos tambin que vectores de entrada prximos van a activar neuronas ganadoras prximas entre s en la capa de clasicacin.

3.2 Los mapas autoorganizados de Kohonen. El algoritmo.

65

1 0.8 2 0.6 0.4 0.2 0 100 ciclos 0 0.2 0.4 0.6 0.8 1 1 200 ciclos 0 0.2 0.4 0.6 0.8 1 1 500 ciclos 0 0.2 0.4 0.6 0.8 1 1

Figura 3.6: Evolucin de los vectores de pesos de las 10 neuronas del mapa unidimensional del ejemplo. Ejemplo 3: Como ampliacin del ejemplo anterior vamos a considerar la creacin de un mapa bidimensional de dimensiones 5 6 (30 neuronas en total, ver gura 3.7) a partir del conjunto de 200 vectores de entrada representado en la gura 3.8. Tendremos por lo tanto treinta vectores de pesos (uno para cada neurona del mapa) de dos componentes cada uno (una para cada componente del vector de entrada). Supondremos, como en el caso anterior, que los treinta vectores han sido inicializados con el mismo valor de sus componentes. Sean estos valores 0,0017 y 0,0084 por ejemplo (valores obtenidos aleatoriamente)c. Vamos a introducir tambin un valor de dependiente del ciclo y de la distancia eucldea a la neurona ganadora. Para calcular el valor de en el ciclo n de la neurona que ocupa la la u y columna v cuando la introduccin de un vector de entrada ha dado lugar a que la neurona que se encuentra en la la ug y columna vg fuera la neurona ganadora, tenemos (n, ruv rug vg ) = ruv rug vg 1 exp( 2+n 2((n))2
2

(3.16)

donde, recordando la notacin empleada anteriormente, r ug vg es el vector posicin en la capa bidimensional de clasicacin de la neurona ganadora, r uv rug vg es la distancia entre la neurona cuyos pesos vamos a actualizar y la neurona ganadora, la velocidad de aprendizaje durante el ciclo de actualizaciones n viene dada por 0 (n) = 1 2+n y (n) est relacionada con la anchura de la distribucin gaussiana durante el ciclo n y viene dada por 1 n. No vamos a listar los 200 vectores de entrenamiento como hicimos en el ejemplo anterior por motivos de espacio. Baste para ilustrar los primeros pasos del clculo enumerar tres vectores x1 = (0,5, 0,57), x2 = (0,0, 0,43) y x3 = (0,42, 0,5) de los 200 que forman el conjunto de entrenamiento a partir del cual vamos a crear el mapa.
ya comentamos en el ejemplo anterior, lo habitual es inicializar los vectores de pesos con valores aleatorios y diferentes entre s. Aqu mantendremos la igualdad inicial por motivos de sencillez de clculo
c Como

66

Los mapas autoorganizados de Kohonen

Figura 3.7: Arquitectura del mapa autoorganizado bidimensional del ejemplo. Vamos a suponer que estos tres vectores han sido los tres primeros seleccionados aleatoriamente de la muestra. A partir de todos estos datos, vamos a iniciar el proceso de actualizacin de los pesos (que, como hemos visto, inicialmente son iguales para todas las neuronas de la capa de clasicacin). Para el primer ciclo (n = 1) y el primer vector de entrada x1 = (0,5, 0,57) tendremos que todas las neuronas se encuentran a la misma distancia puesto que todos sus vectores de pesos son iguales: x1 uv = (0,5 + 0,0017)2 + (0,57 + 0,0084)2 = 0,7508 (3.17)

Siguiendo el mismo criterio que en el ejemplo anterior, en el caso de que los vectores de pesos de dos o ms neuronas se encuentren a la misma distancia del vector de entrada consideraremos neurona ganadora a la primera en orden topolgico (la que se encuentre en la la ms prxima a la primera y, en caso de que dos neuronas de la misma la se encuentren a la misma distancia, la que se encuentre en la columna ms prxima a la primera). En nuestro caso se trata de la que se encuentra en la primera la y primera columna. Por lo tanto, rug vg = r11 ug vg = (x ug vg ) = 1 r11 r11 exp( 3 2 (1)2
2

) (x ug vg )

(3.18)

La ecuacin vectorial anterior se descompone en dos, una para cada componente de ug vg ug vg 1 = 1 1,0 (0,5 + 0,0017) = 0,1661 3 1 ug vg 2 = 1,0 (0,57 + 0,0084) = 0,1872 3

3.2 Los mapas autoorganizados de Kohonen. El algoritmo.

67

1.00

0.50

0.00

-0.50

-1.00 -1.00

-0.50

0.00

0.50

1.00

Figura 3.8: Conjunto de entrenamiento para el ejemplo de mapa bidimensional autoorganizado.

y, por lo tanto, los nuevos valores de 11 sern 111 = 0,0017 0,1661 = 0,1678

112 = 0,0084 0,1872 = 0,1956

Como vemos, el nuevo vector de pesos se ha aproximado al vector entrada pero no coincide con l debido a que 0 tiene un valor inicial menor que 1. Una vez actualizada la neurona ganadora resta calcular los cambios en los vectores de pesos de las neuronas de su vecindad. Empezamos por las neuronas que se encuentran a una distancia de Manhattan igual a 1. Para la neurona de coordenadas r12 tendremos 121 (1, 1) (1, 2) 2 1 exp( ) (0,5 + 0,0017) 3 2 (1,0)2 1 0,6065 (0,5 + 0,0017) = 0,1007 3 (1, 1) (1, 2) 2 1 exp( ) (0,57 + 0,0084) 3 2 (1,0)2 1 0,6065 (0,57 + 0,0084) = 0,1135 3

= =

122

= =

y por lo tanto 121 = 0,0017 0,1007 = 0,1024 122 = 0,0084 0,1135 = 0,1219

68

Los mapas autoorganizados de Kohonen

Para la neurona de coordenadas r21 tendremos 211 = = 212 = = y por lo tanto 211 = 0,0017 0,1007 = 0,1024 212 = 0,0084 0,1135 = 0,1219 1 (1, 1) (2, 1) 2 exp( ) (0,5 + 0,0017) 3 2 (1,0)2 1 0,6065 (0,5 + 0,0017) = 0,1007 3 1 (1, 1) (2, 1) 2 exp( ) (0,57 + 0,0084) 3 2 (1,0)2 1 0,6065 (0,57 + 0,0084) = 0,1135 3

A continuacin, actualizamos los vectores de pesos de las neuronas que se encuentran a una distancia de Manhattan igual a 2: r13 , r22 y r31 . Para r13 tenemos 131 = = 132 = = y por lo tanto 131 = 0,0017 0,0225 = 0,0242 132 = 0,0084 0,0253 = 0,0337 (1, 1) (1, 3) 2 1 exp( ) (0,5 + 0,0017) 3 2 (1,0)2 1 0,1353 (0,5 + 0,0017) = 0,0225 3 (1, 1) (1, 3) 2 1 exp( ) (0,57 + 0,0084) 3 2 (1,0)2 1 0,1353 (0,57 + 0,0084) = 0,0253 3

Con estos clculos damos por terminado el ejemplo puesto que no resta ya ms que repetir el procedimiento iniciado hasta aqu. A medida que vayamos considerando neuronas a mayores distancias de la ganadora, el factor exponencial de ser cada vez menor hasta llegar a un punto en que haga despreciable el valor de con lo que vemos efectivamente que no hace falta denir explcitamente la vecindad de una neurona. En el segundo ciclo n = 2 habr que tener en cuenta que 0 (2) = 1 4 = 0,25 1 y que (2) = 2 = 0,5 con lo que los valores de sern una fraccin todava menor de x .

Simulacin sugerida:
A continuacin recomendamos la realizacin de la siguiente prctica con el applet java incluido en la pgina web http://www.ia.uned.e s/a sig nat ura s/s bc2 /ap ple ts/ som/som.php . La descripcin de la prctica que haremos aqu es exactamente igual de vlida para su realizacin con JavaNNS o SOM_PAK tras el estudio del captulo 4, aunque en ese caso la denicin de los vectores de entrada tendr que ser mediante un editor de texto y no interactivamente como en el applet.

3.2 Los mapas autoorganizados de Kohonen. El algoritmo.

69

1. En primer lugar, cree puntos en el espacio de entrada con el botn izquierdo del ratn. Hgalo de forma que los puntos se agrupen en tres o cuatro regiones pequeas con 5 o 10 puntos. Inicialice los pesos de la red aleatoriamente y comience el entrenamiento de la red. Reduzca progresiva y alternativamente el radio de la vecindad y la velocidad de aprendizaje hasta que los cambios sean inapreciables. 2. Podra explicar por qu se agrupan los vectores de pesos en las mismas zonas que los vectores de entradas? Qu ocurre cuando disminuye el radio de la vecindad? Y cuando disminuye la velocidad de aprendizaje? Pasee el curso por distintas regiones intermedias del espacio de entrada y anote dnde se encuentran las neuronas ganadoras para esos puntos y sus activaciones Podra describir la relacin nal entre los vectores de entrada, los vectores de pesos y la posicin en el mapa de cada neurona ganadora? 3. Repita el proceso pero introduciendo como datos de entrada puntos que formen una curva como la del ejemplo 2. Qu ocurre ahora? Es una buena idea hacer mapas bidimensionales en este caso? Por qu? 4. Repita de nuevo el proceso pero introduciendo como datos de entrada puntos que se distribuyan uniformemente en el espacio de entrada como en el ejemplo del mapa bidimensional. Qu ocurre ahora? Es una buena idea hacer mapas bidimensionales en este caso? Por qu? 5. Intente ahora representar una agrupacin de datos ms compleja como, por ejemplo, una elipse con un grupo de puntos en su centro. Cmo representa la red el espacio de entradas? Por qu en unos casos lo hace mejor que en otros? Recuerde que la utilidad de los mapas de Kohonen es representar espacios de entrada de alta dimensin en mapas de una o dos dimensiones.

70

Los mapas autoorganizados de Kohonen

Captulo 4

Herramientas de ayuda en el desarrollo de redes neuronales


Objetivo: En este tema vamos a explicar la diferencia entre las redes neuronales articiales, tal y como fueron concebidas en un principio, y sus realizaciones prcticas ms habituales. Como veremos, stas pierden algunas de las ventajas y propiedades que les conferan sus deniciones iniciales a cambio de una mayor exibilidad, al ser simuladas mediante ordenadores secuenciales Von Neumann. Aprenderemos el manejo de un programa de simulacin de redes neuronales de libre distribucin y su utlizacin en aplicaciones prcticas. Asimismo, veremos de forma supercial algunos tipos de neurosimuladores que abarcan otras reas de la neurocomputacin ms alejadas de las aplicaciones prcticas y los aspectos ms bsicos de las implementaciones fsicas.

4.1.

Concepto de simulador de redes neuronales

En captulos anteriores hemos repasado y analizado los componentes bsicos de una red neuronal y disponemos ya de una batera conceptual que nos permitir abordar aspectos prcticos de la implementacin de redes neuronales y de algoritmos de aprendizaje tanto supervisados como no supervisados de los parmetros de una red neuronal (los pesos y polarizaciones). Aqu, pretendemos acercar al alumno a una herramienta particular de ayuda al desarrollo de redes neuronales con la que le resultar sencillo aplicar los conocimiento tericos que se abordan en los siguientes captulos a ejemplos concretos y sencillos que se le irn presentando. El nombre de dicha herramiento es JavaNNS, heredera de SNNS (Stuttgart Neural Network Simulator). En realidad, ambos slo se diferencian en la interfaz grca, puesto que el ncleo del sistema, escrito en lenguaje c, es el mismo. Como su propio nombre indica, se trata de un simulador de redes neuronales desarrollado inicialmente en la Universidad de Stuttgart. En ocasiones, a este tipo de herramientas de ayuda al desarrollo de redes neuronales se las conoce como neurosimuladores, aunque para hablar con propiedad, un neurosimulador es una cosa muy distinta: se trata de un programa con el que puede modelar el funcionamiento de un neurona biolgica mediante 71

72

Herramientas de ayuda en el desarrollo de redes neuronales

la resolucin simultnea de un conjunto de ecuaciones diferenciales que describen el comportamiento de los canales inicos de una neurona real, su potencial de membrana o las concentraciones de diferentes sustancias en el citoplasma neuronal. Evidentemente, no es se el tipo de herramientas que nos sern de utilidad en el desarrollo de este curso. La utilidad de los neurosimuladores se pone de maniesto en otros mbitos de la computacin neuronal ms prximos a la neurosiologa y que, en muchos casos, sirven de inspiracin en ltima instancia para modelos articiales de neurona. Al lector interesado en este tipo de herramientas le recomendamos la lectura de los documentos que aparecen en la pgina web de la asignatura bajo la solapa de Neurosimuladores. Nosotros en lo que sigue nos circunscribiremos a los simuladores de redes neuronales y, en particular, al que se menciona al comienzo del prrafo, es decir, a JavaNNS. Los simuladores de redes neuronales son programas modulares que comprenden bibliotecas de componentes de forma que el usuario no necesita programar los algoritmos de clculo ms usuales sino que, bien de forma grca, bien en lnea de comandos, selecciona la arquitectura de la red neuronal que desea construir (el nmero de capas, el tipo de neuronas que componene cada una de ellas y su conectividad) y el algoritmo de aprendizaje que considera apropiado, y el simulador realiza todo el proceso tanto de inicializacin como de aprendizaje de la red, almacenando sus conguraciones en cheros externos que pueden ser modicados o reutilizados en cualquier momento. Obviamente, cada simulador tiene unas especicaciones particulares que nos obligan a dar a nuestros patrones de entrada/salida un formato determinado pero, en conjunto, el benecio que obtenemos al ahorrarnos la implementacin de modelos de red/aprendizaje tan comunes resulta muy superior al esfuerzo de adaptacin de los datos.

4.2.
4.2.1.
a

Java Neural Network Simulator (JavaNNS)


Instalacin

JavaNNS puede ser descargado desde la pgina web de la Universidad de Tbingen Para ejecutar JavaNNS es necesario instalar previamente el entorno de ejecucin Java (Java Runtime Environment, JRE) o el kit de desarrollo de software (Software Development Kit, SDK). Ambos se pueden descargar gratuitamente de la pgina web de Sun Microsystemsb . c JavaNNS se distribuye en forma de chero comprimido zip para plataformas Windows, o tar.gz para sistemas operativos basados en unix (Linux o Solaris). Una vez descomprimido, el chero genera los siguientes cheros y carpetas:

a http://www-

ra.informatik.uni-

tuebingen.de/software/JavaNN

S/welco me\_e.ht ml

b http://java.sun.com/j2se/1.4.2/download.html c Si

el alumno tiene alguna dicultad instalando cualquiera de los dos, pngase en contacto con el equipo docente de la asignatura en la direccin de correo electrnico habitual.

4.2 Java Neural Network Simulator (JavaNNS)

73

Figura 4.1: create-layers 1. JavaNNS.jar - el archivo java que contiene las clases del interfaz de usuario 2. examples - carpeta de ejemplos 3. manual - carpeta con el manual Los usuarios de un sistema operativo basado en el kernel de Linux, pueden ejecutar JavaNNS mediante la orden java -jar JavaNNS.jar en lnea de comandos; los usuarios de Windows, simplemente pulsando dos veces el ratn en el icono del chero JavaNNS.jar.

4.2.2.

Creacin de una red neuronal

La primera vez que se ejecuta, JavaNNS crea una copia del ncleo del simulador en la carpeta que el usuario elija mediante la ventana de dilogo correspondiente. La ubicacin de la librera queda almacenada en el chero JavaNNS.properties en el directorio personal del usuario. Una vez realizada esta operacin una nica vez (la primera), el sistema operativo arranca la interfaz grca basada en Java. Lo primero que vemos es el espacio de trabajo vaco salvo por una ventana de ttulo default <1>. En esta ventana se visualizarn las redes neuronales que creemos y, por supuesto, podemos aumentar o disminuir su tamao de igual manera que se hara con un entorno de ventanas de los habituales. A la izquierda de la ventana nos encontramos con la escala de color que se emplear para mostrar la magnitud de distintas variables que podemos representar. Por defecto stas son la activacin de las neuronas (units) y los valores de los pesos que conectan unas con otras (links). Crear una red neuronal consiste en JavaNNS en denir la arquitectura: seleccionar un nmero de capas, la dimensin o nmero de neuronas de cada una de ellas y, nalmente, la conectividad entre capas e intra capa. Dicho proceso se realiza mediante la ventana de dilogo Create layers que se abre al seleccionar en la pestaa Tools sucesivamente la opcin Create y Layers (ver gura 4.1). En dicha ventana, podemos seleccionar la anchura (Width) y la altura (Height) de cada

74

Herramientas de ayuda en el desarrollo de redes neuronales

Figura 4.2: Ventana de Display con la red neuronal de ejemplo de JavaNNS.

capa de la red adems del tipo de neuronas que la componen (Unit type), la funcin de activacin (Activation function) y la funcin de salida (Output function). En la misma ventana se pueden especicar otras opciones en las que, por el momento, no vamos a entrar. Supongamos que deseamos crear una red neuronal para clasicar una imagen binaria bidimensional como una de las 26 letras maysculas del alfabeto anglosajn. Supongamos tambin que la imagen bidimensional tiene 7 las y 5 columnas. Entonces, espacio de entrada de la red tendr 35 neuronas sensoras que, para que sea ms intuitivo, dispondremos tambin como una matriz bidimensional de 7 las y 5 columnas. El espacio de salida lo representaremos como una capa de 26 neuronas, una para cada letra del alfabeto. La red completa estar compuesta de tres capa: la primera ser la capa de entrada bidimensional, la segunda, una capa oculta y la tercera la capa de salida. La gura 4.2 muestra la ventana de Display de la red despus del proceso de creacin que describimos a continuacin. El procedimiento para crear la primera capa ser introducir el valor 5 en el campos de anchura y 7 en el de altura de la capa y seleccionar el tipo Input en el men desplegable que aparece al pinchar con el ratn sobre el campo a la derecha de Unit type. Por ahora, dejemos como funciones de activacin y salida las que gura por defecto en la ventana, es decir, Act_Logistic, y Out_Identity. Al pulsar con el ratn sobre la opcin Create aparece automticamente en la ventana que representa la red neuronal, la matriz de neuronas de entrada que acabamos de denir. La ventana de creacin de capas se modica automticamente para indicarnos que la posicin de la esquina superior izquierda de la prxima capa se habr desplazado (para evitar que las distintas capas se superpongan en la ventana de visualizacin) y que dicha prxima capa (la segunda) tendr, como caba esperar, el nmero de orden (Layer number) 2. Si queremos visualizar las capas en vertical, modicaremos los valores que aparecen en la ventana Create layers para que gure 1 en el campo de anchura y 10 en el de altura (valores de la segunda capa). Adems, hemos de cambiar el tipo de neurona a Hidden (oculta).

4.2 Java Neural Network Simulator (JavaNNS)

75

Al pulsar de nuevo Create aparece en la ventana de visualizacin de la red una nueva capa cuyas neuronas se disponen en alineamiento vertical. Si hubiramos invertido los valores de anchura y altura la capa se desplegara en horizontal. Finalmente, repetimos el procedimiento para la capa de salida seleccionando los valores 1 para la anchura y 26 para la altura y Output para el tipo de neurona. Ya podemos pulsar Close y en la ventana de visualizacin podremos contemplar la red neuronal recin creada. Slo resta conectar las neuronas. Para ello, seleccionamos de nuevo la pestaa Tools y, en ella, Create y Connections. As habremos abierto una ventana denominada Create links que nos ofrece tres posibilidades: Connect selected units (conectar unidades seleccionadas), Connect feed-forward (conectividad hacia adelante) y Auto-associative (para redes autoasociativas). En nuestro ejemplo, seleccionaremos la conectividad hacia adelante lo que al pulsar sobre Connect con el ratn har que aparezcan en la ventana de visualizacin de la red enlaces que van de la neurona de entrada a todas las de la capa oculta, y de cada una de las neuronas de la capa oculta a la neurona de salida. La opcin feed-forward crea todas las posibles conexiones entre una capa y la siguiente.

4.2.3.

Entrenamiento

Antes de comenzar a describir el proceso de especicacin del modo de aprendizaje de la red, vamos a cargar el chero que contiene el conjunto de entrenamiento de la red. Para ello seleccionamos, como suele ser habitual, el men desplegable titulado File la opcin Open. En la ventana de seleccin de cheros que aparece, descendemos al directorio examples (ejemplos en ingls) y pinchamos dos veces en el chero letters.pat. Ese chero, que incluimos a continuacin, fue creado con las especicaciones que se han de seguir para crear nuestros propios cheros de patrones. SNNS pattern definition file V3.2 generated at Mon Apr 25 18:08:50 1994

No. of patterns : 26 No. of input units : 35 No. of output units : 26 # 0 1 1 1 1 1 1 # 1 0 0 # 1 Input 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 Output 0 0 0 0 0 0 0 0 0 Input 1 1 1 pattern 0 1 1 1 1 1 1 pattern 0 0 0 0 0 0 0 0 0 0 pattern 0 1:

1: 0 0 0 0 2:

76

Herramientas de ayuda en el desarrollo de redes neuronales

1 1 1 1 1 1 # 0 0 0

0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 Output 1 0 0 0 0 0 0 0 0

1 1 0 1 1 0 pattern 2: 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Es muy importante atenerse a las especicaciones de este chero, muy especialmente en lo que se reere a la cabecera. sta consta de ocho lneas como las mostradas (algunas de ellas en blanco) que especican el nmero de patrones que contiene el chero( No. of patterns), el nmero de entradas (No. of input units) y el de salidas (No. of output units). Las lneas que comienzan con una almohadilla son comentarios y no se ajustan a ninguna regla salvo la mencionada. A continuacin se incluyen alternativamente los valores de entrada y salida en el orden en que se hayan numerado las neuronas de la red. Las lneas se pueden terminar en cualquier punto para dar mayor legibilidad al chero. En este caso, las entradas se presentan en bloques de siete de forma que se pueden entrever en los patrones de entrada las matrices correspondientes a las letras A y B maysculas. Una vez cargados los patrones estamos ya en disposicin de seleccionar el algoritmo de entrenamiento que deseemos en el Panel de Control (Control Panel) que se activa en el men desplegable de la pestaa Tools.

Figura 4.3: init

El Panel de Control consta a su vez de seis pestaas algunas de las cuales pueden estar inactivas (no seleccionables): Initializing que permite elegir el modo de inicializacin de los pesos; Updating, que dene el orden en que se actulizan los pesos; Learning, que selecciona el algoritmo de aprendizaje y los parmetros que los caracterizan; Pruning, que permite denir un mecanismo de poda que elimina selectivamente sinapsis; Patterns, que nos permite denir qu chero de patrones de los que hemos abierto con Ja-

4.2 Java Neural Network Simulator (JavaNNS)

77

Figura 4.4: learn vaNNS vamos a emplear como conjunto de entrenamiento o validacin y, nalmente, Subpatterns que se activar cuando hayamos denido subpatrones en el conjunto de entrenamiento (para saber ms sobre subpatrones os recomendamos leer el manual de usuario de SNNS). Para nuestro ejemplo, vamos a dejar seleccionada la funcin de inicializacin Random Weights (Pesos Aleatorios) entre -1.0 y 1.0, la funcin de actualizacin Topological Order (Orden Topolgico) que actualiza los pesos segn el nmero de orden de la neurona, el algoritmo de aprendizaje Backpropagation (Retropropagacin) con parmetros = 0,2 (velocidad de aprendizaje) y dmax = 0,1 (la mxima diferencia entre el patrn objetivo y el resultado de la red que se considera como despreciable y que, por lo tanto, no se propaga hacia atrs para recalcular los pesos). Cada funcin de aprendizaje tiene sus propios parmetros y el usuario de JavaNNS debe leer el manual para conocer todos los algoritmos a su disposicin y la seleccin de parmetros ptima para la tarea que desea resolver. En esta misma pestaa de aprendizaje vamos a jar el valor de la variable Cycles (que nos permite seleccionar el nmero de veces que se le va a presentar a la red el conjunto entero de patrones de entrenamiento o ciclos) en 150, mientras que la variable Steps (Pasos) que representa el nmero de patrones que se van a procesar al pulsar el botn Learn Current (aprende el patrn seleccionado actualmente) la dejaremos en su valor por defecto. La opcin Shufe, cuando es seleccionada, nos permite reordenar los patrones aleatoriamente (barajarlos) en cada ciclo de presentacin. No vamos a podar ningn peso y, en la pestaa de Patrones dejaremos seleccionado el chero letters en el campo Training set (Conjunto de entrenamiento). La pestaa, adems, nos permite aadir nuevos patrones a los contenidos en el chero leido y modicar o borrar los ya existentes as como eliminar o aadir nuevos cheros de patrones y seleccionar una funcin de procesado de las salidas (Remapping function) que se puede utilizar para re-escalar los valores de salida de los ejemplos. Si se desea realizar preprocesado de los patrones de entrada (ver seccin 2.2.1 del captulo 2) JavaNNS ofrece varias posibilidades entre las que se encuentran la normalizacin de la longitud eucldea, el cambio de escala lineal (en cuyo caso solicita la pendiente y la ordenada en el origen de la recta) y la umbralizacin, pero todo ello mediante la utilizacin de vistra y de manera previa a la incorporacin del chero de patrones a JavaNNS. Sin embargo, vistra es un proyecto antiguo y desatendido que en la mayora de los sistemas actuales tendr problemas para compilar. Por ello, los usuarios de JavaNNS escriben sus propias rutinas de preprocesado como parte del proceso de

78

Herramientas de ayuda en el desarrollo de redes neuronales

Figura 4.5: error creacin del chero de patrones. Antes de volver a la pestaa Learning para comenzar el aprendizaje pulsando la opcin Learn All (Aprender todos los patrones), vamos a abrir una ventana grca que nos permita visualizar en todo momento la diferencia entre la salida deseada de la red y la salida real. Para ello, seleccionamos en la pestaa View del Men Principal la opcin Error Graph. Con ello aparece la ventana Error Graph que, en su margen izquierdo, presenta otro men desplegable con las distintas opciones para el eje vertical. 1. Error Cuadrtico Total o Summed Squared Error (SSE) SSE = E () = 1 NA t [n] y[n] 2 n =1
2

1 NA Ns (t j yk )2 2 n =1 k =1

(4.1)

que se corresponde con la denicin de la frmula 2.5 2. Error Cuadrtico Medio o Mean Squared Error (MSE) denido como MSE = SSE NA SSE Ns (4.2)

donde NA es el nmero de patrones. o como MSE = (4.3)

donde Ns es el nmero de neuronas de salida de la red. Dicha ventana ofrece adems la posibilidad de modicar los rangos representados en ambos ejes mediante las cabezas de echa, borrar las curvas trazadas o superponer una cuadrcula. Una vez abierta la ventana de representacin grca del error, volvemos al Panel de Control y pulsamos el botn Learn All en la pestaa Learning, con lo que el ncleo

4.3 Herramientas de JavaNNS

79

de JavaNNS ejecuta 150 ciclos de aprendizaje. Como ejercicio, proponemos al lector que vare la longitud total del aprendizaje bien pulsando varias veces seguidas el botn Learn All, bien cambiando el valor de Cycles y que describa las curvas obtenidas para, por lo menos, dos funciones de aprendizaje: BackPropagation y BackProp_Momentum. Por qu detenemos el aprendizaje cuando an podramos disminuir ms el error? Cul de las dos funciones de aprendizaje hace disminuir el error ms rpidamente?

4.3.

Herramientas de JavaNNS

JavaNNS es la interfaz ms moderna de SNNS pero no incorpora todas las herramientas que ste proporciona. Para aquellos alumnos interesados en la creacin automatizda de redes neuronales mediante scripts o en el empleo de dichas redes como funciones integrables en c, resumimos aqu una gua de uso de las herramientas batchman y snns2c de SNNS. Para disponer de estas herramientas se deber instaladar previamente SNNS.

4.3.1.

Batchman

Batchman se ejecuta desde lnea de comandos con una orden equivalente a unixprompt>batchman -f le.bat -l le.log. El chero le.bat estar compuesto de sentencias de control de tipo IF-THEN-ELSE-ENDIF, FOR-TO-DO-ENDFOR, WHILEDO-ENDWHILE o REPEAT-UNTIL, y de llamadas a funciones del ncleo como las que se enumeran a continuacin Seleccin de parmetros Funciones de redes Funciones de patrones Funciones especiales setInitFunc() loadNet() loadPattern() pruneNet() setLearnFunc() saveNet() setPattern() pruneTrainNet() setUpdateFunc() saveResult() delPattern() setPruningFunc() initNet() pruneNetNow() setRemapFunc() trainNet() delCandUnits() setActFunc() resetNet() execute() setCascadeParams() jogWeights() print() setSubPattern() jogCorrWeights() exit() setShufe() testNet() setSeed() setSubShufe() setClassDistrib() El signicado de las funciones es evidente a partir de su nombre. Los parmetros que se le han de pasar a cada llamada al ncleo se encuentran en el manual de uso de SNNS y sera demasiado largo detallar aqu todas las posibilidades. Como con cualquier otra duda, recomendamos al alumno interesado que consulte con el equipo docente cualquier duda que pueda surgir al respecto. Aqu solo vamos a incluir un ejemplo comentado de chero de comandos. # cargar red neuronal del fichero loadNet("encoder.net ") encoder.net

80

Herramientas de ayuda en el desarrollo de redes neuronales

# cargar fichero de patrones loadPattern("encoder .pa t") # seleccionar funcin de inicializacin de pesos setInitFunc("Randomi ze_ Wei ght s", 1.0, -1.0) # Inicializar pesos initNet() # Continuar el entrenamiento de la red mientras el error sumado supere #y no se hayan superado los 1000 ciclos while SSE > 6.9 and CYCLES < 1000 do # Imprimir el valor del error sumado cada 10 ciclos de entrenamiento if CYCLES mod 10 == 0 then print ("cycles = ", CYCLES, " SSE = ", SSE) endif trainNet() endwhile # Guardar en encoder.res (crearlo si no existe) todos los patrones saveResult("encoder. res ", 1, PAT, TRUE, TRUE, "create") # Guardar la red en el estado actual en encoder.trained.ne t saveNet("encoder.tra ine d.n et" ) un umbral

de entrada

y salida

print print

("Cycles trained: ", CYCLES) ("Training stopped at error:

", SSE)

4.3.2.

snns2c

El ejecutable snns2c genera, a partir de una red neuronal dada, una funcin escrita en ANSI c que pueder ser llamada desde cualquier programa en dicho lenguaje. Dado un comando como snns2c red.net la salida consiste en dos cheros red.c y red.h que, com et.h pilados e incluidos en un programa c mediante la lnea #include n proporcionan una funcin denida por int red(oat *entrada, oat *salida, int init) donde entrada y salida son dos punteros a vectores con los valores de entrada y salida a la red neuronal e init es un entero requerido por algunos tipos de red neuronal. De nuevo, recomendamos al alumno la lectura del manual o enviar al equipo docente las dudas que puedan surgir relativas al empleo de snns2c.

4.3.3. Simulacin con JavaNNS


En la direccin http://www.ia.uned. es/ asi gna tur as/ sbc 2/s nn s se pueden obtener dos cheros tiles para poner en prctica los conocimientos adquiridos hasta ahora. Corresponden al ejemplo de interpolacin introducido en el captulo 2: entre.pat que contiene los patrones de entrenamiento y interp.pat con puntos intermedios para los que desearamos obtener una interpolacin. Proponemos como ejercicio la creacin de la red neuronal descrita anteriormente en JavaNNS, su entrenamiento y la posterior transformacin del resultado con snns2c en una funcin en lenguaje c para interpolacin.

4.4 SOM_PAK

81

4.4.

SOM_PAK

SOM_PAK es un conjunto de programas para la creacin y anlisis de Mapas Autoorganizados (Self-Organized Maps). Como se ve en ms detalle en el captulo 3, los mapas autoorganizados son el resultado de cuantizar de manera ordenada un espacio de entrada de alta dimensin mediante un conjunto de vectores de referencia. El proceso de creacin del mapa de tipo no supervisado y se emplea habitualmente para obtener agrupamientos de datos (clustering) complejos.

4.4.1.

Instalacin

El conjunto de programas de los que vamos a tratar en esta seccin se pueden obtener en la pgina http://www.cis.hut. fi/ res ear ch/ som _pa k . Los alumnos que trabajen en sistemas basados en MS-DOS deben descargar som-*.exe donde el asterisco corresponde al nmero de versin (p3r1 en el momento de escribir este documento). Al ejecutar este archivo se extraen automticamente todos los cheros necesarios para la instalacin. Aqullos que trabajen con sistemas UNIX deben descargarse el chero som_pak-*.tar, donde, de nuevo, * representa la versin del programa (3.1 en el momento de escribir este documento). Una vez descargado el chero, que contiene en cualquiera de sus versiones el cdigo fuente, los makeles y ejemplos, la instalacin depende del sistema operativo. Como alternativa para aquellos alumnos que no dispongan de compilador c++, en dicha misma pgina se pueden encontrar dos directorios con los cheros binarios de la ltima distribucin compilados en MS-DOS y en Windows.

MS-DOS Para instalar SOM_PAK en un sistema operativo basado en MS-DOS basta ejecutar el chero > som_p3r1 con lo que se crea el directorio som_pak.3r1. Si cambiamos a este directorio > cd som_pak.3r1 encontraremos el chero makele.dos que nos ha de servir para compilar el cdigo fuente mediante > copy makefile.dos > make

UNIX En sistemas basados en UNIX, el procedimiento es similar: se extrae el chero tar mediante

82

Herramientas de ayuda en el desarrollo de redes neuronales

> tar xvf som_pak-3.1.tar y se compila mediante la serie de comandos > cd som_pak-3.1 > cp makefile.unix > make

Makefile

4.4.2.

Uso y ejemplos

En lo que sigue se describe el proceso de creacin de un mapa autoorganizado mediante una herramienta (vnd) que coordina los binarios de inicializacin de los vectores de referencia (randinit), de entrenamiento (vsom), de calibracin (vcal) y de uso (visual). Para obtener informacin detallada de cada uno de ellos remitimos al lector al manual de uso de SOM_PAK. Antes de explicar el uso de vnd, es necesario exlicar el formato ASCII de los cheros de entrada. stos han de ser encabezados con una lnea que especique necesariamente la dimensin de los vectores empleados para crear el mapa. Opcionalmente se pueden aadir los siguientes campos (lo que har que vnd no pregunte por los valores correspondientes): 1. Tipo de topologa: hexa para mapas en los que el vecindario de cada neurona est compuesto de seis neuronas o rect para vecindario rectangular 2. Dimensin horizontal del mapa 3. Dimensin vertical del mapa 4. Tipo de funcin ncleo o kernel: bubble para funciones constantes en la vecindad o gaussian para ncleos que disminuyen con la distancia segn una gaussiana. Un ejemplo de tal cabecera sera 3 hexa 20 10 gaussian e ira seguida de un nmero indeterminado de vectores de tres componentes a partir del cual se constuir el mapa. Es lcito incluir comentarios en el chero antecedidos por el smbolo almohadilla (#). Asimismo se puede aadir al nal de cada vector una etiqueta que identique dicho vector como perteneciente a una clase determinada. Por ejemplo, #primer vector 1 0 0 clase3 #segundo vector 0 0 1 clase1 #tercer vector

4.4 SOM_PAK

83

0 1 0 clase2 #cuarto vector 0 1 1 clase2 ... lo que permitira, una vez construido el mapa, rastrear la posicin en el mapa de grupos de vectores cuya naturaleza es conocida de antemano. Finalmente, se puede incorporar conocimiento parcial de ejemplos mediante el smbolo reservado x, por ejemplo en, #ensimo 1 0 x vector

Dado un chero de entrada con vectores a partir de los cuales se desea crear un mapa autoorganizado como los que se incluyen en la distribucin (ex*.dat), podemos iniciar el proceso con el comando vnd lo que har que aparezca en pantalla un breve resumen de los datos que nos van a ser requeridos y del algoritmo que vamos a emplear. ste se compone de dos fases, una primera de ordenacin y una segunda de renamiento. vnd solicita en primer lugar el nmero de mapas que se desea crear. De entre todos los mapas creados se selecciona nalmente aqul de menor error de cuantizacin es decir, aqul en que los vectores que activan una neurona dada se encuentran ms prximos al vector de referencia. A continuacin y por este orden, se pide el nombre del chero que contiene los datos de entrada, el del que contiene los vectores de comprobacin (test) y el nombre que deseamos dar al chero de salida con el mapa autoorganizado. Despus el tipo de topologa (hexagonal o rectangular), el tipo de kernel (bubble o gaussian) y las dimensiones horizontal y vertical del mapa. Finalmente, los datos de cada fase de entrenamiento: el nmero de ciclos de entrenamiento (training length), la tasa de aprendizaje (training rate) y el radio inicial de vecindad (radius). Una secuencia de respuestas posible en el caso del chero de entrada ex.dat proporcionado con la distribucin podra ser This program will repeatedly run the initialization, and testing cycle for Self-Organizing Map algorithm. In the following the training file (that can be the same) and the map After them the type of map topology the type of neighborhood function. of the map should be integers and should be larger than y-dimension. The that The the both are name, the save file is asked, The x- and prefereably training

test file name name are asked. as well as y-dimension x-dimension

training is done in two parts. First an ordering phase is usually shorter than the following converging phase. number of training cycles, the training rates and radius of the adaptation area are asked separately for phases. The fixed point qualifiers and weighting qualifiers used if the corresponding parameters were given. is computed quantization for each map and error) is saved to

The quantization error the best map (smallest

84

Herramientas de ayuda en el desarrollo de redes neuronales

the given file. If the verbose parameter error is given for each separate trial.

allows

the quantization

After the answers have been given the training begins and depending on the size of problem it may take a long time. Give Give Give Give Give Give Give Give Give Give Give Give Give Give the the the the the the the the the the the the the the number of trials: 100 input data file name: ex.dat input test file name: ex.dat output map file name: ex.map topology type: hexa neighborhood type: gaussian x-dimension: 12 y-dimension: 8 training length of first part: 1000 training rate of first part: 0.05 radius in first part: 10 training length of second part: 10000 training rate of second part: 0.02 radius in second part: 3

Como resultado de esta secuencia de comandos vnd genera un conjunto de 100 mapas y almacena aqul de menor error de cuantizacin en el chero ex.map. El formato empleado es, de nuevo, ASCII lo que permite inspeccionar visualmente el mapa creado. Dado un mapa de dimensin x y, se listan consecutivamente los x vectores de referencia de la primera lnea de neuronas y as sucesivamente hasta completar las y las del mapa. Si disponemos de un chero le.dat con vectores que deseamos presentar al mapa le.map para averigar qu neurona activa cada uno de ellos, emplearemos el programa visual con la siguiente sintaxis > visual -din file.dat -cin file.map -cout file.out

con lo que se generar el chero le.out con las coordenadas de las neuronas activadas por cada vector del chero le.dat exactamente en el mismo orden en que guran en dicho chero. Finalmente, dos programas muy tiles para la interpretacin de los mapas obtenidos son vcal y umat. El primero es til si existe una clasicacin previa de los casos empleados en la creacin del mapa. Evidentemente, no es el caso si lo que queremos es agrupar los datos o, lo que es lo mismo, denir las clases, como resultado del entrenamiento. En ocasiones, sin embargo, disponemos de algn esquema clasicatorio previo y deseamos ver qu clases estn prximas en el espacio de caractersticas y qu otras estn ms separadas. En ese caso, podemos incluir la clase a la que pertenece cada ejemplo en una columna adicional de forma que el comando > vcal -din file.dat -cin file.map -cout file.map -numlabs 1

calcula cuntos casos de cada clase han activado cada neurona del mapa y le asocia una etiqueta que corresponde a la clase mayoritaria.

4.4 SOM_PAK

85

El segundo programa, umat, genera a partir del mapa obtenido un grco de las distancias entre los vectores de pesos de neuronas contiguas. De esta forma, neuronas que se encuentren en el interior de una agrupacin tendrn vectores de pesos similares a los de sus vecinos y las distancias sern pequeas. Al mismo tiempo, las neuronas que codiquen las fronteras entre grupos, tendrn vecinas con vectores de pesos muy diferentes y presentarn distancias mayores. Las distancias se codican en niveles de gris bien segn la media de los valores, bien segn la mediana dependiendo del comando empleado. La sintaxis en cada caso es > umat -cin file.map > umat -cin file.map o > umat -cin file.map [-ps 1] [-average [-median 1] 1]

si preferimos la grca en formato Postscript en lugar de Postscript Encapsulado (que es el formato por defecto).

86

Herramientas de ayuda en el desarrollo de redes neuronales

Captulo 5

Aplicaciones
Objetivo: En este ltimo captulo pretendemos cerrar los contenidos del curso de acuerdo con el espritu que ha guiado el diseo de la asignatura. Hemos pretendido conjugar los aspectos ms tericos del campo de la computacin neuronal con una perspectiva eminentemente prctica, de forma que al nal del curso el alumno est capacitado para implementar soluciones conexionistas para el conjunto de tareas en las que este tipo de tcnicas son adecuadas. Como mencionamos en el captulo 1, stas son bsicamente las de clasicacin, regresin, control y prediccin. Todas ellas son diferentes caras de una misma moneda, o, dicho de otra manera ms formal, son tareas que comparten un mismo esquema conceptual abstracto. Pero sto lo veremos despus de los ejemplos.

5.1.

Aplicacin conexionista en tarea de clasicacin.

Empezamos pues con la que probablemente sea la aplicacin ms popular de las redes neuronales. Existen por ello, multitud de ejemplos de redes neuronales de clasicacin en los ms diversos mbitos de la industria y de la ciencia. En este libro de texto hemos elegido un ejemplo del repositorio de la Universidad Carnegie Mellon de EEUU que se puede encontrar en http://www- 2.cs.cmu .ed u/a fs/ cs/ pro je ct/ ai- repository/ai/ar eas /ne ura l/b enc h/0 .ht ml aunque existen muchos otros en la red. La razn por la que hemos elegido este ejemplo es que ilustra varios de los aspectos metodolgicos fundamentales del desarrollo de una aplicacin basada en conexionismo siendo el planteamiento conceptual del problema al mismo tiempo muy sencillo.

5.1.1.

Planteamiento del problema

El problema al que hacemos referencia consiste en distinguir minas de rocas a partir de una serie de observaciones obtenidas mediante un instrumento denominado snar [GS88]. El snar enva ondas acsticas en una serie de frecuencias distintas y dependiendo del cmo rebota cada frecuencia en un objeto determinado podemos saber de qu est hecho el objeto y a qu distancia se encuentra. Las ondas rebotadas presentan 87

88

Aplicaciones

diferentes caractersticas dependiendo del ngulo que forma el haz incidente con el eje longitudinal del objeto (ngulo aspectual). En este ejemplo nos interesa distinguir la composicin del material a partir de las seales recibidas por el snar. En particular, si el objeto est compuesto de roca o de metal. En este ltimo caso supondremos que se trata de una mina enterrada. Partimos de la energa detectada por el snar en 60 bandas de frecuencia diferentes y a partir de esos 60 datos pretendemos averiguar si el objeto en el que rebotaron las ondas del snar es una mina o una roca. Como datos de partida disponemos de 208 ejemplos, 111 casos de minas y 97 de roca.

5.1.2.

Preprocesado de los datos

Los datos de entrada han sido preprocesados para que los valores se encuentren en el intervalo [0,1]. Ya hemos tratado el problema de la normalizacin de los datos tanto de entrada como de salida en el captulo 2. No vamos a volver aqu sobre el tema, aceptaremos como datos de partida la trasformacin de Gorman y Sejnowski, y dejaremos al lector la comparacin de los resultados del clasicador para distintos modelos del preprocesado. Por otra parte, cada par entrada-salida del conjunto de datos disponible corresponde a un ngulo de incidencia entre el haz del snar y el eje longitudinal del objeto. A este respecto, Gorman y Sejnowski realizan un estudio muy interesante que ilustra la importancia de la seleccin adecuada del conjunto de entrenamiento. Inicialmente, los autores dividen el conjunto de partida en 13 bloques de 16 casos cada uno, de los cuales 12 son utilizados para entrenar la red y el decimotercero para evaluar el error de clasicacin. Repiten el proceso de aprendizaje 13 veces de manera que el bloque empleado para evaluar el funcionamiento de la red es siempre distinto. Los autores obtienen que para algunas particiones del conjunto de datos de partida la capacidad de clasicacin de la red es bastante baja e interpretan este resultado como la consecuencia de haber incluido en el bloque de evaluacin ngulos aspectuales que no estaban sucientemente representados en el bloque de entrenamiento. Es evidente que si no hemos enseado a la red a reconocer un tipo de patrn (esto es, si ese patrn no se encontraba en el conjunto de entrenamiento), la red cometer errores cada vez que se le presente un caso de este tipo. sta es en denitiva la leccin que se debe aprender de el ejemplo: es fundamental que en el conjunto de entrenamiento se hallen representadas sucientemente todas las clases que queremos reconocer, a ser posible con la frecuencia en que se espera que aparezcan el el funcionamiento real de la red. Este problema motiv la siguiente solucin: los autores dividieron el conjunto de ejemplos de forma que, tanto el conjunto de entrenamiento como el de validacin tuvieran una representacin suciente de todos los posibles ngulos aspectuales. Esta vez dividieron por la mitad el conjunto de ejemplos (104 para el entrenamiento y 104 para la evaluacin del error) y repitieron 10 veces el entrenamiento y la evaluacin de la red con esta nica particin de los datos, que es la que se ofrece a los alumnos para que repitan el experimento con JavaNNS.

5.1 Aplicacin conexionista en tarea de clasicacin.

89

5.1.3.

Arquitectura y aprendizaje

Los autores del artculo emplearon redes neuronales de arquitectura ja para las capas de entrada y salida puesto que la entrada eran siempre las detecciones de las ondas rebotadas en las 60 frecuencias distintas del snar (60 neuronas de entrada) y slo hay dos salidas posibles: roca o mina. Gorman y Sejnowski utilizaron para codicar la salida dos neuronas de forma que la activacin de la primera representaba la deteccin de una roca y la de la segunda, una mina. Este tipo de codicacin, que podra extenderse a ms clases aadiendo una neurona por cada clase, se conoce con el nombre de 1-dek (1 o f k en ingls) porque las clases se codican en el conjunto de entrenamiento mediante una nica neurona de k en la capa de salida donde k es el nmero total de clases. En este texto, al nmero de neuronas de la capa de salida lo hemos llamado Ns as que deberamos llamar a esta codicacin 1-de-Ns. Una vez jadas por la estructura de los datos las dimensiones de las capas de entrada y salida queda por determinar la geometra intermedia de la red. Gorman y Sejnowski, a falta de conocimiento previo sobre la arquitectura ms apropiada, probaron redes neuronales sin capa oculta y con una capa oculta de 2, 3, 6, 12 y 24 unidades para comparar su capacidad de clasicacin mediante el conjunto de evaluacin. Cada arquitectura fue entrenada mediante el algoritmo de retropropagacin del error empleando 300 ciclos de aprendizaje en cada caso y prescindiendo de la componente de momento (ver la seccin 2.3 en el captulo 2). Los pesos se inicializan con valores aleatorios entre -0.3 y +0.3 y la tasa o velocidad de aprendizaje inicial es de 2.0. Finalmente, no se consideran errores por debajo de 0.2.

5.1.4.

Resumen y propuesta de ejercicio.

En esta seccin hemos mostrado un ejemplo sencillo de aplicacin conexionista para la resolucin de una tarea de clasicacin para la que se dispone de escaso o nulo conocimiento previo y slo se tiene un conjunto de ejemplos de cada clase. Hemos aprendido la importancia de seleccionar adecuadamente el conjunto de ejemplos de entrenamiento de forma que representen estadsticamente todas las posibilidades que se le pueden presentar a la red durante las fases de evaluacin y de funcionamiento real. Hemos visto que durante la fase de diseo, la escasez de conocimiento sobre la estructura de la tarea de clasicacin implica tener que explorar diferentes arquitecturas para hallar la que mejor clasica el conjunto de evaluacin. A este respecto es conveniente que el lector repase los conceptos relativos al compromiso entre sesgo y varianza presentados en el captulo 2. Para consolidar los conceptos aprendidos a lo largo del libro y ejemplicados en este trabajo, as como para acumular destreza en el manejo de las herramientas de desarrollo de redes neuronales pedimos al alumno que reproduzca el experimento de Gorman y Sejnowski utilizando JavaNNS y el chero de datos de nombre sonar.data que se encuentra en el repositorio cuya direccin URL aparece al comienzo de la seccin. Compare las tasas de clasicacin correcta obtenidas para cada arquitectura con las obtenidas por los autores del estudio. Asimismo, le pedimos que lleve a cabo las siguientes modicaciones: 1. Repita el experimento empleando retropropagacin con momento, por lotes,

90

Aplicaciones

y 1.4 1.2 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 4 5 5 4 3 2 3 2 1 0 1 x1 -1 0 -1 -2 -3 x2 -4 -5 -5 -4 -3 -2 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4

Figura 5.1: Datos de partida a partir de los cuales deseamos obtener una supercie de regresin continua. quickpropagation, retropropagacin con regularizacin (weight decay) y resilient backpropagation, y compare los resultados. 2. En todos los casos anteriores monitorice los valores de los distintos tipos de error en el conjunto de entrenamiento y en el de evaluacin/validacin y saque conclusiones sobre las diferencias. 3. Emplee un preprocesado distinto de los datos (por ejemplo, cambiando el rango a [-1,1] o empleando una distribucin normal gaussiana) y compare con los resultados de Gorman y Sejnowski.

5.2.

Aplicacin conexionista en tarea de identicacin/regresin.

Continuamos los ejemplos de aplicacin de soluciones conexionistas a tareas propias de la IA con un caso de regresin. En muchas ocasiones nos encontramos con sistemas que a un conjunto de entradas responden con un conjunto de salidas y la relacin entre unas y otras no es simple o lineal. Supongamos que se dispone de un conjunto de puntos como el de la gura 5.1 que representan la salida y que produce un sistema para una entrada (x1 , x2 ) dada. Para jar ideas, podramos imaginar que el sistema es un mdulo de control de un brazo robtico que mide la presin que ejerce la pinza situada en el extremo del brazo en funcin de la posicin (x1 , x2 ) de dicho extremo. Hemos supuesto que el proceso de medida de la salida est afectado por errores, como suele ser habitual en cualquier proceso de medida. La tarea para la que buscamos una solucin conexionista es la de obtener la salida programada (la presin de la pinza) para una nueva posicin (x1 , x2 ) que no sea una de las que ya hemos medido, esto es, queremos generalizar a partir de lo ya conocido que est condensado en la grca 5.1. Si lo conseguimos, habremos obtenido un sistema paralelo al inicial que responde

5.2 Aplicacin conexionista en tarea de identicacin/regresin.

91

y 1.2 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 4 2 x1 4 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0

2 x2

-2

-4

-4

-2

Figura 5.2: Funcin tridimensional a partir de la cual se han obtenido los puntos de la gura 5.1 por adicin de ruido gaussiano de media 0 y varianza 0.5. La frmula anlitica empleada fue exp(|x2 + y2 2|/5) + . aproximadamente de la misma manera sin saber su composicin ni su estructura interna. A eso podramos llamarlo una identicacin del sistema. En general los problemas son ms complicados y tienen un nmero indeterminado de entradas y salidas. Si nos olvidamos de que los puntos de la grca proceden de un sistema real (un brazo robtico) que lleva a cabo una determinada tarea, podemos abordar el problema como si se tratara de encontrar qu funcin ha generado los puntos suponiendo que a la funcin se le ha aadido ruido. Ese problema es muy general y se lo conoce como problema de regresin. En cualquier caso, como decamos, ambas son equivalentes. En la gura 5.2 se muestra la funcin de la que se han obtenido los puntos de la grca ?? mediante la adicin de ruido y en 5.3 la superposicin de los puntos a la grca desde una perspectiva que permite apreciar la presencia del ruido. Evidentemente, la funcin representada en la gura 5.2 es desconocida; se trata precisamente de recuperar esa funcin continua a partir de los datos de la gura 5.1 que estn afectados por ruido. Nosotros la mostramos por motivos didcticos.

5.2.1.

Planteamiento del problema

Disponemos del conjunto de ejemplos dado en el chero regresion.dat accesible en la pgina web de la asignatura. Consta de 400 casos para los que disponemos de las entradas al sistema (dos) y la salida producida y deseamos construir una red neuronal que capture las relaciones entre las entradas y las salidas y sea capaz de reproducirlas para nuevos casos. Para ello, vamos a dividir el conjunto de datos en diez bloques de 40 ejemplos cada uno. Nueve de estos bloques compondrn el conjunto de entrenamiento y el dcimo se emplear para la evaluacin de la red. De los nueve primeros bloques,

92

Aplicaciones

y 1.4 1.2 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 4 2 x1 4 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0

2 x2

-2

-4

-4

-2

Figura 5.3: Superposicin de las dos guras anteriores. seis se emplearn para entrenar la red y tres para la validacin. A continuacin repetimos el procedimiento nueve veces hasta obtener un total de diez particiones en las que el conjunto de evaluacin siempre es diferente. Este proceso es lo que se conoce en ingls como k-fold cross validation.

5.2.2.

Preprocesado de los datos

Como se ha indicado anteriormente, la denicin del perceptrn multicapa hace que la normalizacin de los datos no sea imprescindible pero s aconsejable para optimizar el proceso de aprendizaje. En este caso, puesto que se trata de un problema de simetra axial, existe una transformacin del espacio de entrada que simplica extraordinariamente el problema (dejamos al lector que la busque y que justique por qu). Sin embargo, en situaciones ms generales en las que se trabaja en muchas dimensiones, es difcil que podamos emplear este tipo de intuiciones geomtricas. Sin ms informacin sobre la naturaleza del problema y dado que el espacio de entrada es extraordinariamente reducido (slo dos dimensiones) no es necesario efectuar reduccin de variables mediante Anlisis de Componentes Principales. Adems, todos los ejemplos son completos por lo que no es necesario renar ms el preproceso de datos.

5.2.3.

Arquitectura y aprendizaje

Dadas las especicaciones del problema, es evidente que la red neuronal deber tener dos neuronas en la capa de entrada y una en la de salida. El nmero de capas ocultas y su composicin depender de lo complicada que sea la funcin que queremos reproducir. Si se trata de una funcin altamente no lineal necesitaremos muchas unidades de procesamiento intermedio u ocultas y viceversa. Ser necesario realizar varias pruebas

5.2 Aplicacin conexionista en tarea de identicacin/regresin.

93

para seleccionar una arquitectura adecuada. Si supisemos a priori qu tipo de funcin queremos que reproduzca la red neuronal quizs sera posible anar ms la arquitectura de la red. Por ejemplo, si supisemos que la funcin depende, no directamente de 2 las variables de entrada x1 y x2 sino de sus productos x2 1 , x2 y x1 x2 , podramos aadir una capa previa de expansin de entradas que se ocupase nicamente de calcular esos productos y proporcionrselos, junto con x1 y x2 a la capa de entradaa .

5.2.4.

Resumen y propuesta de ejercicio

Este ejemplo reproduce un problema comn en el anlisis estadstico de datos. Dado un conjunto de valores de entrada y otro de salida que suponemos que representan una relacin (bien porque son valores de entrada/salida de un sistema o porque simplemente corresponden a una funcin matemtica que no podemos escribir de forma analtica), se busca obtener una red neuronal que reproduzca dicha relacin. El lector deber, a partir de la informacin proporcionada aqu generar una arquitectura de red neuronal capaz de reproducir los datos de los conjuntos de evaluacin con valores del error cuadrtico medio inferiores al 10 % en promedio para todas las particiones del mtodo de validacin cruzada. Para ello podr emplear cualquier variante del mtodo de retropropagacin del error. Deber asimismo representar en 3 dimensiones los valores de la funcin usada para generar los datos f (x, y) = 1 exp(||(x2 + y2 2||) 5 (5.1)

y los que obtendra con la red neuronal para valores de las variables de entrada en el rango mostrado en la gura 5.1 (entre -5 y 5) en intervalos constantes de 0.1. Finalmente, deber representar grcamente los errores relativos cometidos para esa misma retcula (es decir, el error absolutob dividido por el valor absoluto de la funcin). Finalmente, el lector debe responder a las siguientes preguntas: 1. Cmo se modicara la arquitectura de la red neuronal si, en lugar de identicar un sistema de una nica salida estuvisemos tratando un sistema con mltiples salidas? 2. Qu transformacin del espacio de entrada permitira resolver fcilmente el problema de identicacin/regresin propuesto? 3. A la vista de la funcin generatri de los datos, cree el lector que sera interesante expandir el espacio de entradas? qu relacin tendra esta expansin con la solucin a la cuestin 2? 4. Por qu cree que se emplea el error cuadrtico medio en el aprendizaje de la red neuronal y no el error relativo?
a Una capa de expasin del espacio de entradas estara compuesta de neuronas muy diferentes de los perceptrones del resto de la red. Siendo rigurosos, no sera parte de la red ni podramos llamar a sus componentes neuronas puesto que no hay pesos adaptativos ni aprendizaje propiamente dicho sino un clculo analtico muy sencillo en forma de productos. Este tipo de expansiones se deben incluir en el preproceso de datos para no mezclar un tipo de computacin con otro. b el valor

absoluto de la diferencia entre el valor de la funcin generatriz y la prediccin de la red neuronal

94

Aplicaciones

5.3.

Aplicacin conexionista en tarea de prediccin.

El contenido de este texto est dirigido claramente a estudiantes de la asignatura de Sistemas Basados en el Conocimiento II de la Universidad Nacional de Educacin a Distancia. Por ello y dado el contexto en el que se imparte la asignatura, se ha optado por restringir la tipologa de las redes neuronales tratadas para poder hacer ms hincapi en los aspectos metodolgicos y prcticos del desarrollo de soluciones conexionistas para tareas en Inteligencia Articial. Con ello, hemos pasado por alto arquitecturas y algoritmos de aprendizaje que se podran considerar apropiados para algunas tareas de prediccin de series temporales como las que que vamos a abordar en este punto (en particular arquitecturas recurrentes de Jordan o Elman). En el ejemplo que presentaremos a continuacin, emplearemos de nuevo perceptrones multicapa entrenados mediante la retropropagacin del error para resolver esta tarea aun cuando no sean una solucin ptima en muchos casos. Si siempre es importante recordar al alumno el carcter necesariamente limitado del temario de la asignatura y las limitaciones que ello implica, es igualmente necesario ayudarle a encontrar las fuentes de informacin que le pueden servir para ampliar sus conocimientos. En el libro de Haykin [Hay94] se puede encontrar un captulo dedicado a este tema y referencias completas a la bibliografa relevante del campo a mediados de los aos noventa. Referencias ms actualizadas se pueden obtener del equipo docente por los medios habituales. Vamos pues a utilizar perceptrones multicapa pero de dos maneras ligeramente distintas. En la primera para la que no necesitaremos ninguna introduccin terica, la arquitectura de la red ser exactamente igual a la estudiada en el captulo 2. Supongamos que el problema que queremos solucionar consiste en predecir, a partir de una serie temporal de p + 1 valores x(t ), x(t t ), x(t 2 t ), ..., x(t p t ) el valor futuro x(t + t ) de la variable representada. Entonces, construiremos una red neuronal en forma de perceptrn multicapa de p + 1 entradas y una nica salida que representar la prediccin de la red. El conjunto de entrenamiento se construye de forma anloga. Supongamos que disponemos de una serie temporal de N (N >> p + 1) trminos a partir de la cual deseamos entrenar la red neuronal. Entonces, podemos generar un conjunto de entrenamiento con los N p + 1 ejemplos obtenidos al dividir la serie temporal en bloques de p + 2 valores consecutivos. Los p + 1 primeros corresponden a las entradas de la red y el subsiguiente a la salida. Por jar ideas, supongamos que la serie temporal es tan simple como 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, ... (5.2) y que deseamos predecir el siguiente valor de la serie a partir de los ltimos 3 valores (ms de los necesarios). Entonces, los patrones de entrenamiento de la red neuronal seran x[1] x[2] x[3] x[4] x[5] x[6] x[7] x[8] x[9] ... x1 1 2 3 4 5 6 7 8 9 ... x2 2 3 4 5 6 7 8 9 8 ... x3 3 4 5 6 7 8 9 8 7 ... t1 4 5 6 7 8 9 8 7 6 ... y la arquitectura de la red vendra dada por la gura 5.3. Este tipo de soluciones requiere encontrar el nmero ptimo de neuronas ocultas y la dimensin del espacio de entradas ptimo para la prediccin del valor futuro. Existen formas de estimar este ltimo parmetro que se conoce como dimensin del espacio de estados pero su

5.3 Aplicacin conexionista en tarea de prediccin.

95

x(t )

x1

x(t t ) x(t 2t )

x2

y1 = x(t + t )

x3

Figura 5.4: Arquitectura unidireccional de alimentacin hacia adelante adaptada para el tratamiento de la variable temporal para una dimensin del espacio de entrada igual a 3. descripcin queda fuera del alcance de este libro. Esta forma de adaptar los perceptrones multicapa para la prediccin de series temporales es equivalente a un modelo de autorregresin no lineal de orden p, lo que quiere decir que aproximamos x(t + t ) mediante x(t + t ) = FRN (x(t ), x(t t ), ..., x(t p t ). (5.3)

Decimos que es un modelo no lineal porque la funcin FRN que computa la red neuronal es no lineal (recordad la forma de las funciones de activacin), y de autorregresin porque la funcin que nos permite obtener x(t + t ) a partir de los valores anteriores de la serie se obtiene de la propia serie temporal. La segunda alternativa, en algunos aspectos equivalente a la anterior, consiste en emplear las redes neuronales con retardo temporal (Time Delay Neural Networks o TDNN en ingls). Consiste bsicamente en dotar de memoria temporal a la red neuronal. Memoria de las entradas y de las activaciones que tuvieron lugar en el pasado reciente. Ello se consigue replicando las capas del perceptrn y haciendo que a cada rplica le lleguen las entradas con diversos retardos. Vemoslo con el ejemplo unidimensional de la serie anterior (gura 5.3) a la que, por jar ideas, vamos a dotar de una capa oculta de 7 neuronas. Para dotar de retardo a esa red neuronal de 3-7-1 neuronas vamos a permitir que la activacin de la neurona de salida dependa, no slo de la activacin actual de las neuronas de la capa oculta sino de sus cinco ltimos valores de activacin. Para ello necesitamos replicar la capa oculta que tenamos inicialmente cuatro veces hasta tener cinco capas ocultas de siete neuronas cada una. La neurona de salida estar conectada completamente a cada una de las rplica totalizando 35 sinapsis. Igualmente, deseamos que las activaciones de las neuronas de la capa intermedia dependan de los ltimos cinco valores de entrada a la red. En ese caso, y puesto que tenemos cinco rplicas de la capa oculta necesitaremos nueve neuronas en la capa de entrada de forma que la arquitectura de la red neuronal quedara descrita por la gura 5.3 (como en el caso anterior, cada neurona de la capa de entrada representa un valor de la serie con retardos crecientes). Tngase en cuenta que, en este ejemplo, los valores del nmero de rplicas son arbitrarios y no estn justicados por un anlisis previo del problema sino escogidos para dar un ejemplo prctico de TDNN. La conectividad es total entre cada neurona de cada capa oculta y su campo receptivo en la capa de entrada compuesto

96

Aplicaciones

Output neuron

Hidden layers (5 delays)

Input layer (9 delays)

Figura 5.5: Arquitectura resumida de una red TDNN (slo se muestran los extremos de los campos receptivos, es decir la primera y la ltima neurona conectadas a la capa oculta, y no todas las sinapsis por claridad). por 5 neuronas.

5.3.1.

Planteamiento del problema

La supercie del Sol (llamada fotosfera) presenta habitualmente regiones oscuras debido a la presencia de altas concentraciones de campo magntico. El nmero y tamao de las regiones oscuras denominadas manchas solares vara de forma muy irregular a corto plazo (del orden de meses) pero sigue ciclos de once aos en los que se pasa por una fase de mnima actividad (con pocas manchas presentes en la supercie) y otra de mxima. El ejemplo que proponemos al lector es el de predecir el nmero de manchas solares para los meses posteriores a diciembre del ao que comienza el curso acadmico a partir de los datos registrados desde 1749 que puede encontrar en la pgina web de la asignatura como chero de descarga MONTHLY.PLT (ver gura 5.3.1.

5.3.2.

Preprocesado de los datos

Si se examina el chero de datos se comprueba que est compuesto de tres columnas que contienen el ao, el mes y el nmero promedio de manchas solares correspondientes. A pesar de ello, el problema abstracto consta nicamente de una entrada y una salida porque la coordenada temporal est desgajada en dos columnas. Una sencilla operacin aritmtica x = ao + mes/12 nos proporciona la entrada que necesitamos. En lo referente a la normalizacin, volvemos a una situacin similar a la de los casos

x(t 8t ) x(t 7t ) x(t 6t ) x(t 5t ) x(t 4t ) x(t 3t ) x(t 2t ) x(t t ) x(t )

5.3 Aplicacin conexionista en tarea de prediccin.

97

Media mensual de manchas solares

Tiempo (aos) Figura 5.6: Representacin grca del registro mensual medio de manchas solares.

anteriores: no es imprescindible pero s puede mejorar ligeramente los resultados de la red. As pues, podemos transformar la entrada para que se ajuste al intervalo [-0.5:0.5] por ejemplo y el valor promedio mensual de las manchas solares entre 0 y 1.

5.3.3.

Arquitectura y aprendizaje

En la presentacin del problema ya hemos introducido las dos arquitecturas ms sencillas que podemos adoptar para resolver el problema: el perceptrn multicapa clsico o una TDNN (Time Delay Neural Network). El nmero de unidades de salida en ambos casos es fcilmente deducible: 1. El nmero de capas ocultas y sus dimensiones deben ser obtenidas por tanteo comparando los errores obtenidos en cada caso en el proceso de validacin. De igual manera, lo que hemos denominado dimensin del espacio de entrada, es decir, el nmero de valores previos necesario para efectuar la prediccin se determinar de forma aproximada probando diferentes conguraciones empezando por valores pequeos y aumentando hasta que la adicin de nuevas neuronas a la capa de entrada no produzca mejoras signicativas en el rendimiento de la red. No es necesario que se pruebe un nmero muy elevado de valores: para comparar, podemos empezar con dimensiones de entrada de 3, 6 y 12. Obtener la arquitectura de la red de esta forma reeja la falta de una fundamentacin terica de la metodologa en el temario de la asignatura. De hecho, algo parecido a esta fundamentacin slo empieza a vislumbrarse en los ltimos aos en el campo de investigacin del conexionismo y por ello hemos preferido dejarla fuera de la materia de estudio.

98

Aplicaciones

5.3.4.

Resumen y propuesta de ejercicio

En este ejercicio, proponemos el empleo de redes neuronales para predecir el valor de una magnitud (el promedio mensual de manchas solares de los meses prximos) a partir de un registro de los valores de esa magnitud durante los ltimos siglos. Para ello emplearemos un perceptrn multicapa simple y una TDNN y entrenaremos ambas redes con los mismos conjuntos de entrenamiento/validacin/comprobacin (que tendrn que ser creados por el lector). Asimismo, compararemos os resultados de ambas arquitecturas en trminos de error absoluto tanto con el conjunto de comprobacin como con los datos de medias mensuales que vayan apareciendo durante los meses que componen el segundo cuatrimestre y que se incorporarn a la pgina web de la asignatura. Recomendamos que se representen grcamente los errores absolutos y relativos (ver seccin 5.2.4) para predicciones cada vez ms alejadas del ltimo dato accesible para el entrenamiento (diciembre del ao de comienzo del curso) y que se discuta la degradacin en la bondad de las predicciones.

5.4.

Paradigma unicado para tareas con aprendizaje supervisado

Lo que pretendemos al cerrar este bloque del ltimo captulo es volver a la formulacin terica mostrada en los captulos 1 y 2 para ilustrar que, en el fondo, todos los ejemplos de tarea resolubles mediante un perceptrn multicapa caen bajo una clase habitualmente denominada reconocimiento de patrones y que las distinciones entre unas y otras se difuminan cuando formalizamos la tarea en trminos abstractos. Matemticamente se trata de un nico problema que consiste en optimizar los parmetros de una funcin de RNe en RNs (los pesos de las sinapsis) segn el valor de error elegido para evaluar el rendimiento de la red neuronal. En el plano abstracto, el primer caso se trataba de reconocer patrones y clasicarlos; en el segundo, de reconocer el patrn de funcionamiento de un sistema y reproducirlo; en el ltimo, aprender el comportamiento de un sistema variable temporalmente, reconocer patrones de cambio presentados a la red y predecir de acuerdo con la experiencia pasada.

5.5.

Aplicacin conexionista en tarea de clustering.

Finalmente, proponemos al lector un ltimo ejercicio para poner en prctica los conocimientos adquiridos en el rea del agrupamiento en clases. Para ello, proponemos un caso clsico en Inteligencia Articial conocido como Iris. El ejemplo est tomado del almacn de ejemplos de la Universidad de Carnegie Mellon y consiste en 150 casos que representan caractersticas de tres tipos de plantas iris. Cada caso consta de 4 caractersticas de la planta (medidas de la anchura y longitud de los ptalos y spalos) y de una ltima columna con la clase a la que pertenece. Hay 50 ejemplos de cada clase y una de ellas es separable linealmente de las otras dos. El ejercicio propuesto consiste en probar diferentes mapas autoorganizados con el software sugerido (SOM_PAK) y comprobar si la agrupacin generada se corresponde con las clases incluidas en el chero de casos que, de nuevo, est disponible en la pgina web de la asignatura. Recomendamos emplear umat para general un grco que represente las particiones del

5.5 Aplicacin conexionista en tarea de clustering.

99

mapa y vcal para identicar las particiones.

100

Aplicaciones

Captulo 6

Teorema de convergencia de perceptrones


La prueba de que un perceptrn es capaz de encontrar un hiperplano de separacin en un nmero nito de pasos de entrenamiento para conjuntos linealmente separables se basa en los siguientes conceptos: 1. Para simplicar la demostracin vamos a normalizar la solucin de forma que || || = 1,0. Esta normalizacin no hace que la demostracin pierda generalidad || representan el mismo hiperplano de separacin. Adems, puesto que y || vamos tambin a normalizar los vectores de entrenamiento x[n] de forma que ||x[n]|| = 1 para todo n. Esto ltimo puede parecer extrao pero tampoco resta generalidad a la demostracin ya que partimos de un conjunto de datos separables linealmente y hace extraordinariamente ms sencillos los pasos que siguen a continuacin. En cualquier caso, el lector puede intentar demostrar el teorema sin estos requisitos de normalizacin. 2. Denamos como el valor absoluto del mnimo de los productos | x[n]| y como un valor arbitrario comprendido entre 0 y . 3. La demostracin implica la denicin de una funcin que mide lo cerca que est una iteracin de la solucin . Emplearemos como funcin G= = cos || || (6.1)

donde theta es el ngulo entre la solucin y la tau-sima iteracin . As pues, G es menor o igual a 1. 4. Tras cada actualizacin del vector de pesos debida a un vector x mal clasicado, la funcin G se incrementa en una cantidad no despreciable. El numerador pasa a valer +1 = ( + x) = + x + (6.2)

Si inicializamos el vector a cero (0 = 0) tendremos que tras p iteraciones p p 101

102

Teorema de convergencia de perceptrones

5. Por su parte, el denominador pasar a valer ||+1 || = || + x|| = ( )2 + (x)2 + 2 x < ( )2 + 1 p. (6.3)

6. Resumiendo, tras p iteraciones la funcin G cumple las siguientes desigualdades p 1G= (6.4) > p || p || de donde tenemos que el nmero de iteraciones est acotado segn p < 12 , o lo que es lo mismo, el algoritmo de aprendizaje alcanza la meta G = 1 en un nmero nito de pasos.

de forma que, tras p actualizaciones tendremos || p || <

Bibliografa
[BCP04] M.F. Bear, B.W. Connors, and M.A. Paradiso. Neurociencia: explorando el cerebro. Masson-Williams & Wilkins Espaa, 2004. [BD62] [Bis95] [Fah88] Richard E. Bellman and Stuart E. Dreyfus. Applied Dynamic Programming. Princeton University Press, Princeton, New Jersey, 1962. Christopher M. Bishop. Neural Networks for Pattern Recognition. Oxford University Press, Oxford, UK, 1995. Scott E. Fahlman. Faster-learning variations on back-probagation: An empirical study. In D. Tourtzky, G. E. Hinton, and Terrence J. Sejnowski, editors, Proceedings of the 1988 Connectionist Models Summer School, pages 3851, San Mateo, CA, 1988. Morgan Kauffmann. Zoubin Ghahramani and Michael I. Jordan. Learning from incomplete data. Technical Report CBCL-108, MIT Articial Intelligence Laboratory, January 24 1995. R. P. Gorman and T. J. Sejnowski. Analysis of hidden units in a layered network trained to classify sonar targets. Neural Networks, 1:7589, 1988. Simon Haykin. Neural Networks. Macmillan College Publishing Company, New York, 1994.

[GJ95]

[GS88] [Hay94]

[HKP91] John Hertz, Anders Krogh, and Richard G. Palmer. Introduction to the Theory of Neural Computation. Addison-Wesley, Reading, Massachusetts, 1991. [Jac88] [MP43] Robert A. Jacobs. Increased rates of convergence through learning rate adaptation. Neural Networks, 1(4):295307, 1988. Warren S. McCulloch and Walter Pitts. A logical calculus of the ideas immanent in nervous activity. Bulletin of Mathematical Biophysics, 5:115 137, 1943.

[PNH86] D. C. Plaut, S. J. Nowlan, and G. E. Hinton. Experiments on learning back propagation. Technical Report CMUCS86126, CarnegieMellon University, Pittsburgh, PA, 1986. [RB93] Martin Riedmiller and Heinrich Braun. A direct adaptive method for faster backpropagation learning: The RPROP algorithm. In Proc. of the IEEE Intl. Conf. on Neural Networks, pages 586591, San Francisco, CA, April 1993. 103

104

BIBLIOGRAFA

[RHW86] D.E. Rumelhart, G.E. Hinton, and R.J. Williams. Learning representations by back-propagating errors. Nature, 323:533, 1986. [Ros62] [WH60] F. Rosenblatt. Principles of Neurodynamics: Perceptrons and the Theory of Brain Mechanisms. Spartan Books, Washington DC, 1962. B. Widrow and M. E. Hoff. Adaptive switching circuits. In 1960 IRE WESCON Convention Record, pages 96104, New York, 1960.

También podría gustarte