Anda di halaman 1dari 41

Projeto SIMNeural

De uma parceria entre os Institutos de Cincias da Computao e o Instituto de Cincias Biolgicas da UnB

Guia de uso do Software


Verso 2.0 - 28-05-2012

Parte integrante do trabalho de concluso de curso de graduao em Licenciatura em Computao.

Sumrio
I. Introduo....................................................................................................................................... 1 II. Objetivos do Projeto SIMNeural .................................................................................................. 1 III. Instalao ..................................................................................................................................... 1 IV. Conceitos bsicos sobre redes neurais ....................................................................................... 6 1. Motivao .................................................................................................................................. 6 2. Estrutura individual de um neurnio artificial (Perceptron) ..................................................... 6 3. Estrutura da RNA do projeto ..................................................................................................... 7 4. Criando arquiteturas de redes neurais para utilizao ............................................................. 8 4.1. Definio das camadas de entrada e sada .................................................................... 8 4.2. Definio das camadas escondidas ............................................................................... 8 4.3. Definio da quantidade de neurnios nas camadas escondidas ................................. 9 5. Treinamento, o aprendizado supervisionado da rede neural ................................................... 9 6. Breve introduo ao Backpropagation .................................................................................... 10 6.1. Pesos e parmetros de aprendizagem ........................................................................ 11 V. Ambiente do Projeto SIMNeural ................................................................................................ 12 1. Tela Inicial ................................................................................................................................ 12 2. Criar rede neural ...................................................................................................................... 12 2.1. ETAPA 1 - Definio da estrutura da RNA .......................................................................... 13 2.2. ETAPA 2- O Treinamento ................................................................................................... 16 2.2.1. Preparao de dados para utilizao no SIMNeural ................................................ 16 2.2.2. Importao dos dados .............................................................................................. 18 2.2.3. Configuraes de Aprendizado ................................................................................. 20 2.2.4. Execuo do treinamento ......................................................................................... 20 2.2.5. Grfico MSE .............................................................................................................. 20 2.3. ETAPA 3 - Teste utilizando a RNA treinada ......................................................................... 23 2.3.1. Salvando a RNA ......................................................................................................... 26 3. Abrir Modelo ........................................................................................................................... 26 4. Exemplos de Modelo ............................................................................................................... 26 4.1. Exemplo Flores de Iris ......................................................................................................... 26 4.2. Exemplo RNA passo a passo ............................................................................................... 27

4.2.1. Passos do exemplo RNA passo a passo .................................................................... 28 VI. Ambiente do ExtendSIM ........................................................................................................... 30 1. Barra de ferramentas .............................................................................................................. 30 1.1. Ferramentas de controle de fluxo da simulao ................................................................ 30 1.2. Ferramentas de controle de fluxo da animao ................................................................ 31 VII. Consideraes Finais ................................................................................................................ 32 VIII. Glossrio .................................................................................................................................. 33 IX. Referncias e Bibliografia .......................................................................................................... 38

I. Introduo
Este manual foi desenvolvido como parte do projeto de graduao e emergiu da complexidade do sistema criado para simulao de Redes Neurais Artificiais (RNA). O software que foi por ns denominado Projeto SIMNeural, foi implementado sobre a plataforma de simulao ExtendSim, verso 7, da empresa Imagine That Inc. Neste manual no abordaremos detalhes dos aspectos do ExtendSIM, para tal o usurio dever acessar o contedo de Ajuda e documentao presentes em todas as verses do ambiente ExtendSim; contudo, alguns pontos focais da plataforma sero esclarecidos, para que o usurio se torne proficiente no uso do nosso software. Alm de conhecimentos sobre a interface da aplicao do SIMNeural, alguns conceitos de Redes Neurais Artificiais (RNA) sero esclarecidos ao longo deste manual. Os detalhes dos algoritmos usados no sero tema deste manual, mas podero ser encontrados na monografia de concluso de curso.

II. Objetivos do Projeto SIMNeural


Explorar as funcionalidades e potencialidades da plataforma ExtendSim no desenvolvimento de simulaes de modelos biolgicos. Desenvolver uma ferramenta de simulao para Redes Neurais Artificiais, para uso didtico e pedaggico, alm de possibilitar uso em pesquisas.

III. Instalao
Para correta instalao do Projeto SIMNeural elaboramos um passo a passo ilustrado da instalao do software: 1. Execute o arquivo chamado Instalar_SIMNeural.exe, a programa de instalao ser iniciado.

2. Clique em Avanar e leia as instrues e requisitos de instalao.

3. Clique em avanar para escolher o diretrio de instalao, lembrando que o diretrio deve ser o mesmo do ExtendSim7.

4. O software de instalao solicitar confirmao, indicando que j existe o diretrio informado. Confirme.

5. Indique o nome da pasta onde o Projeto SIMNeural ser instalado no menu Iniciar do Windows.

6. Marque a opo, caso queira que seja criado um cone em sua rea de trabalho.

7. Confira as opes de instalao. Caso queira alterar algo, clique em voltar, seno, clique em Instalar.

8. Aguarde que o processo de instalao se conclua.

9. Marque a opo Executar Projeto SIMNeural, caso queira iniciar o SIMNeural aps a instalao e clique em Concluir.

Ao final da instalao, o ambiente ExtendSim ser carregado, juntamente com o Projeto SIMNeural e a seguinte tela ser visualizada:

Dica

Para definir o Projeto SIMNeural como projeto padro do ExtendSim, marque a checkbox "Abrir automaticamente com o ExtendSIM"

Figura 1. Tela Inicial do ExtendSim, ao abrir o arquivo Inicio.mox

A instalao do modelo estar concluda. Contudo, antes de passarmos ao prximo captulo, importante destacarmos a estrutura de diretrios que servir como espao de trabalho na utilizao do Projeto SIMNeural. A seguinte figura abaixo mostra a estrutura criada aps a instalao, dentro do diretrio SIMNeural: - BasesDados: armazena as bases de dados para treinamento e teste das RNAS; - Modelos: armazena os modelos de RNAS salvos; - Modelos Exemplo: armazena os modelos de exemplo que esto presentes na instalao. - Resultados: pasta padro para armazenar pesos de treinamentos realizados;
Figura 2

- Os arquivos .lix e .mox no podem ser apagados, sob pena de inutilizao da instalao.

Caso voc defina o Projeto SIMNeural como modelo padro do ExtendSim, clicando no boto destacado na figura 1, na prxima vez em que o ambiente de simulao for aberto o SIMNeural ser aberto em conjunto, caso contrario, o projeto pode ser aberto atravs do arquivo Inicio.mox ou ainda dos atalhos criados durante a instalao.

IV. Conceitos bsicos sobre redes neurais


Antes de explicarmos detalhadamente o funcionamento do ambiente de simulao desenvolvido no ExtendSim, alguns conceitos bsicos sobre redes neurais so necessrios e iremos abord-los neste captulo. 1. Motivao O campo de estudos na computao chamado de Inteligncia Artificial tem como inspirao estruturas da natureza. assim com algoritmos genticos, logica fuzzy, etc. As redes neurais artificiais se encaixam neste perfil. conhecido o grande poder de processamento das redes neurais biolgicas na resoluo de problemas complexos do ponto de vista computacional. O crebro humano processa informaes de uma forma completamente diferente a de um computador convencional, paralelizando diversas atividades. O funcionamento das redes neurais biolgicas ainda no foi completamente desvendado, apesar disto, existe o conhecimento da estrutura fisiolgica bsica destas redes, e exatamente nisso que se baseiam as redes neurais artificiais (RNA). As redes neurais que podem ser simuladas pelo Projeto SIMNeural utilizam o algoritmo de aprendizagem supervisionada chamado Backpropagation. No entraremos em detalhes sobre o algoritmo utilizado, contudo, alguns conceitos precisam ser entendidos para uma correta operao do SIMNeural.

