You are on page 1of 20

Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas.

Unidad de Post Grado


Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

1.6 Clasificacin de las RNA en supervisadas y no supervisadas

Existen otras clasificaciones de las redes neuronales. Una por ejemplo, es por el tipo de
variables que se emplean, denominndose RNA de variables binarias o variables
continuas.
Otra clasificacin es por el tipo de aprendizaje. En este aspecto, existen dos tipos de redes,
unas que tienen un aprendizaje supervisado y otras no.

1.7 Redes Neuronales supervisadas y su aprendizaje o entrenamiento


Las RNA de este tipo tienen una secuencia de vectores T [T1 , T2 ,....., TM ], Tk m que se
denomina valor esperado de la red, donde Tk es el resultado de algn proceso realizado
con la columna pk de una matriz de datos P [ p1 , p2 ,....., pM ], p k n . Esto pasa para
cada k 1, 2,...., M .
Por ejemplo Tk es la resistencia de una probeta de concreto y pk los valores de sus
variables de fabricacin.
De otro lado, para cada la columna pk de P , una RN devuelve un vector q k (x) donde x
es un vector que est formado por los pesos y sesgos de todas las neuronas de la red. De
este modo la respuesta de la red para la matriz de datos P que ingresa a ella, es otra matriz
de vectores Q( x) [q1 ( x), q2 ( x) ,....., q M ( x)], qk ( x) m .

1.8 El aprendizaje o entrenamiento de una red neuronal


Consiste en conseguir un mnimo global de la funcin error:
M M m
2
(1) E ( x) 1
2 qk ( x) Tk 1
2 (q k ,i ( x) Tk ,i ) 2 que es el error en media cuadrtica
k 1 k 1 i 1

entre T [T1 , T2 ,....., TM ] y la respuesta de la red Q( x) [ q1 ( x), q2 ( x) ,....., qM ( x)] .


Lo ideal sera conseguir un x tal que E ( x ) 0 , pero esto no siempre es posible, entonces
lo que se hace es minimizar la funcin E (x) , buscando un x de tal manera que
E ( x ) 0 . Esto implicar que la respuesta de la red qk ( x ) est muy prxima al valor
esperado Tk . En este caso se dice que la RNA ha sido entrenada adecuadamente, en caso
contrario no se habr conseguido entrenar la red.

Ejemplo 1 Fig.4

Para el caso de
una RNA de 2
capas, la
primera con 2

93
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

neuronas y la segunda con 1 neurona, el nmero total de pesos y sesgos de la red es 7.


Entonces x ( x1 , x2 ,..., x7 ) es el vector de variables. Por simplicidad si la matriz de datos y
el valor esperado de la red, son matrices fila: P [d1 , d 2 ,....., d M ], d k y
T [T1 , T2 ,....., TM ], Tk respectivamente, entonces el error en media cuadrtica ser
M
E ( x) 1
2 x
k 1
5 tanh( x1d k x3 ) x6 tanh( x2 d k x4 ) x7 Tk
2

que es una funcin altamente no lineal, donde d k y Tk son valores conocidos. Los valores
que cambian en el entrenamiento de la red son x ( x1 , x2 ,..., x7 ) que, como se dijo, vienen
a ser los pesos y sesgos de la RNA.

1.9 El problema de los mnimos cuadrados (Regresin no lineal)


En general el problema consiste en minimizar globalmente la funcin
m
(2) E ( x) 1
2 ( E ( x))
j
2
, donde E j : n , est definida en todo n .
j 1

Entonces se trata de hallar un punto x n tal que E ( x ) min{ E ( x ) / x n }


Problemas
Los problemas principales en la minimizacin de la funcin E (x) son dos, aparte de otros.
El primero tiene que ver con la existencia del punto x y el segundo con la naturaleza del
punto, saber si corresponde a un mnimo local o global. Podra no llegarse a un mnimo
global y terminar solo en uno local [3] Figueroa S.

Mtodo heurstico e iterativo: consiste en elegir un punto inicial x0 y a partir de l


