redes neurais

15
UNIVERSIDADE FEDERAL DO PARANÁ PROGRAMA DE PÓS-GRADUAÇÃO EM METODOS NUMERICOS EM ENGENHARIA - PPGMNE DISCIPLINA: INTRODUÇÃO À REDES NEURAIS ARTIFICIAIS DOCENTE: RICARDO ALMEIDA MESTRANDO: EDSON AMADO DA SILVA JUNIOR RELATÓRIO Nº 1 DA DISCIPLINA INTRODUÇÃO À REDES NEURAIS ARTIFICIAS Curitiba 2015

Upload: edson-amado

Post on 07-Dec-2015

227 views

Category:

Documents


0 download

DESCRIPTION

Implementação de uma rede neural artificial perceptron para a classificação de vinhos em duas classes distintas.

TRANSCRIPT

UNIVERSIDADE FEDERAL DO PARANÁ PROGRAMA DE PÓS-GRADUAÇÃO EM METODOS NUMERICOS EM

ENGENHARIA - PPGMNE DISCIPLINA: INTRODUÇÃO À REDES NEURAIS ARTIFICIAIS

DOCENTE: RICARDO ALMEIDA MESTRANDO: EDSON AMADO DA SILVA JUNIOR

RELATÓRIO Nº 1 DA DISCIPLINA INTRODUÇÃO À 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 ciências aplicadas,

pois consegue solucionar gargalos onde métodos tradicionais são limitados e

ineficientes. Neste trabalho é apresentado a implementação de uma Rede Neural

Artificial Perceptron supervisionado. Está (RNA) é utilizada na classificação de óleos

em duas classes distintas utilizando três variáveis de entrada como parâmetros.

Palavras Chaves: Redes Neurais, Perceptron, Taxa de Aprendizagem, classificação.

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 não normalizados ............................... 3

Tabela 2:Valores do treinamento para dados normalizados ....................................... 3

Tabela 3: Valores do treinamento com taxas de aprendizagem diferentes ............................. 4

Tabela 4: Classificação da Rede ...................................................................................... 5

Tabela 5: Classificação dos dados de treinamento .............................................................. 5

SUMÁRIO

1. INTRODUÇÃO ................................................................................................................................... 1

2. DESENVOLVIMENTO ......................................................................................................................... 1

2.1 IMPLEMENTAÇÂO DO ALGORITMO ........................................................................................ 1

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

2.3 CLASSIFICAÇÃO ........................................................................................................................ 4

3. CONCLUSÃO ..................................................................................................................................... 6

REFERÊNCIAS ............................................................................................................................................ 7

APÊNDICE ................................................................................................................................................. 8

APÊNDICE 1: PROGRAMA PRINCIPAL DE TREINAMENTO ................................................................... 8

APÊNDICE 2: PROGRAMA DE CLASSIFICAÇÃO................................................................................... 10

1

1. INTRODUÇÃO

As redes Neurais Artificiais (RNA) é uma técnica que imita o comportamento do

cérebro humano. É uma estrutura maciçamente paralela com a habilidade de

generalização, ou seja, pode produzir saídas adequadas para entradas que não

estavam presentes durante o treinamento (Ludwig Jr., e Costa 2007).

Por esse motivo ela é muito utilizada em problemas onde se deseja classificar

determinados padrões. Para utilizar desta característica das (RNA’s) será

implementado neste trabalho o primeiro exercício da disciplina Introdução à Redes

Neurais Artificiais do programa de pós graduação em Métodos Numéricos em

Engenharia.

Este exercício consiste em programar uma (RNA) tipo Perceptron com 1 neurônios

para a classificação de Óleos em duas classes distintas a partir da analise de três

parâmetros de entrada.

Após 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 saída que neste caso é a classificação do óleo.

2. DESENVOLVIMENTO

2.1 IMPLEMENTAÇÂO DO ALGORITMO

Para realizar o exercício 1 foi implementado pelo autor do presente trabalho o

algoritmo de treinamento da Rede Neural Artificial Perceptron Supervisionada,

seguindo como base o esquemático do livro texto, utilizado em sala, como

apresentado no Algoritmo 1. Porém o algoritmo foi adaptado para o problema

proposto, que consiste em uma ADALINE com varias entradas e varias saídas,

diferentemente do algoritmo 1 que é para uma ADALINE com varias entradas e uma

(1) saída.

