Está en la página 1de 27

PRCTICAS DE LABORATORIO

Redes Recurrentes y Autnomas 29-03-07 ________________________________________________________________________


PRCTICA 1
Analiza la evolucin de la red recurrente binaria cuya matriz de pesos sinpticos viene dada en la figura 1(a) y sus valores umbrales son todos iguales a uno.
0 0.0582 -0.4839 0.1267 -0.5362 0.0582 0 -0.9408 0.2464 -1.0426 -0.4839 -0.9408 0 -2.0496 8.6721 0.1267 0.2464 -2.0496 0 -2.2713 -0.5362 -1.0426 8.6721 -2.2713 0

(a) (b) Figura 1. a) Matriz de pesos sinpticos. b) Imagen de la matriz.

Explica por qu una solucin ptima debe ser la representada en la figura 2 en trminos del consenso de los estados de las neuronas segn los valores de los pesos sinpticos de las conexiones.

Figura 2. Solucin ptima.

PRCTICA 2
Construye una red recurrente y binaria de 100 unidades de proceso (neuronas), cuyos pesos sinpticos y umbrales sean nmeros aleatorios del intervalo [-1,1], siguiendo una dinmica de computacin secuencial (asncrona) con eleccin aleatoria de las neuronas (figura 3). Analiza el comportamiento de la funcin de energa conforme aumenta el nmero de actualizaciones (figura 4). Cuntos ciclos (pocas) de actualizaciones neuronales han sido necesarios para la estabilizacin de la red? Interpreta la configuracin final de la red segn los valores de los pesos sinpticos (figura 5).

Figura 3. Mapa de los pesos sinpticos. Figura 4. Evolucin de la energa computacional.

Figura 5. Una configuracin final para 100 neuronas.

PRCTICA 3
Construye una red recurrente y binaria de 100 unidades de proceso (neuronas), cuyos pesos sinpticos y umbrales sean nmeros aleatorios del intervalo [-1,1], siguiendo una dinmica de computacin paralela (sincronizada). Analiza el comportamiento de la funcin de energa conforme aumenta el nmero de actualizaciones (figura 6). Se estabiliza la red?

Figura 6. Evolucin de la energa computacional.

PRCTICAS DE LABORATORIO

Redes Recurrentes y Autnomas 29-03-07 ________________________________________________________________________


PRCTICA 4 Disea una red de Hopfield que determine el menor de 100 nmeros, x1 , x2 ,..., x100 , generados aleatoriamente en el intervalo [0, 1]. Comprueba que los parmetros de la red pueden son: wij = 2 , i j ,

siendo el parmetro de penalizacin, wii = 0, i = xi , i, j=1,2,,100. Determina siempre la red el valor menor (mnimo global)? Por qu? Cmo actualizaras las unidades de proceso para conseguir que la red siempre alcance el valor mnimo?
PRCTICA 5 Se considera el siguiente Problema de localizacin: Dado un grafo con N vrtices (puntos de demanda), se trata de determinar el vrtice (centro de servicio) que minimiza la suma total de las distancias a cada uno de los vrtices del grafo. Disea una red de Hopfield para encontrar dicho vrtice (llamado mediana del grafo). Se puede utilizar la red anterior? PRCTICA 6 Problema de video-vigilancia (cobertura): Una zona cntrica de una ciudad se representa por un grafo en el que los cruces de calles constituyen sus vrtices y las aristas son los tramos de calle entre dos cruces. Se desea seleccionar el conjunto de vrtices de menor tamao que garantice que cualquier arista del grafo incide sobre algn vrtice de dicho conjunto. Disea una red de Hopfield binaria para el grafo que viene en la figura 7 junto a su matriz de adyacencia.
13 11 12 10 9 8 4 6 5 2 7 3
0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0

Figura 7. Grafo y su matriz de adyacencia.

Comprueba que los parmetros de la red pueden son: wij = 2 aij , i j , siendo el parmetro de penalizacin y aij el elemento i = 1 2 ni , i, j = 1, 2,..., N . (i,j) de la matriz de adyacencia del grafo,
wii = 0,

PRCTICA 7 Diseo de un convertidor analgico-digital: Se trata de convertir (aproximar) cualquier valor de una seal
( analgica (continua) z(t) [0, 255] en la representacin binaria de 8 bits, z t ) = 2i xi , con xi {0,1},
i =0 7

i=0,1,2,,7, que mejor aproxima a z(t). Por lo tanto, el objetivo es minimizar el error de representacin que viene dado por la expresin:
7 E (t ) = z 2i xi i =0 Disea una red de Hopfield para encontrar los valores x0 , x1 ,..., x7 que conduce a la mejor aproximacin de z(t). 2

PRCTICAS DE LABORATORIO

El Perceptrn simple: neuronas binarias 19-04-2007 ________________________________________________________________________


PRCTICA 1 Construccin de una neurona binaria

Se va a construir una red neuronal con una nica neurona que tiene una funcin paso (escaln), como funcin de transferencia, y dos sensores de entrada. Sus entradas van a ser nmeros reales del intervalo [5,5]: net=newp([-5 5;-5 5],1,hardlim) % ([Matriz de valores mnimos y mximos de las entradas], Nmero de neuronas, Funcin de Su matriz de pesos sinpticos va ser W=[2 -1] y el umbral b=1.5:

transferencia)

net.IW{1,1}=[2 -1]; net.b{1}=1.5; Valores de salida de la neurona lineal para cada una de las entradas del conjunto 1 2 3 1 C = , : 3 2 4 3

P=[1 -2 3 -1; 3 2 -4 -3]; S=sim(net,P); SOLUCIN: ________________________________________________________________________________ Funcin que define la neurona binaria:
si 2 x1 x2 1.5 1 y= si 2 x1 x2 < 1.5 0 Salidas de la red para cada uno de las entradas del conjunto C:

1 2 3 1 3 1; 2 0; 4 1 3 1 ________________________________________________________________________________

PRCTICAS DE LABORATORIO

PRCTICA 2

Construccin de una neurona bipolar

Se va a construir una red neuronal con una nica neurona que tiene la funcin signo, como funcin de transferencia, y dos sensores de entrada. Sus entradas van a ser nmeros reales del intervalo [5,5]: net=newp([-5 5;-5 5],1,hardlims) % ([Matriz de valores mnimos y mximos de las entradas], Nmero de neuronas, Funcin de Su matriz de pesos sinpticos va ser W=[2 -1] y el umbral b=1.5:

transferencia)

net.IW{1,1}=[2 -1]; net.b{1}=1.5; Valores de salida de la neurona lineal para cada una de las entradas del conjunto 1 2 3 1 C = , : 3 2 4 3