generar una sucesin finita o infinita de puntos x1 , x2 ,..., xk .... con xk n tal que xk x
en n .
1.10 El algoritmo del Gradiente Heurstico
Es conocido que, fijado un punto x y si E ( x) 0 , el mnimo valor de la derivada
E ( x )
direccional D E (x) se da en la direccin contraria al gradiente, esto es u y su
u E ( x )
valor es E (x ) . Entonces tomando en cuenta que
E ( x tu ) E ( x)
D E ( x) E ( x ) 0 para valores muy pequeos de t 0 , se
t u

concluye que E ( x tu ) E ( x) . Esto indica que en un punto cercano a x de la forma


x E (x) la funcin E toma un valor menor que en el anterior.
El algoritmo comienza con un valor inicial para x que luego se va actualizando,
siguiendo el proceso iterativo:
x x E (x) , donde

94
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

0 1 es la tasa de aprendizaje
d E (x) es la direccin de bsqueda (del descenso ms rpido)
d = E (x) es el tamao de paso

Las RNA de aprendizaje no supervisado, son las que no requieren los valores esperados
T [T1 , T2 ,....., TM ], Tk m , solo de una matriz de datos P [ p1 , p2 ,....., p N ], pk n .
Estas redes tienen una sola capa, cuyo nmero de neuronas lo elige el usuario. Su funcin
es agrupar los vectores en grupos o clster, empleando una de las normas o mtricas que
sern descritas en la seccin 5.2 de este captulo. Adems MATLAB ofrece visualizaciones
grficas de los clster en dos dimensiones, bajo ciertas formas o estructuras geomtricas,
denominadas Topologas. Existen muchas Topologas; el usuario elige. Esto se explicar en
detalle, cuando se aborde las RNA de Kohonen o Self-Organizing Maps (SOM) en el
pargrafo 5 de este captulo siguiente.

2. REDES NEURONALES BACKPROPAGATION

Estas RNA son supervisadas. Tambin se denominan RNA de propagacin inversa. Su


estructura o arquitectura es la misma que la de una red general, descrita en la seccin 1. Lo
que se har en esta oportunidad es en primer lugar describir brevemente la sintaxis en
MATLAB de esta clase de RNA y luego desarrollar mediante un ejemplo, las etapas de
ingreso de datos, depuracin y transformacin de la data, creacin de la red neuronal
Backpropagation, su entrenamiento y finalmente la simulacin.

2.1 Sintaxis en MATLAB de la RNA Backpropagation (newff )

Para crear una red de propagacin inversa se tiene la funcin:

net = newff(Rango,[C1 C2...Ck],{TF1 TF2...TFk},BTF,BLF,PF)

donde:
Rango= matrix de nx2, formado por los mnimo y mximo de cada fila de la matriz de
datos de entrada, que tiene n filas. Si los datos de entrada fuera solo una fila, entonces
Rango ser una matriz de 1x2

Ci=nmero de neuronas de la capa- i. Sucesin de capas [C1 C2...Ck] de la red.

TFi=Funcin de transferencia capa- i (por defecto = 'tansig')

BTF=Funcin de entrenamiento de la red Backpropagation (por defecto = 'traingdx')

95
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

BLF=Funcin de aprendizaje peso/sesgo de la red Backpropagation (por defecto =


'learngdm')

PF=Funcin que mide la Performance (por defecto = 'mse'), y retorna una red neuronal
Backpropagation de k capas.

La funcin de transferencia TFi puede ser cualquiera de las funciones de transferencia


diferenciable tales como: tansig, logsig, o purelin.

La funcin de entrenamiento BTF puede ser cualquiera de las funciones de entrenamiento


Backpropagation tales como: trainlm, trainbfg, trainrp, traingd, etc.

2.2 Redes Neuronales Backpropagation en la clasificacin de tres tipos de flores

Paso 0. Ingreso de la base de datos

Carga de la base de datos

>>load fisheriris

El Workspace indica que se tiene dos archivos meas y species. La primera contiene 150
filas con las medidas del ancho y largo de los ptalos y spalos de un grupo de flores. En el
segundo se registran los nombres de las tres flores. Las 50 primeras corresponden Setosa,
las 50 siguientes a Verginica y las 50 ltimas a Versicolor.

