introducción a la neurocomputación

Upload: dante

Post on 10-Feb-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/22/2019 Introduccin a la NeuroComputacin

    1/112

    Sistemas Basados en el

    Conocimiento II:Introduccin a la

    Neurocomputacin

    Texto base de la asignatura del mismo nombreperteneciente al Plan de Estudios de la Universidad

    Nacional de Educacin a Distancia.Equipo Docente de la Asignatura

    Universidad Nacional de Educacin a Distancia2004

  • 7/22/2019 Introduccin a la NeuroComputacin

    2/112

    II

    Sistemas Basados en el Conocimiento II Equipo Docente de la Asignatura

    This work is licensed under the CreativeCommons Attribution-NonCommercial-NoDerivsLicense. To viewa copyof this license, visit http://creativecommons.org/licenses/by-nc-nd/2.0/ or send a letter to Creative Commons,559 Nathan Abbott Way, Stan-ford, California 94305, USA.

  • 7/22/2019 Introduccin a la NeuroComputacin

    3/112

    ndice general

    1. Introduccin 1

    1.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1.2. Modelos de neurona . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.3. Arquitecturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    1.4. Tareas genricas en Neurocomputacin . . . . . . . . . . . . . . . . 15

    1.4.1. Redes neuronales en tareas de clasificacin . . . . . . . . . . 16

    1.4.2. Redes neuronales para regresin . . . . . . . . . . . . . . . . 17

    1.4.3. Redes neuronales en tareas de control . . . . . . . . . . . . . 17

    1.4.4. Redes neuronales en tareas de prediccin temporal . . . . . . 18

    2. Retropropagacin del error 23

    2.1. El formalismo matemtico del algoritmo. . . . . . . . . . . . . . . . 23

    2.1.1. La arquitectura de la red . . . . . . . . . . . . . . . . . . . . 23

    2.1.2. El algoritmo de ajuste de los pesos . . . . . . . . . . . . . . . 26

    2.2. Aspectos metodolgicos del entrenamiento de una red neuronal. . . . 35

    2.2.1. Preprocesado de las variables de entrada/salida. . . . . . . . 35

    2.2.2. Descomposicin del error. Definicin de trminos.El compro-miso entre sesgo y varianza . . . . . . . . . . . . . . . . . . 41

    2.2.3. Anlisis estadstico: cmo minimizar el error. La validacincruzada y la regularizacin. . . . . . . . . . . . . . . . . . . 43

    2.2.4. Tipos de error . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    2.3. Mejoras del algorimo . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    2.4. La notacin matricial . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    II I

  • 7/22/2019 Introduccin a la NeuroComputacin

    4/112

    IV NDICE GENERAL

    3. Los mapas autoorganizados de Kohonen 55

    3.1. Introduccin. Algoritmos de agrupamiento en clases oclustering

    . . . 553.2. Los mapas autoorganizados de Kohonen. El algoritmo. . . . . . . . . 59

    4. Herramientas de ayuda en el desarrollo de redes neuronales 73

    4.1. Concepto de simulador de redes neuronales . . . . . . . . . . . . . . 73

    4.2. Java Neural Network Simulator (JavaNNS) . . . . . . . . . . . . . . 74

    4.2.1. Instalacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

    4.2.2. Creacin de una red neuronal . . . . . . . . . . . . . . . . . 75

    4.2.3. Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . 77

    4.3. Herramientas de JavaNNS . . . . . . . . . . . . . . . . . . . . . . . 81

    4.3.1. Batchman . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

    4.3.2. snns2c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

    4.3.3. Simulacin con JavaNNS . . . . . . . . . . . . . . . . . . . . 82

    4.4. SOM_PAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

    4.4.1. Instalacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

    4.4.2. Uso y ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . 84

    5. Aplicaciones 89

    5.1. Aplicacin conexionista en tarea de clasificacin. . . . . . . . . . . . 89

    5.1.1. Planteamiento del problema . . . . . . . . . . . . . . . . . . 89

    5.1.2. Preprocesado de los datos . . . . . . . . . . . . . . . . . . . 90

    5.1.3. Arquitectura y aprendizaje . . . . . . . . . . . . . . . . . . . 91

    5.1.4. Resumen y propuesta de ejercicio. . . . . . . . . . . . . . . . 91

    5.2. Aplicacin conexionista en tarea de identificacin/regresin. . . . . . 92

    5.2.1. Planteamiento del problema . . . . . . . . . . . . . . . . . . 93

    5.2.2. Preprocesado de los datos . . . . . . . . . . . . . . . . . . . 94

    5.2.3. Arquitectura y aprendizaje . . . . . . . . . . . . . . . . . . . 94

    5.2.4. Resumen y propuesta de ejercicio . . . . . . . . . . . . . . . 95

    5.3. Aplicacin conexionista en tarea de prediccin. . . . . . . . . . . . . 96

  • 7/22/2019 Introduccin a la NeuroComputacin

    5/112

    NDICE GENERAL V

    5.3.1. Planteamiento del problema . . . . . . . . . . . . . . . . . . 98

    5.3.2. Preprocesado de los datos . . . . . . . . . . . . . . . . . . . 985.3.3. Arquitectura y aprendizaje . . . . . . . . . . . . . . . . . . . 99

    5.3.4. Resumen y propuesta de ejercicio . . . . . . . . . . . . . . . 100

    5.4. Paradigma unificado para tareas con aprendizaje supervisado . . . . . 100

    5.5. Aplicacin conexionista en tarea de clustering. . . . . . . . . . . . . 100

    A. Teorema de convergencia de perceptrones 103

    Bibliografa 105

  • 7/22/2019 Introduccin a la NeuroComputacin

    6/112

    VI NDICE GENERAL

  • 7/22/2019 Introduccin a la NeuroComputacin

    7/112

    Captulo 1

    Introduccin

    Objetivo: En este primer captulo se va a tratar de dar una perspectiva histrica deldesarrollo de las redes neuronales como modelo de computacin. Al hilo de este re-paso histrico, introduciremos los conceptos fundamentales de un modelo general deneurocomputacin. En captulos siguientes veremos cmo las distintas arquitecturas yalgoritmos 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 contextualizarel campo de la Neurocomputacin dentro del marco ms general de la InteligenciaArtificial ayudndonos de algunos conceptos clave de la Ingeniera del Conocimiento.Desde esta perspectiva, la neurocomputacines una forma, inspirada en la biologa, deresolver algunas tareas encontradas frecuentemente cuando se trata de reproducir me-diante computadoras habilidades atribuidas a la inteligencia humana. Al analizar estashabilidades nos encontramos que las ms complejas se pueden descomponer en tareasy subtareas hasta llegar a inferencias primitivas que aaden informacin a la disponi-ble inicialmente sin que podamos subdividir el proceso en pasos ms simples. A lasdistintas formas de implementar una tarea se las conoce como Mtodos de Resolucinde Problemas (o Problem Solving Methods en ingls). Estos mtodos en la prctica

    combinan mdulos que pertenen a muchas categoras distintas de entre las que pode-mos 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 dela subtarea o inferencia que se desea implementar. Aqu vamos a profundizar en losmtodos conexionistas de resolver tareas que se caracterizan por su naturaleza distri-buida, de grano fino y autoprogramable. Estos mtodos nacieron de la apuesta de lospioneros de la Inteligencia Artificial por intentar resolver los problemas a los que seenfrenta esta disciplina con la misma metodologa de la propia Naturaleza. En otraspalabras, buscaron en la Biologa inspiracin para resolver con computadoras tareaspropiamente humanas. Esto implica necesariamente recurrir a la Neurobiologa paratratar de entender la forma en que nuestros cerebros realizan esta tareas. Aunque deforma superficial, dedicaremos lo que resta de esta seccin introductoria a resumir loque sabemos hoy en da de la forma como funcionan las neuronas biolgicas.

    1

  • 7/22/2019 Introduccin a la NeuroComputacin

    8/112

    2 Introduccin

    Figura 1.1: Esquema-dibujo de D. Santiago Ramn y Cajal de las distintas tipologasneuronales del cerebelo.

    Aunque hay muchos tipos diferentes de neuronas en el sistema nervioso central (SNC,ver figura 1.1) su estructura funcional es la misma: un cuerpo celular denominadosoma, un conjunto de ramificaciones que parten del soma denominadas dendritas yuna eferencia de mayor longitud y menos ramificada que las dendritas denominadaaxn (ver figura 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 ytrasmitidos al soma, ste a su vez puede generar una seal de activacin a lo largo delaxn que termine excitando a otras neuronas. Por lo tanto, podemos considerar que elsoma, respecto de las entradas procedentes de otras neuronas, desempea una funcinde toma de decisin: si el nivel de excitacin de dichas neuronas sobrepasa un ciertoumbral el soma se dispara y enva a su vez una seal excitadora a lo largo del axn. Allugar donde se produce la transmisin de informacin entre el axn de una neurona yla dendrita de otra se lo conoce como sinapsis y, dado que la informacin siempre setransmite en un sentido (del axn de una neurona hacia la dendrita de otra a) vamos allamar neurona presinptica a aqulla y postsinptica a sta. La naturaleza exacta delos trminos empleados anteriormente -como estmulo, activacin o excitacin- estrelacionada con la fisiologa 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 depotencial entre el interior y el exterior de la clula. Las seales a las que hacemosreferenciaestn codificadas en el potencial intracelular y en su evolucin temporal. Sinembargo, y como ocurrir a menudo a lo largo de los prximos captulos, no podemosperseguir hasta sus ltimas consecuencias este cuadro general y recomendamos allector interesado la lectura de cualquiera de los nmerosos textos introductorios al

    aDesgraciadamente no podemos matizar adecuadamente esta afirmacin por escaparse del objetivo glo-bal de este escrito. Baste decir aqu que investigaciones recientes en el campo de la Neurobiologa apuntana la existencia de mecanismos qumicos que permiten a la neurona presinptica recibir informacin sobresi su estado de activacin contribuy a disparar un potencial de accin en la neurona postsinptica.

  • 7/22/2019 Introduccin a la NeuroComputacin

    9/112

    1.2 Modelos de neurona 3

    Figura 1.2: Esquema-dibujode D. Santiago Ramn y Cajal de las partes que componenuna neurona tipo.

    campo (por ejemplo, [BCP04]).

    Como decamos, esta descripcin es necesariamente simplificadora. Sin embargo, noshemos dejado fuera de la descripcin un elemento fundamental que debemos recogerahora y es el hecho de que las seales procedentes de las neuronas pueden ser exci-

    tadoras o inhibidoras y, de igual modo, la seal enviada a lo largo del axn de unaneurona, puede servir para excitar o inhibir la excitacin de la neurona postsinpti-ca. Adems, la capacidad excitatoria/inhibitoria de una sinapsis puede variar con eltiempo y potenciarse o disminuir.

    En resumen, tenemos que desde un punto de vista computacional la neurona funcionacomo la suma de un campo receptivo dendrtico, una funcin de decisin no lineal (elsoma) y una lnea de transmisin de la respuesta (axn). La realidad es infinitamentems compleja y rica que lo que se ha descrito aqu. Pero, como punto de partida paraconstruir modelos de neurona artificial tendr que servir.

    1.2. Modelos de neurona

    Histricamente, el primer modelo de neurona artificial, basado en los conocimientosde neurofisiologa disponibles durante la primera mitad del siglo XX, es el de la neu-rona formal de Warren McCulloch y Walter Pitts [MP43]. Dicho modelo, adaptado ala notacin y nomenclatura unificada que se emplear en el resto del libro, se muestrade forma esquemtica en la figura 1.3.

    Dicho esquema representa una neurona que recibe Ne entradas. Las conexiones apare-cen en la figura como flechas que parten de la zona izquierda de la figura y que llevanasociado un peso i donde el subndice i se refiere a la entrada y toma valores entre 1y Ne. McCulloch y Pitts, inspirados en el comportamiento de las neuronas biolgicas,

  • 7/22/2019 Introduccin a la NeuroComputacin

    10/112

    4 Introduccin

    j1

    j2

    j3

    jN

    x2

    x1

    x3

    xN

    Neurona j

    g(Ni=1jixi)

    Figura 1.3: Representacin esquemtica de un elemento de computacin neuronal.

    definieron el nivel de activacin de la neurona como

    yj = g(a) = g(Ne

    i=1

    ixi) (1.1)

    donde a es la suma de las entradas xi ponderadas por los pesos de las conexiones iy g es una funcin (llamada funcin de activacin) que trasforma dicha suma en laFunciones de activacinactivacin final de la neurona, de forma que si a es inferior a un cierto umbral b laneurona no se activa (y = 0), y si lo supera la neurona tendr nivel de activacin yigual a uno. Expresado de forma matemtica

    g(a) = (a

    b) =1 si a b

    0 si 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 funcing tal y como la hemos definido en la ecuacin 1.2 se la conoce como funcin pasoo funcin umbral (thresholden ingls) y su representacin grfica se muestra en lafigura 1.4.

    g(aj) = (aj + 2)

    g(aj) = (aj)

    aj

    FuncinPaso

    oUmbral

    6420-2-4-6

    1

    0.8

    0.6

    0.4

    0.2

    0

    Figura 1.4: Representacin cartesiana de la funcin paso para dos valores de la pola-rizacin b = 0 y b =

    2.

  • 7/22/2019 Introduccin a la NeuroComputacin

    11/112

    1.2 Modelos de neurona 5

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0000

    0

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1111

    1

    1

    1

    1

    1

    x1

    x2

    Figura 1.5: Representacin en forma de sombreado rojo de los puntos x1,x2 del planoque activan la neurona del ejemplo.

    donde, de hecho, se muestran dos ejemplos de la funcin paso con valores diferentesdel umbral o polarizacin b. El valor de g para el caso a < b se podra haber defini-do como -1 y las propiedades formales de la neurona seran idnticas. Ms adelanteveremos un ejemplo en el que se emplea esta eleccin de la funcin umbral. sta noes la nica definicin posible de la funcin de activacin g, pero antes de estudiar lasalternativas posibles a la eleccin de McCulloch y Pitts conviene deternos a analizarsu significado. Para ello vamos a estudiar un ejemplo sencillo en el que una neuronaformal de McCulloch y Pitts posee nicamente dos entradas. Supongamos que el pesode la primera conexin vale 0,5 y el segundo 0,25, y la polarizacin de la neurona va-le 0,1. En ese caso, podemos preguntarnos qu posibles combinaciones de la entradahacen que se active la neurona. Un clculo sencillo nos lleva a la condicin

    2

    i=1

    i xi = 0,5 x1 + 0,25 x2 0,1 (1.3)

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

    0,5 x1 + 0,25 x2 = 0,1, (1.4)

    que aparece sombreado en la figura 1.5.

    De esta forma, vemos que una neurona formal de McCulloch y Pitts acta como unafuncin discriminante que tiene valor 1 en la regin del plano sombreada y 0 en el Funciones discriminan-

    tessemiplano restante. En otras palabras, la neurona es capaz de distinguir puntos de una

    regin de los de otra y clasificarlos segn la activacin resultante. Veremos ms ade-lante las implicaciones de este sencillo hallazgo cuando tratemos conjuntos de neu-ronas agrupados en capas y de las tareas genricas para las que el empleo de redesneuronales es apropiado. Por ahora baste sealar el papel desempeado por la polari-zacin o bias en el clculo de la neurona, que no es otro que permitir que la recta quedivide las dos zonas de activacin no tenga que pasar por el origen. Efectivamente,si la misma neurona hubiese tenido polarizacin 0 la ecuacin discriminante hubie-ra sido 0,5 x1 + 0,25 x2 = 0 que, como se puede comprobar pasa por el origen decoordenadas (0,0).

    Finalmente, antes de pasar a otros modelos de neurona,vamos a introducir un pequeocambio en la notacin que nos permitir simplificar algunas frmulas. En lugar deincluir explcitamente la polarizacin dentro de la definicin de g, vamos a tratarla

  • 7/22/2019 Introduccin a la NeuroComputacin

    12/112

    6 Introduccin

    x2

    xNe

    x1

    x0 = 1

    yNs

    y1

    y2

    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

    yj = g(a) = g(Ne

    i=0

    ixi) = g(0 1 +Ne

    i=1

    ixi) (1.5)

    g(a) = (a) =

    1 si a 00 si a < 0

    (1.6)

    Podis comprobar que la funcin discriminante sigue siendo la misma porque la neu-rona se activar en aquellas regiones donde a sea mayor que cero, y stas vienen dadaspor la nueva definicin 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 ex-presar la ecuacin 1.5 en notacin vectorial

    y = g(a) = g(Ne

    i=0

    ixi) = g(T x) (1.7)

    donde T es el vector de pesos de la neurona traspuesto y x es el vector de entradas(1,x1,x2,...,xNe ).

    Siguiendo el desarrollo histrico del campo de la Neurocomputacin nos encontramoscon la extensin del modelo formal de McCulloch y Pitts denominadaperceptrn . UnEl perceptrnperceptrn, tal como lo presenta Rosenblatt (1962) [Ros62] consiste en un conjuntode neuronas formales de McCulloch y Pitts que comparten las mismas entradas y queno estn conectadas entre s (ver figura 1.6).

    En dicha figura hemos introducido nuevos cdigos y convenciones que seguiremosempleando 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

  • 7/22/2019 Introduccin a la NeuroComputacin

    13/112

    1.2 Modelos de neurona 7

    crculos para representar dichos objetos porque en muchos textos del campo y en losneurosimuladores 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, nose trata de neuronas puesto que no realizan ningn cmputo sobre la entrada que cadauna 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 extendidaque se va a mantener en este libroy por ello las hemos representado con crculos. En la figura 1.6 podemos encontrar dosgrupos de neuronas: al primer grupo ya hemos hecho alusin, es la capa de neuronasde entrada. El segundo constituye la capa de neuronas de salida y est compuesto de

    Ns neuronas formales de McCulloch-Pitts. Finalmente, hemos aadido una entradax0 = 1 asociada al valor de la polarizacin.

    Vamos a utilizar una red sencilla como el perceptrn para introducir los conceptosms importantes en el campo de las redes neuronales. A partir de este bloque bsicoiremos, a lo largo del libro, exponiendo distintas variantes y modificaciones que darn

    lugar a los diferentes paradigmas de computacin neuronal.

    El perceptrn se introduce como clasificador de vectores. Ya hemos visto cmo cadaneurona formal de McCulloch-Pitts con dos entradas es un clasificador capaz de agru-par las entradas en dos regiones separadas por una recta. Una neurona de McCulloch-Pitts con Ne entradas divide el espacio de entrada en dos regiones separadas por unhiperplano 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 modeloneuronal que, en lo fundamental, corresponde a la neuronaformal de McCulloch-Pitts,sino en el algoritmo de ajuste de los pesos. Por simplicidad y sin falta de generalidadpuesto que todas las neuronas de la capa de salida son iguales, vamos a estudiarlo parael caso de una nica neurona.

    Dado un conjunto de vectoresx[n] de dimensinNe con n = 1,2,..,d, cuya pertenenciaa una de dos clases C1 o C2 es conocida de antemano, deseamos hallar el conjuntode pesos tales que, para todos los vectores x[n] pertenecientes a la clase C1 la neuronapresente activacin 1 y, al contrario, para todos los de clase C2, activacin -1 (a esteconjunto de dvectores cuya clase es conocida se lo conoce como conjunto de entrena-miento). Al valor deseado de la salida de la neurona para el n-simo vectorx[n] vamos Conjunto de entrena-

    mientoa llamarlo t[n] y ser igual a 1 para vectores de la clase C1 e igual a -1 para vectores dela clase C2 b. Lo que vamos a exponer a continuacin es el proceso de clculo de losparmetros de la red (pesos) realizado con el objetivo de que la red proporcione unasalida determinada (los valores t[n]). sto es lo que se conoce como entrenamiento Entrenamiento supervi-

    sadosupervisado de la red. En general, se llama entrenamiento al proceso de clculo de losprametros de la red. Ms especficamente, se emplea el trmino entrenamientosuper-

    visado cuando dicho clculo se realiza a partir de un conjunto de pares entrada/salidade la red prefijados de antemano. En este texto, dichos pares de entrenamiento se re-presentarn como x[n]/t[n] donde x[n] representa el vector de entrada yt[n] el vectorde salida que queremos que se produzca al presentar x[n] a la entrada de la red (sislo tenemos una neurona de entrada y una de salida en lugar de vectores tendremosescalares x[n]/t[n]). En resumen, los pesos de la red se van modificando para obtenerla salida (los vectorest[n]) deseada. Existe tambin una modalidad de entrenamientodenominada entrenamiento no supervisado que consiste calcular los pesos de la red a Entrenamiento no super-

    visado

    bNtese que aqu hemos modificado ligeramente la definicin de la funcin paso que pasa de valer 0cuando ()T x es menor que 0 a valer -1. Este cambio facilita la exposicin del algoritmo de entrenamientosin modificar las propiedades formales de la neurona.

  • 7/22/2019 Introduccin a la NeuroComputacin

    14/112

    8 Introduccin

    partir del conjunto de vectores de entrada sin forzar de ninguna manera la salida de lared. De ella hablaremos ms adelante en el captulo 3.

    Para hallar el conjunto de valores de los parmetros de un perceptrn, vamos a adoptarla estrategia de definir una funcin que mida el error con que clasifica la red para unconjunto de pesos y, a continuacin, vamos a calcular qu modificaciones en dichosparmetros haran disminuir el error de clasificacin.

    En una clasificacin perfecta, los valores de los pesos seran tales que tendramosque los vectoresx[n] del conjunto de entrenamiento que pertenecen a la clase C1 cum-plen ()T x[n] > 0 y por lo tanto, y[n] = t[n] = 1. Por otra parte, los de clase C2cumpliran que ()T x[n] < 0 y, por lo tanto, y[n] = t[n] = 1.

    Todo lo anterior implica que conseguir una clasificacin perfecta, como objetivo, esequivalente a disminuir el valor de la funcin

    E() = M

    ()T x[n] t[n] (1.8)

    donde M es el conjunto de vectores de entrada mal clasificados dado el conjunto depesos . La afirmacin anterior se puede ver de forma sencilla si consideramos queun vector de entrada x[n] puede ser clasificado incorrectamente porque,

    1. o bien es de clase C1 pero x[n] < 0 en cuyo caso habra que aumentar el valordex[n] o, lo que es lo mismo puesto que t[n] = 1, disminuir el dex[n]t[n]

    2. o bien es de clase C2 pero x[n] > 0 en cuyo caso habraque disminuir el valorde

    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 vectormal clasificado 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 deneuronas formales de McCulloch-Pitts cuyas conexiones deben ser ajustadas (median-te los pesos) de forma que minimicen el valor de una funcin E() llamada error. Enesto consiste el entrenamiento de cualquier red neuronal: las distintas variaciones so-bre el tema central del perceptrn consistirn en elegir diferentes arquitecturas (verseccin 1.3), funciones de activacin, definiciones del error o algoritmos de minimi-zacin de dicho funcin del error. A lo largo del temario del libro iremos analizandodiferentes elecciones posibles y su significado.

    Ya hemos justificado intuitivamente la funcin de error del perceptrn:

    E() = M

    ()T x[n] t[n] (1.9)

    Resta ahora definir un algoritmo de minimizacin de dicha funcin. La opcin msnatural es la que sirvi histricamente para la definicin del perceptrn. Para com-prender esta definicin es necesario entender el concepto de gradiente. No nos vamosa ocupar aqu de justificar que el gradiente de una funcin en un punto marca la di-reccin de mximo crecimiento de dicha funcin, pero dicha justificacin se puedeencontrar en cualquier texto de clculo elemental. Dndolo por supuesto, entonces elgradiente cambiado de signo apuntar en la direccin de mxima disminucin que es

  • 7/22/2019 Introduccin a la NeuroComputacin

    15/112

    1.2 Modelos de neurona 9

    precisamente lo que estamos buscando: disminuir la funcin error. Por ello, el algo-ritmo 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 lafuncin de error. La ecuacin 1.10 representa un grupo de mtodos conocidos habi-tualmente como de descenso del gradiente. Descenso del gradiente

    Si sustituimos la ecuacin 1.9 en 1.10 obtendremos que

    =M

    x[n] t[n] (1.11)

    frmula equivalente a

    =d

    n=1

    x[n] (t[n]y[n])2 (1.12)

    en la que hemos incluido los vectores correctamente clasificados que no contribuirna puesto que para ellos t[n]y[n] = 0.

    Considrese ahora la situacin descrita en la figura 1.7: en ella vemos cmo aplicandoel mtodo de descenso del gradiente podemos pasar de largo el mnimo en la funcinde error si el gradiente es muy pronunciado. Para evitar este tipo de situaciones sesuele aplicar slamente una fraccin del incremento de pesos dado por la ecuacin1.12. A dicha fraccin se la conoce como velocidad de aprendizaje y en este texto se velocidad de aprendizajerepresentar por la letra griega. Una fraccin del 10 % del valor dado por la ecuacin1.12 corresponde a = 0,1. Como vemos, su funcin es ralentizar el aprendizaje para

    evitar actualizaciones de los pesos demasiado grandes que pudieran desestabilizar elproceso, lo que podra ocurrir si la funcin de error tuviera varios mnimos locales(caso no representado en la figura).

    E()

    21.510.50-0.5-1-1.5-2

    5

    4

    3

    2

    1

    0

    -1

    Figura 1.7: Ejemplo de aprendizaje con un nico mnimo local. El proceso de apren-dizaje converge finalmente al valor del error mnimo tras una serie de oscilaciones. Laintroduccin del factor (velocidad de aprendizaje) ayuda a evitar estas oscilacionesy otras posibles dificultades asociadas a la existencia de varios mnimos locales.

    En ese caso, al introducir la velocidad de aprendizaje la ecuacin de actualizacin de

  • 7/22/2019 Introduccin a la NeuroComputacin

    16/112

    10 Introduccin

    pesos se transforma en

    = d

    n=1x[n] (t[n]

    y[n])

    2 (1.13)

    o, si la funcin de activacin hubiese tomado valores 0 para los vectores de claseC2 laregla de actualizacin en

    = d

    n=1

    x[n] (t[n]y[n]). (1.14)

    Ambas ecuaciones proporcionan el incremento de los pesos que hace disminuir lafuncin error de acuerdo con el mtodo del descenso del gradiente una vez presen-tado un ciclo completo de pares de entrenamiento (de ah el sumatorio en n) . stose conoce como entrenamiento por lotes (batch learning en ingls) porque no se mo-Entrenamiento por lotes

    difican los pesos hasta haber presentado el lote completo de pares de entrenamientodisponibles. Una alternativa posible es hacer la modificacin correspondiente a cadapar inmediatamente despus de ser calculada. sto se conoce como entrenamiento se-Entrenamiento secuen-

    cial cuencial (sequential o pattern-based learning en ingls). En ese caso, el algoritmo deactualizacin 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 laneurona.

    4. Calcular las modificaciones al vector de pesos de acuerdo con la ecuacin1.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 esigual a d, modificar los pesos segn la suma de los incrementos calculados enel paso anterior y retornar al paso 2.

    y finaliza cuandoel perceptrnclasifica correctamente todos los pares de entrenamien-to o cuando el error de clasificacin (dado por la ecuacin 1.9) disminuye por debajoError de la redde un umbral aceptable marcado de antemano.

    Ejemplo 1 (Perceptrn):Calculad los parmetros de la red ms sencilla posible queclasifica correctamente los siguientes puntos del plano en las dos clases definidas por

    t[n] = 0 C1 y t[n] = 1 C2. Supngase que la velocidad de aprendizaje es cons-tante e igual a 0,1.

    n (x1,x2) t[n]

    1 (-0.5, -0.5) 12 (-0.5, 0.5) 13 ( 0.3, -0.5) 04 ( 0.0, 1.0) 0

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

  • 7/22/2019 Introduccin a la NeuroComputacin

    17/112

    1.2 Modelos de neurona 11

    0 1 20.3577 -0.5621 -0.9059

    donde hemos representado la polarizacin como un nuevo peso 0 asociado a una en-trada x0 = 1. Comenzamos el primer ciclo de aprendizaje cuyos resultados se resumena continuacin:

    n a y[n] t[n]y[n] 0 1 21 1.0917 1 0 0 0 02 0.1858 1 0 0 0 03 0.6420 1 -1 -0.1 -0.03 0.054 -0.5482 0 0 0 0 0

    Aplicamos las correcciones a los pesos y obtenemos

    0 1 2(polarizacin)

    0.2577 -0.5921 -0.8559

    Dado que el resultado no clasifica correctamente los pares de entrenamiento realiza-mos un segundo ciclo de entrenamiento:

    n a y[n] t[n]y[n] 0 1 21 0.9817 1 0 0 0 0

    2 0.1258 1 0 0 0 03 0.5080 1 -1 -0.1 -0.03 0.054 -0.5982 0 0 0 0 0

    Aplicamos las correcciones correspondientes a este segundo ciclo y obtenemos

    0 1 2(polarizacin)

    0.1577 -0.6221 -0.8059

    Para el tercer ciclo tendremos

    n a y[n] t[n]y[n] 0 1 21 0.8717 1 0 0 0 02 0.0658 1 0 0 0 03 0.3740 1 -1 -0.1 -0.03 0.054 -0.6482 0 0 0 0 0

    No tiene sentido continuar reproduciendolos clculos detallados del procesode apren-dizaje. Baste decir que, al cabo de pocas iteraciones la red clasifica correctamente loscuatro vectores de entrada. La figura 1.8 muestra la situacin de los vectores en elplano y de la funcin discriminante al comienzo y al final del proceso de aprendizaje.

  • 7/22/2019 Introduccin a la NeuroComputacin

    18/112

    12 Introduccin

    x1

    x2

    10.50-0.5-1

    1

    0.5

    0

    -0.5

    -1

    Figura 1.8:Hiperplano de separacin al comienzo (lnea recta de trazo negro) y al final(trazo rojo) del proceso de aprendizaje.

    Como se ha demostrado anteriormente, una neurona formal de McCulloch-Pitts esun discriminante que divide el espacio de entrada en dos regiones separadas por unhiperplano (o una recta si, como en los ejemplos, el espacio de entrada es bidimen-sional). Por lo tanto, un perceptrn, que no es ms que un conjunto de Ns neuronasde McCulloch-Pitts que comparten las entradas, divide el espacio de entrada en 2Ns

    regiones separadas por hiperplanos. As pues, un perceptrn ser una herramienta declasificacin apropiada siempre que las clases definidas en el espacio de entrada sean

    separables mediante rectas (o hiperplanos) como es el caso del ejemplo anterior y delque se incluye al final del captulo. Considrese sin embargo el conjunto de pares deentrenamiento mostrado en la figura 1.9. Como se podr comprobar rpidamente, noexiste ningn perceptrn de una nica neurona capaz de separar el espacio de entradaen dos regiones que contengan todos los puntos correspondientes a cada clase. Si au-mentamos el nmero de neuronas en el perceptrn aumentaremos el nmero de clasespero no conseguiremos que los puntos de la misma clase produzcan una misma salidadel perceptrn. El ejemplo de la figura 1.9 es lo que se conoce como un problemaSeparabilidad linealno separable linealmente y representa una limitacin muy seria de la capacidad declasificacin de los perceptrones.

    Sin embargo, para problemas con la propiedadde separabilidad lineal tenemos que ca-da 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 respectivamen-te, tenemos que la nueva contribucin al error debida a un patrn dado despus deactualizar 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.

  • 7/22/2019 Introduccin a la NeuroComputacin

    19/112

    1.2 Modelos de neurona 13

    Ms an, el teorema de convergencia garantiza que un perceptrn es capaz de hallar Teorema de convergen-cia del perceptrnla solucin que clasifica todos los patrones de entrenamiento en un nmero finito de

    pasos. La demostracin del teorema basada en la interpretacin de Bishop [Bis95] deloriginal de Hertz et al. [HKP91] se incluye en el apndice A.

    x1

    x2

    1.510.50-0.5

    1.5

    1

    0.5

    0

    -0.5

    Figura 1.9: Representacin grfica del problema XOR. Un perceptrn de una capa nopuede sintetizar artificialmente este problema por no ser linealmente separable en lavariables x1,x2. Se le ocurre al lector alguna forma de resolverlo con una cambio devariables?La extensin de todo lo antedicho a un perceptrn de ms de una neurona implica ladefinicin del peso de la entrada i a la neurona de salida j como ji. sto a su vezdar lugar a que cada neurona de salida del perceptrnposea 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

    aj =Ne

    i=0

    ji xi = (j)T x, (1.16)

    j = d

    n=1

    x[n] (tj[n]yj[n])2

    (1.17)

    y

    = d

    n=1

    x[n] (tj[n]yj[n]). (1.18)

    para las dos posibles funciones de activacin del perceptrn.

    Bernard Widrow y Marcian Hoff [WH60] introdujeron en 1960 una variante de lasneuronas de McCulloch-Pitts con propiedades interesantes. La variacin de un ADAp-tive LINear Element(elemento adaptativo lineal o ADALINE) respecto a las neuronas Adalines/Madalinesde McCulloch-Pitts consiste en utilizar una nueva funcin de activacin denominadafuncin de activacin lineal dada por la ecuacin g(a) = a y representada en la figura1.10. Esta modificacin permite reescribir la definicin de la funcin error de una for-ma 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 salidade la neurona y[n]. La nueva definicin del error vendr dada por la ecuacin

    E() = 12

    d

    n=1

    t[n]y[n]2 = 12

    d

    n=1

    (t[n]y[n])T (t[n]y[n]) (1.19)

  • 7/22/2019 Introduccin a la NeuroComputacin

    20/112

    14 Introduccin

    g(aj) = aj

    aj

    FuncinLineal

    6420-2-4-6

    6

    4

    2

    0

    -2

    -4

    -6

    Figura 1.10: Funcin de activacin lineal.

    conocida como error cuadrtico medio (Mean Square Erroren ingls). En el caso deError cuadrtico mediotener ms de una neuronade salida tendremosque t[n]y[n] pasar at[n]y[n] dondetantot[n] como y[n] sern vectores de Ns componentes. Con esta definicin del error,la ecuacin de actualizacin de los pesos obtenida aplicando el mtodo de descensodel gradiente (recurdese que no es el nico posible) ser

    j = d

    n=1

    (tj[n]yj[n]) x[n]. (1.20)

    donde hemos utilizado la ecuacin 1.10 y la definicin de g.

    A un conjunto de ADALINES se lo conoce como red MADALINE (Multiple ADAp-tive LINear Element).

    1.3. Arquitecturas

    El primer modelo de red neuronal presentado hasta ahora ya ha introducido variosconceptos fundamentales en la definicin de una arquitectura de red. En primer lugar,hemos visto queel bloque constructivo fundamental de una redneuronal es, obviamen-

    te, la neurona entendida como un mdulo computacional con una o varias entradas yuna salida definida como una funcin de activacin aplicada a la suma de las entradasponderada por los pesos de las conexiones respectivasc. Ms an, hemos empleado el

    cSera posible, en principio, una definicin 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. Porejemplo, para una neurona de dos entradas, podramos definir aj como

    aj = 1 x1 +2 x2 +11 x21 +22 x22 +12 x1 x2.sta definicin, que incluye trminos de segundo orden o cuadrticos, podra a su vez ser extendida ardenes superiores. Sin embargo, la introduccin de trminos de orden superior al lineal en capas distintasde 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.

  • 7/22/2019 Introduccin a la NeuroComputacin

    21/112

    1.4 Tareas genricas en Neurocomputacin 15

    trmino capa en numerosas ocasiones sin haber dado una definicin precisa del tr-mino. En este texto, se entender por capa un conjunto de neuronas con la misma

    definicin funcional de las operaciones que realiza sobre sus entradas y que recibeentradas o enva salidas a un mismo conjunto de neuronas entre las que se pueden en-

    contrar miembros de la misma capa. As, en el perceptrn del ejemplo anterior hemosdenominado capa de entrada a un conjunto de neuronas que no reciba conexionesde 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 deneuronas que no enva su salida a ninguna neurona, pero s recibe sus entradas de unmismo grupo de neuronas. Las primeras comparten una misma definicin funcional:toman su entrada y la trasmiten a las neuronas a las que estn conectadas sin realizarninguna operacin sobre ellas. Podramos decir que tienen una nica entrada, que elpeso de la entrada es la unidad, y que su funcin de activacin es lineal. Por el con-trario las segundas realizan una suma de las entradas ponderadas por los pesos de lasconexiones respectivas y al resultado le aplican la funcin de activacin paso. En el

    caso de MADALINES tendremos funciones de activacin lineales en vez de funcionespaso pero de nuevo tendremos dos capas que cumplen la definicin dada ms arriba.Finalmente, siguiendo un orden creciente de complejidad, nos encontramos con la de-finicin de la arquitectura de una red neuronal en trminos del nmero de capas, delnmero de neuronas en cada capa y de la conectividad entre capas e intra capa. Segneste ltimo aspecto (la conectividad de la red o topologa conectiva) nos encontrare-mos redes unidireccionales o de alimentacin hacia delante (feedforwarden ingls) siexiste una relacin de orden parcial entre capas, de forma que cada capa recibe en-tradas nicamente de la capa anterior y enva su salida nicamente a la siguiente. Elperceptrn de la figura 1.6 es un ejemplo de arquitectura unidireccional muy simplepuesto que slo lo componen dos capas (veremos ejemplos ms complejos en cap-tulos 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 recu-rrente (ejemplos de arquitecturas recurrentes se dan en las redes neuronales basadasen la teora de resonanciaadaptativa ART o Adaptive Resonance Theory en ingls y enlas memorias asociativas bidireccionales BAM o Bidirectional Associative Memoriesen 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 trescapas con conexiones recurrentes (en trazo discontinuo) e interaccin lateral (trazodiscontinuo con puntos intercalados) se muestra en la figura 1.11.

    1.4. Tareas genricas en Neurocomputacin

    A lo largo de todo este captulo hemos utilizado problemas de clasificacin para ilus-trar diversos aspectos de las redes neuronales presentadas. Sin embargo, la clasifica-cin es un caso particular de tarea genrica realizable por una red neuronal. El conjun-to de tareas para cuya realizacin se recurre a redes neuronales se ajusta a un esquemaconceptual de tarea conexionista en el que el elemento central lo constituye una re-lacin entre espacios de representacin y la tarea consiste en hallar el objeto/objetosdel espacio de representacin de salida que la relacin asocia a un objeto de entradadado. En el caso de la tarea genrica de clasificacin, una red neuronal bien entrena-da se convierte en un modelo de la relacin que media entre los objetos del espaciode entrada (puntos del plano en los ejemplos de este captulo) y las clases a las quepertenecen (en el espacio de representacin de salida). Esta relacin de pertenenciaa la clase Ck queda impresa en los valores de las conexiones de la red de forma que

  • 7/22/2019 Introduccin a la NeuroComputacin

    22/112

    16 Introduccin

    Figura 1.11: Ejemplo de arquitectura de red con conexiones recurrentes (en trazo dis-continuo) e interaccin lateral (trazo discontinuo con puntos intercalados).

    incluso es capaz de clasificar correctamente objetos que no le haban sido presenta-dos con anterioridad (propiedad conocida como generalizacin). A continuacin, yGeneralizacinsin pretensin de ser exhaustivos, examinamos varias tareas que se ajustan al esquemaconceptual descrito.

    1.4.1. Redes neuronales en tareas de clasificacin

    En realidad ya hemos visto con el nivel de profundidad adecuado a este captulo in-troductorio las caractersticas de una red neuronal clasificadora. Aqu slo vamos a

    repasar nociones bsicas ya introducidas informalmente en secciones anteriores y aapuntar una interpretacin probabilista de los resultados de una clasificacin neuro-nal. La clasificacin consta de tres etapas: en la primera se realiza un proceso deabstraccin que, partiendo del universo de objetos de los que trata el problema de cla-sificacin, extrae caractersticas suficientes para reconocer como similares objetos dela misma clase y como dismiles aqullos de distintas clases; en la segunda, se com-paran las caractersticas del objeto que deseamos clasificar con un modelo de dichouniverso y se selecciona la clase a la que se encuentra ms prximo; finalmente en latercera, se genera una respuesta de acuerdo con el resultado de la comparacin que,generalmente, se interpreta como las probabilidades a posteriori de pertenencia delobjeto de entrada a cada una de las clases/particiones del espacio de entrada. De estaforma, las activaciones yk(x) de las neuronas de la capa de salida seran funciones delvector de entrada que, interpretadas en el dominio del observador que crea la red, co-

  • 7/22/2019 Introduccin a la NeuroComputacin

    23/112

    1.4 Tareas genricas en Neurocomputacin 17

    rresponderan a la probabilidad P(Ck|x) de que, dado el vector x, ste pertenezca a laclase Ck. Existen una serie de condiciones que ha de cumplir una red neuronal para que

    la activacin de sus neuronas de salida pueda ser interpretadaen sentido probabilsticoque sern objeto de anlisis en captulos posteriores.

    1.4.2. Redes neuronales para regresin

    sta tarea est relacionada con la tarea de clasificacin y con problemas de interpo-lacin de funciones. Formulada en trminos consistentes con la anterior descripcinse 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 perte-neciente al conjuntoAd. La trasposicin del esquema conceptual de tarea conexionistaal caso de la regresin es inmediata si suponemos que el conjuntoA define una funcin

    vectorial de varias variables tal quet[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 da-da por las componentes f1, f2, fNs de la funcin vectorial f y el modelo de la relacinqueda impreso en los pesos de las conexiones de la red.Por analoga vemos que el pro-ceso de aprendizaje, en el que se modifican los pesos de la red para ajustar la funcinf a partir de los pares de entrenamiento del conjunto A es enteramente equivalen-te a una regresin sobre dicho conjunto.e. Un ejemplo de este tipo de aplicacionesconsistira en obtener a partir del conjunto de puntos mostrado en la figura 1.12, unaaproximacin de la funcin continua generatriz (dibujada en trazo negro continuo).Este tipo de situaciones se da cuando la funcin generatriz se ha medido mediante unprocedimiento que introduce ruido de distribucin gaussiana. Se tratara entonces deencontrar una aproximacin a la funcin y(x) generatriz mediante una red neuronal.

    Veremos ms adelante las propiedades de diferentes algoritmos de aprendizaje en loreferente 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 puenteentre dos espacios de representacin, de forma que a un elemento dado del espacio de

    entrada (ya fuera ste un objeto que deseamos clasificar o un vector deR

    Ne

    ) le corres-ponde una salida que el creador de la red interpreta en el espacio de representacin desalida como una clase o un valor de la funcin generatriz ajustada. Como hemostenidoocasin de comprobar, nada hay en la implementacin de una red neuronal que haga

    dReprese en la similitud con el concepto de generalizacin en el caso de tareas de clasificacin. Enltima instancia, interpretada a la luz del esquema conceptual de tarea conexionista, se trata de la mismapropiedad

    eLos conocimientos necesarios para entender los conceptos introducidos en el ltimo prrafo se puedenencontrar en cualquier manual de introduccin a la Estadstica o al Clculo. En particular, los alumnos dela UNED deben dominar estos conceptos como resultado de haber cursado previamente las asignaturas deEstadstica I y Ampliacin de Matemticas

  • 7/22/2019 Introduccin a la NeuroComputacin

    24/112

    18 Introduccin

    6.005.004.003.002.001.000.00

    1.00

    0.50

    0.00

    -0.50

    -1.00

    Figura 1.12: Problema tpico de regresin: dado el conjunto de puntos de la grfica(que se supone generado a partir de una funcin continua como la representada entrazo negro) recuperar la mejor aproximacin a la funcin generatriz. Por supuesto,no se conoce de antemano dicha funcin. En este ejemplo artificial, los datos se hanobtenido a partir de una funcin seno por adicin de ruido gaussiano.

    referencia explcita a clases, regresiones, probabilidades etc. Todo est en la interpre-tacin del creador de la red. Pues bien, en el caso del empleo de redes neuronales paratareas de control, las entradas se interpretan como variables de estado de un sistema, ylas salidas, como un conjunto de instrucciones de actuacin sobre dicho sistema. Porejemplo, podramos entrenar una red neuronal para conducir un coche de forma que laentrada de la red fuese una imagen de la carretera por la que circulamos (incluyendoreferencias visuales como la sealizacin horizontal de los carriles) y la salida, el n-gulo de giro del volante necesario para mantener el vehculo dentro de las seales dereferencia. Otro ejemplo podra ser el de una red neuronal que monitoriza una plantanuclear y recibe como entradas parmetros del reactor como temperatura, presin, etcy cuyas respuestas se interpretan como acciones tendentes a mantener dichos valoresdentro 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 seriestemporales. En este caso, el espacio de entrada lo componen registros temporales delos valores de una (o varias) variables de estado de un sistema y la salida se interpretacomo una prediccin del valor de la variable para valores de la coordenada tempo-ral posteriores al registro. El ejemplo clsico de este tipo de aplicaciones es el de laprediccin 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 comocasos particulares de tareas de regresin en los que las funcionesque queremos ajustarson de una clase especial.

  • 7/22/2019 Introduccin a la NeuroComputacin

    25/112

    1.4 Tareas genricas en Neurocomputacin 19

    Repaso de conocimientos

    Ejercicios de consolidacin del aprendizaje.

    Ejemplo 2 (Perceptrn 2D)

    Entrnese un perceptrn para que clasifique correctamente el siguiente conjunto deentrenamiento.

    n 1 2 3 4 5 6 7 8 9 10x[n] [ +0,1+1,2 ] [

    +0,7+1,8 ] [

    +0,8+1,6 ] [

    +0,8+0,6 ] [

    +1,0+0,8 ] [

    +0,3+0,5 ] [

    +0,0+0,2 ] [

    0,3+0,8 ] [

    0,5

    1,5 ] [

    1,5

    1,3 ]

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

    Supngase que la velocidad de aprendizaje es 1.0, que la actualizacin de los pesosse realiza slo al final de un ciclo (entrenamiento por lotes) y que el proceso de apren-dizaje termina cuando todos los vectores de entrada del conjunto de entrenamientoson clasificados correctamente.

    Solucin 2: Del enunciado del ejercicio se desprende que debemos dividir el espaciode entrada en cuatro clases a las que se les asigna las cuatro posibles salidas de unperceptrn 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 figura 1.13 muestra elconjunto de entrenamiento dado por el enunciado.

    x1

    x2

    210-1-2

    21.5

    10.5

    0-0.5

    -1-1.5

    -2

    Figura 1.13: Representacin grfica del conjunto de entrenamiento. Las cuatro sali-das posibles (0,0), (0,1), (1,0) y (1,1) se han representado con diamantes, cuadrados,crculos y tringulos.

    Como se puede comprobar, define cuatro clases separables linealmente, por lo que tie-ne sentido utilizar un perceptrn para realizar la tarea de clasificacin demandada. Siinicializramos aleatoriamente los pesos de la red, podramos obtener los siguientesvalores:

  • 7/22/2019 Introduccin a la NeuroComputacin

    26/112

    20 Introduccin

    Neurona de salida 1 10 11 12-0.2693 -0.3435 0.5128

    Neurona de salida 2 20 21 22-0.5059 0.2653 0.9821

    donde, de nuevo, hemos representado la polarizacin como el pesoj0 asociado a unanueva entrada x0 = 1. Comenzamos el primer ciclo de aprendizaje cuyos resultadosse resumen a continuacin. Tngase en cuenta que el enunciado indica que debemosrealizar un aprendizaje por lotes. sto implica que no se actualizarn los pesos hastahaber presentado al perceptrn el conjunto entero de pares de entrenamiento.

    n a1 a2 y[n] t[n]y[n] 0 1 21 +0.3117 +0.6991 [ +1,0+1,0 ] [

    +0,01,0 ] [

    +0,01,0 ] [

    +0,00,1 ] [

    +0,01,2 ]

    2 +0.4133 +1.4476 [+1,0

    +1,0 ] [

    +0,0

    1,0 ] [+0,0

    1,0 ] [+0,0

    0,7 ] [+0,0

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

    +0,01,0 ] [

    +0,01,0 ] [

    +0,00,8 ] [

    +0,01,6 ]

    4 -0.2364 +0.2956 [ +0,0+1,0 ] [+0,01,0 ] [

    +0,01,0 ] [

    +0,00,8 ] [

    +0,00,6 ]

    5 -0.2026 +0.5451 [ +0,0+1,0 ] [+0,01,0 ] [

    +0,01,0 ] [

    +0,01,0 ] [

    +0,00,8 ]

    6 -0.1159 +0.0647 [ +0,0+1,0 ] [+1,0+0,0 ] [

    +1,0+0,0 ] [

    +0,3+0,0 ] [

    +0,5+0,0 ]

    7 -0.1667 -0.3095 [ +0,0+0,0 ] [+1,0+1,0 ] [

    +1,0+1,0 ] [

    +0,0+0,0 ] [

    +0,2+0,2 ]

    8 +0.2440 +0.2002 [ +1,0+1,0 ] [+0,0+0,0 ] [

    +0,0+0,0 ] [

    +0,0+0,0 ] [

    +0,0+0,0 ]

    9 -0.8667 -2.1117 [ +0,0+0,0 ] [+0,0+1,0 ] [

    +0,0+1,0 ] [

    +0,00,5 ] [

    +0,01,5 ]

    10 -0.4207 -2.1806 [ +0,0+0,0 ] [+0,0+1,0 ] [

    +0,0+1,0 ] [

    +0,01,5 ] [

    +0,01,3 ]

    Sumando todas las modificaciones de los pesos obtenemos

    Neurona de salida 1 10 11 12 10 11 12+2.0 +0.3 +0.7 +1.7307 -0.0435 +1.2128

    Neurona de salida 2 20 21 22 20 21 22-2.0 -5.4 -8.6 -2.5059 -5.1347 -7.6179

    Esteciclo se repite hasta que, como resultado de las actualizaciones de los pesos, la redclasifica adecuadamente todos los pares de entrenamiento. sto ocurre, para las con-diciones dadas por el enunciado, despus de 13 ciclos de actualizacin como muestrala figura 1.14. Los valores de los pesos en ese momento son:

    Neurona de salida 1 10 11 12 10 11 12+2.0 +0.3 +0.7 -0.2693 -4.5435 +5.8128

    Neurona de salida 2 20 21 22 20 21 22+0.0 +0.0 +0.0 +4.4941 -4.8347 -4.1179

    La figura muestra tambin, para facilitar comparaciones, la posicin inicial de los dis-criminantes cuando los valoresde los pesos son inicializados aleatoriamente y despusde 7 actualizaciones.

  • 7/22/2019 Introduccin a la NeuroComputacin

    27/112

    1.4 Tareas genricas en Neurocomputacin 21

    14 ciclos

    x1

    210-1-2

    7 ciclos

    x1

    210-1-2

    aleatoriaParticin

    x1

    x2

    210-1-2

    21.5

    10.5

    0-0.5

    -1-1.5

    -2

    Figura 1.14: Posicin de los hiperplanos separadores para el ejemplo de clasificacin

    en diversos puntos del proceso de aprendizaje.

  • 7/22/2019 Introduccin a la NeuroComputacin

    28/112

    22 Introduccin

  • 7/22/2019 Introduccin a la NeuroComputacin

    29/112

    Captulo 2

    Retropropagacin del error

    Objetivo: El presente mdulo se propone como objetivo introducir el que probable-mente sea el mtodo de aprendizajems popular en aplicaciones reales. A medida quevayamos describindolo, iremos introduciendo nuevos conceptos que completarn yextendern 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 estdiseado para redes neuronales sin realimentacin (feedforward networks en ingls).La arquitectura ms simple es la de un perceptrn con ms de una capa de procesa-miento. Recordemos que el perceptrn clsico est compuesto de una capa de entrada(denominada a veces sensorial) cuya nica misin es redistribuir las entradas y unacapa de procesado que s realiza clculo neuronal (suma ponderada ms funcin deactivacin). En este captulo nos centraremos en redes neuronales de la misma arqui-tectura que el perceptrn (sin realimentacin ni interaccin lateral), pero con dos oms capas de procesamiento. A estas redes se las conoce como perceptrones multi-

    capa y nos van a servir de marco para la exposicin del proceso de aprendizaje porretropropagacin del error aun cuando debe recordarse que existen mltiples variacio-nes que puedenaumentar la complejidad de la red sin modificar el fundamento tericodel algoritmo. Vamos a considerar, para fijar las ideas, que la red est compuesta detres capas unidimensionales de Ne, No y Ns neuronas cada una, llamadas capa de entra-da (input layeren ingls), capa oculta (hidden layer) y capa de salida (output layer).Las capas tienen conectividad total entre s (cada neurona forma sinapsis con todaslas de la siguiente capa) y conectividad interna nula (no existen conexiones sinpti-cas laterales dentro de una misma capa). La figura 2.1.1 muestra esquemticamente laarquitectura de dicha red. Como vimos en el captulo anterior, podemos considerar lasalida de la red como una serie de funciones yk de RNe en R, que para cada conjun-to 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

  • 7/22/2019 Introduccin a la NeuroComputacin

    30/112

    24 Retropropagacin del error

    x2

    xNe

    x1 y1

    yNs

    y2

    Figura 2.1: Perceptron multicapa.

    Cada problema tendr un espacio de entrada y uno de salida de dimensionalidad dis-tinta por lo que los valores de Ne y Ns variarn dependiendo del caso concreto queestemos tratando. El valor de No depende de las caractersticas del espacio de entradapor lo que no se pueden enunciar reglas generales relativas a su valor en una aplica-cin concreta.Slo poseemos algunas indicaciones sobre qu rangos de valores sonms adecuados. Ms adelante veremos algunas de estas normas y su interpretacin.

    Como hemos mencionado anteriormente, la capa de entrada no realiza ninguna ope-racin algebraica con su nica entrada, de forma que la neurona i de dicha capa envaa 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 resultadode las operaciones realizadas sobre sus entradas. Decimos que la arquitectura de la redva a ser la de un perceptrn multicapa porque las operaciones que van a realizar tantolas neuronas de la capa oculta como las de la de salida son las mismas que realiza elperceptrn. Para neuronas de la capa oculta, estas operacionesconsisten en multiplicarlas entradas procedentes de las neuronas de la capa anterior por sus pesos respectivos,sumar el resultado de las Ne multiplicaciones y, finalmente, aplicar la funcin de acti-vacin al resultado. Empleando la notacin introducida en el captulo anterior para lospesos de una conexin sinptica tendremos que la neurona j de la capa oculta realizalas siguientes operaciones:

    Multiplica la entrada x1 por el peso de la conexin entre la neurona 1 de la capade 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 capade 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 lacapa de entrada y la neurona j de la capa oculta (jNe )

    Suma el resultado de todos los pasos anteriores ms la polarizacin como entra-

  • 7/22/2019 Introduccin a la NeuroComputacin

    31/112

    2.1 El formalismo matemtico del algoritmo. 25

    g(aj) =1

    1+e(aj+2)

    g(aj) =1

    1+eaj

    aj

    FuncinSigmoidea

    6420-2-4-6

    1

    0.8

    0.6

    0.4

    0.2

    0

    Figura 2.2: Funcin de activacin sigmoide con= 1 y dos valores de la polarizacin,j0 = 0 (lnea contnua) y j0 = 2 (lnea verdediscontnua).En la leyenda de la figurahemos considerado que aj no incorpora la polarizacin para hacer ms evidente suefecto.

    da de subndice cero:

    aj = j0 1 +j1 x1 +j2 x2 + ... +jNe xNe =Ne

    i=0

    ji xi (2.1)

    Aplicar la funcin umbral g al resultado:

    yj = g(aj) = g(Ne

    i=0

    ji xi) (2.2)

    Recordemos que stas son las transformaciones realizadas por las neuronas de un per-ceptrny que hemos empleado la misma notacin que en el captulo anterior llamandoaj al resultado de sumar ponderadamente las entradas de la neurona j y g a la funcinde activacin.

    Como se mencionaba en el captulo anterior existen varias funciones de activacinque se pueden utilizar en neurocomputacin. Cada una de ellas va a conferir unas

    propiedades determinadasa la neurona o capa de neuronas que la utilicen. Hasta ahorahemos 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 Funciones de activacin

    sigmoideasfuncin sigmoide se define como

    g(a) =1

    1 + exp(a) (2.3)

    su derivada vale

    dg(a)

    da=

    exp(a)(1 + exp(a))2 = g(a) (1g(a)) (2.4)

    y su representacin grfica se muestra en la figura 2.2 para el valor = 1. Dicha figuramuestra en realidad dos grficas para dos funciones sigmoideas con y sin polarizacin

  • 7/22/2019 Introduccin a la NeuroComputacin

    32/112

    26 Retropropagacin del error

    x2

    xNe

    x1 y1

    yNs

    y2

    y0 = 1x0 = 1

    Figura 2.3: Perceptrn multicapa con polarizaciones incorporadas como neuronas deorden cero y entrada unidad.

    o bias. Como hicimos en el captulo anterior, vamos a incorporar las polarizacionesaadiendo una neurona de subndice 0 a las capas de entrada y oculta segn la figura2.3. En la grfica se distinguen dos regiones de saturacin en las que el valor de la fun-cin 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 casoparticular de la funcin sigmoidea si tomamos el lmite de tendiendo a infinito. Enrealidad es un parmetro proporcional a la pendiente de la zona lineal de la funcin,que se suele fijar de antemano sin que tenga un efecto importante en el proceso deaprendizaje. En el desarrollo de la exposicin del algoritmo, vamos a suponer que lasdos capas de procesamiento (la capa oculta y la capa de salida) van a tener funcionesde activacin sigmoideas. La extensin a funciones de activacin lineales se ver enun ejemplo de aplicacin.

    En ltimo lugar, despus de la capa de entrada y de la intermediau oculta, encontramosla 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 lafuncin 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, vemosque, efectivamente, podemos estudiar la red como una serie de Ns funciones param-tricas no lineales yk (con k= 1, 2,...,Ns) de la entrada x donde yk representa la salidade la neurona k-sima de la capa de salida. Decimos paramtrica porque las funciones

    yk dependen de los valores de los pesos de la red, y para cada conjunto de valores delos pesos, la red ser equivalente a un conjunto distinto de funciones yk.

  • 7/22/2019 Introduccin a la NeuroComputacin

    33/112

    2.1 El formalismo matemtico del algoritmo. 27

    10.50-0.5-1

    0.8

    0.60.4

    0.2

    0

    -0.2

    -0.4

    -0.6

    -0.8

    -1

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

    El objetivo entonces es encontrar los valores de las conexiones ji que aproximenmejor unas funciones objetivo dadas. Las funciones objetivo pueden ser funcionesreales de variable real o funciones de clasificacin. Como hemos visto, en el primercaso, diremos que se trata de un problema de regresin; en el segundo, obviamente,declasificacin. Un ejemplo sencillo del primero sera el siguiente: supongamos que dis-pongo de una serie de pares (x[n],t[n]) como los siguientes, que definen una funcin:

    (x[n],t[n]) (x[n], t[n]) (x[n],t[n])

    n=1 (-1.0, -0.9602) n=2 (-0.9, -0.5770) n=3 (-0.8, -0.0729)n=4 (-0.7, 0.3771) n=5 (-0.6, 0.6405) n=6 (-0.5, 0.6600)n=7 (-0.4, 0.4609) n=8 (-0.3, 0.1336) n=9 (-0.2, -0.2013)n=10 (-0.1, -0.4344) n=11 ( 0.0, -0.5000) n=12 ( 0.1, -0.3930)n=13 ( 0.2, -0.1647) n=14 ( 0.3, 0.0988) n=15 ( 0.4, 0.3072)n=16 ( 0.5, 0.3960) n=17 ( 0.6, 0.3449) n=18 ( 0.7, 0.1816)n=19 ( 0.8, -0.0312) n=20 ( 0.9, -0.2189) n=21 ( 1.0, -0.3201)

    Si representamos grficamente esos pares de puntos obtendremos la figura 2.4 en laque se puede comprobar que dichos puntos parecen dibujar una funcin continua.

    Pues bien, podramos utilizar la primera componente de los pares como entrada deuna 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 segundacomponente del par. En esa situacin y si el proceso de entrenamiento ha sido correctoen un sentido que matizaremos ms adelante, la salida de la red ser una aproximacina la funcin que parecan trazar los puntos aislados, de forma que si introducimos enla entrada de la red valores de x comprendidos entre -1 y 1 pero no pertenecientesa los pares de entrenamiento, la activacin y de la nica neurona de salida de la redser una interpolacin a partir de los datos iniciales. Lo que acabamos de describir

  • 7/22/2019 Introduccin a la NeuroComputacin

    34/112

    28 Retropropagacin del error

    es un proceso de entrenamiento supervisado para una tarea de regresin (ver captuloanterior).

    Ejemplos del segundo caso, el empleo de redes neuronales para tareas de clasifica-cin, se han empleado en el captulo anterior para ejemplificar el entrenamiento de unperceptrn.

    Cmo se van a modificar los pesos en un proceso de entrenamiento? El algoritmo deretropropagacin del error consiste en darle a los pesos valores inicialmente aleato-rios, presentarle a la red entradas cuya salida conozcamos y comparar el resultado conla salida esperada. Si no coinciden (que es lo esperable puesto que hemos inicializadolos pesos aleatoriamente) modificar los pesos de forma que el error en la clasificacindisminuya y repetir cclicamente este procedimiento hasta que el error quede por de-bajo de una cota mnima que nosotros impondremos. Todo esto est expresado en unlenguaje no muy clarificador. Vamos a ver matemticamentecmo se hara. La exposi-

    cin se har con una notacin diferente a la empleada originalmente en la publicacinque di a conocer el mtodo de retropropagacin ([RHW86]).

    Llamemos A = (x[n],t[n]) al conjunto de ejemplos de que disponemos y a la salidaesperada correspondiente.En general, tendremos un nmero grande de pares de entre-namiento 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] yt[n])se les llama pares de entrenamiento porque constan de un patrn de entrada y de sucorrespondiente objetivo.

    Si introducimos el vector x[1] compuesto de Ne componentes xk con k= 1,2,...,Neen 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 quehemos denominadot[1] (un vector con Ns componentes tk, k= 1,2,...,Ns).

    De entre las variadas formas de cuantificar el error cometido al obtener los yk vamosa emplear el error cuadrtico. ste se define como:

    E() =12

    NA

    n=1

    t[n]y[n]2 = 12

    NA

    n=1

    Ns

    k=1

    (tkyk)2 (2.5)

    Esta frmula hace explcita la dependencia del error con el conjunto de todos lospesos al que hemos dado en llamar . El error depende de los pesos a travs de sudependencia de las salidas yj.

    Como decamos ms arriba, vamos a realizar los clculos para un nico par de en-trenamiento (n = 1) y comenzaremos por los pesos de la ltima capa. La forma msinmediata y sencilla de disminuir el error modificando los pesos consiste en actualizarlos pesos siguiento la direccin opuesta al gradiente de la funcin E() como vimosen el captulo anterior:

    k j = E()k j

    . (2.6)

    Para comprender esta frmula (conocida como regla delta) es necesario entender elRegla deltaconcepto de gradiente. No nos vamos a ocupar aqu de justificar que el gradiente deuna funcin en un punto marca la direccin de mximo crecimiento de dicha funcin,

  • 7/22/2019 Introduccin a la NeuroComputacin

    35/112

    2.1 El formalismo matemtico del algoritmo. 29

    pero se puede encontrar en cualquier texto de clculo elementala. 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 captu-lo anterior nos hemos referido a esta estrategia de minimizacin como descenso delgradiente. 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 aprendi-zaje. Como vimos, es un nmero real que podemos ajustar para que el proceso deaprendizaje sea ms o menos rpido (valores de prximos a 1 darn velocidades deaprendizaje altas e inestabilidad y viceversa para valores prximos a 0). La eleccinde est sujeta a condicionamientos que se tratarn en otro apartado, pero no es tandirecta como la frase anterior pudiera dar a entender.

    En lo que sigue, vamos a calcular el valor de 11, es decir, la modificacin del pesode la conexin entre la neurona j = 1 de la capa oculta y la neurona k= 1 de la capa desalida. El procedimiento de clculo de un k j (donde kes el subndice de la neurona

    de salida y j el de la neurona oculta) cualquiera se puede obtener por generalizacina partir del clculo siguiente. Es importante sealar que el procedimiento que vamosa desarrollar a continuacin es vlido nicamente para pesos de conexiones entre lacapa oculta y la capa de salida. El procedimiento para calcular las actualizaciones delos pesos de las conexiones de neuronas de la capa de entrada con neuronas de la capaoculta se mostrarn ms adelante en esta misma seccin. A partir de la ecuacin 2.6aplicando la regla de la cadena tenemos

    E

    k j=

    E

    yk ykk j

    (2.7)

    donde ya hemos omitido por razones de claridad la dependencia de E con . El pri-mer trmino de la derecha se puede obtener derivando parcialmente respecto a yk la

    frmula 2.5 con lo que se obtieneE

    yk=(tkyk) = k (2.8)

    donde hemos empleado la notacin k para referirnos a (tkyk). En lo que respecta alsegundo trmino, tenemos que

    ykk j

    =g(

    Noj=0k jyj)

    k j= gk (1gk)

    (Noj=0k jyj)

    k j= gk (1gk) yj (2.9)

    donde, por claridad, hemos supuesto que = 1 y hemos sustituido la expresin de

    g(ak) = g(No

    j=0

    k jyj) (2.10)

    por gk. Por lo tantok j = kgk (1gk) yj (2.11)

    Vamos ahora a tratar de extender el formalismo a las conexiones entre neuronas de lacapa de entrada y neuronas de la capa oculta. Para la modificacin de cualquiera deesas conexiones tendremos

    ji = Eji

    = Eyj

    yjji

    (2.12)

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

  • 7/22/2019 Introduccin a la NeuroComputacin

    36/112

    30 Retropropagacin del error

    Para calcular la primera derivada de la derecha tendremos en cuenta que E() nodepende directamente de ningn yj (es decir, no depende directamente de los valores

    de activacin de las neuronas de la capa oculta). Efectivamente, la ecuacin 2.5 nosindica que E() depende de los valores de activacin de las neuronas de la capa desalida yk y slo a travs de stas e indirectamente, de los valores de yj. Por lo tanto,ser necesario aplicar la regla de la cadena para composicin de funciones:

    E

    yj=

    Ns

    k=1

    E

    yk ykyj

    (2.13)

    Puesto que para neuronas de la capa de salida, hemos empleado la notacin

    E

    yk=k (2.14)

    ahora podemos, por analoga, llamar j a la derivada parcial de la funcin de errorrespecto al valor de activacin de la neurona de la capa oculta yj. Entonces,

    E

    yj=

    Ns

    k=1

    E

    yk ykyj

    =j (2.15)

    Ya conocemos queE

    yk= (tkyk) = k (2.16)

    y podemos calcular que

    ykyj

    =g(

    Noj=0k jyj)

    yj= gk (1gk) k j (2.17)

    de dondeE

    yj= j =

    Ns

    k=1

    gk (1gk) kk j. (2.18)

    Por otra parte,yjji

    =g(

    Nei=0jixi)

    ji= gj (1gj) xi (2.19)

    donde de nuevo se sobreentiende que

    gj = g(Ne

    i=0

    jixi) (2.20)

    Combinando 2.18 y 2.19 con 2.12 obtenemos finalmente

    ji = j gj (1gj) xi (2.21)o, resumiendo todo el proceso, que

    ji = Eji

    = Eyj

    yjji

    = j gj (1gj) xi (2.22)con

    j =Ns

    k=1

    gk (1gk) kk j (2.23)y

    gk = g(No

    j=0

    k jyj) gj = g(Ne

    i=0

    jixi). (2.24)

  • 7/22/2019 Introduccin a la NeuroComputacin

    37/112

    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 capaoculta, 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) conla neurona k (capa de salida):k j.

    Suma ponderada:

    aj =Ne

    i=0

    ji xi ak =No

    j=0

    k j yj.

    Funcin de activacin: gj = g(aj) (para neuronas de la capa oculta) o gk = g(ak)(neuronas de salida).

    Salida de una neurona (yj corresponde a la salida de la neurona j de la capaoculta e yk a la neurona kde la capa de salida):

    yj = g(aj) = g(Ne

    i=0

    i j xi) yk = g(ak) = g(No

    j=0

    k j yj).

    Conjunto A de entrenamiento: conjunto de NA pares compuestos por un vectorde entrada x[n] y su correspondiente vector de salida esperado t[n] con n =1, 2,...,NA .

    Funcin de error: E().

    Coeficiente de aprendizaje: .

  • 7/22/2019 Introduccin a la NeuroComputacin

    38/112

    32 Retropropagacin del error

    Ejemplo 1 (Retropropagacin del error): Disear una red de tres capas con una solaneurona 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 enla de salida, para el siguiente conjunto de entrenamiento:

    x[n] t[n] x[n] t[n]

    n=1 -1.0 -0.9602 n=12 0.1 -0.3930n=2 -0.9 -0.5770 n=13 0.2 -0.1647n=3 -0.8 -0.0729 n=14 0.3 0.0988n=4 -0.7 0.3771 n=15 0.4 0.3072n=5 -0.6 0.6405 n=16 0.5 0.3960n=6 -0.5 0.6600 n=17 0.6 0.3449n=7 -0.4 0.4609 n=18 0.7 0.1816n=8 -0.3 0.1336 n=19 0.8 -0.0312n=9 -0.2 -0.2013 n=20 0.9 -0.2189

    n=10 -0.1 -0.4344 n=21 1.0 -0.3201n=11 0.0 -0.5000

    Nota: Supongamos que la velocidad de aprendizaje vale 0.1.

    Solucin: Es muy importante tener en cuenta que en la resolucin del problema vamosa introducir una novedad (ya anunciada al presentar la funcin de activacin sigmoi-dea) respecto al formalismo matemtico descrito en esta seccin: el enunciado diceexplcitamente que la neurona de la capa de salida procesa la suma ponderada de susentradas con una funcin de transferencia lineal y no con una sigmoide. Esto significaque gk = g(ak) = ak o, de forma ms detallada y omitiendo la refencia a k:

    gk = g(5

    j=0

    k jyj) =5

    j=0

    k jyj.

    Por lo tanto, la ecuacin (2.9) deber ser modificada:

    ykk j

    =g(5j=0k jyj)

    k j=(5j=0k jyj)

    k j= yj.

    Finalmente, la frmula para la actualizacin de los pesos de la capa de salida ser:

    k j = E()k j

    = Eyk

    ykk j

    = kyj (2.25)

    Adems, habr que modificar la ecuacin de actualizacin de los pesos de la capa

    oculta (ecuacin 2.17) que quedar

    ykyj

    =g(

    Noj=0k jyj)

    yj=(

    Noj=0k jyj)

    yj= k j (2.26)

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

    E

    yj=j =

    Ns

    k=0

    kk j. (2.27)

    Dado que Ns = 1 podemos sustituir el subndice ken todas las expresiones anteriorespor un 1. La ecuacin 2.22 no sufre ningn cambio salvo que ahora j viene dada porla ecuacin 2.27.

  • 7/22/2019 Introduccin a la NeuroComputacin

    39/112

    2.1 El formalismo matemtico del algoritmo. 33

    b1 = 10

    b2 = 20

    b3 = 30

    b5 = 50

    21

    31

    51

    11

    41

    b4 = 40

    x0 = 1

    y1

    y2

    y3

    y4

    y5

    b1

    y0 = 1

    Figura 2.5: Red neuronal del ejemplo.

    El esquema de nuestra red neuronal se muestra en la figura 2.5 en el que hemos aadi-do neuronas adicionales con subndice cero, cuyas salidas x0 e y0 son siempre igualesa 1 y cuyos pesos son precisamente las polarizaciones que queremos introducir (vercaptulo anterior). Para el caso de funciones de activacin no sigmoideas, la forma deintroducir las polarizaciones es la misma: aadir una neurona ficticia de salida iguala 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 polari-zaciones aleatoria ya podemos empezar a iterar el algoritmo de retropropagacin delos errores. Sean los pesos de las sinapsis de la neurona de entrada con las de la capaoculta los siguientes: En lo que sigue se va a detallar el primer paso del procedi-

    EntradaOculta OcultaSalida11 =3,5 10 = b1 =0,8155 11 = +0,0594 10 = b1 =0,165021 =3,5 20 = b2 = +0,1359 12 = +0,342331 = +3,5 30 = b3 = +2,3168 13 =0,984641 = +3,5 40 = b4 =3,2580 14 =0,233251 = +3,5 50 = b5 =

    3,1258 15 =

    0,8663

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

    1. El primer paso consiste en calcular yj para cada una de las neurona de la capaoculta. Como se puede comprobar, las neuronas de la capa de entrada no sonpropiamente neuronas en la medida en que no procesan la informacin recibidasino que se limitan a transmitirla a las neuronas de la capa siguiente. Dada laprimera entrada x =

    1, el valor de yj para cada neurona de la capa oculta ser

  • 7/22/2019 Introduccin a la NeuroComputacin

    40/112

    34 Retropropagacin del error

    a =

    a1 = (10,8155) + (3,51) = +2,6845a

    2= (1

    +0,1359) + (

    3,5

    1) = +3,6359

    a3 = (1+2,3168)+ (+3,51) =1,1832a4 = (13,2580)+ (+3,51) =6,7580a5 = (13,1258)+ (+3,51) =6,6258

    y = g(a) =

    g(+2,6845)g(+3,6359)g(1,1832)g(6,7580)g(6,6258)

    =

    0,93610,97430,23450,00120,0013

    Donde el primer elemento del vector corresponde a la primera neurona de lacapa 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 terceracapa o capa de salida para el valor de entrada x = 1. Su valor seray1 = g(a1) = g(0,0082) = 0,0082b

    3. El error cometido por la red neuronal para el valor de entrada x =1 es1 = (0,9602 + 0,0082) =0,9520

    donde -0.9602 es el valor de la salida esperado para dicha entrada (ver enuncia-do del problema).

    4. Recalcular los pesos de la segunda capa: De acuerdo con la frmula 2.25c

    11 = 1 y1 = 0,1 (0,9520) 0,9361 = 0,089121 = 0,1 (0,9520) 0,9743 = 0,092831 = 0,1 (0,9520) 0,2345 = 0,022341 = 0,1 (0,9520) 0,0012 = 0,000151 = 0,1 (0,9520) 0,0013 = 0,0001

    5. Recalcular los pesos de la primera capa: de acuerdo con las ecuaciones 2.22 y2.27 tendremos

    ji = j gj (1gj) xi11 = 0,1 (0,9520 0,0594) g(2,6845) (1 g(2,6845)) (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) (1g(1,1832)) (1)41 = 0,1 (0,9520 0,2332) g(6,7580) (1g(6,7580)) (1)51 = 0,1 (0,9520 0,8663) g(6,6258) (1g(6,6258)) (1)

    bRecordad que la funcin de activacin o transferencia de la neurona de salida es lineal y que a1 secalcula segn

    a1 = 1 0,1650 + 0,0594 0,9361 + 0,3423 0,97430,9846 0,23450,2332 0,00120,8663 0,0013 =0,0082.

    cAl reproducir estos clculos tengan en cuenta los errores de redondeo.

  • 7/22/2019 Introduccin a la NeuroComputacin

    41/112

    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 laentrada 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 21valores que van desde -1 hasta 1 en intervalos de 0.1.

    Este procedimiento general, admite pequeas variaciones que sern tratadas en sec-ciones posteriores. Baste recordar aqu que, adems de la posibilidad de aplicar lascorrecciones de los pesos obtenidas para cada par de entrenamiento inmediatamentedespus de realizado el clculo (entrenamiento secuencial), existe la posibilidad de iracumulando las modificaciones y aplicarlas sumadas al final del bloque (entrenamien-to por lotes).

    Al final de cada actualizacin se compara el error obtenido con el error que nos haya-mos fijado como meta. Si aqul es menor que ste se detiene la iteracin y se fijan lospesos.

    2.2. Aspectos metodolgicos del entrenamiento de unared neuronal.

    En lo que sigue, vamos a revisar algunos aspectos del proceso de aprendizaje de es-pecial relevancia. El primero de ellos se refiere a la forma ptima en que debemospresentar 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 noes ms que un mapa entre un espacio de entrada y uno de salida. Deseamos que, aun vector del espacio de entrada, la red le haga corresponder uno del de salida dondecada unode esos espacios est compuestode variables dotadas de significados precisospara el creador de la red. Por ejemplo, si quisiramos identificar nmeros a partir deimgenes digitales, las variables de entrada seran los valores de intensidad de lospxeles de la imagen.

    Dada la naturaleza de las redes neuronales, no se puede descartar la posibilidad deentrenar una red con los datos de entrada/salida tal y como se definen en la especifica-cin del problema y obtener un rendimiento que cumpla las expectativas iniciales dela fase de diseo. Sin embargo, podemos pensar en muchas circunstancias en las queuna transformacin previa de las variables mejora el rendimiento de la red o inclusoes imprescindible para su correcto funcionamiento. La transformacin ms sencilla esla normalizacin o estandarizacin de las variables de entrada. Volvamos al caso delconjunto de entrenamientoA deNA elementosx[n] con n = 1,2...NA . Podemos definirla media de cada variable i de los vectores de entradax del conjunto de entrenamientocomo

    xi =1

    NA

    NA

    n=1

    xi[n] (2.28)

  • 7/22/2019 Introduccin a la NeuroComputacin

    42/112

    36 Retropropagacin del error

    y la varianza 2i como

    2i =

    1

    NA 1

    NA

    n=1(x

    i[n

    ]x

    i)

    2

    .(2.29)

    Entonces, la transformacin

    xi[n] xi[n]xii

    (2.30)

    da como resultado que la variable i tome en todo el conjunto de entrenamiento valorescuya media es cero y cuya desviacin estndar es 1. Si repetimos la transformacinpara todas las variables del espacio de entrada x1,x2,...,xNe , tendremos que todas lasvariables tendrn las mismas propiedades estadsticas mencionadas.

    Es cierto que por la propia definicin del perceptrn, esta transformacin es innece-saria porque la primera capa de neuronas realiza una operacin de reescalado en laque se podra incluir la normalizacin. Sin embargo, de esta forma conseguimos quetodas las entradas de la red tengan valores del mismo orden de magnitud y, por lotanto, tambin los valores de los pesos estarn en el mismo rango. Finalmente, la ini-cializacin aleatoria de los pesos con valores dentro de esos rangos dar lugar a unaconvergencia rpida del proceso de aprendizaje y evitar el estancamiento en mnimoslocales. Sabra explicar intuitivamente por qu?

    El lector atento ya habr observado que el proceso de normalizacin reduce la can-tidad de informacin que pasamos a la red neuronal puesto que hemos eliminado lasdiferencias de magnitud entre unas variables y otras. Es el diseador de la red neuronalquien debe evaluar la importancia de esa informacin y si los beneficios que obtene-mos en el proceso de aprendizaje gracias a la normalizacin justifican esa prdida.

    Una ltima consideracin sobre otro tipo de cambios de escala. La normalizacinpropuesta anteriormente admite diversas variantes no todas de la misma utilidad. Enparticular, una transformacin muy popular consiste en hacer que las componentes delos vectores de entrada se encuentren en el intervalo [0,1]. No existe ningn beneficioen 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 clasificacin. Pues bien, en muchas

    ocasiones, la recoleccin de un conjunto completo de ejemplos de las clases que que-remos reconocer con la red neuronal es una tarea complicada y no son inhabitualessituaciones en las que no disponemos de suficientes casos. Pensemos que el conjuntode entrenamiento no slo debe contener instancias de todos los casos que queremostratar sino que ha de hacerlo en proporciones similares a las que esperamos que seencuentre la red durante su funcionamiento real. Ello implica el aprovechamiento deejemplos que seran desechados si dispusisemos de una gran cantidad de casos, enparticular algunos cuyos vectores de entrada son incompletos. Existen varias formasde completarlos con el fin de poder utilizarlos como ejemplos de entrenamiento. Laprimera de ellas consiste en dar a una variable ausente de un patrn o vector de entra-da el valor de la media de los valores de esas variables en los casos de entrenamientoen los que s estn presente. Otra posibilidad es realizar una regresin con los va-lores disponibles y rellenar los vacos con las predicciones de la funcin obtenida.

  • 7/22/2019 Introduccin a la NeuroComputacin

    43/112

    2.2 Aspectos metodolgicos del entrenamiento de una red neuronal. 37

    Ambas posibilidades sesgan el patrn de entrada de forma no deseada, aunque evi-dentemente 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 obviamenteinfravalorar la covarianza de los datos. La solucin ms deseable pasa por buscar losvalores que maximizan la verosimilitud (likelihood, en ingls) y emplear un algoritmoEM (expectation-maximization, ver [GJ95]).

    Seleccin de caractersticas. Anlisis de componentes principales.

    Para terminar esta seccin, vamos a mencionar otra posible etapa del preprocesado delos datos que consiste seleccionar de entre todas las posibles variables de entrada a lared que hemos considerado inicialmente un subconjunto mnimo imprescindible parala 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 excesivamentegrande) de variables y un r