P=[1 -2 3 -1; 3 2 -4 -3]; S=sim(net,P)

SOLUCIN: ________________________________________________________________________________ Funcin que define la neurona bipolar:


si 2 x1 x2 1.5 1 y= si 2 x1 x2 < 1.5 1 Salidas de la red para cada uno de las entradas del conjunto C:

1 2 3 1 3 1; 2 1; 4 1 3 1 ________________________________________________________________________________

PRCTICAS DE LABORATORIO

PRCTICA 3 Aprendizaje con el Perceptrn: Implementacin de la Funcin lgica OR Se va disea un perceptrn simple que implemente la funcin lgica OR con dos entradas y una nica neurona de salida.
El conjunto de los 4 patrones de entrada (bidimensionales) viene dado la matriz 1 1 0 0 P= y sus correspondientes salidas deseadas vienen dadas por el vector 1 0 1 0

T =[ 1 1 1 0 ].

Construccin de la red inicial como un objeto estructurado:

net = newp([0,1;0 1], 1,hardlim,learnp); % No es necesario especificar %'hardlim','learnp', las toma por defecto % newp([matriz de valores mnimos y mximos de las entradas], Nmero de neuronas, Funcin %de Transferencia, Regla de Aprendizaje) Valores iniciales aleatorios de los pesos y del umbral de la red % Tambin puede ser net=init(net);

net.IW{1,1}=[rands(1) rands(1)]; net.b{1}=rands(1); Entrenamiento de la red:

net.trainParam.epochs = 20; net.trainParam.goal = 0;

% Nmero mximo de pocas % Error admisible

[net, tr, Y, E]= train(net, P, T) Salidas Y de la red para las entradas P y el error E cometido :

S= sim(net, P) Presentacin de los parmetros de la red % se presentan los pesos sinpticos de la red % se presenta el sesgo de la red % se presenta el error absoluto medio. mse nos da el error cuadrtico medio

net.IW{1} net.b{1} mae(S-T)

SOLUCIN: ________________________________________________________________________________

1 y= 0

si 1.35 x1 + 0.81x2 0.52 si 1.35x1 + 0.81x2 < 0.52

x1 x2
Figura 8. Patrones y recta de separacin

1.35

y
0.81 - 0.52
Figura 9. Funcin implementada (OR)

________________________________________________________________________________

PRCTICAS DE LABORATORIO

PRCTICA 4 Aprendizaje con el Perceptrn: Clasificacin con datos de huracanes Se dispone de un conjunto de datos correspondientes a la longitud y latitud de 37 puntos geogrficos, junto con el tipo de huracn que han padecido (baroclnico o tropical del Atlntico Norte). Se va a disear un perceptrn con dos entradas y una neurona de salida para predecir el tipo de huracn segn la longitud y latitud de un punto geogrfico.
Conjunto de patrones de entrenamiento load huracanes Creacin del Perceptrn de dos sensores de entrada y una neurona de salida.

net = newp(minmax(P),1,'hardlim','learnp'); %minmax(P) nos da el valor mnimo y el valor mximo de cada fila de P net = init(net); % Valores aleatorios iniciales de los parmetros Entrenamiento de la red % Nmero mximo de pocas de entrenamiento % Se muestra resultado cada 5 pocas % Error admisible % Entrenamiento on line. Tambin puede ser en lotes: 'trainb'

net.trainParam.epochs = 20; net.trainParam.show = 5; net.trainParam.goal = 0.1; net.trainFcn='trainc'; net = train(net,P,T); Salidas de la entrenamiento red

cuando

las

entradas

corresponde

al

conjunto

de

S= sim(net,P) Valores despus del entrenamiento de los pesos sinpticos, del umbral y del error absoluto medio por neurona % se presentan los pesos sinpticos de la red % se presenta el sesgo de la red % se presenta el error absoluto medio. mse nos da el error cuadrtico medio

net.IW{1} net.b{1} mae(S-T)

SOLUCIN: ________________________________________________________________________________

1 y= 0

si si

36x1 32 x2 1 36x1 32 x2 < 1

x1 x2
Fig. 10 Evolucin del error (mse) Fig. 11. Recta de separacin

36

y
-32 Figura 12. Clasificador neuronal

Error absoluto medio = 0.4865 (inaceptable). Los datos no son linealmente separables. ________________________________________________________________________________

PRCTICAS DE LABORATORIO

PRCTICA 5 Aprendizaje con el Perceptrn: Prediccin de la diabetes (datos Pima) Se trata de decidir si una persona tiene diabetes a partir de 7 datos personales. Para ello se dispone de las siguientes caractersticas de 200 mujeres indias mayores de 21 aos que vivan cerca de Phoenix (Arizona) con el fin de estudiar la diabetes de acuerdo a los criterios de la Organizacin Mundial de la Salud: N de embarazos, concentracin de glucosa en plasma, presin sangunea diastlica, insulina, ndice de masa corporal, funcin de antecedentes familiares diabticos, edad y tipo (diabtica o no). Se va a disear un Perceptrn simple con el fin de diagnosticar, segn estas caractersticas, si una mujer es, o no, diabtica.
Cargas los datos load pima Creacin del perceptrn con siete sensores de entrada y una salida: net = newp([minmax(P)], 1,'hardlim','learnp') Inicializar la red: net=init(net); Especificacin de parmetros de entrenamiento: net.trainFcn='trainc'; % Entrenamiento en lnea. Tambin puede poner % por lotes: 'trainb net.trainParam.epochs=50; % Nmero total de pocas de entrenamiento net.trainParam.goal=0.10; % Error mximo que se pretende alcanzar net.trainParam.show=10; % Frecuencia de presentacin de los grficos Entrenamiento de la red: [net, tr,Y,E]= train(net, P, T); Salidas Y de la red para las entradas P y error E cometido: Y= sim(net, P); train_error=mae(Y-T); El mejor tiempo para parar de entrenar: [mim_perf,min_epoch]=min(tr.perf) Presentacin de los parmetros de la red net.IW{1} net.b{1} mae(Y-T) SOLUCIN: ________________________________________________________________________________
1 y= 0 si si 842x1 + 78 x2 467 x3 + 434 x4 201.4 x5 + 187 x6 + 211x7 182 842x1 + 78 x2 467 x3 + 434 x4 201.4 x5 + 187 x6 + 211x7 < 182
Clasificador Neuronal

Fig. 13. Evolucin del error (eam)

Fig. 14. Datos Proyectados

Error absoluto medio = 0.30 (inaceptable). Lo datos no son separables linealmente. ________________________________________________________________________________