96
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

Paso 1. Estructura de las matrices de datos de entrada a la red


Haciendo
P=meas';
I1=ones(1,50); % setosa
I2=2*ones(1,50); % versicolor
I3=3*ones(1,50); % virginica
T=[I1,I2,I3];

De este modo se est guardando en la matriz P (4x150) las medidas del ancho y la longitud,
de los ptalos y spalos, de tres tipos de flores: Setosa, Versicolor y Verginica,
identificadas con los nmeros o cdigos 1, 2 y 3 respectivamente. Los 150 cdigos forman
la matriz T (1x150). (Ver Tabla 1)
Tabla 1
Columnas P1 P2 P3 P4 P5 P6 P7
Ancho petalo 2 24 13 2 20 19 16
Longitud petalo 14 56 45 10 52 51 47
Ancho sepalo 33 31 28 36 30 27 33
Longitud sepalo 50 67 57 46 65 58 63

Tipo de flor 1 3 2 1 3 3 2

Setosa 1
Versicolor 2
Verginica 3

El problema es crear una RNA Backpropagation que se entrene con los cdigos que
identifica a cada tipo de flor y que sea capaz de diferenciar uno del otro, slo por las
dimensiones de sus ptalos y spalos.

Paso 2. Normalizacin y depuracin de los datos


a) Normalizacin
Se aplica la funcin mapstd a las matrices P y T. Esta funcin transforma los elementos de
x mc
cada fila de la matriz en otro, empleando la funcin H ( x ) , donde mc y dc son
dc
respectivamente la media y la desviacin estndar de cada fila.
[pn,ps1]= mapstd(P);
[tn,ts] = mapstd(T);

b) Depuracin de los datos mediante el Anlisis de Componentes Principales


MATLAB tiene la funcin processpca que realiza el anlisis de componentes principales
de una matriz, tal como se explic en el captulo . Depura las filas de la matriz que se
correlacionen entre s. El resultado lo guarda en la matriz ptrans.

[ptrans,ps2] = processpca(pn,0.001);

97
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

Para ver cmo ha variado el nmero de filas hacemos:


>> S=size(ptrans)
S = 4 150

Paso 3. Separacin de datos para el entrenamiento, validacin y test de la RNA


a) Para esto se toma en cuenta que las columnas de la matriz P y las componentes de T
estn numeradas del 1 al 150. Estos nmeros se separan en 4 grupos disjuntos, que se
denotan como Clas13, Clas4 y Clas2. Por ejemplo Clas4 es la secuencia de
enteros que comienza en 4 y al que se le va aadiendo 4 hasta llegar a un nmero igual o
menor que 150. Esto es Clas4 es: 4, 8, 12,., 148. Estos grupos de nmeros son parte de
las clases de equivalencia de enteros mdulo 4. Es decir selecciona las columnas de la
matriz ptrans de acuerdo a estas clases de nmeros:
col=S(2);
Clas13 = [1:4:col 3:4:col];
Clas4 = 4:4:col;
Clas2 = 2:4:col;

b) Con estas clases se hace la separacin.


Enp = ptrans(:,Clas13); %Entrenamiento
VEt = tn(:,Clas13);
val.P = ptrans(:,Clas4); %Validacin
val.T = tn(:,Clas4);
test.P = ptrans(:,Clas2); %Test
test.T = tn(:,Clas2);

Paso 4. Creacin de la red


Como los datos de entrada estn en la matriz ptrans se hace:
Rango=minmax(ptrans);
Rango =
-3.2957 2.7693
-2.6346 2.6662
-0.8460 1.0244
-0.4915 0.4820
>> net = newff(Rango,[2 1],{'tansig' 'purelin'},'trainlm');

Creada la red, automticamente se inicializan los pesos y los sesgos de la primera capa.
Estos se pueden ver con net.IW{1,1} y net.b{1,1} respectivamente.

Paso 5. Entrenamiento de la RNA


