Práctica 3 Redes Neuronales
March 4, 2024 | Author: Anonymous | Category: N/A
Short Description
Download Práctica 3 Redes Neuronales...
Description
UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN
FACULTAD DE INGENIERÍA MECÁNICA Y ELÉCTRICA
Actividad:
Practica 3
DOCENTE:
Ing. Susana Viridiana Gutierez DATOS:
Nombre Jorge Alberto Assad Ramirez
Matrícu Bri Hora la gad a 1884144 307 N5
San Nicolás de los Garza, Nuevo León a Agosto del 2021 Semestre Ago-Dic 2021
Práctica 3: REDES NEURONALES Realizar un reporte de la realización de los ejercicios.
Desarrollo 1. Representar por medio de una red neuronal perceptrón simple de la compuerta lógica AND, para este caso se tiene cuatro grupos para el entrenamiento, uno para cada combinación posible de las entradas.
En total hubo 5 interacciones para llegar a la solución de la compuerta lógica AND.
Código clear allclc % x1 x2 p=[ 0 0; 0 1 1
1; 0; 1];
p=p' t=[0 0 0 1]; w= [0.8;0.5] b=rand(1)-1; for epocas = 1:100for q=1:4 a= hardlim(w'*p(:,q) + b); e(q)= t(q)- a; w=w + e(q)*p(:,q);b=b + e(q); end end Wo=[w(1) w(2)] e w b plotpv(p,t) plotpc(Wo,b)
Simulación
2. Representar por medio de una red neuronal perceptrón simple de la una comparación de 3 objetos diferentes en el plano cartesiano.
Simulación
Código clear all;close all; clc; puntosVerdesx=[-1 -2 -2.5] puntosVerdesy=[-1 0.5 -1.5] puntosAzulesx=[-2 -1 1] puntosAzulesy=[2.5 3 4] puntosRojosx=[0 1.8 2] puntosRojosy=[1.5 2.8 -1] figure(1) hold on; plot (puntosVerdesx, puntosVerdesy, 'og','MarkerFaceColor','g')
plot (puntosAzulesx, puntosAzulesy, 'og','MarkerFaceColor','b') plot (puntosRojosx, puntosRojosy, 'og','MarkerFaceColor','r') xlabel ('P1') ylabel ('P2') axis([0 3.5 0 3.5]) plot([0 3],[2 0]) pVerdes=[puntosVerdesx;puntosVerdesy]; pAzules=[puntosAzulesx,puntosAzulesy]; pRojos=[puntosRojosx;puntosRojosy]; b=1; w1=[-b/3;-b/2]; W=[w1'] n=W*pVerdes+b a=hardlim(n) a=hardlim(W*pAzules+b) figure(2) plot ([0 3],[2 0]) xlabel('P1') ylabel('P2') axis([0 3.5 0 3.5]) figure(3) hold on plot ([0 3],[2 0]) while (b==1) p1=input ('introduzca la coordenada en P1 (x)'); p2=input ('introduzca la coordenada en P2 (y)'); p=[p1;p2]; a=hardlim(W*P+b) if (a==1) disp ('el punto es Verde') plot(p1,p2,'og','MarkerFaceColor','g') else disp('el punto es Azul') plot(p1,p2,'ob','MarkerFaceColor','b') end end
3. Supongamos que queremos diseñar un sistema automatizado para reconocer el estado de ánimo de la gente observando la expresión de su cara. Por simplificar las cosas, supongamos que consideramos cuatro tipos distintos de estados de ánimo: alegre, triste, enfadado y neutro. Suponiendo que nuestro sistema dispone de una cámara que es capaz de obtener imágenes digitalizadas de la cara de una persona ¿cómo diseñarías el sistema usando una red neuronal? ¿en qué consistiría el aprendizaje de esa red? Código p= [0 0 1 1;0 1 0 1]; t=[0 1 1 0]; %net=newff(minmax(p),[2 1],{'tansig','purelin'},'traincgf'); %net =feedforwardnet([10],'traincgf'); net = fitnet([2],'traincgf'); net.layers{1}.transferFcn='tansig' net.layers{2}.transferFcn = 'purelin'; %view(net); net=init(net); net.trainparam.goal=1 e-9; %net.trainParam.epochs=1000; net=train(net,p,t); %a = net(p) %view(ne t) a=sim(ne t,p) plotpv(p ,t)
4. Clasificación de la compuerta OR-Exclusiva. Diseñe una red de retro propagación que solucione el problema de la OR-exclusiva usando el algoritmo de retro propagación (regla delta generalizada).
Código: X1= [0.01 0.01 0.99 0.99; 0.01 0.99 0.01 0.99]; Yd = [0.01 0.99 0.99 0.01]; % patrones objetivos Nin=2; % cantidad de entradas Noc=2; % cantidad nodos en capa oculta Nout=1; % cantidad de salidas eta=0.999; alpha=0.003; errorPermitido=1; W1=rand(Nin+1,Noc); %incluye el bias W2=rand(Noc+1,Nout); %incluye el bias DW1=0*W1; DW2=0*W2; W1prev=0*W1; W2prev=0*W2; B1=ones(1,4); X1of=[X1; B1]; % entradas con bias iter=1; while errorPermitido } 0.2 & iter { 200000 %error permitido sumError = 0; for muestra = 1:length(Yd) Y1 = 1 ./ (1 + exp( -( W1(1:Nin+1,:)' * X1of(:,muestra) ) ) ); % salida de neuronas de la capa 1
Y1of=[Y1; 1]; % vector Y1 con bias Y2 = 1 ./ (1 + exp( -( W2(1:Noc+1,:)' * Y1of) % salida de neuronas de la capa 2
)
);
% CALCULA CAMBIOS A LOS PESOS DE CAPA DE SALIDA W2 for nk = 1:Nout %es un vector de un elemento por cada salida deltaJsalida(nk) = Y2(nk) * ( 1 - Y2(nk) ) * ( Yd(nk,muestra) - Y2(nk) ); for nj = 1:Noc+1 DW2(nj , nk) = deltaJsalida(nk) * Y1of(nj); %define la matriz de diferencia (delta) con tantas columnas como salidas end end % CALCULA CAMBIOS A PESOS DE CAPA DE OCULTA W1 for nj = 1:Noc %calcula el error de cada neurona nj de la capa oculta SUMk = 0; for k = 1:Nout SUMk = SUMk + deltaJsalida(k) * W2(nj,k); end deltaJoculta(nj) = Y1(nj) * ( 1 - Y1(nj) ) * SUMk; for ni = 1:Nin+1 DW1(ni , nj) = deltaJoculta(nj) * X1of(ni,muestra); % el error calculado se asigna a la variacion que tendrá la matriz end end % actualiza los pesos W1nuevo = W1 + eta*DW1 + alpha*(W1 - W1prev); W1prev=W1; W1=W1nuevo; W2nuevo = W2 + eta*DW2 + alpha*(W2 - W2prev); W2prev=W2; W2=W2nuevo; sumError = sumError + (Yd(muestra) - Y2)^2; end %muestra errorTotal(iter)=sumError; errorPermitido = sumError; iter = iter + 1; end % while %mostrar los resultados con las muestras en plano 3d
for muestra = 1:length(Yd); y1 = 1 ./ (1 + exp( -( W1(1:Nin+1,:)' * X1of(:,muestra) ) ) ); Y1of=[Y1; 1]; y2(muestra) = 1 ./ (1 + exp( -( W2(1:Noc+1,:)' * Y1of) ) ); end fig2=figure; fig2.InnerPosition= [21 61 418 354]; plot3([0 0 1 1], [0 1 0 1], y2, '*'), ejes2=gca; ejes2.XLim = [-0.2 1.2]; ejes2.YLim= [-0.3 1.3]; ejes2.PlotBoxAspectRatio= [1 .4 .4]; fig=figure; fig.InnerPosition=[16 356 535 323]; %posicion en la pantalla plot(errorTotal,'*'),
5.
Sistema Mecatrónico Usando redes neuronales artificiales se desea realizar un clasificador de 4 tipos diferentes de cajas usando 6 sensores.
Nota: Regla de aprendizaje • El Perceptrón es un tipo de red de aprendizaje supervisado, es decir, necesita conocer los valores esperados para cada una de las entradas presentadas; su comportamiento está definido por pares de la siguiente forma:
{𝑃1,𝑡1}, {𝑃2,𝑡2}, … , {𝑃𝑄,𝑡𝑄} • Cuando 𝑃𝑗 es aplicado a la red, la salida de la red es comparada con el Valor esperado 𝑡𝑗 • Recordemos que la salida de la red esta determinada por: 𝑎 = 𝑓 (∑𝑋𝑖𝑊𝑖 + 𝑏𝑖𝑎𝑠) = ℎ𝑎𝑟𝑑𝑙𝑖𝑚 (∑ 𝑋𝑖𝑊𝑖 + 𝑏𝑖𝑎𝑠)
Código clear all clc % w1 w0 P =[0 1 1 0 0 1 1 0 1 1 1 1 P = P';
h1 h0 l1 l0 0 1 0 1; 0 1 0 1 ; 0 1 1 1 ; 0 1 1 1 ; 0 1 1 1; 1 1 1 1];
%chico %chico %mediano %mediano %grande %mega
tpmotor = [0 0 0 0 1 1]; % primer motor tsmotor = [0 0 1 1 0 1]; % segundo motor t = tpmotor; W = 2*rand(1,6)1;b = 2*rand(1)1; for Epocas = 1:500 for q = 1:6 a= hardlim(W*P(:,q) + b); e(q) = t(q) - a; W = W + e(q)*P(:,q)'; b = b + e(q); end end
Simulación
Conclusión Para estos ejercicios realizados fue una gran ayuda para adquirir la habilidad de resolver problemas que impliquen el uso de redes neuronales. Lo aprendido en esta práctica será definitivamente aplicado para diseñar y construir el robot.
View more...
Comments