You are on page 1of 99

Universidade de Braslia

Instituto de Cincias Exatas Departamento de Cincia da Computao

SimNeural: Simulador Computacional de RNA para Aplicaoes em Ensino e Pesquisas Mdicas e c e Biolgicas o

Bruno Bastos Neves Jussi Marques Martins e

Monograa apresentada como requisito parcial para concluso do Curso de Computaao Licenciatura a c

Orientador Prof.a Dr. Wilson Henrique Veneziano

Coorientador Prof. Dr. Carlos Alberto Gonalves c


a

Bras lia 2012

Universidade de Bras UnB lia Instituto de Cincias Exatas e Departamento de Cincia da Computao e ca Curso de Computao Licenciatura ca

Coordenador: Prof. Dr. Coordenador

Banca examinadora composta por: Prof.a Dr. Wilson Henrique Veneziano (Orientador) CIC/UnB Prof. Dr. Professor I CIC/UnB Prof. Dr. Professor II CIC/UnB

CIP Catalogao Internacional na Publicao ca ca Neves, Bruno Bastos. SimNeural: Simulador Computacional de RNA para Aplicaes em Enco sino e Pesquisas Mdicas e Biolgicas / Bruno Bastos Neves, Jussi e o e Marques Martins. Bras : UnB, 2012. lia 193 p. : il. ; 29,5 cm. Monograa (Graduao) Universidade de Bras ca lia, Bras lia, 2012. 1. 3. 6. 8. Simulao Computacional, 2. Redes Neuronais Articiais, ca Classicaao Biolgicas, 4. Simulador, 5. Inteligncia Articial, c o e Algoritmo BackPropagation, 7. Ambiente de Simulaao, c Reconhecimento de Padres, 9. Aprendizagem por RNAs. o

CDU 004.4

Endereo: Universidade de Bras c lia Campus Universitrio Darcy Ribeiro Asa Norte a CEP 70910-900 Bras liaDF Brasil

Universidade de Braslia
Instituto de Cincias Exatas Departamento de Cincia da Computao

SimNeural: Simulador Computacional de RNA para Aplicaoes em Ensino e Pesquisas Mdicas e c e Biolgicas o

Bruno Bastos Neves Jussi Marques Martins e

Monograa apresentada como requisito parcial para concluso do Curso de Computaao Licenciatura a c

Prof.a Dr. Wilson Henrique Veneziano (Orientador) CIC/UnB

Prof. Dr. Professor I Prof. Dr. Professor II CIC/UnB CIC/UnB

Prof. Dr. Coordenador Coordenador do Curso de Computao Licenciatura ca

Bras lia, 02 de Julho de 2012

Dedicatria o
Dedico este trabalho a minha fam ` lia, que sempre esteve ao meu lado em todos os momentos maravilhosos e dif ceis pelos quais passei e que ainda vou passar em minha vida, ` minha noiva Kennia, com quem escolhi dividir minhas alegrias e angustias; mas a dedico especialmente, para meus pais Eliane Bastos Neves e Getlio Flores Neves que me u deram a oportunidade de estudar; algo que muitas pessoas, infelizmente, no possuem a durante toda a vida. Bruno Bastos Neves

Dedico este trabalho a Deus, aos meus pais Joaquim e Wilma, a minha namorada e a minha fam lia, que sempre estiveram me apoiando e incentivando nessa caminhada. O temor ao Senhor o principio da sabedoria; bom entendimento tm todos os que e e cumprem os seus mandamentos. (Sl. 111:10) Jussi Marques Martins e

Agradecimentos
Agradecemos aos professores Wilson Henrique Veneziano e Carlos Alberto Gonalves c que nos orientaram e nos auxiliaram durante todo o desenvolvimento deste projeto, nos transmitido valiosos ensinamentos. Tambm gostar e amos de agradecer a todos da botnica que nos forneceram os dados ` a durante o desenvolvimento do trabalho, ` Fernanda Rodrigues da Costa, graduada em a letra, pelas correoes ortogrcas nos textos desta monograa e ao professor Custdio c a o Motta da Universidade de Juiz de Fora, por nos indicar a base de dados que utilizamos para validaao do trabalho. c A todos aqueles que apoiaram e contribu ram, ao longo dessa jornada, para concretizaao deste trabalho. Deixamos aqui a nossa gratido. c a Bruno Bastos Neves e Jussi Marques Martins e

Agradeo a Deus por todas as oportunidades que tive em minha vida. Agradeo aos c c meus pais, pois eles me zeram o que sou hoje. Devo tudo a eles. Agradeo tambm ao c e meu colega e amigo Jussi, que me acompanhou durante esta longa caminhada que durou e quatro anos, desejo muita felicidade em sua vida. Bruno Bastos Neves

Agradeo a Deus, o mestre maior, que me deu a vida, a minha fam c lia, em especial aos meus pais Joaquim e Wilma, que sempre me ensinou a viv-la com dignidade e a e minha namorada, Fernanda, pelo carinho, companheirismo e compreenso, que sempre a estiveram me apoiando e incentivando na realizao dessa jornada. Agradeo tambm ao ca c e meu colega e amigo Bruno, por ter aceitado embarcar comigo nessa empreitada, por todo seu esforo, dedicaao e comprometimento, desejo muita alegria e sucesso em sua vida c c sempre. Jussi Marques Martins e

ii

Resumo
A tcnica de simulao computacional e de reconhecimento de padres utilizando redes e ca o neuronais articial tem se tornado uma importante ferramenta para aprendizado e para o uso funcional. Este trabalho apresenta as atividades de concepo, desenvolvimento ca e validao do software SimNeural. O software foi concebido por meio do ambiente de ca simulaao ExtendSIM, da empresa Imagine That! Inc., utilizando o processo de desenc volvimento por prototipaao e reuso de componentes. O SimNeural tem como principal c objetivo ser uma ferramenta, que fornece o arcabouo necessrio para a simulao de moc a ca delos congurveis pelo usurio, para aprendizado e para uso funcional das redes neuronais a a articiais, ao permitir testes de hipteses e investigaao de relaoes entre as variveis. o c c a O SimNeural implementa tcnica de simulaao computacional e de reconhecimento e c de padres utilizando redes neuronais articiais de mltiplas camadas treinadas com o o u algoritmo de retropropagao de erro (backpropagation). So apresentados os processos ca a de validaao obtidos com treinamento de RNAs e testes funcionais realizados com base c de dados reais, assim como os resultados da etapa de anlise de amostras e dos testes a experimentais de reconhecimento e classicao de padres na aplicaao dos modelos ca o c criados e treinados com o SimNeural. Os resultados do processo de validaao com as base c de dados reais mostraram que este software uma ferramenta para ensino e pesquisas e mdicas e biolgicas util e ecaz. e o Palavras-chave: Simulaao Computacional, Redes Neuronais Articiais, Classicaao c c Biolgicas, Simulador, Inteligncia Articial, Algoritmo BackPropagation, Ambiente de o e Simulaao, Reconhecimento de Padres, Aprendizagem por RNAs. c o

iii

Abstract
The science... Keywords: keyword1, keyword2, keyword3

iv

Sumrio a
1 Introduo ca 1.1 Apresentao do Problema . . . . . . . . ca 1.2 Hipteses . . . . . . . . . . . . . . . . . o 1.3 Motivaao . . . . . . . . . . . . . . . . . c 1.4 Objetivos . . . . . . . . . . . . . . . . . 1.5 Objetivos Espec cos . . . . . . . . . . . 1.6 Resultados Esperados . . . . . . . . . . . 1.7 Metodologia . . . . . . . . . . . . . . . . 1.7.1 Plataforma . . . . . . . . . . . . 1.7.2 Ferramentas de Desenvolvimento 1.8 Organizaao deste projeto . . . . . . . . c 1 1 1 1 2 2 2 2 3 3 3 5 5 11 12 12 12 14 14 14 15 15 16 17 18 18 18 18 19 19

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

2 Reviso de Literatura a 2.0.1 As Principais Ferramentas Desenvolvidas para Simulaes de Redes co Neuronais Articiais . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Conceitos bsicos em Simulao Computacional a ca 3.1 Sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Tipos de Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Escolha das variveis do sistema . . . . . . . . . . . . . . . . . . . . a 3.3 Tipos de simulaao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . c 3.4 A simulao de sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . ca 3.4.1 Caracter sticas do modelo de simulaao usado no projeto SimNeural c 3.5 Vantagens e desvantagens da simulao . . . . . . . . . . . . . . . . . . . . ca 3.6 Etapas em um estudo com simulaao . . . . . . . . . . . . . . . . . . . . . c 3.6.1 Passo 1. Formular o problema . . . . . . . . . . . . . . . . . . . . . 3.6.2 Passo 2. Coleta de nformaoes/dados e construao do modelo conc c ceitual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.3 Passo 3. Validaao do modelo conceitual . . . . . . . . . . . . . . . c 3.6.4 Passo 4. Programar o modelo . . . . . . . . . . . . . . . . . . . . . 3.6.5 Passo 5. Validaao do programa . . . . . . . . . . . . . . . . . . . . c 3.6.6 Passo 6. Desenhar, conduzir e analisar experimentos de simulaao . c 3.6.7 Passo 7. Documentar e apresentar os resultados da simulaao . . . c

4 Ambiente de simulao ExtendSim ca 4.1 O surgimento do ExtendSim . . . . . . . . . . . . . . . . . 4.1.1 Principais caracter sticas . . . . . . . . . . . . . . . 4.2 Verses do ExtendSim . . . . . . . . . . . . . . . . . . . . o 4.3 Construo e execuao de modelos no ambiente ExtendSim ca c 4.3.1 Interface GUI . . . . . . . . . . . . . . . . . . . . . 4.3.2 Bibliotecas e Blocos . . . . . . . . . . . . . . . . . . 4.3.3 Camadas hierrquicas . . . . . . . . . . . . . . . . a 4.3.4 Executando simulaes . . . . . . . . . . . . . . . . co 4.3.5 Ambiente de programao no ExtendSim . . . . . . ca 4.3.6 A linguagem ModL . . . . . . . . . . . . . . . . . . 5 Redes Neuronais Articiais (RNAs) 5.1 Introduao as Redes Neuronais . . . . . . . . . . c 5.1.1 Fundamentos Biolgicos . . . . . . . . . . o 5.1.2 Histrico das Redes Neurais Articiais . . o 5.2 Caracter sticas das Redes Neurais Articiais . . . 5.3 Aprendizado nas RNAs . . . . . . . . . . . . . . 5.3.1 Aprendizagem por Correao de Erros . . . c 5.3.2 Aprendizagem supervisionada . . . . . . . 5.4 Algoritmo de Aprendizado para Redes Neurais . . 5.4.1 Algoritmo baseado em Retropropagao de ca 5.5 Treinamento . . . . . . . . . . . . . . . . . . . . 5.5.1 Preparao dos dados . . . . . . . . . . . ca 5.5.2 Processo de Treinamento . . . . . . . . . . 5.6 Consideraes e Aplicaes de rede neurais . . . . co co

. . . . . . . . . OR . . . . . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

21 21 21 22 23 23 24 25 26 27 28 30 30 30 31 32 36 37 37 38 39 41 41 42 52 54 54 55 55 56 57 58 59 60 61 62 62 62 64 66 68 69 70 71