>> [net,tr]=train(net,Enp,VEt,[],[],val,test);

Luego de ejecutar el comando train sale una interface (Fig.1) indicando entre otras cosas
que luego de 22 iteraciones se logr el entrenamiento de la red. Aparecen 3 botones que

98
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

permitirn ver las curvas de entrenamiento de la red (Fig. 3). Los estados del entrenamiento
y las correlaciones de las etapas de entrenamiento, validacin y test.
Fig.1 Fig.2

Fig.4 Fig.5

Para graficar un nuevo cuadro con las curvas de entrenamiento, de validacin y prueba,
agregando el ttulo, leyenda, ejes, como aparece en el grfico de la Fig. 6, correr el
siguiente programa: Fig. 6
CURVAS DE ENTRENAMIENTO, VALIDACION Y TEST
plot(tr.epoch, tr.perf, tr.epoch, tr.vperf, tr.epoch, tr.tperf) 3.5

legend('ENTRENAMIENTO','VALIDACION','TEST',-1); ENTRENAMIENTO
3
ylabel('ERROR CUADRTICO'); VALIDACION
TEST
xlabel('ITERACIN') 2.5
ERROR CUADRTICO

title('CURVAS DE ENTRENAMIENTO:')
2

1.5

0.5

0
0 5 10 15 20 25
ITERACIN

99
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

Matrices de peso y ganancias luego del entrenamiento


PESOS GANANCIAS
net.IW{1,1} net.b{1,1}
-0.1403 0.0323 -0.1231 -0.0558 -0.8600
-2.5517 4.4914 -5.8831 9.1498 6.5803

Paso 6. Simulacin de la RNA


Esta etapa consiste en ver si la red se entren adecuadamente, pero la simulacin no se hace
con los datos originales, porque su entrenamiento se realiz con los datos transformados en
el paso 3 y que es ptrans. Entonces se le volver a pasar a la red estos mismos datos y
el resultado de la simulacin se guarda en la variable rn.
>>rn = sim(net,ptrans);

>>size(rn)
ans = 1 150

Paso 7. Conversin de la respuesta de la simulacin rn a valores originales


>> R = mapstd('reverse',rn,ts);
size(R)
ans = 1 150

Paso 8. Comparacin del resultado entregado por la red R y el valor esperado T.


Este proceso se realiza mediante la funcin postreg
[m,b,r]=postreg(R,T);

La salida est formada por la grfica de la recta y=mx+b, los valores de la pendiente y su
interseccin con el eje Y. Adems se tiene el coeficiente de correlacin r.
Fig. 7

2. 3 Estadsticas de los resultados


a) Coeficientes de determinacin: R, R2, MSE y RMSE

100
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

Haciendo los clculos con un programa propio se tiene:


format long;
Na=length(R);
mR=mean(R);
mT=mean(T);
VmR=mR*ones(1,Na);
VmT=mT*ones(1,Na);
cR=dot(R-VmR,T-VmT)/(norm(R-VmR)* norm(T-VmT));
MSE=norm(T-R,2)^2/Na;
RMSE=norm(T-R,2)/sqrt(Na);
ESTADIS=[cR,cR^2,MSE, RMSE];
single(ESTADIS)
0.9707471 0.9423498 0.0399127 0.1997817

ESTRUCTURA R R2 MSE RMSE N pesos y sesgos


RN1=[2 1] 0.9707471 0.9423498 0.0399127 0.1997817 13

b) Estudio del error entre T y R


El error absoluto componente a componente entre las matrices T y R es la matriz E. Este
error nos da una visin distinta de la correlacin R descrita en la seccin anterior. Para esto
se separa el rango de E en 13 intervalos consecutivos y se calculan sus frecuencias.
E=abs(R-T); % Fig. 8
M=minmax(E);
a=M(1); ERROR ENTRE LA RESPUESTA Y EL VALOR ESPERADO
45
b=M(2);
N=13; 40
h=(b-a)/(N-1);
for i=1:N 35
X(i)=a+h*(i-1); 30
FRE CUE NCIA

