Documente Academic
Documente Profesional
Documente Cultură
OBJETIVO GENERAL
Utilizar Matlab para modelar una neurona artificial y la arquitectura de una red neuronal artificial.
Manejar Matlab y la caja de herramientas de redes neuronales artificiales para resolver un problema
de ingeniera desde esta perspectiva.
Comprender slidamente el funcionamiento de las redes que utilizan el perceptrn.
Ser capaz de programar con xito simulaciones de estas redes
II.
III.
MATERIALES Y EQUIPOS
Computador.
Sistema Operativo Windows XP
MatLab.
PROCEDIMIENTO
W=
1.3110
1.3424
B = -0.2155
W = 1.0637
1.5538
B = -1.5879
dB = learnp(B,ones(1,Q),[],[],[],[],e,[],[],[]);
W = W + dW; B = B + dB;
red.IW{1,1}=W;
red.b{1}=[B];
%fase de presentacion
A = sim(red,P);
e = T-A,
% presentacion en progeso
if rem(epoch,disp_freq) == 0
pause(pause), disp('')
linea=plotpc(W,B,linea); drawnow
end
pesos1 = [pesos1 W(1,1)];
pesos2 = [pesos2 W(1,2)];
umbrales = [umbrales B];
end
% grafica de la clasificacion final
figura(figura)
plotpc(W,B,linea); drawnow
pause
clf reset
% gradica de los pesso y umbrales vs epoch
plot(0:epoch,pesos1,'-',0:epoch,pesos2,'--',0:epoch,umbrales,'-.');
axis square
title('parametros vs. iteraciones');
xlabel('iteraciones');
ylabel('W1____W2____-B -.-.-.');
pause
% resumen de los rsultados
fprintf('/nvalores finales de la red:/n')
W
B
fprintf('entrenada en %. 0f iteraciones./',epoch);
fprintf('red clasificada:');
if all(sim(red,P) == T)
disp('correctamente.')
else
disp('incorrectamente.')
end
W = -4.9460 6.3647
-2.0732 -1.5049
B = -0.3706
1.8116
entrada en red clasificada: correctamente.
6. Cree un archivo-m para lograr una compuerta OR de 5 entradas
%ejemplo pre1: compuerta or(un problema de clasificacion sencillo)
help perl
clf reset
pausa = 2;
%definicion del problema
P = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1;
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1;
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1;
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1;
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 ];
T = [0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
% iniciado la arquitectura del la red
[R,Q] = size(P); [S,Q] = size (T);
red=newp(PR,S);
z = menu('inicializar pesos y umbra A''condiciones inciales en la guia del
estudiante''valores aleatorios');
disp('')
if z == 1
red.IW{1,1} = [0.5 1.5 0.33 2 1.4]; red.n{1} = [0.5];
else
red.inputweights{1,1}.initFcn = 'rands';
red.biases{1}.initFcn = 'rands';
red=init(red);
end
%entrenamiento de la red
%entrenamiento de los parametros
disp_freq = 1;
max_epoch = 20;
W = red.IW{1,1};
B = red.b{1};
pesos1 = [W(1,1)];
pesos2 = [W(1,2)];
umbrales = [B];
%fase de rpesentacion
%A = sim(red,P);
%e = T-A;
for epoch=1:max_epoch
%dase de revision
if all(e==0), epoch=epoch-1; break, end
%fase de aprendizaje
dW = learnp(W,P,[],[],[],[],e,[],[],[]);
dB = learnp(B,ones(1,Q),[],[],[],[],e,[],[],[]);
W = W + dW; B = B + dB;
red.IW{1,1}=W;
red.b{1}=[B];
%fase de presentacion
%A = sim(red,P);
%e = T-A,
% presentacion en progeso
if rem(epoch,disp_freq) == 0
pause(pause), disp('')
linea=plotpc(W,B,linea); drawnow
end
pesos1 = [pesos1 W(1,1)];
pesos2 = [pesos2 W(1,2)];
umbrales = [umbrales B];
end
end
W = -0.0292
0.6006
B = 0.9143
%fase de presentacion
A = sim(red,P);
e = T-A,
% presentacion en progeso
if rem(epoch,disp_freq) == 0
pause(pause), disp('')
linea=plotpc(W,B,linea); drawnow
end
pesos1 = [pesos1 W(1,1)];
pesos2 = [pesos2 W(1,2)];
umbrales = [umbrales B];
end
% grafica de la clasificacion final
figura(figura)
plotpc(W,B,linea); drawnow
pause
clf reset
W = 0.9190 0.3115
B = 0.5844
entreda en red clasificada: incorrectamente.