Sei sulla pagina 1di 15

UNIVERSIDADE FEDERAL DO PARAN

PROGRAMA DE PS-GRADUAO EM METODOS NUMERICOS EM


ENGENHARIA - PPGMNE
DISCIPLINA: INTRODUO REDES NEURAIS ARTIFICIAIS
DOCENTE: RICARDO ALMEIDA
MESTRANDO: EDSON AMADO DA SILVA JUNIOR

RELATRIO N 1 DA DISCIPLINA INTRODUO REDES NEURAIS


ARTIFICIAS

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.

Palavras Chaves: Redes Neurais, Perceptron, Taxa de Aprendizagem, classificao.

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.

KEY WORDS: NEURAL NETWORKING, PERCEPTRON, BIAS, CLASSIFICATION,


LEARNING RATE.

LISTA DE TABELAS

Tabela 1: Valores do treinamento para dados no normalizados ............................... 3


Tabela 2:Valores do treinamento para dados normalizados ....................................... 3
Tabela 3: Valores do treinamento com taxas de aprendizagem diferentes ............................. 4
Tabela 4: Classificao da Rede ...................................................................................... 5
Tabela 5: Classificao dos dados de treinamento .............................................................. 5

SUMRIO
1.

INTRODUO ................................................................................................................................... 1

2.

DESENVOLVIMENTO......................................................................................................................... 1

3.

2.1

IMPLEMENTAO DO ALGORITMO ........................................................................................ 1

2.2

TREINAMENTO DA REDE ......................................................................................................... 3

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

As redes Neurais Artificiais (RNA) uma tcnica que imita o comportamento do


crebro humano. uma estrutura maciamente paralela com a habilidade de
generalizao, ou seja, pode produzir sadas adequadas para entradas que no
estavam presentes durante o treinamento (Ludwig Jr., e Costa 2007).
Por esse motivo ela muito utilizada em problemas onde se deseja classificar
determinados padres. Para utilizar desta caracterstica das (RNAs) ser
implementado neste trabalho o primeiro exerccio da disciplina Introduo Redes
Neurais Artificiais do programa de ps graduao em Mtodos Numricos em
Engenharia.
Este exerccio consiste em programar uma (RNA) tipo Perceptron com 1 neurnios
para a classificao de leos em duas classes distintas a partir da analise de trs
parmetros de entrada.
Aps a analisar estes dados e implementar a (RNA), ela dever atuar como uma
caixa preta, que ir receber um conjunto de dados de entrada e processar um
conjunto de dados de sada que neste caso a classificao do leo.

2. DESENVOLVIMENTO

2.1 IMPLEMENTAO DO ALGORITMO

Para realizar o exerccio 1 foi implementado pelo autor do presente trabalho o


algoritmo de treinamento da

Rede Neural Artificial Perceptron Supervisionada,

seguindo como base o esquemtico do livro texto, utilizado em sala, como


apresentado no Algoritmo 1. Porm o algoritmo foi adaptado para o problema
proposto, que consiste em uma ADALINE com varias entradas e varias sadas,
diferentemente do algoritmo 1 que para uma ADALINE com varias entradas e uma
(1) sada.

ALGORITMO 1: ALGORITMO DE TREINAMENTO

A implementao foi realizada utilizando o software de processamento numrico


MatLab 2011b, seguindo as restries do trabalho de no se utilizar nenhuma
biblioteca e/ou ToolBox de Redes Neurais Artificiais. As linhas de cdigos utilizadas
para representar computacionalmente a Rede Neural Artificial em questo esta
disponvel nos Apndices.
Para os valores iniciais dos pesos e do bias, foram gerados valores aleatrios entre 0 e 1. O valor utilizado para a taxa de treinamento foi inicialmente de 0.1, levando
em considerao que o valor utilizado influencia diretamente a eficincia e a
convergncia do algoritmo. Sendo que um valor muito pequeno pode fazer com que
o treinamento da rede se torne lento.

2.2 TREINAMENTO DA REDE

A rede Neural implementada computacionalmente foi treinada varias vezes, para


