Escolar Documentos
Profissional Documentos
Cultura Documentos
I. REDES AUTO-ORGANIZVEIS
O Mapa de Kohonen um algoritmo de rede neural
artificial (RNA) do tipo Mapa Auto-Organizvel (SOM, Selforganizing map). A inspirao para Teuvo Kohonen, criador do
algoritmo que leva seu nome, veio do crtex cerebral, onde a
ativao de uma regio especfica se d a partir da reao a um
estmulo sensorial, como por exemplo estmulo visual, sonoro
ou olfativo. O algoritmo trouxe uma discretizao da realidade,
a partir dessa ideia.
De maneira semelhante aprendizagem do ser humano, que
feita por reforo/repetio, a rede SOM utiliza aprendizagem
no-supervisionada para gerar uma representao dos dados ao
fim do treinamento. Cada neurnio precisa ser atualizado de
acordo com as instncias de entrada que so processadas; isso
algo que acontece na realidade fsica/biolgica, inclusive.
Porm, diferente de outras RNAs que costumam utilizar
backpropagation, a rede SOM utiliza aprendizado competitivo
para atualizar os pesos dos neurnios e detectar as
similaridades entre os dados.
O processo de atualizao dos pesos dos neurnios se d
calculando a distncia euclidiana entre uma instncia da
entrada e cada neurnio, e o que possui a menor distncia e,
portanto, mais se aproxima da instncia de entrada, chamado
neurnio vencedor e ser o mais passvel de atualizao e
reforo na aprendizagem. Isso se d para cada instncia de
entrada. Na aprendizagem competitiva, h apenas uma nica
camada neural (alm da camada de entrada). possvel haver
conexes laterais ou no, o que significaria dizer que os
neurnios podem ou no depender uns dos outros. Quando no
h, diz-se que o neurnio vencedor recebe tudo, do ingls
Winner Takes All. Quando h conexes laterais, o algoritmo do
B. Dos algoritmos
Foi utilizada a linguagem Python. No houve uso de
pacotes ou softwares externos, apenas a importao de pacotes
bsicos (como Math ou Random). Foram escritos dois aquivos
em Python, sendo kohonen-arff.py (I) e txt-som.py (II). O
procedimento de cada algoritmo da seguinte maneira;
(I) possui trs mtodos: Load, Resultado e Arff.
o Load: toma cada uma das avaliaes (escritas em .txt)
e guarda numa lista de strings, sendo cada avaliao
inteira uma nica string (incluindo whitespaces e
caracteres de escape). Ento quebrada em uma
matriz onde cada coluna contm uma lista (que uma
avaliao), e cada lista contm as palavras de uma
avaliao. Stopwords so retiradas, feita uma
contagem, atravs de dicionrio (tipo de dado do
Python), das 25 palavras mais recorrentes.
o Resultado: aqui feita a contagem das 25 palavras,
avaliao por avaliao, e cada lista, contendo 25
atributos inteiros, escrita em um txt;
o Arff: realiza basicamente a mesma coisa que
Resultado, porm gera um arquivo .arff, para
visualizao e experimentao posterior no software
WEKA.
Em (II) tomamos o arquivo txt gerado em (I) como a
entrada de dados. Alm disso, h uma srie de parmetros
e uma classe (SOM) com mtodos e atributos, a saber:
o Parmetros:
o Nmero mximo de Clusters;
o Taxa de aprendizagem;
o Decaimento da taxa de aprendizagem;
o Taxa minima de aprendizagem;
o Nmero mximo de iteraes (pocas);
o Vetor de pesos (inicializados aleatoriamente).
o Mtodos da Classe SOM:
o Construtor;
o Inicializa: Cria os pesos (aleatoriamente) dos
neurnios;
o Input_: cria pesos de conexo para a criao
dos clusters posteriores;
o Atualiza_Peso: atualiza o peso do neurnio
vencedor e seus vizinhos, at o limite
mximo de pocas;
o Treina: dentro de um lao, chama os mtodos
anteriores (e eventualmente decai a taxa de
aprendizagem);
o Resultado: testa um conjunto de entrada para
criar os clusters, e tanto imprime o resultado
na tela quanto salva no arquivo txt-result.txt.
750 iteraes
Raio da vizinhana: 2
Retcula de neurnios 21 x 21
Topologia retangular
Vetores 12, 20, 30, 50, 51, 54, 62, 64, 71, 74, 75,
84, 94, 95, 99 pertencem classe 0
Vetores 21, 52, 60, 63, 68, 77, 85, 88, 89, 90, 98
pertencem classe 1
Vetores 15, 18, 32, 33, 42, 43, 55, 61, 66, 69, 70,
72, 78, 86, 92, 93 pertencem classe 4
Vetores 2, 4, 5, 11, 13, 14, 16, 17, 19, 22, 27, 28,
29, 37, 41, 44, 58, 67, 73, 79, 82, 87 pertencem
classe 6
III. O EXPERIMENTO
O objetivo aqui agrupar os dados por pessoa. Isto , dado
que temos 100 avaliaes, sendo 10 de cada pessoa, e no h
identificao de classe, o algoritmo dever aprender a separar
as amostrar de entrada e criar clusters que se aproximem o
mximo da realidade. No caso, a condio ideal seria obter 10
clusters, cada um com 10 avaliaes, de maneira que cada
AGRUPAMENTO 2
o
Vetores 5, 7, 10, 11, 12, 13, 19, 20, 21, 23, 26, 28,
29, 30, 34, 37, 39, 41, 50, 51, 52, 54, 58, 62, 64,
68, 71, 74, 75, 78, 79, 82, 83, 84, 85, 87, 88, 89,
90, 94, 98, 99 pertencem classe 0
Vetores 6, 16, 38, 43, 59, 66, 67, 73, 80, 86, 96
pertencem classe 3
Vetores 15, 22, 32, 33, 42, 55, 60, 69, 70, 72, 92,
93 pertencem classe 4
AGRUPAMENTO 3
o
Vetores 38, 42, 55, 61, 63, 66, 80, 86, 92, 96
pertencem classe 3
Vetores 3, 15, 18, 24, 40, 46, 47, 48, 56, 67, 97
pertencem classe 4
Vetores 10, 12, 13, 20, 30, 35, 50, 51, 62, 75, 78,
79, 87 pertencem classe 5
Vetores 2, 16, 17, 19, 28, 29, 37, 44, 49, 52, 54,
58, 59, 73, 82, 88 pertencem classe 7