Вы находитесь на странице: 1из 32

Las Redes Neuronales Supervisadas*

Por Pablo Garca Estvez


Dr. En Econmicas y Empresariales por la Universidad Complutense de Madrid

Citar como: Garca Estvez, P. (2005) Las redes neuronales www.telefonica.net/web2/pgestevez/publicaciones.htm (Pend. De Publicacin)

supervisadas.

Curso de Redes Neuronales

La neurona artificial

Redes Neuronales Supervisadas


1 LA NEURONA ARTIFICIAL
Desde 1960 varios grupos de investigadores han intentado replicar el funcionamiento de las neuronas biolgicas en la resolucin de problemas matemticos y el resultado ha sido la neurona artificial. Recordemos que la neurona biolgica es un tipo de clula especializada que recibe informacin de otras neuronas o de diversos rganos y la procesa enviando el resultado a otras neuronas. De la misma manera, la neurona artificial recibe informacin de diversas fuentes, representadas por la letra X; as tenemos desde X1 hasta XN. La informacin no le llega a la neurona en estado puro, sino que es ponderada debido a que un tipo de informacin tendr diferente importancia respecto a otro. Por eso a la informacin Xi se le multiplica por un peso designado por Wi. Lgicamente, si hay N puntos de informacin, habr N pesos, uno por cada punto de informacin. Todos estos conceptos estn reflejados en la figura 1. Al llegar a la neurona todos los datos de las informaciones, ponderados por sus pesos, son sumados. Esto es lo que se denomina la Regla de Propagacin. Podra adoptar otras frmulas pero, la ms habitual es la simple suma de todas las entradas ponderadas que toma el nombre de Potencial sinptico. Es decir, el resultado de la regla de propagacin elegida es denominado el potencial sinptico.

H i (t ) = X j W j
j =1

Siendo Hi(t) el potencial sinptico de la neurona i en el momento t. Xj la entrada de datos procedentes de la fuente de informacin j. Wj el peso sinptico asociado a la entrada Xj

X1 X2 W1 W2 Wj Xj XN
Entradas

H i (t ) = X j W j
j =1

Yi

WN
Pesos Regla de propagacin Funcin de transferencia Salida

Fig. 0.1 Esquema de una neurona artificial

Pablo Garca Estvez 2005

Curso de Redes Neuronales

La neurona artificial

Cuando el resultado de la regla de propagacin supera un cierto nmero, denominado umbral, entonces la neurona se activa y el nmero resultante de la regla de propagacin se introduce en una funcin denominada Funcin de transferencia. Esquemticamente se podra representar de la siguiente manera: Hi(t) > , entonces f[Hi(t)]

Se puede escoger diferentes funciones para la funcin de transferencia Las cinco funciones de transferencia tpicas que determinan los distintos tipos de neuronas son: 1. Funcin lineal 2. Funcin escaln 3. Funcin Sigmoidea 4. Funcin Tangente Sigmoidea 5. Funcin Gaussiana

Fig. 0.2 Funciones de transferencia utilizadas en las redes Neuronales. 1. Lineal; 2. Escaln; 3. Sigmoidea; 4. Tangente Sigmoidea; 5. Gaussiana.

Pablo Garca Estvez 2005

Curso de Redes Neuronales

La Red Neuronal Artificial

2
2.1

LA RED NEURONAL ARTIFICIAL


La Red MLP

Una neurona no tiene capacidad para realizar un proceso lgico, pero un conjunto de ellas s. Por tanto, las neuronas se agrupan para realizar trabajos de clculo lgico en redes. Las redes estn compuestas de capas. Generalmente, una red neuronal tpica tendr tres capas: una de entrada de datos, otra oculta donde se procesan los datos y una tercera de salida de los resultados. Cada una de las capas contendr un nmero determinado de neuronas en funcin del diseo que haya decidido el analista y del tipo de trabajo que vaya a realizar la red. Todas las neuronas que contiene una capa se conectan con todas las neuronas de la siguiente capa. De esta manera, cuando una neurona obtiene un resultado, lo enva a todas las neuronas de la capa siguiente. Evidentemente ese resultado ser ponderado por cada neurona por el peso sinptico.

X1

X2

X3

Fig. 0.3 Representacin de una red neuronal de tres neuronas de entrada, cuatro ocultas y dos de salida [3-4-2].

En la figura 3 se muestra un ejemplo de red neuronal compuesto por tres capas: entrada, oculta y salida. La capa de entrada est compuesta, en este ejemplo, por tres neuronas de entrada. stas no hacen ningn proceso, slo envan informacin a las neuronas de la capa oculta. Por tanto cada neurona de entrada tendr tantas conexiones como neuronas tiene la capa oculta, y cada neurona de la capa oculta recibir tanta informacin como neuronas tiene la capa de entrada. En nuestro ejemplo, cada neurona de entrada est conectada a las cuatro neuronas de la capa oculta, y cada neurona de la capa oculta recibe tres flujos de informacin procedente de cada una de las neurona de la capa de entrada. Este flujo de informacin estar ponderado por un peso sinptico, por tanto al haber tres flujos de informacin por neurona de la capa oculta y hay cuatro de stas, habr doce pesos sinpticos. Para poder identificar a cada uno de los pesos sinpticos, se les aade un subndice compuesto de dos nmeros que identifican, por este orden, la neurona de destino (de la capa oculta) y la neurona de procedencia (de la capa de entrada). As,

Pablo Garca Estvez 2005

Curso de Redes Neuronales

La Red Neuronal Artificial

por ejemplo, W3,2 se refiere al peso sinptico que conecta a la neurona nmero 2 de la capa de entrada con la neurona nmero 3 de la capa oculta. En cada neurona de la capa oculta ocurre un proceso matemtico consistente en la suma de las multiplicaciones de cada dato de informacin por sus pesos ponderados para determinar el potencial sinptico y que ser el dato a introducir en la funcin de transferencia. El resultado de esta funcin en cada neurona de la capa oculta ser su salida que se enviar a cada neurona de la capa de salida. Por tanto cada neurona de la capa oculta tendr tantas conexiones como neuronas de salida hay y cada neurona de salida recibir tantos flujos de informacin como neuronas existan en la capa oculta. Los flujos de informacin son ponderados por los pesos que unen las neuronas de la capa oculta con las neuronas de la capa de salida. En las neuronas de la capa de salida se realiza el mismo proceso que hemos visto antes en las neuronas de la capa oculta. Al final, el resultado de la red ser la salida de las neuronas de la capa de salida. Este proceso se puede representar de manera matricial, que facilita la comprensin del sistema; siguiendo el ejemplo de la figura 3, la matriz de entradas estar representada por X, mientras que la matriz de los pesos sinpticos viene representada por W y la matriz H representa los potenciales sinpticos de cada neurona de la capa oculta.

(X 1

X2

W1,1 W2,1 W3,1 W4,1 X 3 ) W1, 2 W2, 2 W3, 2 W4, 2 = (H 1 W 1,3 W2,3 W3,3 W4,3

H2

H3

H4 )

Cuando alimentamos las funciones de transferencia con los valores de la matriz de los potenciales sinpticos obtenemos la matriz Y de salidas de las neuronas de la capa oculta. Ests sern ponderadas por la matriz W de pesos sinpticos que unen la capa oculta con la capa de salida. El resultado ser la matriz H de potencial sinptico de la capa de salida que servir para alimentar las funciones de transferencia de esta capa y que su resultado ser la matriz Z de resultado de la red.