que se pudesse realizar uma comparao entre os valores finais dos pesos e bias e
verificar o numero de pocas que a rede necessitou para convergir. A tabela 1 exibe
os valores de pesos e bias iniciais e finais alm do numero de pocas necessrio
para que a rede convergisse. Vale ressaltar que os valores da tabela 1 so para os
dados de entrada sem a normalizao.
Tabela 1: Valores do treinamento para dados no normalizados

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

Utilizando os mesmos parmetros estabelecidos para rede, porm com os dados de


entrada normalizados, foram realizados outros 5 treinamentos, onde os valores
encontrados para pesos, bias e pocas so exibidos pela tabela 2.
Tabela 2:Valores do treinamento para dados normalizados

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

Os 5 treinamentos realizados para os dados normalizados e para os dados no


normalizados foram executados com o valor fixo da taxa de treinamento em 0.1, a
tabela 3 mostra os valores encontrados com valores diferentes da taxa de
treinamento.

Tabela 3: Valores do treinamento com taxas de aprendizagem diferentes

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

Para realizar a classificao o cdigo faz a leitura dos pesos encontrados no


treinamento. Em sequencia recebe os dados de entrada dos leos a serem
classificados e realiza o calculo de (u). Por fim aplica-se este resultado funo de
limiar bipolar, sendo que se a sada calculada do neurnio resultar em um valor
inferior a zero, o valor final da sada ser -1 sendo associado a este valor os leos
da classe 2 e se a sada calculada resultar em um valor maior ou igual a zero o valor
da sada do neurnio ser 1, associando a este valor os leos da classe 1. A tabela
4

4 exibe a classificao de todos os treinamentos, pode-se observar que para todos


os treinamentos, normalizados, no normalizados e com taxas de aprendizagem a
rede classificou os dados da mesma forma.
Tabela 4: Classificao da Rede

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

Observa-se pela tabela 5 que a rede classificou corretamente 27 dos 30 dados de


entrada, totalizando em um rendimento de 90% nesta classificao.

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

Fausett L._Fundamentals of Neural Networks Architectures, Algorithms, and


Applications 1994.
HAYKIN, S. Neural Networks a Comprehensive Foundation. Macmillam College
Publishing Company, New York, 1994,
LUDWIG JR., O. e COSTA, EDUARD MONTGOMERY M. REDES NEURAIS:
FUNDAMENTOS E APLICAES COM PROGRAMAS EM C. RIO DE JANEIRO:
EDITORA CINCIA MODERNA LTDA. 2007

UNIVERSIDADE FEDERAL DO PARAN. Sistemas de Bibliotecas. REFERNCIAS.


Curitiba: Editora UFPR, 2007. (Normas para apresentao de documentos
cientficos, 4)

UNIVERSIDADE FEDERAL DO PARAN. Sistemas de Bibliotecas. RELATRIOS.


Curitiba: Editora UFPR, 2007. (Normas para apresentao de documentos
cientficos, 5)

UNIVERSIDADE FEDERAL DO PARAN. Sistemas de Bibliotecas. Teses,


dissertaes, monografias e outros trabalhos acadmicos. Curitiba: Editora
UFPR, 2007. (Normas para apresentao de documentos cientficos, 2)

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

soma = x(i,:)* pesos';

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);

APNDICE 2: PROGRAMA DE CLASSIFICAO


%faz a leitura dos dados a serem classificados
xo=load('dopera.txt');
%inicio da classificao
for i=1:size(x,1)
u= x(i,:)* pesos';
if u > limiar
y(i)=1
disp('classe1')
elseif u==limiar
y(i)=1
disp('classe1')
elseif u<limiar
y(i)=-1
disp('classe 2')
end
u=0;
end
fid = fopen('trab 1f.txt','wt');
fprintf(fid,'------------------------------classificao-------------------------\n\n');
fprintf(fid,' %d',y);
fprintf(fid,'\n------------------------------classificao-------------------------\n\n');
fprintf(fid,' %d',y);fprintf(fid,'------------------------------real-------------------------\n\n');
fprintf(fid,' %d',d);
fclose(fid)

10

Potrebbero piacerti anche