Você está na página 1de 14

Universidade Federal de Mato Grosso do Sul UFMS Centro de Cincias Exatas e Tecnologia CCET Departamento de Engenharia Eltrica DEL

DEL Programa de Ps-graduao em Engenharia Eltrica PPGEE Redes Neurais Artificiais Teoria e Aplicaes

REDESNEURAISARTIFICIAISTEORIAEAPLICAES PROF.DRA.LUCIANACAMBRAIALEITE

Trabalho 02 Perceptron

RaphaelCeniGomez
CampoGrandeMS 13deAbrilde2011

Universidade Federal de Mato Grosso do Sul UFMS Centro de Cincias Exatas e Tecnologia CCET Departamento de Engenharia Eltrica DEL Programa de Ps-graduao em Engenharia Eltrica PPGEE Redes Neurais Artificiais Teoria e Aplicaes

OBJETIVOS - 1 Para os seguintes dados de treinamento:

Plote os dados em um espao caracterstico. Obtenha os pesos e bias que separam os dados acima utilizando a regra de treinamento perceptron. Utilize w(0)=[-.25 .25] e Wb(0)=-1 como valores iniciais. Escreva a expresso para a fronteira de deciso resultante e desenhe-a no grfico.

RESULTADOS - 1

A seguir apresentado o arquivo em M-FILE que executa as aes acima mencionadas a fim de alcanar tais objetivos. O arquivo quando executado permite entra com os padres acima, e as sadas desejadas. Foi utilizado um taxa de aprendizagem alpha de 0,2. O cdigo executa a atualizao dos pesos quando necessria. Ao final gera grficos e quando possvel, traa um reta que separa os pontos linearmente. O arquivo M-FILE assim como sua execuo esto presentes a seguir:

Universidade Federal de Mato Grosso do Sul UFMS Centro de Cincias Exatas e Tecnologia CCET Departamento de Engenharia Eltrica DEL Programa de Ps-graduao em Engenharia Eltrica PPGEE Redes Neurais Artificiais Teoria e Aplicaes

%UNIVERSIDADE FEDERAL DO MATO GROSSO DO SUL = UFMS %PROGRAMA DE PS GRADUAO EM ENGENHARIA ELTRICA %Redes Neurais Artificias - Teoria e Aplicaes %Prof. Dra. Luciana Cambraia Leite. %Autor: Raphael Ceni Gomez % Cdigo desenvolvido para um Perceptron clc clear %Define os padres, sadas, pesos iniciais, bias e o alpha. p=[0 0;0 1;1 0;1 1] t=[0 0 1 1] w=[-.25;.25] wb=-1 alpha=0.2 for k=1:50 sprintf('%g poca:',k) for i=1:4 condicao(i)=p(i,:)*w; sprintf('p1 x w1 + p2 x w2 = %g x %g + %g x %g = %g',p(i,1),w(1),p(i,2),w(2),condicao(i)) if condicao(i)>1 y(i)=1; disp('y=1') else y(i)=0; disp('y=0') end if y(i)==t(i) w=w; disp('y=t') disp('Atende a condio') else w1=w(1)+alpha*(t(i)-y(i))*p(i,1); w2=w(2)+alpha*(t(i)-y(i))*p(i,2); w=[w1 ;w2]; disp('No atende, recalcular os pesos!') sprintf('w1_new = w1_old + alpha x (t(%g) - y(%g)) x p(%g , 1) = %g + %g x (%g - %g) x %g = %g',i,i,i,w(1),alpha,t(i),y(i),p(i,1),w1) sprintf('w2_new = w2_old + alpha x (t(%g) - y(%g)) x p(%g , 2) = %g + %g x (%g - %g) x %g = %g',i,i,i,w(2),alpha,t(i),y(i),p(i,2),w2)

Universidade Federal de Mato Grosso do Sul UFMS Centro de Cincias Exatas e Tecnologia CCET Departamento de Engenharia Eltrica DEL Programa de Ps-graduao em Engenharia Eltrica PPGEE Redes Neurais Artificiais Teoria e Aplicaes