. . . . . . . . . . . . . . . . . . . . . . . . Erro . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (Backpropagation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6 Desenvolvimento de Software 6.1 Processo de Software . . . . . . . . . . . . . . . . . . . 6.2 Modelos de processo de software . . . . . . . . . . . . . 6.3 Detalhando o modelo de desenvolvimento evolucionrio a 6.3.1 Prototipao . . . . . . . . . . . . . . . . . . . ca 6.4 Modelo de desenvolvimento baseado em componentes . 6.4.1 Processo de desenvolvimento adaptado a CBSE ` 6.5 Processo de desenvolvimento do SimNeural . . . . . . . 6.6 Arquitetura de Software . . . . . . . . . . . . . . . . . 6.7 Gerao do Release . . . . . . . . . . . . . . . . . . . . ca 7 O Projeto SimRedeNeural 7.1 Requisitos Tcnicos . . . . . . . . e 7.2 Viso geral do Projeto SimNeural a 7.2.1 Criando uma Rede Neural 7.2.2 Treinando a Rede Neural . 7.2.3 Validao e Teste . . . . . ca 7.3 Exemplos de Modelos . . . . . . . 7.3.1 Flores de Iris . . . . . . . 7.3.2 RNA passo a passo . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . vi

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

7.4 7.5 7.6

RNA para classicao de cncer . . . . . . . . . . . . . . . . . . . . . . . 72 ca a Manual do Projeto SimNeural . . . . . . . . . . . . . . . . . . . . . . . . . 72 Sugestes de Aplicaao do Projeto SimNeural . . . . . . . . . . . . . . . . 73 o c 74 74 74 74 79 81

8 Validao do SimNeural ca 8.1 Metodologia de Validao . . . . . . . . . . ca 8.2 Aplicao da Validao . . . . . . . . . . . ca ca 8.2.1 Validao dos Objetivos Pedaggicos ca o 8.2.2 O SimNeural como um simulador de Padres . . . . . . . . . . . . . . . . o 8.3 Anlise dos Resultados . . . . . . . . . . . a

. . . . . . . . . . . . RNAs . . . . . . . .

. . . . . . . . . para . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classicaao de c . . . . . . . . . . . . . . . . . . . .

9 Concluses o 82 9.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Referncias e 84

vii

Lista de Figuras
2.1 2.2 2.3 2.4 2.5 2.6 3.1 4.1 4.2 Interface Grca do SNNS (Fonte: UNIVERSITY OF TUBINGEN [34] . . 6 a Interface Grca do JavaNNS (Fonte: UNIVERSITY OF TUBINGEN [33]) 7 a MATLAB - Neural Network Toolbox . . . . . . . . . . . . . . . . . . . . . 7 Exemplo de rede neural criada no MATLAB (Fonte: MathWorks inc. [18]) 8 Viso Grca do Software Arena 9.0, com um Modelo de Sistema . . . . . 9 a a Viso Grca do Software STELLA c 7.0, com o Modelo do Sistema Plaint a a Succession . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Os sete passos de um estudo utilizando simulaao. (FONTE: Traduzido e c adaptado de LAW [23]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Figura mostrando a area de trabalho do modelo Presa-Predador, um dos modelos exemplos que so distribu a dos juntamente com o ExtendSim . . . Janela mostrando o uso de um bloco no extend sim. Observe a biblioteca aberta, o bloco colocado na rea de trabalho e sua respectiva caixa de a dilogo aberta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a Painel Simulation Setup, responsvel por congurar os parmetros de exea a cuo da simulaao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ca c Janela de edio da estrutura de blocos do ExtendSim. . . . . . . . . . . . ca Neurnio Natural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Representao grca de um Perceptron (neurnio articial) . . . . . . ca a o Funao Log c stica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Topologia de uma rede neural articial de mltiplas camadas. . . . . . u Esquema do paradigma de aprendizagem supervisionada. . . . . . . . . Uma Rede Multicamada . . . . . . . . . . . . . . . . . . . . . . . . . . RNA com 2 neurnios na camada de entrada, 2 camadas ocultas com o neurnios cada e 1 neurnio na camada de sa o o da. . . . . . . . . . . . . Representao Grca da Equaao 5.10. . . . . . . . . . . . . . . . . . ca a c Representao Grca da Equaao 5.11. . . . . . . . . . . . . . . . . . ca a c Representaao Grca da Equao 5.12. . . . . . . . . . . . . . . . . . c a ca Representaao Grca da Equao 5.13. . . . . . . . . . . . . . . . . . c a ca Representaao Grca da Equao 5.14. . . . . . . . . . . . . . . . . . c a ca Representaao Grca da Equao 5.15. . . . . . . . . . . . . . . . . . c a ca Representaao Grca da Retropropagaao do Erro (Equaao 5.16). . . c a c c Representaao Grca da Retropropagaao do Erro (Equaao 5.17). . . c a c c Representaao Grca da Retropropagaao do Erro (Equaao 5.18). . . c a c c Representaao Grca da Retropropagaao do Erro (Equaao 5.19). . . c a c c viii . . . . . . . . . . . . 2 . . . . . . . . . . . . . . . . . . . . . . 23

24 26 27 30 33 34 35 38 40 43 44 44 45 45 46 46 47 47 48 48

4.3 4.4 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16 5.17

5.18 5.19 5.20 5.21 5.22 6.1 6.2 6.3 7.1 7.2 7.3

Representaao c Representaao c Representaao c Representaao c Representaao c

Grca a Grca a Grca a Grca a Grca a

da da da da da

Alterao ca Alterao ca Alterao ca Alterao ca Alterao ca

dos dos dos dos dos

Pesos Pesos Pesos Pesos Pesos

(Equaao c (Equaao c (Equaao c (Equaao c (Equaao c

5.20). 5.21). 5.22). 5.23). 5.24).

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

49 50 50 51 51

Desenvolvimento evolucionrio prototipado. (FONTE: Adaptado de SOMa MERVILLE [32]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Desenvolvimento evolucionrio prototipado. (FONTE: Adaptado de SOMa MERVILLE [32]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Composio do Projeto SimNeural . . . . . . . . . . . . . . . . . . . . . . 60 ca Tela inicial do projeto SimNeural. . . . . . . . . . . . . . . . . . . . . . . . Painel central de deniao da arquitetura e controle das RNAS. . . . . . . c Area de trabalho de um novo modelo no SimNeural, aps criaao de uma o c rede neural de quatro camadas, sendo uma de entrada, duas intermedirias a e uma de sa da. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aba Treinamento no painel de controle da RNA. Separamos em quatro partes que compem o controle de treinamento, para ns de melhor explicao. o ca Janela de conguraao do grco e de armazenamento dos MSEs de at c a e cinco treinamentos realizados. . . . . . . . . . . . . . . . . . . . . . . . . . Grco gerado aps salvar os MSEs de quatro treinamentos em espaos a o c diferentes de memria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Painel de validaao e teste. Os dados devem ser importados de maneira c semelhante aos dados do painel de treinamento. . . . . . . . . . . . . . . . Area de trabalho do modelo exemplo Flores de Iris. . . . . . . . . . . . . . Painel de execuao do algoritmo passo a passo no modelo RNA passo a passo. c Dados retirados do repositrio disponibilizado por FRANK e ASUNCION o [11] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Base de dados das ores no formato de importaao pelo SimNeural Iris c para treinamento da RNA . . . . . . . . . . . . . . . . . . . . . . . . . . . Grco do MSE no Treinamento (Curva de Aprendizagem) . . . . . . . . . a Grco do MSE no Treinamento (Curva de Aprendizagem) do Problema a de Classicao do Cncer de Mama. . . . . . . . . . . . . . . . . . . . . . ca a 63 64

65 66 68 68 69 70 71 75 76 77 80

7.4 7.5 7.6 7.7 7.8 7.9 8.1 8.2 8.3 8.4

ix

Lista de Tabelas
3.1 4.1 4.2 4.3 5.1 6.1 7.1 8.1 8.2 Evoluo da simulaao e das ferramentas ao longo do tempo (FONTE: ca c KELTON et al. (1998) [20] . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Verses existentes do ExtendSim . . . . . . . . . . . . . . . . . . . . . . . 22 o Componentes de um bloco . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Diferenas entre Modl e C . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 c Comparao entre o neurnio biolgico (natural) e o neurnio articial. . . 33 ca o o o Camadas do SimNeural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Requerimentos do ExtendSim de acordo com a Imagine That! Inc. . . . . . 62 Conguraes da RNA para Treinamento e Teste . . . . . . . . . . . . . . 78 co Conguraes de RNA para Treinamento e Teste de Classicao do Cncer co ca a de mama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

Cap tulo 1 Introduo ca


1.1 Apresentao do Problema ca

Em diversas situaoes o uso de simulaao computacional uma alternativa vivel de c c e a obtenao de incr c veis resultados, seja para vericar a viabilidade de um projeto, para evitar riscos existentes em atividades perigosas ou pesquisas para aquisiao de conhecimento. O c custo com uso de tcnicas de simulaao baixo quando comparado ao que poderia ser e c e despendido com a criao de um laboratrio completo para experimentao por alunos de ca o ca um curso de biologia, por exemplo. O grande problema que a criao destas simulaoes exige um grande conhecimento, e ca c no apenas do ambiente e do problema que se deseja simular, mas tambm de linguagens a e de programaao, formando uma barreira de dif transposiao pelas outras disciplinas, c cil c mais distantes do mundo dos cdigos. o

1.2

Hipteses o

Existem softwares que foram desenvolvidos para reduzir estas diculdades atravs de e interfaces com usurio, que permitem a criaao de simulaoes com um conhecimento m a c c nimo de linguagens de programao. Com tais ferramentas, poss criar ricas simulaca e vel oes em 2D ou at mesmo 3D, mesmo para pessoas leigas em linguagens de programaao. c e c Talvez, com o uso destas ferramentas, a tarefa de criar e executar simulaoes compuc tacionais possa ser simplicada para atingir este pblico alvo. u

1.3

Motivao ca

Vericar a potencialidade de um dos ambientes de simulao dispon ca veis no mercado, o ExtendSim, no que se refere a fornecer ao usurio uma forma de simplicar a criaao a c e execuao de simulaao. Para realizar tal tarefa, em conjunto com o Instituto de Cinc c e cias Biolgicas da UnB, pretendemos desenvolver um modelo, o Projeto SimNeural, que o consistir em um simulador de Redes Neurais Articiais que possa ser aplicado em aulas, a laboratrios e pesquisas do instituto. o

1.4

Objetivos

Comprovar, por meio da criao de uma simulaao de Redes Neurais Articiais, a ca c utilidade de ambientes de simulao computacional, como o ExtendSim, por disciplinas ca diversas que no possuem grande anidade com a codicaao de sistemas. a c

1.5

Objetivos Espec cos

Apreender conceitos relativos a simulaes; ` co Analisar o software ExtendSim; Dominar completamente a linguagem ModL, usada no ambiente ExtendSim; Compreender os fundamentos de Redes Neurais Articiais e o algoritmo de aprendizagem Backpropagation; Desenvolver um ambiente de simulao de Redes Neurais Articiais no ExtendSim; ca Tornar o ambiente de simulao o mais amigvel poss para usurios leigos em ca a vel a Redes Neurais; Validar o ambiente criado com cliente, no caso o Instituto de Cincias Biolgicas. e o

1.6

Resultados Esperados

Ao nal deste trabalho, pretendemos ter constru um simulador de Redes Neurais do Articiais que utilize todo o potencial do pacote de simulao ExtendSim. Este simulador ca dever ser de fcil operao, quer seja operado por graduandos de computao ou por a a ca ca usurios de outras areas de conhecimento. a

1.7

Metodologia

Visando os objetivos espec cos deste trabalho, realizamos uma pesquisa em busca de comparar ferramentas similares ao ExtendSim, tal pesquisa constitui a reviso de literaa tura deste trabalho. Posteriormente, os seguintes tpicos foram denidos para constituio o ca do embasamento terico necessrio para o projeto que realizamos: o a Conceitos em simulaao computacional c Ambiente de simulao ExtendSim ca Redes Neurais Articiais Com estes conceitos apreendidos, construir um simulador no ExtendSim que atenda os requisitos denidos pelos professores Carlos Gonalves e Wilson H. Venesiano, de forma c que toda a potencialidade do pacote de simulaao possa ser avaliada. c

1.7.1

Plataforma

O ExtendSim um software executado sobre a plataforma Windows da microsoft. e Segundo a empresa Imagine That! Inc., o ExtendSim pode ser executado em verses 32 o bits e 64 bits do Windows XP, Vista e Seven, alm do MacOSx 10.4. No desenvolvie mento deste trabalho, utilizamos um computador com as seguintes conguraes durante co o desenvolvimento: Sistema operacional Windows 7 64 bits Processador Intel core I7 Q2670m 2.2-2.9 Ghz 8 Gb ram ddr 3 1333mhz 750 Gb hd Placa de v deo hd 6990m Os testes de sistema foram executados em diversas plataformas de Windows XP e Seven, para testar a estabilidade dos modelos desenvolvidos.

1.7.2

Ferramentas de Desenvolvimento

Neste projeto, utilizamos apenas o ambiente ExtendSim para realizar todo o desenvolvimento do ambiente de simulaao de Redes Neurais Articiais, que foi chamado de c Projeto SimNeural. Outras ferramentas utilizadas foram o o Microsoft Word 2010 para criaao do manual da aplicaao e, por ultimo, utilizamos o Inno Setup para gerar o release c c do Projeto SimNeural.

1.8

Organizao deste projeto ca

Para o estudo proposto, este trabalho est organizado conforme segue nos prximos a o pargrafos. a O Cap tulo 2 a reviso de literatura que busca mostrar outras ferramentas desenvolvie a das para simulaao de Redes Neurais Articiais, alm de mostrar os pontos fortes e fracos c e das ferramentas desenvolvidas, vamos mostrar outros ambientes alm do ExtendSim, que e podem ser usados em trabalhos deste tipo. No Cap tulo 3 procuramos abordar conceitos fundamentais da simulao computacioca nal, tais como simulaoes de eventos cont c nuos e discretos. O Cap tulo 4 explora o ambiente da ferramenta ExtendSim e as potencialidades que ela oferece aos seus usurios. So abordados tambm os principais elementos necessrios a a e a para construao de modelos de simulaao. c c J no Cap a tulo 5, entramos em conceitos fundamentais de Redes Neurais Articiais, que justamente o modelo que modelamos na criao do ambiente que zemos para avaliar e ca o uso do ExtendSim. No Cap tulo 6 descrevemos todo o processo por trs do desenvolvimento do Projeto a SimNeural, o modelo criado por ns utilizando os conceitos de Redes Neurais Articiais o discutidos no Cap tulo 5. 3

O Cap tulo 7 descreve o projeto SimNeural em si. Descrevemos as principais caracter sticas emergentes do ambiente de simulao desenvolvido neste trabalho. ca O Cap tulo 8 mostra o processo e os resultados de validao do SimNeural. ca Finalmente, o Cap tulo 9 contm todas as concluses a respeito do uso do SimNeural e o e do ExtendSim para ns didticos e de pesquisa, alm de uma avaliaao deste trabaa e c lho, quanto aos objetivos propostos. Ao nal constam as referncias bibliogrcas deste e a trabalho.

Cap tulo 2 Reviso de Literatura a


O desenvolvimento de ferramentas computacionais de simulaao para modelos biolc o gicos, em especial usando redes neurais articiais, tem sido abordado sob perspectivas distintas, em trabalhos nacionais e internacionais. As ferramentas diferem quanto a me` todologia, tcnica e quanto a complexidade permitida para a simulaao de modelos. Para e ` c cada uma, poss elencar vantagens e desvantagens, dependendo do objetivo da pese vel quisa. Este cap tulo fornece uma reviso de diferentes tipos de ferramentas, destacando abora dagens distintas. As ferramentas escolhidas para a reviso foram denidas conforme os a trabalhos mais citados na literatura, alm de algumas ferramentas recentes, que apontam e novas tendncias e abordagens. Para todas as ferramentas investigadas, foram analisados e trabalhos de modelos que as aplicam, de modo que fossem comparadas apenas aquelas que j foram testadas e consideradas ecazes dentro do seu objetivo. a

2.0.1

As Principais Ferramentas Desenvolvidas para Simulaoes c de Redes Neuronais Articiais

Existem muitos pacotes de aplicativos computacionais para simulaao dispon c veis no mercado. Abordaremos a seguir, algumas das ferramentas de simulaao cujas caractec r sticas esto relacionadas aos conceitos abordado no conjunto de palavras chave deste a projeto: SNNS (Stuttgart Neural Network Simulator ) Dentre as opes de simuladores de rede neural encontrados na literatura o projeto co SNNS (Stuttgart Neural Network Simulator), que foi desenvolvido no Institute for Parallel and Distributed High Performance Systems (IPVR) da Universidade de Stuttgart na Alemanha, apresenta maior compatibilidade e semelhana com os objetivos propostos pelo c SimNeural. O objetivo do SNNS foi criar um ambiente de simulaao eciente e ex c vel para a pesquisa de aplicaes de rede neural, segundo ZELL [35]. O SNNS apresenta co uma interface de utilizao bastante amigvel incluindo uma srie de funcionalidades que ca a e possibilitam a soluo de uma grande quantidade de problemas atravs de reconhecimento ca e de padres. Quatro componentes formam a base do SNNS: o kernel do simulador, a o interface grca com o usurio (gura 2.1), a interface de execuao em lote e o compilador a a c de rede snns2c. 5

Figura 2.1: Interface Grca do SNNS (Fonte: UNIVERSITY OF TUBINGEN [34] a O enfoque do projeto SNNS ser robusto em termos de consistncia, e as funoes de e e c aprendizado dispon veis no SNNS so numerosas e variadas, podendo atender um nmero a u signicativo de alternativas topolgicas de redes neurais. Porm sua interface no oferece o e a uma apresentaao didtica e de fcil compreenso para usurios iniciantes nos conceitos c a a a a de RNA e simuladores computacionais. JavaNNS (Java Neural Network Simulator ) O software SNNS apresenta uma verso em Java, o JavaNNS v4.2, que o sucessor do a e SNNS. O Java Neural Network Simulator (JavaNNS) um simulador para redes neurais e articiais, desenvolvido pela Wilhelm-Schickard-Institute for Computer Science (WSI) na Universidade de Tbingen, Alemanha. O kernel do SNNS foi mantido nesta verso, sendo u a que sua principal vantagem, segundo FISCHER [8], uma interface grca mais agradvel e a a e amigvel escrita em Java. Na gura 2.2, podemos ver como a nova interface, mantendo a e o poder de simulao do antecessor SNNS. ca O JavaNNS permite que voc use redes predenidas ou crie a sua prpria, para treinar e o e analis-la. Esse simulador difere do SIMNeural por trabalhar com a criaao da RNA a c por camadas e usar quadrados para representar cada neurnio. Depois de criar todas as o camadas e neurnios o usurio deve liga-las. No SIMNeural o usurio dene a arquitetura e o a a o software gera a RNA automaticamente. Para criar ou usar uma rede no JavaNNS exigir a do usurio, ao contrrio do SIMNeural, conhecimentos de funcionamento dos algoritmos a a e de como estruturar um RNA.

Figura 2.2: Interface Grca do JavaNNS (Fonte: UNIVERSITY OF TUBINGEN [33]) a MATLAB (Matrix Laboratory ) Outro sistema que tambm oferece suporte para simulaao de redes neurais articiais e c o MATLAB, atravs do seu pacote Neural Network Toolbox. e e O MATLAB foi desenvolvido no in da dcada de 80 por Cleve Moler, no Deparcio e tamento de Cincia da Computaao da Universidade do Novo Mxico, EUA. E tem por e c e objetivo ser um ambiente de alto n com linguagem interativa que permite ao usurio vel a executar tarefas de computaao intensiva mais rpido do que com linguagens de prograc a maao tradicionais como C, C + + e Fortran. MathWorks inc. [18]. c Segundo MathWorks inc. [18], o MATLAB um software interativo de alta perfore mance voltado para o clculo numrico. Integra anlise numrica, clculo com matrizes, a e a e a processamento de sinais e construao de grcos em ambiente fcil de usar, onde problemas c a a e soluoes so expressos somente como eles so escritos matematicamente, ao contrrio c a a a da programaao tradicional. c

Figura 2.3: MATLAB - Neural Network Toolbox

O Neural Network Toolbox inclui e fornece linha de comando, funoes e ferramentas c grcas para a criaao (gura 2.3), treinamento, visualizao e simulao de redes neurais. a c ca ca As ferramentas grcas facilitam o desenvolvimento de redes neurais para tarefas, tais a como dados de encaixe (incluindo dados de sries temporais), reconhecimento de padres, e o e clustering. As redes neurais criadas com a Neural Network Toolbox (gura 2.4) so usadas para a aplicaes nas quais a anlise formal seria dif ou imposs co a cil vel, tais como reconhecimento de padres e de identicaao do sistema no-linear. Depois de criar as redes nesta fero c a ramenta, pode-se gerar automaticamente cdigo MATLAB para capturar o trabalho e o automatizar tarefas.

Figura 2.4: Exemplo de rede neural criada no MATLAB (Fonte: MathWorks inc. [18]) O MATLAB - Neural Network Toolbox fornece uma robusta e detalhada ferramenta para pesquisa de arquiteturas de redes neurais fundamentais e regras de aprendizagem. Porm seu uso exige do usurio dominar o conceito, a lgica e os comandos bsicos pree a o a sentes no MATLAB, que so semelhantes aos conceitos presentes na programao coma ca putacional. O usurio que nunca teve contato com programaao e com conceitos elea c mentares presentes nas linguagens de computaao cient c ca ter diculdade em utilizar a a ferramenta. Nele, os usurios tambm necessitaro de conhecimento matemtico e da a e a a abordagem conceitual e emp rica de redes neurais articiais. O software ento recoe a mendado por vrios autores para a anlise matemtica das redes, os mtodos para as a a a e redes de formaao e aplicaao de redes e para os problemas prticos de engenharia no c c a reconhecimento de padres, processamento de sinais e sistemas de controle. o Software ARENA O Arena um software de simulaao de processos, voltado para estudo de sistemas e c utilizando modelos matemticos. Ele fornece uma interface grca que permite a elaboraa a ao de modelos de simulao baseado na linguagem SIMAN. Essa linguagem basicamente c ca enxerga o sistema como uma sequncia de eventos aleatrios que causam mudanas no e o c estado do modelo (semelhante as redes de Petri ou os autmatos), segundo ARAUJO [2]. o No Arena os modelos so constru a dos usando blocos de modelagem, conforme mostra a gura 2.5. Existem dois grupos de blocos: os mdulos de uxo que so os blocos o a interconectados e formam uma rede de informaoes e comandos por onde as entidades c

seguiro. E os mdulos de dados, que cam ocultos no modelo e tem a funo de inserir a o ca a especicaes de cada elemento do uxo. co

Figura 2.5: Viso Grca do Software Arena 9.0, com um Modelo de Sistema a a Na pesquisa realizada, o Arena mostrou ser muito usado para modelagem na rea de a engenharia de redes, mas no foram encontrados projetos utilizando esta ferramenta para a desenvolver simulaao de redes neurais articiais. c Pacote de Simulao STELLA c ca O pacote de simulaao STELLA c baseado na metodologia das dinmicas de sistemas. c e a c Segundo a ISEE SYSTEMS [19], o software STELLA foi concebido com o objetivo de simular um sistema ao longo do tempo, fazer modelagem da teoria para o mundo real, mapear as entradas de um sistema e demonstrar os resultados. A interface baseada em cones facilitando a construao de modelos uma das principais c e caracter sticas desse simulador (veja gura 2.6). Alm disso, possui diagramas de estoque e e uxo em sua linguagem que apoia o pensamento sistmico e fornece informaoes sobre e c como os sistemas funcionam e as estruturas de suas funoes, equaes e arrays facilitam c co as operaoes matemticas, estat c a sticas e lgicas, alm de uma permitir visualizaes da o e co estrutura do modelo, Segundo a ISEE SYSTEMS [19]. O uso principal do STELLA c o educacional como estimulador na aprendizagem por e meio da modelagem e simulao de sistemas. Sendo adotado por educadores e pesquisaca dores para estudar, desde a economia ` f a sica, literatura de clculo, qu a mica, entre outros. Na pesquisa realizada no foi encontrado projeto que usasse o STELLA c como ambiente a de simulaao para redes neuronais articiais. c

Figura 2.6: Viso Grca do Software STELLA c 7.0, com o Modelo do Sistema Plaint a a Succession

10

Cap tulo 3 Conceitos bsicos em Simulao a ca Computacional


Do Aurlio [15]: e [simulao] s.f. Ato ou efeito de Simular. Experincia ou ensaio realizado com o ca e auxlio de modelos. A simulaao de sistemas to antiga quanto a humanidade; existem evidncias, nas c e a e pinturas rupestres, que os homens das cavernas desenhavam as caadas em paredes plac nejando resultados de suas aes. Durante muito tempo a prediao esteve limitada a co c ` lgica e mtodos dedutivos dos lsofos gregos. Francis Bacon foi considerado o criador o e o do mtodo cient e co ao reconhecer que a razo, por si s, no tem nenhuma capacidade a o a de predio, necessrio utiliz-la em conjunto com meticulosas tcnicas de observaao. ca e a a e c O uso moderno do vocbulo simulaao remonta ao Mtodo de Monte Carlo (1940). a c e Esse mtodo proporcionou a soluo de problemas matemticos no probabil e ca a a sticos atravs e da simulaao de um processo estocstico, sendo aplicado em diversos problemas matemc a a ticos. Com o crescente aumento da capacidade computacional, a simulaao cresceu como c tcnica utilizada para experimentao e estudos pelas mais diversas reas de conhecimento. e ca a Com este crescimento, surgiram tambm novas alternativas para o campo de simulao e ca computacional. As linguagens de formato geral foram as primeiras a serem utilizadas para a simulaao. c Estas linguagens, como o C, FORTRAN, PASCAL, podem ser utilizadas na implementao de qualquer problema computacional. Inicialmente, as simulaoes utilizavam estas ca c linguagens e eram restritas a trabalhos em universidades e centros de pesquisas militares. Cada simulao tinha um propsito espec ca o co e execues muito problemticas devido ao co a baixo poder computacional no in da revoluo da informaao. cio ca c Contudo, observou-se que os programas, apesar de objetivos diferentes, possu muiam tas caracter sticas comuns, dando origem ao desenvolvimento de linguagens de simulaao, c mais poderosas e mais ecientes. Estas linguagens tm a vantagem de reduzir o tempo e necessrio para implementao de um modelo, pois apresentam estruturas voltadas para a ca este m, ao contrrio das linguagens de propsito geral. Dentre as linguagens de simulaao a o c destacaram-se o GPSS, SIMAN, SLAM e o SIMSCRIPT. O salto dado foi grande, mas o tempo gasto com aprendizado e eliminaao de erros c ainda era enorme. Durante os anos 80, juntamente com um exponencial aumento na capa11

cidade computacional, a simulaao estendeu-se a muitas indstrias e com isso programas c u direcionados a elas foram criados (Extend,Arean,etc.). Estes programas so chamados a Pacotes de simulaao e eram pass c veis de uso por prossionais de diversas areas e com diferentes n veis de conhecimento sobre simulao. ca Os pacotes de simulaao reduziram o tempo gasto na criaao de modelos, liberando c c para concentrao de esforos nas anlises de resultados. O pacote usado no Projeto ca c a SimNeural foi o ExtendSim, software sucessor do pacote de simulao Extend. ca A tabela 3.1 elenca as caracter sticas de cada per odo de evoluao da simulao. c ca

3.1

Sistemas

A natureza pode ser vista como um conjunto de sistemas que interagem constantemente. At mesmo nosso corpo um sistema composto de diversos subsistemas. As e e simulaoes so criadas sobre modelos de sistemas devidamente delimitados (SHANNON, c a 1975, p 123) [29]. Algumas denioes a respeito de sistemas segundo alguns autores de diversas areas: c Segundo CHIAVENATO [7], sistema um conjunto de coisas ou combinaes de e co coisas ou partes, formando um todo complexo ou unitrio; a Segundo BANKS et al. [3] , um sistema pode ser denido como um grupo de objetos que so reunidos em alguma interaao ou interdependncia regular, a m de a c e alcanar algum propsito. c o Dessas denioes poss c e vel notar que um sistema algo abstrato. Em um dado e instante, um conjunto de objetos pode ser uma pequena parte de um sistema maior, ou seja, um subsistema, em outras, pode ser um sistema completo. Portanto, todo sistema deve ter estabelecido seus limites, para que possa ser estudado. Determinar estes limites depende, fundamentalmente, do estudo realizado e dos objetivos a serem alcanados. c

3.2

Modelos

Modelos so abstraoes de fenmenos, objetos ou entidades complexas e seu valor a c o reside no fato de melhorar nossa compreenso a respeito das caracter a sticas de comportamento de um sistema real. Em comparaao com a observao do sistema real, um c ca modelo deste sistema trabalha com um menor custo para obtenao das informaoes, gec c rando conhecimento mais rapidamente e em condioes, algumas vezes, no observveis c a a em condioes naturais, segundo FORRESTER [10]. c

3.2.1

Tipos de Modelos

Primeiramente existe uma distino que deve ser feita entre um modelo matemtico e ca a um modelo f sico. Modelos f sicos so, geralmente, rplicas em tamanho reduzido daquilo a e que eles representam, como maquetes, mapas, fotograas, etc. J os modelos matemtia a cos, usam s mbolos em lugar de objetos f sicos; eles representam um sistema em termos de relacionamentos lgicos e quantitativos, os quais, atravs de manipulao, alteram o o e ca 12

comportamento do modelo tentando demonstrar como o sistema reagiria. Um modelo de simulaao um tipo de modelo matemtico. c e a Linear ou no-linear a Em modelos lineares, o sistema representado segue uma lei linear, isto , sempre e h uma mesma resposta de uma varivel endgena(interna do sistema) a uma varivel a a o a exgena(externa ao sistema); j nos modelos no lineares, esta relaao no ocorre de o a a c a forma linear. Esttico ou Dinmico a a Em modelos estticos o tempo no desempenha nenhum papel importante, enquanto a a que nos modelos dinmicos o tempo apresenta papel fundamental na evoluao do modelo. a c Estvel ou Instvel a a Em modelos dinmicos, dizemos que o modelo estvel quando este retorna a sua a e a condiao inicial aps alguma perturbaao. J os modelos dinmicos instveis so aqueles c o c a a a a em que, depois de determinada ativao, existe uma tendncia de desenvolvimento de sua ca e amplitude afastando-se da condiao inicial. c Discretos ou Cont nuos As alteraoes nas variveis de estado do sistema podem ser cont c a nuas ou discretas conforme a evoluao do tempo. Na alteraao discreta, as variveis modicam-se discretac c a mente em pontos espec cos no tempo. J na alterao cont a ca nua, as variveis podem ser a alteradas continuamente ao longo do tempo simulado. Determin sticos ou Estocsticos a Modelos que no contm variveis aleatrias so classicados como determin a e a o a sticos; nestes, um conjunto conhecido de entradas pode ser mapeado em um conjunto denido de sa das. Em um modelo estocstico este mapeamento no poss a a e vel, pois existe a presena de variveis aleatrias que levam a sa c a o das imprevis veis. Anal ticos ou de simulao ca Os modelos anal ticos podem ser denidos pela sua estrutura formada por equaes co matemticas, atravs das quais o comportamento do sistema pode ser obtido pela atribuia e ao de valores aos parmetros do modelo e soluo das equaoes. Modelos de simulaao c a ca c c possuem uma estrutura lgica/matemtica e podem ser exercitados de forma a imitar o o a comportamento do sistema. Atravs de experincias, observaoes podem ser realizadas e e c para que concluses sejam tiradas a respeito do sistemas. o

13

3.2.2

Escolha das variveis do sistema a

A construo de um modelo envolve a correta escolha das principais variveis de um ca a sistema, pois segundo ACKOFF et al. [1], apenas um pequeno nmero de variveis pode, u a geralmente, explicar grande parte do comportamento de um sistema. Disso decorre o fato de que podem coexistir diversos modelos, com diversos n veis de detalhamento de um mesmo sistema.

3.3

Tipos de simulao ca

Elencamos nos itens anteriores os tipos de modelos existentes. Assim como tipos de modelos, os tipos de simulaao so anlogos a estes modelos; entretanto, no que diz c a a respeito ` modelos discretos e cont a nuos, preciso esclarecer que a utilizao de um modelo e ca discreto no implica que ser usada uma simulaao discreta e o mesmo vale para modelos a a c cont nuos.

3.4

A simulao de sistemas ca

Segundo NAYLOR et al. [25], em essncia, a simulaao consiste em realizar um modelo e c matemtico de situaao real, e nele levar a cabo experincias. E uma deniao abrangente a c e c e poderia incluir, por exemplo jogos militares ou de negcios, que no muito raramente, o a tambm so chamados de simuladores. e a Contudo, outros autores da rea restringem mais esta deniao, acrescentando que na a c simulaao o modelo deve ser manipulado e os resultados devem ser analisados para que c sejam tiradas concluses sobre como os mais diversos fatores afetaro o desempenho do o a sistema simulado. Segundo SHIMIZU [30], o grande volume de dados e a complexidade de clculos de a uma simulaao exigem o uso intensivo do computador. O uso desta ferramenta na criao c ca e soluao dos modelos reduziu drasticamente o tempo despendido nos trabalhos e, por c este motivo, as tcnicas de simulaao esto cada vez mais presentes em P&D. e c a Ainda segundo NAYLOR et al. [25], existem trs perguntas que devem ser respondidas e antes de inicar o uso de simulao para solucionar um determinado problema. So elas: ca a 1. E o processo de mais baixo custo para soluo do problema? ca 2. H segurana de se obter uma soluo satisfatria? a c ca o 3. A tcnica a ser usada permitir uma interpretaao relativamente fcil por parte do e a c a usurio? a A primeira pergunta no se aplica ao SimNeural ou a outros projetos de simulao a ca desenvolvidos para ns didticos ou de pesquisa, sendo mais levantada no meio emprea sarial ou de mercado. J as duas ultimas, so completamente aplicveis a projetos deste a a a tipo, pois ao utilizar a simulao de forma didtica, precisamos que ela permita uma inca a terpretao fcil pelos usurios e a soluao deve ser segura o suciente para satisfazer os ca a a c objetivos propostos.

14

Diversos autores, dentre os quais LAW & KELTON (2000) [24], NAYLOR(1971) [25] e SHIMIZU(1975) [30], citam algumas atividades onde a simulaao em computador digital c poderia ser utilizada: Experimentaao e avaliaao, com vista a prever resultados de mudanas sem implementc c c a las de fato em um sistema real, evitando gastos excessivos e riscos; Forma de estudar novos sistemas, buscando o renamento destes; Compreenso de sistemas reais legados; a Familiarizar equipes com equipamentos ou sistemas; Ensino, como material pedaggico para estudantes ou prossionais; o Aquisiao de conhecimento atravs das etapas de uma simulaao, principalmente na c e c formulao do problema, na construao do modelo e na anlise dos resultados; ca c a Projeoes de futuro, como ,por exemplo, mercado de aoes; c c Situaes de risco para sade humana, como ambientes radioativos. co u Propriedades de um modelo de simulao ca Segundo Barton [4], um modelo de simulaao tem as seguintes propriedades: c 1. Inteno de representar a totalidade ou parte de um sistema; ca 2. Possibilidade de ser executado e manipulado; 3. O tempo ou contador de repetioes uma de suas variveis; c e a 4. Proposta de auxiliar no entendimento do sistema; Quanto ao aux referido no item 4, pode signicar uma descriao de uma parte do lio c sistema, explicaao do comportamento do sistema, prediao do comportamento do sistema c c ou ensino da teoria por trs do sistema modelado. a

3.4.1

Caracter sticas do modelo de simulao usado no projeto ca SimNeural

O Projeto SimNeural, que consiste em um simulador de Redes Neurais Articiais, foi desenvolvido com base em um modelo de simulaao no-linear, dinmico, instvel, c a a a discreto e estocstico. Estas caracter a sticas so completamente atendidas pelo pacote de a simulaoes ExtendSim. c

3.5

Vantagens e desvantagens da simulao ca

Segundo diversos autores da area, os benef cios mais citados das tcnicas de simulao e ca so: a Modelos mais realistas; 15

Processo de modelagem evolutivo: os modelos iniciam-se simples e crescem em complexidade com o tempo a medida que so compreendidas as peculiaridades dos ` a sistemas; E se? (What if ?): a eterna pergunta que nos fazemos pode ser realizada livremente com simulaao de modelos; c Aplicao em problemas mal estruturados: muitos problemas reais ainda no ca a foram totalmente estruturados. A simulao uma ferramenta para estudos destes ca e tipos de problemas; Facilidade de comunicao: Simulaoes podem ser usadas no ensinamento de ca c modelos matemticos ou de sistemas complexos, por terem uma linguagem de melhor a compreenso; a Soluoes rpidas; c a Grande exibilidade; Mas citam tambm algumas desvantagens: e Tempo e experincia necessrios para construo de modelos; e a ca Em alguns casos, a simulaao apresenta resultados de dif interpretaao; c cil c Uso inadequado em situaes mais simples, quando uma soluo anal co ca tica poss e vel; Tempo grande de processamento quando os recursos computacionais so muito lia mitados. As desvantagens da simulao esto sendo combatidas com avanos tanto no poder ca a c computacional quanto no desenvolvimento de pacotes de simulaoes mais rpidos, amigc a a veis e robustos. O uso de animaes 3D nos pacotes uma clara pretenso de facilitar a co e a visualizao de alguns resultados de dif interpretao. ca cil ca

3.6

Etapas em um estudo com simulao ca

A programaao do modelo representa somente 25 a 50 por cento do trabalho em c um estudo de simulaao, LAW(2003) [23]. Ainda cita que muitas pessoas que executam c estudos com simulaao no possuem um treinamento formal em simulao alm do uso c a ca e de produtos de simulao em particular. ca Conduzir um estudo utilizando simulao requer que o analista tenha, no m ca nimo, conhecimentos em validaao de modelos, distribuiao das probabilidades de entrada, dec c sign e anlise de experimentos de simulaao, teoria da probabilidade, etc. Alm destes a c e conhecimentos, preciso conhecer profundamente o sistema que ser simulado. e a LAW [23] props sete passos para conduao com sucesso de um estudo com simulaao. o c c Eles podem ser visualizados em forma de um esquema na gura 3.1

16

Figura 3.1: Os sete passos de um estudo utilizando simulaao. (FONTE: Traduzido e c adaptado de LAW [23])

3.6.1

Passo 1. Formular o problema

O problema de interesse do estudo deve ser formulado pela pessoa que toma decises o no projeto. Nem sempre o problema est completamente denido e, muitas vezes, com o a avano dos estudos pontos obscuros so esclarecidos e devem ser comunicados ao tomador c a de decises que pode, com eles, reformular o problema. Os seguintes aspectos devem ser o denidos: Objetivos gerais do estudo; Objetivos (questes) espec o cos a serem respondidos pelo estudo, para determinar o correto n de detalhamento do modelo que ser desenvolvido; vel a Medidas de desempenho que sero utilizadas para avaliar a eccia das diferentes a a conguraoes do sistema; c Escopo do modelo, tambm ligado ao n de detalhamento necessrio; e vel a As conguraoes do sistema a serem modeladas; c

17

Janela de tempo e recursos necessrios para o estudo. Muitas vezes ocorre subestia maao do tempo e recursos necessrios para o estudo. c a

3.6.2

Passo 2. Coleta de nformaoes/dados e construo do c ca modelo conceitual

Envolve a coleta de informaoes sobre a estrutura do sistema e dos procedimentos c executados por ele. As informaes coletadas, como algoritmos, procedimentos, parco a metros, etc., devem ser documentadas, coisa que muitas vezes esquecida. O n de e vel detalhamento do modelo vai depender, alm dos aspectos citados anteriormente, da dise ponibilidade de dados do sistema, credibilidade que se deseja alcanar. c No existe uma correspondncia exata (one-to-one), o ideal comear com um modelo a e e c simples e increment-lo progressivamente, pois o excesso de complexidade pode causar um a aumento desnecessrio no tempo de simulaao do modelo ou pior, obscurecer fatores do a c sistema que realmente so importantes. a

3.6.3

Passo 3. Validao do modelo conceitual ca

LAW [23] prope um percorrimento estruturado do modelo conceitual. Ele defende que o isso ajuda a garantir que as suposioes do modelo esto corretas e completas e promove um c a dom sobre o problema. Este percorrimento deve ser executado antes da programaao, nio c para evitar re-trabalho.

3.6.4

Passo 4. Programar o modelo

Programar o modelo conceitual em alguma linguagem de propsito geral (C, C++, o FORTRAN) ou em um pacote de simulaao (ARENA, Extend, STELLA). A vantagem do c uso de linguagens de propsito geral a familiaridade que pode j existir com a linguagem, o e a garantindo um melhor controle do programa, e menor custo com a produao do software. c Por outro lado, o uso de pacotes de simulaao reduz o tempo de programao e at mesmo c ca e o custo em projetos grandes.

3.6.5

Passo 5. Validao do programa ca

A validao do programa consiste em vericar se o programa representa corretamente ca o modelo e se o mesmo funciona corretamente. E importante a realizaao de testes e c debugging nesta etapa. Algumas tcnicas de validaao so: e c a Validao de resultados: se existir um sistema, compare as medidas de perforca mance com o modelo de simulao programado. E a mais importante tcnica de ca e validaao, pois se os resultados forem positivos, fatalmente aumenta a credibilidade c do programa; Reviso de resultados: mesmo que no exista um sistema real para comparao, a a ca analistas devem revisar os resultados para procurar inconsistncias; e

18

Anlise de sensibilidade: deve ser executada para vericar, no programa do a modelo, quais fatores/variveis tm um maior impacto no comportamento e na a e performance, visando descobrir quais devem ser mais cuidadosamente modeladas.

3.6.6

Passo 6. Desenhar, conduzir e analisar experimentos de simulao ca

Para cada congurao do sistema, decidir os principais aspectos como o tempo de ca execuo, nmero de replicaoes independentes, etc. Planejar com uma espcie de script ca u c e de experincia como sero realizados os testes e obtidos os resultados. e a

3.6.7

Passo 7. Documentar e apresentar os resultados da simulao ca

A documentao deve conter o modelo conceitual, uma descrio detalhada do proca ca grama computacional, bem como resultados e concluses dos estudos. Uma apresentaao o c nal deve ser realizada, mostrando animaoes ou o programa sendo executado, alm de c e discusso sobre a construao e validaao do modelo de forma a promover sua credibilidade. a c c Os passos acima so um guia para estudo atravs de simulaao, mas nada impede a e c que outras tcnicas de gesto de projetos, ou mesmo de outras tcnicas de estudo sejam e a e utilizadas com os experimentos com simulaoes. c

19

Anos 50 e 60

Ferramenta Linguagens de propo sito geral

70 e inicio dos 80

Linguagens de simulaao c

80 e inicio dos 90

Simuladores de Alto n vel

90 em diante

Pacotes de Simulaao c

Caracter sticas do estudo de simulaca o Aplicaoes em grandes corporaoes; Grupos c c de desenvolvimento de modelos com 6 a 12 pessoas; Geram programas a serem executados em grandes computadores; Grandes investimentos em capital; Aplicveis a quala quer contexto; Exigem conhecimento profundo da linguagem; Exigem muito tempo de desenvolvimento; No so totalmente a a reutilizveis. a Utilizaao em um maior nmero de corpoc u raes; desenvolvimento e uso dos pacotes co de linguagens; surgem linguagens de simulaao baseadas em System Dynamics; comanc dos projetados para tratar lgica de las e o demais comandos comuns; Mais amigveis, a mas ainda requerem programador especializado. Introduo do PC e da animaao; Simulaca c ao realizada antes do inicio da produo; c ca Facilidade de uso; Menos ex vel que as linguagens de propsito geral e de simulao ao; Projetados para permitir modelagem c rpida; Dispem de elementos espec a o cos para representar las, transportadores, etc.; Restringem-se a sistemas de certos tipos. ` Melhor animao e facilidade de uso; Fcil ca a integraao com outras linguagens de prograc maao; Usada em fase de projeto; Grande c uso em servios; Uso para controle de sisc temas reais; Grande integrao com ouca tros pacotes (bases de dados e processadores de texto); aprimoramento dos simuladores, permitindo rpida modelagem; Intea gram a exibilidade das linguagens de simulaao com a facilidade de uso dos pacotes de c simulaao. c

Exemplos FORTRAN, PASCAL e C

SIMSCRIPT, GPSS, GASP, IV, DYNAMO, SIMAN, SLAM

Simfactory e XCell

ARENA, Extend, Stella, ProModel

Tabela 3.1: Evoluao da simulao e das ferramentas ao longo do tempo (FONTE: KELc ca TON et al. (1998) [20]

20

Cap tulo 4 Ambiente de simulao ExtendSim ca


Neste cap tulo exploraremos o ambiente de Simulaao ExtendSim, da empresa Imagine c That! Inc., no intuito de demonstrar o potencial da ferramenta e as possibilidades que ele oferece aos usurios. Tambm veremos os principais elementos necessrios para a a e a construao e/ou alterao de modelos na ferramenta, inclusive os modelos elaborados no c ca Projeto SimNeural.

4.1

O surgimento do ExtendSim

Bob Diamond o presidente da Imagine That! e foi o idealizador do software Extend, e antecessor do atual ExtendSim. Ainda durante a corrida espacial, ele entrou no ramo da simulaao ao criar um poderoso modelo para simular um novo combut liqu para, c vel do nada mais nada menos, que o projeto Apollo da NASA. Contudo, ele vericou que a simulaao criada com base neste modelo era inacess para outras pessoas, devido a sua c vel grande complexidade. Com o surgimento de sistemas de interface grca com usurios (GUIs), como o Mac a a OS e o Windows, Bob idealizou que as ferramentas GUIs permitiriam colocar o sonho de tornar simulaoes mais acess c veis para usurios de diversas disciplinas, atravs da a e construao de modelos utilizando estas novas interfaces. Foi desta idealizaao que surgiu c c a empresa Imagine That! Inc., em 1987, desenvolvedora do Extend e posteriormente do ExtendSim.

4.1.1

Principais caracter sticas

Algumas caracter sticas interessantes do ambiente, segundo a Imagine That! [17]: Construao de modelos atravs de blocos programveis e de GUI; c e a GUI customizvel, os blocos podem ser alterados livrementes, atravs de sistema a e semelhante ao VisualBasic da Microsoft; Criaao de n c veis hierrquicos nos modelos, permitindo uma estruturao em camaa ca das dos modelos; Animaoes em 2D e 3D; c

21

Permite alterao de paramtros durante a execuo das simulaes; ca e ca co Editor de equaes; co Grcos custumizaveis para exibir resultados das simulaoes; a c Integrao com outras linguagens de programaao, como C++, Visual C++, etc. ca c O Ambiente pode ser usado tanto para simulao de modelos continos ou discreca u poss criar bibliotecas com blocos de simulaao customizveis, permitindo um tos. E vel c a compartilhamento entre usurios do ambiente. a

4.2

Verses do ExtendSim o

O ExtendSim uma ferramenta sob licenciamento copyright, que pro a execuao e be c de uma parte da obra ou ela no todo, por terceiros no autorizados. No corpyright, o a autor no permite a modicaao, alterao, distribuio e nem a criao de obra derivada, a c ca ca ca sem prvia autorizao. Contudo, a empresa forneceu uma cpia para desenvolvimento e ca o de projetos acadmicos, do qual deriva este trabalho. e A verso cedida para ns acadmicos foi a ExtendSim 7 OR, segue abaixo tabela a e comparativa entre as verses dispon o veis [17]: Continuous Processes (CP) ExtendSim CP o produto base da site, a pedra fundamental. Ele e u possui uma srie de funes ncleo que esto inclu e co u a das em todas as outras verses, alm de construoes especializadas na modelagem o e c de processos cont nuos. Nesta verso, apenas a animao 2D est a ca a dispon vel. As ferramentas da verso OR permitem a pesquisa de desempenho a operacional, atravs de um sistema de eventos discretos baseado e em trocas de mensagens. Com esta verso poss acompanhar a e vel e analizar o comportamento de entidades f sicas ou lgicas quando o os eventos lev-los a mudar de estado. a A verso AT apresenta funcionalidades voltadas para processamena tos em lotes, que buscam simular taxas de uxo para sistemas de grande volume ou de grande velocidade. E ex suciente para vel acomodar qualquer escala de processo industrial. Alm disso, inclui e todas as capacidades da verso OR. a A principal funcionalidade adicionada por esta verso o uso da a e tcnologia de animaao 3D. O ambiente 3D independente, mas e c e integrado com os modelos lgicos, sendo a animao em 3D, uma o ca adiao ` modelos lgicos j validados. Alm disso, incli todas as c a o a e u funcionalidades das verses anteriores. o

Operations Research (OR)

Advanced Technology (AT)

ExtendSim Suite (Total simulation Project Support)

Tabela 4.1: Verses existentes do ExtendSim o J existe no mercado a verso 8 do ExtendSim, com aprimoramentos em relaao a a a c verso utilizada neste trabalho. Contudo, como tinhamos apenas a verso 7 dispon a a vel, no abordaremos as diferenas. A unica coisa a observar que modelos criados na verso a c e a 7 podem ser recompilados, sem problemas, para a verso atual. a 22

4.3

Construo e execuo de modelos no ambiente ca ca ExtendSim OR

Nesta sesso veremos as ferramentas que o ambiente de simulao em sua verso a ca a OR coloca nas mos de seus usurios: interface GUI, controles do uxo da simulao, a a ca principais bibliotecas, blocos etc.

4.3.1

Interface GUI

A interface GUI, que iremos denominar daqui em diante de rea de trabalho, onde a e os usurios iro construir seus modelos atravs da insero de blocos prontos que realizam a a e ca determinadas aes durante as simulaes. O usurio necessita apenas abrir bibliotecas, co co a escolher os blocos que deseja utilizar e arrast-los para a area de trabalho. A comunia caao entre os blocos realizada, via de regra, por conexes de entrada e sa c e o da, que so a conectadas durante a criao do modelo. ca A gura 4.1 demonstra a area de trabalho de um dos modelos de exemplo que esto a inclu dos no ExtendSim. Destacamos em vermelho as conexes de entrada e sa o da, que podem ser interligadas atravs de simples comandos de clique e arraste do mouse. e

Figura 4.1: Figura mostrando a area de trabalho do modelo Presa-Predador, um dos modelos exemplos que so distribu a dos juntamente com o ExtendSim Os cones dos blocos e as ferramentas de descriao das informaes contidas nos blocos c co possibilitam a criaao de modelos de fcil entendimento por outras pessoas. c a

23

4.3.2

Bibliotecas e Blocos

J adiantamos que os modelos so constru a a dos atravs da inserao e conexo de blocos e c a na rea de trabalho do ExtendSim. Agora mostraremos o que de fato um bloco e como a e podem ser acessados, operados e constru dos. Como exemplo usaremos o bloco denominado Math, um dos blocos prontos disponibilizados na biblioteca Value. No ambiente ExtendSim, as bibliotecas so arquivos de a extenso .lix que podem ser criadas, abertas ou fechadas atravs do menu Library dispoa e n no ambiente ExtendSim, elas possum a funao de armazenar de forma organizada vel e c os blocos.

Figura 4.2: Janela mostrando o uso de um bloco no extend sim. Observe a biblioteca aberta, o bloco colocado na rea de trabalho e sua respectiva caixa de dilogo aberta a a Ao colocar um bloco na rea de trabalho, um clique duplo sobre ele nos permite acesa sar um dilogo de conguraao que, geralmente, atua sobre as operaoes realizadas pelo a c c bloco. Na gura 4.2 o dilogo do bloco Math est aberto, juntamento com a biblioteca Vaa a lue.lix. Este bloco possui um srie de funes matemticas que podem ser usadas durante e co a uma simulaao. Por padro a operao selecionada a de adio (Add), uma alteraao c a ca e ca c na operao, atravs da seleo da categoria e da operaao em si, altera totalmente o ca e ca c comportamento do bloco, inclusive seu cone. Note que para realizar alteraoes das operaoes realizadas pelos blocos ou mesmo c c alterar a quantidade de operandos, o usurio no necessita de nenhum conhecimento em a a programaao, tudo relizado por uma interface grca e esta sem dvida uma das c e a e u grandes vantagens da utilizaao deste ambiente de simulaao. c c As bibliotecas e blocos podem ser compartilhadas por modelos diferentes. Um mesmo bloco de uma mesma biblioteca ter o mesmo comportamento em todos os projetos nos a quais forem utilizados. Esta caracter stica propicia um desenvolvimento de blocos reu-

24

sveis, tal modelo se encaixa no desenvolvimento baseado em reuso de componentes, de a acordo com SOMMERILLE [32]. Icone Representaao grca do bloco. Ela pode ser esttica ou dinmica, c a a a como o caso do bloco Math que muda seu e cone de acordo com a operao selecionada. ca Ao lado do boto help na caixa de dilogo do bloco, existe um a a campo que pode ser usado para rotular o bloco. O texto do retulo o exibido junto ao bloco na area de trabalho. e Elementos fundamentais dos blocos, pois atravs deles que so ese e a tabelecidas as conexes entre blocos, bem como o uxo de execuo o ca dos modelos. Os conectores podem ser de entrada ou sa da, sendo que cada um deles possui um modo espec co de uso. E transparente para o usurio, sendo a lgica interna do bloco. E a o escrita em uma linguagem semelhante ao C chamada ModL Interface grca que permite aos usurios alterar o comportamento a a do bloco Tabela 4.2: Componentes de um bloco Olhando mais a fundo o relacionamento entre modelos, blocos, e bibliotecas, podemos dizer que os blocos usados em um modelo so armazenados nas bibliotecas. A denio a ca completa de um bloco (seu cdigo, o cone, itens GUI,etc) armazenadas em uma biblioteca. e Ao incluir um bloco em um modelo, ele no de fato copiado para o modelo, mas a e apenas uma referncia a determinada biblioteca e ao bloco so inseridas no modelo, de e a forma que ao abrir um modelo salvo ele buscar pelas referncias. Isso o que permite um a e e fcil reuso e manuteno dos blocos, pois alterando uma denio de um bloco em uma a ca ca biblioteca, todos os modelos que referenciam este bloco so automaticamente atualizados. a Alm disso, este mtodo reduz o gasto com memria e processamento dos modelos. e e o

Rtulo o

Conectores

Cdigo o Caixa de dilogo a

4.3.3

Camadas hierrquicas a

Em modelos complexos, poss a criao de diversas camadas que podem agrupar e vel ca blocos para formar subsistemas dentro da simulaao de um sistema complexo. Eles so c a chamados de blocos hierrquicos e tm como principal funao organizar os modelos. Um a e c bloco hierrquico pode ser criado vazio ou a partir de blocos j existentes no modelo. Sua a a aparncia semelhante a de um bloco comum, mas um duplo clique sobre ele no abre e e a uma caixa de dilogo, mas uma area semelhante a area de trabalho do projeto, como se a fosse sua extenso, contendo os blocos que esto dentro dele. a a A ideia literalmente colocar blocos dentro de outros blocos, entretanto, os blocos e criados para realizar esta organizaao no so armazenados nas bibliotecas, mas no prprio c a a o modelo. Muitas vezes o usurio do ExtendSim pode deparar-se com modelos que necessitam a de n camadas. Visando simplicar o acesso aos parmetros dos blocos internos, existe a uma ferramenta que permite ao usurio copiar elementos das caixas de dilogos de blocos a a internos para uma camada de controle criada por ele.

25

Assim como blocos comuns, cones e animaoes 2D podem ser adicionados aos blocos c hierrquicos. Unindo o uso deles com ferramentas para desenho de formas e de escrita em a modelos, poss criar modelos complexos ao mesmo tempo em que no se abre mo de e vel a a uma fcil compreenso por quem for execut-los. a a a

4.3.4

Executando simulaoes c

Com o modelo constru o usurio deve congurar a execuao da simulaao. No caso do, a c c do Projeto SimNeural, todos os parmetros internos do modelo j estaro congurados, a a a restando ao usurio alterar parmetros do SimNeural. a a Simulation Setup Atravs do menu Run > Simulation Setup o usurio tem acesso ao painel para cone a guraao dos parmetros da simulaao (Figura 4.3), bem como das animaes 3D, caso elas c a c co existam; poss alterar quantas vezes a simulaao ser executada, o modo de interao e vel c a ca com o ambiente 3D, etc. Estas conguraes valem para cada execuao de uma simulaao, co c c no sendo preciso realizar novas conguraes para o mesmo modelo antes de uma nova a co execuo. ca

Figura 4.3: Painel Simulation Setup, responsvel por congurar os parmetros de execuo a a ca da simulao ca Aps a congurao da simulao, poss realizar a execuao de diversas formas: o ca ca e vel c atravs do boto Run Now, localizado no prprio dilogo de congurao; atravs do e a o a ca e atalho de teclado (Ctrl+R); ou atravs da barra de ferramentas do ambiente. e 26

4.3.5

Ambiente de programao no ExtendSim ca

Existe um poderoso ambiente de desenvolvimento dentro do ExtendSim. Ao acessar a estrutura de um bloco duas janelas sero abertas: uma com a estrutura propriamente a dita e outra com o editor de dialogbox. Edio da estrutura do bloco ca A janela de estrutura dividida em quatro frames: e cone, ajuda, cdigo, variveis. o a

Figura 4.4: Janela de ediao da estrutura de blocos do ExtendSim. c

Icone Neste frame realizada a ediao do e c cone que representa o bloco, bem como os conectores e objetos de animao. Existem ferramentas de desenho para criao de ca ca cones, mas, alm delas, podem ser coladas guras existentes. e Ajuda Usado para inserir ou editar uma espcie de documentaao de ajuda para o bloco. e c O texto escrito aqui pode ser acessado atravs do boto Help presente no canto inferior e a esquerdo da caixa de dilogo do bloco. a Variveis Exibe todas as variveis denidas nos itens inseridos na caixa de dilogo do a a a bloco. Como referncia, este painel exibe tambm todas as variveis de sistema e nomes e e a de mensagens. 27

Cdigo Usado para inserir e editar o cdigo ModL do bloco. Possui a funcionalidade o o ` de realar os cdigos a medida que so digitados para torn-los mais compreens c o a a veis. A medida que o cdigo escrito, existe uma funcionalidade que sugere poss o e veis funes para co uso, como um auto-complete. No momento da compilaao, a janela exibe a posiao dos c c erros de sintaxe. Abordaremos os aspectos da ModL mais adiante. Edio do dilogo do bloco ca a Como j explicamos, a caixa de dilogo ou, simplesmente, dialogbox do bloco a intera e face com o usurio. Ao contrrio do que poderia se pensar, alter-lo a parte mais simples a a a e da criao/alterao de um bloco. O ExtendSim possui um poderoso editor WYSIWYG ca ca (What you see is what you get). Todos os elementos vis veis no dialogbox como textos, tabelas, botes, etc. so conheo a cidos como dialog itens ou itens de dilogo. Cada um destes itens possui suas denioes, a c seus formatos e um nome de varivel que os identica. a Para inserao novos dialog itens existem ferramentas agrupadas em no menu Develop, c que armazena diversas ferramentas para trabalhar com o desenvolvimento de blocos. Aps o insero, os dialog itens podem ser usados no cdigo fonte do bloco e so exibidos na janela ca o a de edio da estrutura. ca Um aspecto negativo do pacote ExtendSim que a formataao dos elementos das caixas e c de dilogo se limitam ao posicionamento dos itens na rea da caixa. No poss alterar a a a e vel a fonte ou o tamanho dela, o que prejudica a visualizao de dados ou a customizaao para ca c pessoas com problemas de viso ou de idades mais avanadas, forando a diminuio da a c c ca resoluao do monitor para tentar visualizar melhor as informaes na tela, o que acarreta c co preju zos para a visualizaao dos modelos como um todo. c

4.3.6

A linguagem ModL

No Ambiente de programaao ExtendSim, a linguagem utilizada a ModL, que possui c e uma estrutura muito semelhante ao C. Alm disso, DLLs e bibliotecas compartilhadas e provm um mtodo para ligar o ExtendSim com outras linguagens de programao, como e e ca C++, java, etc. Por ter uma estrutura similar ao C, o aprendizado da linguagem para o desenvolvimento deste trabalho no foi de grande diculdade. Tivemos maiores problemas com a as estruturas de dados que tiveram que ser criadas internamente, pois basicamente no a existiam estruturas compat veis com o trabalho que realizamos. Atravs da linguagem Modl poss acessar todos os elementos do bloco criados a e e vel partir do dialogbox editor, bastando apenas usar a varivel que foi denida no momento a da criaao do dialog item. Existem message handlers que interpretam mensagens vindas c da simulao, de outros blocos ou da interaao com o dialogbox do prprio bloco, para ca c o executar um bloco de instruoes denidas, de forma muito semelhante com o Visual Basic. c Segue um exemplo de message handler usando Modl no ExtendSim, retirado de [16]: on messagename { one or more statements; } 28

As declaraoes no corpo do message handler tm o mesmo formato das demais declac e raes do Modl, que so extremamente parecidas com C. co a Como observamos durante esta sesso, dissemos que o ModL muito semelhante ao C. a e Realmente, a sintaxe das linguagens se comportam de maneira semelhante at mesmo na e questo de ignorar espaos em branco e terminar sentenas com ponto-e-virgula. Contudo, a c c segue uma tabela demonstrando algumas diferenas entre ModL e C: c ModL Case insensitive real ou double (Mac OS e Windows: 16 d gitos signicat vos integer ou long (32bits) String ou Str255 (255 caracteres no mximo) a Subscripts que vericam limites dos arrays, exibindo mensagens de erros em caso de buffer overow Funoes declaradas apenas usando padro c a ANSI (declaraes de prottipos) co o Funoes e message handlers podem ser soc brescritos O lao for tem a seguinte sintaxe: c for(declaraao;boleano;declaraao) c c operador de exponenciao (como usado em e ca BASIC e em planilhas eletrnicas) o Concatenaao de strings ocorre utilizando o c operador + C Case sensitive double long typdef struct para denir a estrutura equivalente No h tratamento quanto aos limites do ara a ray Funoes podem ser declaradas nos padres c o KeR ou ANSI No dispon a vel em C, mas dispon vel em C++ O lao for tem a seguinte sintaxe: c for(expresso;expresso;expresso) a a a Em C, usado somente como operador OU e exclusivo em extresses lgicas o o Em C preciso utilizar a funao strcat e c

Tabela 4.3: Diferenas entre Modl e C c Poderiamos escrever um livro sobre todas as ferramentas, especiciadades e potencialidades que o ambiente ExtendSim e a linguagem ModL oferece ao desenvolvedor, tamanha a quantidade de informaoes. Para um conhecimento mais aprofundado sobre estes asc suntos, sugerimos a consulta aos livros/manuais do ExtendSim [16, 17].

29

Cap tulo 5 Redes Neuronais Articiais (RNAs)


As redes so usadas para modelar inmeros fenmenos em f a u o sica, cincia da computae ao, biologia, bioqu c mica, etologia, matemtica, sociologia, economia, telecomunicaoes e a c vrias outras reas. Isto ocorre porque muitos sistemas podem ser vistos como uma rede: a a clulas, computadores, populao, etc. e ca

5.1
5.1.1

Introduo as Redes Neuronais ca


Fundamentos Biolgicos o

O sistema nervoso humano responsvel por gerar e transmitir est e a mulos que chegam ou partem do crebro. Constitu de clulas denominadas neurnios (veja gura 5.1), o e do e o crebro e responsvel pela deciso, integraao dos pensamentos e sensaoes e pela adape a a c c tao do organismo e do prprio ser, sendo esta ultima funao realizada atravs do aprenca o c e dizado.

Figura 5.1: Neurnio Natural o O crebro um computador (sistema de processamento de informaao) altamente come e c plexo, no-linear e paralelo. Segundo HAYKIN [14], Ele tem a capacidade de organizar a suas clulas (neurnios) estruturais de forma a realizar certos processamentos de recoe o nhecimento de padres, percepao e controle motor inmeras vezes mais rpido que os o c u a computadores digitais existentes atualmente. 30

O neurnio delimitado por uma na membrana celular que possui determinadas o e propriedades, essenciais ao funcionamento da clula. A partir do corpo celular projetame se extenses lamentares, os dendritos e o axnio. Os neurnios so denidos como clulas o o o a e polarizadas capazes de receber sinais em seus dendritos e transmitir informaes por co seus axnios. Ao ser excitado, um neurnio transmite informaes, atravs de impulsos, o o co e chamados potenciais de aao para outros neurnios. Estes sinais so propagados como c o a ondas pelo axnio da clula e convertidos para sinais qu o e micos nas sinapses. O neurnio biolgico pode ser visto como o dispositivo computacional elementar do o o sistema nervoso, composto de muitas entradas e uma sa da. As entradas so formadas a atravs das conexes sinpticas que conectam os dendritos aos axnios de outras clulas e o a o e nervosas. Os sinais que chegam por estes axnios so pulso eltricos conhecidos como o a e impulsos nervosos ou potenciais de aao e constituem a informaao que o neurnio processa c c o para produzir como sa um impulso nervoso no seu axnio, arma KOVACS [22]. da o

5.1.2

Histrico das Redes Neurais Articiais o

As Redes Neuronais Articiais ou tambm denominadas Redes Neurais Articiais e (RNAs) surgiram por volta de 1943, quando o neurosiologista Warren McCulloch e o matemtico Walter Pitts, da Universidade de Illinois, zeram uma analogia entre as a clulas nervosas e o processo eletrnico num artigo publicado no Bulletin of Mathematical e o Biophysics com o t tulo: A Logical Calculus of the Ideas Immanent in Nervous Activity, segundo HAYKIN [14]. Em 1949, o bilogo e psiclogo Donald Hebb, estudando o comportamento dos anio o mais, reforou as teorias do condicionamento psicolgico pela propriedade de neurnios c o o individuais. O estudo de Hebb props um princ de aprendizado em sistemas nervosos o pio complexos, ou seja, uma lei que descreve o funcionamento quantitativo da sinapse e do processo de treinamento humano, publicado no seu livro The Organization of Behavior. Em 1951, Marvin Minsky, co-fundador do Laboratrio de Inteligncia Articial do o e MIT, construiu o SNARC, o primeiro simulador de cadeia neural. O SNARC podia ajustar seus pesos sinpticos automaticamente. Apesar de no chegar a executar alguma funao a a c de processamento de informao interessante, ele serviu de fator motivador para ideias que ca surgiram posteriormente. Em 1956, na Primeira Conferncia Internacional de Inteligncia e e Articial, o pesquisador da IBM, Nathaniel Rochester, apresentou um modelo de rede neural articial que consistia numa simulao de centenas de neurnios interconectados ca o atravs de um sistema que vericaria como a rede responderia aos est e mulos ambientais. J em 1959, Frank Rosenblatt, na Universidade de Cornell, criou uma rede de mltia u plos neurnios do tipo discriminadores lineares e a batizou de rede perceptron. Rosenblatt o baseou-se nas linhas de pensamento de McCulloch para desenvolver o seu modelo matemtico de sinapse humana. Devido as suas complexas pesquisas e inmeras contribuies a u co tcnicas, muitos o consideram como fundador da neurocomputaao. e c No nal da dcada de 50, Minsky e Seymour Papert lanaram em uma obra chamada e c Perceptron, a qual demonstrava que o modelo apresentado por Rosenblatt no era muito a promissor, devido ao uso de tcnicas emp e ricas, das grandes diculdades da matemtica a envolvida e dos poucos recursos computacionais dispon veis na poca. A publicao de e ca Minsky e Papert acabou esfriando as pesquisas e praticamente todo o investimento nanceiro nesta rea foi cancelado. a 31

Nos anos seguintes, muitos artigos foram publicados, e vrias previses exageradas a o e pouco conveis para a poca foram anunciadas HAYKIN [14]. Enquanto Rosenblatt a e trabalhava no Perceptron, Bernard Widrow e alguns de seus estudantes da Universidade de Stanford desenvolveram um novo modelo de processamento de redes neurais chamado de Adaline (ADAptive LINear Elemtent), a qual se destacava pela sua poderosa lei de aprendizado. O princ pio de treinamento para as redes Adalines cou conhecido como a Regra Delta, que foi mais tarde generalizada para redes com modelos neurais mais sosticados. No in da dcada de 80, O f cio e sico e bilogo de reputaao mundial John Hopeld tamo c bm se interessou pela neurocomputao e escreveu vrios artigos, criticando fortemente e ca a as teorias apresentadas por Minsky e Papert na dcada de 50, que levaram vrios cientise a tas a se unirem nesta nova area emergente. O administrador de programas da DARPA (Defense Advanced Research Projects Agency) Ira Skurnick, criou em 1983 as pesquisas em neurocomputaao da DARPA. Estes fatos acabaram abrindo novos horizontes para a c neurocomputaao. c Em 1986, o professor de psicologia da Universidade de Stanford, David E. Rumelhart, e seu colega James L. McClelland, professor de psicologia da Universidade de CarnegieMellon, publicaram o livro Parallel Distributed Processing: Explorations in the Microstructure of Cognition (vol.1: Foundations, vol.2: Psychological and Biological Models), expandindo o campo de pesquisa da neurocomputao. Nesse livro, eles apresentam um ca modelo matemtico e computacional que propicia o treinamento supervisionado dos neura o nios articiais. Surgia, ento, o algoritmo backpropagation, um algoritmo de otimizaao a c global sem restrioes. c Em 1987 ocorreu a Primeira Conferncia de Redes Neurais. Tambm foi formada a Soe e ciedade Internacional de Redes Neurais (International Neural Networks Society - INNS ) juntamente com o INNS Journal em 1989, do Neural Computation e do IEEE Transactions on Neural Networks em 1990. A partir desses acontecimentos, muitas instituioes c formaram institutos de pesquisa e programas de educaao em neurocomputao. c ca

5.2

Caracter sticas das Redes Neurais Articiais

Neste projeto usamos para modelar problemas biolgicos e mdicos as Redes Neurais o e Articiais (RNAs) de mltiplas camadas. Um tipo de rede que v os ns como neurnios u e o o articiais (Perceptrons). Um neurnio articial (veja gura 5.2) um modelo computao e cional inspirado nos neurnios naturais. o Neurnios naturais recebem sinais atravs de sinapses situadas nos dendritos ou memo e brana do neurnio. Quando os sinais recebidos so fortes o suciente (ultrapassam um o a certo limite), o neurnio ativado e emite um sinal para o axnio. Este sinal pode ser o e o enviado para outro sinapse e pode ativar outros neurnios conforme gura 5.1. o Segundo SILVA [31], tendo a estrutura siolgica das redes neurais biolgicas e o funcio o onamento bsico dos neurnios, publicados por McCULLOCH e PITTS (1943), podemos a o descrever matematicamente um modelo para o neurnio biolgico conforme mostrado na o o gura 5.2, com as equivalncias descritas na tabela 5.1. e Os dendritos de um determinado neurnio k so representados pelos n sinais de eno a trada x1 , x2 , ..., xn , enquanto que a sa yk representa o axnio deste neurnio. Para da o o representar o efeito gerado pelas sinapses, cada sinal de entrada associado a um dee 32

Figura 5.2: Representaao grca de um Perceptron (neurnio articial) c a o Parmetro a Neurnio Biolgico o o Neurnio Articial o

Modelo Entrada Sa da Pesos Efeitos da sinapse

Dendritos Axnio o Comportamento das sinapses Neurnio ps-sinptico o o a

x1 , x2 , x3 , ..., xn yk Wk1 , Wk2 , Wk3 , ..., Wkn S k = n xi W i i=0

Tabela 5.1: Comparaao entre o neurnio biolgico (natural) e o neurnio articial. c o o o terminado peso (Wk1 , Wk2 , Wk3 , ..., Wkn ) denominado de pesos sinpticos. Que podem a assumir tanto valores positivos quanto negativos, representando, desta forma, os efeitos excitatrios ou inibitrios sobre o neurnio. O ncleo de processamento do neurnio (o o o o u o corpo celular) representado matematicamente pela junao de um combinador linear com e c a funo de ativaao. Basicamente, este combinador linear faz o somatrio de todas as ca c o entradas do neurnio, sendo que estas entradas so ponderadas pelos respectivos pesos o a sinpticos. Matematicamente, o combinador linear deste neurnio (Sk ) representado a o e pela equao 5.1: ca
n

Sk =
i=0

xi W i

onde x0 representa a entrada do bias e wk0 o peso associado a ele.

(5.1) A funo de ativao funciona como uma espcie de compressor, ou seja, ela restringe o ca ca e intervalo dos valores de sa do neurnio para uma faixa de valores previamente escolhida. da o Alm de agir sobre os valores de sa do neurnio, a funo de ativaao tambm age sobre e da o ca c e o valor bias. O bias uma espcie de excitador/inibidor dos neurnios da rede e tem a e e o funo de aumentar ou reduzir a entrada l ca quida de sinais, tendo, geralmente, um valor de entrada xo igual a 1 ou -1. Pode-se, inclusive, entender o bias como se fosse uma entrada adicional ao neurnio, porm com um valor xo. o e

33

Em um neurnio biolgico, o disparo de um impulso nervoso acontece se o percentual de o o sinais recebidos ca acima de um determinado limiar de excitao. No primeiro modelo ca de neurnio matemtico proposto por McCulloch e Pitts, a funo de ativaao usada, o a ca c denominada funao sinal, simula exatamente este comportamento. Se o somatrio das c o entradas do neurnio (Sk ) mais o valor do bias (bk ) excederem um determinado limiar o (geralmente 0), o valor de sa do neurnio ser igual a 1; caso contrrio ser igual a -1. da o a a a Matematicamente, isto representado por: e

yk =

1, se Sk +bk 0 1, se Sk +bk <0

A partir deste primeiro modelo de neurnio articial, surgiram vrios outros modelos o a que passaram a permitir a produo de uma sa com valores que no fossem necessarica da a amente -1 ou 1, utilizando outras funoes de ativaao. c c Uma das funoes mais usadas nas implementaoes das RNAs a funao sigmoide. c c e c Ela uma funao monotonamente crescente e seu grco tem a forma de S, sendo que e c a existem vrios tipos de funoes sigmoides, podendo variar o grau de curvatura e a faixa a c de valores de sa da funao. A funo de ativaao adotada na implementaao da RNA da c ca c c apresentada mais a frente nesta monograa, um tipo de funao sigmoide denominada ` e c funo log ca stica. Na equaao 5.2 a seguir apresentada a formulao matemtica e na c e ca a gura 5.3, o grco da funo log a ca stica: yk = 1 1 + eSk (5.2)

Figura 5.3: Funo Log ca stica As RNAs de mltiplas camadas ou tambm denominadas Multilayer Perceptrons u e (MLPs) tm sido aplicadas com sucesso em uma variedade de areas, desempenhando taree fas como: classicaao de padres (reconhecimento), controle e processamento de sinais. c o Aponta KOVACS [22]. Arvores de deciso e as redes neurais articiais so as tcnicas mais utilizadas nos a a e processos relacionados com minerao de dados, segundo PINHEIRO [26]. ca 34

Segundo HAN et al. [13], a minerao de dados (data mining) uma das etapas do ca e processo de Knowledge Discovery in Databases (KDD) - descoberta de conhecimento em banco de dados, o qual um processo muito mais complexo que busca extrair conhecimento e de uma base de dados. Nesta etapa, so utilizadas certas tcnicas, ou um conjunto delas, a e para extrair os dados mais signicativos de uma base de dados e, deles, informaoes. c As redes neurais articiais so as que despertam um maior interesse dentro da tecnoloa gia de data mining e dos processos de descoberta de conhecimento. Contudo, esta tcnica e possui algumas limitaoes no que diz respeito ` sua facilidade de uso e desenvolvimento, c a mas, mesmo assim, possui vantagens signicativas sobre outras tcnicas de mineraao de e c dados. A maior destas vantagens , sem dvida, a alta preciso dos modelos de prediao, e u a c que podem ser aplicados sobre uma extensa gama de problemas reais e de negcios. o Esta tcnica implementa padres de detecao e algoritmos de aprendizado de mquina e o c a para construir modelos de predio para bases de dados histricos em larga escala. ca o Uma rede neural constitu de trs tipos de camadas de neurnios BISHOP [5]. So e da e o a elas: Camada de entrada: onde os padres e dados so apresentados ` rede neural. o a a Camadas intermedirias (ou escondidas): nestas camadas feito todo o processaa e mento da rede neural. Camada de sa da: nesta camada o resultado da rede apresentado ao observador. e Na gura 5.4 pode ser visto o esquema de uma rede neural articial.

Figura 5.4: Topologia de uma rede neural articial de mltiplas camadas. u A tcnica de redes neurais surgiu da rea de inteligencia articial e parte da premissa e a de que as mquinas podem pensar se houver uma maneira de simular a estrutura e a o funcionamento do crebro humano nos computadores. Apesar de os cientistas ainda e estarem longe de entenderem o crebro humano, as tcnicas de redes neurais que so e e a executadas nos computadores j podem fazer muitas das coisas que as pessoas fazem, a procurando simular de certa forma o comportamento do crebro ou a maneira de pensar e do ser humano. Por sua origem e o sucesso recente que vem alcanando, as tcnicas de rede neurais c e articiais tm despertado um grande interesse no contexto de construo de modelos e ca preditivos em data mining. Para entender melhor como as redes neurais podem detectar 35

padres em bases de dados, uma analogia feita com o comportamento humano, ou seja, o e as redes neurais podem aprender a detectar tais padres e realizar melhores e mais o precisas predies da mesma forma que um humano o faz. co As redes neurais realizam este aprendizado, em sentido bastante real da palavra, porm, por trs deste aprendizado, os algoritmos e tcnicas que esto sendo desenvolvidos e a e a no so totalmente diferentes das tcnicas encontradas na estat a a e stica ou em outros algoritmos de mineraao de dados. Por exemplo, seria injusto armar que as redes neurais c poderiam superar outras tcnicas porque elas podem aprender e melhorar no decorrer e do tempo, enquanto que as outras tcnicas permanecem estticas PINHEIRO [26]. e a Uma caracter stica marcante das redes neurais que elas so extremamente automae a tizadas. Seu usurio nal, ou desenvolvedor, no precisa conhecer muito extensamente a a sobre como elas trabalham, sobre a modelagem de predio, ou mesmo sobre a base de ca dados para utiliz-las, segundo PINHEIRO [26]. Naturalmente, isto uma aproximaa e ao grosseira da realizada, mas dene bem a facilidade de construao de redes neurais c c utilizando-se aplicaoes de mercado. Lgico que o entendimento desses fatores facilita o c o desenvolvimento dos modelos preditivos e, principalmente, a anlise dos resultados, ainda a assim, o desconhecimento dos mesmos no fator de obstruo do uso desta tcnica. a e ca e Apesar da facilidade de construao e desenvolvimento de modelos preditivos baseados c em redes neurais, especialmente quando utilizadas ferramentas de mercado, algumas decises de projeto necessitam ser tomadas para se utilizar esta tcnica de forma efetiva, o e como os descritos a seguir. Quantos ns na rede sero conectados? o a Quantas unidades de processamento neuronais devem ser utilizadas? Quando o treinamento da rede neural deve ser interrompido para evitar um superajuste? As redes neurais so auto-adaptativas, isto , elas aprendem informaes sobre um a e co problema espec co. Elas trabalham bem nas tarefas de classicao, sendo muito uteis ca em mineraao de dados, HAN [13]. c

5.3

Aprendizado nas RNAs

Embora tenham sido criadas vrias topologias e formas de organizaao relacionadas `s a c a RNAs, que possibilitam a uma rede espec ca resolver um determinado tipo de problema, a propriedade principal e de importncia primordial a sua capacidade de aprender a a e partir de seu ambiente e de melhorar o seu desempenho atravs da aprendizagem, conforme e HAYKIN [14]. Utilizando a adaptao de HAYKIN [14] da deniao dada por Mendel e McClaca c ren(1970), denimos aprendizagem no contexto de redes neurais como: Aprendizagem um processo pelo qual os parmetros livres de uma rede neural so e a a adaptados atravs de um processo de estimulao pelo ambiente no qual a rede est e ca a inserida. O tipo de aprendizagem determinado pela maneira pela qual a modicao e ca dos parmetros ocorre. a 36

Existem vrias formas diferentes de aprendizado, que tambm esto relacionadas ` a e a a caracter stica topolgica da rede e ao aspecto do problema a ser resolvido. Tendo em o vista esta variedade de formas de aprendizado, nesta monograa so enfocados os princia pais conceitos relacionados ` forma de aprendizado utilizada na implementaao da RNA a c do software SIMNeural. Ou seja, o Aprendizado supervisionado atravs da retropropae gao de erros da camada de sa ca da, com a correao dos erros pela regras do algoritmo c Backpropagation. As Redes neurais Articiais podem ser classicadas em duas categorias principais de acordo com o paradigma de redes: redes supervisionadas e no supervisionadas. Os a mtodos adaptativos que tentam reduzir o erro de sa so os mtodos de aprendizado e da a e supervisionado, enquanto aqueles que desenvolvem representaoes internas sem amostras c de sa so chamados mtodos no supervisionados de aprendizado. da a e a

5.3.1

Aprendizagem por Correo de Erros ca

A retropropagao de erros da camada de sa pelas camadas escondidas para moca da dicar os pesos das ligaoes o mtodo mais comum para se construir um modelo de c e e rede neural. Como as unicas mudanas que podem ocorrer, uma vez que a arquitetura do c modelo foi decidida, so os pesos das ligaoes, estes pesos so alterados para melhorar a a c a preciso do modelo. a Basicamente pela alteraao destes pesos que as redes neurais tendem a no cometer c e a os mesmos erros em utilizaoes futuras. Se um erro cometido pela rede neural, este erro c e pode ser mensurado no n de sa como sendo a diferena entre o valor do n de sa o da c o da e o valor desejado. A sa desejada, porm, s conhecida quando se est na fase de da e oe a treinamento, quando os dados histricos so utilizados. o a A taxa de aprendizado controla o quo rpido as redes neurais reagiro para um erro a a a em particular BISHOP [5]. Se esta taxa alta, cada erro ser considerado como muito e a importante, e os pesos sero modicados signicativamente. Caso contrrio, se a taxa a a baixa, os pesos s sero alterados para a direo correta em cada ocorrncia do erro. e o a ca e Se um alto valor para a taxa de aprendizado utilizado, a rede agir rapidamente para e a corrigir qualquer ocorrncia de um eventual erro, porm, o prximo erro pode requerer e e o uma grande alterao nos pesos, o que poder acarretar na reverso das mudanas feitas ca a a c quando da ocorrncia do ultimo erro. e Uma taxa de aprendizado alta pode levar a construo de uma rede neural de forma ca muito mais rpida, porm, ela pode resultar em uma rede neural que no consiga atingir a e a uma convergncia, e os pesos podem mudar rapidamente de um valor para outro com e cada ocorrncia de um novo erro. e

5.3.2

Aprendizagem supervisionada

Ao criarmos uma rede neural, atribu mos os pesos sinpticos (representados por cada a conexo entre dois neurnios) de forma aleatria e dizemos que a rede neural burra, a o o e pois ainda no consegue distinguir corretamente nenhum conjunto de entrada que for a apresentado a ela. Para que os pesos sejam ajustados necessrio realizar o treinamento da rede. No e a momento de treinamento da rede, um subconjunto do conjunto de dados do problema e 37

apresentado a RNA para que ela possa, utilizando um algoritmo de aprendizagem (tambm e chamados de algoritmos de treinamento), ajustar os pesos para obter uma reduo no erro ca entre a sa apresentada pela rede para cada elemento do subconjunto e o valor que era da esperado para aquele elemento do subconjunto. Ou seja, o conjunto de treinamento e composto por valores de entradas e as respectivas sa das desejadas por este conjunto de dados. Nesta forma de aprendizagem, Figura 5.5, imagina-se a existncia de um supervisor (ou e professor) externo, que tem o conhecimento sobre o ambiente (o problema em questo). a A rede neural no possui nenhum conhecimento deste ambiente. a

Figura 5.5: Esquema do paradigma de aprendizagem supervisionada. Por estes motivos, o aprendizado dito supervisionado. Existe o caso em que a rede e e treinada apenas com um conjunto de dados de entrada sem a sa desejada, neste caso, da o qual no abordado pelo Projeto SIMNeural, o aprendizado dito no supervisionado. a e e a Segundo KOTSIANTIS [21], os algoritmos de aprendizagem supervisionada so aqueles a que objetivam construir um modelo de distribuiao de classes (categorias) em funao das c c caracter sticas dos dados em questo. Esse modelo formado a partir de um conjunto de a e treinamento, no qual as classes de suas instncias so previamente conhecidas. A partir a a da o algoritmo capaz de extrair caracter , e sticas importantes para futuras classicaoes. c No aprendizado supervisionado, so dados para o objeto um, dois ou mais conjuntos a de valores: o conjunto de valores de entrada e o conjunto de valores de sa esperados da para cada entrada, por exemplo. Desta forma, o treinamento consiste em um problema de otimizaao dos parmetros do objeto para que possam responder as entradas conforme c a ` esperado e extrapolar o mesmo comportamento para outras entradas no previstas no a treinamento.

5.4

Algoritmo de Aprendizado para Redes Neurais

Segundo KOVACS [22], o algoritmo backporpagation foi estabelecido como o mais popular algoritmo utilizado no contexto do aprendizado de RNAs MLP. A popularidade do algoritmo backpropagation resulta de sua relativa simplicidade de implementaao e do fato de ser um poderoso dispositivo para armazenar o contedo de c u informao (adquirido pela rede MLP a partir do conjunto de dados) nos pesos sinpticos. ca a

38

5.4.1

Algoritmo baseado em Retropropagao de Erro (Backca propagation)

O algoritmo de treinamento baseado em retropropagaao, tambm denominado na c e literatura como Backpropagation, consiste no ajuste dos pesos da rede atravs da retroe propagao do erro encontrado na sa ca da. A minimizaao conseguida realizando-se, a c e cada iteraao, a atualizao dos pesos da rede no sentido oposto ao da funo. Trata-se, c ca ca portanto, de um algoritmo de treinamento supervisionado, determin stico, de computao ca local, e que implementa o mtodo do gradiente descendente na soma dos quadrados dos e erros. A topologia da arquitetura da rede que utiliza esta regra de aprendizagem formada, e geralmente, por uma ou mais camadas escondidas de neurnios no-lineares e uma camada o a de sa de neurnios lineares. Devido a grande difuso da arquitetura da rede a que esta da o a regra de aprendizagem se aplica, comum referir-se a ela com o nome da prpria regra e o de aprendizagem, ou seja, rede Backpropagation. Antes de passarmos ` descriao do algoritmo backpropagation, necessrio fazermos a c e a algumas consideraoes quanto ` notaao que ser utilizada: c a c a Unidades de limite (Bias): O bias uma espcie de excitador/inibidor dos neure e o nios da rede e tem a funao de aumentar ou reduzir a entrada l c quida de sinais, tendo, geralmente, um valor de entrada xo igual a 1 ou -1. Funo de ativao: yk = ca ca e Oj (camada de sa da)
1 , 1+eSk

onde yk ser substitu por hj (camada oculta) a do

Delta erros (k)j : O delta erro est relacionada a derivada da funo de ativaao. a ` ca c Coeciente de aprendizagem : O objetivo deste parmetro manter a estabia e lidade do processo de minimizao dos erros. ca Termo de momentum : aumenta a velocidade de aprendizado da rede sem que ela se torne instvel. a Epoca: uma poca consiste no intervalo correspondente ` apresentao de todos os e a ca n vetores (entrada-sa da) do conjunto de treino. O algoritmo Backpropagation para um treinamento incremental pode ser descrito pelos seguintes passos, segundo RICH [28]: Dado: Um conjunto de pares de vetor entrada-sa da. Computar: Um conjunto de pesos para uma rede de trs camadas que mapeia ene tradas nas sa das correspondentes. 1. Seja A o nmero de unidades da camada de entrada, conforme determinado pelo u comprimento dos vetores de entrada de treinamento. Seja C o nmero de unidades u da camada de sa da. Agora escolha B, o nmero de unidades da camada oculta. u Conforme mostra a Figura 5.6, as camadas de entrada e oculta tm, cada uma, e uma unidade extra usada como limite; portanto, as unidades dessas camadas as ` vezes sero indexadas pelos intervalos (0, ..., A) e (0, ..., B). Denotamos os n a veis de ativaao das unidades da camada de entrada por xj , da camada oculta por hj e da c camada de sa por Oj . Os pesos que conectam a camada de entrada a camada da ` 39

Figura 5.6: Uma Rede Multicamada oculta so denotados por W(C1 )ij , onde o subscrito i indexa as unidades de entrada a e o j, as unidades ocultas. Da mesma maneira, os pesos que conectam a camada oculta ` camada de sa so denotados por W(C2 )ij , onde i indexa as unidades a da a ocultas e j, as unidades de sa da. 2. Inicialize os pesos da rede. Cada peso deve ser ajustado aleatoriamente para um nmero entre 0 e 1. u W(C1 )ij = aleatrio(0, 1) o W(C2 )ij = aleatrio(0, 1) o para todo i = 0, ..., A, j = 1, ..., B para todo i = 0, ..., B, j = 1, ..., C

3. Inicialize as ativaes das unidades de limite. Seus valores so xos. co a x0 = 1, 0 h0 = 1, 0 4. Escolha um para entrada-sa da. Suponha que o vetor de entrada seja xi e que o vetor de sa objeto seja yi . da 5. propague a ativaao das unidades da camada de entrada para as unidades da camada c oculta usando a funo de ativaao: ca c hj = 1 1+e

A i=0

W(C1 )ij xi

para todo j = 1, ..., B

(5.3)

6. Propague as ativaoes das unidades da camada oculta para as unidades da camada c de sa da. 1 Oj = para todo j = 1, ..., C (5.4) B W(C2 )ij hi 1 + e i=0 40

7. Compute os erros das unidades da camada de sa da, denotada por 2j . Os erros baseiam-se na sa real da rede (Oj ), e na sa esperada (yj ). da da 2j = Oj (1 Oj ) (yj Oj ) para todo j = 1, ..., C (5.5)

8. Compute os erros das unidades da camada oculta, denominada por 1j .


C

1j = hj (1 hj )
i=1

2i W(C2 )ji

para todo j = 1, ..., B

(5.6)

9. Ajuste os pesos entre a camada oculta e a camada de sa da. o coeciente de aprendizagem denotado por ; Um valor razovel para 0, 35, segundo RICH [28]. e a e W(C2 )ij = 2j hj para todo i = 0, ..., A; j = 1, ..., B (5.7)

10. Ajuste os pesos entre a camada de entrada e a camada oculta. W(C1 )ij = 1j xi para todo i = 0, ..., A; j = 1, ..., B (5.8)

11. V para a etapa 4 e repita. Quando todos os pares entrada-sa tiverem sido a da apresentados a rede, uma poca ter sido completada. Repita as etapas de 4 a 10 ` e a para tantas pocas quantas forem desejadas. e O algoritmo, usado acima, generalizado diretamente para redes com mais de trs e e camadas. Para cada camada oculta extra, insira uma etapa de propagao para frente ca entre as etapas 6 e 7, uma etapa para a computaao de erros entre as etapas 8 e 9 e c uma etapa para o ajuste dos pesos entre as etapas 10 e 11. A computaao de erros para c unidades ocultas deve usar a equaao 5.6 da etapa 8, mas i pode abranger as unidades da c camada seguinte, no necessariamente a camada de sa a da. A velocidade da aprendizagem pode aumentar se alterarmos as etapas 9 e 10, de modicao dos pesos, para que elas incluam um termo de momentum (). As frmulas ca o para atualizaao dos pesos passam a ser: c W(C2 )ij (t + 1) = 2j hj + W(C2 )ij (t) W(C1 )ij (t + 1) = 1j xi + W(C1 )ij (t) para todo i = 0, ..., A; j = 1, ..., B para todo i = 0, ..., A; j = 1, ..., B (5.9)

5.5
5.5.1

Treinamento
Preparao dos dados ca

A maneira que o dado na base de dados de treinamento alimentado para dentro e da rede neural pode gerar um grande impacto no momento em que ele levado para e o treinamento na rede e, da mesma forma, na preciso da rede neural como um todo a

41

PINHEIRO [26]. Normalmente o dado pr-processado a um alto grau para alimentar a e e rede na forma de um dado cru, que de tratamento mais fcil. e a Por exemplo, se considerarmos uma previso de srie temporal, como o prximo preo a e o c nal de uma ao no prego da bolsa de valores, o dado cru, aquele sem nenhum prca a e processamento, armazenado na base de dados como uma srie de preos no decorrer do e e c tempo em intervalos xos. Poder amos imaginar que o preo da aao capturado de hora c c e em hora. Por exemplo, R$30,00 as 11:00h, R$31,00 as 12:00h, R$28,00 as 13:00h, R$30,00 ` ` ` as 14:00h, assim por diante. Este dado pode ser apresentado por uma rede neural atravs ` e da alocaao de um n por ponto de dado a cada hora. Uma forma extremamente melhor c o de fornecer o mesmo dado para a rede seria informar no s o preo atual da aao, mas a o c c tambm a diferena entre o preo da aao de hora para hora. Por exemplo, +R$1,00, e c c c -R$3,00, +R$2,00 para os preos nais da ao mencionada anteriormente. O mesmo c ca dado seria apresentado a rede neural para treinamento, mas a codicaao de um dado ` c como diferena em preos produzir um modelo de prediao bastante superior. c c a c O mapeamento de previsores categricos, como a cor do olho, por exemplo, um pouco o e mais complexo do que o mapeamento de previsores numricos, segundo PINHEIRO [26]. e intuitivamente fcil mapear a renda ou a idade para um valor numrico entre 0.0 e 1.0. e a e Porm, no to claro realizar o mapeamento para um previsor categrico com um valor e a e a o xo de valores e no determinveis entre diferentes valores. Por exemplo, no faz o menor a a a sentido a pergunta se loiro e maior do que ruivo. Faz sentido se perguntar se uma pessoa mais velha que a outra. Para resover este problema, existem algumas tcnicas e e que podem ser utilizadas para codicar previsores categricos para redes neurais: o Codicaao numrica: cada previsor associado randomicamente a um nmero, por c e e u exemplo, loiro = 1, ruivo = 2, preto= 3 e castanho = 4. Estes valores ento a que sero escalonados para se ajustar na faixa entre 0.0 e 1.0. e a Codicaao um-de-n: neste caso, cada valor categrico diferente recebe seu prprio c o o n de entrada. Por exemplo, existiro quatro ns de entrada para o previsor de cor o a o de cabelo no caso mencionado anteriormente. Codicaao binria: Cada valor de previsor randomicamente associado a um nc a e u mero e, ento, estes nmeros so convertidos em representaao binria. Por exemplo, a u a c a loiro = 001, ruivo = 010, preto = 011 e castanho = 100. Um n de entrada o associado a cada posio na cadeia binria. Por exemplo, trs ns so necessrios e ca a e o a a para a codicao binria da cor do cabelo. ca a

5.5.2

Processo de Treinamento

O processo abaixo descreve o treinamento de uma rede neural multicamada usando o algoritmo backpropagation. Para ilustrar este processo, utilizamos uma RNA com duas entradas e uma sa da, que mostrado na gura 5.7, onde: Cada neurnio composto de e o e duas unidades (veja gura 5.2). A primeira unidade, denominada de combinador linear, faz o somatrio do produto dos pesos pelos sinais de entrada, conforme equaao 5.1. A o c segunda unidade recebe o valor de sa do combinador e aplica a funo de ativaao do da ca c neurnio, equao 5.2. o ca Para ensinar a rede neural precisamos do conjunto de treinamento. Este conjunto de dados consiste nos valores de entrada (x1 e x2 ) atribu dos a um correspondente valor de 42

Figura 5.7: RNA com 2 neurnios na camada de entrada, 2 camadas ocultas com 2 o neurnios cada e 1 neurnio na camada de sa o o da. sa (desejado) d. O treinamento da rede um processo iterativo. Usando novos dados da e do conjunto de treinamento, em cada iterao os valores dos pesos de cada ligaao dos ca c ns (neurnios) so modicados. A modicaao calculada usando o algoritmo descrito o o a c e da seguinte forma: Propagao: Os dois valores de entrada obtidos a partir do conjunto de treino, a ca cada passo de ensino, so propagados pela rede. Aps esta etapa, podemos determinar os a o valores de sa de cada neurnio em cada camada de rede. As Figuras abaixo ilustram da o como os valores de entrada (sinal de input) se propagam atravs da primeira camada da e rede. O s mbolo W(C1 )ij , onde C1 = conexo entre as camadas x(i) e h1(j) com i = {0, 1, 2} a e j = {0, 1, 2}, representa os pesos das conexes entre a camada de entrada e a primeira o camada oculta da rede. O S mbolo y1(n) representa o sinal de sa do neurnio h1(n) , da o onde n = {1, 2}.

43

y1(1) =

1 1 + eS1(1)

onde: S1(1) =
i=0

W(C1 )i1 xi

(5.10)

Figura 5.8: Representaao Grca da Equaao 5.10. c a c

y1(2) =

1 1 + eS1(2)

onde: S1(2) =
i=0

W(C1 )i2 xi

(5.11)

Figura 5.9: Representaao Grca da Equaao 5.11. c a c

44

Propagao de sinais atravs da camada oculta. O S ca e mbolo W(C1 )ij , onde C1 = conexo a entre as camadas h1(i) e h2(j) com i = {0, 1, 2} e j = {0, 1, 2}, representa os pesos das conexes entre a sa do neurnio h1(i) e da entrada do neurnio h2(i) na camada seguinte. o da o o

y2(1) =

1 1 + eS2(1)

onde: S2(1) =
i=0

W(C2 )i2 y1(i) , para i = 0 temos y1(i) = h1(i) . (5.12)

Figura 5.10: Representaao Grca da Equao 5.12. c a ca

y2(2)

1 = 1 + eS2(2)

onde: S2(2) =
i=0

W(C1 )i2 y1(i) , para i = 0 temos y1(i) = h1(i) . (5.13)

Figura 5.11: Representaao Grca da Equao 5.13. c a ca

45

Propagao de sinais por meio da camada de sa ca da.


2

1 y= 1 + eSO(1)

onde: SO(1) =
i=0

W(C3 )i1 y2(i) , para i = 0 temos y2(i) = h2(i) . (5.14)

Figura 5.12: Representaao Grca da Equao 5.14. c a ca No passo seguinte, o valor de sa da rede (y) comparado com o valor de sa da e da desejado (d), que um dado fornecido pelo conjunto de treinamento supervisionado. A e diferena chamado de sinal de erro de neurnio da camada de sa (). c e o da

=yd

(5.15)

Figura 5.13: Representaao Grca da Equao 5.15. c a ca

46

Retropropagao: E imposs o calcular sinal de erro dos neurnios internos dica vel o retamente, porque os valores desejados de sa destes neurnios so desconhecidos. Por da o a muitos anos um mtodo ecaz para fazer o treinamento das redes de multicamadas era e desconhecido. Apenas em meados da dcada de oitenta esse problema foi resolvido com o e algoritmo backpropagation. A idia propagar o erro de sinal (calculado na ultima cae e mada) de volta para todos os neurnios, que emitiram sinais para os neurnio da camada o o de sa da. 2(1) = W(C3 )11 (5.16)

Figura 5.14: Representaao Grca da Retropropagaao do Erro (Equao 5.16). c a c ca

2(2) = W(C3 )21

(5.17)

Figura 5.15: Representaao Grca da Retropropagaao do Erro (Equao 5.17). c a c ca

47

1(1) = W(C2 )11 2(1) + W(C2 )12 2(2)

(5.18)

Figura 5.16: Representaao Grca da Retropropagaao do Erro (Equao 5.18). c a c ca

1(2) = W(C2 )21 2(1) + W(C2 )22 2(2)

(5.19)

Figura 5.17: Representaao Grca da Retropropagaao do Erro (Equao 5.19). c a c ca

48

Quando o sinal de erro de cada neurnio computado, os coecientes de pesos das o e conexes de entrada do neurnio podem ser modicados. Veja os clculos nas frmulas o o a o abaixo:
1 W(C1 )01 = W(C1 )01 + 1(1) x(0) 1 W(C1 )11 = W(C1 )11 + 1(1) x(1) 1 W(C1 )21 = W(C1 )21 + 1(1) x(2)

(5.20)

Figura 5.18: Representaao Grca da Alteraao dos Pesos (Equaao 5.20). c a c c

49

1 W(C1 )02 = W(C1 )02 + 1(2) x(0) 1 W(C1 )12 = W(C1 )12 + 1(2) x(1) 1 W(C1 )22 = W(C1 )22 + 1(2) x(2)

(5.21)

Figura 5.19: Representaao Grca da Alteraao dos Pesos (Equaao 5.21). c a c c

1 W(C2 )01 = W(C2 )01 + 2(1) y1(0) 1 W(C2 )11 = W(C2 )11 + 2(1) y1(1) 1 W(C2 )21 = W(C2 )21 + 2(1) y1(2)

(5.22)

Figura 5.20: Representaao Grca da Alteraao dos Pesos (Equaao 5.22). c a c c

50

1 W(C2 )02 = W(C2 )02 + 2(2) y1(0) 1 W(C2 )12 = W(C2 )12 + 2(2) y1(1) 1 W(C2 )22 = W(C2 )22 + 2(2) y1(2)

(5.23)

Figura 5.21: Representaao Grca da Alteraao dos Pesos (Equaao 5.23). c a c c

1 W(C3 )01 = W(C3 )01 + y2(0)

(5.24)

W(C3 )11 = W(C3 )21 =

1 W(C3 )11 1 W(C3 )21

+ y2(1) + y2(2)

Figura 5.22: Representaao Grca da Alteraao dos Pesos (Equaao 5.24). c a c c

51

Finalmente, no processo de treinamento, deve-se considerar a capacidade de generalizaao da rede, quando treinada com o algoritmo Backpropagation. Basicamente, diz-se c que a rede tem uma boa generalizaao quando o mapeamento de entrada-sa feito por c da ela for correto (ou aproximado) para dados de entrada que no foram utilizados na fase a de treinamento. Isto signica que a rede deve fornecer respostas prximas ou iguais das o respostas desejadas fornecidas pelo treinador da rede, para dados ainda no utilizados. a ` A medida que o treinamento da rede avana, de uma forma geral, ela tende a fornecer c respostas cada vez mais prximas das respostas desejadas. No entanto, se a rede for o exposta a um treinamento excessivo, que chamado de overtraining, a sua capacidade e de generalizaao ir diminuir. Isto se deve ao fato de que a rede comea a memorizar c a c os padres de treinamento e desta forma grava todas as peculiaridades destes dados. O o overtraining faz com que a taxa de acerto para padres no utilizados no treinamento o a comece a cair a partir de um determinado ponto do treinamento. Com isso mostramos a parte de treino. Para fazer a parte de teste da rede ter amos que pegar um conjunto de dados (poss veis entradas), que no foram usados no treino, e a passar pela rede propagando at o clculo dos (equao 5.15). Se, para cada padro de e a ca a entrada, a diferena entre o valor desejado e o calculado pela rede fosse pequena ento ele c a seria classicado como certo ou pertencente a classe que a sa representa. da

5.6

Consideraes e Aplicaoes de rede neurais co c

A aplicao de redes neurais em bases de dados novas relativamente inexpressiva. ca e Cada registro pode ser percorrido por um srie de multiplicaes, adioes e aoes de e co c c ltragem que compem cada n da rede neural. Na verdade, as redes neurais podem ser o o aplicadas ` base de dados em paralelo, na qual cada processador contm uma cpia da a e o rede neural e os pesos das ligaes treinadas, alm de um subconjunto do total de registros co e a serem manipulados. O modelo atual justamente o peso da ligao e o padro de conexo entre os ns. e ca a a o Como a maioria das redes neurais hoje em dia so totalmente conectadas entre camadas, a a estrutura da arquitetura da rede pode ser armazenada pela simples noo da camada ca na qual um determinado n est e da camada onde os pesos da ligaao que o conecta ao o a c prximo n esto. o vel a O treinamento de redes neurais pode ser extremamente caro no aspecto computacional BISHOP [5], PINHEIRO [26]. Normalmente o treinamento de redes neurais envolve os seguintes passos: 1. Criar uma rede inicial com pesos randmicos associados as ligaoes. o ` c 2. Executar cada registro da base de dados de treinamento atravs da rede e utilizar o e algoritmo de aprendizado para corrigir os erros. 3. Vericar o critrio de parada. Preferencialmente, utilizando validaao cruzada para e c checar os ajustamentos. O treinamento tambm pode ser paralisado quando um e m nimo pr-estabelecido de erros de treinamento for alcanado. e c 4. Se o critrio de parada no for alcanado, retornar ao passo 2 e repetir o processo e a c por toda a base de dados de treinamento. 52

Esta tcnica de treinamento pode seguir indenidamente PINHEIRO [26]. Cada aplie caao da base de dados chamada de poca de treinamento, ou janela de treinamento, e c e e no absolutamente incomum para uma rede necessitar de centenas de janelas de treia e namento para alcanar resultados aceitveis ou expressivos. O tempo de treinamento c a depende de uma srie de fatores, como as diculdades do problema e da prpria base de e o dados. Grandes bases de dados heterogneas levaro um tempo maior do que pequenas e a bases de dados homogneas, porm, aquelas podem conseguir resultados superiores. A e e taxa de aprendizado que deve ser especicada pode ter um efeito signicativo no total do tempo para transformar a rede em um modelo consistente. Se a taxa for muito grande, a rede pode oscilar entre valores para os pesos das ligaes e nunca convergir. Uma taxa co muito baixa pode tornar o processo proibitivamente lento. Um ponto contrrio as redes neurais a diculdade de entendimento do modelo que a ` e ela construir, assim como a maneira pela qual os dados originais afetam as respostas a dos previsores de sa da. Os complexos modelos das redes neurais so capturados somente a pelos pesos das ligaoes na rede, que representam equaes matemticas extremamente c co a complexas. Existem vrias tentativas de se aliviar estes problemas bsicos provenientes das rea a des neurais. A metodologia mais simples olhar de fato as redes neurais e tentar criar e explicaoes plaus c veis para os signicados dos ns escondidos. o A compreenso do comportamento dos ns escondidos provavelmente a parte mais a o e dif das redes neurais. A questo mais simples que pode ser levantada qual dos cil a e muitos previsores na verdade o mais importante para uma determinada prediao. Uma e c possibilidade seria a anlise dos pesos das ligaoes de um dado previsor para vericaao se a c c ele grande ou pequeno. Se todos os pesos oriundos de um n de entrada esto prximos e o a o de zero para um dado previsor, ento, este previsor em particular poderia resultar em a um baixo impacto. Porm, se algumas das ligaoes forem importantes e outras no, este e c a previsor poder resultar em um grande impacto em determinadas situaoes e em outras a c no. a Quando existem camadas escondidas, extremante complicado se determinar o ime pacto global de um dado previsor, j que uma ligaao forte poderia conectar um n a uma a c o camada escondida, que possuir um forte impacto em todos os ns de sa a o da. Devido a esta complexidade, o impacto de vrios previsores determinado atravs de a e e experimentaoes iterativas. Estas experimentaoes podem ser realizadas de duas formas, c c segundo PINHEIRO [26]. A primeira, atravs da construao de uma rede de ns de entrada e c o para o previsor, e vericando-se a preciso da prediao para a rede com o previsor. A a c segunda atravs de ligeiras alteraes nos valores de um dado previsor, vericando-se e e co posteriormente se o valor de sa alterado. da e As redes neurais articias so utilizadas em uma grande variedade de aplicaes. Elas a co podem ser usadas em diferentes segmentos de negcios, desde a deteco de fraudes no o ca segmento de cartes de crdito at a predio de riscos de investimentos nos segmentos o e e ca de mercado de capitais. Estas so aplicaoes mais atuais, dada a alta probabilidade a c de retorno nanceiro associada a mercados dessa natureza. Porm, a aplicabilidade das e redes neurais antiga, e vai desde o uso militar, para a direao automtica de ve e c a culos no tripulados, at simulaoes biolgicas, como o aprendizado correto da pronncia de a e c o u uma l ngua a partir de um texto escrito.

53

Cap tulo 6 Desenvolvimento de Software


Para concretizar nosso estudo com o pacote de simulao SimNeural, utilizamos a ca simulaao do modelo de RNA que foi proposto no cap c tulo 5. A escolha deste modelo ocorreu aps do encontro realizado com o professor Carlos Gonalves, do Instituto de o c Cincias Biolgicas e Wilson H. Venesiano, do departamento de Cincia da Computaao, e o e c no in do projeto. A escolha pela simulao de RNAs se deu pelo fato de ser um tema cio ca de grande interesse das duas reas. a Ao nos depararmos com o pacote de simulao ExtendSim, observamos algumas caca racter sticas interessantes que se correlacionavam com processos de desenvolvimento de software evolutivo exploratrio atravs de prototipao e com o desenvolvimento de softo e ca ware baseado em componentes. Neste cap tulo vamos esclarecer estes conceitos de engenharia de software e relaciona los com o desenvolvimento do projeto SimNeural.

6.1

Processo de Software

Segundo PRESSMAN [27], o processo de software um arcabouo para as tarefas que e c so necessrias para construao de softwares de alta qualidade. O Processo de software a a c dene a abordagem que adotada quando o sftware elaborado. e e J segundo SOMMERVILLE [32], um processo de software um conjunto de atividades a e que leva a produao de um produto de software. Estas atividades poderiam envolver o ` c desenvolvimento de um novo software ou com a ampliaao e a modicaao dos sistemas c c existentes. Os dois autores fazem a mesma observao de que os processos de software variam de ca acordo com o tamanho e complexidade do software que ser produzido. Contudo, citam a atividades que esto presentes em todos os processos de software, as chamadas atividades a guarda-chuva: Especicao de software: A funcionalidade do software e as restrioes sobre sua ca c operao devem ser denidas; ca Projeto e implementao de software: Software que atenda ` especicaao ca a c deve ser projetado e desenvolvido; Validao de software: O software deve ser validado para garantir o cumprimento ca dos requisitos do cliente; 54

Evoluo do software: A evoluao do software cobre as mudanas que surgem da ca c c necessidade do cliente.

6.2

Modelos de processo de software

Os modelos de processo de software so abstraes que podem ser usadas para explicar a co diferentes abordagens para o desenvolvimento de software, como frameworks. Eles podem ser adaptados para criar processos mais espec cos, que se adequem melhor ao tamanho e complexidade do software. SOMMERVILLE [32] apresentou a seguinte deniao para c trs tipos de modelos: e Modelo em cascata: etapas rigidamente separadas e sequenciais, seguindo um uxo de atividades; Modelo evolucionrio: Intercala atividades de especicaao, desenvolvimento e a c validaao. As atividades so repetidas em ciclos, sendo que o sistema inicial c a e desenvolvido rapidamente baseado em especicaoes abstratas e renado com as c entradas do cliente. Engenharia de software baseada em componentes: enfoque na integraao de c componentes pr-existentes, ao invs de desenvolv-los completamente. e e e O ExtendSim com suas bibliotecas de bloco um ambiente prop ao reuso de compoe cio nentes. Como o tempo para execuo do projeto era curto, utilizamos, tambm, aspectos ca e da modelagem evolucionria. a

6.3

Detalhando o modelo de desenvolvimento evolucionrio a

O modelo evolucionrio baseado na ideia de se desenvolver uma implementaao de a e c software inicial e expor os resultados aos comentrios do usurio para que, com o feedback a a fornecido por ele, a aplicao possa ser renada at atingir a maturidade do sistema. Como ca e dito anteriormente, as atividades do processo de software so intercaladas a medida que a ` os prottipos do sistema so renados/desenvolvidos. o a Conforme SOMMERVILLE [32], existem dois tipos de desenvolvimento evolucionrio: a Desenvolvimento exploratrio, no qual o objetivo do processo trabalhar com o o e cliente para explorar os requisitos, at a entrega de um sistema nal. e Prototipao Trowaway, na qual o objetivo do processo compreender requisitos e ca e permitir uma melhor denio destes. O prottipo descartado. ca o e No desenvolvimento exploratrio, um prottipo do sistema criado nos estgios inicio o e a ais, porm, ao contrrio da prototipaao trowaway, que descarta os prottipos, o prottipo e a c o o incrementado a medida que os requisitos so compreendidos. Utilizamos esta abordagem e ` a no ExtendSim para desenvolver o projeto SimNeural.

55

Uma abordagem evolucionria costuma ser, frequentemente, mais ecaz do que a abora dagem em cascata na produao de sistemas que atendam as necessidades imediatas dos c ` clientes. A vantagem, de fato, que a especicaao pode ocorrer de forma incremental, e c a medida que os usurios compreendem melhor o problema. Contudo, essa abordagem ` a apresenta dois problemas: processo no vis (pouca documentaao) e o sistemas so, a e vel c a frequentemente, mal estruturados. Segundo SOMMERVILLE [32], para softwares de pequeno e mdio porte, de at 500 e e mil linhas de cdigo, como o caso do SimNeural, a abordagem evolucionria seria o o e a melhor mtodo de desenvolvimento, pois os problemas comeam a surgir em sistemas de e c maior porte e mais complexos. O desenvolvimento evolucionrio envolve mtodos ageis de desenvolvimento, como o a e XP, e est incorporado ao Rational Unied Process(RUP). a

6.3.1

Prototipao ca

De acordo com a denio de SOMMERVILLE [32], um prottipo uma verso inicial ca o e a de um sistema de software usado para demonstrar conceitos, experimentar interfaces, funcionalidades, etc. Eles permitem aos usurios e desenvolvedores experimentarem como a o sistema resolver o problema. a Tradicionalmente, a prototipao tinha a nalidade exclusiva de valiar os requisitos, ca apenas apoiando o desenvolvimento. A vantagem de seu uso na elucidaao dos requisitos c de que, tendo a possibilidade de visualizar, na prtica, o funcionamento/interface do e a sistema os usurios e a equipe de desenvolvimento podem avaliar erros e mudanas que a c devero ser realizadas nos requisitos. a Atualmente, pela demanda do mercado, cada vez maior, o tempo para o desenvolvimento cai e os limites entre a prototipao e o desenvolvimento normal do sistema, ca muitas vezes, so indenidos e muitos sistemas so desenvolvidos com uma abordagem a a evolucionria de prottipos. a o O custo inicial de utilizao de prottipos elevado, contudo, o benef trazido pela ca o e cio reduao do retrabalho, a longo prazo, reduz os custos globais do processo de software. c O ExtendSim e suas ferramentas de interface com o usurio, permitiram o uso desta a abordagem para elucidar requisitos e realizar a evoluao de prottipos do sistema, at c o e uma verso nal. a Convm observar que a prototipaao evolucionria causa problemas em projetos de e c a maior porte a saber: Pode ser imposs ajustar o prottipo para atender aos requisitos no funcionais vel o a (desempenho, conabilidade, segurana, etc.); c Mudanas rpidas durante o desenvolvimento implicaram em prottipos no docuc a o a mentados, dicultando manutenes futuras; co Mudanas futuras tendem a degradar o sistema; c Padres de qualidade so, geralmente, relegados a segundo plano no desenvolvio a mento. Como o projeto SimNeural no se trata de um projeto de grande porte e tivemos a disponibilidade do cliente on-site, utilizamos o modelo de prototipagem evolucionria. a 56

Figura 6.1: Desenvolvimento evolucionrio prototipado. (FONTE: Adaptado de SOMa MERVILLE [32])

6.4

Modelo de desenvolvimento baseado em componentes

A engenharia de software baseada em componentes (Component-Based Software Enginnering - CBSE) surgiu no nal da dcada de 1990 como uma abordagem baseada no e reuso para desenvolvimento de sistemas de software, motivada pela frustraao do fato que c somente a orientao a objetos no conduziu ao reuso adequado. Na abordagem evolucica a onria de desenvolvimento, o reuso , frequentemente, essencial para o desenvolvimento a e rpido de sistemas. a A ideia por trs da CBSE reduzir o acoplamento entre os componentes do sistema, a e permitindo, de forma mais facilitada, o reuso destes componentes ou mesmo a substituiao c em manutenoes evolutivas. Esta abordagem de desenvolvimento tornou-se importante a c ` medida que a complexidade e tamanho dos sistemas cresceram, e entregar um software melhor e mais rapidamente requer que se reutilize componentes ao invs de realizar novas e implementaoes em cada novo projeto. c Os pontos essenciais da engenharia de software baseada em componentes, segundo SOMMERVILLE [32], so: a Componentes independentes completamente especicados por suas interfaces. Deve haver uma clara separaao entre a interface do componente e a sua implementaao, c c permitindo a substituiao da implementao sem afetar outros componentes que c ca utilizam seus servios. c Padres de componentes que facilitam a integrao de componentes. Estes padres o ca o podem denir como sero as interfaces dos componentes, de forma a independer de a linguagens de programaao. c Middleware que fornece apoio de software para integraao dos componentes. c Processo de desenvolvimento voltado a CBSE. ` 57

Mesmo quando os componentes reusveis no esto dispon a a a veis, as bases da CBSE so a usadas por muitas organizaoes, por serem princ c pios seguros de projeto que se apoiam na construao de software compreens e fcil de manter. A componentizao de um sistema c vel a ca pode garantir que independncia funcional de subsistemas e detalhes de implementao e ca so ocultados, permitindo alteraes em um componente sem alterar o funcionamento do a co sistema. Embora a CBSE tenha muitas vantagens, ela ainda possui alguns entraves [32]: Conabilidade de componentes: existem componentes caixa preta, isto , quando e realizamos reuso de algum componente do qual no conhecemos o cdigo-fonte. a o Neste caso a conabilidade ca comprometida. Certicaao de componentes: relacionada estreitamente com a conabilidade, seria c a soluo para o primeiro problema, contudo, a indstria no est muito interessada ca u a a neste assunto. Previso de propriedade emergente: ao realizar a integrao de componentes dif a ca e cil prever como as propriedades emergentes do sistema sero afetadas (desempenho, a erros inesperados, etc.).

6.4.1

Processo de desenvolvimento adaptado ` CBSE a

Conforme pontuado na seo 6.2, o processo de software deve ser adaptado a CBSE. ca A abordagem orientada a reuso depende de uma grande base de componentes de software reusveis e de algum framework de integraao desses componentes. Estes componentes a c podem ser sistemas comerciais independentes que fornecem alguma funcionalidade espec ca. Nos modelos baseados em CBSE, embora os estgios de especicaao e de validaao a c c sejam comparveis a outros modelos de processos de desenvolvimento de software, como a o modelo Cascata, os estgios intermedirios so diferentes. A saber: a a a 1. Anlise de componentes: dada uma especicao de requisitos, realizada uma a ca e busca pelos componentes para implementar essa especicao. Geralmente, no ca a existe uma correspondncia exata e os componentes que podem ser usados fornecem e apenas parte da funcionalidade necessria. a 2. Modicaao de requisitos: Analisados os componentes, os requisitos so confrontac a dos para vericar se os componentes encontrados suprem as necessidades do sistema. Caso positivo, parte-se para o projeto de sistema com reuso, caso contrrio, podem a ser realizadas mudanas nos requisitos para reetir os componentes dispon c veis. Quando tais modicaoes so imposs c a veis, a atividade de anlise de componentes a deve ser novamente realizada at esgotar todas as possibilidades. e 3. Projeto de sistema com reuso: com requisitos denidos e componentes escolhidos, o framework do sistema projetado ou um framework existente reusado. No caso de e e falha na etapa de modicao de requisitos, isto , no encontrar de forma alguma ca e a conciliaao entre componentes reusveis dispon c a veis e requisitos, pode ser necessrio a construir um software (componente) novo.

58

Figura 6.2: Desenvolvimento evolucionrio prototipado. (FONTE: Adaptado de SOMa MERVILLE [32]) 4. Desenvolvimento e integraao: O software que no pode ser reusado desenvolc a e vido e os componentes so integrados. A integrao do sistema pode ser parte do a ca desenvolvimento. Segue gura ilustrativa do modelo de desenvolvimento baseado em componentes. E poss observar as etapas intermedirias, que pertencem a abordagem CBSE, e os provel a cessos de especicao de requisitos e de validaao de requisitos. ca c

6.5

Processo de desenvolvimento do SimNeural

As caracter sticas do projeto SimNeural e do pacote de simulaao ExtendSim permitic ram aplicar alguns dos conceitos de processo de software discutidos nas sees anteriores co deste cap tulo. Pelo curto espao de tempo necessrio para desenvolver o sistema e pelo c a tamanho relativamente pequeno do sistema, resolvemos adotar a abordagem de desenvolvimento evolucionrio. a Foram cerca de 6 reunies para deniao de requisitos do sistema. Entre as reunies, o c o prottipos (verses intermedirias) foram desenvolvidos e utilizados para validaao e ino o a c cremento de requisitos e software do sistema. Com esta abordagem, criamos uma interface que, em nossa avaliao, amigvel ao usurio, dentro das possibilidades oferecidas pelo ca e a a pacote ExtendSim. Outro processo de desenvolvimento mesclado com o evolucionrio foi o de engenharia a de software baseada em componentes. Nos estgios iniciais de desenvolvimento, procua ramos utilizar os componentes dispon veis nas bibliotecas distribu das juntamente com o ExtendSim. Conforme descrevemos na seao 4.3.2 do cap c tulo 4 as bibliotecas e blocos presentes no ExtendSim o tornam uma ferramenta de desenvolvimento voltada ao reuso de componentes. A geraao de grcos e os botes usados nas telas principais do SimNeural c a o foram todos componentes reaproveitados das bibliotecas Plotter e Utilities Alm do que citamos acima, preciso destacar que grande parte dos requisitos do e e sistema so inerentes ao modelo que foi utilizado para avaliaao do ExtendSim neste a c projeto: Redes Neurais Articiais (ver cap tulo 5)

59

6.6

Arquitetura de Software
Responsabilidade Responsvel pela gerao, e armazenamento de dados a ca das RNAS criadas. Responsvel por lidar com leitura/escrita de arquivos a externos ao SimNeural. Possui todos os controles responsveis pela alteraao a c da estrutura, da importaao e daexecuao das RNAs. c c Denida a estrutura atravs da camada da interface, e os neurnios so criados. Os trs tipos de neurnios o a e o representam a camada neural, responsvel pela exea cuo dos clculos do backpropagation. ca a

O SimNeural dividido em quatro camadas lgicas, so elas: e o a Camada Camada de denio de dados ca Camada de importaao e exporc tao de dados ca Camada de interface com usurio a Camada neural

Tabela 6.1: Camadas do SimNeural Existem algumas fronteiras entre as camadas que no esto bem denidas, devido a a a impossibilidade de se trabalhar com um menor n de acoplamento, por parte do pacote vel de simulaes ExtendSim. Por exemplo, na camada de Importaao, o bloco SalvarComo, co c responsvel por salvar o modelo de trabalho atual no SimNeural, apresenta uma interface a com o usurio, mesmo no estando na camada lgica de interface com o usurio. No a a o a prximo cap o tulo especicaremos os blocos pertencentes a cada camada e sua respectiva funo. ca A linguagem ModL no orientada a objetos, o que impossibilitou uso de padres de a e o projeto que tornariam o reuso de componentes muito facilitado, atravs do uso de Design e Patterns como commander e observer. Outra caracter stica do Projeto SimNeural que ele composto por diversos modelos e e unidos por um modelo central. Essa organizao foi escolhida por permitir ao usurio ca a trabalhar com vrios modelos ao mesmo tempo sem termos que recriar toda a lgica que a o permitiria tais aes simultaneamente. co

Figura 6.3: Composiao do Projeto SimNeural c

60

6.7

Gerao do Release ca

Aps concluso do projeto, nos vimos envoltos por diversos arquivos que compem o a o o SimNeural. Vrios modelos que so unidos atravs de um modelo central, formando a a e algo parecido com uma arquitetura em estrela. Foi necessrio agrupar estes arquivos para a permitir uma rpida e fcil instalaao pelo usurio. Primeiro pensamos em utilizar um a a c a self-extract gerado pelo WinRar, porm, aps uma pesquisa pela internet, encontramos o e o software Inno Setup. O Inno Setup, desenvolvido em Borland Delphi, permite a criao de instaladores para ca programas Windows. Ele compacta os arquivos mantendo a estrutura que o programador desejar, bastando a conguraao atravs de um simples e poderoso script de instalao. c e ca O programa de instalaao gerado pelo Inno Setup possui visual padro de programas de c a instalao Windows dispon ca veis no mercado e facilita aos usurios que, muitas vezes, j a a esto acostumados com este padro. a a

61

Cap tulo 7 O Projeto SimRedeNeural


7.1 Requisitos Tcnicos e

O projeto SimNeural foi desenvolvido sobre o pacote de simulaao ExtendSim e porc tanto, necessita que este esteja instalado na mquina do usurio. Alm desses requisitos, a a e podemos citar, ainda, os requisitos de sistema exigidos pelo prprio ExtendSim (dispon o vel em: http://www.extendsim.com): Windows Pentium 4 ou superior Windows XP, Vista, 7 ou 2000 300 MB 512 MB; 2GB recomendado 100 MB adicionais no HD e um acelerador grco de no m a nimo 64 MB de RAM Mac Power PC (nativo) ou processador Intel OSX 10.4-6 300 MB 512 MB; 2GB recomendado 100 MB adicionais no HD e um acelerador grco de no m a nimo 64 MB de RAM

Processador Sistema operacional Disco r gido RAM Requisitos adicionais para a verso a ExtendSim Suite

Tabela 7.1: Requerimentos do ExtendSim de acordo com a Imagine That! Inc. Em nossos trabalhos de desenvolvimento e testes, executamos o SimNeural em plataformas XP e 7, 32 e 64 bits, utilizando as mais diversas conguraes de hardware. O co comportamento do sistema mostrou-se com poucas variaes, apenas durante a execuao co c dos treinamentos e validao de dados das RNAs. ca

7.2

Viso geral do Projeto SimNeural a

Pensado para uso didtico, o Projeto SimNeural tentou aproveitar as ferramentas a de interface dispon veis no pacote de simulaao ExtendSim. Na verdade o software c e composto de vrios modelos interligados: Inicio.mox, CriarRNA.mox, alm de modelos a e que foram usados na validaao do SimNeural e so distribu c a dos como modelos exemplos. 62

Para o usurio, foi criada um interface amigvel que evita o trabalho de abrir modelo a a por modelo atravs de pesquisas no gerenciador de arquivos do sistema operacional. Na e gura 7.1 podemos ver os botes que mapeiam e abrem os modelos que compem o o o software.

Figura 7.1: Tela inicial do projeto SimNeural. Funoes dos botes na tela principal: c o Criar Rede Neural: abre o modelo CriarRna.mox, que nada mais que um modelo, e aparentemente em branco. Aparentemente, pois toda a estrutura necessria para a gerar as redes neurais esto l. a a Abrir Modelo: abre a janela do gerenciador de arquivos diretamente na pasta onde os modelos so salvos pelo SimNeural. a Exemplos de Modelo: o usurio levado ao diretrio contendo os exemplos que so a e o a distribu dos junto com o Projeto SimNeural (detalhes no item 7.3). Ajuda: abre o manual do Projeto SimNeural, elaborado para auxiliar a operaao do c software. Sair: naliza a execuao do SimNeural, juntamente com qualquer modelo que esteja c aberto. Os modelos que sofreram alteraes solicitam ao do usurio quanto a co ca a salvar ou no as mudanas. a c 63

7.2.1

Criando uma Rede Neural

Ao clicar em Criar Rede Neural o modelo CriarRna.mox automaticamente carree gado pelo pacote de simulao ExtendSim. O painel de interaao com o usurio muito ca c a e semelhante ao da tela inicial, pois garante uma padronizaao da interface com o usurio. c a No painel exibido na criao de uma nova RNA estaro presentes as seguintes funcionaca a lidades: Denir Arquitetura: abre o painel de controle da Rede Neural que ser constru a da. Atravs desse painel o usurio poder denir a quantidade de neurnios e forma de e a a o treinamento, importar dados, denir pesos, etc., enm, tudo que for preciso para gerar e operar a RNA pode ser acessado por meio desse painel; Salvar Como: funcionalidade usada para salvar o modelo atual no diretrio de moo delos do Projeto SimNeural; Ajuda: abre o manual do Projeto SimNeural. Conforme explicamos na seo 4.3.5 do cap ca tulo 4, o ExtendSim possui uma interface prpria para que o usurio interaja com os blocos (componentes) do modelo de simulaao, o a c que so chamadas de dialogbox. Estas caixas de dilogos so facilmente identicadas, pois a a a apresentam muitas semelhanas umas com as outras (observe um exemplo na gura 7.2). c

Figura 7.2: Painel central de denio da arquitetura e controle das RNAS. ca Podemos observar que no painel de controle da RNA temos trs abas: Denir arquitee tura e dados RNA, Treinamento e Validao e teste. A seguir mostraremos como seria o ca uxo necessrio a criao de uma RNA no Projeto SimNeural, os detalhes de cada etapa a ca desta criao e conguraao esto melhor descritos no manual do Projeto SimNeural. ca c a

64

Denio da estrutura da rede neural ca A primeira aba do painel da gura 7.2 possui todos os controles que precisam ser usados para o desenho e denio dos pesos da rede neural. O usurio dever indicar, nos ca a a respectivos campos, a quantidade de camadas e neurnios da RNA e mandar ger-la. A o a gura 7.3 exibe a area de trabalho aps geraao da RNA. o c Observe que existem trs tipos de neurnios: os da camada de entrada, os da camada e o escondida e os da camada de sa da RNA. As representaes grcas so distintas para da co a a que o usurio consiga indenticar facilmente onde comea e termina cada camada da a c RNA. As conexes entre os neurnios so geradas automaticamente pelos lgica interna o o a o do SimNeural, utilizando a API do ExtendSim.

Figura 7.3: Area de trabalho de um novo modelo no SimNeural, aps criaao de uma rede o c neural de quatro camadas, sendo uma de entrada, duas intermedirias e uma de sa a da. Ao mandar gerar a RNA, ser exibida uma caixa de dilogo solicitando informaoes a a c sobre os dados que sero processados, estas informaoes so irrelevantes para os clculos, a c a a contudo so interessantes para visualizao do treinamento e resultados obtidos. Com a a ca RNA gerada, o usurio poder, ainda no painel de denio da estrutura, denir os pesos a a ca da RNA. Existem quatro possibilidades para denio dos pesos sinpticos: ca a Automtico: os pesos sero denidos aleatoriamente com valores entre 0 e 1; a a Importar ultimos pesos gravados: ao gravar pesos em um treinamento e executar novas pocas de treinamento, esta opao permite retornar os pesos ao ponto da e c gravao; ca Importar pesos de Arquivo: permite a importaao de pesos gravados a partir de c arquivo de dados gravado de um treinamento realizado anteriormente; Manual: o usurio pode alterar manualmente cada peso da RNA. a

65

Ao selecionar a opao de importar a partir de arquivo, uma caixa de dilogo, solicitando c a o arquivo para importao, ser exibida. Aps a seleao da opao desejada, o usurio deve ca a o c c a clicar em Preencher Pesos para que todos os pesos sinpticos sejam denidos, conforme a a escolha realizada. Com isso a estrutura da RNA estar completa. a

7.2.2

Treinando a Rede Neural

Podemos dizer que esta a principal e mais complicada etapa de todo o processo. e Terminada a denio da RNA, clicando na aba Treinamento, o usurio levado a tela ca a e da gura 7.4, onde possui todas as conguraes e variveis poss co a veis para anlise do a treinamento que for realizado.

Figura 7.4: Aba Treinamento no painel de controle da RNA. Separamos em quatro partes que compem o controle de treinamento, para ns de melhor explicao. o ca Para ns de melhor entendimento, separamos a tela em quatro partes que so: a 1. Dados para o treinamento: aqui o usurio pode visualizar, importar, denir rtulos a o (denir nomes das colunas nas tabelas), selecionar a velocidade de processamento na execuao da RNA; c 2. Conguraoes de aprendizado: o usurio dene as taxas de aprendizado e momenc a tum do treinamento e ainda dispe dos botes: Treinar RNA, Parar Treinamento, o o Gravar Treino-Pesos e Grco MSE. As funoes de cada um sero explicadas a a c a seguir; 3. Forma de Treinamento: nestes dois campos que o usurio vai denir se o treie a namento ser por pocas ou por limiar de MSE (at atingir determinado valor de a e e MSE); 4. Visualizaao do Treinamento da RNA: seis tabelas que exibem a evoluao do treinac c mento. Em ordem: Valores de entrada, Sa obtida, Sa desejada, Erros de sa da da da, 66

Erro instantneo e MSE. Existem dois botes que controlam o que ser gravado da a o a execuo da rede. Mais explicaes abaixo. ca co Os botes destacados na Conguraao de aprendizado (marcao 2 na gura 7.4), o c ca realizam as seguintes operaoes: c Treinar RNA: inicia a execuao do treinamento da RNA usando os parmetros e a c a forma de treinamento estabelecidos em 2 e 3. O algoritmo usado no treinamento e o backpropagation excpli; Parar Treinamento: Interrompe o treinamento que estiver em execuao (os dados c das tabelas no so apagados e o treinamento pode ser continuado depois); a a Gravar Treino-Pesos: Armazena todos os pesos de cada conexo da RNA em um a arquivo TXT. Permite restaurar os pesos a partir da aba Denir Arquitetura e dados RNA; Grco MSE: ferramenta que permite ao usurio gerar grcos a partir de um ou a a a mais MSEs gravados. O MSE (Medium Square Error - Erro quadrtico mdio) a e e obtido somando os erros instantneos de todos os elementos do conjunto de teste em a uma Epoca e realizando uma normalizao com respeito ao tamanho do conjunto ca de treino. O MSE representa a funo de custo do processo de minimizaao do erro ca c de aprendizado. Analisando dados dos treinamentos No SimNeural, desenvolvemos uma forma dinmica de acompanhar os treinamentos a das RNAs: atravs das tabelas destacadas pelo nmero quatro da gura 7.4. Nelas, os e u valores so alterados a cada apresentaao de um vetor de entrada. Chamamos de vetor de a c entrada o conjunto de dados de entrada e sa desejada. A exceao a esta regra a ultima da c e tabela: MSE, na qual os valores so atualizados cada poca do treinamento (apresentaao a e c de todos os vetores de entrada). Observe que existem dois botes Limpar MSE e Gravar MSE. O primeiro boto o a limpa completamente a tabela de MSE atual, j o segundo, permite salvar o MSE do treia namento realizado em um de at cinco espaos de memria, para posterior comparaao e c o c em um grco. Tanto o boto Gravar MSE quanto Grco MSE exibem a mesma a a a janela para o usurio (gura 7.5). a Esta janela permite escolher em qual espao de memria ser armazenado o conjunto c o a de valores MSE do treinamento atual. Clicando em Exibir Grco, um grco comparando a a todos os MSEs gravados nos cinco respectivos espaos de memria exibido para o usurio. c o e a O grco pode ser alterado atravs de ferramentas que no sero especicadas aqui, mas a e a a sim no manual do Projeto SimNeural, que instalado junto com o aplicativo. e

67

Figura 7.5: Janela de congurao do grco e de armazenamento dos MSEs de at cinco ca a e treinamentos realizados.

Figura 7.6: Grco gerado aps salvar os MSEs de quatro treinamentos em espaos difea o c rentes de memria. o Utilizando o atalho de teclado Ctrl+C poss copiar uma imagem do grco para e vel a a rea de transferncia para uso em outros aplicativos, como Writer ou Calc. a e

7.2.3

Validao e Teste ca

Com a rede treinada, poss testar o resultado obtido no treinamento com outro e vel conjunto de dados. Esta ultima etapa visa certicar que a rede de fato aprendeu e no, a simplesmente, memorizou os dados apresentados durante o treinamento. A ideia que os e vetores de entrada apresentados aqui sejam diferentes dos apresentados no treinamento, para testar a capacidade de generalizaao da RNA. c Por exemplo, se possuirmos 150 amostras, apresentar 50 amostras no treinamento e 100 na etapa de validaao e testes uma boa opo. O nmero de amostras para realizar o c e ca u 68

treinamento varia, pois denido empiricamente. Um conjunto menor tende a diminuir a e velocidade do aprendizado, mas pode aumentar a capacidade de generalizaao (capacidade c de classicar padres que no foram utilizados durante o treinamento. o a As decincias na capacidade de generalizaao podem ser atribu e c das aos seguintes fatores: Overtting: ocorre quando a RNA memoriza os dados de treinamento, ao invs de e extrair as caracter sticas gerais que permitem a generalizao. Geralmente causado ca e por um nmero muito grande de camadas escondidas ou de neurnios nestas; u o Undertting: A utilizao de um nmero de neurnios inferior ao nmero necessrio ca u o u a pode fazer com que a rede gaste muito tempo para aprender ou at mesmo que ela e no consiga convergir ou generalizar demais padres de entrada. a o

Figura 7.7: Painel de validaao e teste. Os dados devem ser importados de maneira c semelhante aos dados do painel de treinamento. O painel de Validaao e teste (gura 7.7) permite a importaao de dados para teste, dec c niao dos rtulos das colunas da tabela e das classes que sero identicadas. Alm disso, c o a e abaixo da planilha, existem os controles que permitem iniciar o teste (Testar RNA), paus-lo ou continu-lo. A tabela gerada na importaao e de acordo com a quantidade a a e c de neurnios da rede (acrescentando as colunas que recebero os dados da execuo da o a ca RNA). Maiores detalhes podem ser vistos no manual do Projeto SimNeural.

7.3

Exemplos de Modelos

O SimNeural possui trs exemplos de RNAs inclu e das na instalao, so estes: ca a Flores de Iris: neste modelo, o usurio tem uma rede que classica trs espcies de a e e ores de Iris (setosa, versicolor e virg nica); 69

RNA passo a passo: modelo utilizado na aprendizagem do algoritmo backpropagation; Cncer: a RNA deste modelo classica as amostras de cncer em benigno ou maa a ligno, de acordo com nove caracter sticas distintas.

7.3.1

Flores de Iris

O modelo or de apresenta algumas mudanas em relaao aos modelos que podem Iris c c ser criados a partir do boto Criar Rede Neural (ver gura 7.1). Nele as colunas j estaro a a a devidamente rotuladas e a rede treinada para reconhecer padres da base dados de ores o fornecidas junto com o modelo. Outra peculiaridade, para ajudar no uso didtico do moa delo que os usurios podem acrescentar amostras visualmente ao invs de importaao e a e c de arquivos de dados para validaao e teste. c A RNA, neste modelo, xa em quatro neurnios de entrada, pois as ores so e o a classicadas de acordo com o comprimento da ptala, com a largura da ptala, com o e e comprimento da spala e com a largura da spala. Alm disso, o nmero de neurnios e e e u o de sa tambm xo em trs neurnios, pois so apenas trs classes poss da e e e o a e veis: setosa, versicolor e virg nica. Portanto, sobra apenas as camadas escondidas, que permitem a variaao deste modelo, de ns estritamente didticos. c a

Figura 7.8: Area de trabalho do modelo exemplo Flores de Iris. Um duplo clique sobre a amostra, permite inserir/alterar os dados dela e realizar a identicaao em uma das trs espcies dispon c e e veis. Ao realizar a identicaao, uma imagem c representando a espcie identicada colocada na amostra. A identicaao realizada e e c e com base nos pesos atuais da RNA e pode ser alterada atravs de novos treinamentos. e 70

7.3.2

RNA passo a passo

O modelo RNA passo a passo foi pensado a partir de um dos primeiros prottipos do o sistema, quando ainda no dominvamos o algoritmo backpropagation. Consiste em um a a modelo focado exclusivamente na execuo passo a passo do algoritmo, sendo intil para ca u uso real em classicaao de algum tipo de padro, pois no trata conjuntos de dados. c a a Nesse modelo, tudo se resume a um unico painel acessado a partir de um boto cha a mado RNA Passo a Passo. Observe na gura 7.9 que todos os passos responsveis pela execuao de um treinaa c mento de RNA esto contemplados. a

Figura 7.9: Painel de execuao do algoritmo passo a passo no modelo RNA passo a passo. c 1. Denir a arquitetura da rede: o usurio dever denir o nmero de camadas da rede a a u e seus respectivos neurnios em um painel semelhante ao da gura 10; o 2. Dados de entrada e sa desejada: Aqui, diferentemente da importao de dados da ca realizada no exemplo das ores que utilizamos para demonstrar a criaao e treinac mento de uma RNA, os valores que sero usados para treino e teste desta RNA so a a inseridos pelo prprio usurio de acordo com a estrutura da RNA; o a 71

3. Denir pesos iniciais: nesta etapa sero preenchidos os pesos com duas possibilia dades: manual e aleatrio, de forma semelhante com a etapa de preenchimento de o pesos do nosso exemplo das ores de Iris; 4. Calcular valores obtidos na sa da RNA: os dados de entrada denidos no 2 o passo da so apresentados a rede para clculo atravs do passo forward do backpropagation. a ` a e 5. Calcular os erros dos valores obtidos pela RNA: os valores de sa da RNA so da a comparados com os valores de sa desejados denidos no 2 o passo e os valores so da a exibidos para o usurio; a 6. Denir a conguraao de aprendizado: o usurio dever xar as taxas de aprendizado c a a e de momentum para o clculo de ajuste de pesos; e a 7. a) Executar ajuste dos pesos manualmente: clicando no boto Executar, os a o pesos da rede neural sero ajustados para que o 4 passo possa ser executado novaa mente de forma a se compararem os resultados; b) Executar ajuste dos pesos automaticamente: o usurio ir denir o nmero a a u de pocas que sero processadas ou denir a medida de preciso que pretende e a a ` a alcanar, para, depois, clicar em Executar, fazendo com que a rede ajuste os pesos c at atingir a condio denida. e ca

7.4

RNA para classicao de cncer ca a

O ultimo modelo exemplo distribu com o Projeto SimNeural o do modelo que do e chamamos de Cncer, juntamente com o modelo de Flores de a Iris, utilizam dados de um repositrio de dados para aprendizado de mquina da universidade de Wisconsin, EUA. O o a modelo foi criado seguindo os padres de todos os modelos que podem ser desenvolvidos o no Projeto SimNeural (exceto os ultimos dois modelos exemplos citados acima). A rede foi modelada com nove neurnios na camada de entrada, apenas uma camada o escondida contendo dez neurnios e uma camada de sa com dois neurnios (classica o da o em benigno e maligno), sendo que esta estrutura pode ser alterada inteiramente pelo usurio. A RNA j vem treinada com uma taxa de acerto superior a 90%, mas novos a a treinamentos podem ser executados.

7.5

Manual do Projeto SimNeural

Durante o desenvolvimento deste projeto, dada a complexidade do software, surgiu a necessidade de que fosse desenvolvido um manual de uso do SimNeural. No manual, no foram abordados detalhes sobre o pacote de simulaao ExtendSim, mas sim conceitos a c fundamentais de Redes Neurais Articiais e detalhes acerca do uso do SimNeural e todas as etapas e funcionalidades presentes no software. Quanto aos conceitos de RNAs, no foi apresentado o algoritmo completo do backproa pagation, para no tornar o manual cansativo, mas apenas seus conceitos principais, de a forma que o usurio saiba o que est por trs do aprendizado das redes neurais. a a a

72

O manual foi estruturado em oito grandes partes: Introduo, Objetivos do Projeto ca SimNeural, Instalao, Conceitos bsicos sobre redes neurais, Ambiente do projeto Simca a Neural, Ambiente do ExtendSim, Consideraes Finais e Glossrio; de modo que o usurio co a a tenha total controle sobre seu contedo e consiga achar facilmente a informao que preu ca cisar, pois a API do ExtendSim no permitiu inserir uma ajuda on-line (i.e tool tips) para a o usurio. a

7.6

Sugestes de Aplicao do Projeto SimNeural o ca

Avaliando as caracter sticas do Projeto SimNeural, elaboramos algumas sugestes de o uso para o SimNeural: Iniciaao cient c ca em ensino mdio: o software pode servir para despertar o querer e pesquisar em jovens alunos do ensino mdio, atravs do uso de mtodos de pesquisa e e e utilizando os exemplos do SimNeural ou modelos criados pelo professor; Uso em aulas de biologia: o poder de classicaao das RNAs pode ser usado em c aulas de taxonomia em biologia. A ferramenta pode ser utilizada at mesmo em e atividades de educao a distncia (EAD); ca a Utilizaao em iniciaao em Redes Neurais: o exemplo RNA passo a passo e mesmo c c os outros exemplos podem ser uteis em aulas para alunos iniciantes em inteligncia e articial; O professor deve assistir os alunos durante o aprendizado na operaao do SimNeural, c para que os conceitos possam ser corretamente aplicados na ferramenta; Novos modelos podem ser produzidos pelo professor e pela turma, de forma que as aulas no quem limitadas ao simples uso dos exemplos de modelos distribu a dos juntamente com o SimNeural. Destaca-se que todas as sugestes de uso so permeadas por explicaao de conceitos de o a c Inteligncia Articial e Neurobiologia, e todas as prticas podem ser precedidas de aulas e a tericas sobre os assuntos. o

73

Cap tulo 8 Validao do SimNeural ca


Este cap tulo apresenta a validaao da implementaao SimNeural como um simulador c c e modelador de RNA. Primeiramente, apresentada a viso pedaggica do software, e a o mostrando suas funcionalidades como uma ferramenta para ensino e aprendizado de redes neurais articiais. Em seguida, so feitas anlises utilizando bases de dados reais, a m de a a vericar o comportamento de uma RNA, modelada pelo SimNeural, em diversas situaoes. c Por m, apresentamos exemplos de uso do software para desenvolvimento e simulao de ca modelos para classicaao de padres. c o

8.1

Metodologia de Validao ca

Com o intuito de avaliar o desempenho da rede neural implementada em algumas situaoes prticas, foram escolhidos alguns problemas de classicao bem distintos, com c a ca a utilizao de bases de dados reais. ca

8.2
8.2.1

Aplicao da Validao ca ca
Validao dos Objetivos Pedaggicos ca o

O SimNeural disponibiliza no menu Exemplos de Modelo, o modelo RNA Passo a Passo.mox. Esse modelo tem por nalidade ser um ambiente para o processo de ensinoaprendizagem dos conceitos, do algoritmo e da simulao das redes neuronais articiais ca de mltiplas camadas que usam o algoritmo de retropropagaao para treinamento. Ele u c apresenta todos os elementos para criaao de uma RNA (gura 7.9) e seu treinamento. c Esse modelo permite uma execuao passo a passo e de forma simplicada do backpropac gation, em sete passos conforme mostra a seao 7.3.2 do cap c tulo 7, porm no executa e a uma rede depois de treinada para fazer classicao de padres. ca o Outro exemplo de modelo para simulao que o SimNeural disponibiliza o Exemca e ploIris. Esse modelo apresenta um rede pr-treinada que permite a taxinomia de ores e iris, conforme detalhada na seao 7.3.1, tambm do cap c e tulo 7. uma planta da fam das Iridceas, sendo que existem mais de 1000 espcies A Iris e lia a e em todo o mundo. Existem trs espcies deste tipo de planta que so muito utilizadas para e e a o estudo de classicaao de padres: setosa, versicolor e virg c o nica. O conjunto de dados

74

das ores foi popularizado por FISHER [9], que fez observaoes em 50 exemplares de Iris c cada uma destas trs espcies, utilizando como parmetros de mediao o comprimento e e a c e largura da ptala e comprimento e largura da spala de cada or. A partir destas e e caracter sticas, poss avaliar se uma determinada or da espcie setosa, virg e vel e e nica ou versicolor. Para validar este exemplo de modelo usaremos a base de dados mantida pela University of California - Irvine (http://archive.ics.uci.edu/ml/datasets/Iris). Esta base de dados foi disponibilizada por FRANK e ASUNCION [11] para ns acadmicos. e O banco de dados composto por 150 amostras, sendo 50 de cada espcie. E cada uma e e destas amostras possui 5 atributos, sendo 4 deles caracter sticas numricas (comprimento e da spala, largura da spala, comprimento da ptala e largura da ptala de cada or) e um e e e e sendo a classicaao com base nos quatro primeiros atributos. A v c rgula (,) o separador e de cada atributo, conforme gura 8.1. No apndice XXX encontra-se a base de dados e completa.

Figura 8.1: Dados retirados do repositrio disponibilizado por FRANK e ASUNCION [11] o O primeiro passo para validar foi denir a arquitetura e os pesos da rede neural, atravs da aba Denir Arquitetura e Dados RNA. A arquitetura escolhida foi uma e RNA com 1 camada oculta de 10 neurnios e como padro, deste modelo, a camada de o a entrada tem 4 e a de sa 3 neurnios. O nmero de neurnios da camada de entrada da o u o da rede (nmero de entradas) e o nmero de neurnios da camada de sa (nmero de u u o da u classes) so parmetros congurados automaticamente e xos, ao contrrio do nmero de a a a u camadas e neurnios escondidos, que podem ser alterados livremente. Os pesos iniciais da o RNA foram preenchidos com a opo automticos (que gera um novo conjunto de pesos ca a aleatrios). o O segundo passo foi o treinamento e o teste da RNA atravs das abas Treinamento e e Validao e Teste. Onde zemos a importaao das amostras para treinamento e teste, ca c alm da conguraao dos parmetros do processo de aprendizagem da RNA. e c a Para o treinamento e teste de validaao que descreveremos abaixo foram usados as c 10 primeiras amostras de cada espcie do banco de dados original. Formando uma base e de dados para treinamento da RNA com 30 amostras dispostas aleatoriamente, conforme gura 8.2. E portanto, sobraram 40 amostras de cada espcie de para formar o e Iris conjunto de dados para teste. Que ser usado para vericar a capacidade de classicao a ca da RNA depois de treinada.

75

Figura 8.2: Base de dados das ores no formato de importao pelo SimNeural para Iris ca treinamento da RNA Os parmetros da taxa de aprendizado() e da taxa de momento () da RNA foram a congurados com os valores respectivamente iguais a 0,2 e 0,01. Que segundo SILVA [31], em seus estudos, obteve um treinamento mais rpido e sem muitas oscilaoes, para RNAs a c com apenas uma camada interna. Utilizando a base de dados, as conguraes de arquitetura e a taxas de aprendizagem co e momentum descritas acima, a RNA apresentou o comportamento de Aprendizagem mostrado na gura 8.3 pela linha vermelha. Onde temos que depois de 2000 pocas de e treinamento o MSE igual a 0,0895787. O grco mostrado nesta gura possibilita um e a acompanhamento detalhado da variaao do erro quadrtico mdio(MSE) no decorrer das c a e iteraes (pocas), ou seja, a medida que a RNA treinada os erros das 3 sa co e ` e das da rede (valor obtido menos valor desejado) diminuem, mostrando que a rede est ajustando os a pesos (aprendendo) para alcanar o valor real. c Uma caracter stica interessante do SimNeural, dispon no modelo ExemploIris, para vel uso pedaggico, que este grco permite a comparaao de vrios treinamentos realizados. o e a c a poss E vel, por exemplo, treinar a rede congurada inicialmente com a taxa de aprendizado 76

Figura 8.3: Grco do MSE no Treinamento (Curva de Aprendizagem) a ( = 0, 2) e taxa de momento ( = 0, 01), mostrada na gura 8.3 pela linha vermelha e comparar o desempenho com a rede congurada para a taxa de aprendizado ( = 0, 5) e taxa de momento ( = 0, 3), representada pela linha azul, em uma mesma base de dados. Assim, podemos analisar e vericar o funcionamento e desempenho da RNA com duas conguraoes distintas, conforme a tabela 8.1. c Para a compreender o comportamento e avaliar o desempenho de uma RNA, segundo SILVA [31], importante fazer as seguintes anlises: e a 1. Observar a diviso dos conjuntos de treinamento e de teste, pois, conforme SILVA [31], a a escolha de uma quantidade de elementos muito grande para o conjunto de treinamento (mais de 80%) pode dicultar uma avaliaao do desempenho da rede (gec neralizao), j que poucos dados sero destinados ao conjunto de teste. Portanto, ca a a necessita testar, para uma mesma conguraao de rede, conjuntos de treinamento c e de teste com quantidade de elementos diferentes. E analisar a tendncia da rede e quando aumentamos ou diminuimos o conjunto de treinamento, ou seja, como se comporta o erro quadrtico mdio (aumenta ou diminui). a e 2. Vericar as taxas de aprendizado e de momento. Para uma mesma conguraao c de rede e conjuntos de treinamento e de teste, devem ser analisadas algumas combinaoes dessas duas taxas. Pois, segundo SILVA [31], de acordo com os valores c escolhidos para essas taxas podemos ter grandes diferenas no desempenho da rede. c 77

Parmetro a N Neurnios Entrada o o N Neurnios Sa o da o N Camadas Ocultas N Neurnios Camadas Ocultas o N Amostras para Treinamento Taxa de Aprendizagem Taxa de Momento N Amostras para Teste Linha no Grco (gura 8.3) a
o

RNA-Congurao 1 ca 4 3 1 10 30 0,2 0,01 120 Vermelha

RNA-Congurao 2 ca 4 3 1 10 30 0,5 0,3 120 Azul

Tabela 8.1: Conguraoes da RNA para Treinamento e Teste c 3. A congurao da arquitetura da rede. A escolha do nmero de camadas internas e ca u o nmero de neurnios inuenciam na capacidade de aprendizagem e desempenho u o de uma RNA. A partir de todas estas anlises, poss avaliar uma boa conguraao de rede para a e vel c ou outro problema qualquer. Obviamente, no o problema da classicaao das ores Iris c a existe uma frmula para calcular exatamente a quantidade de neurnios da rede, as taxas o o de aprendizado e de momento, o nmero de pocas de treinamento etc. Isto varia de acordo u e com cada problema e esta determinao de valores s poss atravs de simulaes. ca oe vel e co Para vericar o potencial de classicaao da rede neural simulada no modelo ExemploIc ris, utilizamos a RNA com a conguraao 2, mostrada na tabela 8.1. Essa congurao c ca obteve um melhor desempenho na aprendizagem, com relao a congurao 1, chegando ca ca a um erro quadrtico mdio aproximadamente igual a 0,00072961 para o conjunto de treia e namento aps 2000 interaoes. A base de dados para teste usada foram as 40 amostras de o c cada espcie de no usada no treinamento. A classicaao atribu ao conjunto de e Iris a c da testes pela a rede chegou a um erro de aproximadamente 0,1833, resultando em apenas 22 classicaoes errneas (22 espcies virg c o e nicas classicadas como versicolores ). Desta forma, o percentual de acerto da rede para as espcies setosa, versicolor e virg e nica foi de, respectivamente, 100%, 100% e 45%, gerando um percentual mdio igual a 81,67%. e A validao do uso pedaggico do SimNeural pode ser demonstrada respondendo ao ca o seguinte questionamento: Como o uso do software de simulao de redes neurais, ca SimNeural, pode favorecer a prtica docente e contribuir para a aprendizagem a e para uma pedagogia dinmica? a O educador Paulo Freire [12] prope que: Aprender para ns construir, reconso o e truir, constatar para mudar .... Ou seja, o processo de aprendizagem ocorre com maior facilidade quando se vivencia e constri a teoria. o A Simulaao possibilita ao usurio o desenvolver cenrios, test-los, analisar os resultac a a a dos obtidos e assim, complementar os conceitos. Pois segundo FREIRE [12], ... ensinar no transferir conhecimento, mas criar as possibilidades para a sua prpria produo a e o ca ou a sua construo. O SimNeural fornece ferramenta para que o usurio construa seu ca a conhecimento dentro do contexto abordado pelo software. Nesse sentido, o uso do SimNeural como ferramenta na educaao (ensino-aprendizagem) c pode ser visto como um processo de descoberta, exploraao e de observao, alm de posc ca e 78

sibilitar a construao do conhecimento. Diante disso, o simulador pode transformar o c processo de ensino-aprendizagem num instrumento verstil e de grande eccia. a a

8.2.2

O SimNeural como um simulador de RNAs para Classicao de Padres ca o

Para validar o reconhecimento de padres com o uso do SimNeural, foi implemeno tada uma rede neural articial do tipo perceptrons de mltiplas camadas treinada com u o algoritmo de retropropagao do erro (backpropagation). O problema da classicao ca ca do cncer de mama, disponibilizado na base de dados publicado por FRANK e ASUNa CION [11], foi testado na rede implementada. O objetivo da rede neste problema tentar e classicar um padro de entrada que contm 9 caracter a e sticas de uma paciente (valores inteiros entre 1 e 10, que representam caracter sticas espec cas das clulas) em duas e classes, uma indicando que o tumor maligno e outra que o tumor benigno. e e Esta base de dados formada por 683 padres, que formam um conjunto com classes e o no linearmente separveis. Para a compreenso do comportamento e avaliao do dea a a ca sempenho de uma RNA na resoluao do problema, foram analisadas trs conguraes de c e co rede e treinamento diferentes conforme descritos na tabela 8.2. Parmetro a N Neurnios Entrada o No Neurnios Sa o da o N Camadas Ocultas N Neurnios Camadas Ocultas o N Amostras para Treinamento Taxa de Aprendizagem Taxa de Momento N Amostras para Teste Grco de MSE - Linhas a
o

RNA - 1 9 2 1 20 50 0,5 0,3 633 Vermelha

RNA - 2 9 2 1 20 50 0,25 0,7 633 Azul

RNA - 3 9 2 2 5e5 50 0,5 0,3 633 Verde

RNA - 4 9 2 1 10 50 0,25 0,3 683 Azul Claro

Tabela 8.2: Conguraes de RNA para Treinamento e Teste de Classicaao do Cncer co c a de mama As RNAs, descritas na tabela 8.2, apresentaram o grco de Aprendizagem mostrado a na gura 8.4 pela linha vermelha (RNA-1), azul (RNA-2) e verde (RNA-3), onde temos a relao dos MSEs ao longo das pocas de treinamento. ca e A rede RNA - 1 que foi congurada com uma camada interna, com 20 neurnios, e o treinada durante 1000 pocas, com a utilizaao de uma taxa de aprendizado igual a 0,5 e c e uma constante de momento igual a 0,3, obteve um erro quadrtico mdio aproximadaa e mente igual a 0,0687806 para o conjunto de treinamento. O percentual de acertos obtidos foi de 72% para o conjunto de 414 amostras do tumor benigno e 99% para as 219 amostras do maligno, representando 117 classicaoes errneas, de um total de 633 padres do c o o conjunto de teste. A rede RNA - 2 que foi congurada com uma camada interna, com 20 neurnios, e o treinada durante 1000 pocas, com a utilizao de uma taxa de aprendizado igual a 0,25 e ca

79

Figura 8.4: Grco do MSE no Treinamento (Curva de Aprendizagem) do Problema de a Classicaao do Cncer de Mama. c a e uma constante de momento igual a 0,7, obteve um erro quadrtico mdio aproximadaa e mente igual a 0,027852 para o conjunto de treinamento. O percentual de acertos obtidos foi de 91% para o conjunto de 414 amostras do tumor benigno e 87% para as 219 amostras do maligno, representando 67 classicaoes errneas, de um total de 633 padres do c o o conjunto de teste. A rede RNA - 3 que foi congurada com 2 camadas internas, com 5 neurnios cada, o e treinada durante 1000 pocas, com a utilizao de uma taxa de aprendizado igual a e ca 0,5 e uma constante de momento igual a 0,3, obteve um erro quadrtico mdio aproxia e madamente igual a 0,245092 para o conjunto de treinamento. O percentual de acertos obtidos foi de 100% para o conjunto de 414 amostras do tumor benigno e 0% para as 219 amostras do maligno, representando 219 classicaoes errneas, de um total de 633 c o padres do conjunto de teste. Como a rede apresentou um MSE alto e no foi capaz o a de reconhecer nenhuma amostra da classe maligno, podemos concluir que a RNA-3 no a conseguiu aprender as caracter sticas do problema. Isso pode ocorrer, baseado na pesquisa de SILVA [31], devido a arquitetura no ser suciente para extrair as caracter a sticas do problema ou o nmero de pocas de treinamento serem insucientes para ocorrer a u e minimizaao dos erros. c A rede RNA - 4 que foi congurada com uma camada interna, com 10 neurnios, e o treinada durante 302 pocas, com a utilizaao de uma taxa de aprendizado igual a 0,25 e c 80

e uma constante de momento igual a 0,3, obteve um erro quadrtico mdio aproximadaa e mente igual a 0,071758 para o conjunto de treinamento. O percentual de acertos obtidos foi de 87% para o conjunto de 397 amostras do tumor benigno e 98% para as 286 amostras do maligno, representando 57 classicaoes errneas, de um total de 683 padres do c o o conjunto de teste. Foi observado um bom percentual de acerto, para duas classes de sa da do problema para essa conguraao da RNA. c Uma outra base de dados validada foi a fornecida por Claudenir Simes Caires (Douo torando pelo Programa de Ps-graduaao em Botnica - Departamento de Botnica o c a a Herbrio da Universidade de Bras - UnB), com 105 amostras de 16 espcies de plantas a lia e do gnero botnico Phoradendron que pertencente a fam das Santalaceae. A base de e a ` lia dados especicava 14 atributos de cada amostra. O dados foram preparados conforme a subseao 5.5.1 e submetidos ao processo de classicao, atravs do treinamento de c ca e uma RNA. Esse treinamento tinha por objetivo encontrar uma congurao de RNA, ca que simulada pelo SimNeural, fosse capaz de determinar a qual espcie uma determinada e amostra contendo os 14 atributos pertence. Entretanto, depois de vrios treinamentos e testes nenhuma RNA conseguiu extrair a caracter sticas do banco de amostragem para realizar a classicao. Ou seja, no foi posca a s obter aprendizagem durante os treinamentos. Baseando-se nas observaoes durante o vel c processo de treinamento, testes e nos critrios de anlises propostos por SILVA [31], para e a a compreenso do comportamento e avaliaao do desempenho de uma RNA, conclu a c mos que o conjunto de amostras no fornece elementos sucientes para o aprendizado da rede a e os atributos no delineiam padres separveis fortes, que caracterizam a espcie, capaz a o a e de ser detectada pelas RNAs criadas e simuladas pelo SimNeural. Ao trabalhar com conjuntos de dados reais, segundo CASTRO SILVA [6], deve sempre ser considerado o fato de que as amostras a serem utilizadas esto sujeitas a ru a dos, obtidos principalmente, durante os procedimentos de amostragem. Alm disso, podem haver e dados redundantes e um nmero de amostras insucientes para representar o problema u desejado. Estes fatores tornam necessria a utilizaao de procedimentos de validaao a c c cruzada, que no abordada por este projeto, ou regularizao da base de dados, para a e ca que se possa obter uma rede com melhor capacidade de generalizaao, ou seja, uma c rede que responda corretamente a dados que no foram utilizados durante o processo de a treinamento.

8.3

Anlise dos Resultados a

Em comparao aos sistemas semelhantes estudados durante a execuo deste projeto, ca ca as taxas de acerto alcanadas com o sistema podem ser consideradas satisfatrias, pois c o chegam aos mesmos patamares. Entretanto, devido a uma caracter stica intr nseca as redes neurais, no poss fazer ` a e vel consideraoes sobre quais seriam as melhores conguraes para simular a classicao de c co ca padres em base de dados reais. A caracter o stica mencionada refere-se a robustez das redes neurais quanto a desvios no padro do modelo. Assim, por deniao, as redes a c neurais devem ser treinadas e testadas at que ela encontre o aprendizado satisfatrio, e o capaz de reconhecer atributos como pertencentes ao um padro. O que no desvirtua o a a projeto que teve xito na sua meta principal, ser uma ferramenta para aprendizado e para e uso funcional das redes neuronais articiais. 81

Cap tulo 9 Concluses o


Os estudos realizados, o software desenvolvido e as validaoes realizadas, nos permitem c dizer que, de fato, o uso de pacotes de simulaao e mais especicamente do pacote de c simulaao ExtendSim pode auxiliar a criaao de modelos de simulaao por pessoas das c c c mais diversas reas do conhecimento, at mesmo distantes da computao. a e ca Conforme vimos no desenvolvimento dos cap tulos 2, 3 e 4, a simulaao ferramenta c e no apenas para planejar, mas para gerar e analisar conhecimento sobre sistemas reais. a Vimos diversas ferramentas que poderiam ser utilizadas e conseguimos entrar a fundo no pacote de simulao ExtendSim, que se mostra uma ferramenta robusta e ousada ao ca oferecer ferramentas poderosas para os usurios nais. a Embora enalteamos os aspectos positivos deste pacote, preciso destacar que sua c e interface apresenta alguns problemas graves, como a diculdade para se trabalhar com mltiplas janelas, j que todas as janelas no podem ultrapassar os limites da janela u a a pai impossibilitando o uso de mltiplos monitores. Outro grave problema dos ambientes u que podem ser gerados atravs do pacote ExtendSim e que afetou duramente o Projeto e SimNeural que os elementos das caixas de dilogo, como por exemplo um text label, e a no podem ter sua aparncia modicada (fonte, tamanho, cor) o que deixa a interface a e engessada e at mesmo ileg e vel para pessoas com maiores diculdades de viso. Neste a aspecto o ExtendSim, como ferramenta didtica, deixa a desejar. a Contudo, estes problemas so superados, em muito, pelo poder que a ferramenta a confere ao usurio na criaao de modelos. O reuso de blocos (componentes) interessante a c e e a curva de aprendizado do software exponencial, ainda mais para aqueles que tm e e conhecimento da linguagem C ou que se aventurarem pelos cdigos-fonte distribu o dos livremente na maioria dos blocos que acompanham as bibliotecas padres do ambiente. J o a para os usurios que no possuem qualquer conhecimento em linguagens de programao, a a ca o reuso dos blocos j constru a dos permitem o uso do ExtendSim para construo de ca modelos complexos de simulao. ca O modelo escolhido por ns, Redes Neurais Articiais, para testar as funcionalidades o do ExtendSim mostrou-se de grande valia para tal m, pois nos forou a criar novos blocos c e reutilizar blocos existentes. A interface do SimNeural foi renada o mximo poss a vel para atender aos objetivos do projeto e mostrou-se clara, segundo avaliaoes de pessoas c ligadas ao Instituto de Biologia. Apesar de aspectos positivos, alguns blocos do SimNeural precisaram ser renados em trabalhos futuros, para permitir um reso de forma facilitada, u pois algumas coisas ainda esto fortemente acopladas aos modelos que criamos. a

82

9.1

Trabalhos Futuros

Durante o projeto vimos que existem muitos algoritmos de aprendizado para redes neurais, at mesmo variantes do prprio backpropagation. Novas verses poderiam acrese o o centar estes novos algoritmos para aumentar a utilidade do SimNeural. Outro trabalho a ser realizado diz respeito aos testes com o SimNeural. No cona seguimos validar o algoritmo com algumas bases de dados, precisar amos identicar as causas do problema (arquitetura da RNA usada, impossibilidade de identicar padres o nos dados, etc). Projeto SimNeural ainda pode ser renado para um menor acoplamento dos blocos criados no decorrer deste trabalho. Atualmente, alterar o modelo em baixo n requer vel alteraao de algumas referncias nos blocos e isso pode ser corrigido em trabalhos futuros. c e Por ultimo, durante o projeto, surgiu a possibilidade de utilizar o SimNeural para processar dados para uso na classicao de clulas reprodutivas bovinas, porm seria ca e e necessria uma integrao ou desenvolvimento de software para processamento de imagens a ca destas clulas, para gerar os dados processveis por uma RNA. Tal trabalho poderia ser e a feito em conjunto com os veterinrios da UnB. a

83

Referncias e
[1] R.L. ACKOFF and et al. Pesquisa operacional. Livros tcnicos e cient e icos, Rio de, 1977. 14 [2] L. C. ARAUJO and et al. Manual arena 9.0. acessado em 15/06/2012. http://www.dep.ufmg.br/professores/luiz/aulas/Simulacao/ManualArena9.pdf, 2006. 8 [3] J. BANKS. Discrete event simulation, 2 ed. Prentice Hall, New Jersey, 1996. 12 [4] R.F. BARTON. A primer on simulation and gaming. Prentice-Hall, New Jersey, 1970. 15 [5] C. M. BISHOP. Pattern Recognition and Machine Learning. Springer Science, Cambridge, USA, 2006. 35, 37, 52 [6] L. N. CASTRO SILVA. Anlise e s a ntese de estratgias de aprendizado para redes e neurais articiais. Dissertaao de mestrado, Departamento de Engenharia de Compuc tao e Automaao Industrial - Faculdade de Engenharia Eltrica e de Computao ca c e ca - Universidade Estadual de Campinas, 1998. 81 [7] I. CHIAVENATO. Introduo ` teoria geral da administrao, 7 edio. Elsevier, ca a ca ca Rio de Janeiro, 2003. 12 [8] I. FISCHER and et al. JavaNNS - Java Neural Network Simulator. User Manual, Version 1.1. Department of Computer Architecture - WILHELM-SCHICKARD INSTITUTE FOR COMPUTER SCIENCE - UNIVERSITY OF TUBINGEN, Germany. 6 [9] R. A. FISHER. The use of multiple measurements in taxonomic problems. Anais de Eugenics, 7, p. 179-188, 1936. 75 [10] J.W. FORRESTER and et al. System Dynamics, 2 ed. North-Holland Publishing Company, Amsterdam, 1980. 12 [11] A. FRANK and A. ASUNCION. Uci machine learning repository. acessado em 22/06/2012: http://archive.ics.uci.edu/ml. University of California, Irvine, School of Information and Computer Sciences, 2010. ix, 75, 79 [12] P. FREIRE. Pedagogia da autonomia: saberes necessrios ` prtica educativa. 39. a a a Ed. Coleo Leitura. editora: Paz e Terra, So Paulo, 2009. 78 ca a 84

[13] J. HAN and M. KAMBER. Data Mining: Concepts and Techniques. Morgan Kaufmann, 2001. 35, 36 [14] S. HAYKIN. Redes Neurais : princpios e prtica 2. ed. Traduzido por Paulo Martins a Engel. Bookman, Porto Alegre-RS, 2001. 30, 31, 32, 36 [15] A. HOLANDA and et al. Dicionrio Aurlio da lngua portuguesa. 5ed. Editora a e Positivo, Curitiba, 2010. 11 [16] Imagine That Inc. ExtendSim Developer Reference. Imagine That Inc., 2007. 28, 29 [17] Imagine That Inc. ExtendSim User Guide. Imagine That Inc., 2007. 21, 22, 29 [18] MathWorks inc. Matlab-product documentation. acessado em 25/05/2012. http://www.mathworks.com/help/techdoc/learn matlab/bs98aqv.html. viii, 7, 8 [19] isee systems inc. Stella systems thinking for education and research. acessado em 16/06/2012. http://www.iseesystems.com/softwares/Education/StellaSoftware.aspx. 9 [20] W.D KELTON and et al. Simulation with Arena. Mc-Graw-Hill, New York, 1998. x, 20 [21] S. B. KOTSIANTIS. Supervised machine learning: A review of classication techniques. Informatica, vol. 31, no. 3, pp. 249-268. Slovene Society Informatika, Greece, 2007. 38 [22] Z. L. KOVACS. Redes neurais articiais: fundamentos e aplicaes. 4 edio. Editora co ca Livraria da Fisica, So Paulo, 2006. 31, 34, 38 a [23] A.M. LAW. How to conduct a successful simulation study. Proceedings of the 2003 Winter Simulation Conference S. Chick, P. J. Snchez, D. Ferrin, and D. J. Morrice, a eds., pages p. 6670. viii, 16, 17, 18 [24] A.M. LAW and W.D. KELTON. Simulation modeling and analysis, 3 ed. McGrawHill, Boston, 2000. 15 [25] T.H. NAYLOR. Computer simulation experiments with models of economic systems. John WIley & Sons, New York, 1971. 14, 15 [26] C. A. R. PINHEIRO. Inteligncia Analtica - Minerao de Dados e Descoberta de e ca Conhecimento. Editora Cincia Moderna Ltda, Rio de Janeiro, 2008. 34, 36, 42, 52, e 53 [27] R PRESSMAN. Software Enginnering: A Practitioners Approach, 7ed. Mc-GrawHill, 2009. 54 [28] E. RICH and K. KNIGHT. Inteligncia articial; traduo Maria Cludia Santos e ca a Ribeiro Ratto; reviso tcnica Alvaro Antunes. Makron Books, So Paulo, 1993. 39, a e a 41 [29] R.E. SHANNON. Systens Simulation: the art and science,. Prentice Hall, 1975. 12 85

[30] T. SHIMIZU. Simulao em computador digital. Edgard Blucher, So Paulo, 1975. ca a 14, 15 [31] L. F. C. SILVA. Modelo de rede neural articial treinada com o algoritmo backpropagation. Graduaao - monograa, Departamento de Cincia da Computao c e ca Universidade Federal de Juiz de Fora Minas Gerais, UFJF, 2003. 32, 76, 77, 80, 81 [32] I. SOMMERVILLE. Software Enginnering, 8 edio. Editora Pearson Addisonca Wesley, 2007. ix, 25, 54, 55, 56, 57, 58, 59 [33] UNIVERSITY OF TUBINGEN. Javanns - java neural network simulator. Disponvel em: http://www.ra.cs.uni-tuebingen.de/software/JavaNNS/welcome e.html Acesso em: 24 de maio de 2012. viii, 7 [34] UNIVERSITY OF TUBINGEN. Snns - stuttgart neural network simulator. Dispon vel em: http://www.ra.cs.uni-tuebingen.de/software/snns/welcome e.html , acessado em 24/05/2012. viii, 6 [35] A. ZELL and et al. SNNS Stuttgart Neural Network Simulator User Manual Version 4.2. Stuttgart: University of Stuttgart/University of Tbingen, Germany, 2008. 5 u

86

You might also like