f (H 1

H2

H3

H 4 ) = (Y1 Y2

Y3 Y4 )

(Y1

Y2

Y3

W '1,1 W ' 2,1 W '1, 2 W ' 2, 2 Y4 ) = H 1' W '1,3 W ' 2,3 W ' W ' 2, 4 1, 4

' H2

f H 1'

' H 2 = (Z 1

Z2 )

Pablo Garca Estvez 2005

Curso de Redes Neuronales

La Red Neuronal Artificial

Para que una red neuronal descubra las conexiones no lineales entre dos conjuntos de datos hay que entrenarla. Para esto se le presentan a la red los datos de entrada y los resultados queridos por el analista. La red, utilizando de manera reiterada un algoritmo, denominado de aprendizaje, ir modificando los pesos, (que en el inicio de la red tienen un valor aleatorio) una y otra vez hasta encontrar el conjunto de ellos que consigue que con los datos suministrados obtener los resultados queridos. Una vez entrenada, se le presentan nuevos datos y se hace un test para comprobar la bondad del conjunto de pesos. Si no es satisfactorio se vuelve a ajustar los pesos. Cuando la red es testada y ofrece un rendimiento ptimo, ya est lista para trabajar. Se le puede introducir datos nuevos y la red ofrecer los resultados del problema en el que se est trabajando. Este tipo de redes neuronales se les denomina supervisadas, debido a que al introducir los datos queridos, la red, en la fase de entrenamiento, puede calcular el error que comete y modificar los pesos sinpticos con el objetivo de disminuir este error. La red neuronal supervisada ms utilizada es la denominada Perceptrn Multicapa o MLP (Multi - Layer Perceptron). Esta es una red de varias capas, usualmente tres (entrada, oculta y salida) que utiliza como funcin de transferencia en la capa oculta funciones sigmoideas. Las funciones de la capa de salida pueden ser lineales o sigmoideas, dependiendo del tipo de salida que se quiera. La red MLP es un aproximador universal de funciones. Si existe una funcin que relaciona dos conjuntos de datos, la red MLP la descubrir. Pero la caracterstica ms importante de las MLP es que utiliza como funcin de aprendizaje la Retropropagacin haca atrs o Regla BP. En la realidad, existen diferentes variantes de la Regla BP que se utilizan en funcin del problema que se quiera resolver. La Regla BP puede trabajar de dos maneras: Aprendizaje por lotes o aprendizaje en serie. El aprendizaje por lotes acumula las variaciones de los pesos y al final de cada ciclo, actualiza a la vez todos los pesos. El aprendizaje en serie va actualizando los pesos cada vez que se presenta un dato. Una desventaja del aprendizaje en serie es que se debe respetar el orden de presentacin de las entradas, mientras que en el aprendizaje por lotes el orden no tiene importancia. La ventaja del aprendizaje en serie es su velocidad mientras que la ventaja del aprendizaje por lotes es que se puede aplicar a la mayora de los problemas. Existen diferentes programas informticos que permiten manejar redes neuronales de manera sencilla. Uno de los ms potentes, y que aqu vamos a utilizar, el la Toolbox de Redes Neuronales de MatLab. Una de las decisiones que debe realizar el analista a la hora de disear una red neuronal es elegir el algoritmo de aprendizaje. La Toolbox de MatLab ofrece diferentes algoritmos que tienen unas caractersticas especficas. Es muy difcil elegir el algoritmo adecuado para cada problema. Un algoritmo que es rpido y consigue soluciones satisfactorias para un problema no es eficaz para otro, o se vuelve muy lento. Hay veces que es preferible un algoritmo que trabaje de manera lenta, debido al resultado que se quiere obtener, y otras veces se necesita rapidez y la precisin de los datos no es tan importante. En la siguiente tabla se muestra una lista de los algoritmos que ofrece MatLab ordenados del ms lento al ms rpido. Generalmente se aconseja elegir el ms rpido e ir eligiendo, si no es muy preciso, los siguientes, que aunque menos rpidos pueden darnos mejores precisiones. De todos modos el algoritmo Levenberg Marquardt es el mejor algoritmo para problemas que no sean muy grandes.

Pablo Garca Estvez 2005

Curso de Redes Neuronales

La Red Neuronal Artificial

Tabla 1 Diferentes algoritmos de aprendizaje del Toolbox de Redes Neuronales del programa MatLab, ordenados de lentos a rpidos.

Algoritmo Variable Rprop Gradiente conjugado escalar Fletcher Powell CG Polak Ribire CG Powell Beale CG Secante de un paso Quasi Newton BFGS Levenberg Marquardt

Sentencia MatLab Traingdx Trainrp Trainscg Traincgf Traincgp Traincgb Trainoss Trainbfg Trainlm

2.2

Ajuste del algoritmo del crecimiento empresarial

Como primer ejemplo, vamos a construir un modelo que nos estima el crecimiento de una empresa en el momento t + 1 en base a los datos del momento t. Elegimos los datos financieros de la empresa Grficas El Pas S. L. Los datos recogidos se presentan en la siguiente tabla:
Tabla 2 Datos financieros de la empresa Graficas El Pas S. L.
Activo Circulante Pasivo Circulante Activo Total Reservas + Remanente Resultado de explotacin Acreedores Acreedores Comerciales Otras Deudas no comerciales Deudas con terceros Fondos Propios 1999 12.270.724.000 8.174.688.000 20.329.018.000 2.628.707.000 9.887.965.000 7.778.000 4.900.062.000 1.241.232.000 6.149.072.000 11.921.060.000 1998 9.764.265.000 7.832.419.000 16.265.030.000 2.570.662.000 6.970.150.000 13.448.000 3.390.470.000 1.293.376.000 4.697.294.000 8.419.163.000 1997 9.040.261.000 7.979.367.000 15.169.978.000 2.534.921.000 6.110.406.000 19.949.000 2.963.345.000 1.226.952.000 4.210.246.000 7.170.662.000 1996 6.859.774.000 7.485.363.000 14.153.602.000 2.512.074.000 4.180.073.000 33.319.000 2.823.370.000 1.652.342.000 4.509.031.000 6.634.920.000 1995 8.559.099.000 8.995.964.000 14.526.634.000 1.658.576.000 3.867.883.000 6.538.000 4.909.294.000 1.256.946.000 6.172.778.000 5.524.132.000

Lo que pretendemos es vincular el crecimiento anual del activo de la empresa con algunos ratios. El crecimiento del activo lo calculamos como:

activo =

Activot +1 Activot Activot

El crecimiento del activo ser el conjunto de datos objetivo en la red, mientras que los datos de entrada sern los coeficientes utilizados en la Z score de Altman. Por lo tanto, transformamos los valores de la tabla 2 en los coeficientes de Altman. X1 es el cociente entre el fondo de maniobra y el activo total. Hemos utilizado como fondo de maniobra el obtenido como diferencia entre el activo circulante y el pasivo circulante.

Pablo Garca Estvez 2005

Curso de Redes Neuronales

La Red Neuronal Artificial

X2 es el cociente entre las reservas y el activo total X3 es el cociente entre el BAII y el activo total X4 es el cociente entre el valor contable de los fondos propios, minorado en su caso por los desembolsos pendientes y el valor contable de las deudas.

El resultado de los coeficientes de Altman y del crecimiento del activo se muestran en la siguiente tabla:

Tabla 3 Crecimiento anual y coeficientes de Altman de la empresa Graficas El Pas S.L.

X1 X2 X3 X4 Crecimiento del activo

1999 0,20150 0,12931 0,48640 1,93868 24,99%

1998 0,11880 0,15805 0,42854 1,79234 7,22%

1997 0,06993 0,16710 0,40280 1,70315 7,18%

1996 -0,04420 0,17749 0,29534 1,47147 -2,57%

1995 -0,03007 0,11417 0,26626 0,89492

Ahora podemos construir la red neuronal. Hemos elegido una MLP con cuatro neuronas de entrada, los cuatro coeficientes de Altman, y una neurona de salida, el crecimiento del activo. La red tendr una capa oculta compuesta por dos neuronas. Por lo tanto la red se puede definir como una MLP [4 2 1]. El algoritmo de entrenamiento elegido ser el Levenberg Marquardt, debido a su rapidez de convergencia. En este ejemplo, lo que pretendemos es calcular el algoritmo que define el crecimiento de los ltimos aos en funcin de los parmetros X1, X2, X3 y X4. Vamos a utilizar la Toolbox de MatLab de Redes Neuronales. Asumiendo que p representa a la matriz de coeficientes de Altman y que t representa la matriz de crecimientos del activo, el cdigo que hay que escribir es el siguiente:
Cdigo [pn,minp,maxp]=premnmx(p); Explicacin del cdigo Normalizamos los datos de pn para que estn dentro del rango [-1 1], mediante el mnimo y el mximo de la matriz p. La matriz t no hace falta normalizarla debido a que, al ser tantos por ciento, se encuentra en el rango [-1 1] Construimos la red neuronal con cuatro entradas con rango [-1 1], dos neuronas ocultas y una de salida. Las funciones de transferencia son tangente sigmoidea en la capa oculta y lineal en la ltima capa. El algoritmo de entrenamiento es Levenberg Marquardt Establecemos 2.000 ciclos de entrenamiento El objetivo del entrenamiento es llegar a un error de 1x10-10 Pedimos a la red que comience el entrenamiento

net=newff([-1 1;-1 1;-1 1;-1 1],[2 1],{'tansig','purelin'},'trainlm');

net.trainParam.epochs=2000; net.trainParam.goal=1e-10; net=train(net,pn,t);

Pablo Garca Estvez 2005

Curso de Redes Neuronales

La Red Neuronal Artificial

Una vez entrenada la red comprobamos la bondad del trabajo. Para ello, vamos a introducir los mismos datos de los coeficientes de Altman en la red y observaremos los resultados que nos producen. Ahora no estamos entrenando sino alimentando a la red entrenada. Los resultados sern comparados con los que nos deberan dar, representados en la matriz t. Si la red est bien entrenada, los resultados debern ser muy parecidos. Para comprobar esto, calculamos el coeficiente de correlacin, estando ste cerca de uno cuando la red obtenga resultados similares. Escribimos el siguiente cdigo:

CODIGO

a=sim(net,pn); [m,b,r]=postreg(a,t) m= 1.0000 b= -4.3581e-007 r= 1.0000

Explicacin del cdigo La matriz a reune los resultados de la simulacin realizada con los datos de la matriz pn Pedimos el coeficiente de correlacin entre a y t

El programa nos dice que el coeficiente de correlacin es 1

El coeficiente de correlacin entre el conjunto de valores simulados y los valores objetivos es igual a la unidad. Ahora slo nos queda escribir el algoritmo que nos explica el crecimiento de los activos de esta empresa durante los aos de estudio en funcin de los coeficientes de Altman.
+1 % tActivo =

0,8122 0,5672 1,8045 2 H1 1+ e 1 + e 2 H 2

Siendo: H1 = X1N 2,4097 X2N 1,3928 + X3N 1,0741 X4N 0,5985 2,9665 H2 = - X1N 0,2005 X2N 0,5053 + X3N 1,1299 X4N 1,3543 1,6728 El analista puede realizar un anlisis de sensibilidad y comprobar el crecimiento que se hubiese obtenido al modificar una de las variables de Altman. 2.3 Anlisis de la validacin de la ecuacin de prediccin de quiebras de Altman

La Z score de Altman es una ecuacin que busca determinar la situacin de quiebra de las empresas. Esta ecuacin adopta la siguiente forma: Z = 6,56 X1 + 3,26 X2 + 6,72 X3 + 1,05 X4 X1, X2, X3 y X4 fueron definidas en el ejemplo anterior. Vamos a trabajar con 147 empresas del sector de artes grficas. Como variables de entrada tenemos las cuatro X de la ecuacin de Altman para cada una de las 147 empresas y para cada uno de

Pablo Garca Estvez 2005

Curso de Redes Neuronales

La Red Neuronal Artificial

los aos comprendidos entre 1995 y 1999, ambos inclusive. Por tanto trabajaremos con 2.940 datos 147 empresas 4 variables 5 aos = 2.940 datos. Como variable objetivo utilizaremos la consideracin de si la empresa estaba en quiebra o no, otorgando el nmero cero a las empresas que estaban en quiebra y el nmero 1 a las que no. Este anlisis, pero utilizando otro tipo de red neuronal, fue realizado en el trabajo del profesor Elorduy (2001), Las redes neuronales como herramientas de prediccin de quiebra. La red que se utilizar en esta caso ser una MLP con cuatro neuronas de entrada, diez ocultas y una de salida. El objetivo es comprobar si hay alguna relacin matemtica entre las variables de la ecuacin de Altman y el estado real de las empresas. Como la ecuacin de Altman se utiliza como prediccin de quiebras, vamos a utilizar la tcnica de parada temprana, consistente en realizar una validacin al mismo tiempo que se entrena la red para evitar el sobreentrenamiento. Si realizamos infinitas iteraciones la red ser capaz de encontrar la relacin entre los datos de entrada y las salidas objetivo. Pero habra encontrado la relacin entre estos datos y estas salidas no teniendo ninguna validez para generalizar a otras empresas. Por lo tanto nos estaramos alejando de nuestro objetivo ya que la ecuacin de Altman es una ecuacin que se aplica a todas las empresas. Primero preparamos los datos que vamos a utilizar. Para ello de manera aleatoria dividimos el conjunto de datos en cuatro grupos, de los cuales dos utilizaremos para entrenar la red, uno para la validacin y el ltimo para realizar el test. Para facilitar el trabajo a la red normalizamos los datos de entrada en un rango entre 1 y 1 utilizando los mnimos y los mximos. Llamamos todosp al conjunto de todos los datos de entrada, trp al subconjunto de datos de entrada destinado al entrenamiento, vp al subconjunto de datos de entrada destinado a la validacin, trt el conjunto de objetivos del entrenamiento y vt el conjunto de objetivos de la validacin.

Cdigo
[todospn,mintodosp,maxtodosp]=premmnmx(todosp); trpn=tramnmx(trp,mintodosp,maxtodosp); vpn= tramnmx(vp,mintodosp,maxtodosp); v.P=vpn v.T=vt

Comentario
Establecemos el conjunto de mnimos y de mximos para la normalizacin de las entradas en el rango -1 + 1 Normalizamos el conjunto de entradas destinado al entrenamiento Normalizamos el conjunto de entradas destinado a la validacin Establecemos el conjunto vpn como conjunto de validacin Establecemos el conjunto vt como conjunto de objetivos de validacin

