Está en la página 1de 5

1. Cree un archivo-in con el nombre perl .

m que simule una compueita OR de dos entradas


usando el Perceptrn:
Les pesos iniciales de las entradas 1 y 2 son 0.5 y 1.5 respectivamente, el peso de la entrada
del umbral es 1.5.
%
% EJEMPLO PER1: COMPUERTA OR (UN PROBLEMA DE CLASIFICACIN SENCILLO)
%
% Se entrena 1 neurona de 2-entradas con funcin de activacin escaln
% con la regla del perceptrn para una clasificacin adecuada
% 4 vectores de entrada en 2 regiones.
help perl
elf reset
pausa = 2;
% DEFINICIN DEL PROBLEMA
% Definicin de cuatro vectores de 2-elementos de entrada.
P - |0 1 0 1;
0 0 1 1];
% Definicin de las cuatro salidas deseadas de 1-elemento.
T - [0 1 1 1];
% GRFICA DE LOS VECTORES A ENTRENAR
disp(*fPreslone cuaquier tecla para ver los vectores de entrada!) pause,
dlsp(T)
V - 1-2 2 -2 2);
% los valores mnimos y mximos de cada entrada son
PR - (-2 2 ; -2 2);
plotpv(P,T, V);
flgura=gcf;
axis(equal)
title(Grflea de los vectores de entrada) xlabel('Entrada 1)
ylabel('Entrada 2*) pause % IKICI ALIE ACIN DE LA ARQUITECTURA DE LA RED

1 Encuentra el tamao del vector de entrada R, el tamao de la capa S, %


el tamao del lote Q.
(R,Q1 - si*MP); [S,Q] - si2e(T) red-nevp(FR,s);
1 tnicializacin de pesos y umbral, z menu('Inlcializar Pesos y Umbral
A*, ...
'Condiciones Iniciales en la guia del estudiante', ...
Valores Aleatorios'); disp") if 2 -- 1
red.iwu, l) - 10.b i.b] rea.bll) - l!.!>];
Ue
red.nputweigts(1,1).initFcn - 'ranos';
red.Piases{1}.initFcn - 'rands*; red-init(red); end
% GRAFICA DE LA CLASIFICACIN INICIAL hold on
llnea-plotpc(red.IW{1,1), red.b{l});
% ENTRENAMIENTO DE LA RED

% ENTRENAMIENTO DE LOS PARMETROS


disp_freq - 1; max_epoch 20;
% NOTA: El resto del cdigo de entrenamiento puede reemplazarse por %
S red.TralnParam.epocbs = max_epocb;
% red=traln (red, P, T);
% W-red.IW{l, 1);
% Bred.b{l);

W - red.IW{l, 1);
B - red.b{l); pesosl = [W{1,1)]; pesos2 =
[W{1,2)]; umbrales - [B];
% FASE DE PRESENTACIN:
A - slm(red, P); e = T-A;
for epoch=l:max_epocb %
FASE DE REVISIN:
if all(e -- 0), epocb-epoch-1; break, end %
FASE DE APRENDIZAJE:
dW = learnp(W, P, [], [], [), I] # e# M, [], I));
dB - learnp{B, ones(1,Q), I ],[],[], I), e, l ],[],[]);
Vi - W + dW; B = B + dB; red.IWl, 1J-W;
red.b{l)-[B);
% FASE DE PRESENTACIN:
A slm(red, P); e - T-A;
% PRESENTACIN EN PROGRESO lf remfepoch,dlsp_freq) -- 0
pause{pausa), dlsp(TT) llnea=plotpc(W,B,linea); drawnow
end
pesosl = Ipesosl W(1,1)J; pesos2 = Ipesos2
W(1,2)J; umbrales = lumbrales B); end
% GRFICA DE CLASIFICACIN FINAL

figure(figura)
plotpc(W, B, linea); drawnow
pause
clf reset
% GRFICA DE PESOS Y UMBRALES VS. EPOCH

plot(Orepoch,pesosl,0:epoch,pesos2, T ,Orepoch, umbrales, axis


square
title(Parmetros vs. Iteraciones); xlabel(Iteraciones1);
ylabel (Wl __ W2 _____ B
pause
% RESUMEN DE RESULTADOS
% - - --- === = ------ ====
fprintf(T\nVALORES FINALES DE LA RED:\n)
W
B
fprintf('Entrenada en %.0f iteraclones.Xn
fprintf('Red clasificada: ); if
all(slm(red, P) -- T)
disp('Correctamente.) else
disp('Incorrectamente.)
end
,epoch)

También podría gustarte