end
Na=length(X); 25
hist(E,X) 20
grid on
set(get(gca,'Children'),'FaceColor',[.6 .5 1]); 15
hold on
10
ylabel('FRECUENCIA');
xlabel('ERRORES'); 5
title('ERROR ENTRE LA RESPUESTA Y EL VALORESPERADO');
Frr=hist(E,X); 0
-0.2 0 0.2 0.4 0.6 0.8
format short; ERRORES
Frec=[X',Frr']

ERROR FRECUENCIA
0.0000 23
0.0494 45
0.0987 20
0.1480 14
0.1974 15
0.2467 8
0.2960 4

101
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

0.3453 6
0.3947 5
0.4440 4
0.4933 3
0.5427 1
0.5920 2

El histograma revela que los errores se acumulan en el rango [0, 0.3453]. Los errores
mayores son poco frecuentes.

2.4 Otra interpretacin de la correlacin de los resultados de la simulacin


a) Ordenando el vector T de menor a mayor, juntamente con R
Aux=T;
for i =1:length(T)
[a, k] = min(Aux);
TO(i) =a;
Aux(k) = Inf;
RO(i)=R(k);
end
EO=abs(TO-RO); % (diferencia);

b) Grficas de TO juntamente con RO y en Lila el error EO


J=1:1:length(TO); % contador
plot(J, TO, 'ob','MarkerSize',12,'MarkerFaceColor',[.4 1 .7]);
hold on;
grid;
plot(J, RO, 'or', 'MarkerSize',8,'MarkerFaceColor',[0 1 0]);
plot(J, EO, 'ms','MarkerSize',5,'MarkerFaceColor',[1 1 0]);
xlabel('CANTIDAD DE FLORES');
ylabel('VALORES DE RO y TO');
legend('TO=CODIGO ORDENADO','RO=RESPUESTA DE LA RNA ', 'EO= ERROR');
title('RESPUESTA RO DE LA RNA VS VALOR ESPERADO TO');

Fig.9
RESPUESTA RO DE LA RNA VS VALOR ESPERADO TO
3.5
TO=CODIGO ORDENADO
RO=RESPUESTA DE LA RNA
3
EO= ERROR

2.5
VALORES DE RO y TO

1.5

0.5

0
0 50 100 150
CANTIDAD DE FLORES

102
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

Se observa que la nube de puntos de RO se agrupa muy cerca de los puntos de TO. La
RNA identific casi sin errores al grupo Setosa. En cambio en los otros grupos se han
producido errores.
Si se desea un mayor anlisis se puede estudiar los errores para cada grupo de flores.

2. 5 Pronstico de la RNA con entradas Pb y Tb


Se va crear una nueva base de datos, haciendo una pequea modificacin de la base
original, para un grupo de 30 probetas, elegidas con la clase [5] de los enteros mdulo 5.
Clas5 =5:5:length(T);
Pb=P(:,Clas5)+0.05*P(:,Clas5);
Tb=T(:,Clas5)+0.05*T(:,Clas5);

a) Conversin de la respuesta de la simulacin rnb a valores originales


[pnb,ps3]= mapstd(Pb);
Ma =ps2.transform;
Ma
-0.5211 0.2693 -0.5804 -0.5649
-0.3774 -0.9233 -0.0245 -0.0669
0.7196 -0.2444 -0.1421 -0.6343
0.2613 -0.1235 -0.8014 0.5236
ptransb=Ma*pnb;
rnb = sim(net,ptransb); % simulacin
Rb = mapstd('reverse',rnb,ts); % conversin a valores originales
[size(Rb), size(Rb)]

ans =1 30 1 30

a) Comparacin del resultado entregado por la red Rb y el valor esperado Tb.


Este proceso se realiza mediante la funcin postreg
[m,b,r]=postreg(Rb,Tb); %
ans=
0.8782 0.1251 0.9751

Fig. 10

103
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

La salida est formada por la grfica de la recta y=mx+b, los valores de la pendiente m y su
interseccin b con el eje Y. Adems se tiene el coeficiente de correlacin r.