Ahora construimos la red neuronal. sta ser una MLP [4 10 1] con funcin de transferencia de la capa oculta tangente sigmoidea y funcin de transferencia de la

Tesis doctoral no publicada. UNED. 2001

Pablo Garca Estvez 2005

10

Curso de Redes Neuronales

La Red Neuronal Artificial

capa de salida logaritmo sigmoidea. El algoritmo de aprendizaje es Levenberg Marquardt. El cdigo sera el siguiente: net=newff([-1 1;-1 1;-1 1;-1 1;-1 1],[10 1],{'tansig','logsig'},'trainlm'); Ahora slo nos queda reiniciar los pesos sinpticos de la red y entrenarla.

Cdigo
net=init(net); [net,tr]=train(net,trpn,trt,[ ],[ ],v);

Comentario
Inicializamos los pesos Ordenamos a MatLab que entren la red y realice la validacin

Al escribir estas rdenes la red comienza mediante iteraciones a buscar la combinacin de pesos que optimiza el modelo y al mismo tiempo simula con los datos de la validacin comprobando, en cada momento, la bondad del modelo. El entrenamiento se parar cuando el error de validacin se dispare alejndose del error de entrenamiento. Si no se hiciese de esta manera la red tendra un sobre aprendizaje. Se adaptara perfectamente a los datos de entrenamiento y sera incapaz de generalizar fuera de la muestra dada. En este caso no nos interesa descubrir la funcin de densidad del conjunto de datos sino buscar una ecuacin general. La red se para y pasamos a realizar la simulacin con los datos destinados a realizar el test. Vamos a comprobar si la red devuelve datos similares a los objetivos que tiene el conjunto destinado al test. La variable tsp contiene el subconjunto de datos destinado al test, y la variable tst contiene los objetivos del test.

Cdigo
tspn=tramnmx(tsp,mintodosp,maxtodosp); rdo=sim(net,tspn); [m,b,r]=postreg(rdo,tst)

Comentario
Normalizamos los datos que vamos a utilizar para el test ene. Rango -1 +1 En el conjunto rdo calculamos la respuesta de la red con tspn Comparamos las respuestas con el conjunto de objetivos del test

El coeficiente de correlacin (r) que nos ofrece la red es del 0,2229. Es un valor muy bajo. Podemos concluir que no existe una relacin matemtica significante entre las variables que propone Altman y la situacin real de quiebra o no quiebra de la muestra recogida. 2.4 Modelo de prediccin de rendimientos

Se han creado 11 carteras en funcin de la proporcin que invierte, cada una, en renta variable. As, tenemos una cartera que invierte el 0% en renta variable y el 100% en renta fija; otra que invierte el 10% en renta variable y el 90% en renta fija; otra que invierte el 20% en renta variable y el 80% en renta fija y as, hasta la ltima que invertir el 100% en renta variable.

Pablo Garca Estvez 2005

11

Curso de Redes Neuronales

La Red Neuronal Artificial

Cada una de estas carteras invierte todos los meses la parte correspondiente de la renta variable en el IBEX-35, ndice que recoge los 35 valores ms negociados de la bolsa espaola. La parte correspondiente de la renta fija lo invierte en un ndice de renta fija AFI (Analista Financiero Internacional) con vencimiento a 10 aos. Al cabo de un mes se vende la cartera y se calcula el rendimiento mensual. La manera de calcular la rentabilidad mensual es mediante la siguiente ecuacin:

Rt =

Pt Pt 1 Pt 1

Donde: Pt es el valor de la cartera en el momento actual Pt-1 es el valor de la cartera en el periodo anterior. En este caso en el mes anterior. Los datos utilizados son los niveles de cierre, tanto del IBEX-35, como del ndice AFI a 10 aos desde el 1 de enero de 1997 hasta el 31 de diciembre de 2000. En la figura 3 se muestra una representacin en tres dimensiones donde en el eje de ordenadas se muestra los rendimientos; en el eje de abscisas, el tiempo, de manera cronolgica y, por ltimo, en el tercer eje se muestra las diferentes carteras. La cartera situada delante sera una, que invierte todo en renta fija, mientras que la que est situada en el fondo es un cartera que invierte todo en renta variable. Como podemos observar, y est dentro de la lgica financiera, las carteras con mayor contenido de renta variable consiguen mayores rentabilidades, pero tambin las mayores prdidas. Los gestores de carteras estn interesados en predecir los cambios futuros de los rendimientos para modificar la composicin stas y evitar as, incurrir en rentabilidades negativas. Para ello buscarn construir modelos que expliquen el rendimiento mensual futuro.

Pablo Garca Estvez 2005

12

Curso de Redes Neuronales

La Red Neuronal Artificial

Fig. 0.4 Rentabilidades de las once carteras a travs del tiempo.

El modelo presentado en este trabajo utiliza nueve variables. La eleccin de las variables explicativas es arbitrario, ya que parece no existir teora alguna que relacione variables macroeconmicas con el rendimiento de carteras a corto plazo. Las variables elegidas son las siguientes:

1. Tanto por ciento invertido en renta variable. (RV). Esta toma un rango entre 0 y 100%. 2. Precio de cierre del S & P 500 (SP). Durante el periodo de estudio este ndice tuvo un mnimo de 757 puntos y alcanz un mximo de 1.518 puntos . 3. Precio de cierre del IBEX-35 (IB). Durante el periodo de estudio este ndice tuvo un mnimo de 5.305 puntos y alcanz un mximo de 12.586 puntos. 4. Tipo de cambio al contado pesetas por dlar americano (E$). Esta variable toma un rango entre 138,75 pesetas y 195,91 pesetas. 5. Momentum de un da del S&P 500. (MSP). En puntos S&P y se mantuvo, durante el periodo de estudio, entre 528,79 puntos y 132,16 puntos. 6. Momentum de un da del IBEX-35. (MIB). En puntos IBEX; el mnimo fue de 3.887,08 puntos y el mximo 1.750,7 puntos. 7. ndice AFI a 1 ao (A1). En tanto por ciento y mantuvo un mnimo de 111,266% y un mximo de 141,941% 8. ndice AFI a 10 aos (A10). En tanto por ciento; el mnimo fue de 126,762% y el mximo de 175,742%

Pablo Garca Estvez 2005

13

Curso de Redes Neuronales

La Red Neuronal Artificial

9. Diferencia entre AFI a 1 ao y AFI a 10 aos. (DIF). En tanto por ciento y se mantuvo entre el 15,032% y 49,173%

A cada una de las once carteras se le asoci en cada fecha los datos correspondientes a las nueve variables descritas anteriormente. Por tanto, en cada fecha se trabaja con: 9 variables x 11 carteras = 99 datos en cada fecha. Al estudiar los rendimientos en 47 fechas diferentes, final de cada mes desde enero de 1997 hasta diciembre de 2000, la cantidad de datos total que se han utilizado es de: 47 x 99 = 4.653 datos. A estos hay que sumarle los rendimientos de las carteras en cada fecha. Estos suman: 11 carteras x 1 rendimiento x 47 fechas = 517 datos La suma total de datos computados asciende a 5.170 datos. La red neuronal elegida, despus de realizar numerosas pruebas de seleccin, es una MLP del tipo 9-15-1 (Nueve entradas, quince neuronas en la capa oculta y una neurona en la capa de salida). Las nueve entradas corresponden a las nueve variables seleccionadas; la neurona de salida nos mostrar el resultado de la prediccin. Las neuronas de la capa oculta utilizarn como funcin de transferencia una funcin del tipo tangente sigmoidea, mientras que la neurona de la capa de salida utilizar la funcin entidad.

