ENHANCED SELF-ORGANIZING INCREMENTAL NEURAL NETWORK FOR ONLINE UNSUPERVISED LEARNING Cesar Lima José Francisco Maíra Nascimento ROTEIRO Introdução  Revisão literária  SOINN  ESOINN  Experimentos  Conclusão  Referências  INTRODUÇÃO  Aprendizagem não supervisionada Construção de grupos (agrupamentos) de dados baseado em suas características  Aprendizagem de topologia   Encontrar grupos homogêneos de dados dentre todos de um conjunto. INTRODUÇÃO  Problemas Custo computacional  Armazenamento   Outros problemas referem-se a: Inicialização do algoritmo  Pré-definição do número desejado de clusters  INTRODUÇÃO  Algoritmos de agrupamento (clustering)   Hierárquico, por partição, fuzzy, nearest neighbor, RNA etc. Aprendizagem incremental  Adaptar-se a novas informações sem esquecer informação previamente aprendida REVISÃO LITERÁRIA  K-means e LBG Inicialização dos parâmetros  Determinação do número de clusters  Ambos têm melhorias que reduzem suas limitações  REVISÃO LITERÁRIA Redes neurais para clusterização  “topology learning”    Geram mapeamentos entre dados em espaço de alta dimensão para uma estrutura topológica Redes auto-organizáveis (SOM, NG, etc.) são utilizadas para este fim REVISÃO LITERÁRIA  Self Organizing Map (SOM)  Estrutura predefinida REVISÃO LITERÁRIA  Neural Gas (NG) Competitive Hebbian Learning  Decisão a priori do tamanho da rede   Growing Neural Gas (GNG) Estrutura dinâmica, sem necessidade de definí-la previamente  Incremento constante de novos nodos, deslocamento de centros (nodos representantes)  REVISÃO LITERÁRIA  Growing Neural Gas - Utility (GNG-U)   Remoção de nodos baseado em parâmetro de utilidade Limitações (GNG, GNG-U, etc) Aumento permanente da rede  Representação do estado atual da distribuição de dados  SELF-ORGANIZING INCREMENTAL NEURAL NETWORK (SOINN)  Objetivos: Processar dados não estacionários on-line ou life-long  Não necessitar de condições iniciais (quantidade de classes, número de nodos, parâmetros iniciais, etc.)  Separar classes com interseção de baixa densidade (reportar clusters)  SELF-ORGANIZING INCREMENTAL NEURAL NETWORK (SOINN)  Rede de duas camadas 1 ª: Densidade da distribuição dos dados  2 ª: Separa clusters e fornece seus protótipos representativos   Algoritmo Recebe vetor de entrada ξ (na 1 ª camada)  Encontra os dois nodos mais próximos: s1 e s2  Julga se ξ pertence ao cluster s1 ou s2   Baseado em limiar adaptativo por nodo (Ts1 e Ts2 nesse caso) SELF-ORGANIZING INCREMENTAL NEURAL NETWORK (SOINN)  Algoritmo (continuação)      Se ξ representa uma nova classe, adicionar nodo r com vetor ξ à rede e reinicie com uma nova entrada. Caso contrário crie uma nova aresta entre s1 e s2 e zere sua idade Incrementa a idade de todas as conexões do vencedor Atualiza os pesos do vencedor e de seus vizinhos Remove nodos com idade maior que agedead SELF-ORGANIZING INCREMENTAL NEURAL NETWORK (SOINN)  Algoritmo (continuação)  Após λ iterações Insere um novo nodo onde o erro acumulado é maior  Se não houver redução do erro local, cancela a inserção  Remove nodos ruidosos  Com nenhum ou um vizinho  SELF-ORGANIZING INCREMENTAL NEURAL NETWORK (SOINN)  Algoritmo (continuação)  Após LT iterações Submete os nodos atuais da rede como entrada para o próprio algoritmo  Gera os nodos da segunda camada  Após aprendizagem, nodos conectados representam um cluster  SOINN ENHANCED SELF-ORGANIZING INCREMENTAL NEURAL NETWORK (ESOINN)  Principais problemas do SOINN: Adotar rede de duas camadas  Quando encerrar o treinamento da 1ª camada e iniciar o da 2ª  Requer grande número de parâmetros determinados pelo usuário  Separa clusters com interseção de baixa densidade  ENHANCED SELF-ORGANIZING INCREMENTAL NEURAL NETWORK (ESOINN)  ESOINN Baseado no SOINN  Herda todas as funções do SOINN  Soluciona problemas citados  Adota apenas uma camada   Algoritmo Recebe vetor de entrada ξ  Encontra os dois nodos mais próximos: s1 e s2  Julga se ξ pertence ao cluster s1 ou s2   Baseado em limiar adaptativo por nodo (Ts1 e Ts2 nesse caso) ENHANCED SELF-ORGANIZING INCREMENTAL NEURAL NETWORK (ESOINN)  Algoritmo (continuação) Se ξ representa uma nova classe, adiciona nodo r com vetor ξ à rede e reinicia com uma nova entrada.  Incrementa a idade de todas as conexões do vencedor  Caso contrário cria uma nova aresta entre s1 e s2 e zera sua idade, se:     s1 e s2 são nodos novos Pertecem a mesma subclasse Pertecem a classes diferentes e satisfazem:  min(hs1, hs2) > αAAmax ou min(hs1, hs2) > αBBmax Caso contrário, se existir uma conexão entre s1 e s2, ela é removida  Atualiza a densidade do vencedor, usando a equação: h = 1/  Atualiza os pesos do vencedor e de seus vizinhos  Remove nodos com idade maior que agedead