b) Estadsticas de los resultados para Tb y Rb


Coeficientes de determinacin: R, R2, MSE y RMSE
Haciendo los clculos con un programa propio se tiene:
format long;
Na=length(Rb);
mR=mean(Rb);
mT=mean(Tb);
VmR=mR*ones(1,Na);
VmT=mT*ones(1,Na);
cR=dot(Rb-VmR,Tb-VmT)/(norm(Rb-VmR)* norm(Tb-VmT));
MSE=norm(Tb-Rb,2)^2/Na;
RMSE=norm(Tb-Rb,2)/sqrt(Na);
ESTADISb=[cR,cR^2,MSE, RMSE];
single(ESTADISb)

0.9750652 0.9507520 0.0573294 0.2394356


ESTRUCTURA R R2 MSE RMSE N pesos y sesgos
RN1=[2 1] 0.9750652 0.9507520 0.0573294 0.2394356 13

c) Estudio del error entre Tb y Rb


El error absoluto componente a componente entre Tb y Rb es la matriz Eb. Este error nos
da una visin distinta de la correlacin R descrita en la seccin anterior. Para esto se separa
el rango de Eb en 13 intervalos consecutivos y se calculan sus frecuencias.
Eb=abs(Rb-Tb); %
M=minmax(Eb);
a=M(1);
b=M(2);
N=13;
h=(b-a)/(N-1);
for i=1:N
X(i)=a+h*(i-1);
end
Na=length(X);
hist(Eb,X)
grid on
set(get(gca,'Children'),'FaceColor',[.6 .5 1]);
hold on
ylabel('FRECUENCIA');
xlabel('ERRORES');
title('ERROR ENTRE LA RESPUESTA Y EL VALORESPERADO');
Frr=hist(Eb,X);
format short;
Frec=[X',Frr']

104
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

% Fig 12

ERROR FRECUENCIA
0.0012 9 ERROR ENTRE LA RESPUESTA Y EL VALORESPERADO
10
0.0434 6
0.0856 4
8
0.1277 1
0.1699 1 FRECUENCIA
0.2121 2 6
0.2543 1
0.2965 1 4
0.3387 1
0.3809 2 2
0.4231 1
0.4653 0
0
0.5075 1 0 0.2 0.4 0.6 0.8
ERRORES

El histograma revela que los errores se acumulan en el rango [0, 0.3453]. Los errores
mayores son poco frecuentes.

d) Otra interpretacin de la correlacin entre Tb y Rb


Ordenando el vector T de menor a mayor, juntamente con R
Aux=Tb;
for i =1:length(Tb)
[a, k] = min(Aux);
TOb(i) =a;
Aux(k) = Inf;
ROb(i)=Rb(k);
end
EOb=abs(TOb-ROb); % (diferencia);

%b) Grficas de TOb juntamente con ROb y en Lila el error EOb


J=1:1:length(TOb); % contador
plot(J, TOb, 'ob','MarkerSize',12,'MarkerFaceColor',[.4 1 .7]);
hold on;
grid;
plot(J, ROb, 'or', 'MarkerSize',8,'MarkerFaceColor',[0 1 0]);
plot(J, EOb, 'ms','MarkerSize',5,'MarkerFaceColor',[1 1 0]);
xlabel('CANTIDAD DE FLORES');
ylabel('VALORES DE ROb y TOb');
legend('TOb=VALOR ESPERADO','ROb=RESPUESTA DE LA RNA ', 'EOb= ERROR');
title('RESPUESTA ROb DE LA RNA VS VALOR ESPERADO TOb');

Fig.12

105
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

RESPUESTA ROb DE LA RNA VS VALOR ESPERADO TOb


3.5
TOb=VALOR ESPERADO
ROb=RESPUESTA DE LA RNA
3
EOb= ERROR
VALORES DE ROb y TOb

2.5

1.5

0.5

0
0 5 10 15 20 25 30
CANTIDAD DE FLORES
e) Conclusiones
-El pronstico Rb de la RNBP tiene una correlacin del 97.5% con el valor esperado Tb.
-En el caso de la Setoza (1) el acierto es del 100%.
-En el caso del Versicolor (2) el error es <=0.5.
-En el grupo Verginica hay errores>=0.5.

