1º Trabalho IA Perceptron

4
UNIVERSIDADE FEDERALDO TRIÂNGULO MINEIRO Instituto De Ciências Tecnológicas e Exatas Leandro Brigo Antunes (201110828) Vítor Domingues de Faria (201110858) . . . Trabalho Perceptron Profº Virgílio de Melo Langoni Disciplina: Inteligência Artificil Uberaba-MG 27/08/2015

description

Trabalho de IA

Transcript of 1º Trabalho IA Perceptron

Page 1: 1º Trabalho IA Perceptron

UNIVERSIDADE FEDERALDO TRIÂNGULO MINEIRO

Instituto De Ciências Tecnológicas e Exatas

Leandro Brigo Antunes (201110828)

Vítor Domingues de Faria (201110858)

.

.

.

Trabalho Perceptron

Profº Virgílio de Melo Langoni

Disciplina: Inteligência Artificil

Uberaba-MG

27/08/2015

Page 2: 1º Trabalho IA Perceptron

Pela análise de um processo de destilação fracionada de petróleo observou-se que

determinado óleo poderia ser classificado em duas classes de purezas {P1 e P2} a partir da

medição de três grandezas {X1, X2 e X3}, que representam algumas de suas propriedades físico-

químicas. A equipe de engenheiros e cientistas pretende usar uma rede Perceptron para executar

a classificação automática das duas classes.

Assim, baseado nas informações coletadas do processo, formou-se o conjunto de

treinamento apresentado no Apêndice I, tomando por convenção o valor – 1 para óleo pertencente

à classe P1 e o valor 1 para óleo pertencente à classe P2.

Para tanto, o neurônio constituinte do Perceptron terá então três entradas e uma saída conforme

ilustrado na figura 3.8.

Utilizando o algoritmo supervisionado de Hebb (regra de Hebb) para classificação de

padrões, e assumindo-se a taxa de aprendizagem como 0,01, faça as seguintes atividades:

1) Execute cinco treinamentos para a rede Perceptron, iniciando-se o vetor de pesos {W}

em cada treinamento com valores aleatórios entre zero e um. Se for o caso, reinicie o gerador de

números aleatórios em cada treinamento de tal forma que os elementos do vetor de pesos iniciais

não sejam os mesmos. O conjunto de treinamento encontra-se no apêndice 1.

//Trabalho perceptron

//Declarando valores de entrada

x = [-0.6508 0.1097 4.009 ;

-1.4492 0.8896 4.405 ;

2.0850 0.6876 12.0710 ;

0.2626 1.1476 7.7985 ;

0.6418 1.0234 7.0427 ;

0.2569 0.6730 8.3265;

1.1155 0.6043 7.4446;

0.0914 0.3399 7.0677;

0.0121 0.5256 4.6316;

-0.0429 0.4660 5.4323;

0.4340 0.6870 8.2287;

0.2735 1.0287 7.1934;

0.4839 0.4851 7.4850;

0.4089 -0.1267 5.5019;

1.4391 0.1614 8.5843;

-0.9115 -0.1973 2.1962;

0.3654 1.0475 7.4858;

0.2144 0.7515 7.1699;

0.2013 1.0014 6.5489;

0.6483 0.2183 5.8991;

-0.1147 0.2242 7.2435;

-0.7970 0.8795 3.8762;

-1.0625 0.6366 2.4707;

0.5307 0.1285 5.6883;

-1.2200 0.7777 1.7252;

0.3957 0.1076 5.6623;

-0.1013 0.5989 7.1812;

2.4482 0.9455 11.2095;

Page 3: 1º Trabalho IA Perceptron

2.0149 0.6192 10.9263;

0.2012 0.2611 5.4631];

//Declarando valores de saída desejados

d = [-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];

//Gerando pesos aleattórios

W = (rand(1,3));

//Taxa de aprendizagem

n = 0.01;

//DDeclarando valor do erro

e = 0.0001;

//Declarando Limiar de ativação

l = (rand(1,3))

// Declarando numero maximo de epocas

maxepocas = 300

function y1=ypercep(x, W, b)

u=W*x + b;

for i=1:(length(W(:,1))*length(x(1,:)))

if (u(i) >= 0) then

y1(i)=1;

else

y1(i)=-1;

end;

end

y1=y1';

endfunction

function [W, b, erroepoca]=train(W, b, x, y, n, maxepocas, e)

erroepoca=[];

t=1;

Erro= e;

while(maxepocas>=t)&(Erro>= e )

Erro=0;

for i=1:size(w,2)

y1 = ypercep(W,b,xin(i));

dif = y(i)-y1;

w=w + (n*dif)*x(:,i)';

b=b+n*dif;

Erro=Erro + (dif)^2;

end

erroepoca=[erroepoca Erro];

t=t+1;

end

endfunction

2) Registre os resultados dos cincos treinamentos na tabela 3.2 apresentada a seguir.

Page 4: 1º Trabalho IA Perceptron

Valor de pesos iniciais

Valor de Pesos

finais

Treinamento

w0 w1 w2 w3 w0 w1 w2 w2 Épocas

1ª 1 0.9 0.9 0.9 -1 0.517 0.8836 -0.2439 95

2ª 1 0.2 0.3 0.1 -1 0.4345 0.644 -0.219 188

3ª 1 0.9 0.8 0.7 -1 0.552 0.8239 -0.2401 65

4ª 1 0.6 0.1 0.2 -1 0.4357 0.64 0.2195 216

5ª 1 0.1 0.5 0.9 -1 0.4386 0.64 0.2197 147

Tabela 3.2- Resultados dos treinamentos do Perceptron.

3) Após o treinamento do Perceptron, coloque o mesmo em operação, aplicando na

classificação automática das amostras de óleo da tabela 3.3, indicando ainda nesta tabela aqueles

resultados das saídas (Classes) referentes aos cinco processos de treinamento realizados no item

1.

Amostra x1 x2 x3 T1 T2 T3 T4 T5

1 5.989 0.062 5.989 -1 -1 -1 -1 -1

2 0.7842 1.126 5.591 1 1 1 1 1

3 0.3012 0.5611 5.823 1 1 1 1 1

4 0.7757 1.064 8.067 1 1 1 1 1

5 0.157 0.8028 6.304 1 1 1 1 1

6 -0.7014 1.031 3.660 1 1 1 1 1

7 0.3748 0.1536 6.153 -1 -1 -1 -1 -1

8 -0.692 0.9494 4.405 1 1 1 1 1

9 -1.397 0.7141 4.926 -1 -1 -1 -1 -1

10 -1.884 -0.2805 1.254 -1 -1 -1 -1 -1

Tabela 3.3 – Amostras de óleo para validar a rede Perceptron.

4) Explique porque o número de épocas de treinamento em relação a esta aplicação, varia

a cada vez que executamos o treinamento perceptron.

R. Um peso aleátorio é gerado a cada vez que iniciamos o treinamento, fazendo com que

o número de épocas mude.