PRCTICAS DE LABORATORIO

La ADALINA: neuronas lineales 10-05-2007 ________________________________________________________________________

PRCTICA 1

Construccin de una neurona lineal

Se va a construir una red neuronal con una nica neurona que tiene una funcin lineal, como funcin de transferencia, y dos sensores de entrada. Sus entradas van a ser nmeros reales del intervalo [5,5]: net=newlin([-5 5;-5 5],1); % ([Matriz de valores mnimos y mximos de las entradas], Nmero de % neuronas)

Su matriz de pesos sinpticos va a ser W=[2 -1] y el umbral b=1.5:

net.IW{1,1}=[2 -1]; net.b{1}=1.5; Se trata de determinar los valores de salida de la neurona lineal para cada una de las entradas del conjunto 1 2 3 1 C = , : 3 2 4 3

P=[1 -2 3 -1; 3 2 -4 -3]; S=sim(net,P) SOLUCIN: ________________________________________________________________________________ Funcin que define la neurona lineal: y = 2 x1 x2 + 1.5 Salidas de la red para cada uno de las entradas del conjunto C:
1 2 3 1 3 0.5; 2 4.5; 4 11.5 3 2.5 ________________________________________________________________________________

PRCTICAS DE LABORATORIO

PRCTICA 2 La ADALINA: Aproximacin lineal


Se va a determinar la funcin lineal que mejor representa la relacin funcional entre el conjunto de patrones de entrada dados por las columnas de la matriz P=[-2 -1 0 0 1 2; 1 -2 1 -1 2 1] y el conjunto de salidas respectivas dadas por la matriz T=[-2 3 2 4 3 6]; Construccin de la red inicial como un objeto estructurado:

net = newlin([-2,2;-2 2], 1,0,0.01); % newlin([matriz de valores mnimos y mximos % de las entradas], Nmero de neuronas, Retardo de la entrada, Tasa de Aprendizaje) Entrenamiento de la Adalina:

net.trainParam.goal= 0.0001; net.trainParam.epochs=200; [net,TR,Y,E] = train(net,P,T); % TR : registro de entrenamiento ; Y: salida; E: errores Simulacin de las salidas Y de la red para las entradas P y errores medios cometidos :

S= sim(net,P) ErrorMedioSalida=mae(T-S) % sum(abs(T-S))/6 ErrorMedioclasif=(T-sign(S)) % Error medio del clasificador Presentacin de los parmetros de la red

net.IW{1} net.b{1} Representacin grfica de la funcin implementada

x=-1:0.2:1; y=x; [X,Y]=meshgrid(x,y); Z=w(1)*X+w(2)*Y+b; mesh(X,Y,Z) hold on plot3(P(1,:),P(2,:),T,'*k')

SOLUCIN: ______________________________________________________________________ Funcin lineal implementada: y = 2 x1 x2 + 3

Fig. 15. Decrecimiento del error

Fig. 16. Grfica de la funcin lineal

______________________________________________________________________

PRCTICAS DE LABORATORIO

PRCTICA 3 La ADALINA: Clasificacin de patrones Se va a disear una ADALINA que permita clasificar los 4 patrones dados por las columnas de la matriz de entradas
1 1 1 1 P= , y sus correspondientes salidas deseadas (clases) vienen dadas por el vector 1 1 1 1 T = [ 1 1 1 1 ] .
Construccin de la red inicial como un objeto estructurado:

net = newlin([-1,1;-1 1], 1,0,0.01); % newlin([matriz de valores mnimos y mximos %de las entradas], Nmero de neuronas, Retardo de la entrada, Tasa de Aprendizaje) %Tambin se puede poner newlin [mnmax(P)], size(T,1),..) para crear el Adaline directamente Entrenamiento de la Adalina:

net.trainParam.epochs = 100; net.trainParam.goal=0.1; [net,TR,Y,E] = train(net,P,T); Salidas Y de la red para las entradas P y el error E cometido :

S= sim(net,P) Presentacin de los parmetros de la red

net.IW{1} net.b{1} errorsalida=mae(T-S) %sum(abs(T-S))/4 errorclasificacion=mae(T-sign(S)); Representacin grfica

x=-1:0.2:1; y=x; [X,Y]=meshgrid(x,y); Z=w(1)*X+w(2)*Y+b; mesh(X,Y,Z) hold on plot3(P(1,:),P(2,:),T,'*k')

SOLUCIN: ______________________________________________________________________ Funcin lineal implementada: y = 0.5 x1 + 0.5 x2 + 0.5 Salidas de la red para cada uno de las entradas (columnas de P):
1 1 1.5; 1 1 0.5; 1 1 0.5; 1 1 0.5

Salidas del clasificador:


1 1 1 1 1 1; 1 1; 1 1; 1 1 ______________________________________________________________________

PRCTICAS DE LABORATORIO

El Perceptrn multicapa: neuronas sigmoideas 10-05-2007 ________________________________________________________________________


PRCTICA 1
Construccin de una neurona logstica Se va a construir una red neuronal con una nica neurona que tiene la funcin logstica, como funcin de transferencia, y dos sensores de entrada. Sus entradas van a ser nmeros reales del intervalo [5,5]: net=newp([-5 5;-5 5],1,logsig) % ([Matriz de valores mnimos y mximos de las entradas], Nmero de neuronas, Funcin de Su matriz de pesos sinpticos va ser W=[2 -1] y el umbral b=1.5:

transferencia)

net.IW{1,1}=[2 -1]; net.b{1}=1.5;

Valores de salida de la neurona lineal para cada una de las entradas del conjunto 1 2 3 1 C = , : 3 2 4 3

P=[1 -2 3 -1; 3 2 -4 -3]; S=sim(net,P)

SOLUCIN: ________________________________________________________________________________ Funcin que define la neurona logstica:


y= 1
( 2 x1 x2 +1.5 )

1+ e Salidas de la red para cada uno de las entradas del conjunto C:

1 2 3 1 3 0.6225; 2 0.0110; 4 1.000 3 0.9241 ________________________________________________________________________________

PRCTICA 2

Construccin de una neurona tangente hiperblica

Se va a construir una red neuronal con una nica neurona que tiene la funcin logstica, como funcin de transferencia, y dos sensores de entrada. Sus entradas van a ser nmeros reales del intervalo [5,5]: net=newp([-5 5;-5 5],1,tansig) % ([Matriz de valores mnimos y mximos de las entradas], Nmero de neuronas, Funcin de Su matriz de pesos sinpticos va ser W=[2 -1] y el umbral b=1.5:

transferencia)

