1º Trabalho IA Perceptron
-
Upload
leandro-brigo-antunes -
Category
Documents
-
view
128 -
download
106
description
Transcript of 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
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;
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.
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.