end wn(:,k)=w; disp('w1 e w2') disp(wn(:,k)) end if k==1 elseif wn(:,k-1)==w break else end end disp('Nmero de geraes: '); disp(k) disp('Pesos: ') disp(wn) plot1(1)=plot(p(1,2),p(1,1),'MarkerSize',10,'LineStyle','none'); hold on plot1(2)=plot(p(2,2),p(2,1),'MarkerSize',10,'LineStyle','none'); hold on plot1(3)=plot(p(3,2),p(3,1),'MarkerSize',10,'LineStyle','none'); hold on plot1(4)=plot(p(4,2),p(4,1),'MarkerSize',10,'LineStyle','none'); hold on for i=1:4 if t(i)==1 set(plot1(i),'MarkerFaceColor',[1 0 0],'Marker','^','Color',[1 0 0]); else set(plot1(i),'MarkerFaceColor',[0 0 1],'Marker','o','Color',[0 0 1]); end end

x2=[0:.1:1]; x1=(1-w2*x2)/w1 plot(x2,x1);

EXECUO


p =0 0 1 1 t =0 w= -0.2500 0.2500 wb = -1 0 1 0 1 0 1

Universidade Federal de Mato Grosso do Sul UFMS Centro de Cincias Exatas e Tecnologia CCET Departamento de Engenharia Eltrica DEL Programa de Ps-graduao em Engenharia Eltrica PPGEE Redes Neurais Artificiais Teoria e Aplicaes

alpha = 0.2000 1 poca: p1 x w1 + p2 x w2 = 0 x -0.25 + 0 x 0.25 = 0 y=0 y=t Atende a condio w1 e w2 -0.2500 0.2500

p1 x w1 + p2 x w2 = 0 x -0.25 + 1 x 0.25 = 0.25 y=0 y=t Atende a condio w1 e w2 -0.2500 0.2500

Universidade Federal de Mato Grosso do Sul UFMS Centro de Cincias Exatas e Tecnologia CCET Departamento de Engenharia Eltrica DEL Programa de Ps-graduao em Engenharia Eltrica PPGEE Redes Neurais Artificiais Teoria e Aplicaes

p1 x w1 + p2 x w2 = 1 x -0.25 + 0 x 0.25 = -0.25 y=0 No atende, recalcular os pesos! w1_new = w1_old + alpha x (t(3) - y(3)) x p(3 , 1) = -0.05 + 0.2 x (1 - 0) x 1 = -0.05 w2_new = w2_old + alpha x (t(3) - y(3)) x p(3 , 2) = 0.25 + 0.2 x (1 - 0) x 0 = 0.25 w1 e w2 -0.0500 0.2500

p1 x w1 + p2 x w2 = 1 x -0.05 + 1 x 0.25 = 0.2 y=0 No atende, recalcular os pesos! w1_new = w1_old + alpha x (t(4) - y(4)) x p(4 , 1) = 0.15 + 0.2 x (1 - 0) x 1 = 0.15 w2_new = w2_old + alpha x (t(4) - y(4)) x p(4 , 2) = 0.45 + 0.2 x (1 - 0) x 1 = 0.45 w1 e w2 0.1500 0.4500

Primeira Gerao foi mostrada s como demonstrao passo-a-passo. Abaixo segue o resumo.

Nmero de geraes: 6

Universidade Federal de Mato Grosso do Sul UFMS Centro de Cincias Exatas e Tecnologia CCET Departamento de Engenharia Eltrica DEL Programa de Ps-graduao em Engenharia Eltrica PPGEE Redes Neurais Artificiais Teoria e Aplicaes

Pesos: 0.1500 0.4500 x1 = Columns 1 through 9 0.8696 0.8130 0.7565 0.7000 0.6435 0.5870 0.5304 0.4739 0.4174 0.5500 0.6500 0.7500 0.6500 0.9500 0.6500 1.1500 0.6500 1.1500 0.6500

Columns 10 through 11 0.3609 0.3043

GRFICOS - 1

Universidade Federal de Mato Grosso do Sul UFMS Centro de Cincias Exatas e Tecnologia CCET Departamento de Engenharia Eltrica DEL Programa de Ps-graduao em Engenharia Eltrica PPGEE Redes Neurais Artificiais Teoria e Aplicaes

OBJETIVOS - 2 Para os seguintes dados de treinamento:

Mostre matematicamente que o problema dado no linearmente separvel. Aplique a regra de aprendizagem seguindo o mesmo procedimento do exerccio 1. Descreva suas observaes.

RESULTADOS - 2

Para este problema foi utilizado o mesmo M-FILE, modificando somente a sada desejada. Como o cdigo ficou bastante completo, foi possvel analisar passo a passo da resoluo como pode ser visto a seguir. Os mesmos valores de alpha e pesos iniciais foram utilizados. Para melhor entendimento, a execuo foi focada na parte em que nota-se que o problema no linearmente separvel. A mudana no arquivo M-FILE assim como sua execuo esto presentes a seguir:
t=[0 1 1 0] ao invs de t=[0 0 1 1]