net.IW{1,1}=[2 -1]; net.b{1}=1.5; Valores de salida de la neurona lineal para cada una de las entradas del conjunto 1 2 3 1 C = , 3 2 4 3

P=[1 -2 3 -1; 3 2 -4 -3]; S=sim(net,P)

PRCTICAS DE LABORATORIO

SOLUCIN: ________________________________________________________________________________ Funcin que define la neurona tangente hiperblica:


y= e( 2 x1 x2 +1.5) e ( 2 x1 x2 +1.5)

e( 2 x1 x2 +1.5) + e ( 2 x1 x2 +1.5) Salidas de la red para cada uno de las entradas del conjunto C:

1 2 3 1 3 0.4621; 2 0.9998; 4 1.000; 3 0.9866 ________________________________________________________________________________

PRCTICAS DE LABORATORIO

PRCTICA 3

PERCEPTRN MULTICAPA: Prediccin de la diabetes Se va a disear un Perceptrn con una capa oculta de neuronas y una neurona de salida con el fin de diagnosticar si una mujer es, o no, diabtica, segn las 7 primeras caractersticas de los datos Pima.
Carga de datos load pima Preprocesado de los datos [pn,minp,maxp,tn,mint,maxt]=premnmx(P,T); % Se normalizan los datos en el intervalo [-1,1] %[pn,meanp,stop,tn,meant,stdt]=prestd(P,T); Para tipificar los datos de entrada

