SlideShare une entreprise Scribd logo
1  sur  62
Télécharger pour lire hors ligne
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
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
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
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.
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.
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
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
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
LISTA DE TABELAS
Tabela 3.1 - Quadro Comparativo entre o Cérebro e o Computador..........................22
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
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).
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
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.
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
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
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).
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'.
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).
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
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.
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
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
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).
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:
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
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).
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.
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
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
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).
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
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
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
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.
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:
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
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.
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
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:
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.
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
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
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).
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
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.
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;
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.
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
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.
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
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.
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.
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.
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.
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,
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
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),
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,
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
[]
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
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);
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;
}
}
}

Contenu connexe

Similaire à Classificação de padrões com redes neurais de Kohonen

Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...
Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...
Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...Vagner Nogueira
 
Web semântica e ontologias - um estudo de caso
Web semântica e ontologias - um estudo de casoWeb semântica e ontologias - um estudo de caso
Web semântica e ontologias - um estudo de casoAlison Carvalho
 
Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
Dissertação de Mestrado - Planejamento para Serviços Web SemânticosDissertação de Mestrado - Planejamento para Serviços Web Semânticos
Dissertação de Mestrado - Planejamento para Serviços Web SemânticosJuliana Chahoud
 
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...marcelobeckmann
 
Caderno de normas_24_junho_2011
Caderno de normas_24_junho_2011Caderno de normas_24_junho_2011
Caderno de normas_24_junho_2011Edjailma Alves
 
Python
PythonPython
PythonTiago
 
SisAC. Sistema de Auxílio à Classificação. Estudo de Caso: Ostracode
SisAC. Sistema de Auxílio à Classificação. Estudo de Caso: OstracodeSisAC. Sistema de Auxílio à Classificação. Estudo de Caso: Ostracode
SisAC. Sistema de Auxílio à Classificação. Estudo de Caso: OstracodeGiovani Barili
 
Cientista da computacao usando python
Cientista da computacao usando pythonCientista da computacao usando python
Cientista da computacao usando pythonJean Lopes
 
OWL QL e Regras Não Monótonas
OWL QL e Regras Não MonótonasOWL QL e Regras Não Monótonas
OWL QL e Regras Não MonótonasNuno Costa
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaJooMarcos614503
 
2007 alexandre rodriguesgomes
2007 alexandre rodriguesgomes2007 alexandre rodriguesgomes
2007 alexandre rodriguesgomesAdemar Trindade
 
Java Básico-apostila - Universidade Regional de Blumenau - fev/2002
Java Básico-apostila - Universidade Regional de Blumenau - fev/2002Java Básico-apostila - Universidade Regional de Blumenau - fev/2002
Java Básico-apostila - Universidade Regional de Blumenau - fev/2002Marcelo Negreiros
 
Java basico
Java basicoJava basico
Java basicoTiago
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 

Similaire à Classificação de padrões com redes neurais de Kohonen (20)

Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...
Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...
Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...
 
ink2canvas
ink2canvasink2canvas
ink2canvas
 
Web semântica e ontologias - um estudo de caso
Web semântica e ontologias - um estudo de casoWeb semântica e ontologias - um estudo de caso
Web semântica e ontologias - um estudo de caso
 
Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
Dissertação de Mestrado - Planejamento para Serviços Web SemânticosDissertação de Mestrado - Planejamento para Serviços Web Semânticos
Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
 
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced ...
 
Guia elaboracaotfc
Guia elaboracaotfcGuia elaboracaotfc
Guia elaboracaotfc
 
Caderno de normas_24_junho_2011
Caderno de normas_24_junho_2011Caderno de normas_24_junho_2011
Caderno de normas_24_junho_2011
 
Python
PythonPython
Python
 
Manual TCC
Manual TCCManual TCC
Manual TCC
 
SisAC. Sistema de Auxílio à Classificação. Estudo de Caso: Ostracode
SisAC. Sistema de Auxílio à Classificação. Estudo de Caso: OstracodeSisAC. Sistema de Auxílio à Classificação. Estudo de Caso: Ostracode
SisAC. Sistema de Auxílio à Classificação. Estudo de Caso: Ostracode
 
Cientista da computacao usando python
Cientista da computacao usando pythonCientista da computacao usando python
Cientista da computacao usando python
 
OWL QL e Regras Não Monótonas
OWL QL e Regras Não MonótonasOWL QL e Regras Não Monótonas
OWL QL e Regras Não Monótonas
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
Poojava
PoojavaPoojava
Poojava
 
2007 alexandre rodriguesgomes
2007 alexandre rodriguesgomes2007 alexandre rodriguesgomes
2007 alexandre rodriguesgomes
 
Java Básico-apostila - Universidade Regional de Blumenau - fev/2002
Java Básico-apostila - Universidade Regional de Blumenau - fev/2002Java Básico-apostila - Universidade Regional de Blumenau - fev/2002
Java Básico-apostila - Universidade Regional de Blumenau - fev/2002
 
Java basico
Java basicoJava basico
Java basico
 
Apostila
ApostilaApostila
Apostila
 
Projeto de-rede-escola-particular
Projeto de-rede-escola-particularProjeto de-rede-escola-particular
Projeto de-rede-escola-particular
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 

Classificação de padrões com redes neurais de Kohonen

  • 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. 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. 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. 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. 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. 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. 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. 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. LISTA DE TABELAS Tabela 3.1 - Quadro Comparativo entre o Cérebro e o Computador..........................22
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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; } } }