Implementacin de un Perceptrn Multicapa con Aprendizaje de tipo Retropropagacin
Profra.: Dra. Alma Yolanda Alanis Garca
Alumno: Jos A. Regalado Rojas
Fecha: 15 de Octubre de 2013
!"#$%&'(()*"+
0n peiception multicapa, es un tipo ue ieu neuional no lineal que posee una estiuctuia con al menos una capa oculta y su algoiitmo ue entienamiento es uel tipo ue coiieccion uel eiioi. 0no ue los algoiitmos mas conociuos que se implementan en esta ieu es el ue !"#!$%!$%&'&()*+.
A continuacion se iealizai una simulacion en Natlab, uonue se apioximai una funcion ue uos vaiiables que tiene una peculiai gifica ue supeificie conociua como "sombieio mexicano". Tambin se veiificai que el entienamiento se lleve a cabo meuiante los algoiitmos ue giauiente uescenuiente y Levenbeig-Naiquaiut asi como la compaiacion entie ambos mtouos. -$./)(0 &1 20 /'"()*" %341#)5%+
Paia asignai los valoies ue las vaiiables inuepenuientes a la funcion !!!! !! se piopuso que fueian ue -1u a 1u en inciementos ue u.S, lo que uio como iesultauo uos vectoies ue 41 elementos, uno paia 'y' y otio paia 'z'. La ieu neuional estai foimaua poi uos entiauas, una capa oculta y una saliua. La capa oculta pueue tenei un nmeio aibitiaiio ue neuionas que se ii mouificanuo ue acueiuo a los iesultauos obteniuos uel entienamiento.
Paia encontiai una buena apioximacion se mouificaion algunos ue los paimetios ue la ieu a piueba y eiioi en funcion uel minimo eiioi uel giauiente. Se eligieion valoies paia el nmeio ue neuionas ue la capa oculta, el nmeio ue pocas y el giauiente minimo. En la tabla 1 se pueuen vei algunos iesultauos obteniuos con uifeiente nmeio ue neuionas, pocas y giauiente minimo paia sus iespectivos algoiitmos. 9"#$1"07)1"#% : ;)7'20()*" &1 20 $1&+
El entienamiento se lleva a cabo fueia ue linea y se empleaion los uos algoiitmos ya mencionauos: giauiente uescenuiente y Levenbeig-Naiquaiut. En el caso uel giauiente uescenuente, la simulacion teiminaba al alcanzai el mximo ue pocas. Con el algoiitmo Levenbeig-Naiquaiut pasaba algo similai, solo que el entienamiento finalizaba antes ue tiempo al alcanzaise el limite ue veiificaciones ue valiuacion (,&-).&#)$+ (0"(12), esto se uebe a que se alcanza el nmeio mximo ue iteiaciones sucesivas uonue el algoiitmo falla en ueciecei.
uiauiente Bescenuiente Levenbeig-Naiquaiut Neuionas en la capa oculta Epocas uiauiente Ninimo (1e-uS) NSE Neuionas en la capa oculta Epocas uiauiente Ninimo (1e-uS) NSE S 1uuu u.uS76 u.u42S S 82 1.4Se-u4 u.u218 8 1uuuu u.uuS86 u.u276 1u 2u 2.28e-uS u.uu4S 1u 1uuuu u.uuSS4 u.u24S 1S 24S 4.22e-u4 1.88e-u4 12 1uuuuu u.uu117 u.u21S 2u 476 2.11e-uS S.27e-uS 18 1uuuuu u.uu191 u.uu86 Su 1SS 2.uSe-uS 4.64e-u6
Tabla 1. Se listan los iesultauos uel eiioi cuauitico meuio (mse) paia caua algoiitmo ue acueiuo a la vaiiacion ue sus iespectivos paimetios.
Los mejoies iesultauos se eligieion consiueianuo el menoi valoi paia el eiioi cuauitico meuio, se obtuvieion: con 18 neuionas en la capa oculta paia el mtouo ue giauiente uescenuente y ue Su neuionas paia Levenbeig-Naiquaiut. Las gificas coiiesponuientes paia caua algoiitmo ue ietiopiopagacion (Fig. 2) muestian como, a pesai uel esfueizo uel giauiente uescenuiente, no logia ni siquieia apioximaise a la funcion objetivo incluso a 1uuuuu iteiaciones, mientias que el mtouo Levenbeig-Naiquaiut lo hace mas ipiuo y con un eiioi mucho ms pequeo. La uifeiencia en el uesempeo ue ambos mtouos es muy gianue al compaiai las gificas ue eiioi (Fig. S).
(a) (b)
Fig. 2. Se muestian los iesultauos ue apioximacion ue la funcion !!!! !!. (a) uiauiente uescenuiente. (b) Levenbeig-Naiquaiut.
(a) (b)
Fig. S. Las gificas muestian la uifeiencia entie la simulacion ue la ieu y la funcion objetivo. (a) uiauiente uescenuiente. (b) Levenbeig-Naiquaiut. -1"1$02)<0()*" &1 20 $1&+
Paia geneializai la ieu se utilizai la matiiz ue entienamiento con el uoble ue valoies, es uecii, el paso ue u.S se ieuujo a u.2S. Se eligio la ieu entienaua con Levenbeig. Se pueue vei en la figuia (Fig. 4) la gifica ue simulacion ue la ieu en compaiacion con la saliua ueseaua. Tambin se muestia la gifica ue supeificie eiioi. El eiioi meuio cuauitico con iespecto a la saliua es ue 4.18e-u6.
(a) (b)
(c)
Fig. 4. A la izquieiua (a) est la saliua objetivo y a la ueiecha la iespuesta ue la ieu (b). Abajo (c) vemos la supeificie ue eiioi entie ambas gificas. A continuacion se muestian las listas ue los pesos y el vectoi uel bias iesultantes ue la geneializacion.
En los ejemplos ue ieues multicapa mostiauos se concluye que el algoiitmo Levenbeig-Nauquait es ms ipiuo y eficiente que el giauiente uescenuiente. No obstante, la funcion ue costo le piovoca cieitas fallas uebiuo a que en algunas iteiaciones tienue a aumentai en lugai ue ueciecei, piovocanuo asi la abiupta finalizacion uel entienamiento. Peio a pesai ue las limitaciones, se iealizo la apioximacion ue la funcion con un eiioi cuauitico meuio muy pequeo lo cual es satisfactoiio .
!"#$%& () *+,-+./
%% Sombrero Mexicano clear all; close; clc; dt = 0.5; x = -8:dt:8; [X,Y] = meshgrid(x,x); T = sin(sqrt(X.^2+Y.^2)+eps)./(sqrt(X.^2+Y.^2)+eps); n = size(X); surf(X,Y,T); title('Grfica Original T=sin(\sqrt(\x^2+\y^2))/(\sqrt(\x^2+\y^2))')
%% Inizializando la red con el algoritmo de gradiente % descendiente de retropropagacin X1 = reshape(X,1,n(1)^2); % Vector de entrada x Y1 = reshape(Y,1,n(1)^2); % Vector de entrada y T1 = reshape(T,1,n(1)^2); % Vector Objetivo T M = [X1;Y1]; % Matriz de entrenamiento net = feedforwardnet(18,'traingd') net.trainParam.epochs = 1000; net.trainParam.min_grad = 1e-5; net = train(net,M,T1); % Vector de salida de la red entrenada Z = sim(net,M); % Grfica resultante Z2 = reshape(Z,n(1),n(2)); figure; surf(X,Y,Z2); title('Grfica Resultante (Z)') % Plano de error figure; surf(X,Y,T-Z2); title('Grfica de Error') Bias = net.b{1} Pesos = net.iw{1} mse(net,T,Z2) pause();
%% Inizializando la red con el algoritmo de % retropropagacin de Levenberg-Marquardt net2 = feedforwardnet(30,'trainlm') net2.trainParam.epochs = 1000; net2.trainParam.min_grad = 1e-5; net2 = train(net2,M,T1); % Vector de salida de la red entrenada Z = sim(net2,M); % Grfica resultante Z = reshape(Z,n(1),n(2)); figure; surf(X,Y,Z); title('Grfica Resultante (Z)') % Plano de error figure; surf(X,Y,Z-T); zlim([-0.5 0.5]); title('Grfica de Error') Bias = net2.b{1} Pesos = net2.iw{1} mse(net2,T,Z) pause();