Creacin del Perceptrn Multicapa con 7 sensores de entrada, 15 neuronas ocultas y una de salida net=newff([minmax(pn))],[15 1],{'tansig,logsig},trainrp); % Tipos de aprendizaje: trainlm, trainbfg, trainrp, trainscg, traincbg, traincgf, traincgp, trainoss, traingdx Especificacin de los parmetros de aprendizaje de la red

net.trainParam.show=20; %Se muestran los resultados cada 50 iteraciones (pocas) net.trainParam.lr=0.1; %Tasa de aprendizaje net.trainParam.epochs=500; %Nmero mximo de iteraciones net.trainParam.goal=0.05; %Tolerancia de error como criterio de parada net.trainParam.min_grad=0.0000001; %Valor mnimo del gradiente para parar Entrenamiento de la red net1=train(net,pn,T); Salidas de la red Sn=sim(net1,pn); Evaluacin del error con los datos del conjunto de entrenamiento ErrorAbsMedio=mae(T-Sn); ErrorMaximo=max(max(T-Sn)); Presentacin de los parmetros de la red W1=net.IW{1};W2=net.LW{2};b1=net.b{1};b2=net.b{2}; % S=postmnmx(Sn,mint,maxt): para recuperar la salida si la hubiramos % normalizado SOLUCIN: ________________________________________________________________________________ Se obtiene una red con siete sensores de entrada, 15 neuronas en la capa oculta y una neurona de salida. Se ha utilizado la regla de aprendizaje de retropropagacin flexible. Se clasifican incorrectamente 4 patrones incorrectamente (2%).

Fig. Evolucin del error durante el entrenamiento

Fig. 18. Datos proyectados en R

________________________________________________________________________________

PRCTICAS DE LABORATORIO

PRCTICA 4

PERCEPTRN MULTICAPA: Clasificacin de tres tipos de vino Se va a disear un Perceptrn con una capa oculta de neuronas y tres neuronas de salida con el fin de diagnosticar la clase de vino segn 13 caractersticas que presenta, utilizando 59 patrones de entrenamiento de vinos de la clase A, 71 de la clase B, y 48 de la clase C.
Carga de datos load pima Preprocesado de los datos [pn,minp,maxp,tn,mint,maxt]=premnmx(P,T); % Normaliza los datos en [-1,1] %[pn,meanp,stop,tn,meant,stdt]=prestd(P,T); Para tipificar los datos de entrada

Creacin del Perceptrn Multicapa con 13 sensores de entrada, 2 neuronas ocultas y 3 de salida: net=newff([minmax(pn)],[2 3],{'tansig,logsig},trainlm); % Tipos de aprendizaje: trainlm, trainbfg, trainrp, trainscg, traincbg, traincgf, traincgp, trainoss, traingdx Especificacin de los parmetros de aprendizaje de la red net.trainParam.show=20; %Se muestran los resultados cada 50 iteraciones (pocas) net.trainParam.lr=0.1; %Tasa de aprendizaje net.trainParam.epochs=300; %Nmero mximo de iteraciones net.trainParam.goal=0.001; %Tolerancia de error como criterio de parada net.trainParam.min_grad=0.00001; %Valor mnimo del gradiente para parar Entrenamiento de la red net1=train(net,pn,T); % Utilizamos las mismas salidas T puesto que estn normalizadas en el intervalo [0,1] Salidas de la red Sn=sim(net1,pn); Evaluacin del error con los datos del conjunto de entrenamiento ErrorAbsMedio=mae(T-Sn); ErrorMaximo=max(max(T-Sn)); Presentacin de los parmetros de la red y del error W1=net.IW{1};W2=net.LW{2};b1=net.b{1};b2=net.b{2}; NmClasifIncorrectas=sum(abs(round(Sn)-T));

SOLUCIN: ________________________________________________________________________________ Se obtiene una red con trece sensores de entrada, dos neuronas en la capa oculta y tres neurona de salida (una para cada clase). Se ha utilizado la regla de aprendizaje de Levenverg-Marquardt y se han clasificado correctamente los 178 patrones de entrenamiento.

Fig. 19. Evolucin del error durante el entrenamiento

Fig. 20. Datos proyectados en R

________________________________________________________________________________

PRCTICAS DE LABORATORIO

PRCTICA 5

PERCEPTRN MULTICAPA: Prediccin de niveles de colesterol Se va a disear un Perceptrn con una capa oculta de neuronas y tres neuronas de salida con el fin de predecir los niveles de colesterol (ldl,hdl y vldl) segn las medidas de 21 componentes espectrales.
Carga de datos load choles_all Preprocesado de los datos [pn,minp,maxp,tn,mint,maxt]=premnmx(P,T); % Normaliza los datos en [-1,1] %[pn,meanp,stop,tn,meant,stdt]=prestd(P,T); Para tipificar los datos de entrada

Creacin del Perceptrn Multicapa con 21 sensores de entrada, 15 neuronas ocultas y tres salida: net=newff([minmax(pn)],[15 3],{'tansig,logsig},trainscg); Especificacin de los parmetros de aprendizaje de la red net.trainParam.show=50; %Se muestran los resultados cada 50 iteraciones (pocas) net.trainParam.lr=0.1; %Tasa de aprendizaje net.trainParam.epochs=1000; %Nmero mximo de iteraciones net.trainParam.goal=0.027; %Tolerancia de error como criterio de parada net.trainParam.min_grad=0.0000001; %Valor mnimo del gradiente para parar Entrenamiento de la red net1=train(net,pn,tn); Salidas de la red Sn=sim(net1,pn); Evaluacin del error con los datos del conjunto de entrenamiento ErrorAbsMedio=mae(tn-Sn); ErrorMaximo=max(max(tn-Sn)); Presentacin de los parmetros de la red, el error y las salidas sin normalizar W1=net.IW{1};W2=net.LW{2};b1=net.b{1};b2=net.b{2}; mae(S-t); tasaerror=sum( abs( (tn-Sn)) )/264 Presentacin de las salidas sin normalizar S=postmnmx(Sn,mint,maxt): Anlisis post-entrenamiento [m,a,r]= postreg(Sn(3,:),tn(3,:)); % m=pendiente; a=trmino indep.; r=coef. correlacin lineal SOLUCIN: ________________________________________________________________________________ Se obtiene una red con 21 sensores de entrada, 15 neuronas en la capa oculta y 3 neuronas de salida (una para cada clase). Se ha utilizado los datos normalizados y la regla de aprendizaje del gradiente conjugado escalado. Los errores absolutos medios obtenidos para las tres neuronas de salida son 0.0837, 0.0938 y 0.1712, respectivamente. El coeficiente r vale slo 0.635 para la tercera neurona de salida por lo que parece que no est bien modelada.

Fig. 21. Evolucin del error durante el entrenamiento

Fig. 22. Regresin lineal de la 3 salida

________________________________________________________________________________

PRCTICAS DE LABORATORIO

PRCTICA 6

PERCEPTRN MULTICAPA: Entrenamiento muestral y validacin Se va a disear un Perceptrn con una capa oculta de neuronas y tres neuronas de salida con el fin de predecir lo mejor posible los niveles de colesterol (ldl,hdl y vldl) segn las medidas de 21 componentes espectrales, y evaluar su capacidad de generalizacin. Para ello se realiza una reduccin de las variables de entrada (algunas altamente correlacionadas entre s) mediante el anlisis de componentes principales, de manera que las nuevas variables expliquen el 99.9% de la variacin de los datos. Con las cuatro primeras componentes principales se consigue dicho objetivo. Los valores de dichas componentes (variables) constituyen las entradas del perceptrn multicapa que vamos a disear. Para evitar un superajuste de los datos se va a utilizar el mtodo de la parada temprana, es decir, dejaremos de entrenar a la red tan pronto como el error de validacin comience a incrementarse.
Carga de datos load choles_all Tipificacin de los datos [pn,meanp,stdp,tn,meant,stdt]=prestd(p,t); % Los nuevos datos tienen media cero y varianza uno Obtencin de las Componentes Principales (CP) para eliminar redundancia [ptrans,transMat]=prepca(pn,0.001); % Generacin de la CP con el 99.9% de la variacin total [F,C]=size(ptrans);

Particin de los datos en tres subconjuntos: Entrenamiento (50%), Validacin (25%) y Prueba (25%) ie=[1:4:C;3:4:C]; % ndice datos entrenamiento iv=4:4:C; % ndice datos validacin ip=2:4:C; % ndice datos prueba ptr=ptrans(:,ie);ttr=tn(:,ie); val.P=ptrans(:,iv);val.T=tn(:,iv); test.P=ptrans(:,ip);test.T=tn(:,ip); Creacin de un Perceptrn Multicapa con 4 sensores de entrada, 10 neuronas ocultas y 3 de salida: net=newff([minmax(ptr)],[10 3],{'tansig,purelin},trainlm); % Tipos de aprendizaje: trainlm, trainbfg, trainrp, trainscg, traincbg, traincgf, traincgp, trainoss, traingdx Especificacin de los parmetros de aprendizaje de la red net.trainParam.show=50; %Se muestran los resultados cada 50 iteraciones (pocas) net.trainParam.lr=0.1; %Tasa de aprendizaje net.trainParam.epochs=1000; %Nmero mximo de iteraciones net.trainParam.goal=0.027; %Tolerancia de error como criterio de parada net.trainParam.min_grad=0.0000001; %Valor mnimo del gradiente para parar Entrenamiento de la red [net,tr]=train(net,ptr,ttr,[],[],val,test); Trazado de los errores de entrenamiento, validacin y prueba plot(tr.epoch,tr.perf,tr.epoch,tr.vperf,tr.epoch,tr.tperf) legend(Entrenamiento,Validacin,Test,-1); ylabel(Error cuadratico);xlabel(Epoca) Anlisis post-entrenamiento Sn=sim(net,ptrans); S=poststd(Sn,meant,stdt); for i=1:3 figure(i) [m(i),a(i),r(i)]= postreg(S(i,:),t(i,:)); % m=pendiente; a=trmino indep.; r=coef. correlacin lineal end

PRCTICAS DE LABORATORIO

SOLUCIN: ________________________________________________________________________________ Se obtiene un Perceptrn Multicapa con 4 sensores de entrada, 10 neuronas en la capa oculta y 3 neuronas de salida (una para cada tipo de colesterol). Se han utilizado las 4 primeras componentes principales como entradas, puesto que contienen el 99.9% de la variacin de los datos, y la regla de aprendizaje de Levenverg-Marquardt. El entrenamiento se ha parado despus de 10 pocas puesto que el error cuadrtico para el conjunto de validacin comenzaba a incrementarse (mtodo de la parada temprana) y con ello se trata de evitar un superajuste de la funcin.

Fig. 23. Evolucin del error durante el entrenamiento

Con el anlisis de la regresin lineal entre las respuestas (salidas) de la red y las salidas deseadas (metas) se puede ver como las respuestas de las dos primeras neuronas de salida estn altamente correlacionadas con las salidas deseadas (r vale casi 0.9). Sin embargo, las respuestas de la tercera neurona de salida no estn altamente correlacionadas con las salidas deseadas, por lo que no estn bien modelados los niveles de colesterol vldl, bien porque se necesiten ms neuronas en la capa oculta, porque se necesite utilizar otro mtodo diferente de parada, como los mtodos de regularizacin, o porque no se pueden predecir bien dichos niveles a partir de las variables de entrada.

Fig. 24. Regresin lineal de la 1 salida

Fig. 25. Regresin lineal de la 2 salida

Fig. 26. Regresin lineal de la 3 salida

________________________________________________________________________________

PRCTICAS DE LABORATORIO

PRCTICA 7

PERCEPTRN MULTICAPA : Aproximacin de funciones Disea un Perceptrn Multicapa con la regla de aprendizaje de Levenrg-Marquardt que aproxime la funcin y = x 2 + 3 x en el intervalo [4, 4]. Analiza los resultados estudiando el error del ajuste.
Conjunto de patrones de entrenamiento: Generacin de datos T=x.^2+3*x;

P=-4:0.5:4;

Representacin grfica de los datos

plot(P,T,o);title(Parbola);hold on Creacin de un Perceptrn Multicapa con 3 neuronas en la primera capa oculta y una neurona de salida con la regla de aprendizaje de Levenberg-Marquardt.

net=newff( [-4 4],[3 1], {'tansig','purelin'},'trainlm'); Especificacin de los parmetros de aprendizaje de la red %Se muestran los resultados cada 50 iteraciones (pocas) %Tasa de aprendizaje %Nmero mximo de iteraciones %Tolerancia de error como criterio de parada %Valor mnimo del gradiente para parar

net.trainParam.show=10; net.trainParam.lr=0.1; net.trainParam.epochs=200; net.trainParam.goal=0.0001; net.trainParam.min_grad=0.00001; Entrenamiento de la red

net1=train(net,P,T); Salidas de la red

S=sim(net1,P); Representaciones grficas

plot(P,T);hold on;plot(P,s,+g);hold on error=abs(T-S);plot(P,error);hold off ErrorMaximo=max(max(T1-S)) Capacidad de generalizacin de la red

P1=-4:0.01:4; T1=P1.^2+3*P1; S1=sim(net1,P1); plot(P1,S1);hold on; plot(P,T) SOLUCIN: _____________________________________________________________________________________ Se ha obtenido una red con un sensor de entrada, tres neuronas en la capa oculta y una neurona de salida. Se ha utilizado la regla de aprendizaje de de Levenberg-Marquardt obtenindose un error absoluto medio de generalizacin igual a 0.009.

Fig. 27. Evolucin del error

Fig. 28 . Salidas de la red

_____________________________________________________________________________________

PRCTICAS DE LABORATORIO

PRCTICA 8

PERCEPTRN MULTICAPA: Aproximacin de funciones Se va a aproximar la funcin humps de Matlab en el intervalo [0,2] mediante un Perceptrn Multicapa.
Conjunto de patrones de entrenamiento T=humps(P); % la funcin es y =
1 1 + 6 2 ( x 3) + 0.01 (( x 9) 2 + 0.04

P=0:0.05:2;

Creacin del Perceptrn Multicapa con una cada oculta de 9 neuronas y una neurona en la capa de salida

net=newff( [0 2],[9 1], {'tansig','purelin'},'trainlm'); % Tipos de aprendizaje: trainlm, trainbfg, trainrp, trainscg, traincbg, traincgf, traincgp, trainoss, traingdx Especificacin de los parmetros de aprendizaje de la red %Se muestran los resultados cada 50 iteraciones (pocas) %Tasa de aprendizaje %Nmero mximo de iteraciones %Tolerancia de error como criterio de parada %Valor mnimo del gradiente para parar

net.trainParam.show=10; net.trainParam.lr=0.01; net.trainParam.epochs=200; net.trainParam.goal=0.0001; net.trainParam.min_grad=0.00001; Entrenamiento de la red

net1=train(net,P,T); Salidas de la red y comparacin con las salidas deseadas

S=sim(net1,P); error=abs(T-S); Evaluacin de la red con datos no usados en el entrenamiento

%Representacin grfica plot(P,S,'+g',P,T,P,error); hold off ErrorMaximo=max(max(T-S)) %Capacidad de generalizacin P1=0:0.01:2; T1=P1.^2+3*P1; S1=sim(net1,P1); error=mae(T1-S1); plot(P1,S1,P,T) SOLUCIN: ______________________________________________________________________________________ Se ha obtenido una red con un sensor de entrada, nueve neuronas en la capa oculta y una neurona de salida. Se ha utilizado la regla de aprendizaje de de Levenberg-Marquardt obtenindose un error absoluto mximo en el entrenamiento de 0.31 y un error medio de generalizacin igual a 0.09.

Fig. 29. Evolucin del error

Fig. 30.Representacin con datos P y T Fig. 31. Representacin con datos P1 y T1

______________________________________________________________________________________

PRCTICAS DE LABORATORIO

PERCEPTRN MULTICAPA: Aproximacin de funciones Se va a disear un Perceptrn Multicapa con la regla de aprendizaje de Levenberg-Marquardt que aproxima la funcin z = cos( x) cos( y ) en el cuadrado [2, 2] [2, 2]. Analiza los resultados estudiando el error del ajuste.
Conjunto de patrones de entrenamiento: Generacin de datos

PRCTICA 9

x=-2:0.25:2; y=-2:0.25:2; z=cos(x)*sin(y); P=[x;y]; T=z; Representacin grfica de los datos

mesh(x,y,z) Creacin de un Perceptrn Multicapa con 25 neuronas en la primera capa oculta y 17 en la segunda con la regla de aprendizaje de Levenrg-Marquardt.

net=newff( [-2 2;-2 2],[25 17],{tansig,purelin},traingd); Especificacin de los parmetros de aprendizaje de la red %Se muestran los resultados cada 50 iteraciones (pocas) %Tasa de aprendizaje %Nmero mximo de iteraciones %Tolerancia de error como criterio de parada %Valor mnimo del gradiente para parar

net.trainParam.show=50; net.trainParam.lr=0.05; net.trainParam.epochs=300; net.trainParam.goal=0.00001; net.trainParam.min_grad=0.00001; Entrenamiento de la red

net1=train(net,P,T); gi=input(Pulse cualquier tecla ); Salidas de la red y representacin grfica con respecto a las entradas

S=sim(net1,P); subplot(1,2,1); mesh(x,y,T); subplot(1,2,2); mesh(x,y,S) Evaluacin del error con los datos del conjunto de entrenamiento

mesh(x,y,S-T) xlabel('eje X');ylabel('eje Y');zlabel('Error') title('Superficie de error') SOLUCIN: ______________________________________________________________________________________ Se ha obtenido una red con dos sensores de entrada, 25 neuronas en la capa oculta y diecisiete neuronas en la capa de salida. Se ha utilizado la regla de aprendizaje de de Levenberg-Marquardt obtenindose un error absoluto mximo en el entrenamiento igual a 0.009.

Fig. 32. Representacin grfica de z

Fig. 33. Evolucin del error

Fig. 34. Superficie de error

_____________________________________________________________________________________

PRCTICAS DE LABORATORIO

Redes neuronales con Funciones de Base Radial 17-05-2007 ________________________________________________________________________


PRCTICA 1
Ajuste de funciones Disea un Red Neuronal con Funciones de Base Radial que aproxime la funcin y = x 2 + 3 x en el intervalo [4, 4]. Analiza los resultados estudiando el error del ajuste. Conjunto de patrones de entrenamiento: Generacin de datos y=x.^2+3*x;

x=-4:0.1:4; P=x; T=y;

Representacin grfica de los datos

plot(P,T,o) grid,xlabel(eje X);ylabel(eje Y) title(Parbola); Creacin de una red neuronal con Funciones de Base Radial.

net1=newrb(P,T,0.01);

Salidas de la red y representacin grfica del error

a=sim(net1,P); plot(P,a-T,P,T) Evaluacin del error con otro conjunto de datos y1=x.^2+3*x;

x1=-4:0.01:4;

P1=x1;T1=y1 ; a1=sim(net1,P1); plot(P,a1-T1,P1,T1)

PRCTICAS DE LABORATORIO

PRCTICA 2

Ajuste de funciones Ajusta la funcin humps de Matlab en el intervalo [0,2] mediante un Red con Funciones de Base Radial. Funcin de Base Radial p=-3:0.01:3; a=radbas(p); plot(p,a) Conjunto de patrones de entrenamiento

x=0:0.05:2; y=humps(x); P=x; T=y; plot(P,T,x) grid; xlabel(Tiempo(s));ylabel(salida);title(funcin humps) Creacin de una red neuronal con funciones de base radial de la forma ms simple

net1=newrb(P,T); Salidas de la red y representacin grficas de los errores

a=sim(net1,P); plot(P,T-a,P,T) Evaluacin de la red con datos no usados en el entrenamiento

x1=0:0.01:2; P1=x1; y1=humps(x1);T1=y1; a1=sim(net1,P1); plot(P1,a1,P1,T1,P,T) Comentario: la aproximacin no es buena. Los valores por defecto de los dos parmetros de la red no son adecuados (objetivo del error = 0.0 y spread = 1.0) Eleccin de parmetros

goal=0.02; spread=0.1; net1=newrb(P,T,goal,spread); Salidas de la red y representacin grfica de los errores

a=sim(net1,P); plot(P,T-a,P,T) xlabet(Tiempo(s)) ;ylabel(Salidas de la red y errores) title(Aproximacin de la Funcin Humps por Redes RBF)

PRCTICAS DE LABORATORIO

Redes Neuronales Autoorganizadas 31-05-2007 ________________________________________________________________________


PRCTICA 1 Redes neuronales competitivas no supervisadas: Formacin de grupos Se va a disear una red neuronal competitiva para agrupar 38 virus en 4 clases de acuerdo al parecido que segn 18 caractersticas de los mismos, de manera que los patrones dentro de cada clase sean lo ms similares posible entre s y se va a determinar el patrn prototipo de cada clase.
Carga de datos load virus Creacin de una red neuronal competitiva

net=newc([minmax(p)],4); Entrenamiento de la red net.trainParam.epochs = 500 ; net = train(net,p); Simulacin de las salidas de las red S=sim(net,p); % asigna cada patrn de entrada a su grupo c=vec2ind(S); % vector de las neuronas activadas para cada patrn Pesos sinpticos de la red: w=net.IW{1} b=net.b{1} SOLUCIN: ______________________________________________________________________________________ La red est constituida por 18 sensores de entrada y 4 neuronas de salida. Despus del proceso de entrenamiento no supervisado, basado en las 18 caractersticas de los 38 virus utilizados, se obtiene como salida de la red para cada virus el grupo al que este pertenece, que viene especificado por la neurona de salida que se ha activado. Las neuronas de salida activadas para cada uno de los 38 virus ha sido, respectivamente, 4 4 2 4 3 3 3 3 1 3 1 3 2 1 4 1 2 1 2 1 4 1 4 1 2 1 3 3 3 3 3 3 2 2 3 2 2 4

Fig. 35. Representacin de los datos de virus en sus dos primeras componentes principales

______________________________________________________________________________________
ver democ1

PRCTICAS DE LABORATORIO

PRCTICA 2 Redes neuronales Autoorganizadas: Representacin espacial de datos Los datos IRIS constan de 4 caractersticas de hojas de lirios (ancho y largo de sus ptalos y spalos) correspondientes a tres variedades de lirios: virginia, setosa y versicolor. Corresponden a 50 hojas de cada variedad. Se va a disear una red autoorganizada que permita asociar cada hoja a una neurona (punto) colocada sobre una cuadrcula de manera que las hojas ms parecidas estn representadas por neuronas prximas en la rejilla.
Carga de datos load iris Creacin de una red autoorganizada net = newsom([minmax(p)],[4 4],'gridtop','dist',0.9,200,0.1,1); % crea una SOM sobre una cuadrcula [44] con forma 'griptop', hextop o %randtop; distancia ('dist', 'linkdist','mandist'); tasa de aprendizaje % en la fase de ordenacin; N de pocas fase de ordenacin; tasa de % aprendizaje fase de ajuste; distancia de vecindad fase de ajuste Entrenamiento de la red % net.trainParam.epochs = 400 ; % net.trainParam.order_steps = 200 ; % net.trainParam.show = 50 ; % net.trainParam.tune_nd=1; % Distancia de vecindad en la fase de ajuste % net.trainParam.order_lr=0.9; % Tasa de aprendizaje en la fase de ordenacin % net.trainParam.tune_lr=0.1; % Tasa de aprendizaje en la fase de ajuste net = train(net,p); Pesos y Grfico de la red entrenada w = net.iw{1,1}; d = net.layers{1}.distances; % w= pesos y d = distancias entre neuronas plotsom(w,d) Simulacin de las salidas de las red S=sim(net,p); % asigna cada patrn de entrada a una neurona c=vec2ind(S); % vector de las neuronas activadas para cada patrn SOLUCIN: ______________________________________________________________________________________ Se utiliza una cuadrcula 32 como espacio neuronal. As, la red autoorganizada est constituida por 6 neuronas de salida y 4 sensores de entrada. Despus del proceso de entrenamiento no supervisado se obtienen los pesos sinpticos de la red. Las 50 primeras hojas (virginia) las asigna a la neurona 5; las 50 siguientes (setosa) las asigna mayoritariamente (26) a la neurona 4 (13 a la 2 y 11 a la 3). Las 50 ltimas hojas (versicolor) las asigna mayoritariamente (35) a la neurona 1 (14 a la 2 y slo 1 a la 4). As, las neuronas 3 y 4 recogen 37 hojas de de la variedad setosa. La neurona 2 recoge 13 hojas de la variedad setosa y 14 de la variedad versicolor (zona de solapamiento). A continuacin se muestran los resultados grficos para una cuadrcula 32 y 44:
5 A 3B 1C 6 4B 2 BC
13C 9C 5C 1C 14 B 10C 6 BC 2B 15 A 11 7B 3B 15 A 12 A 8 4B

Fig. 36. Topologa del espacio neuronal y representacin grfica de las neuronas segn sus pesos

______________________________________________________________________________________

PRCTICAS DE LABORATORIO

PRCTICA 3 Redes neuronales Autoorganizadas: Representacin de datos sobre curvas Se van a proyectar puntos aleatorios del plano sobre una curva de manera que se conserve, dentro de lo posible, la topologa espacial. Es decir, que puntos prximos en el espacio tengan tambin prximas sus proyecciones.
Carga de datos x=rand(1,20); y=rand(1,20); plot(x,y,'ok') Creacin de una red autoorganizada net = newsom([minmax(p)],[4 4],'hextop','dist',0.9,200,0.1,1); % crea una SOM sobre una cuadrcula [44] con forma 'griptop', hextop o %randtop; distancia ('dist', 'linkdist','mandist'); tasa de aprendizaje % en la fase de ordenacin; N de pocas fase de ordenacin; tasa de % aprendizaje fase de ajuste; distancia de vecindad fase de ajuste Entrenamiento de la red % net.trainParam.epochs = 400 ; % net.trainParam.order_steps = 200 ; % net.trainParam.show = 50 ; % net.trainParam.tune_nd=1; % Distancia de vecindad en la fase de ajuste % net.trainParam.order_lr=0.9; % Tasa de aprendizaje en la fase de ordenacin % net.trainParam.tune_lr=0.1; % Tasa de aprendizaje en la fase de ajuste net = train(net,p); Pesos y Grfico de la red entrenada w = net.iw{1,1}; d = net.layers{1}.distances; % w= pesos y d = distancias entre neuronas plotsom(w,d) Simulacin de las salidas de las red S=sim(net,p); % asigna cada patrn de entrada a una neurona c=vec2ind(S); % vector de las neuronas activadas para cada patrn SOLUCIN: ______________________________________________________________________________________ Se ha utilizado una rejilla lineal 120 como espacio neuronal. As, la red autoorganizada est constituida por 20 neuronas de salida y 2 sensores de entrada. Despus del proceso de entrenamiento no supervisado se obtienen los pesos sinpticos de la red que se representan por puntos rojos en la grfica siguiente. Los puntos aleatorios (patrones) se representan por el smbolo . La forma que adopta la curva generada por las neuronas nos da idea de cmo ha quedadon colocados los puntos aleatorios sobre el cuadrado unidad. Cada punto generado (patrn) es asignado (proyectado) por la red a la neurona ms prxima. Con la curva generada se intenta conservar la topologa de los puntos en R2.

Fig. 37. Representacin grfica de las neuronas segn sus pesos sinpticos

______________________________________________________________________________________

PRCTICAS DE LABORATORIO

PRCTICA 4 Redes neuronales competitivas no supervisadas: Clasificacin Se va construir una red neuronal competitiva con aprendizaje supervisado para predecir si una persona es diabtica a partir de 7 caractersticas personales (datos Pima).
Carga de datos load pima % Pasamos las salidas deseadas de 1 y 0 for i=1:200 if T(i)==0, T(i)=2; end end a 1 y 2;

T=ind2vec(T); % Transformamos los ndices en vecotres % salidas = full(T); %para ver los vectores en forma normal Creacin de una red red competitiva con aprendizaje supervisado (LVQ) net=newlvq([minmax(P)],60,[.34 .66],0.1,'learnlv1'); %Neuronas ocultas, % poercentaje de neuronas ocultas asignadas 1 clase; net.IW{1,1} Entrenamiento de la red net.trainParam.epochs = 300 net = train(net,P,T); Simulacin de las salidas de las red y evaluacin del error S=sim(net,P); Sc=vec2ind(S); %Transforma los vectores en ndices Tc=vec2ind(T); error=sum(abs(Tc-Sc)) % N de clasificaciones incorrectas

SOLUCIN: ______________________________________________________________________________________

La red est constituida por 7 sensores de entrada, una capa oculta con 60 neuronas y dos neuronas de salida. Despus del proceso de entrenamiento de la red con 200 patrones (68 con diabetes y 132 sin diabetes), la red clasifica incorrectamente a 15 de las no diabticas y a 16 de las diabticas.

Fig. 38. Representacin grfica de la evolucin del error

______________________________________________________________________________________

PRCTICAS DE LABORATORIO

Redes Neuronales Recurrentes y Dinmicas: Red de Elman


31-05-2007

________________________________________________________________________
PRCTICA 1 Red de Elman: Prediccin en el tiempo Se va a disear una red neuronal de Elman que encuentra las respuestas correctas a una secuencia de 20 patrones que son cero o uno (binarios). La salida deseada es binaria y vale cero, excepto cuando la entrada actual y la anterior son iguales a 1.

Generacin de datos P = round(rand(1,20)); T = [0 (P(1:end-1)+P(2:end) == 2)]; Conversin de los datos a un array celular Pseq = con2seq(P); Tseq = con2seq(T); Creacin de la red de Elman net=newelm([minmax(P)],[2 1],{'tansig','purelin'},'traingdx','learngdm','mae'); Entrenamiento de la red net.trainParam.epochs = 200; net = train(net,Pseq,Tseq); Simulacin de la red y evaluacin del error S=sim(net,Pseq); Sq=seq2con(S); % Convierte S a secuencia numrica Y=Sq{1,1}; dife=T-Y SOLUCIN: ______________________________________________________________________________________ Los patrones de entrenamiento son:
P =[ 0 T =[ 0 0 0 1 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 ] 1 ]

La red est constituida por un sensor de entrada, una capa oculta con 2 neuronas y una neurona de salida. Despus del proceso de entrenamiento de la red los errores de prediccin en los 20 patrones son:
[ -0.0335
-0.0206 -0.5046 0.2065 0.1783 0.1833 -0.0486 -0.1675 -4 -0.0117 -0.1684 0.2083 -0.0572 -0.1675 0.2083 ] 10 0.2083 0.1781 -0.0478 -0.1675 -0.0284 -0.1302

Fig. 39. Representacin grfica de la evolucin del error

______________________________________________________________________________________

También podría gustarte