Fig. 0.5 Modelo de Red empleada

En la figura 5 se muestra el esquema de la red neuronal utilizada en este trabajo. El conjunto de datos se ha divido en cuatro partes iguales. Para realizar el entrenamiento de la red se escoge el primer y tercer cuarto del conjunto de entrenamiento. El segundo cuarto se utilizar para realizar el test y el ltimo cuarto se emplear para realizar la validacin del modelo. Es decir, para realizar el modelo utilizamos los tres primeros cuartos, dejando el ltimo como muestra no utilizada con el fin de comprobar la bondad del modelo.

Pablo Garca Estvez 2005

14

Curso de Redes Neuronales

La Red Neuronal Artificial

Fig. 0.6 Evolucin de los errores en el entrenamiento, validacin y test

La red neuronal empleada utiliz un algoritmo de aprendizaje del tipo Levenberg Marquardt. El entrenamiento se par despus de 100 iteraciones, porque el error del test se estabiliz, al igual que el error de la validacin. El haber continuado hubiera supuesto incurrir en un sobre ajuste del modelo a los datos de aprendizaje. En la figura 6 se muestra el proceso del error, tanto del entrenamiento, como del test y de la validacin. El siguiente paso es analizar la respuesta de la red. Alimentaremos la red con los 5.170 datos y realizaremos una regresin lineal entre las respuestas de la red y sus correspondientes valores deseados. El resultado de la regresin se muestra en la siguiente figura.

Pablo Garca Estvez 2005

15

Curso de Redes Neuronales

La Red Neuronal Artificial

Fig. 0.7 Regresin lineal de los datos obtenidos y los datos deseados

En la figura 7 se muestran los datos deseados en el eje de abscisas y los datos obtenidos por la red en el eje de ordenadas. Cuando estos coinciden, se sitan en la lnea de 45 que cruza el cuadrado. Se puede observar que la red obtiene la mayora de los datos deseados. El coeficiente R2 toma un valor de 0,9996. Esto nos hace pensar que la red ha aprendido bien y que sabe predecir los rendimientos de la cartera. A continuacin mostramos, en la figura 8, los diferentes errores cometidos al realizar la prediccin de los 517 rendimientos correspondientes a las fechas utilizadas en este trabajo, utilizando los 5.170 datos para alimentar la red. Como se puede observar la mayora de los rendimientos calculados tiene un error respecto al rendimiento deseado, inferior a 0,002

Pablo Garca Estvez 2005

16

Curso de Redes Neuronales

La Red Neuronal Artificial

Fig. 0.8 Representacin de los errores en cada una de las 126 predicciones

Seguidamente vamos a establecer el modelo matricial de prediccin de rendimientos que se deriva de este trabajo. Bsicamente las variables normalizadas elegidas son multiplicadas por la matriz de los pesos sinpticos que unen la capa de entrada con la capa oculta. A la matriz resultante se le suma la matriz de los umbrales. Cada uno de los valores de la matriz resultante se le aplica una funcin tangente sigmoidea. Se multiplica esa matriz por la matriz de pesos que une la capa oculta con la capa de salida y se le suma el umbral de salida. El dato de salida debe ser desnormalizado, y nos muestra el rendimiento esperado de la cartera. En otras palabras, para el clculo del rendimiento previsto del prximo mes hay que seguir estos pasos. 1. Establecer la matriz de entrada. Esta se construye con los datos actuales de las variables definidas anteriormente, (RV SP IB Siendo: RV el tanto por ciento de renta variable que se invierte en la cartera. SP el valor de cierre del ndice S&P 500. IB el valor de cierre del ndice IBEX35. E$ el tipo de cambio al contado de pesetas por dlar americano. MSP el momentum de un da del S&P 500. MIB el momentum de un da del IBEX35. A1 el valor, en tanto por ciento, del ndice AFI a un ao. A10 el valor, en tanto por ciento, del ndice AFI a diez aos DIF la diferencia entre el valor del ndice AFI a un ao y a diez aos. 2. Normalizar mediante la siguiente ecuacin: E$ MSP MIB A1 A10 DIF)

pn =

p p

Siendo pn el valor normalizado p la media de la variable durante el periodo de estudio p la desviacin tpica de la variable durante el periodo de estudio.

Pablo Garca Estvez 2005

17

RV SP-500

50 31,6534 1.175 225

0,14065834

-0,20169612

0,02897013

0,28537413

0,22024822

0,2294251

0,20452433

-0,49695176

-0,27298934

Curso de Redes Neuronales

9.134 1.883

Pablo Garca Estvez 2005 IBEX-35


-2,02293551 -0,85135367 0,75190001 -1,19669627 2,62955245 2,20314851 0,88295352 1,15875885 0,28537413 -2,02293551 -0,85135367 0,75190001 -1,19669627 2,62955245 -0,23317526 2,05728068 -0,99883683 -0,20758721 -1,8377546 0,86022627 -1,74181432 -1,07177995 -2,15569863 0,73600179 -0,00901106 1,44170818 2,58216251 -1,20855624 -1,18682989 0,22024822 0,2294251 0,20452433 -0,49695176 2,24131115 1,71074164 -0,4884355 4,25169481 -1,89282418 0,61155847 0,56189204 2,98585136 -0,52992919 -0,55677243 1,10527919 2,57111216 -0,6456225 -2,55432151 0,37390094 1,95404623 -1,89979355 -1,69241158 -1,09674974 -0,4560946 -0,27298934 -1,24304596 0,95591809 -0,24102292 2,12384582 -1,73783173 -0,23317526 2,05728068 -2,15569863 -1,89282418 -1,73783173 -0,99883683 -0,20758721 -1,07177995 4,25169481 2,12384582 -1,8377546 0,86022627 -1,74181432 -0,4884355 -0,24102292 0,73600179 -0,00901106 1,44170818 1,71074164 0,95591809 2,58216251 -1,20855624 -1,18682989 2,24131115 -1,24304596

-1,89627618

-1,87855483

2,10066607

0,60042132

-2,16560919

-0,3480952

-0,6605974

2,03250281

1,10544868

ESP/USD

158,2011 14,52268

0,52385529

2,40504765

-0,07344557

-0,26356104

0,65559742

1,75019276

-0,01981263

-0,73251088

-2,26358978

1,022804642 94,34481292

Momentum 1 SP

0,39407268

2,23247591

-0,04403916

-0,11550126

3,647352

2,01437414

0,14065834

-0,20169612

0,02897013

-1,89627618

-1,87855483

2,10066607

7,518529981 885,3126299

Momentum 1 IBEX

Tabla 5 Matriz de pesos sinpticos.

0,60042132

-2,16560919

-0,3480952

-0,6605974

2,03250281

1,10544868

121,7 5,575

1 ao

0,52385529

2,40504765

-0,07344557

La matriz resultante (1 x 9) se multiplica por la matriz de pesos (9 x 15)

Tabla 4 Medias y desviaciones tpicas en el rango 1/1/97 31/12/00 de las diferentes variables

-0,26356104

0,65559742

1,75019276

10 aos dif 1-10 34,5975 8,68346