2. Estrutura individual de um neurnio artificial - o neurnio de McCulloch-Pitts Em redes neurais, a estrutura de um neurnio simulada por formulas matemticas que materializam-se na figura do neurnio de McCulloch-Pitts (proposto por McCulloch e Pitts). Ele nada mais do que a estrutura individual de um neurnio ou unidade de aprendizado.

Figura 3. Representao grfica de um neurnio artificial (neurnio artificial)

Como pode ser observado na figura 3, um neurnio artificial apresenta Xn sinais de entrada, que representam os dentritos de um neurnio biolgico; A sada Yk representa o axnio do neurnio. Cada sinal de entrada associado a um determinado peso sinptico (Wk1,Wk2,...,Wkn), para representar os efeitos das sinapses, estes pesos podem assumir valores positivos ou negativos, representando os efeitos excitatrios ou inibitrios sobre o neurnio, de forma similar ao que ocorre de fato em nosso sistema neuronal. O ncleo do neurnio possui uma funo de combinao linear, que realiza a soma ponderadas das entradas e pesos sinpticos da rede, e uma funo de ativao, que normaliza a sada do neurnio atravs de uma funo logstica sigmoidal. O processamento no neurnio acontece da seguinte forma: as entradas so captadas pelos dentritos, que recebem valores de entrada (camada de entrada) ou valores de sada de neurnios de uma camada anterior; a funo de combinao realiza a soma ponderada de cada entrada e em seguida calculado o valor de ativao do neurnio; finalmente, o valor calculado transmitido a todos os neurnios da camada seguinte atravs do axnio. Os detalhes da implementao podem ser encontrados na monografia que acompanha este trabalho e nas referncias ao final desta ajuda. 3. Estrutura da RNA do Projeto Em nosso trabalho foi utilizada a rede neural de Perceptrons multicamadas. Ou seja, temos n camadas sendo que a camada n=0 a camada de entrada da RNA; as camadas de n=1 a n=n-1 so chamadas de camadas escondidas, intermedirias ou ocultas; e a camada de nmero igual a n chamada de camada de sada da rede. A figura 4 ilustra um exemplo de RNA com quatro camadas, sendo uma de entrada, uma de sada e duas escondidas. As reticncias foram colocadas no modelo para demonstrar que podem haver n neurnios em cada camada e n camadas escondidas.

Figura 4. Desenho de uma estrutura RNA genrica

Observe que cada neurnio da camada de entrada liga-se com todos os neurnios da camada seguinte. Essa estrutura repete-se em todos os neurnios de todas as camadas.

4. Criando arquiteturas de redes neurais para utilizao Dica Existem vrias formas de se organizar uma RNA. A forma como os neurnios da rede so organizados nas camadas intimamente ligada ao propsito da rede. A quantidade de camadas e a quantidade de neurnios em cada camada variam de acordo com o problema a ser solucionado.
O nmero de caractersticas do problema e o nmero de classes que sero identificadas o que define a quantidade de neurnio das camadas de entrada e de sada

4.1. Definio das camadas de entrada e sada Em um dos modelos de exemplo propostos em nosso simulador, a rede busca identificar tipos de Flor de Iris em uma de trs classes (Irs-Versicolor, Irs-Setosa, Irs-Virgnica), de acordo com quatro caractersticas distintas (cumprimento da spala, largura da spala, cumprimento da ptala, largura da ptala). O nmero de caractersticas o que determina a configurao da camada de entrada e o nmero de classes o que vai determinar a quantidade de neurnios da camada de sada.No caso do exemplo citado, temos necessariamente definidas as camadas de entrada e sada. A figura 5 lustra a estrutura bsica da rede que ser necessria para este problema.

Figura 5. Estrutura bsica da rede neural para resolver o problema de classificao das Flores de Iris

Para a camada de entrada so necessrios quatro neurnios, um para cada caracterstica de ptala e spala. J na camada de sada, sero necessrios trs neurnios para dividir as flores nas trs classes. 4.2. Definio das camadas escondidas O nmero de camadas escondidas no uma coisa fixa, mas costuma-se adotar o uso de no mximo trs camadas escondidas, nas redes para fins de classificao. Isso decorre do fato de que o algoritmo utilizado, o Backpropagation,repassa o erro obtido na camada de sada da rede para 8

as demais camadas, que ajustaro os pesos com base neste erro, porm, como de uma camada para a antecessora o valor do erro tem que ser estimado, um nmero grande de camadas dificulta o aprendizado da rede neural. 4.3. Definio da quantidade de neurnios nas camadas escondidas Existem vrias propostas de como determinar a quantidade adequada de neurnios nas camadas escondidas de uma rede neural, esta , geralmente, definida empiricamente. Deve-se ter cuidado para no utilizar unidades demais, o que pode levar a memorizao dos dados de treinamento (overfitting), nem um nmero pequeno demais, que pode forar a rede a gastar tempo em excesso tentando encontrar um ajuste sinptico timo (underfitting). Algumas propostas so: Definir o nmero de neurnios em funo da dimenso das camadas de entrada e sada da rede. Pode-se definir o nmero de neurnios na camada escondida como sendo a mdia aritmtica ou ainda como sendo a mdia geomtrica entre tamanho da entrada e da sada da rede e Utilizar um nmero de sinapses (conexes) dez vezes menor que o nmero de exemplos disponveis para treinamento. Se o nmero de exemplos for muito maior que o nmero de sinapses, overfitting (memorizao de dados de treinamento) improvvel, no entanto pode ocorrer underfitting (a rede no converge durante o seu treinamento).

Concluindo, podemos afirmar que no existe um mtodo ou receita para obter uma arquitetura ideal de rede neural. Ela sempre depender do problema a ser resolvido e de testes prticos de aprendizagem, sendo que as observaes elencadas nos itens 4.2 e 4.3 so apenas sugestes de como comear estes testes. 5. Treinamento, o aprendizado supervisionado da rede neural

Outro conceito de fundamental importncia o de Treinamento da rede neural, mais precisamente, o aprendizado pelo qual a rede deve passar para que possa de fato resolver os problemas propostos a ela.

Dentre todas as caractersticas das redes neurais artificiais, nenhuma desperta tanto interesse quanto a sua habilidade em realizar o aprendizado. [WASSERMAN 1989]

Ao criarmos a rede neural, os pesos sinpticos (representados por cada conexo entre dois neurnios) so atribudos de forma aleatria e dizemos que a rede neural burra, pois no consegue distinguir corretamente nenhum conjunto de entrada que for apresentado ela. Para que o quadro seja alterado, preciso que ocorra um ajuste dos pesos sinpticos e isso ocorre a partir do aprendizado supervisionado da rede neural. Mas o que de fato seria o aprendizado supervisionado? Para que os pesos sejam ajustados que existe o treinamento da rede. No momento de treinamento da rede, um subconjunto do conjunto de dados do problema apresentado a rede para que ela possa, utilizando o algoritmo Backpropagation, ajustar os pesos para obter uma reduo no erro entre a sada Dica
Supervisionado apresenta entrada +sada desejada No Supervisionado apresenta apenas a entrada