2

ALGORITMO 1: ALGORITMO DE TREINAMENTO

A implementação foi realizada utilizando o software de processamento numérico

MatLab 2011b, seguindo as restrições do trabalho de não se utilizar nenhuma

biblioteca e/ou ToolBox de Redes Neurais Artificiais. As linhas de códigos utilizadas

para representar computacionalmente a Rede Neural Artificial em questão esta

disponível nos Apêndices.

Para os valores iniciais dos pesos e do bias, foram gerados valores aleatórios entre -

0 e 1. O valor utilizado para a taxa de treinamento foi inicialmente de 0.1, levando

em consideração que o valor utilizado influencia diretamente a eficiência e a

convergência do algoritmo. Sendo que um valor muito pequeno pode fazer com que

o treinamento da rede se torne lento.

3

2.2 TREINAMENTO DA REDE

A rede Neural implementada computacionalmente foi treinada varias vezes, para

que se pudesse realizar uma comparação 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 além do numero de épocas necessário

para que a rede convergisse. Vale ressaltar que os valores da tabela 1 são para os

dados de entrada sem a normalização.

Tabela 1: Valores do treinamento para dados não normalizados

Treinamento Bias Inicial

1 5,752E-01 5,978E-02 2,348E-01 3,532E-01

2 8,212E-01 1,540E-02 4,302E-02 1,690E-01

3 6,491E-01 7,317E-01 6,477E-01 4,509E-01

4 5,470E-01 2,963E-01 7,447E-01 1,890E-01

5 6,868E-01 1,835E-01 3,685E-01 6,256E-01

Treinamento Bias Final Epocas

1 1,66E+01 2,55E+01 -7,55E+00 315.532 360

2 1,57E+01 2,56E+01 -7,33E+00 3,20E+01 361

3 1,60E+01 2,50E+01 -7,42E+00 3,11E+01 344

4 1,57E+01 2,56E+01 -7,33E+00 3,20E+01 364

5 1,63E+01 2,56E+01 -7,58E+00 3,18E+01 368

Pesos Iniciais

Pesos Finais

Utilizando os mesmos parâmetros estabelecidos para rede, porém com os dados de

entrada normalizados, foram realizados outros 5 treinamentos, onde os valores

encontrados para pesos, bias e épocas são exibidos pela tabela 2.

Tabela 2:Valores do treinamento para dados normalizados

Treinamento Bias Inicial

1 7,80E-01 8,11E-02 9,29E-01 7,76E-01

2 6,22E-01 5,87E-01 2,08E-01 3,01E-01

3 4,71E-01 2,30E-01 8,44E-01 1,95E-01

4 2,26E-01 1,71E-01 2,28E-01 4,36E-01

5 3,11E-01 9,23E-01 4,30E-01 1,85E-01

Treinamento Bias Final Epocas

1 1,72E+00 1,10E+00 -2,14E+00 1,76E-01 54

2 3,10E+00 1,98E+00 -3,88E+00 3,01E-01 185

3 2,10E+00 1,35E+00 -2,65E+00 1,95E-01 93

4 1,48E+00 9,37E-01 -1,83E+00 1,36E-01 45

5 2,15E+00 1,33E+00 -2,61E+00 1,85E-01 89

Pesos Iniciais

Pesos Finais

Os 5 treinamentos realizados para os dados normalizados e para os dados não

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.

4

Tabela 3: Valores do treinamento com taxas de aprendizagem diferentes

Treinamento Bias Inicial Taxa

1 9,05E-01 6,10E-01 6,18E-01 8,59E-01 0.0001

2 8,05E-01 5,77E-01 1,83E-01 2,40E-01 0.001

3 8,87E-01 2,87E-02 4,90E-01 1,68E-01 0.01

4 6,96E-01 7,00E-01 6,39E-01 3,36E-02 0.1

5 6,88E-02 3,20E-01 5,31E-01 6,54E-01 1

Treinamento Bias Final Epocas

1 3,53E-01 2,54E-01 -4,30E-01 2,54E-02 152

2 4,07E-01 2,96E-01 -4,98E-01 2,99E-02 99

3 2,29E-01 1,42E-01 -2,88E-01 1,79E-02 12

4 9,05E-01 5,73E-01 -1,08E+00 3,36E-02 11

5 1,36E+01 8,90E+00 -1,61E+01 6,54E-01 27

Pesos Iniciais