EXECUO

Universidade Federal de Mato Grosso do Sul UFMS Centro de Cincias Exatas e Tecnologia CCET Departamento de Engenharia Eltrica DEL Programa de Ps-graduao em Engenharia Eltrica PPGEE Redes Neurais Artificiais Teoria e Aplicaes

p =0 0 1 1 t= 0 w=

0 1 0 1

-0.2500 0.2500 wb = -1 alpha = 0.2000 1 poca: p1 x w1 + p2 x w2 = 0 x -0.25 + 0 x 0.25 = 0 y=0 y=t Atende a condio p1 x w1 + p2 x w2 = 0 x -0.25 + 1 x 0.25 = 0.25 y=0 No atende, recalcular os pesos! w1_new = w1_old + alpha x (t(2) - y(2)) x p(2 , 1) = -0.25 + 0.2 x (1 - 0) x 0 = -0.25 w2_new = w2_old + alpha x (t(2) - y(2)) x p(2 , 2) = 0.45 + 0.2 x (1 - 0) x 1 = 0.45 p1 x w1 + p2 x w2 = 1 x -0.25 + 0 x 0.45 = -0.25 y=0 No atende, recalcular os pesos!

Universidade Federal de Mato Grosso do Sul UFMS Centro de Cincias Exatas e Tecnologia CCET Departamento de Engenharia Eltrica DEL Programa de Ps-graduao em Engenharia Eltrica PPGEE Redes Neurais Artificiais Teoria e Aplicaes

w1_new = w1_old + alpha x (t(3) - y(3)) x p(3 , 1) = -0.05 + 0.2 x (1 - 0) x 1 = -0.05 w2_new = w2_old + alpha x (t(3) - y(3)) x p(3 , 2) = 0.45 + 0.2 x (1 - 0) x 0 = 0.45 p1 x w1 + p2 x w2 = 1 x -0.05 + 1 x 0.45 = 0.4 y=0 y=t Atende a condio 2 poca: p1 x w1 + p2 x w2 = 0 x -0.05 + 0 x 0.45 = 0 y=0 y=t Atende a condio p1 x w1 + p2 x w2 = 0 x -0.05 + 1 x 0.45 = 0.45 y=0 No atende, recalcular os pesos! w1_new = w1_old + alpha x (t(2) - y(2)) x p(2 , 1) = -0.05 + 0.2 x (1 - 0) x 0 = -0.05 w2_new = w2_old + alpha x (t(2) - y(2)) x p(2 , 2) = 0.65 + 0.2 x (1 - 0) x 1 = 0.65 p1 x w1 + p2 x w2 = 1 x -0.05 + 0 x 0.65 = -0.05 y=0 No atende, recalcular os pesos! w1_new = w1_old + alpha x (t(3) - y(3)) x p(3 , 1) = 0.15 + 0.2 x (1 - 0) x 1 = 0.15 w2_new = w2_old + alpha x (t(3) - y(3)) x p(3 , 2) = 0.65 + 0.2 x (1 - 0) x 0 = 0.65 p1 x w1 + p2 x w2 = 1 x 0.15 + 1 x 0.65 = 0.8 y=0 y=t Atende a condio 3 poca: p1 x w1 + p2 x w2 = 0 x 0.15 + 0 x 0.65 = 0


y=0 y=t

Universidade Federal de Mato Grosso do Sul UFMS Centro de Cincias Exatas e Tecnologia CCET Departamento de Engenharia Eltrica DEL Programa de Ps-graduao em Engenharia Eltrica PPGEE Redes Neurais Artificiais Teoria e Aplicaes