apresentada pela rede para cada elemento do subconjunto e o valor que era esperado para aquele elemento do subconjunto. Ou seja, o conjunto de treinamento composto por valores de entradas e as respectivas sadas desejadas por este conjunto de dados. Por este motivo, o aprendizado dito supervisionado. Existe o caso em que a rede treinada apenas com um conjunto de dados de entrada sem a sada desejada, neste caso, o qual no abordado pelo Projeto SIMNeural, o aprendizado dito no supervisionado. Comentamos anteriormente que no sero dados detalhes sobre o Backpropagation, contudo, nesta etapa, uma pequena insero em seu contexto se faz necessria. 6. Breve introduo ao Backpropagation Por muitos anos no havia um algoritmo eficiente para treinar redes neurais artificiais multicamadas. Como as redes de nica camada se mostraram limitadas quanto ao que conseguiam representar e no que poderiam aprender, o desenvolvimento de modelos cognitivos deixou de ser um campo atraente e poucas pesquisas foram realizadas na rea. O algoritmo Backpropagation, proposto por Werbos, Parker e Rummelhart, fez ressurgir o interesse em Redes Neurais Artificiais, sendo o algoritmo de aprendizado mais largamente utilizado [MSSON1990] [REFENES1993c]. No Backpropagationao ao se apresentar um determinado padro de entrada a uma rede neural no treinada, uma sada com base nos pesos sinpticos produzida. A partir da sada produzida pela rede um erro calculado, representando a diferena entre o valor obtido e o desejado. O objetivo consiste, ento, em reduzir continuamente o erro at um determinado valor aceitvel. Isto alcanado pelo ajuste dos pesos entre as conexes dos neurnios pela aplicao de uma regra de aprendizagem, que calcula o erro para algum neurnio particular e propaga esse erro para a camada imediatamente anterior. Cada neurnio tem seus pesos ajustados de modo a minimizar o erro da rede.

Figura 6. Fluxo do algoritmo Backpropagation. As setas azuis representam a fase forward, enquanto a seta vermelha representa o inicio da fase backward, que termina ao alterar o peso da camada de entrada.

O ajuste dos pesos inicia nas unidades de sada, na qual a medida do erro est disponvel, e procede com a retropropagao (retro pois o sentido o inverso do caminho seguido pelas 10

entradas na rede) desse erro pelas demais camadas, ajustando os pesos sinpticos at que a camada dos neurnios de entrada tenha sido processada. Para os neurnios de sada, como so conhecidos os valores desejados e obtidos, o ajuste dos pesos sinpticos relativamente simples; para os das camadas ocultas, o processo no to trivial. Intuitivamente, as unidades ocultas que apresentarem erros grandes devem ter os pesos de suas conexes mais afetados, enquanto que a mudana nos pesos daquelas que tiverem suas sadas muito prximas das desejadas dever ser pequena. Essa a razo pela qual a retropropagao dos erros atravs da rede permite o correto ajuste dos pesos sinpticos entre todas as camadas do modelo conexionista. Desta forma, possvel identificar duas fases distintas no processo de aprendizagem do backpropagation: uma onde as entradas se propagam entre as camadas da rede, da camada de entrada at a camada de sada, chamada de forward, e outra em que os erros so propagados na direo contrria ao fluxo de entrada, e que altera os pesos sinpticos, chamada de backward. As duas fases podem ser vistas na Figura 6. Como dito anteriormente, no avanaremos no entendimento das frmulas matemticas por trs do Backpropagation, entretanto, para que o usurio possa treinar as redes no software Projeto SIMNeural, preciso algumas variveis do algoritmo e o que elas representam no aprendizado da rede. 6.1. Pesos e parmetros de aprendizado Durante o treinamento, o ajuste de pesos e por conseguinte a reduo no erro gerado na sada da rede chamado de convergncia da rede. Existem dois parmetros fundamentais para que a convergncia da rede seja alterada no decorrer do treinamento. Essas duas variveis so chamadas de Taxa de Aprendizado e Taxa de Momentum. Durante a evoluo do treinamento, os pesos podem assumir valores maiores, forando uma estabilizao da aprendizagem antes que seja encontrada uma soluo razovel, ou seja, ficando presa um mnimo local. Isso pode ser evitado pela aplicao de uma taxa de aprendizado e taxa de momentum menor. Teoricamente, o algoritmo necessita que a mudana nos pesos seja infinitesimal, entretanto, a alterao dos pesos nessa proporo implicaria em um treinamento infinito. Em vista disso, recomendado que seja utilizada uma taxa de aprendizado maior no inicio do treinamento e, medida que seja observado decrscimo no erro da rede, que pode ser observado pelo valor do erro quadrado mdio da RNA (MSE), essa taxa tambm seja diminuda. O termo de momentum utilizado para aumentar a estabilidade do processo de treinamento, favorecendo mudanas em uma mesma direo. Em exemplos pesquisados em nossa monografia, as taxas de aprendizado e momentum variavam entre 0,5 e 0,001. Assim como o nmero de camadas escondidas e seus neurnios, a definio da taxas parte de testes empricos, sendo parte do processo de pesquisa encontrar as taxas que aumentam o rendimento do aprendizado de uma estrutura neural.

11

V. Ambiente do Projeto SIMNeural


J mostramos a estrutura bsica da instalao do SIMNeural e alguns conceitos de Redes Neurais Artificiais, agora vamos demonstrar toda a interface do sistema e como realizada sua operao, atravs de um exemplo prtico. Nossa abordagem ser a de mostrar primeiro a interface que foi elaborada sobre o ExtendSIM para o nosso projeto especfico, mas em um captulo posterior iremos tratar de algumas peculiaridades do prprio ambiente ExtendSIM. 1. Tela Inicial Abrindo o ExtendSIM, aps ter configurado atravs da checkbox "Abrir automaticamente com o ExtendSim (Figura 1) ou atravs do arquivo de um dos atalhos gerados na instalao do SIMNeural, a tela inicial no Projeto SIMNeural ser exibida, conforme imagem abaixo.

Figura 7. Janela de entrada do software Projeto SIMNeural

A partir desta tela inicial possvel criar novas redes neurais, abrir modelos salvos, modelos exemplos, configurar o SIMNeural para abrir juntamente com o ExtendSIM ou mesmo acessar este manual de ajuda. 2. Criar Rede Neural Clicando sobre o boto Criar Rede Neural, um novo modelo em branco ser criado para construo de uma nova rede neural. A figura 8 ilustra a janela que ser aberta. Agora vamos criar nossa primeira rede neural, para demonstrar a utilizao do software. Com este intuito, iremos desenvolver uma rede que seja capaz de identificar trs espcies de flores de Iris, so elas: Setosa, Versicolor e Virgnicas. Como dito anteriormente, precisamos saber a estrutura do problema e isso obtido atravs dos dados que dispomos do problema. 12

Figura 8. rea de trabalho para Criao de uma nova rede neural

