1 - Modelagem Matemática e Computacional / CEFET-MG

Transcrição

1 - Modelagem Matemática e Computacional / CEFET-MG
FÁBIO MARTINS DE OLIVEIRA
MODELAGEM DE COMPONENTES DE SOFTWARE
PARA A CRIAÇÃO DE REDES NEURAIS ARTIFICIAIS
HIERÁRQUICAS NA ARQUITETURA ARTÍFICE
Belo Horizonte – MG
Outubro de 2005
FÁBIO MARTINS DE OLIVEIRA
MODELAGEM DE COMPONENTES DE SOFTWARE
PARA A CRIAÇÃO DE REDES NEURAIS ARTIFICIAIS
HIERÁRQUICAS NA ARQUITETURA ARTÍFICE
Dissertação apresentada ao Curso de
Mestrado em Modelagem Matemática e
Computacional do Centro Federal de Educação
Tecnológica de Minas Gerais, como requisito
parcial à obtenção do título de Mestre em
Modelagem Matemática e Computacional.
Linha de pesquisa:
Sistemas Inteligentes
Orientador:
Prof. Dr. Paulo Eduardo Maciel de Almeida
Centro Federal de Educação Tecnológica de Minas Gerais
Co-orientador:
Prof. Dr. Henrique Elias Borges
Centro Federal de Educação Tecnológica de Minas Gerais
MESTRADO EM MODELAGEM MATEMÁTICA E COMPUTACIONAL
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DIRETORIA DE PESQUISA E PÓS-GRADUAÇÃO
Belo Horizonte – MG
Outubro de 2005
Oliveira, Fábio Martins de
O48m
2005
Modelagem de Componentes de Software para a
Criação de Redes Neurais Artificiais Hierárquicas na
Arquitetura ARTÍFICE / Fábio Martins Oliveira – Belo
Horizonte: CEFET-MG/DPPG, 2005.
117 p.
Dissertação (mestrado) CEFET-MG.DPPG
1. Redes Neurais Artificiais. 2. Inteligência Artificial.
3. Sistemas Inteligentes. 4. Sistemas Dinâmicos.
CDD: 005.131
Folha de aprovação do projeto. Esta folha
será fornecida pelo Programa de PósGraduação
página.
e
deverá
substituir
esta
“Dedico este trabalho aos meus pais, ao
meu irmão e a minha esposa que sempre
acreditaram no meu potencial e que tanto
colaboraram nos momentos de alegria e
tristeza”.
AGRADECIMENTOS
À Deus, pelas bênçãos e proteção durante toda minha vida.
Ao meu orientador do mestrado, Prof. Dr. Paulo Eduardo Maciel de Almeida, que
sempre acreditou no meu potencial e foi paciente nos momentos de dificuldade que
passei durante o curso.
Ao meu co-orientador, prof. Dr. Henrique Elias Borges, pelo apoio ao projeto e
confiança depositada em mim.
À minha esposa Alessandra, pelos momentos de apoio e compreensão durante todo
o desenvolvimento deste trabalho, não me deixando desanimar nem desistir dos
meus ideais.
Ao meu amigo Rogério Gomes pela experiência passada que foi fundamental para
realização deste trabalho.
Ao CNPq, pelo apoio financeiro recebido via projeto ARTÍFICE, do qual este trabalho
faz parte.
“O estudo nos torna capazes de adquirirmos o auto-conhecimento de nós
mesmos, e de tudo o que nos cerca, sem dúvida alguma, nos lança rumo
ao futuro certo, ao progresso, ao discernimento, que nos fazem viver
melhor o dia a dia, ajudando-nos a sobreviver e não sermos vítimas de
meras casualidades.”
SILVA, José Geraldo da. Chama Ardente. São Paulo: Scortecci, 1992.
SUMÁRIO
LISTA DE FIGURAS.................................................................................................11
LISTA DE TABELAS ................................................................................................15
LISTA DE ABREVIATURAS E SIGLAS ...................................................................17
LISTA DE ABREVIATURAS E SIGLAS ...................................................................17
RESUMO...................................................................................................................19
ABSTRACT...............................................................................................................20
1 INTRODUÇÃO .......................................................................................................21
1.1 Relevância...........................................................................................................22
1.2 Motivação ............................................................................................................22
1.3 Estado da arte .....................................................................................................24
1.4 Objetivos .............................................................................................................25
1.4.1 Objetivos Gerais ...........................................................................................25
1.4.2 Objetivos Específicos....................................................................................25
1.5 Metodologia de Pesquisa ....................................................................................26
1.6 Organização do trabalho .....................................................................................27
2 SISTEMAS DINÂMICOS E REDES NEURAIS ARTIFICIAIS ................................28
2.1 Introdução aos Sistemas Dinâmicos ...................................................................28
2.1.1 Espaço de Estados .......................................................................................29
2.1.2 Atratores .......................................................................................................30
2.1.3 Estabilidade ..................................................................................................31
2.2 Redes Neurais Artificiais .....................................................................................34
2.3 Modelos de Redes Neurais Artificiais Dinâmicas ................................................35
2.3.1 Redes de Hopfield ........................................................................................36
2.3.2 Redes Generalized-Brain-State-in-a-Box e Brain-State-in-a-Box .................38
2.4 Aprendizado em Redes Neurais Artificiais ..........................................................42
2.4.1 Aprendizado Hebbiano .................................................................................42
2.5 Memória ..............................................................................................................44
2.5.1 Associação de Padrões ................................................................................45
2.5.2 Learning........................................................................................................49
2.5.3 Forgetting......................................................................................................50
2.6 Redes Neurais Artificiais Acopladas....................................................................51
2.6.1 Redes de Redes Neurais Artificiais...............................................................51
2.6.2 Arquitetura de RNA Dinâmicas Acopladas ...................................................54
2.7 Considerações Finais ..........................................................................................59
3 COMPONENTES DE SOFTWARE PARA GERAÇÃO DE REDES NEURAIS
ARTIFICIAIS ACOPLADAS ...................................................................................60
3.1 Introdução ...........................................................................................................60
3.2 Modelagem dos componentes ............................................................................62
3.2.1 Visão Lógica dentro do Projeto ARTÍFICE....................................................62
3.2.2 Visão Use-Case ............................................................................................67
3.3 Considerações Finais ..........................................................................................78
4 EXPERIMENTOS ...................................................................................................80
4.1 Considerações Iniciais.........................................................................................80
4.2 Experimentos ......................................................................................................80
4.2.1 Experimento 1 – Projeto de RNA ..................................................................80
4.2.2 Experimento 2 – Execução e Análise de Convergência ...............................83
4.2.6 Experimento 3 - Acoplamento.......................................................................93
4.2.6 Experimento 4 – Learning...........................................................................100
4.2.6 Experimento 5 – Forgetting.........................................................................104
4.3 Considerações Finais ........................................................................................107
5 CONCLUSÃO.......................................................................................................109
5.1 Dificuldades Encontradas..................................................................................109
5.2 Contribuições do Trabalho ................................................................................110
5.3 Trabalhos Futuros .............................................................................................111
5.4 Considerações Finais ........................................................................................112
REFERÊNCIAS.......................................................................................................113
ANEXO A – ARQUITETURA ARTÍFICE-0.6.0 .......................................................117
LISTA DE FIGURAS
Figura 1.1 - Agente em seus domínios fenomênicos. ..........................................23
Figura 2.1 - Trajetória bidimensional de um sistema dinâmico . ........................30
Figura 2.2 - Bacia de atração e separatriz. ............................................................31
Figura 2.3 - Modelo de McCullock e Pitts. .............................................................35
Figura 2.4 - Rede de Hopfield. ................................................................................37
Figura 2.5 - (a) Função de ativação da rede BSB, com valores contínuos entre 1 e 1 e truncados neste limite, e (b) visualização da mudança dos estados
de ativação da rede até o equilíbio em um dos vértices do hipercubo
formado pelos limites -1 e 1 das ativações......................................................40
Figura 2.6 - Exemplo de padrões armazenados. ..................................................46
Figura 2.7 - Exemplo de recuperação de padrão com ruído................................46
Figura 2.8 - Módulo da Rede de Redes..................................................................52
Figura 2.9 - Arquitetura Modular de Rede de Redes. ...........................................53
Figura 2.10 - Arquitetura Redes de Redes para sete redes. ...............................53
Figura 2.11 - Rede GBSB acoplada........................................................................55
Figura 2.12 - Esquema de redes.............................................................................55
Figura 3.1 – Organização em pacotes do projeto ARTÍFICE-0.6.0. .....................63
Figura 3.2 – Pacotes que foram acrescidos ao pacote cssaNervousSystem. ...64
Figura 3.3 - Componentes do sistema nervoso....................................................64
Figura 3.4 - Pacote annStructure. ..........................................................................65
Figura 3.5 – Pacote annTools.................................................................................66
Figura 3.6 - Diagrama de Casos de Uso. ...............................................................67
Figura 3.7 - Diagrama de seqüência para o caso de uso ANN Design. ..............74
Figura 3.8 - Diagrama de seqüência para o caso de uso Execute ANN..............75
Figura 3.9 – Diagrama de seqüência para o caso de uso Analyse ANN.............76
Figura 3.10 - Diagrama de seqüência para o caso de uso Coupling ANN..........77
Figura 3.11 – Diagrama de seqüência para o caso de uso Learning. .................77
Figura 3.12 – Diagrama de seqüência para o caso de uso Forgetting. ..............78
Figura 4.1 – Módulo de projeto (aprendizado) da rede. .......................................81
Figura 4.2 – Teste de projeto de uma RNA............................................................82
Figura 4.3 – Módulo de execução de redes GBSB. ..............................................83
Figura 4.4 – Execução da rede GBSB com estado inicial p1. ..............................84
Figura 4.5 – Execução da rede GBSB com estado inicial p7. ..............................85
Figura 4.6 – Execução da rede GBSB com estado inicial p8. ..............................86
Figura 4.7 – Região de ciclo limite........................................................................87
Figura 4.8 – Análise de convergência da rede GBSB para β = 0.3......................88
Figura 4.9 - Estados espúrios. ...............................................................................89
Figura 4.10 – Análise de convergência da rede GBSB para β = 0.2....................89
Figura 4.11 – Análise de convergência da rede GBSB para β = 0.15..................90
Figura 4.12 – Análise de convergência da rede GBSB para β = 0.1....................90
Figura 4.13 – Análise de convergência da rede GBSB para β = 0.06..................91
Figura 4.14 - Análise de convergência da rede GBSB para β = 0.06...................92
Figura 4.15 – Módulo de acoplamento de redes GBSB........................................93
Figura 4.16 – Esquema geral do experimento. .....................................................95
Figura 4.17 – Teste de acoplamento inicializando-se a rede A. ..........................96
Figura 4.18 – Resultado do teste de acoplamento inicializando-se a rede A.....96
Figura 4.19 - Interface do módulo Learning. .......................................................101
Figura 4.20 – Execução da rede GBSB para o estado inicial instável p4..........103
Figura 4.21 – Teste de learning. ...........................................................................103
Figura 4.22 – Execução da rede GBSB para o estado inicial estável p4...........104
Figura 4.23 - Interface do módulo Forgetting. ....................................................105
Figura 4.24 - Execução da rede GBSB para o estado inicial estável p3............106
Figura 4.25 – Teste de forgetting. ........................................................................106
Figura 4.26 - Execução da rede GBSB para o estado inicial instável p3. ........107
Figura A.1 – Modelo Conceitual da Arquitetura ARTÍFICE versão 0.0.6...........117
LISTA DE TABELAS
Tabela 4.1 – Resultado da convergência da rede GBSB para β = 0.3 ................88
Tabela 4.2 – Resultado da convergência da rede GBSB para β = 0.3 ................91
Tabela 4.3 – Padrões encontrados na convergência da rede GBSB. .................92
Tabela 4.4 – Padrões correlacionados armazenados. .........................................94
Tabela 4.5 - Acoplamento das redes variando-se γ, com a rede A inicializada no
padrão p1............................................................................................................97
Tabela 4.6 - Acoplamento das redes variando-se β, com a rede A inicializada no
padrão p2............................................................................................................97
Tabela 4.7 - Acoplamento das redes variando-se γ, com a rede A inicializada no
padrão p2............................................................................................................97
Tabela 4.8 - Acoplamento das redes variando-se β, com a rede B inicializada no
padrão p3............................................................................................................98
Tabela 4.9 - Acoplamento das redes variando-se γ, com a rede B inicializada no
padrão p3............................................................................................................98
Tabela 4.10 - Acoplamento das redes variando-se β, com a rede B inicializada
no padrão p4. .....................................................................................................98
Tabela 4.11 - Acoplamento das redes variando-se γ, com a rede B inicializada
no padrão p4. .....................................................................................................99
Tabela 4.12 - Acoplamento das redes variando-se β, com a rede C inicializada
no padrão p5. .....................................................................................................99
Tabela 4.13 - Acoplamento das redes variando-se γ, com a rede C inicializada
no padrão p5. .....................................................................................................99
Tabela 4.14 - Acoplamento das redes variando-se β, com a rede C inicializada
no padrão p6. ...................................................................................................100
Tabela 4.15 - Acoplamento das redes variando-se γ, com a rede C inicializada
no padrão p6. ...................................................................................................100
LISTA DE QUADROS
Quadro 3.1 - Descrição do caso de uso ANN Design...........................................68
Quadro 3.2 - Descrição do caso de uso Execute ANN - Hopfield. ......................69
Quadro 3.3 - Descrição do caso de uso Execute ANN – GBSB/BSB. .................70
Quadro 3.4 - Descrição do caso de uso Analyse ANN - Hopfield. ......................71
Quadro 3.5 - Descrição do caso de uso Analyze ANN – GBSB/BSB. .................71
Quadro 3.6 - Descrição do caso de uso Coupling ANN. ......................................72
Quadro 3.7 - Descrição do caso de uso Learning. ...............................................73
Quadro 3.8 - Descrição do caso de uso Forgetting..............................................73
Quadro 3.9 - Descrição do caso de uso View File. ...............................................74
LISTA DE ABREVIATURAS E SIGLAS
ANN
- Artificial Neural Networks
ASCS
- Agente de Software Cognitivo Situado
BSB
- Brain-State-in-a-Box
GBSB
- Generalized-Brain-State-in-a-Box
GPSI
- Grupo de Pesquisas em Sistemas Inteligentes
IA
- Inteligência Artificial
LSI
- Laboratório de Sistemas Inteligentes
MLP
- MultiLayer Perceptron
NoN
- Network of Networks
RNA
- Rede Neural Artificial, Redes Neurais Artificiais
TNGS
- Teory of Neuronal Group Selection
UML
- Unified Modeling Language
RESUMO
O projeto ARTÍFICE, desenvolvido pelo Grupo de Pesquisas em Sistemas
Inteligentes do CEFET-MG, visa a construção de agentes de software segundo as
abordagens da cognição situada. Para criação dos agentes, se faz necessária a
implementação de estruturas capazes de modelar os processos biológicos a partir
das teorias cognitivas contemporâneas. As Redes Neurais Artificiais (RNA), que têm
seus princípios fundamentais assentados nos trabalhos de modelagem biológica de
processos neurofisiológicos, cognitivos e comportamentais, são estruturas capazes
de atender as necessidades do projeto ARTÍFICE. Nesse contexto, este trabalho
propõe a extensão da arquitetura ARTÍFICE-0.6.0 para a construção de
componentes de software que possuam funções de projeto, execução, análise e
acoplamento de RNA de Hopfield, BSB e GBSB. A partir do estudo da arquitetura
ARTÍFICE-0.6.0 foram elaborados os modelos de projeto que incluem as estruturas
de RNA. Os componentes de RNA desenvolvidos foram testados a partir de
experimentos, baseados em aplicações de memória associativa, que validam o
funcionamento dos mesmos. Os experimentos realizados com uma rede GBSB
mostraram como ocorre o aprendizado, ou seja, a memorização de padrões, nessa
estrutura, bem como analisaram evolução e convergência para os estados de
equilíbrio do sistema. Através de experimentos com redes GBSB acopladas foi
possível analisar a evolução e verificar que padrões globais podem emergir a partir
dessa estrutura. Os componentes de software desenvolvidos neste trabalho
contribuíram para implementação de um novo tipo de estrutura para construção do
sistema nervoso do Agente de Software Cognitivo Situado, dentro do projeto
ARTÍFICE. Acredita-se também que este trabalho representou o início da construção
de um framework capaz de auxiliar no desenvolvimento de aplicações complexas de
diferentes estruturas de RNA e tecnologias que envolvem essa área de estudo.
PALAVRAS-CHAVE: redes neurais artificiais, inteligência artificial, sistemas
inteligentes, sistemas dinâmicos.
ABSTRACT
The ARTÍFICE project, developed by the Intelligent System Research Group of the
CEFET-MG, aims the construction of software agents according to the approach of
situated cognition. For the creation of agents, it is necessary the development of
structures which are able to model the biological processes from the contemporary
cognitive theories. Artificial Neural Networks (ANN) have their roots in biological
modeling neurophysiologic, cognitive and behavioral processes research. They seem
to be structures capable to satisfy ARTÍFICE project demands. In this context, the
present work proposes the extension of ARTÍFICE 0.6.0 architecture for the
construction of software components which possess design, execution, analysis and
coupling functions of ANN, Hopfield, BSB and GBSB. From the study of ARTÍFICE0.6.0 architecture, there has been created project models that include the ANN
structures. The ANN components developed had been tested by means of
experiments based on associative memory applications, validating their functioning.
These experiments, carried through with GBSB networks, showed how learning takes
place, i.e., how pattern memorization occurs in this structure. They also analyzed
evolution and convergence for the equilibrium states of the system. Through
experiments with coupled GBSB networks, it has been possible to analyze ANN
dynamics and to verify that global patterns could arise from the coupled structure.
The software components developed in this work contribute to the implementation of
a structure capable to represent the nervous system for the Cognitive Situated
Software Agents proposed by ARTÍFICE project. This work represents the beginning
of a framework construction capable to assist in the development of complex
applications using different ANN structures and technologies that involve this study
area.
KEYWORDS: artificial neural networks, artificial intelligence, intelligent systems,
neurodynamic, dynamic systems.
21
1 INTRODUÇÃO
As abordagens tradicionais das ciências cognitivas, também chamadas de
objetivistas, tentam explicar o funcionamento da mente, onde o cérebro é visto com
um processador de informações com entrada, processamento e saída (SANTOS,
2003). Além disso, o mundo é objetivo, ou seja, ele existe independente de nós
seres humanos. Em virtude dos limites de aplicabilidade das ciências cognitivas,
novas abordagens e modelos vão surgindo. Segundo Santos (2003), uma dessas
novas abordagens é a chamada “cognição situada”, que toma como ponto de partida
o fato de que a cognição é um processo de um organismo que tem um corpo, que
por sua vez é um objeto físico num determinado contexto no ambiente. Nessa
abordagem, também chamada de não-objetivista, o conhecimento e o aprendizado
surgem das interações do sujeito com o mundo do qual faz parte (OLIVEIRA;
CAMPOS; BORGES, 2004).
Baseado nos fundamentos das ciências cognitivas, a Inteligência Artificial fornece
mecanismos que auxiliam na construção de softwares a partir dessas abordagens,
como, por exemplo, as Redes Neurais Artificiais (RNA). As RNA são modelos
matemáticos que se assemelham às estruturas neurais biológicas e que têm
capacidade computacional adquirida por meio de aprendizado e generalização
(BRAGA; CARVALHO; LUDERMIR, 2003). Assim como o sistema nervoso é
composto por bilhões de células nervosas, uma RNA também é formada por
unidades que nada mais são que pequenos módulos de simulação do
funcionamento de um neurônio natural. Segundo Raposo e Vaz (2004), as RNA
possibilitam representar processos cognitivos, uma vez que são capazes não só de
armazenar e manipular dados, mas também da aquisição, representação e
manipulação de conhecimento. Esta manipulação inclui a capacidade de deduzir ou
inferir novos conhecimentos, novas relações sobre fatos e conceitos a partir do
conhecimento existente e utilizar métodos de representação e manipulação para
resolver problemas complexos que são freqüentemente não-quantitativos por
natureza (RAPOSO; VAZ, 2004).
22
Este trabalho faz parte do projeto “ARTÍFICE – Arquitetura Flexível para Criação de
Linhagens de Agentes de Software Cognitivos Situados” (BORGES, 2002), que
propõe o desenvolvimento de uma arquitetura flexível para a construção de agentes
de software cognitivos. Essa arquitetura contém componentes que fazem parte da
organização do agente de software e os relacionamentos entre eles, representando
aspectos da cognição humana baseados nas abordagens não-objetivistas das
ciências cognitivas.
1.1 RELEVÂNCIA
Atualmente, o grande objetivo das pesquisas em Inteligência Artificial (IA) é capacitar
o computador a executar funções que são desempenhadas pelo ser humano usando
conhecimento e raciocínio (REZENDE, 2003). No entanto, para desenvolver
organismos computacionais inteligentes é preciso analisar os aspectos relativos ao
conhecimento humano, como se dá este conhecimento, o conceito de inteligência,
como surge o comportamento inteligente, como ocorre o raciocínio humano, etc. O
“sonho” de construir máquinas inteligentes não é recente. O homem, desde a
antiguidade, procurou desenvolver dispositivos artificiais, metálicos, de madeira ou
de marfim, dotados de movimento e inteligência. Assim, este trabalho se torna
relevante na disseminação da construção de softwares com capacidade de agir
inteligentemente como os seres humanos, ajudando na tomada de decisões e
resoluções de problemas das mais diversas áreas do conhecimento.
Espera-se
difundir o desenvolvimento de técnicas que permitam incorporar no ambiente
computacional, mesmo que de forma limitada, algumas das funcionalidades dos
sistemas biológicos, no que se refere a seus aspectos de inteligência. Além disso e,
principalmente, este trabalho contribui para o desenvolvimento de sistemas
computacionais inteligentes pela construção de RNA interconectadas.
1.2 MOTIVAÇÃO
O Grupo de Pesquisas em Sistemas Inteligentes (GPSI) do CEFET/MG tem como
objetivo o desenvolvimento de uma arquitetura flexível para agentes denominados
como Agentes de Softwares Cognitivos Situados (ASCS). Santos (2003) afirma que
23
no domínio das relações e interações, o agente é uma unidade simples que possui
um comportamento em um meio, e é visto como um todo por alguma unidade
externa que o observa. Já no domínio da dinâmica estrutural interna, o agente é
considerado
como
uma
unidade
composta
por
vários
componentes
e
correlacionamentos. A representação do agente pode ser observada na Figura 1.1:
Figura 1.1 - Agente em seus domínios fenomênicos.
FONTE – SANTOS, 2003. p. 59.
Justamente neste domínio que se encontra a estrutura para a construção de agentes
inteligentes segundo as abordagens cognitivas e situadas. Segundo a Teoria da
Seleção dos Grupos Neurais (TNGS – Theory of Neuronal Group Selection)
(EDELMAN, 1992), as correlações entre células neurais no cérebro humano,
localizados em áreas que realizam funções específicas, formam os grupos neurais,
os mapas locais e mapas globais.
Os grupos neurais (GN), são conjunto de neurônios (entre 50 e 10000) fortemente
interconectados por sinapses, que trabalham na mesma freqüência e estão
localizados numa mesma região do cérebro. Um mapa local é um conjunto de
grupos neurais distintos, interconectados através conexões reentrantes, ou seja,
sinapses que ocorrem em ambos sentidos, com funcionalidades semelhantes. Os
Mapas Globais, por
sua vez, são conjuntos de mapas
locais
distintos
interconectados através das sinapses de células neurais destes mapas, que
proporcionam um comportamento global do cérebro como um todo.
24
A arquitetura para construção de agentes de software inteligentes, baseada nas
abordagens cognitivas situadas, pode ser observada em Santos (2003). No entanto,
o GPSI ainda não possui uma ferramenta de apoio à construção dos Mapas Locais e
Globais, que representarão funções específicas do cérebro humano. O que pode ser
visto, até o momento, são que as correlações entre Mapas Locais, formando os
Mapas Globais, possuem uma estrutura semelhante à arquitetura de Redes de
Redes (Network of Networks - NoN) apresentadas por Guan, Anderson e Sutton
(1997),
que
será
detalhada
no
capítulo
4.
Diante
disso,
motivou-se
o
desenvolvimento de componentes, a partir das idéias de Redes de Redes, que
pudessem auxiliar na construção de agentes de software segundo as teorias da
Cognição Situada.
1.3 ESTADO DA ARTE
São diversos os trabalhos na área de RNA, mas há relativamente poucos que tratam
de projetos de interconexão de redes para resolução de problemas gerais. Em
Anderson (2002) e Anderson (2003 a), é apresentada uma estrutura de Redes de
Redes Neurais Artificiais (NoN, do termo inglês Network of Networks) para
processamento de operações aritméticas, como ocorrem no cérebro humano.
Nesses artigos, o autor discute como é realizado o processamento aritmético em
seres humanos e como este pode ser representado em computador através desta
arquitetura, aumentando e melhorando todo processo. Na arquitetura NoN, supõe-se
que o elemento computacional básico, como no cérebro, não é o neurônio, mas sim
uma pequena rede de neurônios. Ou seja, as unidades elementares computacionais
no sistema nervoso não são simples unidades como nas RNA tradicionais, mas
módulos compostos de muitas unidades interconectadas. Têm-se ainda trabalhos
voltados para processamento de imagens, como Guan, Anderson e Sutton (1996)
(1997), onde os autores mostram a aplicação da arquitetura NoN no processo de
regularização de imagens. Este processo visa a redução da degradação de imagens
digitais por ruídos e embaçamento. Os autores fazem ainda uma comparação da
implementação do processo utilizando a arquitetura NoN e uma rede de Hopfield,
onde se pode observar há uma melhoria significante na imagem aplicando-se a
primeira técnica, ocorrendo justamente o contrário com a segunda. Existem alguns
25
projetos de construção de computadores paralelos capazes de executar softwares
que implementam habilidades cognitivas humanas (ANDERSON, 2003 a), baseados
em estruturas de interconexão de RNA. Gan e Wei (1990) discutem como formar
representações
compactas
de
armazenamento
de
padrões,
preservando
informações críticas, e apresenta um modelo de RNA interconectadas para memória
associativa. Outros trabalhos de armazenamento e recuperação de padrões são
ainda encontrados na literatura, como Correa (2004), são apresentadas estruturas
de RNA realimentadas, as Redes Neurais Celulares, que são versões localmente
acopladas do modelo de Hopfield. O autor utilizou-se dessas redes para avaliar o
desempenho de diversos métodos de construção de memórias associativas. Gomes
(2005) apresenta uma estrutura de RNA acopladas baseada na TNGS. Essa
estrutura possibilita o acoplamento de redes GBSB para aplicações de memória
associativa.
1.4 OBJETIVOS
1.4.1 Objetivos Gerais
Este trabalho faz parte do projeto ARTÍFICE, que propõe o desenvolvimento de uma
arquitetura flexível para a construção de agentes de software cognitivos. Nesse
contexto, a proposta aqui é a implementação de RNA com objetivo de construir
agentes de software inteligentes. Além disso, pretende-se contribuir para
implementação de um tipo de estrutura que irá representar o sistema nervoso do
ASCS, bem como o desenvolvimento de outros projetos de RNA, através do
desenvolvimento de componentes de software que possuam funções de projeto,
execução, análise e interconexões (acoplamento) entre RNA realimentadas.
1.4.2 Objetivos Específicos
1. Construção do modelo lógico dos componentes de software a serem
desenvolvidos, em conformidade com a arquitetura ARTÍFICE, versão 0.6.0;
26
2. Implementação dos componentes de software para projeto, execução e
análise de RNA de Hopfield, BSB e GBSB1, estendendo a arquitetura
ARTÍFICE e propiciando novas possibilidades de criação do ASCS;
3. Implementação dos componentes de acoplamento de estruturas de RNA de
Hopfield, BSB e GBSB do projeto ARTÍFICE;
4. Implementação de uma interface para integração dos componentes;
5. Realização de testes nos componentes, a partir da interface de integração,
através da resolução de problemas gerais.
1.5 METODOLOGIA DE PESQUISA
Para desenvolvimento dos componentes propostos nesse projeto, foi adotada a
seguinte metodologia de trabalho, sendo dividida em 4 (quatro) etapas:
1. Revisão bibliográfica: estudo geral da arquitetura do projeto ARTÍFICE,
levantamento de informações sobre RNA e possibilidades de acoplamento,
sistemas dinâmicos e aplicações de RNA na implementação de memórias
associativas;
2. Projeto dos componentes de software: modelagem dos componentes de
software, utilizando a Linguagem de Modelagem Unificada (UML), seguindo a
abordagem das visões de casos de uso e lógica definidas pela mesma. Para
elaboração dos diagramas foi utilizado o plugin Omondo for UML do software
Eclipse;
3. Implementação: implementação dos componentes em linguagem Java,
utilizando-se o software Eclipse;
__________________________
1
As redes BSB e GBSB consistem de um conjunto de neurônios altamente
interligados que realimentam a si próprios, e suas unidades da rede BSB podem
assumir valores de ativação contínuos, dentro do intervalo [-1, 1].
27
4. Testes e análise de resultados: realização de testes seguindo aplicações
publicadas em artigos científicos.
1.6 ORGANIZAÇÃO DO TRABALHO
Inicialmente, no capítulo 2, apresenta-se o referencial teórico necessário à
realização deste trabalho. No capitulo 3, apresenta-se a modelagem UML dos
componentes de software desenvolvidos. No capitulo 4 serão vistos os experimentos
realizados a partir dos componentes desenvolvidos e discutidos os resultados. No
capítulo 5 são feitas as considerações finais do trabalho, abordando as dificuldades
encontradas, bem como as contribuições e idéias para trabalhos futuros.
28
2 SISTEMAS DINÂMICOS E REDES
NEURAIS ARTIFICIAIS
Neste capitulo não se pretende abordar profundamente a teoria de sistemas
dinâmicos, bem como de RNA, mas sim discutir as idéias que foram necessárias ao
desenvolvimento do trabalho. Uma pequena introdução aos sistemas dinâmicos,
apresentada na seção 2.1, se faz necessária para o entendimento das abordagens
utilizadas pelas RNA (seção 2.2) estudadas neste trabalho. Os modelos de RNA
utilizados no desenvolvimento deste serão discutidos na seção 2.3 e o aprendizado
na seção 2.4. Uma breve discussão sobre memória, mais especificamente memória
associativa, é feita na seção 2.5, como forma de introduzir a teoria que será
necessária para o entendimento dos experimentos realizados através dos
componentes de software desenvolvidos neste trabalho. Foi adotada a seguinte
convenção de nomenclatura no texto: vetores são representados por letras
minúsculas, em negrito e no estilo itálico, enquanto matrizes serão semelhantes com
diferenciação de letras maiúsculas. Variáveis não vetoriais são representadas por
letras minúsculas e no estilo itálico.
2.1 INTRODUÇÃO AOS SISTEMAS DINÂMICOS
Segundo Corrêa (2004), a teoria dos sistemas dinâmicos visa a compreensão, de
forma qualitativa ou geométrica, de soluções para sistemas de equações diferenciais
ou de diferenças. De acordo com o autor, procura-se estudar sistemas mais
complexos cujas soluções não são possíveis de se obterem usando técnicas
tradicionais de resolução.
Sistema dinâmico é um sistema cujo estado varia com o tempo, e o seu
comportamento é visto como um todo, e não dividido em partes separadas (HAYKIN,
2001). Os sistemas dinâmicos podem ser descritos por três propriedades:
29
•
Estado do sistema: é a representação do sistema em algum instante de
tempo. O símbolo x(t) = [x1(t),..., xn(t)] será usado denotar o estado de um
sistema no tempo t;
•
Espaço de Estados: é um conjunto de possíveis estados de um sistema;
•
Regra de Transição de Estados: regra utilizada para o cálculo de uma
mudança de estado em um dado instante de tempo. O símbolo T é usado
denotar a função de transição de estado que mapeia um estado inicial x(t),
após algum período de tempo h, em um novo estado x(t+h):
(
)
x ( t + h ) = T x (t ) , t , t + h .
(2.1)
O modelo mais utilizado para representar os sistemas dinâmicos é o modelo do
espaço de estados, onde se tem um conjunto de variáveis de estado cujos valores
contém informação suficiente para prever a evolução futura do sistema. Suponha
que x1(t),..., xn(t) representem as variáveis de estado de um sistema dinâmico nãolinear, onde t é a variável independente e N é a ordem do sistema. As variáveis de
estado são agrupadas em um vetor de estados x(t). A dinâmica de um sistema linear
ou não pode ser especificada como uma equação diferencial de primeira ordem
como:
( )
d (t )
x = F x (t ) ,
dt
(2.2)
onde a função F( . ) é, em geral, uma função não-linear de seu argumento.
2.1.1 Espaço de Estados
O espaço de estados é uma ferramenta importante para analisar a dinâmica de um
sistema não-linear. Em um instante de tempo t, o estado observado do sistema é
representado por um único ponto no espaço de estados N-dimensional. Mudanças
30
de estado do sistema com o tempo t são representadas como uma curva no espaço
de estados, como pode ser observado a seguir na Figura 2.1:
Figura 2.1 - Trajetória bidimensional de um sistema dinâmico .
FONTE - HAYKIN, 2001. p. 718.
Essa curva é chamada de trajetória ou órbita do sistema. Pode-se observar que a
velocidade instantânea da trajetória é representada pelo vetor tangente em t = t0,
mostrado através da linha tracejada na Figura 2.1.
2.1.2 Atratores
Os atratores são os estados que representam os estados de equilíbrio de um
sistema dinâmico, ou seja, as regiões do espaço de estados para as quais as órbitas
do sistema tendem a convergir. Cada atrator é envolvido por uma região chamada
bacia de atração. A fronteira entre duas bacias de atração é chamada de separatriz,
conforme mostra a Figura 2.2 a seguir:
31
Figura 2.2 - Bacia de atração e separatriz.
FONTE - ADAPTADO DE HAYKIN, 2001. p. 726.
Segundo Haykin (2001), o atrator pode ser um único ponto no espaço de estados,
que nesse caso é chamado de atrator pontual, ou ainda uma região na forma de
órbita periódica chamada ciclo limite. Um ciclo limite constitui a forma típica de um
comportamento oscilatório que surge quando um ponto de equilíbrio de um sistema
não-linear se torna instável.
2.1.3 Estabilidade
Um estado x* é um estado de equilíbrio ou ponto fixo quando, ao atingi-lo, o sistema
não se transforma e mantém as suas características organizacionais. O ponto de
equilíbrio do sistema, mostrado na Figura 2.2, ocorre quando F (x * ) = 0 , o vetor
velocidade
dx
é nulo no estado de equilíbrio x* e, portanto a função constante
dt
x ( t ) = x * é uma solução da equação
(
)
d (t )
x = F x (t ) .
dt
Conforme Cook2 apud Haykin (2001), no contexto de um sistema dinâmico nãolinear com estado de equilíbrio x*, as definições de estabilidade e convergência são
as seguintes:
__________________________
2
COOK, PA. Nonlinear Dynamical Systems. London: Prentice-Hall International, 1986.
32
Definição 1: Diz-se que o estado de equilíbrio x* é uniformemente estável se para
qualquer ε positivo existe um δ positivo tal que a condição
x (0 ) − x * < δ,
(2.3)
x ( t ) − x * < ε,
(2.4)
implica
para todo t > 0.
Esta definição afirma que a trajetória do sistema pode ser mantida na vizinhança do
estado de equilíbrio x*, se o estado inicial x(0) for suficientemente próximo a x*.
Definição 2: Diz-se que um estado de equilíbrio x* é convergente se existir um δ
positivo tal que a condição
x (0 ) − x * < δ,
(2.5)
implica
x ( t ) → x * quando
t → ∞.
(2.6)
Essa definição afirma que se o estado inicial x(0) for muito próximo do estado de
equilíbrio x*, então a trajetória descrita pelo vetor de estado x(t) se aproximará de x*
quando o tempo t se aproximar do infinito.
Definição 3: Diz-se que um estado de equilíbrio x* é assintoticamente estável se ele
for estável e convergente.
33
Definição 4: Diz-se que um estado de equilíbrio x* é assintoticamente estável ou
global e estaticamente estável se ele for estável e todas as trajetórias do sistema
convergirem para x* quando t se aproxima do infinito. Esta definição afirma que o
sistema irá entrar em equilíbrio em um estado estável para qualquer condição inicial
do mesmo.
A partir das definições anteriores, necessita-se de um método para determinação da
estabilidade do sistema. Segundo Haykin (2001), pode-se aplicar o método direto de
Lyapunov, que utiliza uma função escalar contínua do vetor de estado chamada
função de Lyapunov. Uma função escalar V(x) é chamada de uma função de
Lyapunov se satisfaz os dois teoremas a seguir:
Teorema 1: O estado de equilíbrio x* é estável se em uma pequena vizinhança de
x* existir uma função positivamente definida V(x) tal que a sua derivada em relação
ao tempo é negativamente semidefinida naquela região.
Teorema 2: O estado de equilíbrio x* é assintoticamente estável se em uma
pequena vizinhança de x* existir uma função positivamente definida V(x) tal que a
sua derivada em relação ao tempo é negativamente definida naquela região.
Como visto, os teoremas apresentados exigem que a função de Lyapunov V(x) seja
positivamente definida. Para tal, V(x) deve satisfazer as seguintes condições, dado
um espaço de estados S:
1. A função V(x) tem derivadas parciais continuas em relação aos elementos do
vetor de estado x;
2. V(x*) = 0;
3. V(x) > 0 se x ≠ x*.
Sabendo-se que V(x) é uma função de Lyapunov, segundo o Teorema 1 o estado de
equilíbrio x* é estável se
34
d
V ( x ) ≤ 0 para x ∈ U − x * ,
dt
(2.7)
onde U é uma pequena vizinhança em torno de x*. De acordo com o Teorema 2,
tem-se ainda que o estado de equilíbrio x* é assintoticamente estável se
d
V ( x ) < 0 para x ∈ U − x * .
dt
(2.8)
O problema no cálculo da estabilidade está em se encontrar a função de Lyapunov
V(x), tendo em vista que é uma questão de tentativa e erro e os teoremas
apresentados não fornecem base para obtê-la.
2.2 REDES NEURAIS ARTIFICIAIS
Segundo Haykin (2001), uma rede neural é um processador maciçamente
paralelamente distribuído constituído de unidades de processamento simples, que
têm a propensão natural para armazenar conhecimento experimental e torná-lo
disponível para uso.
As RNA foram desenvolvidas, originalmente, na década de 40, pelo neurofisiologista
McCulloch e pelo matemático Pitts da Universidade de Illinois. Eles fizeram uma
analogia entre células nervosas vivas e o processo eletrônico, simulando o
comportamento do neurônio natural, onde o neurônio possuía apenas uma saída,
que era obtida através de uma função de entrada da soma do valor de suas diversas
entradas. O conhecimento de uma RNA está codificado na estrutura da rede, onde
se destacam as conexões (sinapses) entre as unidades (neurônios) que a compõem.
Nestas redes artificiais obtidas por simulação em computadores, são associadas a
cada conexão um peso sináptico (valor numérico) que caracteriza a força da
conexão entre dois neurônios. O aprendizado em uma RNA é realizado por um
processo de adaptação dos seus pesos sinápticos.
A operação de uma unidade de processamento, proposta por McCulloch e Pitts pode
35
ser resumida da seguinte maneira:
• sinais são apresentados à entrada;
• cada sinal é multiplicado por um número, ou peso, que indica a sua influência
na saída da unidade;
• é feita a soma ponderada dos sinais que produz um nível de atividade;
• se este nível de atividade exceder um certo limiar (threshold) a unidade
produz uma determinada resposta de saída.
O modelo de McCullock e Pitts é ilustrado abaixo:
Figura 2.3 - Modelo de McCullock e Pitts.
Neste trabalho serão abordados os modelos Redes Neurais Artificiais Dinâmicas,
que se aproximam dos aspectos teóricos do projeto ARTÍFICE, apresentados na
seção 2.3 a seguir.
2.3 MODELOS DE REDES NEURAIS ARTIFICIAIS DINÂMICAS
As RNA dinâmicas, conforme afirma Gomes (2005), podem ser vistas como
sistemas dinâmicos não-lineares. Elas possuem uma propriedade muita importante
que é a estabilidade, que é vista como uma propriedade global de todo o sistema, e,
36
além disso, apresentam uma arquitetura simples, de uma única camada, sem
neurônios escondidos e que se aproximam da descrição dos grupos neurais da
TNGS de Edelman (GOMES, 2005).
As RNA podem ser de diferentes estruturas, de acordo com a função interna
utilizada para calcular o estado de ativação de seus neurônios. As principais
diferenças são relativas ao tipo de função de ativação utilizada (linear, sigmoidal,
gaussiana, etc). Outro elemento importante diz respeito à maneira como os
neurônios armazenam as informações, como exemplo as redes de Hopfield, onde as
saídas da rede são realimentadas na entrada para o aprendizado da mesma. Neste
trabalho serão detalhadas as redes dinamicamente orientadas de Hopfield e
Generalized-Brain-State-in-a-Box, além da rede Brain-State-in-a-Box, um modelo
particular da anterior.
2.3.1 Redes de Hopfield
A estrutura recorrente de Hopfield, descrita inicialmente por Hopfield (1982),
constituiu um grande avanço na fronteira do conhecimento em RNA (BRAGA;
CARVALHO; LUDERMIR, 2000). Nas RNA tradicionais, como ocorrem nos modelos
MLP, o fluxo de sinais é sempre em um único sentido, da camada de entrada para
camada de saída. Existem algumas arquiteturas que implementam o fluxo de dados
no sentido reverso, ou seja, a saída da rede é realimentada na entrada até alcançar
a estabilidade da rede. As redes de Hopfield implementam esta arquitetura, como
pode ser observado na Figura 2.4 a seguir:
37
Figura 2.4 - Rede de Hopfield.
FONTE - ALMEIDA, 2003. Unidade III, p. 2.
Segundo Braga, Carvalho e Ludermir (2000), essa arquitetura é um modelo matricial
não-linear recorrente, ou seja, as saídas estão ligadas as entrada por um atraso de
tempo. Essa recorrência implica ao modelo que a resposta da rede sempre depende
do seu estado no intervalo de tempo anterior. É importante notar que nessa
arquitetura não existe auto-realimentação, ou seja, a saída de um neurônio não é
aplicada em sua entrada.
A dinâmica de uma rede de Hopfield é definida através da seguinte equação:
⎛ n
⎞
x i( t +1 ) = φ⎜ ∑ Wij x i( t ) + θ j ⎟, j = 1,..., n ,
⎝ i =1
⎠
(2.9)
onde W é a matriz de pesos simétrica e Wii = 0, para todo i (não existem autorealimentações), xi(t) o estado do neurônio i no instante de tempo t, θ é o vetor limiar
de ativação dos neurônios, e a função de ativação φ(x) definida pela expressão:
⎧− 1, se x < 0
⎪
φ( x ) = ⎨ x
se x = 0
⎪+ 1, se x > 0
⎩
(2.10)
38
Como pode ser observada na equação 2.9, a evolução de uma rede de Hopfield é
feita de forma assíncrona, ou seja, as saídas dos neurônios são calculadas em
instantes de tempo distintos. A estabilidade da rede de Hopfield ocorre quando,
aplicada a equação 2.9 a um vetor de estado arbitrário x, tem-se x(t+1) = x(t).
As redes de Hopfield podem ser utilizadas para armazenamento e recuperação de
informações, onde a matriz de pesos pode ser obtida através da seguinte equação:
p
W = ∑ x i x it − pI n ,
(2.11)
i =1
onde p é o número de padrões (estados) a serem armazenados na rede, xi e xit os
vetores de estados e suas respectivas transpostas, e In Є Rnxn é a matriz identidade.
Conforme o trabalho original de Hopfield (Hopfield, 1982), associa-se, a cada estado
da rede, um valor de energia para os mesmos. Este valor decresce à medida que os
estados da rede são obtidos através da função de atualização. Para problemas
relativos à memória associativa, a função de energia da rede pode ser obtida por:
1⎛ n
E = − ⎜⎜ ∑
2 ⎝ i =1
n
∑W
j =1
ij
⎞
x i x j ⎟⎟ ,
⎠
(2.12)
onde n é o número de neurônios e Wij é o ij-ésimo elemento de W.
2.3.2 Redes Generalized-Brain-State-in-a-Box e Brain-State-in-a-Box
A arquitetura de estado-cerebral-em-uma-caixa (Brain-State-in-a-box) foi descrita por
Anderson (1995). Ela consiste de um conjunto de neurônios altamente interligados
que realimentam a si próprios, diferentemente das redes de Hopfield. As unidades
da rede BSB podem assumir valores de ativação contínuos, dentro do intervalo [-1,
1].
39
Dada uma matriz de pesos simétrica nxn, onde n é o número de neurônios da rede,
cujos maiores autovalores têm suas componentes reais positivas, e considerando
x(0) o vetor de estado inicial e β é uma constante positiva chamada de fator de
realimentação, a equação de atualização dos estados, que é feita de forma síncrona,
ou seja, as saídas dos neurônios são calculadas no mesmo instante de tempo, é
dada por (ANDERSON, 1995):
x ( t +1 ) = φ (x ( t ) + βWx ( t ) ).
⎧+ 1,
⎪
φ( θ ) = ⎨θ ,
⎪− 1,
⎩
(2.13)
se θ > 1
se − 1 ≤ θ ≤ 1
(2.14)
se θ < −1
A função de ativação φ(θ) opera sobre valores contínuos entre -1 e 1, conforme a
Figura 2.5(a). Desta maneira, a rede pode ser vista como um vetor de ativações
dentro de um hipercubo. Através das atualizações síncronas (ou seja, todas as
unidades têm suas ativações calculadas e só depois disso atualizadas) contínuas, o
vetor navega dentro deste hipercubo até atingir um de seus vértices (BRAZ, 1998),
como pode ser observado na Figura 2.5(b):
40
(-1, 1, 1)
(1, 1, 1)
T
(-1, 1, -1)
1
(1, 1, -1)
v
(-1, -1, 1)
(1, -1, 1)
-1
(-1, -1, -1)
(a)
(1, -1, -1)
(b)
Figura 2.5 - (a) Função de ativação da rede BSB, com valores contínuos entre -1 e 1 e truncados
neste limite, e (b) visualização da mudança dos estados de ativação da rede até o
equilíbio em um dos vértices do hipercubo formado pelos limites -1 e 1 das ativações.
FONTE - BRAZ, 1998. p. 20.
O algoritmo da rede BSB minimiza a função de energia definida pela equação:
E( x ) = −
β t
x Wx , para − 1 ≤ x i ≤ 1.
2
(2.15)
A matriz de pesos W deve satisfazer as seguintes condições:
•
A matriz de pesos W é simétrica:
W =W t.
•
(2.16)
A matriz de pesos W é dominantemente diagonal, isto é
W jj ≥ ∑ W ij
i≠ j
onde Wij é o ij-ésimo elemento de W.
para j =1, 2 ,K, n ,
(2.17)
41
•
A matriz de pesos W é positivamente semidefinida, isto é, em termos de
autovalores de W, tem-se
λmin ≥ 0 ,
(2.18)
onde λmin é o menor autovalor da matriz de pesos W.
Portanto, a função de energia E da rede BSB decresce com o aumento do número
de iterações, isto sempre que o estado x(t+1) for diferente de x(t). Os pontos mínimos
da função de energia E definem os estados de equilíbrio da rede, caracterizados por
x ( t +1 ) = x ( t ) .
(2.19)
Segundo Haykin (2001), um estado de equilíbrio x é estável, ou seja, para um vértice
do hipercubo unitário ser um atrator pontual fixo, deve haver uma bacia de atração
N(x) no hipercubo unitário tal que para todos os vetores de estado iniciais x(0) em
N(x) o modelo BSB converge para x. Além disso, para que todo vértice do hipercubo
unitário seja um atrator pontual fixo, a matriz de pesos W deve satisfazer a condição:
•
A matriz de pesos W é fortemente dominantemente diagonal, isto é
W jj ≥ ∑ Wij +α para j =1, 2 ,K , n ,
i≠ j
(2.20)
onde α é uma constante positiva.
As redes BSB são um caso particular do modelo Generalized-Brain-State-in-a-Box
(GBSB). Segundo Lillo et al. (1994), a dinâmica do modelo GBSB é definida por:
(
)
x ( t +1 ) = g (I n + βW )x ( t ) + βb ,
(2.21)
42
onde In Є Rnxn é a matriz identidade, b Є Rn é o vetor bias (limiar de ativação do
neurônio) da rede e a matriz de pesos W Є Rnxn não é necessariamente simétrica.
Pode-se notar que, no modelo BSB, a matriz de pesos W é simétrica e b=0.
A função de energia no modelo GBSB é definida por
E( x ) = −
1⎡n 2 n
⎢∑ x i + ∑
2 ⎣ i =1
i =1
⎤ n
x
x
W
β
+ ∑ βbi x i ,
∑
ij ⎥
i
j
j =1
⎦ i =1
n
(2.22)
onde x = [xi,...,xn] é um vetor de valor real, Wij é ij-ésimo elemento de W e bi é o iésimo elemento de b.
2.4 APRENDIZADO EM REDES NEURAIS ARTIFICIAIS
A propriedade que é de importância primordial para uma rede neural é a sua
habilidade de aprender a partir de seu ambiente e melhorar o seu desempenho
através da aprendizagem (HAYKIN, 2001). O aprendizado, ou projeto de uma RNA,
se dá através do processo de ajuste de seus pesos. Este processo ocorre quando a
rede neural é estimulada por seu ambiente, passando então por alterações em seus
parâmetros e respondendo de maneira diferente ao ambiente, já que ocorreram
modificações em sua estrutura interna.
2.4.1 Aprendizado Hebbiano
A regra de aprendizado de Hebb propõe que o peso de uma conexão sináptica deve
ser ajustado se houver sincronismo entre os “níveis de atividade” das entradas e
saídas (BRAGA; CARVALHO; LUDERMIR, 2000).
Segundo Barreto (2002), a lei de Hebb diz:
Ajuste a intensidade da conexão entre os neurônios A e B de
uma quantidade proporcional ao valor da ativação simultânea
43
dos dois neurônios. Se no entanto A tenta excitar B e não
consegue, a conexão é enfraquecida.
Quando dois neurônios de lados distintos da sinapse são ativados sincronicamente,
ocorrerá um fortalecimento desta sinapse. Entretanto, se os neurônios são ativados
assincronamente, a sinapse é enfraquecida ou mesmo eliminada.
A sinapse hebbiana possui algumas características como (BRAGA; CARVALHO;
LUDERMIR, 2000):
a) Mecanismo interativo: qualquer alteração em uma sinapse hebbiana depende
de ambos os lados da sinapse, isto é, a interação entre as atividades pré e
pós-sinápticas;
b) Mecanismo Local: a sinapse hebbiana é uma transmissão com sinais
contínuos, produzindo modificações locais;
c) Mecanismo dependente do tempo: qualquer alteração na sinapse hebbiana
depende diretamente do momento em que ocorrem as atividades pré e póssinapticas.
d) Mecanismo correlacional ou conjuncional: as mudanças em uma sinapse
hebbiana podem ser causadas através das correlações entre as atividades
pré e pós-sinápticas e, ainda, a ocorrência conjunta destas atividades também
ocasionam alterações nesta sinapse.
A expressão matemática que representa a lei de Hebb é:
ΔW ij = nx i o j ,
onde,
(2.23)
44
•
Wij = intensidade da conexão entre os neurônios i e j;
•
∆Wij = acréscimo da intensidade da conexão entre os neurônios i e j;
•
n = constante positiva que define a taxa de aprendizado;
•
xi = estado de ativação do neurônio i;
•
oj = saída do neurônio j.
2.5 MEMÓRIA
A memória nos seres vivos se dá através da interação dos mesmos com o meio
ambiente, atuando como ponto de partida para definir o comportamento futuro dos
organismos. Para a memória começar a ser utilizada, um padrão de entrada deve
ser armazenado através do processo de aprendizagem. Este padrão armazenado
pode então ser recuperado para ser utilizado pelo organismo, sempre que
necessário. Existem dois tipos de memória segundo o tempo de retenção (HAYKIN,
2001):
a) Memória de curto prazo: conhecimento armazenado por um curto intervalo de
tempo, representando o estado atual do ambiente;
b) Memória de longo prazo: conhecimento armazenado por um longo, ou
permanente, espaço de tempo.
Segundo Haykin (2001), existem algumas características relevantes para a memória:
•
A memória é distribuída, ou seja, as atividades de diferentes neurônios
ocorrem simultaneamente ou quase simultâneas, dependendo de estímulos
internos e externos, transformando padrões de entrada em outros padrões de
saída;
45
•
Os padrões de estímulo, também chamados de chave, bem como os padrões
de resposta, armazenados, de uma memória associativa, tratam-se de
vetores de dados;
•
Uma informação é armazenada na memória através de atividades que
ocorrem nos neurônios;
•
A informação contida em um estímulo possui o endereço de armazenamento
e recuperação desta;
•
A memória possui resistência a ruídos e a falhas;
•
Os padrões armazenados podem interagir entre si, já que a memória não é
suficientemente grande para isolá-los entre si, podendo, portanto, ocorrer
erros no processo de recuperação das informações.
2.5.1 Associação de Padrões
Uma das tarefas básicas do processo de aprendizagem é a associação de padrões.
Uma memória associativa é uma memória distribuída inspirada no cérebro, que
aprende por associações (HAYKIN, 2001). O processo de associação é descrito por:
x → y.
(2.24)
Onde x representa o padrão de entrada da rede e y o padrão armazenado. Logo,
dada um padrão de entrada x, a rede tenta associá-lo com o padrão armazenado y e
tenta recuperá-lo.
Um exemplo prático de aplicação de memórias associativas pode ser observado em
(COLLEN apud CORREA, 2004). Suponha um modelo de Hopfield, trabalhando
como uma memória associativa, para armazenamento de imagens binárias. O
46
sistema possui n = 841 neurônios e m = 10 padrões armazenados, apresentados na
Figura 2.6:
Figura 2.6 - Exemplo de padrões armazenados.
FONTE – COOLEN3 apud CORRÊA, 2004. p. 49.
Conforme o autor mostra, apresentando-se como condição inicial do sistema uma
versão corrompida com ruído do 10 padrão da Figura 2.6, a evolução do estado da
rede produz a recuperação do padrão original em quatro iterações (Figura 2.7).
Figura 2.7 - Exemplo de recuperação de padrão com ruído.
FONTE – COOLEN3 apud CORRÊA, 2004. p. 49.
Segundo Lillo et al. (1994), as características de uma RNA para memórias
associativas são:
•
Cada padrão é armazenado como um ponto de equilíbrio assintoticamente
estável no sistema;
•
O número de pontos de equilíbrio assintoticamente estáveis da rede que não
correspondem aos padrões armazenados (estados espúrios) é mínimo;
__________________________
3
COOLEN, A. C. C. Concepts for neural networks – a survey. In: Landau, L; Taylor, J. A beginner’s
guide to the mathematics of neural networks. Springer, 1998, p. 13-70.
47
•
Uma estrutura de interconexão não-simétrica facilita a implementação das
RNA;
•
A habilidade em controlar a bacia de atração do ponto de equilíbrio
corresponde a cada padrão armazenado;
•
Capacidade de adicionar padrões (learning) para serem armazenados como
pontos de equilíbrio assintoticamente estáveis ao conjunto padrões
existentes, sem afetar o equilíbrio existente na rede;
•
Capacidade de remover padrões (forgetting) do conjunto padrões existentes
armazenados como pontos de equilíbrio assintoticamente estáveis, sem afetar
o equilíbrio existente na rede.
De acordo com Hui e Zak (1992), o modelo BSB pode ser usado para
implementação de memórias associativas, onde cada padrão armazenado é um
ponto de equilíbrio assintoticamente estável, conforme equação 2.13. No entanto,
existem algumas dificuldades na implementação de memórias associativas
utilizando-se redes neurais:
1. Controlar a extensão das bacias de atração de cada padrão armazenado;
2. Minimizar o número de pontos de equilíbrio assintoticamente estáveis na rede
que não foram armazenados com o vetor de padrões. Isto significa diminuir o
número de padrões espúrios, ou seja, padrões não apresentados durante o
aprendizado, mas que, uma vez atingidos, mostram-se estáveis. Isto ocorre
em função do grau de dependência entre os padrões apresentados com
outros padrões existentes (BRAZ, 1998).
A utilização de uma RNA para armazenamento de padrões, ou seja, implementação
de uma memória associativa, pode ser feita através do aprendizado Hebbiano que,
nesse caso, é realizado da seguinte forma:
48
p
W = ∑ x i x it ,
(2.25)
i =1
onde W é a matriz de pesos, p é o número de padrões que se deseja armazenar na
memória e xi Є Rnx1 o padrão a ser armazenado. Uma outra forma de aprendizado é:
p
W = ∑ x i x iτ ,
(2.26)
i =1
onde x iτ é a pseudo-inversa do vetor xi , dada por:
x τ = ( x t x ) −1 x t .
(2.27)
Segundo Lillo et al. (1994), a matriz W para memórias associativas, utilizando-se
redes GBSB, pode ser obtida através da equação:
W = ( DV − B )V τ + Λ( I n − VV τ ),
(2.28)
onde V = [v1, …, vr] Є Rnxr é a matriz de r padrões a serem armazenados contendo n
neurônios cada, V τ é a pseudo-inversa de V, B = [b, ...,b] Є Rnxr é a matriz que
consiste do vetor coluna b (bias) repetido r vezes, In Є Rnxn é a matriz identidade, D
Є Rnxn é uma matriz fortemente dominante diagonal e Λ Є Rnxn. Para a escolha de D,
b e Λ, deve-se:
•
Selecionar uma matriz fortemente dominante diagonal D Є Rnxn;
•
Selecionar os componentes do vetor b da seguinte forma:
n
Dii < ∑ Dij + bi , i = 1,K , n ,
j =1
j ≠i
e
(2.29)
49
n
b = ∑ ε i v i , ε i > 0 , i = 1,K , n.
(2.30)
i =1
•
Selecionar os componentes da matriz Λ segundo:
n
Λii < −∑ Λij − bi , i = 1,K , n.
(2.31)
j =1
j ≠i
As demonstrações das equações acima relacionadas podem ser obtidas em (Lillo et
al.,1994).
Nas seções 2.5.2 e 2.5.3 serão apresentadas, em mais detalhes, duas
características das RNA para memórias associativas: learning e forgetting. As
demonstrações dos teoremas a serem apresentados nestas seções não são
abordadas nesse trabalho, tendo em vista que o objetivo desse é apenas apresentar
as técnicas e desenvolver os componentes capazes de implementar as mesmas.
Maiores detalhes podem ser encontrados em Zak, Lillo e Hui (1996). Exemplos de
aplicações das técnicas serão apresentados no Capítulo 4, com a utilização dos
componentes desenvolvidos.
2.5.2 Learning
Learning é a capacidade de uma RNA de adicionar novos padrões para serem
armazenados como pontos de equilíbrio assintoticamente estáveis ao conjunto
padrões existentes. Este processo de aprendizado deve ser possível sem afetar o
equilíbrio do sistema como um todo. Zak, Lillo e Hui (1996) propõem um aprendizado
iterativo, onde o teorema que será descrito a seguir permite iterativamente computar
a pseudo-inversa de uma matriz.
Teorema 3: Dado U Є Rnx(r+1) uma matriz particionada retirando-se sua última coluna
tal que
50
U = [V M y ],
(2.32)
k = V τ y.
(2.33)
u = (I n − VV τ )y .
(2.34)
e
⎧u τ
⎪
z = ⎨ k tV τ
⎪
⎩1 + k t k
se u i ≠ 0 para todo i .
se u i = 0 para todo i .
(2.35)
onde V τ é a pseudo-inversa de V .
Então,
⎡V τ − kz ⎤
Uτ = ⎢
⎥.
⎣ z
⎦
(2.36)
Aprender novos padrões requer atualizar a matriz de pesos W. Para isto, é
necessário aumentar as matrizes V e B, e recalcular a pseudo-inversa de V, através
do teorema acima. Esse procedimento garante que novos padrões sejam
armazenados como pontos de equilíbrio assintoticamente estáveis.
2.5.3 Forgetting
Forgetting é a capacidade que uma RNA possui de remover padrões do conjunto
padrões existentes armazenados como pontos de equilíbrio assintoticamente
estáveis, sem afetar o equilíbrio existente na rede. Zak, Lillo e Hui (1996) discutem
um método para atualizar a matriz de pesos, onde se pretende remover padrões
específicos da memória. Este método é descrito pelo teorema a seguir:
Teorema 4: Dado U Є Rnx(r+1) uma matriz particionada retirando-se sua última coluna
tal que:
51
U = [V M y ],
(2.37)
e dada a pseudo-inversa U Є Rnx(r+1) uma matriz particionada retirando-se sua última
coluna tal que:
⎡S ⎤
Uτ = ⎢ ⎥.
⎣z ⎦
(2.38)
Então,
yz
⎧
⎪S + S 1 − zy
V =⎨
⎪S − Sz τ z
⎩
τ
se zy ≠ 1
(2.39)
se zy = 1.
onde V τ é a pseudo-inversa de V .
2.6 REDES NEURAIS ARTIFICIAIS ACOPLADAS
Esta seção visa apresentar informações relativas ao acoplamento de RNA,
abordando alguns autores que tratam desse assunto e desenvolvem trabalhos na
área.
2.6.1 Redes de Redes Neurais Artificiais
A arquitetura Network of Networks (NoN), que será apresentada aqui como Redes
de Redes, foi desenvolvida por Sutton, Anderson e colaboradores consiste em um
modelo baseado em sistemas distribuídos aninhados (GUAN; ANDERSON;
SUTTON, 1997). Nesse modelo, supõe-se que o elemento computacional básico,
como no cérebro, não é o neurônio, mas sim uma pequena rede de neurônios
(ANDERSON, 2003 b), chamada de módulo. Dito de outro modo, a arquitetura de
redes de redes é baseada na suposição de que as unidades elementares
computacionais no sistema nervoso não são unidades simples (neurônios artificiais)
52
como nas tradicionais RNA, mas módulos compostos de muitas unidades
interconectadas (ANDERSON, 2003 a).
O modelo de redes de redes tem sido
testado amplamente em simulação computacional, mas é muito difícil testar
experimentalmente porque ele trabalha em uma escala quase inacessível da
organização do sistema nervoso (ANDERSON, 2003 a). Esta pequena rede,
composta entre 103 e 104 neurônios, são sistemas não-lineares dinâmicos e seu
comportamento é determinado pelos seus estados atratores. Os atratores são os
estados que representam os estados de equilíbrio de um sistema dinâmico. Um
estado em um módulo interfere no estado em um módulo adjacente devido à
influência dos pesos das atividades nos estados atratores. Os módulos têm uma
região linear, onde entradas de diferentes módulos são adicionadas linearmente
formando uma superposição de estados atratores, e uma região não-linear, onde o
módulo escolhe um estado atrator do conjunto de atratores (ANDERSON, 2003 a). A
soma dos potenciais atratores iniciais formam um único atrator final, como mostra a
Figura 2.8:
Figura 2.8 - Módulo da Rede de Redes.
FONTE – ADAPTADO DE ANDERSON, 2003 b. p. 2.
As interações modulares básicas são similares às das unidades da RNA, exceto os
pesos escalares das conexões que são substituídos pelos estados da matriz de
interação. Devido aos atratores serem derivados de respostas dos neurônios, é
possível unir o processamento básico do neurônio com atratores dinâmicos. Na
arquitetura de Redes de Redes, os neurônios, também chamados de unidades
computacionais, dão forma às redes distribuídas, onde elas mesmas se
interconectam para formar redes maiores. Os módulos são interconectados com
53
outros módulos, repetidamente em uma estrutura que pode ser regular, como mostra
a Figura 2.9:
Figura 2.9 - Arquitetura Modular de Rede de Redes.
FONTE - ANDERSON, 2003 a. p.180.
Uma melhor representação da arquitetura NoN pode ser observada na Figura 2.10,
que mostra sete redes com conexões representativas entre os vizinhos mais
próximos:
Figura 2.10 - Arquitetura Redes de Redes para sete redes.
FONTE – GUAN; ANDERSON; SUTTON, 1997. p.171.
54
Cada neurônio da rede mantém sua individualidade, enquanto as redes se
aglomeram para dar forma a redes sucessivamente maiores. Os neurônios
comportam-se como elementos em um vetor, em contraste a redes multiníveis, que
mapeiam a atividade da rede em um escalar e então avaliam a média dos escalares
para mapear o próximo nível da rede, e assim por diante.
A formação dos grupos e dos níveis entre neurônios é baseada em suas
interconexões. Os neurônios são entidades heterogêneas com complexas conexões
e propriedades computacionais. Em geral, os neurônios dentro de um grupo são
conectados
mais
densamente
que
neurônios
entre
diferentes
grupos.
A
conectividade total entre os neurônios é escassa, mas a conectividade funcional
entre grupos possui uma dinâmica rica, devido à atividade temporária de correlação
entre os neurônios (GUAN; ANDERSON; SUTTON, 1997).
A arquitetura de Redes de Redes apresentada aqui pode colaborar na construção de
aplicações cujo objetivo seja implementação e interconexão de RNA.
2.6.2 Arquitetura de RNA Dinâmicas Acopladas
Um modelo para representação de RNA dinâmicas acopladas foi proposta por
Gomes (2005). Essa arquitetura, baseada na Teoria de Seleção dos Grupos Neurais
(do inglês, TNGS) apresentada na seção 1.2, propõe o acoplamento de redes
GBSB, onde cada RNA individual representa um grupo neuronal (memória de
primeiro nível) e a rede acoplada como um todo representaria um agrupamento de
grupos neuronais, ou seja, um mapa local, produzindo um segundo nível de
memória. Os níveis hierárquicos de memória podem ir surgindo com o acoplamento
de novas RNA, onde cada parte irá emergir novos comportamentos (GOMES, 2005).
Segundo Gomes (2005), o modelo GBSB pode ser acoplado, permitindo uma coevolução do sistema como um todo, como pode ser visto na Figura 2.11:
55
Figura 2.11 - Rede GBSB acoplada.
FONTE - GOMES, 2005. p. 66.
O acoplamento forma uma estrutura onde as redes não apresentam entrada e saída,
e os resultados da rede como um todo são estados dos sistemas individuais, ao
longo da evolução do sistema dinâmico. Um exemplo de modelo GBSB acoplado,
apresentado inicialmente por Gomes (2005), pode ser visto na Figura 2.12:
Figura 2.12 - Esquema de redes.
FONTE - GOMES, 2005. p. 67.
56
Nesse exemplo, os grupos neurais A, B e C seriam as redes GBSB individuais.
Essas redes são interligadas através de uma matriz de pesos Wcor, formando um
mapa local.
O modelo GBSB acoplado é uma rede neural não-linear, autoassociativa, de
minimização de energia que pode ser definido pelas equações (GOMES, 2005):
nr
⎛
⎞
x a( t +1 ) = φ⎜⎜ (I n + βaW a )x a( t ) + βa ba + γ ∑ W cor ( a ,b ) x b( t ) ⎟⎟ ,
b =1 ,b ≠ a
⎝
⎠
(2.40)
sendo que I Є Rnx1 é a matriz identidade, βa é uma constante positiva chamada de
fator de realimentação das redes individuais, xa(t) Є Rnx1 é o vetor que representa o
estado do modelo no tempo t, Wa Є Rnxn é a matriz de pesos das redes individuais,
ba Є Rnx1 é o vetor que representa o bias das redes individuais, γ representa a força
das sinapses entre os grupos neurais, nr é o número de redes GBSB individuais,
Wcor(a,b) Є Rnxn é a matriz de pesos de correlação entre as redes acopladas e xb(t) Є
Rnx1 é o vetor que representa o estado do modelo no tempo t da rede acoplada. A
função de ativação φ é definida por:
(
x a( t +1 ) = φ y a( t )
(
φ y a( t )
)
)
⎧+ 1, se y a( t ) > +1
⎪
= ⎨y a( t ) , se − 1 ≤ y a( t ) ≤ 1
⎪
(t )
⎩− 1, se y a ≤ −1
(2.41)
(2.42)
O modelo GBSB acoplado apresentado na equação 2.40 é analisado utilizando-se a
seguinte função de energia (GOMES, 2005):
na
na nb
nr
⎤ na
1 ⎡ na
E = − ⎢∑x(2i ,a) + ∑β(i ,a)W(i ,a)( j ,a)x(i ,a)x( j ,a) ⎥ −∑β(i ,a)b(i ,a)x(i ,a) − ∑ ∑ ∑γ(i ,a)( j ,b)Wcorr(i ,a)( j ,b)x(i ,a)x( j ,b) , (2.43)
2 ⎣i ,j =1
i , j =1
b=1, b≠a i =1 j =1
⎦ i =1
57
sendo que nr é o número de redes GBSB individuais, na é o número de neurônios
existentes em cada uma das redes GBSB, nq é o número de neurônios de uma rede
b interconectados a uma rede a, β(i,a) é uma constante positiva chamada de fator de
realimentação de cada neurônio da rede individual, x(i,a) é o estado dos neurônios de
cada uma das redes ou grupo no tempo t, W(i,a)(j,a) é o peso sináptico existente entre
os neurônios da própria rede, b(i,a) é o bias de cada um dos neurônios pertencentes
a uma determinada rede, Wcorr(i,a)(j,b) é o peso de correlação existente entre o
neurônio i de uma rede a e o neurônio i de uma rede b, x(j,b) é o estado de cada um
dos neurônios interconectados das outras redes no instante t e γ(i,a)(j,b) representa a
força ou densidade das sinapses entre as redes.
O teorema seguinte, apresentado e demonstrado por Gomes (2005), mostra que a
função de energia, indicada em 2.43, é minimizada, e que o algoritmo generalizado
do GBSB acoplado convergirá a um conjunto de pontos de equilíbrio do sistema.
Teorema 5: Considere um algoritmo GBSB da forma de 2.40, com a função de
energia E(xi) da forma 2.43. Considere λmin ser o menor autovalor de W. Se qualquer
λ min ≥ 0 ou β <
(
)
1
λ min
(
, onde λmin é o menor autovalor negativo de W, então:
)
1. E x i( t +1 ) < E x i( t ) para todo k tal que x i( t +1 ) ≠ x i( t ) ;
2. Todas as trajetórias do algoritmo GBSB convergem ao maior conjunto de
pontos de equilíbrio do sistema.
Com relação à estabilidade do modelo GBSB acoplado, toma-se como foi
apresentado em (ZAK; LILLO; HUI, 1996) e demonstrado em (LILLO et al., 1994):
Dado que
L(x ) = (I n + βW )x + βb ,
(2.44)
58
e
T ( x ) = g (L( x )) ,
(2.45)
onde L(x) é a equação para cálculo dos estados da rede GBSB e g a função de
ativação conforme apresentada em 2.14. Um vértice v é um ponto de equilíbrio se
(L(v ))i v i
≥ 1,
i = 1, 2 ,K , n.
(2.46)
Que é equivalente a dizer que o vértice v não é um ponto de equilíbrio se
(L(v ))i v i
< 1,
para a lg um i = 1, 2 ,K , n.
(2.47)
> 1,
(2.48)
E é assintoticamente estável se
(L(v ))i v i
i = 1, 2 ,K , n.
O mesmo agora pode ser aplicado para equação 2.40 do modelo GBSB acoplado. A
demonstração é apresentada em Gomes (2005).
O acoplamento da arquitetura de Hopfield, similar ao modelo GBSB acoplado, é
proposto neste trabalho, onde a dinâmica das redes é dada por:
nr
⎛ n
⎞
x a( t +1 ) = net ⎜⎜ ∑ W ij x (( it,)a ) + θ( j ,a ) + γ ∑ W cor ( i ,a )( j ,b ) x (( tj ,)b ) ⎟⎟, j = 1,..., n , (2.49)
b =1, b ≠ a
⎝ i =1
⎠
onde xa(t) Є Rnx1 é o vetor que representa o estado do neurônio do modelo no tempo
t, W Є Rnxn é a matriz de pesos das redes individuais, θ é o vetor de limiar de
ativação dos neurônios, γ representa a força das sinapses entre os grupos neurais,
Wcor(a,b) Є Rnxn é a matriz de pesos de correlação entre as redes acopladas e xb(t) Є
Rnx1 é o vetor que representa o estado do neurônio do modelo no tempo t da rede
acoplada. A função net(x) é similar à apresentada em 2.10.
59
2.7 CONSIDERAÇÕES FINAIS
Neste capítulo foi apresentada uma breve descrição dos sistemas dinâmicos, como
forma de introduzir a teoria das RNA dinâmicas vistas. O estudo sobre memórias
associativas serviu como base para o desenvolvimento dos componentes propostos
neste, onde foi definido que será a área de aplicação dos mesmos. Além disso, não
são vastos os trabalhos sobre acoplamento de RNA, mas o que foi descrito até o
momento foi suficiente para o desenvolvimento das idéias e implementação dos
componentes.
60
3 COMPONENTES DE SOFTWARE PARA
GERAÇÃO DE REDES NEURAIS
ARTIFICIAIS ACOPLADAS
Neste capítulo serão apresentados os componentes de software desenvolvidos para
treinamento, execução, teste e acoplamento de RNA. Os componentes de
acoplamento foram desenvolvidos baseados nas teorias da TNGS, seguindo-se as
idéias das Redes de Redes apresentadas na seção 2.6.1 e implementada
arquitetura de RNA dinâmicas acopladas vista na seção 2.6.2.
Na seção 3.1 apresenta-se uma breve introdução ao capítulo, mostrando as
características dos componentes modelados. A modelagem é vista na seção 3.2,
onde são abordadas algumas visões4 da UML. Por fim, na seção 3.3 são feitas as
considerações finais.
3.1 INTRODUÇÃO
O estudo apresentado até o presente momento serviu como base para a
implementação dos componentes de software a serem mostrados nesse capitulo. Os
componentes desenvolvidos auxiliam na construção de aplicações de memória
associativa, foco tomado no trabalho. Esses componentes apresentam as seguintes
funções:
•
Projeto (aprendizado) de RNA para funcionamento como memórias
associativas, conforme as equações 2.25, 2.26 e 2.28;
•
Execução de redes de Hopfield, BSB e GBSB, conforme as dinâmicas
apresentadas pelas equações 2.9, 2.13 e 2.21, respectivamente;
__________________________
4
As visões da UML são representadas por diagramas que mostram a estática e a dinâmica de
um sistema computacional.
61
•
Cálculo da função de energia para os estados das redes;
•
Análise de convergência de redes de Hopfield, BSB e GBSB. Neste
componente, dado um número n de neurônios e uma matriz de padrões
armazenados, é realizada uma análise de convergência para um dos padrões
existentes na memória, executando-se a rede com todos os possíveis estados
iniciais da mesma;
•
Learning, como apresentado na seção 2.5.2;
•
Forgetting, como apresentado na seção 2.5.3;
•
Acoplamento de redes Hopfield, BSB e GBSB, como apresentado na seção
2.6.2.
As características básicas dos componentes desenvolvidos são:
•
Interface de grande usabilidade devido à facilidade de interação com o
usuário proporcionada pela mesma;
•
Integração de diversas funções de RNA e RNA acopladas em uma única
ferramenta;
•
Leitura e geração de arquivos de matrizes do tipo texto, que podem ser
processados por qualquer editor de texto;
•
Os componentes de análise podem ser úteis para obter dados estatísticos de
convergência da rede que atuam como fonte para estudo das bacias de
atração;
•
Compatibilidade com a arquitetura ARTÍFICE versão 0.6.0.
62
3.2 MODELAGEM DOS COMPONENTES
Nessa seção será mostrada a modelagem UML do projeto ARTÍFICE, apresentandose as classes que foram estendidas neste trabalho na seção 3.2.1. Em seguida, na
seção 3.2.2, será apresentada a visão de use-case dos componentes de software
desenvolvidos.
3.2.1 Visão Lógica do Projeto ARTÍFICE
A visão lógica descreve como a funcionalidade do sistema é implementada. Nessa
visão, pretende-se mostrar o sistema internamente, especificando a estrutura
estática do mesmo (classes e relacionamentos), através do diagrama de classes.
Além disso, a visão lógica mostra as colaborações dinâmicas quando os objetos
enviam mensagens uns para os outros para realizarem as funções do sistema,
através dos diagramas de interação.
Em uma visão geral do projeto ARTÍFICE proposta por Pires (2005), a arquitetura foi
dividida, logicamente, em pacotes. O pacote onde a arquitetura se encontra é
denominado
br.cefetmg.lsi.artifice.
Nesse
pacote
encontram-se
as
classes,
interfaces e outros pacotes relativos à arquitetura. O pacote core, interno ao pacote
artifice, compreende o núcleo da arquitetura. Nele estão inseridas as classes CSSA,
ArtificialWorld e os pacotes que se fizeram necessário para auxiliar a organização. O
ASCS foi dividido em pacotes de modo a agrupar suas partes relacionadas. Assim,
foram constituídos pacotes para cada sistema interno do agente: sistema nervoso,
sistema periférico e sistema auxiliar. Uma apresentação simplificada da arquitetura
pode ser observada na Figura 3.1. Maiores detalhes podem ser obtidos em (PIRES,
2005) e o modelo geral no Anexo A.
63
Figura 3.1 – Organização em pacotes do projeto ARTÍFICE-0.6.0.
A classe CSSA constitui o agente de software cognitivo situado da arquitetura. O
sistema nervoso do agente é composto de vários componentes representados pelas
classes do pacote cssaNervousSystem. O sistema periférico representa as partes do
ASCS que estarão em contato direto com o meio, ou seja, as partes que o
possibilitarão estimular o ambiente e aquelas que poderão ser estimuladas pelo
meio. Esse sistema é representado pelas classes do pacote cssaPeripheralSystem.
O sistema auxiliar (pacote cssaAuxiliarySystem) possuirá componentes que
auxiliarão a evolução da estrutura do agente. A hierarquia de estímulos foi
organizada em um pacote denominado stimuli, que permite a troca de estímulos
tanto entre os componentes do agente quanto entre este e o ambiente.
O foco deste trabalho está na implementação de um tipo de estrutura, as RNA, que
compõe
o
sistema
nervoso.
Nesse
contexto,
foram
adicionados
ao
cssaNervousSystem os pacotes annStructure que contém as classes para criação,
aprendizado e evolução das RNA, e annTools
que representam as classes
auxiliares dessas estruturas, conforme mostra a Figura 3.2:
64
Figura 3.2 – Pacotes que foram acrescidos ao pacote cssaNervousSystem.
Cada componente do sistema nervoso pode ser composto de estruturas (Structure),
que por sua vez possuem uma dinâmica de evolução de estados (EvolutionLaws),
conforme mostra a Figura 3.3 (os detalhes das demais classes podem ser obtidos
em (PIRES, 2005)):
Figura 3.3 - Componentes do sistema nervoso.
FONTE – PIRES, 2005. p. 48.
65
O pacote annStructure é detalhado na Figura 3.4:
Figura 3.4 - Pacote annStructure.
66
As estruturas do sistema nervoso do projeto ARTÍFICE foram estendidas com a
classe ArtificialNeuralNetwork. Uma RNA pode ser projetada (ANNDesign) de acordo
com as regras de Hebb (HopfieldHebbianDesign e GBSBHebbianDesign), pseudoinversa (PseudoInverseDesign) ou Lillo (LilloDesign). Ao ser projetada, segundo
aplicações de memória associativa, padrões podem ser armazenados (Memory).
Padrões armazenados na memória podem ser esquecidos (Forgetting) ou novos
podem ser adicionados (Learning). A evolução das estruturas (EvolutionLaws) foi
estendida
para
RNA
e
RNA
acopladas
em
HopfieldEvolutionLaws
e
GBSBEvolutionLaws. Através da classe Stability é possível verificar se um estado,
dentro da evolução de uma estrutura, é estável, instável ou espúrio.
O pacote annTools mostrado na Figura 3.3 é detalhado na Figura 3.5 a seguir:
Figura 3.5 – Pacote annTools.
O pacote annTools contém classes auxiliares que podem ser utilizadas pelas
estruturas de RNA. Esse pacote foi subdividido em cinco outros pacotes:
1. convergenceAnalysis: pacote de classes responsáveis pela análise de
evolução das RNA;
67
2. energyAnalysis: pacote de classes responsáveis pela análise da função de
energia dos estados das RNA;
3. annSetup: pacote de classes responsáveis pela configuração dos parâmetros
da rede;
4. textFileHandler: pacote de classes responsáveis pela gravação e leitura de
arquivos no formato txt;
5. mathematicalTools: pacote de classes responsáveis pela realização de
operações matemáticas.
3.2.2 Visão Use-Case
A visão use-case, ou visão de casos de uso, descreve a funcionalidade do sistema
desempenhada pelos atores externos ao sistema, ou seja, os usuários. A Figura 3.6,
a seguir, mostra o diagrama de casos de uso dos componentes desenvolvidos a
partir dos requisitos levantados:
Figura 3.6 - Diagrama de Casos de Uso.
68
As descrições dos casos de uso são feitas nos quadros a seguir, baseadas em Neto,
Barcelos e Spínola (2004). Essas descrições mostram como ocorrem as interações
entre o usuário e os componentes desenvolvidos.
O primeiro caso de uso apresentado é o ANN Design, responsável por executar o
projeto (aprendizado) da RNA, onde o usuário deve preencher os campos
necessários e selecionar o tipo de projeto desejado. A rede é então projetada e
padrões são armazenados à memória. A descrição do caso de uso ANN Design
pode ser vista no Quadro 3.1:
Nome do Caso de Uso
Descrição
Ator Envolvido
Interação entre Ator e Sistema
Exceções
Propriedades dos Atributos
ANN Design
Caso de uso responsável pelo treinamento da rede.
Usuário
Ator
Sistema
O caso de uso é iniciado quando o usuário clica no menu
Design, item Neural Network.
O sistema apresenta uma tela com os campos
Number of Neurons, Number of Patterns,
Design Type, Patterns, W, D, B, Lambda e
a tabela Patterns para preenchimento
pelo usuário.
O usuário preenche os campos e clica no botão Design.
O sistema valida as informações preenchidas
pelo usuário. (EX01)
O sistema realiza o treinamento e envia uma
mensagem para o usuário notificando a
conclusão do processo, encerrando o caso
de uso.
Caso o sistema não consiga ler os arquivos texto, é enviada uma mensagem ao usuário
EX01
notificando o erro.
Atributo
Domínio
Acesso
neuronsNumber
int
public
patternsNumber
int
public
trainningType
int
public
fileNameP
String
public
fileNameW
String
public
fileNameD
String
public
fileNameB
String
public
fileNameL
String
public
X
Matrix
public
W
Matrix
public
D
Matrix
public
B
Matrix
public
Lambda
Matrix
public
Quadro 3.1 - Descrição do caso de uso ANN Design.
69
O caso de uso Execute ANN implementa a dinâmica, ou seja, a execução (cálculo
dos estados ou evolução do sistema) das redes de Hopfield, BSB e GBSB. A partir
de um estado inicial, definido pelo usuário, a dinâmica é aplicada e o estado final da
rede é verificado através do caso de uso Check State, para definir se o mesmo é
estável, instável ou espúrio. A descrição desse caso de uso para a arquitetura de
Hopfield é mostrada no Quadro 3.2, e GBSB (e conseqüentemente BSB) é
apresentada no Quadro 3.3.
Nome do Caso de Uso
Descrição
Ator Envolvido
Interação entre Ator e Sistema
Exceções
Propriedades dos Atributos
Execute ANN - Hopfield
Caso de uso responsável pela execução de uma rede de Hopfield.
Usuário
Ator
Sistema
O caso de uso é iniciado quando o usuário clica no menu
Neural Network, Hopfield, Basic Test.
O sistema apresenta uma tela com os campos
Number of Neurons, Number of Patterns, Beta,
Iterations, Matrix W, Matrix Pattern, Initial
State e Teta para preenchimento pelo usuário.
O usuário preenche os campos e clica no botão Execute.
O sistema valida as informações preenchidas
pelo usuário. (EX01)
O sistema realiza o cálculo dos estados e
apresenta as informações resultantes na tela,
encerrando o caso de uso.
Caso o sistema não consiga ler os arquivos texto, é enviada uma mensagem ao usuário
EX01
notificando o erro.
Atributo
Domínio
Acesso
neuronsNumber
int
public
patternsNumber
int
public
iterationsNumber
int
public
fileNameW
String
public
fileNameP
String
public
X
Matrix
public
Teta
Matrix
public
Pattern
Matrix
public
W
Matrix
public
Quadro 3.2 - Descrição do caso de uso Execute ANN - Hopfield.
70
Nome do Caso de Uso
Descrição
Ator Envolvido
Interação entre Ator e Sistema
Exceções
Propriedades dos Atributos
Execute ANN - GBSB/BSB
Caso de uso responsável pela execução de uma rede GBSB.
Usuário
Ator
Sistema
O caso de uso é iniciado quando o usuário clica no menu
Neural Network, GBSB, Basic Test.
O sistema apresenta uma tela com os campos
Number of Neurons, Number of Patterns, Beta,
Iterations, Matrix W, Matrix Pattern e Initial
State e Bias para preenchimento pelo usuário.
O usuário preenche os campos e clica no botão Execute.
O sistema valida as informações preenchidas
pelo usuário. (EX01)
O sistema realiza o cálculo dos estados e
apresenta as informações resultantes na tela,
encerrando o caso de uso.
Caso o sistema não consiga ler os arquivos texto, é enviada uma mensagem ao usuário
EX01
notificando o erro.
Domínio
Acesso
Atributo
int
public
neuronsNumber
int
public
patternsNumber
int
public
iterationsNumber
double
public
beta
String
public
fileNameW
String
public
fileNameP
Matrix
public
X
Matrix
public
Pattern
Matrix
public
W
Matrix
public
Bias
Quadro 3.3 - Descrição do caso de uso Execute ANN – GBSB/BSB.
O caso de uso Analyse ANN faz uma análise de convergência da rede para estados
estáveis, instáveis ou espúrios. A rede é inicializada com todos os possíveis pontos
fixos e, para cada estado inicial, é aplicada a função que define a dinâmica da rede e
é verificado o estado final através do caso de uso Check State. O caso de uso
Analyse ANN é dividido em duas partes, referentes às redes implementadas, ou
seja, Hopfield e GBSB/BSB, conforme Quadros 3.4 e 3.5:
71
Nome do Caso de Uso
Descrição
Ator Envolvido
Interação entre Ator e Sistema
Exceções
Propriedades dos Atributos
Analyze ANN - Hopfield
Caso de uso responsável pela análise de uma rede de Hopfield.
Usuário
Ator
Sistema
O caso de uso é iniciado quando o usuário clica no menu
Neural Network, Hopfield, Complete Test.
O sistema apresenta uma tela com os campos
Number of Neurons, Number of Patterns, Beta
Iterations, W File, Pattern File e Teta
para preenchimento pelo usuário.
O usuário preenche os campos e clica no botão Analyze.
O sistema valida as informações preenchidas
pelo usuário. (EX01)
O sistema realiza o cálculo dos estados e
apresenta as informações resultantes na tela,
encerrando o caso de uso.
Caso o sistema não consiga ler os arquivos texto, é enviada uma mensagem ao usuário
EX01
notificando o erro.
Domínio
Acesso
Atributo
int
public
neuronsNumber
int
public
patternsNumber
int
public
iterationsNumber
String
public
fileNameW
String
public
fileNameP
Matrix
public
Teta
Matrix
public
Pattern
W
Matrix
public
Quadro 3.4 - Descrição do caso de uso Analyse ANN - Hopfield.
Nome do Caso de Uso
Descrição
Ator Envolvido
Interação entre Ator e Sistema
Exceções
Propriedades dos Atributos
Analyze ANN - GBSB/BSB
Caso de uso responsável pela análise de uma rede GBSB.
Usuário
Ator
Sistema
O caso de uso é iniciado quando o usuário clica no menu
Neural Network, GBSB, Complete Test.
O sistema apresenta uma tela com os campos
Number of Neurons, Number of Patterns, Beta
Iterations, W File, Pattern File e Bias para
preenchimento pelo usuário.
O usuário preenche os campos e clica no botão Analyze.
O sistema valida as informações preenchidas
pelo usuário. (EX01)
O sistema realiza o cálculo dos estados e
apresenta as informações resultantes na tela,
encerrando o caso de uso.
Caso o sistema não consiga ler os arquivos texto, é enviada uma mensagem ao usuário
EX01
notificando o erro.
Atributo
Domínio
Acesso
neuronsNumber
int
public
patternsNumber
int
public
iterationsNumber
int
public
double
public
beta
fileNameW
String
public
fileNameP
String
public
Pattern
Matrix
public
W
Matrix
public
Bias
Matrix
public
Quadro 3.5 - Descrição do caso de uso Analyze ANN – GBSB/BSB.
72
O caso de uso Coupling ANN, responsável pelo acoplamento de redes GBSB, é
descrito na Quadro 3.6:
Nome do Caso de Uso
Descrição
Ator Envolvido
Interação entre Ator e Sistema
Exceções
Propriedades dos Atributos
Coupling ANN
Caso de uso responsável pelo acoplamento de redes GBSB/BSB.
Usuário
Ator
Sistema
O caso de uso é iniciado quando o usuário clica no menu
Coupling, Neural Networks.
O sistema apresenta uma tela com os campos
Number of Networks, Number of Global
Patterns, Number of Neurons, Number of
Patterns, Iterations, Number of Tests,
Beta, Gama, Bias, Matrix W, Matrix Pattern,
Matrix Points, Global Patterns, Initial
State e Network para preenchimento pelo
usuário.
O usuário preenche os campos e clica no botão Execute.
O sistema valida as informações preenchidas
pelo usuário. (EX01)
O sistema realiza o cálculo dos estados e
apresenta as informações resultantes na tela,
encerrando o caso de uso.
Caso o sistema não consiga ler os arquivos texto, é enviada uma mensagem ao usuário
EX01
notificando o erro.
Atributo
Domínio
Acesso
networksNumber
int
public
globalPatternsNumber
int
public
neuronsNumber
int
public
patternsNumber
int
public
iterationsNumber
int
public
testsNumber
int
public
beta
double
public
gama
double
public
Bias
Matrix
public
fileNameW
String
public
fileNameP
String
public
fileNamePoints
String
public
GlobalPatterns
Matrix
public
XStates
Matrix
public
net
int
public
Quadro 3.6 - Descrição do caso de uso Coupling ANN.
Os casos de uso Learning e Forgetting implementam os processos de learning e
forgetting da rede, respectivamente. A cada execução de um desses processos, o
caso de uso Update Memory é solicitado para a atualização memória da RNA, onde
padrões são adicionados ou removidos da mesma. A descrição do caso de uso
Learning é mostrada no Quadro 3.7, e do Forgetting no Quadro 3.8 a seguir:
73
Nome do Caso de Uso
Descrição
Ator Envolvido
Interação entre Ator e Sistema
Exceções
Propriedades dos Atributos
Learning
Caso de uso responsável pelo learning de rede.
Usuário
Ator
Sistema
O caso de uso é iniciado quando o usuário clica no menu
Memory, Learning.
O sistema apresenta uma tela com os campos
Number of Neurons,Number of Patterns, Save
W As, New Pattern, Bias, Matrix Pattern,
Matrix D e Matrix Lambda, para preenchimento
pelo usuário.
O usuário preenche os campos e clica no botão Execute.
O sistema valida as informações preenchidas
pelo usuário. (EX01)
O sistema realiza o learning e envia uma
mensagem para o usuário notificando a
conclusão do processo, encerrando o caso
Caso o sistema não consiga ler os arquivos texto, é enviada uma mensagem ao usuário
EX01
notificando o erro.
Atributo
Domínio
Acesso
neuronsNumber
int
public
patternsNumber
int
public
fileNameW
int
public
NewPattern
Matrix
public
Bias
Matrix
public
fileNameP
String
public
fileNameD
String
public
fileNameL
String
public
Quadro 3.7 - Descrição do caso de uso Learning.
Nome do Caso de Uso
Descrição
Ator Envolvido
Interação entre Ator e Sistema
Exceções
Propriedades dos Atributos
Forgetting
Caso de uso responsável pelo learning de rede.
Usuário
Ator
Sistema
O caso de uso é iniciado quando o usuário clica no menu
Memory, Forgetting.
O sistema apresenta uma tela com os campos
Number of Neurons,Number of Patterns, Save
W As, Pattern to Forget, Bias, Matrix Pattern,
Matrix D e Matrix Lambda, para preenchimento
pelo usuário.
O usuário preenche os campos e clica no botão Execute.
O sistema valida as informações preenchidas
pelo usuário. (EX01)
O sistema realiza o learning e envia uma
mensagem para o usuário notificando a
conclusão do processo, encerrando o caso
Caso o sistema não consiga ler os arquivos texto, é enviada uma mensagem ao usuário
EX01
notificando o erro.
Atributo
Domínio
Acesso
neuronsNumber
int
public
patternsNumber
int
public
fileNameW
int
public
NewPattern
Matrix
public
Bias
Matrix
public
fileNameP
String
public
fileNameD
String
public
fileNameL
String
public
Quadro 3.8 - Descrição do caso de uso Forgetting.
74
Por fim, o caso de uso ViewFile, que possibilita a visualização de arquivos texto das
redes, é descrito no Quadro 3.9:
Nome do Caso de Uso
Descrição
Ator Envolvido
Interação entre Ator e Sistema
Exceções
Propriedades dos Atributos
View File
Caso de uso responsável pela exibição de arquivos texto.
Usuário
Sistema
Ator
O caso de uso é iniciado quando o usuário clica no menu
Tools, View Files.
O sistema apresenta uma tela com os campos
Number of Neurons e File para preenchimento
pelo usuário.
O usuário preenche os campos e clica no botão View.
O sistema valida as informações preenchidas
pelo usuário. (EX01)
O sistema exibe o conteúdo do arquivo numa
tela, encerrando o caso de uso.
Caso o sistema não consiga ler os arquivos texto, é enviada uma mensagem ao usuário
EX01
notificando o erro.
Atributo
Domínio
Acesso
int
public
neuronsNumber
String
public
fileName
Quadro 3.9 - Descrição do caso de uso View File.
Dentro de uma perspectiva dinâmica do sistema, serão apresentados agora os
diagramas de seqüência para cada caso de uso da Figura 3.6. Esses diagramas
mostram como ocorrem as seqüências de ações na execução de cada caso de uso
implementado pelos componentes. O diagrama da Figura 3.7 a seguir mostra a
seqüência de ações para o caso de uso ANN Design:
Figura 3.7 - Diagrama de seqüência para o caso de uso ANN Design.
75
No caso de uso ANN Design, uma estrutura de RNA envia a mensagem para um
objeto da classe ANNDesign para realização da operação design( ) que irá projetar
a rede, armazenando os padrões na memória. Após o projeto da rede, a memória é
atualizada através do método setMemory( ) da classe Memory.
Para evolução de uma estrutura de RNA, é feita uma solicitação ao objeto da classe
EvolutionLaws através da operação evolution( ). A cada transição de estado, uma
solicitação à classe Stability é feita através do método checkState( ), para verificar se
o estado encontrado é estável. Para isso é necessário verificar se esse estado é
uma memória através do método getMemory( ). Ao alcançar a estabilidade da rede,
é calculado o valor de energia do estado final da rede com a chamada do método
calculateEnergyFunction( ).
Figura 3.8 - Diagrama de seqüência para o caso de uso Execute ANN.
76
A análise de convergência de uma RNA pode ser feita a partir de todos os possíveis
estados fixos iniciais. Através da operação analysis( ), um objeto da classe Analysis
solicita a geração dos pontos fixos da rede através da operação setFixedPoints( ).
Para cada ponto fixo, a dinâmica da rede é executada e checada a estabilidade do
estado final encontrado com chamadas aos métodos checkState( ) e getMemory( )
encontrado, conforme mostra a Figura 3.9:
Figura 3.9 – Diagrama de seqüência para o caso de uso Analyse ANN.
O acoplamento entre RNA diferentes pode ser realizado através da dinâmica de
evolução das redes acopladas, onde uma estrutura pode fazer a solicitação à classe
EvolutionLaws através da operação coupledEvolution( ), recebendo como resposta o
estado global final da rede, conforme mostrado na Figura 3.10:
77
Figura 3.10 - Diagrama de seqüência para o caso de uso Coupling ANN.
Através das operações learning( ) e forgetting( ) pode-se armazenar ou remover um
padrão na memória, conforme mostram as Figuras 3.11 e 3.12 respectivamente:
Figura 3.11 – Diagrama de seqüência para o caso de uso Learning.
78
Uma solicitação à classe Learning, através da operação learning( ), adicionará um
novo padrão ao conjunto já existente e armazenado na memória.
Figura 3.12 – Diagrama de seqüência para o caso de uso Forgetting.
Uma solicitação à classe Forgetting, através da operação forgetting( ), irá remover
um padrão do conjunto já existente e a memória será atualizada.
3.3 CONSIDERAÇÕES FINAIS
A modelagem apresentada neste capitulo serviu como base para desenvolvimento
dos componentes propostos no presente trabalho. Além disso, é fonte de
documentação para projeto de extensão das funcionalidades no futuro. O diagrama
de casos de uso mostrou uma visão geral das funcionalidades do sistema, que foram
implementadas como métodos nas classes do modelo de projeto (diagramas de
classes), visto nas Figuras 3.3 e 3.4. A descrição dos casos de uso facilita o
entendimento por parte do usuário, auxiliando-o na interação com o sistema, bem
como alguns aspectos de implementação para outros desenvolvedores. O
79
dzesenvolvimento dos diagramas de seqüência objetivou mostrar como ocorrem as
trocas de mensagens entre os objetos do sistema, para a realização das funções
básicas.
80
4 Experimentos
Neste capítulo serão apresentados alguns testes com objetivo de avaliar os
componentes desenvolvidos a partir da modelagem apresentada no capítulo 3. A
seção 4.1 descreve as características dos testes realizados, enquanto na seção 4.2
é feita uma discussão dos resultados obtidos. A seção 4.3 finaliza o capítulo
apresentando as considerações finais a respeito dos testes realizados.
4.1 CONSIDERAÇÕES INICIAIS
Os testes foram realizados em todos componentes desenvolvidos, ou seja, foram
testados o projeto, execução, análise, learning, forgetting e acoplamento de RNA.
Os testes de projeto foram realizados baseados nos dados (padrões a serem
armazenados na memória) do experimento realizado por Lillo et al. (1994), onde o
autor propõe a equação 2.28 como forma de obter a matriz de pesos, de modo a
diminuir o número de estados espúrios armazenados. Para os testes de execução,
utilizou-se a matriz de pesos encontrada no mesmo artigo e foi verificada a
convergência ou não para um dos seis padrões armazenados.
4.2 EXPERIMENTOS
Os experimentos foram divididos em 4 (quatro) partes: projeto, execução, análise,
learning, forgetting e acoplamento de RNA, respectivamente apresentados nas
seções 4.2.1, 4.2.2, 4.2.3 e 4.2.4 a seguir.
4.2.1 Experimento 1 – Projeto de RNA
Os componentes implementam 3 (três) tipos de projeto, conforme apresentado nas
equações 2.25, 2.26 e 2.28, intitulados aqui como Hebbian, Pseudo e Lillo. A
interface de projeto de RNA é apresentada na Figura 4.1:
81
Figura 4.1 – Módulo de projeto (aprendizado) da rede.
Os campos Number of Neurons e Number of Patterns definem o número de
neurônios da rede e padrões a serem armazenados na memória. Em Design Type, o
usuário seleciona o tipo de projeto a ser realizado. Os campos Patterns, W, D, B e
Lambda são os arquivos texto das respectivas matrizes que serão salvas, sendo que
os três últimos só são habilitados quando a opção Lillo em Design Type for
selecionada. Ao serem adicionados os números de neurônios e padrões através do
botão Add, aparece uma tabela no grupo Patterns para entrada dos padrões a
serem armazenados.
Em uma rede GBSB com 10 neurônios, onde existem 210 pontos fixos (vértices do
hipercubo), foram escolhidos os seguintes padrões a serem armazenados como
estados de equilíbrio assintoticamente estáveis, conforme Lillo et al. (1994):
82
p1 = [ − 1
1
1
1 −1 −1
−1
p2 = [ 1
1 −1 −1 −1
1 −1 −1
1 −1 ]
p3 = [ − 1
1
p4 = [ − 1
1
1
1
1 −1 −1
1 −1 −1 −1 −1
p5 = [ 1 − 1 − 1
1
p6 = [ 1
1 −1
1 −1
1 −1
1
−1 ]
1 −1 −1 −1 ]
1]
1 −1
1
1
1
1 −1 ]
1
1 −1 −1 ]
(4.1)
A entrada de dados pode ser visualizada na Figura 4.2:
Figura 4.2 – Teste de projeto de uma RNA.
Ao clicar em Design, o sistema realiza o projeto da rede (aprendizado) segundo o
tipo selecionado. Nesse teste, foi selecionada a regra Lillo. Os padrões são
83
armazenados na memória como estados assintoticamente estáveis e a matriz de
pesos W é gerada e armazenada em um arquivo texto.
É importante ressaltar que as matrizes D, B e Λ são geradas automaticamente para
a regra de projeto selecionada, conforme as equações 2.29, 2.30 e 2.31,
respectivamente. Com isso, a cada treinamento realizado, são criadas novas
matrizes, alterando os resultados da matriz de pesos W.
4.2.2 Experimento 2 – Execução e Análise de Convergência
O módulo de execução de RNA é dividido em três partes: execução de redes de
Hopfield, BSB e GBSB. O último caso é apresentado na Figura 4.3:
Figura 4.3 – Módulo de execução de redes GBSB.
Os campos Number of Neurons e Number of Patterns definem o número de
neurônios da rede e padrões armazenados na memória, Beta é o fator de
realimentação da rede, Iterations é o número máximo de iterações desejado, Matrix
84
W e Matrix Pattern são os arquivos das matrizes de peso e padrões e, ao serem
adicionados os números de neurônios e padrões através do botão Add, aparece
uma tabela em Initial State e Bias para definição do estado inicial da rede e o bias da
mesma respectivamente.
Para realização dos testes de execução da rede, foram adotadas a matriz de pesos
W e o vetor bias b utilizadas por Lillo et al. (1994), onde o autor utiliza a regra
descrita em 2.28 para armazenar em uma memória associativa os padrões
mostrados em 4.1.
Os dados utilizados no teste são mostrados em Network Input, na Figura 4.4 a
seguir:
Figura 4.4 – Execução da rede GBSB com estado inicial p1.
Ao executar a rede GBSB, a mesma iterage conforme a equação 2.23 produzindo os
resultados apresentados na Figura 4.4, em Network Output. Como pode ser
observado, já que o estado inicial da rede definido nesse teste foi p1, previamente
85
armazenado na memória, a rede GBSB já se encontrava em um ponto de equilíbrio
assintoticamente estável dentro do espaço de estados. Portanto, em apenas uma
iteração, a rede retornou seu estado final e apresentou o valor da função de energia,
que no caso é mínimo para esse estado. O campo State mostra que o estado final
da rede é uma memória. A mesma situação ocorre quando a rede é inicializada em
qualquer um dois 6 (seis) padrões armazenados na memória. Inicializando-se a rede
em um estado qualquer, diferente dos armazenados na memória, como por exemplo
p7 = [ 1 − 1 − 1 − 1
1 −1
1
1
1 1 ] , obteve-se os seguintes resultados,
como apresentados na Figura 4.5:
Figura 4.5 – Execução da rede GBSB com estado inicial p7.
Como mostrado na Figura 4.5, a rede GBSB, inicializada no padrão p7, evolui e é
atraída pela bacia do estado estável p5, convergindo para esse ponto em 9 (nove)
iterações. Como apresentado em Lillo et al. (1994), o método proposto pela equação
2.28 não garante a estabilidade assintótica global da rede. Portanto, nem todos os
estados irão convergir para um ponto de estabilidade da rede, entrando uma região
de ciclo limite. Essa situação pode ser observada na Figura 4.6 onde a rede foi
86
inicializada
com
p8 = [ − 1 0.342 − 0.143
1
1 − 1 0.923
o
− 0.653
padrão
1
− 0.001 ] :
Figura 4.6 – Execução da rede GBSB com estado inicial p8.
A Figura 4.6 mostra que o estado final encontrado é instável, ou seja, não é uma
memória nem um estado espúrio. Ao clicar em Limit Cycle são mostradas as 9
(nove) últimas transições de estados da rede, como mostra a Figura 4.7:
87
Figura 4.7 – Região de ciclo limite.
Observa-se na Figura 4.7 que a evolução da rede fica restrita à uma região cíclica
entre
os
p10 = [ − 1 − 1 − 1
estados
−1
1 1 1
p9 = [ 1 1 − 1
− 0.9493
1
1
1 − 1 0.439
1 1]
e
−1 ].
A partir disso, foram realizados testes de análise de convergência geral da rede. A
rede foi inicializada em cada um dos pontos fixos (automaticamente) e verificada a
convergência da mesma. No primeiro teste de análise feito ajustou-se a constante β
em 0.3, como mostrado na Figura 4.8:
88
Figura 4.8 – Análise de convergência da rede GBSB para β = 0.3.
Como pode ser observado na Figura 4.8, das 1024 inicializações da rede, a mesma
convergiu para um estado presente na memória (estável) apenas 138 vezes e 21
vezes para um dos estados espúrios, conforme mostrado na Tabela 4.1 a seguir:
Padrão
p1
p2
p3
p4
p5
p6
Total
Número de Convergências
11
9
65
6
14
33
138
Tabela 4.1 – Resultado da convergência da rede GBSB para β = 0.3 .
Os estados espúrios encontrados podem ser verificados através do botão Spurious,
conforme mostra a Figura 4.9:
89
Figura 4.9 - Estados espúrios.
Variando-se o valor de β, observa-se uma grande alteração no número de
convergências da rede. As Figuras 4.10, 4.11, 4.12 e 4.13 a seguir mostram essa
variação, onde utilizou-se β igual a 0.2, 0.15, 0.1 e 0.06 respectivamente:
Figura 4.10 – Análise de convergência da rede GBSB para β = 0.2.
90
Figura 4.11 – Análise de convergência da rede GBSB para β = 0.15.
Figura 4.12 – Análise de convergência da rede GBSB para β = 0.1.
91
Figura 4.13 – Análise de convergência da rede GBSB para β = 0.06.
Os resultados obtidos nas análises de convergência podem ser melhores
comparados na Tabela 4.2 e no gráfico da Figura 4.14:
Beta
0.06
0.1
1.5
2.0
3.0
Convergência para uma Memória
736
746
766
527
159
288
278
258
497
865
71,87%
72,85%
74,80%
51,46%
15,52%
ou Estado Espúrio
Não Convergência
Porcentagem de convergência
Tabela 4.2 – Resultado da convergência da rede GBSB para β = 0.3 .
92
Análise de Convergência da Rede GBSB
1024
896
Número
768
640
Convergência
512
Não convergência
384
256
128
0
0.06
0.1
0.15
0.2
0.3
Beta
Figura 4.14 - Análise de convergência da rede GBSB para β = 0.06.
O que pode ser observado com a análise feita é que a convergência da rede GBSB
mantém-se na faixa de 70% para valores menores de β. Atribuindo-se à β valores
maiores que 0.15, a convergência da rede cai bruscamente. Além disso, foram
obtidas as seguintes informações com relação às convergências para um estado
armazenado na memória a partir das 1024 inicializações possíveis:
Beta
p1
p2
p3
p4
p5
p6
Espúrios
0.06
91
70
140
64
124
124
123
0.1
88
73
145
61
124
134
121
0.15
81
76
168
68
129
120
124
0.2
54
65
161
31
75
80
61
0.3
11
9
65
6
14
33
21
Total
416
363
819
294
590
615
450
Tabela 4.3 – Padrões encontrados na convergência da rede GBSB.
Observa-se na Tabela 4.3 que, com a variação do fator de realimentação entre 0.06
e 0.3, dos 1024 estados iniciais da rede, 819 convergiram para o padrão p3.
Entretanto, apenas 294 estados iniciais convergiram para o padrão p4. Com isso, fica
visível que as bacias de atração de cada ponto fixo são diferentes entre si. Apesar
de encontrados apenas 2 estados espúrios na rede, conforme mostrou a Figura 4.3,
observa-se um grande número de convergências para esses (450 convergências).
93
4.2.6 Experimento 3 - Acoplamento
O componente de acoplamento de redes GBSB pode ser utilizado através da
interface mostrada na Figura 4.15 a seguir:
Figura 4.15 – Módulo de acoplamento de redes GBSB.
Os campos Number of Networks e Number of Global Patterns definem o número de
redes a serem acopladas e o número de padrões globais5 desejados. Os campos
Number of Neurons e Number of Patterns definem o número de neurônios da rede e
padrões armazenados na memória das redes individuais. Iterations é o número
máximo de iterações desejadas da rede. Number of Tests define a quantidade de
testes de emergência dos padrões globais desejados. Beta é o fator de
realimentação das redes individuais e gama o fator de acoplamento entre as redes,
__________________________
5
Os padrões armazenados em uma rede representam a memória de primeiro nível. O padrão global
representa a memória de segundo nível, obtida a partir do acoplamento de redes.
94
Matrix W, Matrix Pattern e Matrix Points são os arquivos das matrizes de peso,
padrões armazenados e estados possíveis da rede (pontos fixos). Ao clicar no botão
Add, aparece uma tabela em Global Patterns para definição dos padrões globais
desejados, e uma em Bias para entrada do bias das redes.
Os testes a serem realizados nesta seção são baseados nos experimentos
realizados por Gomes (2005), onde o autor propõe a construção de redes GBSB
acopladas. Cada RNA individual representaria um grupo neural (memória de
primeiro nível) e a rede acoplada como um todo representaria um mapa local,
produzindo um segundo nível de memória, onde os padrões globais devem emergir
(GOMES, 2005). Nesse caso, o autor realizou o acoplamento de 3 (três) redes
GBSB, como a rede proposta em Lillo et al. (1994).
Para cálculo das matrizes de pesos individuais, seguiu-se a equação 2.28, proposta
por Lillo et al. (1994). Para constituir a memória de primeiro nível, foram utilizados os
padrões descritos em 4.1. As matrizes de correlação foram calculadas segundo a
regra generalizada de Hebb, conforme realizado em Gomes (2005). Os padrões
inter-redes escolhidos que irão compor a memória de segundo nível são
apresentados na Tabela 4.4 e mostrados na Figura 4.16:
Redes
A ou 1
B ou 2
C ou 3
A ou 1
B ou 2
1-3 e 2-4
3-1 e 4-2
5-1 e 6-2 5-3 e 6-4
Padrões Globais
C ou 3
1-5 e 2-6
3-5 e 4-6
1-3-5 ou 2-4-6
Tabela 4.4 – Padrões correlacionados armazenados.
FONTE – GOMES, 2005. p.86.
95
Figura 4.16 – Esquema geral do experimento.
FONTE - GOMES, 2005. p. 86.
No experimento realizado por Gomes (2005), o autor inicializou uma das redes (A, B
ou C), em um dos padrões que compõem a sua memória de segundo nível de forma
aleatória. As demais redes, foram inicializadas aleatoriamente em um dos 1024
pontos fixos possíveis. Diferentemente desse experimento, o componente aqui
desenvolvido permite fixar o estado inicial de uma das redes e as demais são
inicializadas aleatoriamente dentro do espaço de estados. Isso foi feito de forma a
analisar o quanto uma rede, já em um estado referente à sua memória de segundo
nível, influencia na evolução das demais. E ainda, para uma melhor comparação dos
resultados, ao invés da geração aleatória dos estados iniciais das demais redes,
foram definidos os 100 primeiros e as redes inicializadas a partir desses. Assim,
mantiveram-se as mesmas informações em todos os testes realizados.
Primeiramente, manteve-se em 100 o número de iterações da rede, o fator de
acoplamento γ foi fixado em 3 e variando o valor da constante β. Com β = 0.3 e a
rede A (ou 1) sendo inicializada com o padrão p1, conforme mostra a Figura 4.17,
obteve-se o resultado apresentado na Figura 4.18:
96
Figura 4.17 – Teste de acoplamento inicializando-se a rede A.
Figura 4.18 – Resultado do teste de acoplamento inicializando-se a rede A.
Como pode ser observado, em 100 testes realizados, foram obtidos 32 tripletos que
convergiram para o padrão global 1, ou seja, tripletos 1. O mesmo teste foi realizado,
variando-se o valor de β (0.06, 0.1, 0.15 e 0.2), mas não houve variação nos
resultados obtidos.
Adotando-se β = 0.3 e variando o valor de γ, obteve-se os
resultados apresentados na Tabela 4.5:
97
Rede Fixa
Gama
Tripletos 1
Tripletos 2
Total Tripletos
Não convergência
Porcentagem
0
0
0
0
100
0%
0.5
6
0
6
86
6%
1
48
0
48
81
48%
1.5
59
0
59
68
59%
Rede A (padrão 1)
2
2.5
63
59
0
0
63
59
53
53
63%
59%
3
32
0
32
53
32%
3.5
32
0
32
53
32%
4
32
0
32
53
32%
Tabela 4.5 - Acoplamento das redes variando-se γ, com a rede A inicializada no padrão p1.
Pode-se observar que há uma grande variação no número de convergências do
sistema alterando-se o valor de γ, que obteve melhores resultados entre 1.5 e 2.5.
Os mesmos testes foram realizados inicializando a rede A com o padrão p2. Os
resultados são apresentados nas Tabelas 4.6 e 4.7 a seguir:
Rede Fixa
Beta
Tripletos 1
Tripletos 2
Total Tripletos
Não convergência
Porcentagem
Rede A (padrão 2)
0.1
0.15
0.2
0
0
0
12
12
12
12
12
12
88
88
88
12%
12%
12%
0.06
0
12
12
88
12%
0.3
0
12
12
88
12%
Tabela 4.6 - Acoplamento das redes variando-se β, com a rede A inicializada no padrão p2.
Rede Fixa
Gama
Tripletos 1
Tripletos 2
Total Tripletos
Não convergência
Porcentagem
0
0
0
0
100
0%
0.5
0
0
0
81
0%
1
0
15
15
81
15%
Rede A (padrão 2)
1.5
2
2.5
0
0
0
33
39
26
33
39
26
68
53
53
33%
39%
26%
3
0
12
12
53
12%
3.5
0
12
12
53
12%
4
0
12
12
53
12%
Tabela 4.7 - Acoplamento das redes variando-se γ, com a rede A inicializada no padrão p2.
Como pode ser observado na Tabela 4.6, a convergência das redes para o padrão
global 1 foi de apenas 12%, independente do valor de β. Variando o valor de γ, o
sistema obteve os melhores resultados entre 1.5 e 2.5, equivalente ao apresentado
na Tabela 4.5 onde a rede A foi inicializada com o padrão p1.
98
Os mesmos testes realizados até o momento foram feitos inicializando-se a rede B
com os padrões p3 e p4. As Tabelas 4.8 e 4.9 mostram o primeiro caso.
Rede Fixa
Beta
Tripletos 1
Tripletos 2
Total Tripletos
Não convergência
Porcentagem
0.06
8
0
8
0
8%
Rede B (padrão 3)
0.1
0.15
0.2
8
32
40
0
0
0
8
32
40
0
2
4
8%
32%
40%
0.3
40
0
40
11
40%
Tabela 4.8 - Acoplamento das redes variando-se β, com a rede B inicializada no padrão p3.
Rede Fixa
Gama
Tripletos 1
Tripletos 2
Total Tripletos
Não convergência
Porcentagem
0
0
0
0
100
0%
0.5
4
0
4
49
4%
Rede B (padrão 3)
1.5
2
2.5
89
87
75
0
0
0
89
87
75
1
0
1
89%
87%
75%
1
52
0
52
9
52%
3
40
0
40
2
40%
3.5
40
0
40
3
40%
4
40
0
40
4
40%
Tabela 4.9 - Acoplamento das redes variando-se γ, com a rede B inicializada no padrão p3.
Pode-se observar nas Tabelas 4.6 e 4.7 que o sistema alcançou o melhor resultado
de convergência para o padrão global 1 quando β = 0.3 e λ = 1.5. É interessante
notar também que, como no teste onde a rede A foi inicializada com os padrões 1 e
2, o sistema também encontrou aqui melhores resultados com λ entre 1.5 e 2.5,
como visto na Tabela 4.7.
A rede B, quando inicializada com o padrão p4, observa-se que os resultados não
são equivalentes aos do teste anterior, sendo até mesmo inferiores, conforme
mostram as Tabelas 4.10 e 4.11 a seguir:
Rede Fixa
Beta
Tripletos 1
Tripletos 2
Total Tripletos
Não convergência
Porcentagem
0.06
0
8
8
1
8%
Rede B (padrão 4)
0.1
0.15
0.2
0
0
0
8
16
16
8
16
16
1
1
1
8%
16%
16%
0.3
0
32
32
21
32%
Tabela 4.10 - Acoplamento das redes variando-se β, com a rede B inicializada no padrão p4.
99
Rede Fixa
Gama
Tripletos 1
Tripletos 2
Total Tripletos
Não convergência
Porcentagem
0
0
0
0
100
0%
0.5
0
4
4
41
4%
1
0
23
23
3
23%
Rede B (padrão 4)
1.5
2
2.5
0
0
0
32
44
32
32
44
32
1
1
2
32%
44%
32%
3
0
32
32
3
32%
3.5
0
32
32
4
32%
4
0
32
32
5
32%
Tabela 4.11 - Acoplamento das redes variando-se γ, com a rede B inicializada no padrão p4.
Pode-se observar, na Tabela 4.9, que há uma diminuição do número de tripletos
encontrados para λ entre 1.5 e 2.5, mas ainda assim foram os melhores resultados
obtidos para esse caso.
Por fim, os mesmos testes foram realizados inicializando-se a rede C nos padrões 5
e 6, como mostrado a seguir:
Rede Fixa
Beta
Tripletos 1
Tripletos 2
Total Tripletos
Não convergência
Porcentagem
0.06
18
0
18
0
18%
Rede C (padrão 5)
0.1
0.15
0.2
30
40
40
0
0
0
30
40
40
0
0
3
30%
40%
40%
0.3
64
3
67
3
67%
Tabela 4.12 - Acoplamento das redes variando-se β, com a rede C inicializada no padrão p5.
Rede Fixa
Gama
Tripletos 1
Tripletos 2
Total Tripletos
Não convergência
Porcentagem
0
0
0
0
100
0%
0.5
6
0
6
100
6%
1
46
0
46
34
46%
Rede C (padrão 5)
1.5
2
2.5
76
82
64
1
1
4
77
83
68
2
3
4
77%
83%
68%
3
64
3
67
100
67%
3.5
40
3
43
100
43%
4
40
1
41
100
41%
Tabela 4.13 - Acoplamento das redes variando-se γ, com a rede C inicializada no padrão p5.
Como todos os testes realizados, observa-se através da Tabela 4.13 que os
melhores resultados foram obtidos para valores de λ entre 1.5 e 2.5, para rede C
inicializada com o padrão p5. O mesmo ocorre quando a rede C é inicializada com o
padrão p6, como pode ser visto na Tabela 4.15. Interessante notar que esse teste
100
não obteve apenas tripletos 1, mas também tripletos 2. Foram os casos onde β = 0.3
e λ = 3 (Tabela 4.12) e β = 0.3 e λ entre 1.5 e 4 (Tabela 4.13).
Rede Fixa
Beta
Tripletos 1
Tripletos 2
Total Tripletos
Não convergência
Porcentagem
0.06
0
32
32
0
32%
Rede C (padrão 6)
0.1
0.15
0.2
0
0
0
32
32
48
32
32
48
0
0
0
32%
32%
48%
0.3
0
48
48
0
48%
Tabela 4.14 - Acoplamento das redes variando-se β, com a rede C inicializada no padrão p6.
Rede Fixa
Gama
Tripletos 1
Tripletos 2
Total Tripletos
Não convergência
Porcentagem
0
0
0
0
100
0%
0.5
0
6
6
94
6%
1
0
51
51
49
51%
Rede C (padrão 6)
1.5
2
2.5
0
0
0
81
66
66
81
66
66
19
34
34
81%
66%
66%
3
0
48
48
52
48%
3.5
0
48
48
52
48%
4
0
48
48
52
48%
Tabela 4.15 - Acoplamento das redes variando-se γ, com a rede C inicializada no padrão p6.
Na Tabela 4.14 pode-se observar que, mantendo-se λ = 3 e aumentando-se, o
número de tripletos encontrados é maior, o que também ocorre nos outros testes
realizados.
4.2.6 Experimento 4 – Learning
Como visto na seção 2.5.2, learning é a capacidade de uma RNA de adicionar
padrões para serem armazenados como pontos de equilíbrio assintoticamente
estáveis ao conjunto padrões existentes. O módulo de learning é apresentado na
Figura 4.19:
101
Figura 4.19 - Interface do módulo Learning.
Os campos Number of Neurons e
Number of Patterns definem o número de
neurônios da rede e padrões armazenados na memória. Save W As recebe o nome
da nova matriz de pesos a ser salva. Clicando-se no botão Add, aparece um tabela
em New Pattern, para entrada do novo padrão a ser armazenado na memória, e
uma em Bias, para definição do bias da rede. Matrix Pattern, Matrix D e Matrix
Lambda são os arquivos das matrizes de padrões armazenados, D e Λ da rede.
O teste realizado nesta seção foi baseado no experimento realizado por Zak, Lillo e
Hui (1996). Em uma rede GBSB com 5 neurônios, onde existem 25 pontos fixos
(vértices do hipercubo), foram escolhidos os seguintes padrões a serem
armazenados como estados de equilíbrio assintoticamente estáveis:
102
⎡− 1⎤
⎢− 1⎥
⎢ ⎥
p1 = ⎢ 1 ⎥ ,
⎢ ⎥
⎢ 1⎥
⎢⎣ 1 ⎥⎦
⎡ 1⎤
⎢ 1⎥
⎢ ⎥
p2 = ⎢− 1⎥ ,
⎢ ⎥
⎢− 1⎥
⎢⎣− 1⎥⎦
⎡ 1⎤
⎢− 1⎥
⎢ ⎥
p3 = ⎢ 1 ⎥
⎢ ⎥
⎢− 1⎥
⎢⎣ 1 ⎥⎦
(4.2)
− 0 .5 ⎤
0 ⎥⎥
0 ⎥,
⎥
0 ⎥
1 ⎥⎦
(4.3)
Foram escolhidas as seguintes matrizes D e Λ:
⎡
⎢
⎢
D=⎢
⎢
⎢
⎢⎣
1
0
0
0
0
0
1
− 0. 2
0
0
0
0
1
0
0
0
0
0
1
0
Λ = −2 I 5
A matriz de padrões é P = [p1, p2, p3], e B = [b, b, b], onde:
b = [ 0 .6
− 0. 5
0 .7
− 0 .4
0 .8 ] T
(4.4)
Através da equação 2.28, a matriz W é calculada e os padrões mostrados em 4.2
são armazenados como estados de equilíbrio assintóticamente estáveis. Suponha o
seguinte estado dentro do espaço de estados:
⎡− 1⎤
⎢− 1⎥
⎢ ⎥
p4 = ⎢− 1⎥
⎢ ⎥
⎢− 1⎥
⎢⎣ 1 ⎥⎦
(4.5)
Observe que, se executada com estado inicial p4, que não é um ponto de equilíbrio
assintoticamente estável, a rede a rede evolui e converge para o estado p3, em 12
iterações, conforme mostra a Figura 4.20:
103
Figura 4.20 – Execução da rede GBSB para o estado inicial instável p4.
Deseja-se agora adicionar o padrão p4 à memória, conforme mostra a Figura 4.21,
Figura 4.21 – Teste de learning.
104
Aprender novos padrões requer atualizar a matriz de pesos W. Entretanto, esse
processo envolve atualizar a matriz P e adicionar uma coluna extra à B. Como deve
P ser atualizada, a sua pseudo-inversa deve ser recalculada. Portanto, ao clicar em
Execute, o componente calcula a pseudo-inversa da nova matriz P através do
teorema 3 descrito na seção 2.5.2.
Nesse momento a nova matriz de pesos é
calculada através da equação 2.28 e o padrão p4 é adicionado à memória como um
estado de equilíbrio assintoticamente estável. Com isso, ao executar a rede GBSB a
partir do estado inicial p4, a mesma deve permanecer nesse ponto, já que é um
ponto estável do sistema, como mostra a Figura 4.22:
Figura 4.22 – Execução da rede GBSB para o estado inicial estável p4.
4.2.6 Experimento 5 – Forgetting
Como visto na seção 2.5.3, forgetting é a capacidade de uma RNA de esquecer
padrões armazenados como pontos de equilíbrio assintoticamente estáveis em uma
memória associativa. O módulo de forgetting é apresentado na Figura 4.23:
105
Figura 4.23 - Interface do módulo Forgetting.
Os campos Number of Neurons e
Number of Patterns definem o número de
neurônios da rede e padrões armazenados na memória. Save W As recebe o nome
da nova matriz de pesos a ser salva. Clicando-se no botão Add, aparece um tabela
em Pattern to Forget, para entrada do padrão a ser removido da memória, e uma em
Bias, para definição do bias da rede. Matrix Pattern, Matrix D e Matrix Lambda são
os arquivos das matrizes de padrões armazenados, D e Λ da rede.
O teste realizado nesta seção foi baseado no experimento realizado por Zak, Lillo e
Hui (1996). Continuando os experimento realizado na seção 4.2.5, o padrão p3 é um
estado de equilíbrio assintóticamente estável, como pode ser verificado através da
Figura 4.24:
106
Figura 4.24 - Execução da rede GBSB para o estado inicial estável p3.
Suponha que se deseja agora remover o padrão p3 da memória, conforme mostra a
Figura 4.25:
Figura 4.25 – Teste de forgetting.
107
Pode-se verificar que o padrão p3 foi removido da memória, como pode ser
observado na Figura 4.26:
Figura 4.26 - Execução da rede GBSB para o estado inicial instável p3.
Observe que, a partir do estado inicial p3, que agora não faz parte do conjunto de
estados de equilíbrio assintoticamente estáveis (memória), a rede evolui e converge
para o padrão estável p1, em 11 iterações.
4.3 CONSIDERAÇÕES FINAIS
Os experimentos realizados e as análises feitas neste capítulo objetivaram validar o
funcionamento dos componentes desenvolvidos no presente trabalho. Buscou-se
aplicações de RNA na literatura, onde foram encontrados autores da área que
propuseram experimentos diversos de aprendizado, execução e acoplamento, mas
muitas vezes sem auxílio de um sistema informatizado para realizá-los. Apenas os
testes de acoplamento foram baseados numa aplicação desenvolvida no software
Matlab por Gomes (2005). O componente de acoplamento foi desenvolvido baseado
108
nessa aplicação. No entanto, os testes diferem em alguns pontos, o que
proporcionou resultados diferentes neste trabalho. Pode-se diferenciar os dois
experimentos em:
•
A inicialização da rede em um dos padrões globais era aleatória e as demais
em um dos 1024 padrões possíveis. Neste trabalho, o estado inicial de uma
das redes em um dos padrões globais foi definido pelo autor, e as demais
redes nos 100 primeiros estados possíveis;
•
Nos testes realizados em por Gomes (2005) foram feitos variando-se β,
enquanto aqui variou-se, além do fator de realimentação, o fator de
acoplamento γ.
Outros testes foram realizados por Gomes (2005), mas não reproduzidos neste
devido às limitações do componente de acoplamento desenvolvido. Um fator
importante nos testes realizados é que as matrizes D, B e Λ, geradas
automaticamente no treinamento segundo a regra de Lillo, podem alterar o resultado
obtido, ou seja, a matriz de pesos W, a cada execução do processo.
Os componentes de acoplamento, baseados na TNGS, permitem a construção de
novas hierarquias de redes e novas análises de convergência. De maneira geral,
pode-se concluir que os testes realizados comprovam os resultados obtidos pelos
experimentos aos quais foram baseados.
109
5 CONCLUSÃO
Para a realização do presente trabalho, foi necessária uma revisão bibliográfica
sobre RNA, discutidas principalmente por Haykin (2001) e Anderson (1995). Além
disso, foram abordados os trabalhos realizados por Anderson (1990) (2003 a) (2003
b), Anderson et al. (1990), Guan, Anderson e Sutton (1996) e Gomes (2005) que, de
modo geral, se propõem a desenvolver estruturas de RNA acopladas. O estudo
sobre os sistemas dinâmicos serviu como base para o entendimento dos modelos
dinâmicos de RNA e sua diferenciação dos os modelos tradicionais. Autores como
Lillo, Hui e Zak (1994) (1996) e Gomes (2005) foram de extrema importância para o
despertar de idéias para aplicações de RNA e, principalmente, RNA acopladas. Toda
a revisão literária foi apresentada no capítulo 2 desta dissertação.
O
capítulo
3
dedicou-se
a
apresentar
a
modelagem
dos
componentes
desenvolvidos. Procurou-se adotar a linguagem UML e seguir as suas visões como
forma de mostrar os diversos ângulos da modelagem. Através do diagrama de casos
de uso e de suas descrições pode-se ter um bom entendimento da utilização dos
componentes, bem como alguns aspectos de implementação. Os diagramas de
classes e seqüência proporcionaram uma visão geral da estática (classes e
relacionamentos) e dinâmica do sistema (trocas de mensagens entre objetos),
respectivamente.
A partir das idéias de aplicações de RNA obtidas com o capitulo 2, foram
apresentados alguns experimentos no capitulo 4, onde se procurou testar os
componentes de projeto, execução, análise e acoplamento através de trabalhos já
desenvolvidos na literatura pesquisada.
5.1 DIFICULDADES ENCONTRADAS
Diversas foram as dificuldades encontradas no desenvolvimento, mas as duas
seguintes merecem destaque:
110
•
Falta de trabalhos afins, que dificultou o levantamento das características
desejáveis aos componentes a serem desenvolvidos;
•
Escassez de fontes bibliográficas sobre arquiteturas de RNA acopladas, o
que dificultou a implementação da primeira aplicação desse modelo.
5.2 CONTRIBUIÇÕES DO TRABALHO
A proposta geral deste trabalho é a implementação de RNA com objetivo de
construir agentes de software inteligentes. Mais especificamente, este trabalho
procurou estender a arquitetura ARTÍFICE através da criação de uma estrutura que
pudesse ser utilizada para a construção do sistema nervoso do ASCS. Com esse
propósito, as principais contribuições desse trabalho foram:
•
Extensão da arquitetura ARTÍFICE-0.6.0 com a modelagem de uma
arquitetura para um tipo de estrutura, baseada em RNA e RNA acopladas,
que irá representar o sistema nervoso do ASCS;
•
Implementação de componentes de projeto, execução, análise e acoplamento
de RNA dentro da arquitetura ARTÍFICE-0.6.0;
•
Definição da dinâmica de acoplamento de redes de Hopfield;
•
Criação de uma interface para integração dos componentes, como forma de
realização de experimento de projeto, execução, análise e acoplamento de
RNA baseadas em aplicações de memória associativa.
Diante das contribuições acima citadas e a partir dos objetivos propostos neste
trabalho, pode-se dizer que:
•
Foram construídos os modelos lógicos dos componentes de software, em
conformidade com a arquitetura ARTÍFICE-0.6.0;
111
•
Os componentes de software para projeto, execução e análise de RNA de
Hopfield, BSB e GBSB foram implementados utilizando a linguagem Java;
•
Os componentes de acoplamento de RNA de Hopfield, BSB e GBSB foram
implementados em linguagem Java;
•
Foi desenvolvida uma interface para integração dos componentes;
•
Foram realizados testes baseados em experimentos encontrados na
literatura, comprovando o funcionamento correto dos componentes.
5.3 TRABALHOS FUTUROS
Os
componentes
apresentados
podem
ser
estendidos
com
relação
a
funcionalidades e áreas de aplicação. Não se pretende listar todos os possíveis
trabalhos futuros a partir deste, e sim apenas apresentas algumas sugestões, como
as que seguem:
•
Extensão da arquitetura ARTÍFICE para implementação de outros tipos de
estruturas que estejam em conformidade com a abordagem contemporânea
das ciências cognitivas;
•
Criação de uma aplicação de ASCS que utilize a estrutura de RNA estendida
no projeto ARTÍFICE;
•
Flexibilização dos componentes de acoplamento para interconexão entre
diferentes estruturas de RNA;
•
Desenvolvimento de módulos de saída gráfica das redes onde, por exemplo,
poderia ser feita uma análise da variação da função de energia de acordo
com a evolução das redes;
112
•
Expansão dos componentes de análise de RNA para, por exemplo, análise de
convergência dos estados baseada nas extensões das bacias de atração;
•
Implementação de módulos para construção e acoplamento de RNA para
outras aplicações como, por exemplo, problemas de otimização.
5.4 CONSIDERAÇÕES FINAIS
A arquitetura e os componentes desenvolvidos neste trabalho representam um
passo adicional na construção de um
framework capaz de auxiliar no
desenvolvimento de aplicações complexas de diferentes estruturas de RNA e
tecnologias que envolvem essa área de estudo.
No âmbito do projeto ARTÍFICE, pode-se dizer que uma nova possibilidade de
instanciação de ASCS foi proporcionada e novas características foram incorporadas
ao ASCS com as Redes Neurais Artificiais e Redes Neurais Artificiais acopladas.
Apesar das dificuldades na implementação de RNA dinâmicas e acopladas, este
trabalho mostrou que esta tarefa é possível de ser realizada. Com os estudos e
componentes desenvolvidos neste, contribuiu-se na investigação por modelos
matemáticos cada vez mais plausíveis à forma de processamento de informação dos
seres vivos. Pode-se dizer ainda que, com os avanços desta área de pesquisa,
futuramente deverá ser possível o desenvolvimento de aplicações onde o
acoplamento entre diferentes estruturas de RNA possibilite a resolução de
problemas mais complexos.
113
REFERÊNCIAS
ALMEIDA, Paulo Eduardo Maciel. Notas de Aula da Disciplina Princípios de
Automação Inteligente I, Mestrado em Tecnologia, DPPG/CEFET-MG, 2003.
ANDERSON, James A.; et al. Radar Signal Categorization Using a Neural Network.
IEEE, v. 78, n. 10, p. 1646-1657, out. 1990.
ANDERSON, James A. An Introduction to Neural Networks. Cabridge: Mit, 1995,
650p.
ANDERSON, James A. Hybrid computation with an attractor neural network. In: IEEE
International Conference on Cognitive Informatics – ICCI, 1., 2002, Piscataway, NJ,
Proceedings… Piscataway, NJ: IEEE Computer Society, 2002. p. 3-12.
ANDERSON, James A. Arithmetic on a Parallel Computer: Perception Versus Logic.
Brain and Mind, v. 4, ed. 2, p. 169-188, ago. 2003 a.
ANDERSON, James A. The Ersatz Brain Project: brain-like computer design for
cognitive applications. Department of Cognitive and Linguistic Sciences, Brown
University, nov. 2003 b.
BARRETO, Jorge M. Introdução às Redes Neurais Artificiais. Laboratório de
Conexionismo e Ciências Cognitivas. UFSC -Departamento de Informática e de
Estatística - Florianópolis – SC, 2002
BORGES, H. E. ARTÍFICE - Arquitetura Flexível para a Criação de Agentes de
Software Cognitivos e Situados: teoria, metodologia e ferramentas. 2002. 16 f.
PROJETO DE PESQUISA (Departamento de Ensino Superior) - Centro Federal de
Educação Tecnológica de Minas Gerais, Belo Horizonte.
114
BRAGA, Antônio de Pádua; CARVALHO, André Carlos Ponce de Leon Ferreira de;
LUDERMIR,Teresa Bernarda. Redes Neurais Artificiais: teorias e aplicações. Rio de
Janeiro: LTC, 2000.
BRAGA, Antônio de Pádua; CARVALHO, André Carlos Ponce de Leon Ferreira de;
LUDERMIR,Teresa Bernarda. Redes Neurais Artificiais. In: REZENDE, Solange
Oliveira. Sistemas Inteligentes: fundamentos e aplicações. 1. ed. Barueri: Manole,
2003. v. 1, cap. 6, p. 141-168.
BRAZ, Rodrigo de Salvo. Alto Nível em Redes Neurais. 1998. 87p. Dissertação
(Mestrado em Ciência da Computação) – IME-USP, São Paulo.
CLANCEY, William J. Situated Cognition: On Human Knowledge and Computer
Representations. New York: Cambridge University Press, 1997.
CORRÊA, Leonardo Garcia. Memória associativa em redes neurais artificiais
realimentadas. 2004. 137p. Dissertação (Mestrado em Ciência da Computação e
Matemática Computacional) – ICMC-USP, São Carlos.
ELDELMAN, G. M. Bright air, Brilliant Fire: on the matter of the mind. New York:
Basic Books, 1992.
GOMES, Rogério Martins. Abordagem Dinâmica e Cognição Situada em Redes
Neurais Artificiais Acopladas. 2005. 128p. Exame de Qualificação (Doutorado em
Engenharia Elétrica) – PPGE/UFMG, Belo Horizonte.
GAN, Qiang; WEI, Yu. Unfully-interconnected neural networks as associative
memory. In: International Symposium on Circuits and Systems, New Orleans,
Proceedings… New Orleans p. 468-470. maio 1990.
GUAN, Ling; ANDERSON, James A.; SUTTON, Jeffrey P. Biologically Motivated
Neural Computing in Early Vision Processing. IEEE SMC Conf., v.2, 1996, p. 11381143.
115
GUAN, Ling; ANDERSON, James A.; SUTTON, Jeffrey P. A Network of Networks
Processing Model for Image Regularization. IEEE Transactions on Neural Networks,
v.8, n. 1, p. 169-174, jan. 1997.
HAYKIN, Simon. Redes Neurais: princípios e práticas. Porto Alegre: Bookman, 2001.
HOPFIELD, J. J. Neural Networks and Physical Systems with Emergent Collective
Computational Abilities. Proceedings of the National Academy Sciences of the USA,
79, 1982, p. 2554-2558.
HUI, Stefen; ZAK, Stanislaw H. Dynamical Analysis of the Brain-State-in-a-Box
(BSB) Neural Models. IEEE Transactions on Neural Networks, v.3, n.1, jan. 1992, p.
86-94.
LILLO, Walter E. et al. Synthesis of Brain-State-in-a-Box (BSB) Based Associative
Memories. IEEE Transactions on Neural Networks, v.5, n. 5, set 1994, p. 730 - 737.
NETO, Arilo Cláudio Dias; BARCELOS, Rafael Ferreira; SPÍNOLA, Rodrigo Oliveira.
Desenvolvimento de aplicações orientadas a objeto por tecnologias Java, parte II –
análise. SQL Magazine, n.13, p. 26-32, dez. 2004.
OLIVEIRA, Renata B.; CAMPOS, Luciana M. A.; BORGES, Henrique E.. Bases
Biológicas das emoções e afetos, sua relação com o processo cognitivo e com a
modelagem de agentes de software cognitivos. In: Simpósio Brasileiro de Redes
Neurais (SBRN), 8. São Luis, 2004.
PERFETTI, Renzo. A Syntesis Procedure for Brain-State-in-a-Box Neural Networks.
IEEE Transactions on Neural Networks, v.6, n. 5, set 1995, p. 1071 - 1080.
PIRES, Anderson Grandi. Modelagem de um Mecanismo de Percepção-em-Ação
para os Agentes de Software Cognitivos Situados e Extensão da Arquitetura Artífice.
2005. 127p. Dissertação (Mestrado em Modelagem Matemática e Computacional) Centro Federal de Educação Tecnológica de Minas Gerais, Belo Horizonte.
116
RAPOSO, Renato; VAZ, Francine Ferreira. Introdução à Ciência Cognitiva.
Disponível em: < http://www.nce.ufrj.br/ginape/publicacoes/trabalhos/Renato
Material/index.htm> . Acesso em: 5 mar. 2004.
REZENDE, Solange Oliveira. Introdução. In: REZENDE, Solange Oliveira. Sistemas
Inteligentes: fundamentos e aplicações. 1. ed. Barueri: Manole, 2003. v. 1, cap. 1, p.
03-11.
SANTOS, Bruno A. Aspectos Conceituais e Arquiteturais para a Criação de
Linhagens de Agentes de Software Cognitivos e Situados. 2003. 130p. Dissertação
(Mestrado em Manufatura Integrada por Computador) - Centro Federal de Educação
Tecnológica de Minas Gerais, Belo Horizonte.
ZAK, Stanislaw H; LILLO, Walter E.; HUI, Stefen. Learning and Forgetting in
Generalized-Brain-State-in-a-Box (BSB) Neural Associative Memories. Neural
Networks, v. 9, n. 5, 1996, p. 845-854.
117
ANEXO A – ARQUITETURA ARTÍFICE - 0.6.0
Figura A.1 – Modelo Conceitual da Arquitetura ARTÍFICE versão 0.6.0.
FONTE – PIRES, 2005. p. 57.

Documentos relacionados