Atende a condio p1 x w1 + p2 x w2 = 0 x 0.15 + 1 x 0.65 = 0.65 y=0 No atende, recalcular os pesos! w1_new = w1_old + alpha x (t(2) - y(2)) x p(2 , 1) = 0.15 + 0.2 x (1 - 0) x 0 = 0.15 w2_new = w2_old + alpha x (t(2) - y(2)) x p(2 , 2) = 0.85 + 0.2 x (1 - 0) x 1 = 0.85 p1 x w1 + p2 x w2 = 1 x 0.15 + 0 x 0.85 = 0.15 y=0 No atende, recalcular os pesos! w1_new = w1_old + alpha x (t(3) - y(3)) x p(3 , 1) = 0.35 + 0.2 x (1 - 0) x 1 = 0.35 w2_new = w2_old + alpha x (t(3) - y(3)) x p(3 , 2) = 0.85 + 0.2 x (1 - 0) x 0 = 0.85 p1 x w1 + p2 x w2 = 1 x 0.35 + 1 x 0.85 = 1.2 y=1 No atende, recalcular os pesos! w1_new = w1_old + alpha x (t(4) - y(4)) x p(4 , 1) = 0.15 + 0.2 x (0 - 1) x 1 = 0.15 w2_new = w2_old + alpha x (t(4) - y(4)) x p(4 , 2) = 0.65 + 0.2 x (0 - 1) x 1 = 0.65 4 poca: p1 x w1 + p2 x w2 = 0 x 0.15 + 0 x 0.65 = 0 y=0 y=t Atende a condio p1 x w1 + p2 x w2 = 0 x 0.15 + 1 x 0.65 = 0.65 y=0 No atende, recalcular os pesos! w1_new = w1_old + alpha x (t(2) - y(2)) x p(2 , 1) = 0.15 + 0.2 x (1 - 0) x 0 = 0.15

Universidade Federal de Mato Grosso do Sul UFMS Centro de Cincias Exatas e Tecnologia CCET Departamento de Engenharia Eltrica DEL Programa de Ps-graduao em Engenharia Eltrica PPGEE Redes Neurais Artificiais Teoria e Aplicaes

w2_new = w2_old + alpha x (t(2) - y(2)) x p(2 , 2) = 0.85 + 0.2 x (1 - 0) x 1 = 0.85 p1 x w1 + p2 x w2 = 1 x 0.15 + 0 x 0.85 = 0.15 y=0 No atende, recalcular os pesos! w1_new = w1_old + alpha x (t(3) - y(3)) x p(3 , 1) = 0.35 + 0.2 x (1 - 0) x 1 = 0.35 w2_new = w2_old + alpha x (t(3) - y(3)) x p(3 , 2) = 0.85 + 0.2 x (1 - 0) x 0 = 0.85 p1 x w1 + p2 x w2 = 1 x 0.35 + 1 x 0.85 = 1.2 y=1 No atende, recalcular os pesos! w1_new = w1_old + alpha x (t(4) - y(4)) x p(4 , 1) = 0.15 + 0.2 x (0 - 1) x 1 = 0.15 w2_new = w2_old + alpha x (t(4) - y(4)) x p(4 , 2) = 0.65 + 0.2 x (0 - 1) x 1 = 0.65

Nmero de geraes: 4 Pesos: -0.0500 0.4500 x1 = Columns 1 through 9 6.6667 6.2333 5.8000 5.3667 4.9333 4.5000 4.0667 3.6333 3.2000 0.1500 0.6500 0.1500 0.6500 0.1500 0.6500

Columns 10 through 11 2.7667 2.3333

GRFICOS - 2

Universidade Federal de Mato Grosso do Sul UFMS Centro de Cincias Exatas e Tecnologia CCET Departamento de Engenharia Eltrica DEL Programa de Ps-graduao em Engenharia Eltrica PPGEE Redes Neurais Artificiais Teoria e Aplicaes

GRFICOS 3 (Outras opes linearmente separveis)

Universidade Federal de Mato Grosso do Sul UFMS Centro de Cincias Exatas e Tecnologia CCET Departamento de Engenharia Eltrica DEL Programa de Ps-graduao em Engenharia Eltrica PPGEE Redes Neurais Artificiais Teoria e Aplicaes

CONCLUSO Este trabalho prova que uma rede neural do tipo perceptron limitada, s conseguindo separar pontos linearmente separveis, como o esperado. Para evitar esforo desnecessrio o exerccio proposto foi realizado em MATLAB, uma vez que possvel se aprender mais atravs da analise dos resultados, do que pelo calculo repetitivo. Mesmo assim, o primeiro exerccio foi realizado a mo para ter certeza de que o cdigo estava correto. O problema no exerccio 2 est no fato de que os pesos quando atualizados a partir da segunda poca mudam de valor e depois retornam ao inicial da poca. Dessa forma ele fica estagnado e a reta que ele gera no separa os pontos desejados. Uma dificuldade encontrada foi em um caso feito por curiosidade aonde as entradas sendo 0 e 0, e a sada sendo 1. Dessa forma, tem-se que: 0 x w1 + 0 x w2 >1 visto que no existe nmero que multiplique zero e resulte em um nmero maior que um, a nica sada foi usar uma porta NOT nas entradas e sadas para separa-los linearmente e posteriormente analisar os dados sabendo estarem invertidos.