Neste exemplo, usaremos dados de uma base de dados mantida pela University of California - Irvine (http://ftp:ics:uci.edu/pub/machine-learning-databases/) disponibilizada para fins acadmicos. O banco de dados composto por 150 amostras, sendo 50 de cada espcie. E cada uma destas amostras possui 5 atributos, sendo 4 deles caractersticas numricas e um sendo a classificao com base nos quatro primeiros atributos. 2.1. ETAPA 1 - Definio da estrutura da RNA Clicando no boto "Definir Arquitetura", a seguinte janela ser aberta:

Figura 9. Painel de controle da rede neural

13

Este o painel de controle da rede neural atravs deles, todas as operaes feitas sobre a rede neural podem ser executadas, desde o treinamento at a sua execuo (teste). Observe no topo da janela a existncia de trs abas: Definir Arquitetura e Dados da RNA, Treinamento e Validao e Teste. Cada uma das abas responsvel por uma etapa de desenvolvimento da rede neural e iremos passar por todas elas na respectiva ordem. O painel chamado Definir Arquitetura na figura 10 permite a entrada da quantidade de neurnios da camada de entrada, a definio de nmero de camadas escondidas e dos nmeros de neurnios de cada camada escondida atravs de uma tabela dinamicamente alterada de acordo com o nmero de camadas, onde o nmero de camadas escondidas vai de 0 a n-1; alm disso, h o campo para determinar os neurnios da camada de sada. Como nosso problema envolve quatro atributos de entrada e a sada pode ser uma de trs classes, temos definidas as camadas de entrada e sada com quatro e trs neurnios, respectivamente.

Figura 10. Painel de definio da Arquitetura da Rede Neural

Quanto camada escondida, o nmero pode variar, mas neste exemplo, usaremos 2 camadas com 5 neurnios cada, para fins de melhor visualizao da rede na rea de trabalho. Com arquitetura definida, nos resta clicar no boto "Gerar RNA" para que a rede neural seja definida na rea de trabalho do SIMNeural. Simultaneamente, outra janela ser exibida para que sejam expressos alguns parmetros de identificao das caractersticas e classes que esta rede neural ir identificar. Veja que existem duas colunas para preenchimento, uma com o Nome das Entradas, que so as caractersticas das amostras (Comprimento da Spala, Largura da Spala, Comprimento da Ptala e Largura da Ptala) e outra com o nome das classes (Setosa, Versicorlor e Virgnica). Clique em OK para fechar a janela. Agora nossa rede neural foi gerada e pode ser visualizada na rea de trabalho da ferramenta.
Figura 11. Definir entradas e classes do problema abordado pela rede neural.

14

Figura 12. Rede neural definida na rea de trabalho aps clicar no boto "Gerar RNA"

Observe que no desenho da rede, existem trs tipos de neurnios. A primeira "coluna" de neurnios representa a camada de entrada, as duas camadas seguintes so representadas pelo neurnio caracterstico da camada escondida e, finalmente, temos a representao de trs neurnios da camada de sada; ou seja, cada tipo de camada entrada, oculta ou sada tem um desenho tpico de neurnio. Antes de partirmos para prxima etapa, a do treinamento, existe um outro detalhe que deve ser observado na definio da arquitetura da rede: a definio dos pesos sinpticos. O painel de definio dos pesos nos apresenta quatro opes interessantes de preenchimento inicial dos pesos: Automtico (Aleatrio), Importar Pesos Gravados (ltima gravao efetuada), Importar Pesos de Arquivo e Manual. Manual: todos os pesos so preenchidos com valor 0 e cabe ao usurio definir os pesos da rede na matriz de pesos iniciais; Automtico: todos os pesos da rede so preenchidos com um valor aleatrio entre 0 e 1; Importar Pesos Gravados: Ao treinar a rede e exportar os pesos para um arquivo externo, o SIMNeural mantm na memria os pesos exportados para importar durante uma outra execuo;

Figura 13. Painel de definio dos pesos

Importar Pesos de Arquivo: permite importar pesos gravados em arquivos de dados de treinamentos anteriores; 15

Aps a escolha do mtodo de preenchimento dos pesos, e da escolha do arquivo no caso de pesos importados de um arquivo, devemos clicar uma nica vez em Preencher Pesos e observar os ajustes realizados em todas as camadas da rede. No nosso exemplo vamos colocar os pesos aleatoriamente, pois vamos treinar a rede pela primeira vez.

2.2.

ETAPA 2 - O Treinamento

O Treinamento certamente a fase mais crtica do aprendizado da rede neural. Pois vrias variveis precisaram ser definidas e controladas. O painel de controle de treinamento pode ser acessado ao clicar na aba Treinamento.

Figura 14. Painel de controle do Treinamento da rede neural

Comearemos com a preparao dos dados para insero no SIMNeural, na qual utilizaremos um software de planilha eletrnica (Libre Office Calc ou Microsoft Excel) para depois mostrar as funcionalidades voltadas para importao de dados tratados e execuo do treinamento em si. 2.2.1. Preparao de dados para utilizao no SIMNeural O software que desenvolvemos no trabalha com dados em linguagem natural. Por exemplo, se uma das caractersticas de um problema envolvesse o formato de uma clula e o domnio dos possveis formatos fosse oval, quadrada e triangular, estes valores deveria ser codificados em 1 = oval, 2 = quadrada e 3 = triangular. Disso decorre a primeira etapa de preparao de dados que chamaremos de codificao de dados. A Figura 15 ilustra um exemplo de codificao de caractersticas.

16

Figura 15. Exemplo de uma codificao de caractersticas

Observe que a codificao da Classificao (regular,irregular) foi realizada de uma forma diferenciada, pois para ela acrescentamos duas colunas tabela, no lugar da coluna de Classificao foi colocado uma coluna para cada classe. Como uma clula s pode pertencer a uma classe, os dados so preenchidos de acordo com a codificao adotada. Tendo realizado a codificao dos atributos, precisamos formatar nossa planilha de dados para que o SIMNeural possa import-la. No caso do exemplo da figura alguns dados devem ser descartados: a primeira coluna indicando o nmero de amostras e a linha com os rtulos das colunas.

Figura 15. Tabela finalizada

Podemos dizer que os nicos dados que sero importados a o resultado da codificao realizada. A etapa final da preparao dos dados envolve em salvar a planilha em formato TXT, utilizando como delimitador de colunas tabulaes ou algum caractere ("," ":", etc). O resultado um arquivo txt com o seguinte contedo:

Figura 16. Arquivo TXT com dados codificados para importao

O base usada em nosso exemplo um pouco diferente, pois foi retirada do repositrio da Universidade de Wisconsin. Os dados j estavem no seguinte formato:

17

Figura 17. Arquivo TXT com dados retirados do repositrio de Wisconsin

Repare que apesar de a base j ser fornecida em formato texto, ela ainda necessita de alguns ajustes. A ultima coluna, que representa a classificao das flores tem que ser codificada. Como temos trs classes (Iris-Setosa, Iris-Versicolor, Iris-Virginica) o resultado final deve ser:

Figura 18. Arquivo TXT com dados das flores no formato de importao

Agora que tratamos devidamente dos dados, preciso import-los para que o treinamento possa ser realizado. Vermos como isso feito no prximo item, mas antes disso preciso estabelecer uma quantidade para estes dados. Temos um total de 150 amostras de flores e a diviso entre as espcies igual. O ideal que nossa amostra de treinamento tenha a mesma quantidade de cada classe e que no seja to grande a ponto de fazer com que a rede memorize as amostras ao invs de generalizar. Em nosso exemplo vamos utilizar uma quantidade de quinze amostras, cinco de cada espcie. As amostras restantes, sero usadas no teste da rede. 2.2.2. Importao dos dados Observe na figura 14 um boto entitulado "Importar Base de Dados" . Clicando sobre ele, a seguinte janela ser aberta:

Figura 19. Janela de importao de dados

18

Durante a importao voc deve definir qual foi o delimitador de colunas usado no arquivo TXT. AS opes disponiveis so Tabulao, Espao e Outro. No nosso caso, foi usada a virgula (",") para separar as colunas. Iremos colocar a opo outros e preencher o campo com a virgula. Com o separador escolhido, nos resta apenas localizar o arquivo (BD_iris_wisconsin_treino.txt), que, no caso do nosso exemplo, encontra-se no diretrio Base Dados > Iris, dentro do diretrio onde foi instalado o SIMNeural, para depois clicar em Importar dados. Com a operao finalizada, a tabela de dados para treinamento ser preenchida, e uma janela semelhante a figura 20 (exceto pelas marcaes em vermelho) ser visualizada. Observe que sobre a tabela de dados das flores existe um boto chamado "Definir entradas e Classes". Clicando nele, a janela da Figura 11 ser exibida, permitindo alterao dos rtulos das colunas da tabela.

Figura 20. Painel de controle do treinamento, com destaques nos itens de controle: 1 representa a tabela de dados para treinamento; 2 representa o painel de aes sobre o treinamento ; 3 representa o controle da durao do treinamento; 4 representa a visualizao do treinamento; 5 o controle de animao, de definio de entradas e classes e Importao de Base de Dados.

2.2.3. Configuraes de Aprendizado Com a tabela de treinamento preenchida, devemos definir a configurao de aprendizado da nossa rede neural, ou seja, definiremos a Taxa de Aprendizado e de Momentum (marcao nmero dois na figura 20). Como dito em tpico anterior, as taxas podem e devem variar de acordo com o decorrer do trainamento, mas no devem assumir valores muito grandes. Para o exemplo em questo, utilizamos a Taxa de aprendizado em 0,25 e de momentum em 0,3.

Figura 21. Taxas usadas no treinamento

19

As taxas podem ser modificadas durante o treinamento, porm cada vez que uma alterao for realizada, a simulao ser pausada, devendo ser continuada atravs do boto presente na barra de ferramentas do ExtendSIM (item 1.1 do captulo VI). 2.2.4. Execuo do Treinamento Antes de iniciarmos a o treinamento, pressionando o boto "Treinar RNA", devemos definir a durao do treinamento e para isso temos a nossa disposio dois controles, por nmero de pocas ou por preciso, que esto destacados com a marcao nmero trs em vermelho na figura 20. O nmero de pocas um nmero inteiro, enquanto que o nmero de preciso um valor real positivo que representa o a quantidade de erro que se pretende alcanar (quanto menor o valor mais tempo levar o treinamento e muitas vezes, valores muito pequenos, da ordem de 103 so impossveis de se atingir). Em nosso exemplo, treinaremos a rede durante 5000 pocas.

Dica
Uma POCA termina quando todas as amostras de treinamento so calculados pela RNA. 5000 pocas X 15 amostras = 75000 ajustes

Observe, ainda na figura 20, que existe uma marcao 4 em vermelho. Ela indica os painis de Visualizao do Treinamento da RNA. Nestes campos temos seis tabelas para acompanhamento em tempo real do treinamento. O primeiro grupo de trs tabelas, representa, na ordem, da esquerda para a direita, os valores de entrada, os valores de sada da RNA e os valores desejados. Os valores de entrada e o valor desejado so obtidos diretamente dos dados para treinamento da rede. J os valores de sada da RNA obtido pela apresentao dos valores de entrada RNA. J o segundo grupo de tabelas, mostra a viso dos erros da RNA em tempo de execuo. Temos as tabelas de Erros de sada, Erro Instantneo e o Erro Quadrtico Mdio da RNA (MSE), respectivamente. Os Erros de sada simplesmente a diferena entre o valor de sada da RNA e o valor desejado de sada, que a amostra apresentava. O Erro instantneo um calculo realizado com base nos erros de sada e com base nestes erros que so ajustados os pesos sinpticos da RNA. Por ultimo, o MSE armazena a evoluo deste indicador ao longo de cada poca de treinamento. Finalmente temos todas as questes respondidas para que o treinamento possa ser iniciado. No painel 4 da figura 20, alm das taxas de aprendizado e momentum, temos quatro botes: "Treinar RNA", "Parar Treinamento", "Gravar Treino-Pesos", "Grfico MSE". Treinar RNA: Inicia o treinamento utilizando as configuraes atuas dos controles de treino da RNA; Parar Treinamento: Interrompe o treinamento, permitindo ao usurio escolher se o treinamento ser interrompido ao final do calculo da amostra corrente ou depois do final da poca atual; Gravar Treino-Pesos: salva os pesos, taxas de aprendizado e momentum do treinamento em um arquivo TXT que pode ser importado no momento da definio dos pesos da RNA; 20

Grfico MSE: Exibe a janela de configurao dos dados para exibio de um grfico com a evoluo do MSE de um ou mais treinamentos.

Ao clicar em Treinar RNA, o processo de treinamento ter inicio e pode ser acompanhado passo a passo at sua concluso. sempre importante observar a evoluo das taxas de erro, entretanto necessrio destacar que nem sempre um aumento no erro indica erro no treinamento ou na arquitetura da rede neural, pois os pesos vo se ajustando e pode ocorrer oscilao no MSE. A figura abaixo o painel de treinamento pronto para a execuo do nosso exemplo das flores. Veja que os rtulos das colunas da tabela de dados de treinamento esto preenchidas de acordo com o definido na Figura 11. Caso no tenha definido naquele momento, clique no boto "Definir entradas e classes" para o fazer agora. Existem ainda duas opes que podem ser modificadas e que tero impacto na execuo da RNA, seja no treinamento ou na execuo do teste. So a animao e a velocidade do processamento. Ao ligar a animao, durante as execues da RNA (treino ou teste), veremos a imagem de um "raio"passando por cada conexo da rede. Ativar a animao no indicado para redes grandes, pois h uma demora gerada pela API do ExtendSIM. Quanto a velocidade do processamento, existem trs possveis: Rpido, Normal e Lento; as velocidades vo variar de acordo com o poder de processamento da mquina do usurio, mas em geral, cada uma possui o dobro de velocidade da anterior. Pode ser til executar a simulao em velocidades menores para demonstrar a evoluo dos nmeros da RNA.

Figura 22. Painel de controle do Treinamento pronto para execuo do nosso exemplo.

21

2.2.5. Grfico MSE Depois de realizado o treinamento, possvel configurar visualizar um Grfico MSE, que mostra a evoluo, em forma de um grfico de linha, do MSE ao longo das pocas de um ou mais treinamentos. Trs botes so responsveis por gerenciar os dados da evoluo do treinamento: "Limpar MSE, "GravaMSE" e "Grfico MSE".
Figura 23. Janela de configurao dos dados exibidos no grfico MSE.

Limpar MSE: nada mais faz do que zerar os valores armazenados na tabela MSE do treinamento atual; GravaMSE e GrficoMSE: so dois botes que encaminham o usurio para a mesma janela, nela possvel salvar os dados do MSE atual em um de at cinco espaos de memria, para gerar o grfico MSE.

Observe a Figura 23. Veja que existe um popup onde possvel alterar entre os cinco espaos de memria mencionados. possvel gravar os MSEs do treinamento atual ou apagar os valores de algum outro treinamento realizado. Depois de salvos os valores, clicando em "Exibir Grfico" os dados armazenados sero desenhados de acordo com a ordem salva pelo usurio. A figura 24 ilustra um exemplo de grfico gerado aps dois treinamentos de uma rede neural qualquer. Veja que a janela se divide em duas partes: a tabela de dados e o grfico propriamente dito.

Figura 24. Exemplo de um grfico de evoluo de MSE aps armazenar o resultado de dois treinamentos nos espaos correspondentes.

Existem algumas ferramentas que auxiliam na visualizao dos dados no grfico, como uma lupa para focar os dados, auto-escala dos eixos X e Y (para retornar a viso do todo), ferramenta 22

"mo" que permite movimentar o foco ao longo dos eixos X e Y entre outras. Os rtulos dos comandos esto em ingls dada a impossibilidade de traduzir a ferramenta de grficos do ambiente ExtendSIM. Seguem abaixo os nomes em ingls, em portugus e a funcionalidade: Trace Properties (traar propriedades): Exibe e permite alterar caractersticas de visualizao das linhas que foram traadas no grfico. Log: Permite alterar os eixos X e Y para usarem uma escala logartmica. Open Dialog (Abrir dialogo): Abre uma janela de configuraes do grfico. Grid Density (Densidade do Gride): Permite alterar a densidade do grid (quadriculado) do grfico. Auto Scale X (Auto Escala X): altera a escala no eixo X para que todos os dados possam ser visualizados neste eixo, sem modificar o eixo Y. Auto Scale Y (Auto Escala Y): altera a escala no eixo Y para que todos os dados possam ser visualizados neste eixo, sem modificar o eixo X. Auto Scale XY (Auto Escala XY): altera a escala nos dois eixos para que todos os dados possam ser visualizados. Zoom in (Ampliar): Permite selecionar uma rea do grafico e dar o zoom como uma lupa, para visualizar maiores detalhes do grfico. Zoom out (Reduzir): Diminui o tamanho do mapa progressivamente. Redraw Trace (Redesenhar Trao): permite alterar os valores dos dados atravs do grfico. Push Plot Tool (Empurrar Grfico): permite salvar um grfico para visualizar atravs do alternador de pginas. Alternador de Pginas: permite alternar entre os grficos atuais e salvos com o Push Plot Tool at um limite de 4. 2.3. ETAPA 3 - Teste utilizando a RNA treinada

Com o fim do treinamento, podemos apresentar dados para que nossa rede classifique. Para que isso seja realizado, preciso acessar o painel de testes da RNA, que consiste em uma tela semelhante ao painel de treinamento, porm sem as configuraes de treinamento e o acompanhamento da evoluo deste. Clicando sobre a aba "Validao e Teste", a seguinte janela dever ser exibida:

23

Figura 25. Painel de Testes da Rede Neural

Note que, inicialmente, no haver nenhum dado para testes, pois eles devero ser importados, seguindo o mesmo padro dos dados para treinamento e, portanto, possuem preparao semelhante ao que foi descrito no item 2.2.1. Nesta aba temos quatro botes importantes: Importar Dados Para Teste: Exibe uma janela que possibilita a importao de dados para teste, semelhante importao de dados para treinamento, sugerimos a importao do arquivo "BD_iris_wisconsin" para realizao dos testes (encontra-se no mesmo caminho do arquivo de treino usado no item 2.2.2); TestarRNA: executa o teste com os dados apresentados a rede. Uma a um todos os elementos da amostra de testes sero classificados pela RNA e a sada gerada pela rede ser exibida na tabela. Pausar: Clicando neste boto o treinamento ser paralisado ao final do calculo para a amostra n atual; Continuar: Segue o teste a partir da primeira amostra depois da pausa.

Aps realizar a importao, a tabela se parecer com a da figura 26. Observe que temos, respectivamente, quatro colunas com as caractersticas definidas no item 2.1 (Figura 11) e mais trs colunas indicando a sada desejada, da mesma forma que nos dados de treinamento (Figura22); mas alm disso, temos trs colunas adicionais que vo receber a sada para cada conjunto de dados testado pela RNA e a ultima coluna que vai apresentar a classificao da nossa rede de acordo com o que foi definido, tambm no item 2.1 (Figura 11). Diferentemente da execuo da RNA no treinamento, durante o teste nenhum peso ajustado e a repetio dos testes para um mesmo grupo de amostras, sem outro treinamento anterior, ir repetir fielmente todos os resultados. Ou seja, caso o treino ainda no tenha apresentados bons resultados para o conjunto de teste, o treinamento dever ser re-feito.

24

Figura 26. Painel de Testes da Rede Neural aps o preenchimento com dados importados

Como dito acima, o boto "Testar RNA" inicia o uso da rede para classificar os dados. As colunas de sada sero preenchidas de acordo com as sadas geradas pela rede, bem como a Classificao ser preenchida de acordo com os dados gravados nas tabelas da Figura 11. A execuo tambm pode ser acompanhada pela tela de visualizao de treinamento, da aba anterior, enquanto o teste executado. A figura 27 ilustra a painel aps a execuo de um teste para o mesmo conjunto de entradas, mas para uma rede j treinada.

Figura 27. Painel de Testes da Rede Neural aps a execuo do teste. Observe que as colunas de sada e de classificao foram respectivamente preenchidas com as sadas geradas pela RNA e com a classificao

25

2.3.1. Salvando a rede neural Vimos no item 2.2.4 que possvel salvar o peso (conhecimento) do treinamento realizado; porm existe uma segunda opo ainda mais completa que salva, alm dos pesos atuais, toda a estrutura e informaes da RNA aberta. O menu de aes do modelo j foi visto na figura 8, mas no teve a devida apresentao. Atravs dele acessamos os painis de definio da nossa RNA, mas existem ainda duas outras aes disponveis neste menu. Salvar como: uma caixa de dialogo aparece solicitando que seja digitado o nome do modelo. O arquivo ser salvo com o nome digitado na pasta intitulada "Modelos" no diretrio do SIMNeural; Ajuda: este manual ser aberto para o usurio.

Figura 28. Menu de aes do modelo

3. Abrir Modelo No item 2.3.1 vislumbramos a possibilidade de salvar o modelo completo de uma rede neural criada. Para abrir este modelo, que salvo por padro na pasta "Modelos", podemos proceder de duas formas: Acessar diretamente o arquivo pelo gerenciador de arquivos, no caso do Windows o Explorer, e abrir com o ExtendSim; Clicar no boto "Abrir Modelo"na janela inicial do Projeto SIMNeural (Figura 7). Para que a pasta com os modelos seja automaticamente aberta.

4. Exemplos de Modelo Juntamente com o Projeto SIMNeural sero distribudos dois modelos de exemplo para fins didticos. O exemplo Flores de Iris e o exemplo RNA Passo a Passo sendo que o nome dos arquivos destes so, respectivamente, ExemploIris.mox e RNA Passo_a_Passo.mox e estaro presentes no diretrio Modelos Exemplo do SIMNeural. 4.1. Exemplo Flores de Iris O primeiro apresenta o mesmo exemplo usado em nosso tutorial, contudo, alm de j estar treinada, algumas customizaes foram realizadas para fins didticos. A estrutura da rede no pode ser alterada, com exceo das camadas intermedirias e existem amostras para serem testadas na rea de trabalho, permitindo, inclusive, a criao de novas amostras atravs do boto "Adicionar" no conjunto de Amostras.

26

Figura 29. rea de trabalho do exemplo Flores de Iris

Um clique duplo sobre uma amostra permite alterar as caractersticas da amostrar para obter sua identificao, sendo que aps esta identificao, a amostra passa a apresentar o desenho com a classe identificada. Outra diferena pode ser notada nas abas da Definio da Arquitetura, onde alguns rtulos so colocados sobre as tabelas de dados, para facilitar o uso do modelo em uma aula, por exemplo. 4.2. Exemplo RNA passo a passo O segundo modelo de exemplo, RNA passo a passo, um modelo completamente diferente dos demais. Foi elaborado com a inteno de permitir uma aula sobre o algoritmo utilizado no treinamento das redes neurais. Apesar de apresentar todos os elementos para criao de uma RNA este modelo no executa o treinamento real de uma rede, mas serve para demonstrar todos os conceitos por trs do Backpropagation. A rea de trabalho deste modelo apresenta a primeira diferena deste modelo: o boto "RNA passo a passo". Clicando sobre ele um painel de controle da RNA diferente dos demais ser aberto (figura 30). A finalidade permitir uma execuo passo a passo e de forma simplificada do Backpropagation.

Figura 30. rea de trabalho do exemplo RNA passo a passo

27

4.2.1. Passos do exemplo RNA passo a passo: Neste tutorial, a criao e treinamento foi separada em sete passos distintos, na verdade oito, pois o passo sete pode seguir dois rumos distintos. A Figura 31 mostra o painel de controle diferenciado criado neste modelo exemplo. Seguem, abaixo, a descrio sete passos. 1 Passo - Definir a arquitetura da rede: o usurio dever definir o nmero de camadas da rede e seus respectivos neurnios em um painel semelhante ao da figura 10; 2 Passo - Dados de entrada e sada desejada: Aqui, diferentemente da importao de dados realizada no exemplo das flores que utilizamos para demonstrar a criao e treinamento de uma RNA, os valores que sero usados para treino e teste desta RNA so inseridos pelo prprio usurio de acordo com a estrutura da RNA; 3 Passo - Definir pesos iniciais: nesta etapa sero preenchidos os pesos com duas possibilidades: manual e aleatrio, de forma semelhante com a etapa de preenchimento de pesos do nosso exemplo das flores de Iris; 4 Passo - Calcular valores obtidos na sada da RNA: os dados de entrada definidos no 2 passo so apresentados rede para calculo atravs do passo forward do backpropagation. 5 Passo - Calcular os erros dos valores obtidos pela RNA: os valores de sada da RNA so comparados com os valores de sada desejados definidos no 2 passo e os valores so exibidos para o usurio; 6 Passo - Definir a configurao de aprendizado: o usurio dever fixar as taxas de aprendizado e de momentum para o calculo de ajuste de pesos; e 7 Passo a) Executar ajuste dos pesos manualmente: clicando no boto "Executar", os pesos da rede neural sero ajustados para que o 4 passo possa ser executado novamente de forma a se compararem os resultados; b) Executar ajuste dos pesos automaticamente: o usurio ir definir o nmero de pocas que sero processadas ou definir a medida de preciso que pretende alcanar, para, depois, clicar em "Executar, fazendo com que a rede ajuste os pesos at atingir a condio definida.

