Classificação de padrões usando redes neurais

1.028 visualizações

Publicada em

Publicada em: Dados e análise
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.028
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
40
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Classificação de padrões usando redes neurais

  1. 1. UNIVERSIDADE CATÓLICA DO SALVADOR BACHARELADO EM INFORMÁTICA IGOR FERREIRA SOARES IZABEL BELCHOTE SANT’ANA CLASSIFICAÇÃO DE PADRÕES USANDO REDES NEURAIS DE KOHONEN Salvador 2006
  2. 2. IGOR FERREIRA SOARES IZABEL BELCHOTE SANT’ANA CLASSIFICAÇÃO DE PADRÕES USANDO REDES NEURAIS DE KOHONEN Salvador 2006 Monografia apresentada ao Curso de Graduação em Informática da Universidade Católica do Salvador, como requisito parcial para obtenção do grau de Bacharel em Informática. Orientador: Prof º Arnaldo Bispo
  3. 3. CERTIFICADO Certifico que a presente memória, CLASSIFICAÇÃO DE PADRÕES USANDO REDES NEURAIS DE KOHONEN, foi realizada sob minha direção por Igor Ferreira Soares e Izabel Belchote Sant’Ana, constituindo o Projeto Final do Curso do Bacharelado em Informática da Universidade Católica do Salvador - UCSal. Salvador, 14 de junho de 2006. ARNALDO BISPO Curso de Bacharelado em Informática Universidade Católica do Salvador
  4. 4. AGRADECIMENTO Ao professor Eduardo Jorge pela ajuda esclarecedora que proporcionou, indiscutivelmente, o alinhamento e a finalização deste trabalho. Aos colegas de sala, hoje amigos, por compartilhar todos os momentos, dos bons até os mais difíceis, sempre com união e garra. Enfim, nosso muito obrigado a todos que colaboraram diretamente e indiretamente na realização e concretização desse projeto.
  5. 5. RESUMO Este projeto pretendeu realizar um estudo sobre o algoritmo do mapa de Kohonen, como é popularmente conhecido, para classificação de padrões. Foi avaliado o estudo de caso da organização Ser Down, que auxilia os familiares de pessoas portadoras da síndrome de down. Para tanto, foi-se considerado o estudo de reconhecimento de padrões e, para apurar se há melhoria na identificação deste em relação ao trabalho anterior, foram escolhidas as redes neurais, mais especificamente, as redes neurais auto-organizáveis no modelo desenvolvido por Teuvo Kohonen. Isto porque, como constatado na literatura pesquisada, as redes neurais artificiais com o paradigma do aprendizado competitivo têm demonstrado boas soluções para vários problemas no reconhecimento de padrões. As reflexões levaram à conclusão que o algoritmo desta, por apresentar um mapa representativo de grupos de indivíduos com características comportamentais semelhantes de forma topológica, resulta numa melhor visualização da saída de dados no espaço amostral em questão. Assim sendo, teve resultados bastante satisfatórios. Palavras-Chave: Reconhecimento de Padrões; Redes Neurais Artificiais; Mapas Auto-organizáveis de Kohonen.
  6. 6. ABSTRACT This project intended to accomplish study about the algorithm of the map of Kohonen, as it is known popularly, to classification of patterns. It was appraised the study of case of the organization Ser Down, that aids relatives of bearers of the down syndrome. For so much, sit was considered the study of recognition of patterns and, to find out if there is improvement in the identification of this in relation to the previous work, they were chosen the Artificials Neurals Network, more specifically, the artificial neural network self-organizing in the model developed by Teuvo Kohonen. As verified in the researched literature, the artificials neurals networks with the paradigm of the competitive learning have been demonstrating good solutions for several problems in the recognition of patterns. The reflections lead to the conclusion that the algorithm of this, for presenting a representative map of individuals' groups with characteristics of behavior similar of topologic form, results in a better visualization of the output in the amostral space in subject. Key Words: Recognition of Patterns; Artificial Neural Network; Kohonen’s Self- Organizing Maps
  7. 7. SUMÁRIO 1 Introdução.................................................................................................................. 10 2 Reconhecimento de Padrão...................................................................................... 13 2.1 Classificação Supervisionada............................................................................. 14 2.2 Classificação Não-Supervisionada..................................................................... 14 2.3 Etapas para o Desenvolvimento do Reconhecedor........................................... 15 2.3.1 Extração e Seleção de Características ........................................................ 16 2.3.2 Construção de um Classificador................................................................... 16 3 Redes Neurais Artificiais ........................................................................................... 20 3.1 Breve Histórico .................................................................................................... 21 3.2 Neurônio .............................................................................................................. 21 3.3 Arquitetura de Rede ............................................................................................ 24 3.4 Aprendizado da Rede ......................................................................................... 26 3.4.1 Aprendizado Supervisionado........................................................................ 27 3.4.2 Aprendizado Não-Supervisionado................................................................ 27 3.4.3 Aprendizado Competitivo.............................................................................. 28 4 Mapas Auto-Organizativos – Modelo de Kohonen................................................... 30 4.1 Aprendizagem de SOM....................................................................................... 31 4.2 Mecanismos da Rede Neural.............................................................................. 33 4.2.1 Neurônio Vencedor ....................................................................................... 33 4.2.2 Ajuste de Pesos ............................................................................................ 35 4.2.3 Determinação da Vizinhança........................................................................ 37 4.3 Agrupamento....................................................................................................... 39 5 Análise Descritiva do Projeto.. .................................................................................. 40 5.1 Estudo de Caso Ser Down.................................................................................. 40 5.2 Metodologia ......................................................................................................... 41 5.3 Tecnologias Utilizadas ........................................................................................ 42 5.4 Modelagem da Solução ...................................................................................... 43 5.4.1 Mapa de Entrada........................................................................................... 43 5.4.2 Mapa de Saída.............................................................................................. 44 5.4.3 Treinamento da Rede ................................................................................... 44 5.4.3.1 Fase de Ordenação ................................................................................ 45 5.4.3.2 Fase de Convergência............................................................................ 45 5.5 Diagrama de Classes.......................................................................................... 46 5.6 Resultados Obtidos com o Treinamento............................................................ 47 6 Considerações Finais................................................................................................ 49 7 Referências................................................................................................................ 51 APÊNDICE A - Relatórios ............................................................................................ 54 APÊNDICE B - Trechos Significativos do Código....................................................... 59
  8. 8. LISTA DE ILUSTRAÇÕES Figura 2.1 - O Problema de Reconhecimento de Padrões......................................... 17 Figura 2.2 - Etapas de um Sistema de Reconhecimento Estatístico de Padrões ..... 18 Figura 3.1 - Neurônio Biológico.................................................................................... 23 Figura 3.2 - Neurônio McCullock-Pitts ......................................................................... 23 Figura 3.3 - Redes Alimentadas Diretamente com Camada Única............................ 24 Figura 3.4 - Redes Alimentadas Diretamente com Múltiplas Camadas..................... 25 Figura 3.5 - Redes Recorrentes................................................................................... 26 Figura 3.6 - Unidade de Processamento da Camada Competitiva ............................ 29 Figura 4.1 - Mapeamento de 3D para 2D.................................................................... 31 Figura 4.2 - Exemplos de Topologia da Vizinhança.................................................... 32 Figura 4.3 - Mapa de Kohonen com Neurônios de Saída Bi-dimensional.. ............... 34 Figura 5.1 - Modelagem do Banco de Dados SerDown ............................................. 43 Figura 5.2 - Diagrama de Classes ............................................................................... 47
  9. 9. LISTA DE TABELAS Tabela 3.1 - Quadro Comparativo entre o Cérebro e o Computador..........................22
  10. 10. LISTA DE ABREVIATURAS IDE – Intregrated Development Environment OO – Orientação à Objetos RNA – Rede Neural Artificial RP – Reconhecimento de Padrão SGBD – Sistema Gerenciador de Banco de Dados SOM – Self-Organizing Map
  11. 11. 10 1 Introdução O volume de informações contidos em uma base de dados, além de ter o mais variado contexto, cresce acentuadamente, dificultando a localização de um dado específico devido ao fator desorganização. Isto acaba acarretando em resultados de consultas não satisfatórios aos reais desejos dos usuários. Outro fator relevante à insatisfação quanto aos resultados de pesquisa é a dificuldade do usuário em saber formular corretamente as expressões necessárias à busca (VELOSO, 2005). As redes neurais artificiais no modelo proposto por Kohonen ou, como são comumente citadas na literatura, mapas de Kohonen, agrupam as informações que possuem caráter similar, obtendo vários conjuntos de dados. As informações inseridas em cada conjunto possuem uma ligação forte entre si. Desta maneira, o usuário conseguirá manipular mais facilmente as informações que lhe interessam, descartando aqueles grupos que não lhe são pertinentes. O agrupamento de características similares de dados é o que caracteriza um determinado padrão. A capacidade do ser humano de reconhecer padrões é no mínimo impressionante. A todo o momento o homem recebe dados do mundo à sua volta e consegue rapidamente estabelecer as fontes desses dados. Reconhecimento de voz, distinguir odores bons e ruins, são só algumas características que demonstram a facilidade que os seres humanos têm em reconhecer padrões. Este reconhecimento e a classificação desses padrões provêm de um processo de aprendizagem, assim como nas redes neurais. Todavia, o computador digital mais rápido não consegue tratar uma informação tão rápido quanto o cérebro humano (HAYKIN, 2001, p. 27- 92). As redes neurais artificiais vêm ganhando muito espaço na área de reconhecimento de padrões. Através da simulação do processo de aprendizado humano pelo computador, a caracterização de padrões está cada vez mais facilitada. Estas tentam agir de acordo com o funcionamento do cérebro humano, o que, por enquanto, não é possível. Com essa simulação, as redes neurais aprendem por treinamento (experiência) e seu poder computacional é proveniente de sua estrutura maciça paralelamente distribuída (HAYKIN, 2001, p. 28).
  12. 12. 11 O reconhecimento de padrões foi uma das primeiras aplicações de redes neurais artificiais que obteve bons resultados, principalmente pelo fato de simular o funcionamento de uma rede neural natural. Mesmo sendo usualmente utilizado o paradigma de aprendizado supervisionado, com rede de múltiplas camadas para tal aplicação, o aprendizado não-supervisionado e competitivo também tem evidenciado bastante êxito na classificação de padrões. Especialmente os mapas auto- organizáveis de Kohonen, por ser um algoritmo de implementação simplificada, apesar de matematicamente ser bastante difícil de ser analisado (HAYKIN, 2001). Considerando-se o trabalho futuro sugerido na monografia de Gordiano e Sousa (2005), a presente pesquisa predispõe-se a realizar um estudo do algoritmo de Kohonen e ele é implementado no presente trabalho. Esta análise tem intuito de verificar se há a melhoria da classificação de padrões em grupos de pessoas portadoras da síndrome de down, descrito com maiores detalhes no estudo de caso apresentado no capítulo 5. Para tanto, foi realizado um estudo sobre recuperação de informação e redes neurais artificiais, ressaltando as auto-organizáveis de Kohonen, seguindo a vertente de como gerenciar o acesso ao banco gerado pelo trabalho anteriormente citado, para preparar os dados de entrada do algoritmo. Os resultados obtidos servirão para os especialistas e pesquisadores da instituição Ser Down terem a oportunidade de trabalhar com grupos de indivíduos de forma mais direta, de acordo com as características destes. Poderão ser dados tratamento e educação adequados a cada grupo, de acordo com suas reais necessidades, pois a técnica escolhida nesta pesquisa identifica padrões implícitos na base de dados e gera análises significativas. A pesquisa encontra-se estruturada da seguinte maneira: no capítulo 2 é explicitado um conjunto de conceitos referentes ao reconhecimento de padrões, tais como classificação de características e suas abordagens. Neste projeto será utilizada abordagem neuronal, com o método de aprendizado não-supervisionado, visto no terceiro capítulo, onde também são apresentadas algumas definições de redes neurais artificiais, arquiteturas de redes e o aprendizado competitivo, que é de suma importância para o entendimento do algoritmo de Kohonen, que é descrito com
  13. 13. 12 maiores detalhes no capítulo 4. Como conseqüência do estudo realizado e apresentado nos capítulos anteriores, o capítulo 5 trata do Projeto de Desenvolvimento. Nele é descrito o objetivo do trabalho, a metodologia utilizada para a realização do projeto, as características da implementação, salientando-se as dificuldades encontradas para a realização do projeto, bem como uma breve explanação do trabalho tomado como base e os resultados obtidos. No capítulo final é dada a conclusão do projeto, onde são descritos os resultados alcançados e trabalhos futuros que podem vir a complementar a presente pesquisa.
  14. 14. 13 2 Reconhecimento de Padrão O padrão é uma entidade que pode ser incorporada a um específico contexto, que pode ser classificada (CAETANO, 2002). De uma forma mais simples, pode-se definir como um conjunto de características que determinam um objeto. A importância dessa elucidação é vista na inferência de Souza (1999): “O mundo pode ser visto como feito de padrões”. É citado, com intuito de exemplificação, o reconhecimento da face. Suas características, se masculina ou feminina, bonita ou feia, são qualificadas com padrões. A aprendizagem humana condiz com a capacidade do cérebro em “isolar, associar e reconhecer formas, sons ou conceitos”. A complexidade deste processo foi a grande incentivadora para o surgimento das redes neurais e da inteligência artificial (NEVES, 2006). “Reconhecimento de padrões (RP) é composto por um conjunto de técnicas e abordagens que são usadas de forma integrada na solução de diversos problemas práticos” (ADAMOWICZ, 2000). Um reconhecedor de padrões pode ser definido como um sistema que, ajudado por etapas de pré-processamentos, extração e seleção de características, consegue associar um rótulo de uma classe a certo padrão desconhecido. Como exemplo do citado acima, ter-se-ia a imagem de uma face apresentada ao reconhecedor como o objeto (o padrão desconhecido) e as características presentes nela seriam seus atributos ou rótulo (CAMPOS, 2001). O termo atributo refere-se à característica significativa do objeto que se quer classificar. Por exemplo, para se qualificar um animal em uma determinada espécie, pode-se medir seu peso, altura, verificar a quantidade de pernas, se possui asas, etc. Obviamente, nem todas as características que o animal possui servirão como valor significativo para o reconhecimento. O sexo do animal, nesse caso, nada ajudaria na definição de sua espécie. Ainda há de se ter cuidado porque, em muitos casos, “medidas adequadas para um problema não garantem certeza na decisão” (COSTA e MONTAGNOLI, 2001). No exemplo dado, quando foram mencionadas medidas de peso e altura como atributos significativos, se as considerar para
  15. 15. 14 reconhecer um gato ou um cachorro, há grandes chances de ocorrerem equívocos. Para solucionar esse problema poder-se adicionar mais atributos, mas isso acarreta em um custo computacional alto. Assim sendo, o mais apropriado é a escolha de poucos atributos e que estes permitam uma melhor diferenciação entre os objetos. Uma boa escolha está inerente ao bom conhecimento do problema (COSTA e MONTAGNOLI, 2001). Para Campos (2001), a classificação de objetos (padrões) em categorias é o objetivo do reconhecimento de padrões, que é dado por classificação supervisionada, onde “o padrão de entrada é identificado como um membro de uma classe pré-definida pelos padrões de treinamento” e por classificação não-supervisionada, na qual “o padrão é associado a uma classe que é aprendida com base na similaridade entre os padrões de treinamento”. 2.1 Classificação Supervisionada Como o próprio nome já diz, aqui há necessidade de uma supervisão para informar os padrões típicos das classes. Um dos métodos mais simples é a comparação do protótipo de cada classe, que foi aprendida no processo de treinamento, com o exemplo dado, identificando o objeto mais próximo de acordo com os atributos e adotar a classe desse objeto como resultado. Existem ainda métodos como o k-vizinhos, que é uma generalização do método citado acima, e a teoria bayesiana, que é baseado nos princípios da estatística e que “permite máxima chance de acerto nas classificações” (COSTA e MONTAGNOLI, 2001). 2.2 Classificação Não-Supervisionada Nesse tipo, não se conhecem as classes. Elas são aprendidas a partir do conjunto de treinamento, sempre tomando por base os atributos dessas novas classes que
  16. 16. 15 serão identificadas. Se o espaço de atributos escolhidos conseguir uma boa diferenciação entre as classes, ou seja, quando se observa facilmente a separação delas, bons resultados serão encontrados com esta classificação (CAMPOS, 2001). 2.3 Etapas para o Desenvolvimento do Reconhecedor São de essencial importância para o desenvolvimento de um projeto de RP a: 1. Extração de características dos objetos a classificar – que leva em conta a forma de aquisição dos dados e o seu pré-processamento (SÁ, 2000); 2. Seleção das características mais discriminativas – condiz com a forma que os dados serão representados; 3. Construção de um classificador (ou descritor) – estes que são os tomadores de decisões (CAMPOS, 2001). A importância para se ter um projeto de RP eficiente está na escolha das técnicas para efetuar esses três aspectos. Quanto mais bem definido e restrito for o padrão a ser reconhecido, mais compacta e simples será a representação deste. “Um problema de reconhecimento de padrões bem definido e restrito é aquele que, em seu espaço de características, possui distribuições de padrões com pequena variação intra-classe e grande variação inter-classes” (CAMPOS, 2001). Mas a realidade dos dados encontrados no dia-a-dia mostra-se diferente. Normalmente são milhares de características para uma determinada amostra e justamente por isso é muito difícil obter um bem definido. Assim, vê-se a importância dos algoritmos de extração e seleção de peculiaridades. Estes atuam reduzindo a dimensionalidade de características do padrão sem, contudo, perder o caráter discriminante que identifica o padrão (CAMPOS, 2001).
  17. 17. 16 2.3.1 Extração e Seleção de Características Um subespaço apropriado que continua a manter o poder discriminatório de diferenciação dos objetos é retirado do espaço de características, de forma que a dimensionalidade do primeiro seja menor que a do segundo. Os objetivos dessa fase são reduzir ruídos, retirar informações redundantes e reduzir a dimensão para que o reconhecimento se torne viável computacionalmente. A resolução do problema de extração de características segue duas vertentes: transformação linear ou não-linear do espaço (com redução da dimensão). Por exemplo, análise de componentes principais e análise discriminante; ou utilizando redes neurais que categoriza o espaço de padrões original e cada categoria do vetor de entrada possui um código que pode ser usado para representar a menor dimensão. Tem-se como exemplo a rede neural de Kohonen que foi utilizada nesse trabalho e elucidada mais adiante. “A seleção das características no espaço reduzido pode classificar melhor que no espaço dos padrões e possivelmente permitirá superfícies de decisão mais simples”. Uma seleção apropriada e eficiente facilita a implementação do classificador (SOUZA, 1999). A aplicação de um bom algoritmo de seleção implica na redução do conjunto de treinamento necessário para a obtenção de bons resultados com o classificador (CAMPOS, 2001). 2.3.2 Construção de um Classificador “Classificador é o elemento que possui como entrada um padrão e, como saída, o rótulo que identifica a que classe tal padrão pertence” (CAMPOS, 2001). As decisões tomadas pelo classificador se dão pelo aprendizado obtido através do conjunto de treinamento. Este deve possuir os exemplos dos padrões que o sistema receberá através do sistema de aquisição de dados. A classificação por similaridade é a base da maioria dos classificadores. Se um padrão apresentado 'X' for similar a outro que pertence a uma classe 'C', a tendência é classificar 'X' como pertencente à classe 'C'.
  18. 18. 17 Descreve-se o problema de RP, então, como uma transferência do espaço original de padrões, através da extração e seleção de características para o espaço de características e, finalmente, para o espaço de classificação obtido através do classificador (SOUZA, 1999), como demonstrado da figura 2.1. Figura 2.1 - O Problema de Reconhecimento de Padrões Fonte: SOUZA, 1999 Existem vários métodos para classificação dos padrões que, segundo Souza (1999), são utilizados de acordo com o tipo de objeto a ser descrito. Os principais seguem listados: Abordagem Estatística ou Teoria da Decisão As etapas principais de um sistema de reconhecimento estatístico de padrões estão definidas na figura 2.2. Verifica-se a presença de um sistema de aquisição de dados que é responsável, como o próprio nome já diz, pela captação dos dados. Pode ser um sensor, uma câmera ou algo que pegue a informação e alimente o sistema de RP. No caso do ser humano, o meio mais eficiente de aquisição de informações de um ambiente é o sentido da visão. Observa-se, também, um sistema de pré- processamento que tem a finalidade de eliminar ruídos ou distorções; um extrator de características, que reduz os dados do objeto a atributos, propriedades e características; um seletor de características, que elimina a redundância de características; e um classificador, que toma certa decisão a partir do padrão obtido, após as etapas anteriores. É importante ressaltar que essa estrutura não é particular da abordagem presente. Outros métodos de RP também podem possuir estruturas semelhantes. “Mas todos os sistemas de reconhecimento possuem um extrator e/ou um seletor de atributos” (SOUZA, 1999).
  19. 19. 18 Figura 2.2 – Etapas de um Sistema de Reconhecimento Estatístico de Padrões Fonte: SOUZA, 1999 Abordagem Sintática ou Estrutural Nesta abordagem subtende-se que os padrões são compostos por sub-padrões mais simples, e estes por outros mais simples e assim sucessivamente. Para explicar essa abordagem pode-se fazer uma analogia à sintaxe de uma linguagem. Assim como uma frase é formada de palavras e estas de letras, esta abordagem sugere que os padrões são formados “através de agrupamentos de partículas elementares, descrições de elementos primitivos ou blocos de informação” (STEINER, 1995). Os sub-padrões mais elementares são chamados de primitivas e a relação entre a classe em sua maior complexidade e essas primitivas caracterizam o próprio padrão. Esse tipo de abordagem é comumente usado em categorias que possuem estrutura definida que é o caso de imagens com textura e análise de formas de contornos (SOUZA, 1999). Abordagem Difusa Existem duas formas clássicas de RP difuso: através de listas de pertinências e os métodos difusos sintáticos. No primeiro, o sistema de RP armazena um conjunto de padrões que caracterizarão cada classe. Quando um padrão desconhecido é apresentado ao sistema, este é comparado um a um com os padrões do conjunto. Se esse combinar com algum dos padrões das classes armazenadas, ele será classificado como membro desta classe (similaridade). A segunda forma possui
  20. 20. 19 muita semelhança com a abordagem anterior. O padrão também é formado por sub- padrões. Utilizando-se da mesma analogia anterior, pode-se dizer que, “todos os padrões, cujas sentenças são geradas pela mesma gramática, pertencem a uma mesma classe”. Para classificar um padrão desconhecido como pertencente a certa classe, verifica-se se ele é gerado pela gramática correspondente a ela (KLIR, 1995 apud SOUZA, 1999). Abordagem Neuronal As redes neurais artificiais surgem como uma poderosa ferramenta no âmbito de reconhecimento de padrões. A capacidade inata das redes de tratar de forma mais delicada a distribuição dos dados de entrada, o que difere dos métodos estatísticos tradicionais, e sua “capacidade de formar fronteiras de decisão altamente não- lineares no espaço de características“, acarretou no grande aumento do seu uso (SOUZA, 1999). Devido à importância desta abordagem neste projeto ela foi particularmente estudada e detalhada nos capítulo 3, aprofundando-se nas redes neurais auto- organizáveis no capítulo 4.
  21. 21. 20 3 Redes Neurais Artificiais Redes Neurais Artificiais (RNA) são uma subárea da Inteligência Artificial que se baseia na estrutura do cérebro humano utilizando funções matemáticas não-lineares e que possui a capacidade de adquirir, armazenar e utilizar o conhecimento (ARAÚJO et. al., 2005; ICA, 2006). Cada RNA é constituída de uma interligação maciça de células computacionais simples, denominadas neurônios (HAYKIN, 2001, p. 28). Neurônios são unidades de processamento que estão conectados por canais de comunicação (sinapses) que normalmente estão associados a determinados pesos. Estas unidades apenas operam sobre as entradas recebidas por suas conexões, seus dados locais. “O comportamento ‘inteligente’ de uma Rede Neural Artificial vem das interações entre as unidades de processamento da rede” (BRAGA, 1998 apud SERRA, 1998). Dentre as principais características das RNAs, pode-se citar: Não-Linearidade: É distribuída por toda a rede neural e é uma propriedade muito importante, em especial, se o mecanismo gerador do sinal entrada de dados for inerentemente não-linear; Mapeamento de Entrada-Saida (capacidade de aprendizagem): Treinamento da rede a partir de um conjunto de exemplos da tarefa, supervisionado por um professor, onde se conhece previamente a saída relacionada à sua entrada e, de acordo com esta, os pesos sinápticos são alterados para melhor ajustar a resposta real à resposta desejada, minimizando a diferença; Adaptabilidade: Capacidade de aprender padrões e tendências apresentados nos dados e adaptar seus pesos de acordo com as mudanças no ambiente ao qual esteja inserido; Resposta a Evidências: No contexto de classificação de padrões, a rede informa
  22. 22. 21 o padrão a ser selecionado e também a confiança sobre a decisão tomada. Esta última ajuda a descartar padrões ambíguos (HAYKIN, 2001, p. 29-30); Generalização: Gera respostas satisfatórias mesmo que os dados fornecidos não façam parte do conjunto de treino, mas sim de sua vizinhança; “Procura Paralela e Endereçamento pelo Conteúdo: O cérebro não possui endereço de memória e não procura a informação seqüencialmente” (ICA, 2006). 3.1 Breve Histórico Os precursores da idéia de construir uma máquina baseada no cérebro humano foram McCulloch e Pitts onde apresentaram o modelo de neurônio artificial baseado na propriedade “tudo-ou-nada” (TATIBANA e KAETSU, 2006). De acordo com esta, “a saída de um neurônio assume o valor 1, se o campo local induzido daquele neurônio é não-negativo, e 0 caso contrário”(HAYKIN, 2001, p. 39). Logo em seguida, Hebb propôs uma lei de aprendizagem específica para as sinapses dos neurônios artificiais. “A maioria dos algoritmos de treinamento de rede neuronais é inspirada, direta ou indiretamente, nessa lei [...] A intensidade de uma ligação sináptica entre dois neurônios aumenta se ambos são excitados simultaneamente” (BITTENCOURT, 2006). Em 1956 no "Darthmouth College" nasceram os dois paradigmas da Inteligência Artificial, a simbólica e o conexionista. A Inteligência Artificial Simbólica tenta simular o comportamento inteligente humano desconsiderando os mecanismos responsáveis por tal. Já a Inteligência Artificial Conexionista acredita que construindo-se um sistema que simule a estrutura do cérebro, este sistema apresentará inteligência, ou seja, será capaz de aprender, assimilar, errar e aprender com seus erros (TATIBANA e KAETSU, 2006). 3.2 Neurônio O cérebro é comparado a um processador extremamente complexo cujo
  23. 23. 22 processamento é realizado de maneira paralela. Seus neurônios são os responsáveis pela realização desse processamento (ALECRIM, 2004) e devido a sua imensa quantidade, a velocidade de resposta é mais alta do que a de qualquer computador que exista no mundo. É estimada a existência de cerca de 10 bilhões de neurônios no córtex humano e cerca de 60 trilhões de sinapses (HAYKIN, 2001, p. 32). A tabela 3.1 traça um comparativo entre o cérebro humano e o computador: Parâmetro Cérebro Computador Material Orgânico Metal e plástico Velocidade Milisegundos Nanosegundos Tipo de Processamento Paralelo Seqüencial Armazenamento Adaptativo Estático Controle de Processos Distribuído Centralizado Número de elementos processados 10 e 11 à 10 e 14 10 e 5 à 10 e 6 Ligações entre elementos processados 10.000 <1 Tabela 3.1 - Quadro Comparativo entre o Cérebro e o Computador Fonte: TATIBANA e KAETSU, 2006 Cada neurônio constitui a unidade básica do cérebro. “Ele aceita e combina estímulos de vários outros neurônios (muitas entradas), porém possui somente uma saída” (MEDEIROS, 1999). Nos neurônios a comunicação é realizada através de impulsos, quando um impulso é recebido, o neurônio o processa, e ultrapassado um limite de ação, dispara um segundo impulso, que produz uma substância neurotransmissora, o qual flui do corpo celular para o axônio (que por sua vez pode ou não estar conectado a um dendrito de outra célula) (TATIBANA e KAETSU, 2006). Os dendritos são responsáveis pelo recebimento dos estímulos enviados por outros neurônios e os axônios são responsáveis por transmitir os estímulos para outras células (TATIBANA e KAETSU, 2006). As sinapses são as unidades estruturais que conectam os neurônios e transportam os impulsos entre eles. Em RNAs, elas são as responsáveis por inibir ou excitar um neurônio. (HAYKIN, 2001, p. 32-33).
  24. 24. 23 Abaixo seguem as ilustrações do neurônio biológico (figura 3.1) e artificial (figura 3.2), respectivamente: Figura 3.1 – Neurônio Biológico Fonte: ALCÂNTARA, 2004 apud ARAÚJO, 2005. Figura 3.2 - Neurônio McCullock-Pitts Fonte: SERRA, 1998 Supondo que tem-se: • P sinais de entrada X1, X2, ..., Xp • Pesos w1, w2, ..., wp (com valores reais) • Limitador t com sinais assumindo valores booleanos (0 ou 1). Neste modelo, o nível de atividade a é dado por: a = w1X1 + w2X2 + ... + wpXp A saída y é dada por:
  25. 25. 24 y = 1, se a >= t ou y = 0, se a < t. 3.3 Arquitetura de Rede De acordo com Haykin (2001, p. 46-49), arquitetura de rede se refere à maneira que os neurônios são organizados e conectados no projeto da rede neural. Há três classes básicas de arquitetura. São elas: Redes Single-Layer Feedforward ou Redes Alimentadas Diretamente com Camada Única: é o tipo de arquitetura mais simples de organização da rede. É composta de uma camada de entrada que se projeta à camada de saída, porém não há re-alimentação, como mostra a figura 3.3. A denominação camada única provém do fato de que somente a camada de saída possui computação. Figura 3.3 - Redes Alimentadas Diretamente com Camada Única Fonte: HAYKIN, 2001, p.47 Redes MultiLayer Feedforward ou Redes Alimentadas Diretamente com Múltiplas Camadas: difere da primeira por causa da presença de camadas de neurônios ocultas que estão situados entre a de saída e a de entrada, vide a
  26. 26. 25 figura 3.4, intervindo positivamente entre o sinal externo e a saída da rede. Figura 3.4 - Redes Alimentadas Diretamente com Múltiplas Camadas Fonte: HAYKIN, 2001, p. 48 Redes Recorrentes: já este tipo, tem como característica principal possuir pelo menos um loop de realimentação, como pode ser visto na figura 3.5. “A presença de laços de realimentação tem impacto profundo na capacidade de aprendizagem da rede e no seu desempenho” (HAYKIN, 2001, p. 49).
  27. 27. 26 Figura 3.5 - Redes Recorrentes Fonte: HAYKIN, 2001, p. 49 3.4 Aprendizado da Rede Para Haykin (2001, p. 75-76), a propriedade mais importante das RNAs é a aprendizagem. O autor define algoritmo de aprendizagem como “um conjunto de regras bem definidas para solução de um problema de aprendizagem”. Existem vários algoritmos de aprendizagem. E estes diferem entre si pela forma de ajuste dos pesos neurais. O aprendizado na rede neural é conseqüência do treinamento e, sucessivamente, do ajuste dos pesos sinápticos. Aprendizagem é um processo pelo qual os parâmetros livres em uma rede neural são adaptados através do processo de estimulação pelo ambiente no qual a rede esta inserida. O tipo de aprendizagem é determinado pela maneira pela qual a modificação dos parâmetros ocorre (HAYKIN, 2001, p. 75). Dentre os tipos de aprendizagem, o texto abrange o supervisionado, não- supervisionado e o competitivo. Sendo que, os dois últimos são de importância fundamental para o entendimento do mapa auto-organizável de Kohonen, que é objeto de estudo deste trabalho.
  28. 28. 27 3.4.1 Aprendizado Supervisionado No aprendizado supervisionado, há um agente externo que possui conhecimento do ambiente no qual está inserido a RNA e fornece a entrada e a saída desejada, de modo a treinar a rede, ajustando seus parâmetros para encontrar uma conexão entre os dados disponibilizados. Este ajuste é realizado através de iterações para que o tutor transfira seu conhecimento do ambiente para a rede de maneira ótima, conseqüentemente, esta poderá simular o professor (SEWO e SILVA, 2003). O professor insere os dados de entrada na rede. Após o processamento destes, o tutor, que detém conhecimento prévio do ambiente, compara os resultados obtidos com os desejados e alimenta a rede com essas informações ajustando-a para melhorar sua eficiência (HAYKIN, 2001, p. 88). Mesmo sendo o paradigma mais utilizado para reconhecer padrões, tem-se como exemplo válido de uma rede que utiliza um algoritmo de aprendizado não- supervisionado onde se obtém bons resultados, a rede de Kohonen, sendo que, esta também se caracteriza pelo aprendizado competitivo. O empecilho deste tipo de aprendizado de rede é que na ausência do supervisor a rede fica impedida de dar continuidade ao seu processo de aprendizagem com novos modelos, se limitando às situações já conhecidas pela rede (SEWO e SILVA, 2003). 3.4.2 Aprendizado Não-supervisionado Neste método de treinamento, não há um agente externo supervisionando o aprendizado da rede, assim como em muitos dos sistemas biológicos. A rede tem acesso, somente, aos padrões de entrada e estas devem conter dados redundantes para que seja possível identificar um padrão. Pois é baseado neste que a rede neural artificial vai conseguir garantir seu aprendizado, diferindo do algoritmo supervisionado, onde o vetor de treinamento possui pares de entrada e saída. Neste
  29. 29. 28 paradigma é utilizado um esquema para que a rede responda de maneira semelhante a padrões semelhantes (SEWO e SILVA, 2003). A rede é capaz de formar representações internas após se ajustar às regularidades estatísticas dos dados de entrada, adaptando seus pesos para que possa agrupar padrões semelhantes ou criar novos grupos caso não haja nenhum ao qual possa se adequar em relação às similaridades (HAYKIN, 2001, p. 90). Para um sistema de RP, o algoritmo de aprendizado supervisionado é mais utilizado como classificador e o não-supervisionado, juntamente com o aprendizado competitivo que será estudado mais adiante, são usados para extração das características e compressão de dados (SEWO e SILVA, 2003). 3.4.3 Aprendizado Competitivo Uma RNA básica com aprendizado competitivo caracteriza-se por conter duas camadas, sendo uma de entrada (i), que recebe os padrões, e uma competitiva (j), cujos neurônios competem entre si pela oportunidade de responder a um dado padrão de entrada, classificando-os (SEWO e SILVA, 2003). A aprendizagem competitiva é mais apropriada à descoberta de características relevantes, pois os neurônios de saída competem entre si para se ativarem em um determinado instante, sendo que, somente um poderá ser o neurônio vencedor. Assim, a partir deste neurônio que foi acionado, pode-se classificar um conjunto de padrões de entrada (HAYKIN, 2001, p. 83). Cada uma das conexões entre essas duas camadas da rede, na visão de Sewo e Silva (2003), tem um peso a ela associado (wij), com valores, inicialmente, aleatórios e pequenos, o que faz responder de uma maneira diferente a um determinado conjunto de padrões de entrada. O neurônio vencedor, no método “vencedor leva tudo”, recebe ‘1’ no seu valor de ativação e aos demais atribui-se o valor ‘0’. O aprendizado do neurônio consiste no deslocamento dos pesos sinápticos dos
  30. 30. 29 neurônios de entrada inativos para os ativos. Este tem a maior soma ponderada (Sj), isto é: Sj = ∑ wijxi i onde xi é o padrão de ativação. Esse processo é exibido na figura 3.6. Caso haja empate (Si = Sj), é sugerido, por convenção, selecionar a unidade à esquerda. O vencedor da competição modifica seu vetor de pesos de modo a adaptar-se e melhor responder ao padrão inserido, tornando-se mais semelhante. Figura 3.6 – Unidade de Processamento da Camada Competitiva Fonte: SEWO e SILVA, 2003 O ajustamento do peso ocorre de uma maneira com a qual a soma ponderada aumente levemente quando à rede é apresentado um padrão de entrada já conhecido, acontecendo o mesmo para os padrões similares já apresentados. Desta forma, as unidades de processamento da camada competitiva aprendem a detectar classes diferentes de padrões. A principal função de uma RNA com aprendizado competitivo é prover um classificador simples de padrões com treinamento não-supervisionado, sendo aconselhável um conjunto de treinamento com padrões suficientemente distintos (SEWO e SILVA, 2003).
  31. 31. 30 4 Mapas Auto-Organizáveis – Modelo de Kohonen Os mapas auto-organizáveis (SOM - Self Organizing Map) são tipos especiais de redes neurais. São baseados na aprendizagem competitiva, onde os neurônios competem entre si e o neurônio vencedor, sendo ele único, é ativado em um instante de tempo. Os neurônios de um mapa auto-organizável são colocados normalmente em grades bi-dimensionais. Dimensionalidades mais altas também são possíveis, mas não são muito utilizadas. Um padrão de sinal apresentado à rede é convertido em um mapa discreto, uni ou bi-dimensional (HAYKIN, 2001, p. 483). Na concepção de Haykin (2001) e Vargas (2004), foi pensando na criação de modelos computacionais baseados nas características do cérebro humano que surgiram os mapas auto-organizáveis e, de todos os modelos estudados, o de Kohonen foi o que mais se destacou. “Kohonen enfatiza a importância de se levar em consideração, nos modelos de redes neuronais, a disposição física dos neurônios e as relações entre vizinhanças dos neurônios no processamento da informação do sistema nervoso” (VASCONCELOS, 2000). Os neurônios se tornam seletivamente sintonizados a vários padrões de entrada (estímulos) ou classes de padrões de entrada no decorrer de um processo de aprendizagem. As localizações dos neurônios assim sintonizados se tornam ordenadas entre si de forma que um sistema de coordenadas significativo para diferentes características de entrada é criado sobre a grade (KOHONEN, 1990 apud HAYKIN, 2001, p. 483). De acordo com Vasconcelos (2000), os estudos sobre mapas auto-organizáveis modelo de Kohonen ou, simplesmente, mapa de Kohonen, foi baseado no mapeamento existente entre os estímulos recebidos pelo córtex cerebral e a região correspondente neste ativada. “Kohonen concluiu que, através de pesquisas da neurociência, conceitos similares parecem estar representados em áreas próximas no cérebro humano e que essa localização espacial deveria ser uma característica do aprendizado” (WANGENHEIM, 2005). Em sua tese, Vasconcelos (2000) considera uma grande vantagem de algumas RNAs, tais como SOM, a capacidade de projetar dados multidimensionais em baixas
  32. 32. 31 dimensões, o que facilita a visualização, como visto na figura 4.1, onde cada nó representa um neurônio. Segundo Haykin (2001, p. 486), a redução de dimensionalidade do espaço de entrada, juntamente com a ordenação topológica do mapa de saída é o principal objetivo dos mapas de auto-organizáveis. Figura 4.1 – Mapeamento de 3D para 2D. Fonte: LOBO, 2005 4.1 Aprendizagem de SOM Na concepção de Haykin (2001, p. 75), aprendizagem é o fator fundamental numa rede neural, pois dela depende sua performance. Nesta fase, os parâmetros da rede são ajustados através de estimulações recebidas pelo ambiente onde a mesma está inserida e o tipo de variação desses parâmetros determina qual o seu modelo de aprendizagem. Conforme Tafner (1996), o mapa de Kohonen é uma RNA competitiva, não- supervisionada e traz como saída uma representação discreta dos padrões de entrada que estão agrupados por similaridade. Essa rede é considerada competitiva, pois, como visto no capítulo anterior, os neurônios pertencentes à camada de saída competem entre si para que, em um determinado instante, um único neurônio represente de maneira ótima a informação recebida pela camada de entrada da rede, sendo, juntamente com seus vizinhos, reajustados para melhor responder ao estímulo recebido. A partir dessa característica, Haykin (2001) concluiu que este tipo de aprendizagem melhor se adapta à descoberta de características relevantes para
  33. 33. 32 a classificação de padrões. O mapa de Kohonen é considerado auto-organizável porque, segundo Veloso e Silva (2005), este não necessita de supervisão externa. Ao contrário da rede supervisionada, este não precisa de um “professor” para indicar as saídas desejadas para realizar correção dos erros, já que a rede desconhece seu ambiente. As redes SOM, na concepção de Vargas (2004), possuem a finalidade de encontrar aglomerados, mas não se sabe quantos destes existem nos dados passados e por isso, estas devem ser treinadas como não-supervisionada. Seguindo o modelo original de Kohonen, Freitas et. al. (2003) afirmam que o mapa contém a topologia de um plano por representar o vetor de entrada, normalmente, em uma grade bi-dimensional, na qual estão dispostos os neurônios de saída estimulados pelos neurônios de entrada. Como pode ser visto na figura 4.2, nenhuma forma topológica é imposta nessa rede de duas dimensões, a vizinhança do neurônio pode estar arranjada em qualquer formato. Figura 4.2 – Exemplos de Topologia da Vizinhança. Em (a) linear, (b) retangular e (c) hexagonal. Fonte: VASCONCELOS, 2000
  34. 34. 33 4.2 Mecanismos da Rede Neural Conforme Freitas et. al. (2003), os mapas auto-organizativos diferem dos modelos habituais de RNAs, principalmente, pelo fato de possuírem apenas duas camadas, a de entrada e a de saída. “A arquitetura da rede SOM é composta por uma malha de neurônios interconectados” (VELOSO e SILVA, 2005). Freitas et. al. (2003) salienta que o funcionamento da rede está focado em um processo onde a cada iteração da rede um único neurônio é ativado, havendo, portanto, somente uma saída, o neurônio vencedor-leva-tudo. Para se determinar o neurônio vencedor, o vetor de entrada, juntamente com o vetor de pesos, que conecta cada padrão de entrada aos neurônios da camada de saída, excitam cada um destes de forma distinta. O autor ainda afirma que os valores iniciais do vetor de pesos são escolhidos aleatoriamente para que não exista nenhuma organização prévia, de forma que não haja pesos iguais. Existirão N vetores de peso, sendo N o número total de neurônios de saída. O neurônio vencedor será ativado, pois responde melhor àquela entrada, inibindo a ativação dos demais e representando um padrão de entrada, classificado por semelhança de características, numa região do mapa. Haykin (2001) conceitua que cada neurônio do mapa está conectado a todos nós fontes da camada de entrada. A auto-organização se dá através do aprendizado e este através de várias apresentações de padrões de entradas ao mapa. Cada tipo de padrão de entrada diferente reflete no mapa em localizações diferentes. A melhor auto-organização será conseguida depois de todos os neurônios da grade forem expostos a um número suficiente de padrões. 4.2.1 Neurônio Vencedor Como visto no capítulo anterior, o neurônio é uma unidade de processamento de informação que é de fundamental importância para a operação de uma rede neural.
  35. 35. 34 Ele é composto de um conjunto de sinapses, um somador para contabilizar os sinais de entrada e uma função de ativação (Haykin, 2001). Segundo Tafner (1996), a quantidade de neurônios da camada de saída representa todas as possíveis saídas do mapa, independente da quantidade de neurônios da camada de entrada, sendo que, cada saída está conectada à todos os neurônios de entrada. E como demonstra a figura 4.3, cada padrão de entrada n-dimensional ativa o neurônio, que pode estar disposto num mapa de saída bi-dimensional, caracterizando a redução de dimensionalidade. Figura 4.3 – Mapa de Kohonen com Neurônios de Saída Bi-dimensional. Padrão de Entrada Conectado à sua Saída. Fonte: LOBO, 2005 Tafner (1996) afirma que o neurônio com maior estímulo será ativado, inibindo os demais. Deve-se ativar a posição do neurônio da camada de saída com a menor distância euclidiana, comparando-se às demais posições. Sabendo-se, a partir dos estudos realizados por Tafner (1996), que cada entrada xj ativa de forma única uma determinada posição i da matriz, pode-se efetivar essa afirmação com a seguinte função: i(xj)= argk min || xj − wk || Esta determina a posição do neurônio vencedor, onde || . || representa a medida de distância, no caso, a norma euclidiana, 1 ≤ k ≤ N, sendo N a quantidade de neurônios existentes na camada de saída. A partir do explicitado acima e tendo-se o conhecimento que a função y(i,xj ) informa o estado de ativação da posição i da matriz do mapa em relação ao estímulo do vetor de entrada xj, pode-se inferir que:
  36. 36. 35 y(xj ,i) = 1, se i(xj)= argk min || xj − wk || e y(xj,i) = 0, caso contrário. Abaixo se encontra a especificação da fórmula da Distância Euclidiana. Onde: t = instante t no tempo; i = índice do neurônio; j = índice das entradas e dos pesos; N = número de entradas (quantidade de x e, respectivamente, quantidade de w por neurônio); xj (t) = entrada j no tempo t; w i, j(t) = peso j do neurônio i no tempo t; dj (t) = distância do neurônio no tempo t. Calculada a menor distância a menor distância euclidiana entre o padrão de entrada e cada neurônio de saída, segue-se a fase de ajustes de pesos do neurônio vencedor. 4.2.2 Ajuste de Pesos Segundo Freitas et. al. (2003), a principal etapa para que a rede seja organizada é o ajuste dos pesos, pois ele é imprescindível para definir o comportamento da mesma. Isto ocorre logo após ter sido escolhido o neurônio vencedor, de forma que estes valores se aproximem ainda mais do padrão de entrada que os ativou, em um
  37. 37. 36 processo de aprendizagem não-supervisionada, na fase de treinamento. O conhecimento da rede está nos pesos das conexões sinápticas (TAFNER, 1996). “A rede aprende através de um processo de ajustes aplicados a seus pesos sinápticos. A cada iteração desse processo a rede torna-se mais instruída” (HAYKIN, 2001). Para que a distância euclidiana entre o vetor de entrada e o vetor de pesos do mapa diminua, Freitas et. al. (2003) declara que é necessário que os pesos sejam reajustados a cada iteração na posição ativa do mapa, assim a reposta àquele padrão de entrada ficará mais precisa, efetuando uma aprendizagem não- supervisionada. Deste modo, os reajustes ocorreriam da maneira abaixo: wc(t + 1) = wc(t) + η(t) [x(t) − wc(t)] e wi (t + 1) = wi (t), se i c. Sendo c = i(xj ) a posição no mapa do neurônio vencedor no instante t para o padrão de entrada x(t) = xj e η(t) o fator de aprendizado da rede, preferencialmente compreendido no intervalo aberto entre 0 e 1. O fator de aprendizagem decresce de modo constante com o objetivo de, após um grande número de repetições, alcançar uma menor distância euclidiana entre o vetor de entrada e seus pesos correspondentes, ocasionando numa melhor resposta para aquele padrão de entradas (FREITAS et. al., 2003). Haykin (2001, p. 493) sugere que o fator de aprendizagem inicie com valores mais baixos, próximos a 0,1 e que decresçam de acordo como tempo ficando, porém, maior que 0,01.
  38. 38. 37 4.2.3 Determinação da Vizinhança O neurônio que está ativo em determinado instante, tende a excitar mais fortemente os neurônios mais próximos a ele, ou seja, os neurônios que possuem uma distância lateral menor. “O neurônio vencedor localiza o centro de uma vizinhança topológica de neurônios cooperativos” (Haykin, 2001, p. 489). Para que ocorra similaridade, também, entre os agrupamentos vizinhos, Kohonen (1990 apud FREITAS et. al., 2003) declara que os ajustes de pesos devem ser realizados, não somente no neurônio vencedor, mas também, sobre toda sua vizinhança. Neurônios fora do subconjunto de vizinhança não são alterados, assim, o mapa se organizará geograficamente. Se hj,i se refere à vizinhança centrada no neurônio vencedor i, sendo cada neurônio pertencente à vizinhança representado por j, e di,j represente a distância lateral entre i e j, então é necessário que sejam satisfeitas duas exigências: 1) “A vizinhança topológica hj,i é simétrica em relação ao ponto máximo definido por di,j = 0”, ou seja, para o centro da vizinhança, onde está localizado o neurônio vencedor i, a distância di,j é zero; 2) “A amplitude da vizinhança topológica hj,i decresce monotonamente com o aumento da distância lateral di,j, decaindo a zero para di,j ∞; esta é uma condição necessária a convergência”. Ou seja, quão mais longe estiver o neurônio vizinho do vencedor, menor excitado ele será por este neurônio ativado. A função gaussiana satisfaz a essas exigências e independe da localização do neurônio vencedor (Haykin, 2001, p. 489). Vargas (2004) afirma que, nas primeiras iterações, a vizinhança dos neurônios a serem atualizados corresponde a todo o mapa ou quase todo. Durante o treinamento essa vizinhança decresce gradativamente de acordo com o aperfeiçoamento do
  39. 39. 38 aprendizado e uma das técnicas recomendadas para antecipar essa redução é o uso de uma função gaussiana, que é vista na equação seguinte: Onde varia de acordo com o tempo t, de acordo com a equação: O termo se refere ao valor de na inicialização do treinamento da rede, com a constante de tempo T1 caracterizada pela fórmula: A técnica de começar-se com uma vizinhança grande, que é reduzida modificando-se a variância da curva de Gauss tem esse efeito: primeiramente a rede aprende de maneira geral a organizar padrões similares em grupos localizados em regiões especificas da rede, depois a rede passa a refinar este mapeamento de maneira cada vez mais localizada (WANGEHEIM, 2005). A distância lateral di,j é calculada por |j-i|, se o espaço de saída for unidimensional. No caso de uma grade bidimensional seu valor é calculado por: d2 ij = || rj - ri ||2 “Onde o vetor discreto rj define a posição do neurônio excitado j e ri define a posição discreta do neurônio vencedor i” (HAYKIN, 2001, p. 492). A partir dessas equações Haykin (2001, p 492) chega a fórmula de ajuste:
  40. 40. 39 Onde η(t) é o fator de aprendizado definido pela equação, onde T2 é o número de iterações necessárias para o treinamento: 4.3 Agrupamento Vargas (2004) concluiu que uma rede SOM, por si mesma cria os agrupamentos correspondentes a cada grupo de padrões classificados por suas similaridades, dessa maneira, espera-se que estejam fisicamente próximos. O centro do agrupamento é o padrão que melhor se associa àquela classe. O agrupamento se dá, de acordo com Freitas et. al. (2003), quando o conjunto de vetores de entrada semelhantes do mapa se associa à uma posição i da matriz, onde esta posição representa um padrão, sendo definido pela comparação entre um vetor de pesos wi= [wi1, wi2 , ..., wim ]T e vetor de entrada xi= [xi1, xi2 , ..., xim ]T. Cada posição distinta i, representado na matriz, será ativada por um vetor xj, sendo que, este somente poderá ativar uma única posição i, como visto anteriormente, a de menor distância euclidiana entre o padrão de entrada e o vetor de pesos.
  41. 41. 40 5 Análise Descritiva do Projeto Objetivando a classificação de padrões em grupos de pessoas, o algoritmo de Kohonen foi aplicado no banco de dados da organização Ser Down, detalhado na próxima seção. A resposta dessa aplicação é o agrupamento de pessoas com características semelhantes, para que o especialista ou pesquisador possa trabalhar ou estudar de acordo com a similaridade dos participantes de cada grupo e também entre os grupos portadores da síndrome de down (SD). 5.1 Estudo de Caso Ser Down A Ser Down (Associação Baiana de Síndrome de Down) é uma organização sem fins lucrativos, fundada por pais de pessoas portadoras da SD, que acreditam que o desenvolvimento desses indivíduos depende exclusivamente do tratamento e educação recebidos, que os tornam possuidores de um grande potencial. Dessen e Silva (2002), amparadas por estudos de vários pesquisadores, afirma que a SD é uma condição genética que causa um desequilíbrio na constituição cromossômica. É caracterizada pela existência de um cromossomo extra no par 21 nas células dos indivíduos, denominada de trissonomia 21. As pessoas portadoras dessa síndrome apresentam fenótipos parecidos, principalmente, pelo formato facial. Geralmente, as crianças com SD possuem um atraso no seu desenvolvimento e a fala é bastante comprometida. Há crença de que elas são pessoas dependentes e que não conseguem dirigir adequadamente as situações. Dados de diversos estudiosos evidenciam que estas, quando adultas, podem tornar-se independentes se forem dispostos à educação e tratamentos adequados, embora demonstrem um desenvolvimento mais lento. Foi-se constatado que os indivíduos com SD têm temperamento fácil, são amáveis, afetuosos e atenciosos. Eles têm certa limitação em suas habilidades, mas não por isso as transformações ocorridas em seus ambientes não são absorvidas. Para
  42. 42. 41 melhor compreender as influências sociais e os aspectos de desenvolvimento de uma criança com este desequilíbrio genético, deve-se, também, abranger o tipo de relação existente entre o infante e o ambiente ao qual esteja exposto durante toda sua vida (DESSEN e SILVA, 2002). O principal objetivo da Ser Down é integrar o indivíduo com a trissonomia 21 na sociedade, melhorando, assim, sua qualidade de vida e proporcionando maiores oportunidades de desenvolvimento da pessoa que possui essa deficiência. Para tal, a instituição promove meios que facilitem o seu tratamento, educação básica e ingresso no mercado de trabalho. A organização é centro de referência sobre o assunto no estado da Bahia. A cada bebê nascido com SD, os pais são encaminhados à instituição, é realizado o cadastro da criança e eles recebem subsídios sobre a educação adequada a dar ao seu filho para que ele tenha uma vida normal, como qualquer outro cidadão. Sendo assim, a Ser Down tem bastante conhecimento implícito em sua base de dados. Mesmo já contando com um sistema computadorizado para gerenciar essas informações, há necessidade de uma ferramenta para aprimorar a identificação e visualização de padrões existentes. Desta maneira, o trabalho da instituição será realizado com maior eficiência e eficácia, caso se encontre padrões de comportamento desconhecidos pelos profissionais responsáveis. 5.2 Metodologia Acatando o trabalho futuro sugerido pelo projeto de Gordiano e Sousa (2005) que pesquisou no escopo do algoritmo de k-means, foi feito um estudo, primeiramente, sobre reconhecimento de padrões através de redes neurais não-supervisionadas, para compreender o funcionamento das RNAs SOM de Kohonen, delineada no capítulo 4. Após o entendimento do funcionamento do mapa de Kohonen, veio a fase de
  43. 43. 42 obtenção do banco de dados gerado pelo projeto supracitado. O estudo agora seguiu a vertente de como gerenciar o acesso ao mesmo para disponibilizar as informações de entrada ao algoritmo de Kohonen. Detalhes de sua implementação são vistos no item 5.4 deste trabalho. Após a implementação do algoritmo de Kohonen e do treinamento da rede, segue a fase de testes. 5.3 Tecnologias Utilizadas Para o desenvolvimento dessa aplicação usou-se o Hibernate 3.1 juntamente com o XDoclet 1.2, que são frameworks específicos para prover e facilitar a comunicação entre bases de dados que utilizam o modelo objeto-relacional e o paradigma de Orientação à Objetos (OO) que está, incontestavelmente, muito difundido. A linguagem de programação Java foi utilizada para prover a característica de OO e nela foi desenvolvido o algoritmo de Kohonen. A programação OO com seus conceitos facilita muito essa implementação e materiais de estudo sobre esse paradigma são amplamente encontrados nos meios eletrônicos. Para modelagem do diagrama de classes foi utilizada a ferramenta JUDE (GUJ, 2006). O Sistema Gerenciador de Banco de Dados (SGBD) utilizado foi o MySQL 5.0, que gerencia o repositório de dados que alimentaram o mapa de Kohonen. O ambiente integrado de desenvolvimento (IDE - Integrated Development Environment) utilizado para a programação foi o Eclipse 3.1, que é um dos que possuem maior disseminação para desenvolvimento em plataforma Java e também é considerada uma das ferramentas chaves em se tratando das iniciativas de desenvolvimento Open Source (código livre) (GUJ, 2006).
  44. 44. 43 5.4 Modelagem da Solução Nesse tópico estão descritas as etapas seguidas na implementação do algoritmo de Kohonen, detalhado no capítulo 4, para aplicação na base de dados da Instituição Ser Down. 5.4.1 Mapa de Entrada A figura 5.1 demonstra os relacionamentos relevantes da base de dados utilizada. A tabela Filho é a que possui as características principais da pessoa portadora da SD. Ela constitui o centro do relacionamento com as outras tabelas. Ou seja, cada filho possui uma ligação com cada uma das tabelas. A fim de simplificação trataremos estas pessoas apenas como filhos. Figura 5.1 - Modelagem do Banco de Dados da SerDown A tabela Aspecto_Clinico indica o(s) aspecto(s) clínico(s) em que cada filho se encaixa. A tabela Estimulo refere-se às atividades esportivas que o filho pratica, as quais servem de estímulo para o desenvolvimento dele. A tabela Terapia, como o
  45. 45. 44 próprio nome já diz, especifica a(s) terapia(s) aplicada(s) ao filho. As tabelas Escolaridade e Ocupação tratam, respectivamente, da situação da criança na escola e o cargo que ocupa no trabalho. Cada uma dessas tabelas possui as características relevantes para a formação das entradas necessárias ao treinamento da rede neural. Uma entrada possuirá então, cinco dimensões. Cada uma referenciando uma das tabelas explicitadas acima. 5.4.2 Mapa de Saída O mapa discreto de saída escolhido foi um mapa bidimensional 4x4 resultando em 16 neurônios de saída. Inicialmente eles são colocados no mapa de forma aleatória de acordo com as posições disponíveis neste. Cada neurônio de saída possui um vetor de pesos de dimensão igual a do vetor de entradas. Esses pesos são escolhidos de forma aleatória como é sugerido por Haykin (2001, p. 494), com valores baixos em relação aos dados de entrada e, principalmente, que não sejam atribuídos valores iguais para neurônios diferentes. Com posse das entradas a partir do repositório de dados e do mapa discreto de saída, foi iniciada a fase de treinamento. 5.4.3 Treinamento da rede Essa fase foi dividida em duas outras diferentes: a fase de auto-organização ou ordenação e a fase de convergência. Na fase de ordenação o mapa de saída é organizado de acordo com a similaridade entre os neurônios e na fase de convergência as entradas são repetidas vezes apresentadas ao mapa para haver uma melhor resposta do mapa de saída para a determinada entrada.
  46. 46. 45 5.4.3.1 Fase de Ordenação Os passos para a fase de ordenação do mapa de Kohonen desenvolvido neste trabalho seguem as sugestões de Haykin (2001, p. 494). 1º passo: Uma amostra aleatória do espaço de entradas é apresentada à rede; 2° passo: O neurônio vencedor é encontrado utilizando-se da mínima distância euclidiana, que é descrita no capitulo 4, entre valores do vetor de entradas e os vetor de pesos dos neurônios de saída.; 3º passo: Ajusta-se o vetor de pesos do neurônio vencedor e de seus vizinhos topológicos; 4º passo: Repete-se do passo 1 ao 3 até que uma determinada condição seja aceita. Neste caso a condição aceita foi o numero de iterações, que é especificado adiante. Os valores parâmetros escolhidos para o treinamento foram: - Taxa de aprendizagem inicial: (η (0)) = 0,1; - Número de iterações – T2 = 1000; - O Fator Inicial para o ajuste da vizinhança foi o tamanho do raio da grade de saída que foi estipulada, no caso, 4. 5.4.3.2 Fase de Convergência Nesta fase, o mesmo conjunto de entradas foi utilizado para conseguir uma sintonia fina entre entrada e saída. A diferença desta fase para a anterior está relacionada ao valor do parâmetro inicial da taxa de aprendizagem, ao número de iterações sugerido por Haykin (2001, p. 493) para satisfazer a convergência do mapa de características e o tamanho do raio de vizinhança inicial. - Taxa de aprendizagem inicial: (η (0)) = 0,01;
  47. 47. 46 - Número de iterações – T2 = 500*16; - O fator inicial para o ajuste da vizinhança agora inclui no máximo dois vizinhos e ao final das iterações tende a 1 ou nenhum. Terminadas estas duas fases, conclui-se, consequentemente, a fase de treinamento. Depois deste, observou-se a ordenação e a convergência dos neurônios do mapa de saída. A primeira é verificada porque neurônios com características semelhantes encontram-se em locais próximos na grade discreta de saída. A projeção de um espaço de entradas de dimensão 5 num outro de saída bidimensional assinala a redução de dimensionalidade, característica importante do mapa auto-organizativo de Kohonen. O mapa de saída sofre uma adaptação por causa do algoritmo. A representação desse espaço de entradas de maior dimensionalidade para uma menor acaba por categorizar a convergência do mapa (HAYKIN, 2001, p. 504). 5.4.4 Diagrama de Classes As classes criadas para essa aplicação podem ser visualizadas na figura 5.2. O diagrama de classes demonstra a estrutura principal do sistema, ilustrando os atributos de uma classe, os tipos de objetos do sistema e os relacionamentos entre estes objetos. A classe Kohonen representa a rede neural de Kohonen desenvolvida neste projeto. Ela relaciona-se com a classe HibernateUtility, que realiza o gerenciamento do banco de dados, para conseguir a lista de Filhos, criando assim a entrada do mapa, que é representada pela classe NeuronioEntrada. Esta está ligada a superclasse Neuronio, assim como a classe NeuronioSaida.
  48. 48. 47 Figura 5.2 – Diagrama de Classes Após obter-se a lista dos filhos, a classe principal Kohonen gera as entradas e atribui elas a instâncias da classe NeuronioEntrada. Logo depois, cria a grade bidimensional de saída, onde cada nó desta é referenciado por uma instância da classe NeuronioSaida. O apêndice B mostra os trechos mais relevantes do código. 5.5 Resultados Obtidos com o Treinamento Após a fase de treinamento da rede, apresentou-se as entradas do banco da Ser Down ao mapa e este agrupou-as de acordo com a similaridade de características. Como foi dito anteriormente, cada entrada representa uma pessoa com síndrome de down e as características de cada pessoa dessas, relevantes à análise do algoritmo, foram as atividades esportivas que o indivíduo pratica normalmente e que servem como estímulo, a escolaridade, o trabalho, a terapia que é aplicada à pessoa
  49. 49. 48 juntamente com o aspecto clínico que ela está enquadrada. Os resultados, pois, foram considerados satisfatórios para o espaço amostral utilizado. O relatório gerado pode ser visto no apêndice A.
  50. 50. 49 6 Considerações Finais Diante de tantas informações inclusas na base de dados, apresenta-se a necessidade de uma ferramenta computacional que extraia informações relevantes para cada caso estudado. Este trabalho se dispôs a mostrar um outro método para a aquisição do reconhecimento de padrões apresentados na pesquisa de Gordiano e Sousa (2005). Nesta foi utilizada o algoritmo k-means para agrupamento de pessoas com síndrome de down com comportamentos similares. Ao final desse trabalho esperavam-se conseguir a respostas das seguintes questões: - O que são RNAs auto-organizáveis? - O que é o mapa de Kohonen? - Como se utiliza RNAs para o reconhecimento de padrões e se os resultados são satisfatórios? Acredita-se que as duas primeiras indagações foram respondidas pelo exposto no capítulo 4, onde a rede auto-organizável de Kohonen foi descrita e detalhada. Todo este projeto circunda na segunda indagação. O mapa de Kohonen foi utilizado para reconhecer padrões dentro de um grupo de pessoas. A obtenção de agrupamentos destas por similaridade de características é o principal objetivo do presente trabalho. Quanto aos resultados, um número significativo de artigos científicos que retratam essa utilização alcançaram respostas bastante satisfatórias. O resultado deste trabalho alia-se aos demais. Notou-se que o algoritmo apresentado nesta pesquisa, gera mapas representativos agrupados topologicamente por similaridade, aprimorando a identificação dos padrões. Infelizmente não se conseguiu o banco de dados mais atual da instituição para a geração dos agrupamentos de informações similares, para aprimorar a identificação
  51. 51. 50 dos padrões, gerando, como resultado, um mapa de saída discreto representativo dos grupos encontrados. Visando a complementação e a melhoria deste trabalho, sugere-se os seguintes trabalhos futuros: 1) Fazer o ajuste de pesos dos neurônios de saída na etapa de treinamento utilizando um método de organização não-linear como os algoritmos genéticos; 2) Fazer o ajuste fino da rede neural com quantização vetorial; 3) Realizar uma análise comparativa entre o algortitmo de k-means e o algoritmo de Kohonen no agrupamento de padrões.
  52. 52. 51 7 Referências ADAMOWICZ, E. C. Reconhecimento de Padrões na Análise Econômico- Financeira de Empresas. Dissertação de Mestrado em Ciências. Universidade Federal do Paraná, 2000. ALECRIM, E. Redes Neurais Artificiais. 2004. Disponível em: <http://www.infowester.com/redesneurais.php>. Acessado em: 23/04/2006. ARAÚJO, A.; SANTANA, D.; BRANDÃO, R. Sistema de Detecção de Intrusos Baseado em redes Neurais Artificiais de Kohonen. Monografia de Final de Curso, Faculdade Ruy Barbosa, 2005. BITTENCOURT, G. Inteligência Computacional. Universidade Federal de Santa Catarina, Departamento de Automação e Sistemas. Disponível em: <http://www.das.ufsc.br/gia/softcomp/>. Acessado em: 25/04/2006. CAETANO, T. Introdução ao Reconhecimento de Padrões. Notas de Aula. Instituto de Informática, UFRGS, 2002. Disponível em: <http://www.inf.ufrgs.br/~silvia/ipg/slidesRecPadroes.PDF>. Acessado em: 30/04/2006. CAMPOS, T. E. Técnicas de Seleção de Características com Aplicações em Reconhecimentos de Faces. Dissertação de Mestrado. Universidade de São Paulo, 2001. COSTA, L. F.; MONTAGNOLI, C. Máquinas tomam decisões: Reconhecimento de padrões e mineração de dados. Revista online Ciência Hoje, 2001. DESSEN, M. A.; SILVA, N. L. P. Síndrome de Down: etiologia, caracterização e impacto na família. Artigo publicado na revista Interação em Psicologia, 2002. FREITAS, A.E. S.; CERQUEIRA, J. J. F.; FERREIRA, N. R.. Uso de Algoritmos Genéticos no Desenvolvimento de Redes Kohonen. IV Encontro Nacional de Inteligência Artificial – 2003. GORDIANO, F. G.; SOUSA, B. L. Gestão do Conhecimento na Web: Uma Abordagem Baseada em Mineração de Dados. Monografia de Final de Curso. Universidade Católica do Salvador, 2005. GUJ – Grupo de Usuários Java. Disponível em: <http://www.guj.com.br/>. Acessado em: 16/06/2006. HAYKIN, S. Redes Neurais: Princípios e Prática. 2. ed. Porto Alegre: Bookman, 2001.
  53. 53. 52 ICA - Núcleo de Pesquisa em Inteligência Computacional Aplicada. Notas de Aula. PUC-Rio. Disponível em: <http://www.ica.ele.puc-rio.br/cursos/crs_lst_notas.asp>. Acessado em: 16/04/2006. LOBO, V. Sistemas de Apoio à Decisão – Redes de Kohonen (SOM). Disponível em: <http://www.isegi.unl.pt/docentes/vlobo/isegi_SAD/SAD_3_2005_2.pdf>. Acessado em: 10 de junho de 2005. MEDEIROS, J. S. Bancos de Dados Geográficos e Redes Neurais Artificiais: Tecnologias de Apoio à Gestão de Território. Tese de Doutorado. USP, 1999. NEVES, C. Notas de Aula. Faculdade de Ciências e Tecnologia, Portugal. Disponível em: <http://www.dq.fct.unl.pt/QOF/chem9.html>. Acessado em: 30/04/2006. SÁ, J. P. M. Notas de Aula. Universidade do Porto, 2000. Disponível em: <http://paginas.fe.up.pt/~jmsa/recpad/>. Acessado em: 09/04/2006. SERRA, T. G. Redes Neurais Artificiais. Trabalho da Disciplina Arquiteturas Especiais. Universidade Federal do Rio Grande do Sul, Pós-Graduação em Ciência da Computação, 1998. Disponível em: <http://www.inf.ufrgs.br/procpar/disc/cmp135/trabs/tati/redes_neurais.html>. Acessado em: 15/04/2006. SEWO, J.; SILVA, P. R. R. Rede Neural Treinada com Algoritmo Não- Supervisionado no Contexto de Reconhecimento de Padrões. Monografia Final de Cursos. Universidade Federal de Mato Grosso do Sul, 2003. SOUZA, J. A. Reconhecimento de Padrões Usando Indexação Recursiva. Tese de Doutorado. Universidade Federal de Santa Catarina, 1999. STEINER, M. T. A. Uma Metodologia para o Reconhecimento de Padrões Multivariados com Resposta Dicotômica. Tese de Doutorado em Engenharia. Universidade Federal de Santa Catarina, 1995. TAFNER, M. A. Reconhecimento de Palavras Faladas Isoladas Usando Redes Neurais Artificiais. Dissertação de Mestrado em Engenharia. Programa de Pós- Graduação em Engenharia de Produção, Universidade Federal de Santa Catarina,1996. TATIBANA, C. Y.; KAETSU, D. Y. Redes Neurais. GSI – Grupo de Sistemas Inteligentes. Disponível em: <http://www.din.uem.br/ia/neurais/>. Acessado em: 15/04/2006. VARGAS, E. C. Recuperação de Informação por Similaridade Utilizando Técnicas Inteligentes. Tese de Doutorado em Ciências - Ciências da Computação e Matemática Computacional. Universidade de São Paulo, 2004. VASCONCELOS, N. A. P. Mapas Auto-Organizativos e suas Aplicações. Dissertação de Mestrado em Ciências. Universidade Federal do Rio de Janeiro, 2000.
  54. 54. 53 VELOSO, R. R.; SILVA, R. S. Agrupamento de Documentos Baseado na Rede Neural SOM. Laboratório de Engenharia de Software e Inteligência Artificial. Universidade Federal de Uberlândia. Disponível em: < http://www.pos.facom.ufu.br/~rene/trabalhos/RecuperacaoInformacao/Agrupamento DocumentosSOM.pdf >. Acessado em: 10 de junho de 2005. WANGEHEIM, A. V. Técnicas Subsimbólicas: Redes Neurais. Notas de Aula. Disponível em: <http://www.inf.ufsc.br/~awangenh/RP/subsimbolicas.html>. Acessado em: 04 de julho de 2005.
  55. 55. 54 APÊNDICEA–Relatório RESULTADOS NEURONIOPESOXY Saida00,42.43930686150903,63.15258717591932,66.44648292062567,50.15255517451494,42.79320669132238,0,0 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA[] NEURONIOPESOXY Saida01,44.76389198129795,57.50289184368521,65.41753293957271,56.38012697075397,44.51195100324675,0,1 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA[] 51IvaniseRezeCardiologia(60CursoSupeVoleyBalSecretario(a)(99.99)TerapiaOcupacional, 49IranilsonMaCardiologia(60CursoSupeVoleyBalSecretario(a)(99.99)TerapiaOcupacional, 50IsabelaPereCardiologia(60CursoSupeVoleyBalSecretario(a)(99.99)TerapiaOcupacional, 48HumbertoJosCardiologia(60CursoSupeVoleyBalSecretario(a)(99.99)TerapiaOcupacional] NEURONIOPESOXY Saida02,41.72126711843298,51.84857450849422,61.88599587272967,58.335826758898655,41.86626598879277,0,2 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA[] NEURONIOPESOXY Saida03,40.767382692255175,48.24309115982737,56.601060982851834,60.076739965537634,40.188197865380644,0,3 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA [ 46GilsonBorbaCardiologia(60AlfabetizaVoleyBalSecretario(a)(99.99)Fonoaudiologia(30.0, 24AnaCarlaOlPediatria(30.0Creche(5.0Judô(10.0Secretario(a)(99.99)EstimulaçãoPrecoce, 37EdnaTrindadPediatria(30.0AlfabetizaGinásticaSecretario(a)(99.99)Fonoaudiologia(30.0, 43FabianaTavaPediatria(30.0AlfabetizaGinásticaSecretario(a)(99.99)Fonoaudiologia(30.0,
  56. 56. 55 27AntônioJorgPediatria(30.0Creche(5.0Judô(10.0Secretario(a)(99.99)Fonoaudiologia(30.0, 41ElzaAlmeidaPediatria(30.0AlfabetizaGinásticaSecretario(a)(99.99)Fonoaudiologia(30.0, 31CarlosAlberPediatria(30.0Creche(5.0Judô(10.0Secretario(a)(99.99)Fonoaudiologia(30.0, 29AurelitaLimPediatria(30.0Creche(5.0Judô(10.0Secretario(a)(99.99)Fonoaudiologia(30.0, 19JosefaMariaNeurologia(10.Creche(5.0Judô(10.0Secretario(a)(99.99)EstimulaçãoPrecoce, 36DiogenesSilPediatria(30.0AlfabetizaGinásticaSecretario(a)(99.99)Fonoaudiologia(30.0, 39ElizabeteSiPediatria(30.0AlfabetizaGinásticaSecretario(a)(99.99)Fonoaudiologia(30.0, 44FranciscaMaCardiologia(60AlfabetizaGinásticaSecretario(a)(99.99)Fonoaudiologia(30.0, 30BiaAndreaIPediatria(30.0Creche(5.0Judô(10.0Secretario(a)(99.99)Fonoaudiologia(30.0, 23AnaCarlaAPediatria(30.0Creche(5.0Judô(10.0Secretario(a)(99.99)EstimulaçãoPrecoce, 45GeorginaTeiCardiologia(60AlfabetizaGinásticaSecretario(a)(99.99)Fonoaudiologia(30.0, 25AnaCassiopiPediatria(30.0Creche(5.0Judô(10.0Secretario(a)(99.99)EstimulaçãoPrecoce, 38ElizabeteCaPediatria(30.0AlfabetizaGinásticaSecretario(a)(99.99)Fonoaudiologia(30.0, 20JoaoRodriguNeurologia(10.Creche(5.0Judô(10.0Secretario(a)(99.99)EstimulaçãoPrecoce, 35DeboraRangePediatria(30.0AlfabetizaGinásticaSecretario(a)(99.99)Fonoaudiologia(30.0, 47GiselaBandCardiologia(60AlfabetizaVoleyBalSecretario(a)(99.99)Fonoaudiologia(30.0, 28AntônioMarcPediatria(30.0Creche(5.0Judô(10.0Secretario(a)(99.99)Fonoaudiologia(30.0, 26AnaLúciaBaPediatria(30.0Creche(5.0Judô(10.0Secretario(a)(99.99)Fonoaudiologia(30.0, 22AngelicaLacNeurologia(10.Creche(5.0Judô(10.0Secretario(a)(99.99)EstimulaçãoPrecoce, 32CeliaKalilPediatria(30.0Creche(5.0Judô(10.0Secretario(a)(99.99)Fonoaudiologia(30.0, 33CícerodeAnPediatria(30.0Creche(5.0Judô(10.0Secretario(a)(99.99)Fonoaudiologia(30.0, 40EloneidaCarPediatria(30.0AlfabetizaGinásticaSecretario(a)(99.99)Fonoaudiologia(30.0, 34ClaudiaMariPediatria(30.0Creche(5.0GinásticaSecretario(a)(99.99)Fonoaudiologia(30.0, 42EnalvaSantoPediatria(30.0AlfabetizaGinásticaSecretario(a)(99.99)Fonoaudiologia(30.0] NEURONIOPESOXY Saida10,43.35715223139254,63.73148118884434,71.4241429047192,43.430859989249704,48.14851797976445,1,0 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA[] NEURONIOPESOXY Saida11,44.58863344931925,63.14055105433936,69.87175135946468,50.42933508907543,46.299353134530676,1,1 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA[] NEURONIOPESOXY Saida12,44.546967360957744,57.54425929451429,66.54290262378478,51.87022167138254,44.10260919622105,1,2
  57. 57. 56 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA[] NEURONIOPESOXY Saida13,43.363340290095145,53.81916700161266,62.36464341319777,54.163612726983715,42.56338182497289,1,3 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA[] NEURONIOPESOXY Saida20,39.720653254511966,72.1032228527992,77.02262573164876,32.98029950483624,51.82936058770304,2,0 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA[] NEURONIOPESOXY Saida21,45.29493703027343,69.26338873656104,74.7096674998959,37.34423724521102,49.40998734093482,2,1 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA[] NEURONIOPESOXY Saida22,47.7772068549999,66.7142594325214,72.49691649164602,39.56963935826973,47.71130192015823,2,2 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA[] NEURONIOPESOXY Saida23,47.346233024686846,62.763101487887596,69.95187256405957,42.22813070736923,46.141071760936306,2,3 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA[] NEURONIOPESOXY Saida30,38.847718299434895,75.28207966045437,80.0655487308545,28.3986024673909,53.67374981903669,3,0 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA[] 91ReginadosRNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0), 93RitadeCássNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0),
  58. 58. 57 83MinzadeCarNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0), 89PedroFreitaNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0), 82MauriliodiaNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0), 86NadjaConceiNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0), 88PatriciaMatNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0), 92ReginúriaSiNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0), 80MarlenePireNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0), 84MylenaAraújNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0), 85NadiaMariaNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0), 94RosaliadaSNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0), 87NagaiBarrosNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0), 79MarianaSáBNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0), 90RaimundaEdnNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0), 81MaryJaneDiNeurologia(10.CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0)] NEURONIOPESOXY Saida31,45.516447752999284,73.56483635040414,77.88199677250928,30.539859782297796,51.418675935787206,3,1 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA[] 53JacquelineMCardiologia(60CursoSupeVoleyBalNenhumaOcupacao(0.0TerapiaOcupacional, 52IvonedeJesCardiologia(60CursoSupeVoleyBalNenhumaOcupacao(0.0TerapiaOcupacional, 54JacyFerreirCardiologia(60CursoSupeVoleyBalNenhumaOcupacao(0.0TerapiaOcupacional, 55JailtonBarbCardiologia(60CursoSupeVoleyBalNenhumaOcupacao(0.0TerapiaOcupacional, 57JoseAntonioCardiologia(60CursoSupeVoleyBalNenhumaOcupacao(0.0TerapiaOcupacional, 56JorgeRamosCardiologia(60CursoSupeVoleyBalNenhumaOcupacao(0.0TerapiaOcupacional, 59JoseRaimundCardiologia(60CursoSupeVoleyBalNenhumaOcupacao(0.0TerapiaOcupacional, 58JoseNelsonCardiologia(60CursoSupeVoleyBalNenhumaOcupacao(0.0TerapiaOcupacional] NEURONIOPESOXY Saida32,50.053924246947886,72.39759588869566,76.31123464708996,31.67751815766905,49.84882042513301,3,2 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA[] 77MariaLenalvOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0Musicoterapia(70.0), 74MariaInesdOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0Musicoterapia(70.0), 61karlaO.MotOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0TerapiaOcupacional, 63LilianadaSOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0TerapiaOcupacional, 66LucianodoROrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0TerapiaOcupacional, 68MariadoAmpOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0TerapiaOcupacional,
  59. 59. 58 60JoseaneSheiOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0TerapiaOcupacional, 72MarcosMennaOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0Musicoterapia(70.0), 78MariaMarlenOrtopedia(80.0CursoSupeSurf(99.9NenhumaOcupacao(0.0Musicoterapia(70.0), 76MariadasGrOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0Musicoterapia(70.0), 62LauraLídiceOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0TerapiaOcupacional, 69MarciaMariaOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0TerapiaOcupacional, 71MarcoAntoniOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0TerapiaOcupacional, 67LuisCarlosOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0TerapiaOcupacional, 64LindomarRamOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0TerapiaOcupacional, 75MairaPassosOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0Musicoterapia(70.0), 73MariadosSaOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0Musicoterapia(70.0), 70MarciaMariaOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0TerapiaOcupacional, 65LiviaMesquiOrtopedia(80.0CursoSupeFutebol(9NenhumaOcupacao(0.0TerapiaOcupacional] NEURONIOPESOXY Saida33,50.89132782491037,70.77264715956395,75.052169379882,32.78727735587879,48.53526995186819,3,3 IDNOMEASPECTOESCOLARIDADEESTIMULOOCUPACAOTERAPIA []
  60. 60. 59 APÊNDICE B – Trechos Significativos do Código Criação das Entradas a partir do Banco: private void criaEntradaBanco() { this.gerente = HibernateUtility.getGerenteHibernate(); try { List listaFilhos = gerente.getListaFilho(); for(Iterator it = listaFilhos.iterator(); it.hasNext();) { Filho f = (Filho) it.next(); for (Iterator int i=0;i<verQtdNeuronios(f);i++) { NeuronioEntrada ne = new NeuronioEntrada(); ne.setNome(f.getNome()); FilhoSub fSub = new FilhoSub(f.getNome()); fSub.setId(f.getId()); if (i<f.getListaAspectosClinicos().size()) fSub.setAspecto((Aspectos_Clinicos)f.getListaAspectosClinicos().get(i)); if (i<f.getListaEscolaridade().size()) fSub.setEscolaridade((Escolaridade)f.getListaEscolaridade().get(i)); if (i<f.getListaEstimulo().size()) fSub.setEstimulo((Estimulo)f.getListaEstimulo().get(i)); if (i<f.getListaOcupacao().size()) fSub.setOcupacao((Ocupacao)f.getListaOcupacao().get(i)); if (i<f.getListaTerapias().size()) fSub.setTerapia((Terapia)f.getListaTerapias().get(i)); ne.setFilhoSub(fSub); ne.criaEntrada(); listaNeuroniosEntrada.add(ne); } } } catch (Exception e) { e.printStackTrace(); } } Criação das Saídas: private void criaSaida() { String path = "C:temppesosTreinados.txt"; try { //Verifica se existe um arquivo que contenha os dados dos neuronios
  61. 61. 60 //Se não cria com pesos aleatórios File f = new File(path); if(f.isFile()) { criaNeuronioFile(f,true); } else { int linhas = new Double(Math.sqrt(TAMANHO_VETOR_SAIDA_REDE)).intValue(); for(int i = 0; i<linhas; i++) { for(int j = 0; j<linhas; j++) { NeuronioSaida ns = new NeuronioSaida("Saida"+i+j); ns.setPosicaoX(i); ns.setPosicaoY(j); System.out.println(ns); listaNeuroniosSaida.add(ns); log+=ns.toString()+"n"; } } } } catch (Exception e) { e.printStackTrace(); } } Método que Inicia os Pesos Aleatoriamente: private void iniciaPesoAleatorio() { double[] pesoTemp = new double[Kohonen.getTAMANHO_VETOR_PESOS()]; for (int i = 0; i < pesoTemp.length; i++) { pesoTemp[i] = Math.random() * 100; } this.pesoAtual = pesoTemp; } Métodos que Treinam a Rede: public void treinaRede() { try { int indice = 0; List lista = this.getListaNeuroniosEntrada(); while (Kohonen.INSTANTE<Kohonen.CONSTANTE_TEMPO2) { if(indice<lista.size()) { NeuronioEntrada ne = (NeuronioEntrada) lista.get(indice); NeuronioSaida vencedor = this.getNeuronioVencedor(ne);
  62. 62. 61 this.atualizaNeuronio( vencedor , ne ); indice++; } else { indice = 0; } } }catch (Exception e) { e.printStackTrace(); } } public void ajusteFino(){ Kohonen.fatorAprendizado=0.01; listaNeuroniosEntrada=new ArrayList(); listaNeuroniosSaida=new ArrayList(); criaEntradaBanco(); criaSaida(); int iteracoes = 500*TAMANHO_VETOR_SAIDA_REDE; int indice = 0; List lista = this.getListaNeuroniosEntrada(); for(int i=0;i<iteracoes;i++){ if(indice<lista.size()){ NeuronioEntrada ne = (NeuronioEntrada) lista.get(indice); NeuronioSaida vencedor = this.getNeuronioVencedor(ne); this.atualizaNeuronio(vencedor, ne); indice++; }else{ indice = o; } } }

×