La Red Neuronal Artificial

Con esto conseguimos que todos los datos utilicen la misma escala. Las medias y las desviaciones tpicas de todas las variables se resumen en la siguiente tabla:

156,3405 13,57542

18

Curso de Redes Neuronales

La Red Neuronal Artificial

Al producto resultante se le suma la matriz de pesos sinpticos siguiente.


Tabla 6 Matriz de umbrales
-2,38292703 3,63842177 -3,53945702 2,26517132 0,65052901 -3,21219672 1,30308858

0,69190585 0,46735104 -1,07539956 3,21372422 1,48311818 1,13415966 0,87950979 -1,55682899

El resultado es una matriz de dimensiones 1 x 15. Cada valor de la matriz se le aplica una funcin tangente sigmoidea como la siguiente:

y=

2 1 1 + e 2n

Siendo n cada uno de los valores individuales que integran la matriz de dimensiones 115 La matriz resultante se multiplica por la matriz de los pesos sinpticos que conecta la capa oculta con la capa de salida.

-1,84777741 1,06081602 -2,58164027 2,33309921 4,01448452 2,28167753 -5,02074176 3,82706919 -3,50704386 -3,00474526 -3,39173707 1,85488364 1,6220616 -2,38924055 4,18695229

Y el resultado final es un nmero al cual se le debe sumar el umbral de salida:


2,88832702

El nmero resultante se debe desnormalizar, ya que ahora est en un rango entre cero y uno. Para la desnormalizacin se utiliza la siguiente ecuacin: Rendimiento = 0,04979116 x Resultado + 0,00861561

En los anlisis financieros es comn el intento de predecir los rendimientos de las carteras, para ello se utilizan diferentes tcnicas, tanto economtricas como matemticas. En este trabajo presentamos una tcnica alternativa: las redes neuronales, que consigue unos resultados satisfactorios. Pero, como el analista no

Pablo Garca Estvez 2005

19

Curso de Redes Neuronales

Funciones de Base radial.

puede utilizar tcnicas que sean complejas y difciles de manejar se ha desarrollado el modelo matricial, derivado del algoritmo neuronal, que se puede trasladar a una hoja de clculo con facilidad donde slo se introducen los datos de las variables. Este modelo es vlido durante un periodo de tiempo, ya que al volver al entrenar a la red con nuevos datos, sta captar nuevos patrones de comportamiento que antes no se daban y en el nuevo entrenamiento s, por lo que el modelo es actualizable con los nuevos datos de mercado.

FUNCIONES DE BASE RADIAL.

Las funciones de base radial, Radial Basis Functions (RBF) son un modelo hbrido ya que utiliza tanto el aprendizaje supervisado como el no supervisado. La ventaja de estos modelos es el poco tiempo que necesitan para su entrenamiento.

Y
((d ist))

X b1

LW

+ b2

Vecto r de e ntra das

Fig. 0.9 Esquema de una Red Neuronal del tipo Funcin Base Radial

Una RBF tiene tres capas: entrada, oculta y salida. Las neuronas de la capa de salida son lineales. Las neuronas de la capa oculta calculan la diferencia entre el vector de entradas y los pesos sinpticos, denominados, centroides, y a esta diferencia le aplican una funcin radial con forma gaussiana. La funcin de transferencia, radial, de tipo gaussiano adopta la siguiente forma:

(r ) = e

r2 2 2

Donde r2 es la funcin de distancia, que generalmente es una funcin de distancia eucldea, y tiene la siguiente forma:

r 2 = X i W j ,i
i =1

2 es el parmetro de normalizacin o factor de escala y mide la anchura de la gaussiana. Es equivalente al ratio de influencia en los mapas de Kohonen. En el programa MatLab el cdigo de la funcin es:

(r)= rasbas(n) = e(n^2)


Siendo n = (||W X|| b)

Pablo Garca Estvez 2005

20

Curso de Redes Neuronales

Funciones de Base radial.

Cuyo grfico es el mostrado a continuacin. Cuando la distancia entre W y X decrece, la funcin crece. Su mximo sucede cuando W X = 0, momento en el cual la funcin devuelve 1. Cuando presentamos un vector de entrada, cada neurona de la capa oculta, con funciones de transferencia de base radial, darn una u otra salida dependiendo de lo cerca que est el vector de entrada de los pesos sinpticos.
1 0,5

0,833

+ 0,833

Fig. 0.10

La entrada de cada neurona de la capa oculta es la distancia entre el vector de entradas y su vector de pesos. Esta distancia ser multiplicada por el vector de los umbrales. El resultado se le aplica la funcin radial. Para disear una red con funcin radial hay que teclear: net = newrbe(P,T,SPREAD) En este caso SPREAD es una constante para la funcin de base radial. Devuelve una red donde las salidas de P son exactamente T. Esta funcin crea tantas neuronas radiales como vectores de entrada hay en P y establece los pesos de la primera capa como P. As, tenemos una capa de neuronas radiales en la cual cada neurona acta como un detector de los diferentes vectores de entrada. Si hay Q vectores de entrada, habr Q neuronas. Cada umbral en la primera capa es establecido como (0,8326 / SPREAD) Esto nos ofrece una funcin de base radial que cruza 0,5 cuando el peso ponderado se sita en SPREAD. Esto determina la anchura de un rea en el espacio de entradas en la cual cada neurona responde. Si SPREAD = 4, entonces la neurona RBF responder con 0,5 o ms para cualquier entrada dentro de la distancia de 4 desde los pesos sinpticos. Como veremos SPREAD debera ser lo suficientemente grande para que las neuronas respondan con fuerza a las regiones solapadas. Los pesos de la segunda capa IW{2,1} y sus umbrales b{2}se encuentran simulando las primeas salidas y resolviendo la siguiente expresin lineal:

[W21

W22 W23 K W2 N

A1 A 2 b2 ] A3 = T M 1

Pablo Garca Estvez 2005

21

Curso de Redes Neuronales

Funciones de Base radial.

Nosotros conocemos las entradas de la segunda capa A{1} y el objetivo T y que la capa es lineal. Al calcular W y b la suma del error cuadrtico siempre ser cero. El problema es que hay C incgnitas y C + 1 variables y un problema lineal con C incgnitas y C + 1 variables tienen infinitas soluciones. As, newrbe crea una red con error cero en los vectores de entrenamiento. La nica condicin que debemos mantener en tener la seguridad de que SPREAD es lo suficientemente grande que active las regiones de entrada de las neuronas RBF para solapar con holgura, as que algunas neuronas RBF siempre tengan salidas en cualquier momento. Esto hace la funcin de la red ms suave y resulta en una mejor generalizacin para las nuevas entradas. La crtica a newrbe es que produce una red con tantas neuronas ocultas como los vectores de entrada. Por esta razn newrbe no nos ofrece una solucin aceptable. Se puede conseguir un diseo ms eficiente con la funcin newrb, que crea de manera iterativa una red de base radial aadiendo una neurona en cada ciclo. Las neuronas son sumadas a la red hasta que la suma del error cuadrtico cae dentro de un objeto de error o un nmero de neuronas mximo ha sido alcanzado. net = newrb(P,T,GOAL,SPREAD) Como con newrbe es importante que el parmetro SPREAD sea tan grande que las neuronas RBF respondan a las regiones solapadas del espacio de entradas, pero no tan grandes que todas las neuronas respondan de la misma manera. 3.1 Ajuste de la frontera eficiente mediante una red de base radial