28

Figura 31. Painel de Controle do Exemplo RNA passo a passo

29

VI. O Ambiente do ExtendSIM


1. Barra de ferramentas At o momento, no entramos nenhum detalhe sobre o software ExtendSIM, ambiente no qual o Projeto SIMNeural foi desenvolvido. Iremos manter as coisas desta forma neste manual, entretanto pensamos ser til ao nosso usurio conhecer a barra de ferramentas que o software mantm ativa durante as simulaes do SIMNeural at para evitar seu uso indevido durante as simulaes. A Figura 1 deste manual foi a nica que possui a janela do ExtendSim retratada. Repare que no topo da imagem existe uma barra de ferramentas com diversos cones, alm de uma barra de menu, em ingls, sobre a qual no entraremos em detalhes. A Figura 32 ilustra esta barra de ferramentas com algumas marcaes realizadas para descrever as suas ferramentas de forma destacada. Observe que apenas nos reservamos a tarefa de descrever as ferramentas, para maiores detalhes o correto ler diretamente o manual do ExtendSIM que pode ser acessado atravs da barra de menu "Help" > "ExtendSIM Help".

Figura 32. Barra de ferramentas do ExtendSIM

Separamos a barra de ferramentas em seis partes para simplificar a explicao. Os ferramentas do primeiro grupo realizam aes sobre o modelo sendo respectivamente: novo modelo, abrir, salvar, imprimir. As ferramentas do grupo dois agrupam as aes de recortar, copiar, colar e desfazer, respectivamente. No grupo trs temos ferramentas de visualizao como zoom, visualizar/ocultar conexes, abrir navegador da biblioteca, abrir bloco de notas. A biblioteca representa um acesso aos blocos e com eles aos fontes que compe o modelo atual. O bloco de notas no foi usado em nenhum modelo criado em nosso projeto. Continuando, temos nos grupos quatro e cinco as ferramentas que podem ser teis quando da execuo dos treinamentos e testes das RNAs. No grupo quatro temos as ferramentas de controle de fluxo da simulao. Segue abaixo detalhamento de cada ferramenta. 1.1. Ferramentas de controle de fluxo da simulao Executar simulao: no ter grande utilidade, j que o projeto foi desenvolvido para ser executado atravs das opes disponveis nos painis de controles; Executar com otimizao: clicando para executar desta forma, o ExtendSim exibira um erro que no permitir a execuo dos modelos. Isso ocorre porque os modelos no foram criados com a possibilidade de otimizao pelo ExtendSIM. Parar: para a simulao atual. Pode paralizar a simulao que estiver em execuo, contudo 30