3. IMPLEMENTACIN DE UN PROGRAMA PROPIO EN BASE AL GRADIENTE


HEURSTICO (Tema de lectura)

Ejemplo 1: red neuronal Backpropagation para aproximar una funcin

Consideremos la funcin h( s) sen( 3 s) cos( 6 s) con 2 s 2 y un vector


P ( p1 , p 2 ,....., p N ) cuyas componentes son los puntos de una particin del intervalo
[2 , 2] . Se quiere construir una RNA de propagacin inversa, que para el vector de entrada
P , aproxime los valores de la funcin h(s ) en los puntos de esta particin, es decir
aproxime el vector T (t1 , t 2 ,....., t N ) , donde t k sen( 3 pk ) cos( 6 pk ) .

Consideremos una RNA de 2 capas, como el que se utiliz en 4.3 para explicar el
aprendizaje de una red. Ya se dijo que el entrenamiento consiste en minimizar el error, en
media cuadrtica entre los vectores T y la respuesta de la RNA en cada componente del
vector de entrada P . Esto nos conduce al desarrollo de un programa que se har en
MATLAB. RED NEURONAL:
0.8

SALIDA R
3.1 Programa propio en MATLAB 0.6
VALOR ESPERADO

0.4
% vector de entrada P=particin de [-2,2] y la respuesta
0.2
esperada T
a=-2;
EJE Y

0
b=2;
-0.2

-0.4

106 -0.6

-0.8
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
EJE X
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

N=50;
h=(b-a)/N;
for i=1:N+1
P(i)=a+h*(i-1);
T(i)=sin(pi*P(i)/3)*cos(pi*P(i)/6);
end
% Inicializacin de pesos, ganancias y el valor pequeo s
W1=[-0.2;0.5];
b1=[0.7;-0.2];
W2=[0.1; 0.3];
b2=0.15;
s=0.1;
KK=300;

%, Bucle de salidas y entradas a la RNA


for k=1:KK
for i=1:N+1
% salida de la primera capa
V1=P(i)*W1+b1;
Q1=[tanh(V1(1));tanh(V1(2))];
Mf1=[1-Q1(1)^2,0;0,1- Q1(2)^2]; % Matriz de 2x2
% salida de la segunda capa
V2=dot(W2,Q1)+b2;
Q2=V2;

% funcin que guarda la respuesta de la ltima capa, para cada P(i)


R(i)=Q2;
% atualizacin de pesos y ganancias en las dos capas
W1=W1+s*P(i)*(T(i)-Q2)*(Mf1*W2);
b1=b1+s*(T(i)-Q2)*Mf1*W2;
W2=W2+s*(T(i)-Q2)*Q1;
b2=b2+s*(T(i)-Q2);
end
end
%valores de P,T,R=salida de la RNA.
TABLA=[P',T',R'];
% Grficas
plot(P,R,'o',P,T,'r');
legend('SALIDA R','VALOR ESPERADO',-1);
ylabel('EJE Y');
xlabel('EJE X')
title('RED NEURONAL:')

Nivel de correlacin obtenido entre T y R


>>postreg(T,R);

El nivel de correlacin es alto: 0.99563

3.2 Solucin del mismo ejemplo con los recursos de MATLAB


Generacin de datos
Los datos de entrada a la RNA P y T son los mismos que en 5.1

107
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

Transformacin (y depuracin) de los datos


[pn,ps1] = mapstd(P);
[tn,ts] = mapstd(T); % se omite el uso de processpca por que p es de una fila.
[fil,col] = size(P);
Clas13 = [1:4:col 3:4:col];
Clas4 = 4:4:col;
Clas2 = 2:4:col;
Enp = pn(:,Clas13);
VEt = tn(:,Clas13);
val.P = pn(:,Clas4);
val.T = tn(:,Clas4);
test.P = pn(:,Clas2);
test.T = tn(:,Clas2);

Creacin de la red
Rango=minmax(pn);
net = newff(Rango,[3 1],{'tansig' 'purelin'},'trainlm');
[net,tr]=train(net,Enp,VEt,[],[],val,test);

108
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

Simulacin
rn = sim(net,pn);
R=mapstd('reverse',rn,ts);
[m,b,r]=postreg(R,T);

109
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

Grafica de la respuesta de la red y del valor esperado


plot(P,T,'o',P,T,'r');
legend('SALIDA DE LA RED','VALOR ESPERADO',-1);
ylabel('EJE Y');
xlabel('EJE X')
title('RED NEURONAL:')

RED NEURONAL:
0.8

0.6
SALIDA DE LA RED
VALOR ESPERADO
0.4

0.2
EJE Y

-0.2

-0.4

-0.6

-0.8
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
EJE X

3.3 Observaciones finales

a) En el programa propio con MATLAB, no se contempla el control del gradiente