Supongamos que tenemos un conjunto de cinco carteras que nos ofrecen unos rendimientos para unos riesgos dados. Estos datos se presentan en la siguiente tabla:
Tabla 7 Cartera 1 Rendimiento 6% Desviacin 5% tpica 2 3 4 5 12% 16% 18% 19% 10% 15% 20% 25%

Una vez transferidos estos datos al programa MatLab, llamamos a la matriz de rendimientos: Rto y a las desviaciones tpicas: std. Las presentamos en un eje de coordenadas:

plot(std, Rto, );

Pablo Garca Estvez 2005

22

Curso de Redes Neuronales

Funciones de Base radial.

0.2

0.18

0.16

0.14

0.12

0.1

0.08

0.06 0.05

0.1

0.15

0.2

0.25

Definimos el rango de datos desde 3 hasta + 3 con intervalos de 0,1, en el que existir la funcin radial. p = -3: 0.1: 3; a = radbas(p); Definimos el error global que queremos conseguir: eg = 0.01; Y tambin definimos el diferencial constante que define el cociente 0,8326 / diferencial a partir del cual la funcin radial devuelve 0,5. sc = 1; Definimos la red neuronal: net=newrb(std, Rto, eg, sc); Simulamos la respuesta de la red para los siguientes datos: 5% 7,5% 10% 12,5% 15% 17,5% 20% 22,5% y 25%

X = .05:.025:.25; Y=sim(net,X); hold on; plot(X,Y); hold off;

Pablo Garca Estvez 2005

23

Curso de Redes Neuronales

Redes de regresin generalizada

0.2

0.18

0.16

0.14

0.12

0.1

0.08

0.06 0.05

0.1

0.15

0.2

0.25

Vemos como la red neuronal ha ajustado la funcin a los puntos formados por el rendimiento y el riesgo de cada una de las carteras. En la siguiente tabla mostramos la respuesta de la red.
Rendimiento Desviacin 6,71% 5% 9,16% 7,5% 11,76% 10% 13,97% 12,5% 15,79% 15% 17,21% 17,5% 18,23% 20% 18,84% 22,5% 19,04% 25%

El peso que une la capa de entrada con la capa oculta es 0,25 y su umbral
0,832554611. El peso que une la capa oculta con la capa de salida es 4,706785522 y su umbral -4,51634446

El algoritmo que ajusta la curva que representa la frontera eficiente formada a partir de las cinco carteras iniciales es:

Rto = e

4,706785522
( Std 0, 25 0,832554611)2

4,51634446

REDES DE REGRESIN GENERALIZADA

Las redes neuronales de regresin generalizada generalized regression neuronal network (GRNN) son utilizadas a menudo como funcin de aproximacin. Estn emparentadas con las RBF y tienen una arquitectura similar que se muestra en la siguiente figura:

Pablo Garca Estvez 2005

24

Curso de Redes Neuronales

Redes de regresin generalizada

QxR

LW

((dist)) Rx1 Vector de entradas Qx1

X b1

n1
Qx1

a1
Qx1

nprod

n2
Qx1

a2
Qx1

Fig. 0.11 Esquema de una red neuronal de regresin generalizada

Esta red tiene tantas neuronas en la capa oculta como vectores de entrada existen en el conjunto R. Cuando se introduce un vector de entrada se calcula la diferencia entre este y los diferentes pesos sinpticos que unen las neuronas de entrada con las ocultas. Cada una de estas diferencias es multiplicado por el umbral, que es nico produciendo el vector n1:

n1 =
Siendo:

p W1,1 b p W2,1 b p W3,1 b M p WQ ,1 b

p el vector de entrada en el momento s Wj,1 el peso sinptico que une el vector de entrada con la neurona j de la capa oculta b el umbral, nico, para todas las neuronas de la capa oculta

Cada una de las filas del vector n1 alimenta a una funcin de base radial similar a las utilizadas en las redes RBF. Siendo n2 el cuadrado de n1
2 r = e ( p W1,1 b ) 1 2 ( p W2 ,1 b ) r2 = e 2 -n2 Radbas(n1) = e = r = e ( p W3,1 b ) 3 M 2 r = e ( p WQ ,1 b ) Q

Esto crea una matriz de tamao Q x 1 que ser el dato que se introduce en una funcin nprod que utiliza el siguiente algoritmo. z = wp/sum(p) Que aplicado al desarrollo que estamos haciendo quedara como sigue:

Pablo Garca Estvez 2005

25

Curso de Redes Neuronales

Redes de regresin generalizada

n2 =

r
j =1

W j', j
j

r
j =1

Que representa la salida de la red. Podemos escribir el algoritmo de la siguiente forma:

n2 =
j =1 Q j =1

( Wi ,1 p bi )2 ( )2

W j', j

Wi ,1 p bi

En el programa MatLab, el cdigo que se utiliza es newgrnn(P, T, spread) Donde P son las entradas de la red, T los objetivos y spread es una medida que el usuario elige, y que indica, como en las RBF el punto a partir del cual la funcin de base radial devuelve 0,5. Un spread grande ofrece una gran rea alrededor del vector de entrada donde las neuronas de la primera capa respondern con salidas significantes. Si el spread es pequeo, la funcin de base radial est muy apuntalada, y tendr una salida mayor. La red tender a responder con vectores objetivo asociados con los vectores de entrada ms cercanos. Un SPREAD que aumenta la pendiente de la funcin de base radial consigue suavizar la funcin y que varias neuronas respondan a un vector de entrada. La red acta, entonces, escogiendo la media ponderada entre los vectores objetivo cuyos vectores de entrada designados sean ms cercanos al nuevo vector de entrada. Cuando SPREAD se hace mayor, ms y ms neuronas contribuyen a la media con el resultado de que la funcin de la red se suaviza. 4.1 Ajuste de la Frontera Eficiente mediante una Red de Regresin Generalizada

Para realizar este ejemplo vamos a utilizar los mismos datos que en el caso de la Funcin de Base Radial del epgrafe 2.3.1. Los datos son los siguientes:
Tabla 8 Cartera 1 Rendimiento 6% Desviacin 5% tpica 2 12% 10% 3 16% 15% 4 18% 20% 5 19% 25%

Llamamos Std al vector de las desviaciones tpicas que sern las entradas de la red y Rto al vector de los rendimientos, que es este caso, sern los objetivos. Primero dibujemos los puntos en un eje de coordenadas y establezcamos las medidas de los ejes de coordeandas plot(Std,Rto,'+',markersize,10) axis([0 .25 .04 .2])

Pablo Garca Estvez 2005

26

Curso de Redes Neuronales

Redes de regresin generalizada

0.2

0.18

0.16

0.14

0.12

0.1

0.08

0.06

0.04

0.05

0.1

0.15

0.2

0.25

Fig. 0.12

Ahora vamos a crear la red, eligiendo un diferencial muy pequeo de 0,03.

spread=.03; net=newgrnn(Std,Rto,spread);

Ahora vamos a simular las salidas de la red utilizando como datos de entrada el rango comprendido entre 0 y 0,25, con intervalos de 0,01.

X=0:.01:.25; Y=sim(net,X);

Dibujemos los resultados en el grfico anterior

hold on plot(X,Y) hold off

Pablo Garca Estvez 2005

27

Curso de Redes Neuronales