Pesos Finais

2.3 CLASSIFICAÇÃO

O programa de operação da rede foi implementado seguindo como padrão 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 saídas. O algoritmo 2

exemplifica o código implementado.

ALGORITMO 2: Classificação

Para realizar a classificação o código 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 à função de

limiar bipolar, sendo que se a saída calculada do neurônio resultar em um valor

inferior a zero, o valor final da saída será -1 sendo associado a este valor os óleos

da classe 2 e se a saída calculada resultar em um valor maior ou igual a zero o valor

da saída do neurônio será 1, associando a este valor os óleos da classe 1. A tabela

5

4 exibe a classificação de todos os treinamentos, pode-se observar que para todos

os treinamentos, normalizados, não normalizados e com taxas de aprendizagem a

rede classificou os dados da mesma forma.

Tabela 4: Classificação 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

Classificação da Rede

Para realmente testar se a rede estava realizando a classificação dos dados, foi

realizado a classificação para os dados de entrada utilizados no processo de

treinamento da rede. A classificação é mostrada pela tabela 5.

Tabela 5: Classificação dos dados de treinamento

Amostra 1 2 3 4 5 6 7 8 9 10

Real -1 -1 -1 1 1 -1 1 -1 1 1

Perceptron -1 -1 -1 1 1 -1 1 -1 1 1

Comparação ok ok ok ok ok ok ok ok ok ok

Amostra 11 12 13 14 15 16 17 18 19 20

Real -1 1 -1 -1 -1 -1 1 -1 1 1

Perceptron -1 1 -1 -1 -1 -1 1 1 1 1

Comparação ok ok ok ok ok ok ok Não 1 1

Amostra 21 22 23 24 25 26 27 28 29 30

Real -1 1 1 -1 1 -1 -1 1 -1 -1

Perceptron -1 1 1 1 1 -1 -1 1 -1 1

Comparação ok ok ok Não ok ok ok ok ok Não

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

entrada, totalizando em um rendimento de 90% nesta classificação.

6

3. CONCLUSÃO

Durante a execução do presente trabalho, foram executados inúmeros treinamentos

da rede neural artificial ADALINE, realizando analise de sensibilidade dos

parâmetros, como: Taxa de aprendizado, valores aleatórios 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 não adequado para esta taxa pode levar a

um treinamento prematuro da rede.

Este trabalho possibilitou a percepção que quantidade de épocas necessárias para a

convergência da rede é diretamente proporcional aos valores estabelecidos para os

pesos, taxa de aprendizagem e bias.

Com ocorreu uma convergência da rede pode-se afirmar que a mesma é

linearmente separável, o que não ocorreria se a rede divergisse onde seria

necessário estipular um numero máximo de épocas como critério de paragem.

.

7

REFERÊNCIAS

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 APLICAÇÕES COM PROGRAMAS EM C. RIO DE JANEIRO: EDITORA CIÊNCIA MODERNA LTDA. 2007 UNIVERSIDADE FEDERAL DO PARANÁ. Sistemas de Bibliotecas. REFERÊNCIAS. Curitiba: Editora UFPR, 2007. (Normas para apresentação de documentos científicos, 4) UNIVERSIDADE FEDERAL DO PARANÁ. Sistemas de Bibliotecas. RELATÓRIOS. Curitiba: Editora UFPR, 2007. (Normas para apresentação de documentos científicos, 5) UNIVERSIDADE FEDERAL DO PARANÁ. Sistemas de Bibliotecas. Teses, dissertações, monografias e outros trabalhos acadêmicos. Curitiba: Editora UFPR, 2007. (Normas para apresentação de documentos científicos, 2)

8

APÊNDICE

APÊNDICE 1: PROGRAMA PRINCIPAL DE TREINAMENTO

%% SCRIPT Inicialização 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); %normalização 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); %inicialização 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

9

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

10

APÊNDICE 2: PROGRAMA DE CLASSIFICAÇÃO

%faz a leitura dos dados a serem classificados xo=load('dopera.txt'); %inicio da classificação 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,'------------------------------classificação-------------------

-------\n\n'); fprintf(fid,' %d',y); fprintf(fid,'\n------------------------------classificação-----------------

---------\n\n'); fprintf(fid,' %d',y);fprintf(fid,'------------------------------real-------

-------------------\n\n'); fprintf(fid,' %d',d); fclose(fid)