Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Curitiba
2015
RESUMO
Redes Neurais Artificiais (RNA) veem se mostrando uma tima ferramenta para
solucionar problemas nas mais diversas reas da engenharia e cincias aplicadas,
pois consegue solucionar gargalos onde mtodos tradicionais so limitados e
ineficientes. Neste trabalho apresentado a implementao de uma Rede Neural
Artificial Perceptron supervisionado. Est (RNA) utilizada na classificao de leos
em duas classes distintas utilizando trs variveis de entrada como parmetros.
ABSTRACT
Artificial Neural Networks (ANN) proves to be an excellent tool for solving problems in
several areas of engineering and applied sciences, because it can solve bottlenecks
where traditional methods are limited and inefficient. This work presents the
implementation of an Artificial Neural Network Perceptron supervised. using the delta
rule with multiple inputs and multiple outputs. This (RNA) is used in the classification
of oils into two distinct classes using three input variables as parameters.
LISTA DE TABELAS
SUMRIO
1.
INTRODUO ................................................................................................................................... 1
2.
DESENVOLVIMENTO......................................................................................................................... 1
3.
2.1
2.2
2.3
CLASSIFICAO........................................................................................................................ 4
CONCLUSO ..................................................................................................................................... 6
REFERNCIAS ............................................................................................................................................ 7
APNDICE ................................................................................................................................................. 8
APNDICE 1: PROGRAMA PRINCIPAL DE TREINAMENTO ................................................................... 8
APNDICE 2: PROGRAMA DE CLASSIFICAO................................................................................... 10
1. INTRODUO
2. DESENVOLVIMENTO
Treinamento
1
2
3
4
5
Treinamento
1
2
3
4
5
Pesos Iniciais
5,978E-02
1,540E-02
7,317E-01
2,963E-01
1,835E-01
Pesos Finais
1,66E+01
2,55E+01
1,57E+01
2,56E+01
1,60E+01
2,50E+01
1,57E+01
2,56E+01
1,63E+01
2,56E+01
5,752E-01
8,212E-01
6,491E-01
5,470E-01
6,868E-01
2,348E-01
4,302E-02
6,477E-01
7,447E-01
3,685E-01
-7,55E+00
-7,33E+00
-7,42E+00
-7,33E+00
-7,58E+00
Bias Inicial
3,532E-01
1,690E-01
4,509E-01
1,890E-01
6,256E-01
Bias Final
Epocas
315.532
360
3,20E+01
361
3,11E+01
344
3,20E+01
364
3,18E+01
368
Treinamento
1
2
3
4
5
Treinamento
1
2
3
4
5
Pesos Iniciais
8,11E-02
5,87E-01
2,30E-01
1,71E-01
9,23E-01
Pesos Finais
1,72E+00
1,10E+00
3,10E+00
1,98E+00
2,10E+00
1,35E+00
1,48E+00
9,37E-01
2,15E+00
1,33E+00
7,80E-01
6,22E-01
4,71E-01
2,26E-01
3,11E-01
9,29E-01
2,08E-01
8,44E-01
2,28E-01
4,30E-01
-2,14E+00
-3,88E+00
-2,65E+00
-1,83E+00
-2,61E+00
Bias Inicial
7,76E-01
3,01E-01
1,95E-01
4,36E-01
1,85E-01
Bias Final
Epocas
1,76E-01
54
3,01E-01
185
1,95E-01
93
1,36E-01
45
1,85E-01
89
Treinamento
1
2
3
4
5
Treinamento
1
2
3
4
5
9,05E-01
8,05E-01
8,87E-01
6,96E-01
6,88E-02
3,53E-01
4,07E-01
2,29E-01
9,05E-01
1,36E+01
Pesos Iniciais
6,10E-01
5,77E-01
2,87E-02
7,00E-01
3,20E-01
Pesos Finais
2,54E-01
2,96E-01
1,42E-01
5,73E-01
8,90E+00
6,18E-01
1,83E-01
4,90E-01
6,39E-01
5,31E-01
-4,30E-01
-4,98E-01
-2,88E-01
-1,08E+00
-1,61E+01
Bias Inicial
Taxa
8,59E-01 0.0001
2,40E-01
0.001
1,68E-01
0.01
3,36E-02
0.1
6,54E-01
1
Bias Final
Epocas
2,54E-02
152
2,99E-02
99
1,79E-02
12
3,36E-02
11
6,54E-01
27
2.3 CLASSIFICAO
O programa de operao da rede foi implementado seguindo como padro o
algoritmo do livro texto, sendo que o mesmo foi adaptado para o problema tratado
que consiste de uma rede de varias entradas e varias sadas. O algoritmo 2
exemplifica o cdigo implementado.
ALGORITMO 2: Classificao
Classificao da Rede
Amostra Classe (1) Classe (2)
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
9
x
10
x
Para realmente testar se a rede estava realizando a classificao dos dados, foi
realizado a classificao para os dados de entrada utilizados no processo de
treinamento da rede. A classificao mostrada pela tabela 5.
Tabela 5: Classificao dos dados de treinamento
Amostra
Real
Perceptron
Comparao
Amostra
Real
Perceptron
Comparao
Amostra
Real
Perceptron
Comparao
1
-1
-1
ok
11
-1
-1
ok
21
-1
-1
ok
2
-1
-1
ok
12
1
1
ok
22
1
1
ok
3
4
-1
1
-1
1
ok ok
13 14
-1 -1
-1 -1
ok ok
23 24
1
-1
1
1
ok No
5
1
1
ok
15
-1
-1
ok
25
1
1
ok
6
-1
-1
ok
16
-1
-1
ok
26
-1
-1
ok
7
8
9
10
1
-1
1
1
1
-1
1
1
ok ok ok ok
17 18 19 20
1
-1
1
1
1
1
1
1
ok No 1
1
27 28 29 30
-1
1
-1 -1
-1
1
-1
1
ok ok ok No
3. CONCLUSO
Durante a execuo do presente trabalho, foram executados inmeros treinamentos
da rede neural artificial ADALINE, realizando analise de sensibilidade dos
parmetros, como: Taxa de aprendizado, valores aleatrios iniciais dos pesos e bias.
Notou-se que o valor definido para taxa de aprendizagem afeta diretamente o tempo
de treinamento da rede e que um valor no adequado para esta taxa pode levar a
um treinamento prematuro da rede.
Este trabalho possibilitou a percepo que quantidade de pocas necessrias para a
convergncia da rede diretamente proporcional aos valores estabelecidos para os
pesos, taxa de aprendizagem e bias.
Com ocorreu uma convergncia da rede pode-se afirmar que a mesma
linearmente separvel, o que no ocorreria se a rede divergisse onde seria
necessrio estipular um numero mximo de pocas como critrio de paragem.
REFERNCIAS
APNDICE
APNDICE 1: PROGRAMA PRINCIPAL DE TREINAMENTO
%% SCRIPT Inicializao das variaveis
%carrega os padroes de entrada na variavel dados
clear all
clc
n_neuronios=1;
%faz a leitura dos dados de entrada
x=load('dtreino.txt');
%o vetor d recebe os valores target
d=x(:,4);
%retira os valores target da matriz x
x=x(:,1:3);
%normalizao dos dados
xm=mean(x);
desv=std(x);
tam=size(x);
for j=1:tam(2)%coluna
for i=1:tam(1)%linha
x(i,j)= (x(i,j)-xm(j))/(2*desv(j));
end
end
n_x=3;
alpha=.01;
limiar=0;
epocas=0;
%inicializa pesos
for i=1:n_neuronios
for j=1:n_x
pesos(i,j)=rand (1);
end
end
%salva os valores em um txt
fid = fopen('trab 1.txt','wt');
fprintf(fid,'------------------------------Pesos iniciais-------------------------\n\n');
fprintf(fid,' %d',pesos);
fprintf(fid,' \n');
n_dados=size(x,1);
%inicializao dos bias
for i=1:n_neuronios
b(i)=rand (1);
end
fprintf(fid,'------------------------------Bias iniciail-------------------------\n\n');
fprintf(fid,' %d',b);
fprintf(fid,' \n');
aa=0;
pesoant=pesos;
%inicio do processo de treinamento
while(epocas<100000)
cont=0;
for i=1:n_dados
y_in= b+soma;
if y_in > limiar
y=1;
elseif y_in ==limiar
y=0;
elseif y_in<limiar
y=-1;
end
y;
if y == d(i)
disp('lh')
else
cont=cont+1;
disp('h')
for j=1:n_x
pesos(1,j)=pesos(1,j)+alpha*(d(i)-y)*x(i,j);
b=b+alpha*d(i);
end
epocas;
end
end
pesos;
epocas=epocas+1
if cont == 0
break;
end
pesoant=pesos;
end
fprintf(fid,'------------------------------Pesos Finais-------------------------\n\n');
fprintf(fid,' %d ',pesos);
fprintf(fid,' \n');
fprintf(fid,'------------------------------Epocas-------------------------\n\n');
fprintf(fid,' %d ',epocas);
fprintf(fid,' \n');
fprintf(fid,'------------------------------Bias final-------------------------\n\n');
fprintf(fid,' %d ',b);
fprintf(fid,' \n');
fclose(fid);
10