Redes Neuronales Probabilsticas

0.2

0.18

0.16

0.14

0.12

0.1

0.08

0.06

0.04

0.05

0.1

0.15

0.2

0.25

Fig. 0.13

Los resultados obtenidos son los siguientes:


Tabla 9
Rto Std 6,02% 0,00% 6,04% 1,00% 6,09% 2,00% 6,18% 3,00% 6,38% 4,00% 6,77% 5,00% 7,45% 6,00% 8,47% 7,00% 9,69% 10,83% 11,78% 12,63% 13,51% 8,00% 9,00% 10,00% 11,00% 12,00%

Rto 14,40% 15,17% 15,77% 16,26% 16,73% 17,19% 17,58% 17,89% 18,13% 18,36% 18,58% 18,76% 18,87% Std 13,00% 14,00% 15,00% 16,00% 17,00% 18,00% 19,00% 20,00% 21,00% 22,00% 23,00% 24,00% 25,00%

REDES NEURONALES PROBABILSTICAS

Las redes neuronales probabilsticas (RNP) pueden ser utilizadas para problemas de clasificacin. Cuando una entrada es presentada, la primera capa calcula las distancias desde el vector de entrada a los vectores de entrada entrenados y produce un vector cuyos elementos indican como est de cerca la entrada respecto a la entrada entrenada. La segunda capa suma estas contribuciones para cada clase de entrada y produce con ellas un vector de salida con las probabilidades. Finalmente, una funcin de transferencia en la salida de la segunda capa del tipo compete coge la mxima de estas probabilidades y produce un 1 para esa clase y cero para las dems. El esquema de la red est representado en la siguiente figura:

Pablo Garca Estvez 2005

28

Curso de Redes Neuronales

Redes Neuronales Probabilsticas

QxR

((dist)) Rx1 Qx1

n1
X b1
Qx1

a1
Qx1

n2
LW KxR Kx1

a2
Qx1

Vector de entradas

Fig. 0.14

Se asume que existen Q vectores entrada / objetivo. Cada vector objetivo tiene K elementos y uno de esos elementos es 1 siendo el resto 0. Por ejemplo, si existen As, cada vector de entrada es asociado con una de las K clases existentes. Los pesos de la primera capa IW1,1 estn puestos a la traspuesta de la matriz formada por las Q parejas de entrenamiento, P. Cuando una entrada es presentada, la funcin ||dist|| produce un vector cuyos elementos indican cmo de cerca est la entrada de los vectores del conjunto de entrenamiento. Estos elementos son multiplicados, elemento a elemento, por el umbral y enviado a una funcin de base radial. Un vector de entrada cercano al vector de entrenamiento ser representado por un nmero cercano a 1 en el vector de salida a1. Si una entrada est cerca de varios vectores de entrenamiento de una clase simple, ser representado por varios elementos de a1, que estarn cercanos a 1. Los pesos de la segunda capa LW2,1 son establecidos a la matriz T de vectores objetivo. Cada vector tiene un 1 slo en la fila asociada con esa clase particular de entradas y 0 en el resto. La multiplicacin Ta1 suma los elementos de a1 debido a cada una de las K clases de entrada. Finalmente, la funcin de transferencia de la segunda capa, compete produce un 1 correspondiendo al mayor de los elementos de n2 y 0 en el resto. As la red ha clasificado el vector de entradas dentro de una clase especfica de las K clases, porque esa clase tena la mxima probabilidad de ser la correcta. Veamos un ejemplo: Supongamos que tenemos la siguiente matriz de datos:

1 2 P = 2 2 1 1
Vinculada al siguiente vector de clases:

Tc = [1 2 3]
De tal manera que el elemento (1, 2) pertenece a la clase 1, el elemento (2, 2) pertenece a la clase 2 t el elemento (1, 1) pertenece a la clase 0. Escribimos esto mismo en el MatLab P=[1 2;2 2;1 1]';

Pablo Garca Estvez 2005

29

Curso de Redes Neuronales

Redes Neuronales Probabilsticas

Tc=[1 2 3]; plot(P(1,:),P(2,:),'.') axis([0 3 0 3]) For i = 1:3, text(P(1,i)+.1,P(2,i),sprintf('Clase %g',Tc(i))),end


3

2.5

Clase 1

Clase 2

1.5

Clase 3

0.5

0.5

1.5

2.5

Fig. 0.15

Convertimos los ndices de clase, T, en vectores. T=ind2vec(Tc); Establecemos un diferencial igual a uno y creamos la red. spread=1; net=newpnn(P,T,spread); Introducimos, ahora, un valor en la red para que nos devuelva la clase a la que pertenece.

p=[2;1.5]; a=sim(net,p); ac=vec2ind(a); hold on plot(p(1),p(2),'+') text(p(1)+.1,p(2),sprintf('Clase %g',ac))

Pablo Garca Estvez 2005

30

Curso de Redes Neuronales

Redes Neuronales Probabilsticas

2.5

Clase 1

Clase 2

1.5

Clase 2

Clase 3

0.5

0.5

1.5

2.5

Como se puede ver, la red nos dice que el punto (2; 1,5) pertenece a la clase 2. Podemos pedirle a la red que nos muestre el mapa del plano delimitado por los ejes de coordenadas y escriba la pertenencia de cada punto para, de esta manera, establecer las fronteras entre las diferentes clases.

2,5 1 1 1 1 1 2,25 1 1 1 1 1 2 1 1 1 1 1 1,75 1 1 1 1 1 1,5 13 13 13 13 13 1,25 3 3 3 3 3 1 3 3 3 3 3 0,75 3 3 3 3 3 0,5 3 3 3 3 3 0,25 3 3 3 3 3 0,25 0,5 0,75 1 1,25

12 2 12 2 12 2 12 2 123 2 3 23 3 3 3 3 3 3 3 3 1,5 1,75

2 2 2 2 2 2 2 2 2 2 2 2 23 23 23 23 23 23 23 23 2 2,25

2 2 2 2 2 2 23 23 23 23 2,5

Fig. 0.16

En la figura anterior se observa tres zonas perfectamente delimitadas, donde el vector localizado en cada una de ellas tiene muy claro cul es la clase a la que pertenece. En los lmites de estas zonas existen unas fronteras donde se mezcla la influencia de dos y hasta tres clases. Al introducir un vector en la red, por ejemplo (0,75; 1), se calcula la distancia eucldea de este vector respecto a los pesos de la primera capa: Sea:

Pablo Garca Estvez 2005

31

Curso de Redes Neuronales

Redes Neuronales Probabilsticas

1 2 W = 2 2 1 1
Calculamos las distancias entre el vector y los pesos y las multiplicamos por el umbral que tiene un valor de 0,8326

(1 0,75) + (2 1) 0,8326 n1 = (2 0,75) + (2 2) 0,8326 (1 0,75) + (1 1) 0,8326


Se calcula el valor de una funcin de base radial para cada una de las fila de la matriz n1. La matriz de base radial adopta la siguiente forma:

a = en
El resultado es:

0,33852391 a1 = 0,02991365 0,95759876


La funcin Compet nos devuelve 1 para el mayor valor de la matriz a1 y 0 para el resto. En funcin de la fila dnde devuelve el nmero 1, la red devolver clase 1, 2 o 3.

0,33852391 0 1 a1 = 0,02991365 0 2 0,95759876 1 3

Pablo Garca Estvez 2005

32