esta prtica no deve ser adotada pois o fluxo de treino e teste da rede ser alterado, podendo gerar erros no programa e at travamentos. Para parar um treinamento, utilize o boto "Parar Treinamento" presente na aba Treinamento da janela exibida na Figura 11; Pausar/Continuar: pausa ou continua uma simulao a partir da pausa. til pois realiza as mesmas funes que os botes "Pausar" e "Continuar" na aba de Teste da janela exibida na Figura 27; Passo: executa um pequeno passo da simulao, til caso queira ver a execuo passo a passo. S pode ser utilizado aps pausar a simulao. 1.2. Ferramentas de controle de visibilidade e velocidade da animao O Grupo cinco consiste de trs ferramentas que na verdade formam uma, que controla a velocidade e a exibio ou no das animaes. Note que isso tambm pode ser realizado via interface de controle do SIMNeural. Segue detalhamento das ferramentas. Ligar/Desligar Animao: atravs deste boto o usurio pode definir se a animao ser mostrada ou no durante a simulao. Na janela da figura 11 podemos notar que existe um checkbox que realiza a mesma funo, contudo, para que a animao funcione, esta opo deve estar Ligada; Animao mais rpida: clicando neste boto a velocidade com que a animao exibida acelera; Animao mais lenta: clicando neste boto a velocidade com que a animao exibida desacelera. Finalmente, no Grupo de ferramentas 6, agrupamos todas as ferramentas que possibilitam movimentar os blocos na tela, no nosso caso, os neurnios, alm de permitir visualizar as diversas camadas e inserir formas e texto na rea de trabalho dos modelos. Estas ferramentas podem ser teis para customizar um modelo ou at mesmo no desenvolvimento de novas aplicaes. No entraremos em detalhes aqui tambm, mas todas as informaes podem ser encontradas no apendice intitulado "Menu Commands and Toolbars" no manual do ExtendSIM, pginas 680 a 714.