mediante una tolerancia tol. Un programa ms completo tendra que considerar todos estos
aspectos para estar seguros de la convergencia del proceso iterativo a algn punto crtico de
la funcin no lineal E ( x) 12 (Tk Q 2 ) 2 . No obstante ello, debido a las 300 iteraciones se
logra obtener una buena aproximacin.
b) Debe quedar muy claro que el aprendizaje supervisado de una red neuronal, no es ms
que un problema de minimizacin del error en media cuadrtica.

110
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

c) La respuesta de la red desarrollada con los recursos de MATLAB, exactamente con la


misma arquitectura, es muy superior al que se consigue con el programa propio, esto se
debe a que MATLAB emplea algoritmos ms eficientes para la bsqueda de mnimos,
como son los de [1] Marquardt, D. y [2] Levenberg, K, que estn implementadas en
trainlm.

Ejercicios
1. Desarrolle en MATLAB una red neuronal Backpropagation, de dos capas, la primera con
3 neuronas y la segunda de 1 neurona y con funciones de transferencia tansig, purelin
respectivamente. Luego entrene la red neuronal con los siguientes datos entrada P y el
valor esperado T, donde sus componentes estn descritos por:
a=0;b=4;
N=100;
h=(b-a)/N;
for i=1:N+1
P(i)=a+h*(i-1);
T(i)=4*cos(pi*P(i)/4);
end

n T m
2. Describa la transformacin
correspondiente a la capa de neuronas del
ejercicio 1.

3. Genere en MATLAB una red neuronal Backpropagation, de dos capas, la primera con 4
neuronas y la segunda de 1 neurona y con funciones de transferencia tansig, purelin
respectivamente. Luego entrene la red neuronal con los mismos datos de entrada del
ejercicio 1.
4. Describa mediante vectores, matrices y transformaciones, una red de 2 neuronas, donde
la primera tiene dos entradas (dentritas) la segunda una entrada. Las funciones de
transferencia son tansig y logsig respectivamente.

5. Desarrolle un programa en MATLAB para el ejercicio 1 y aplique dicha red para


aproximar la grfica de la funcin h ( s) sen( x 2 ) cos( 3 x) en un intervalo [a, b]
cualquiera.

6. Describa mediante vectores, matrice y transformaciones dos capas de neuronas, la


primera de 3 neurona, cada una con 3 dentritas y la segunda de dos neurona. Las funciones
de transferencia para todas las neuronas es tansig.

BIBLIOGRAFIA

[1] Marquardt, D., "An Algorithm for Least-Squares Estimation of Nonlinear Parameters,"
SIAM J. Appl. Math. Vol. 11, pp 431-441, 1963.

[2] Levenberg, K., "A Method for the Solution of Certain Problems in Least Squares,"
Quart. Appl. Math. Vol. 2, pp 164-168, 1944.

111
Universidad Nacional de Ingeniera. Facultad de Ingeniera Industrial y de Sistemas. Unidad de Post Grado
Maestra en Ingeniera Industrial. Curso: Matemtica para el Modelamiento de Sistemas de Produccin y Operaciones.
Pedro C. Espinoza H.

112

You might also like