31

VII. Consideraes Finais


O ambiente do ExtendSIM extremamente rico para desenvolver novas aplicaes. Muitas delas no exigiro esforo com cdigo de programao, digo cdigo pois, por mais que no se tenha que escrever o programa, necessrio programar utilizando blocos de programas j desenvolvidos, nas chamadas bibliotecas do ExtendSIM. Nosso projeto buscou entender o funcionamento do ExtendSIM atravs de uma simulao de redes neurais artificiais. Com o decorrer do trabalho, vimos que os blocos existentes no ExtendSIM no eram suficientes e para isso desenvolvemos nossa prpria biblioteca. Nosso biblioteca no to flexivel a ponto de permitir criar novos algoritmos a partir da juno de blocos, mas permite a gerao dinmica de RNA`s multicamadas. Esperamos que o Projeto SIMNeural seja util no ensino de rede neural e que seja aplicado em campos como pesquisa e identificao de padres. O SIMNeural se propos a prover aos usurios uma forma fcil de criar Redes Neurais Artificiais flexiveis, sem que os usurios necessitassem escrever uma linha de cdigo. A nica necessidade do usurio ter um conhecimento prvio sobre redes neurais, conhecimento este que buscamos abordar de forma leve neste manual. Caso ainda sinta necessidade de uma abordagem mais completa, recomendamos a leitura das referncias que seguem no captulo IX.

32

VIII. Glossrio

A
Algoritmo: uma sequncia infinita de instrues bem definidas e no ambguas, cada uma das quais pode ser executada mecanicamente num perodo de tempo finito e com uma quantidade de esforo finita. Aprendizagem supervisionada: Em se tratando de redes neurais, o aprendizado ocorre atravs de ajustes nos pesos. No aprendizado supervisionado, o conjunto de dados apresentados RNA possui, alm dos valores de entrada, os valores de sada desejados. Estes dados agem como um "professor" pois so comparados com os valores de sada da RNA para calculos dos erros que iro entrar no algoritmo de correo dos pesos sinpticos. Aprendizagem no supervisionada: Na aprendizagem no supervisionada no temos o chamado "professor", ou seja, a rede deve descobrir sozinha as relaes e padres nos dados que lhe so apresentados.

B
Backpropagation: Algoritmo de aprendizagem utilizado neste trabalho. Consiste em duas etapas: forward e backward. Possui este nome justamente pela propagao do ajuste dos pesos no sentido da camada de sada para a de entrada. Backward: Etapa final do backpropagation aonde os pesos so ajustados de acordo com os erros gerados pela comparao da sada desejada com a sada real da RNA.

C
Camada de Entrada: a primeira camada de neurnios da RNA. composta por neurnios sensores que recebem os imputs do ambiente, no nosso caso, por tantos neurnios quantas forem as caractersticas dos problemas que desejamos resolver.

33

Camada de Sada: Ultima camada de uma RNA. nela que sero gerados os resultados de sada da rede e onde comeara a etaba backward do Backpropagation. Ter quantos neurnios forem necessrios para representar as classes do problema proposto a ela. Camadas Intermedirias, ocultas ou escondidas: So as camadas que armazenam o conhecimento das RNAs. O ajuste dos pesos realizado nos pesos sinpticos destas camadas e so nestas conexes que o conhecimento fica armazenado. Podem variar em nmero e tamanho de acordo com o problema, mas as quantidades ideais so achadas atravs de tentativa e erro.

E
Erro de sada: O erro de sada gerado aps execuo da fase forward do Backpropagation, na camada de sada. Consiste de uma simples subtrao para obeno da diferena entre o valor de sada e o valor desejado, para o conjunto de dados apresentados RNA. Erro instantneo: a soma instantnea dos erros quadrticos na camada de sada da RNA, descrita pela equao: 1 2 2 ()

() =

Onde inclui todos os neurnios da camada de sada, o nmero de padres contidos no conjunto de treino, e o sinadl de erro de sada do nurnio para a interao . Erro mdio quadrtico (MSE): obtido somando os erros instantneos de todos os elementos do conjunto de teste em uma poca e realizando uma normalizao com respeito ao tamanho do conjunto de treino, conforme 1 MSE = 1
1

()
=0

o MSE representa a funo de custo do processo de minimizao do erro de aprendizado. poca: Consiste no intervalo correspondente apresentao de todos os N vetores-exemplo do conunto de treino camada de entrada da RNA. 34

F
Forward: Etapa inicia do Backpropagation, consiste na apresentao dos dados camada de entrada e no calculo da sada atravs da propagao dos valores at a camada de sada. O fim desta etapa marcado pela apresentao do valor de sada da RNA.

M
MSE: a sigla em ingls para Erro Mdio Quadrtico (Medium Square Error). Ver Erro mdio quadrtico para mais informaes.

O
Overfitting: Dizemos que ocorre overfitting quando a RNA memoriza os dados de treinamento, ao invs de extrair as caractersticas gerais que permitiro a generalizao. Geralemente causado pelo o uso de um nmero muito grande de neurnios nas camadas escondidas. Para verificar se a RNA no apresenta overfitting, sempre deixe amostras diferentes das usadas em treinamento para teste da RNA.

P
Parmetros de aprendizagem: So duas taxas, a de aprendizagem e a de momentum, que s Perceptron: composto pelo neurnio de McCulloch-Pitts, com funo de limiar e aprendizado supervisionado. Sua arquitetura consisde de uma nica camada, a de sada. S consegue separar classes linearmente separveis. Perceptron Multicamadas : uma extenso do Perceptron de camada nica, descrito acima. Esta arquitetura apresenta uma camada com unidades de entrada, n camadas intermedirias e uma camada de unidades de sada, todas interconectadas. Tambm utiliza aprendizado supervisionado, mas utliza uma funo de ativao no-linar (i.e Sigmide). Possui a capacidade de classificar 35

classes que no so separveis linearmente e tem um processamento muito superior ao de uma rede Perceptron de camada nica. Pesos sinpticos : Representam a fora das conexes entre os neurnios, armazenam o conhecimento de uma rede neural. Cada conexo entre neurnios possui seu peso sinptico que sofre ao excitatria ou inibitria de acordo com os ajustes determinados pelos erros dos algoritmos.

P
Redes Neurais Artificiais (RNAs): So modelos matemtico-computacionais inspirados no funcionamento das clulas neuronais. Possuem processamento altamente paralelo, executado por unidades denominadas neurnios, "que tem a propenso natural de armazenar conhecimento experimental e torn-lo disponvel para uso~, (Aleksander e Morton, 1990). Apresentam as seguintes propriedades neurobiolgicas: O conhecimento adquirido pela rede, a partir do ambiente, atravs de um processo de aprendizagem; Foras de conexes entre neurnios, conhecidas como pesos sinpticos, so utilizadas para armazenar o conhecimento adquirido.

Retropropagao: Ocorre na segunda fase do Backpropagation, a fase backward, quando da propagao dos ajustes dos pesos no sentido contrrio da RNA, isto , da sada para a entrada.

T
Treinamento: Processo de ajuste dos pesos atravs da apresentao dos vetores de dados de treinamento. O algoritmo usado no treinamento o Backpropagation.

U
Underfitting: A utilizao de um nmero de neurnios inferior ao nmero necessrio pode fazer com que a rede gaste muito tempo para aprender ou at mesmo que ela no consiga convergir ou generalizar demais padres de entrada. Isso chamado de underfitting. 36

V
Valores de entrada: So os dados que so inseridos na RNA atravs dos inputs dos neurnios de entrada. Cada problema apresenta seu conjunto de caracteristicas de entrada. Estes valores devem ser nmeros reais, devendo ser codificados os dados textuais. Valor de sada: So os valores que saem aps o processamento dos valores de entrada pela RNA. Valores desejados: So valores que servem de base para o calclo dos erros da RNA que utilizam algoritmos de aprendizagem supervisionados. So fornecidos juntamente com os valores de entrada.

37

IX. Referncias e Bibliografia


1. Referncias teis Dicas para a configurao de redes neurais: material com consideraes importantes sobre configurao de redes neurais. til para uma referncia rpida. Disponvel em: http://www.labic.nce.ufrj.br/downloads/dicas_cfg_rna.pdf Dissertao de Mestrado escrita por Alessandro Muller, Universidade Federal de Santa Catarina UFSC. Disponvel em: http://www.eps.ufsc.br/disserta96/mueller/cap4/cap4.htm Site do ExtendSIM: http://www.extendsim.com 2. Bibliogrfia

BISHOP, C. M. (1995). Neural Networks for Pattern Recognition. Oxford University Press. KOVACS, Z. (2006). Redes neurais artificiais: fundamentos e aplocaes (4 Edio ed.). So Paulo: Livraria da Fsica. S. RUSSEL AND P.NORVIG. (2009). Artificial Intelligence: A Modern Approach (3 Edio ed.). Pearson. That, Imagine. (2012). ExtendSim Manuals. Retrieved 2012, from Site do ExtendSIM: http://www.extendsim.com/support_manuals.html Wasserman, P. D. (1989). Neural Computing: Theory and Pratice. New York: Nostrand Reinhold.

38

Anda mungkin juga menyukai