Clarion
Objetivo
Iniciar o estudo da arquitetura Clarion, desenvolvida pelo grupo do Prof. Ron Sun na Universidade de Michigan. Para tanto, será necessário um pequeno estudo teórico do funcionamento da arquitetura, antes do desenvolvimento das atividades práticas. A arquitetura conta com uma home-page (Clarion Cognitive Architecture) onde a grande maioria do material necessário pode ser obtido. Mas, como a página de links para artigos desse site está com problemas, os links corretos dos artigos podem ser obtidos na página de publicações do projeto Clarion.
Dentre as diversas fontes importantes de informação será usado um texto relativamente antigo, mas que é bastante detalhado nas especificações do Clarion, o "R. Sun, A Detailed Specification of CLARION 5.0. Technical report. 2003". Embora esse documento referencie a versão 5.0 do Clarion, o detalhamento é similar para a versão 6.1.0.7, utilizada nesse curso.
Como material adicional, há uma apresentação do Prof. Ron Sun, disponível em http://www.cogsci.rpi.edu/~rsun/folder-files/, cujas respectivas conversões para PDF podem ser obtidas nos links:
CLARION-2012-Part1-Intro.pdf
CLARION-2012-Part2-ACS.pdf
CLARION-2012-Part3-NACS.pdf
CLARION-2012-Part4-MSMCS.pdf
CLARION-2012-Part5-Conclusion.pdf
Relatório das Atividades
Foi seguido o tutorial do Clarion, utilizando uma versão compactada contendo todas as partes em um mesmo documento. A versão mais recente do Clarion, até o momento, a 6.1.0.7, foi baixada e seus arquivos instalados na área de trabalho.
Como a versão 6.1.0.7 do Clarion foi desenvolvida em C# em .NET, foi utilizado o mono, que é uma implementação do .NET para Linux, e o monodevelop, uma ferramenta semelhante ao Netbeans, para desenvolvimento em C#.
Clarion, cujo nome é uma acrônimo de Connectionist Learning with Adaptive Rule Induction ON-line, é uma arquitetura cognitva híbrida, que incorpora a distinção entre processos implícitos e explícitos e se concentra na captura da interação entre esses dois tipos de processos. Foi proposta inicialmente em 1997 e vem sendo desenvolvida desde então pelo Dr. Ron Sun.
A arquitetura é composta de dois níveis, inferior e superior, cada um dedicado a um dos tipos de representação de conhecimento e capturando um dos processos correspondentes, implícito ou explícito. Em cada nível podem haver múltiplos módulos, incluindo ambos action-centered e non-action-centered, cada um desses residindo em subsistemas separados (ACS e NACS, respectivamente). O motivo da existência de ambos os módulos action-centered e non-action-centered em cada nível é porque o conhecimento action-centered (a grosso modo, conhecimento procedural) não é necessariamente inacessível (diretamente) e o conhecimento non-action-centered (a grosso modo, conhecimento declarativo) não é necessariamente acessível (diretamente).
O conhecimento action-centered, no nível inferior da arquitetura, é altamente modular, onde coexistem redes backpropagation, cada uma adaptada a uma modalidade específica, tarefa ou tipo de estímulo; e, no nível superior, podem residir em diferentes módulos em correpondência com a estrutura no nível inferior. Mas, em geral, o conhecimento explícito no nível superior é menos modularizado em comparação com o conhecimento implícito no nível inferior.
Há também uma memória de trabalho para armazenar informações, de forma temporária e transitória, usadas para facilitar a tomada de decisão. A memória de trabalho pode referenciar a memória de longo prazo e serve como sua substituta temporariamente.
Adicionalmente, há uma estrutura de metas, que de certa forma pode ser vista como parte da memória de trabalho. A estutura de metas é usada para organizar as atividades de um agente, direcionando as suas ações de acordo com os seus impulsos, desejos, necessidades, motivações e as interações entre eles. A estrutura de metas é uma parte necessária a uma arquitetura cognitiva.
Os módulos non-action-centered, em ambos os níveis, representam tipos de conhecimento mais estático, declarativo e genéricos. Esse conhecimento inclui o que é comumente referido com memória semântica, ou seja, conhecimento geral sobre o mundo em uma forma conceitual, simbólica. Entretanto, formas implícitas de módulos de memória semântica também estão incluídos no nível inferior da arquitetura. Esses módulos servem como memória de longo prazo do sistema que mantém o controle de todo o conhecimento non-action-centered, assim como informação episódica, podendo, assim, estar envolvidos em vários tipos de raciocínio.
Na arquitetura Clarion, tanto nos módulos action-centered quanto nos módulos non-action-centered, o conhecimento explícito é representado por regras e chunks.
Outro componente fundamental é o Subsistema Motivacional (MS), responsável pelos estados de motivação, impulsos ou metas. No Clarion os impulsos são a força motivacional por trás da tomada de decisão para a ação, assim como por trás dos processos non-action-centered. As metas são abstraídas dos impulsos, provendo um contexto e uma motivação específica e tangível para as ações. Ações são selecionadas com base em seus valores com relação ao objetivo corrente. Esses valores, ou avaliações, das ações são a motivação por trás das decisões por determinadas ações. Metas podem ser definidas com base em estados de impulso pelo subsistema de meta-cognição (MCS). Parâmetros para a tomada de decisão para a ação e parâmetros para o raciocínio podem também ser determinados com base em estatos motivacionais (novamente, pelo subsistema de meta-cognição).
Em resumo, há dois conjuntos de módulos constituindo dois subsistemas, ACS e NACS, ambos operando sob a influência dos processos motivacionais e meta-cognitivos. Os módulos no ACS incluem redes de decisão implícitas no baixo nível, grupos de regras explícitas no alto nível, a memória de trabalho e a estrutura de metas. Esses módulos são os componentes "anatômicos" primários da mente, pois decidem o que um agente faz a cada passo. Já os módulos no NACS incluem conhecimento geral explícito (memória semântica explícita) e redes de memória associativa implícitas (memória semântica implícita). Os módulos no NACS suplementam de várias maneiras os módulos no ACS.
|
Fig. 1 - Representação esquemática da arquitetura Clarion |
A biblioteca com a implementação do Clarion está empacotada como uma DLL, arquivo CLARIONLibrary.dll, que deve ser importada (referenciada) pelo projeto que a utilizará. Ela está organizada em "namespaces", a saber:
- Clarion – a base para a biblioteca; contendo três classes: World, AgentInitializer e ImplicitComponentInitializer.
- Clarion.Framework – contendo a maioria das classes necessárias para iniciar e executar uma simulação. A maior parte dessas classes pode ser correlacionada diretamente com os termos ou os conceitos da teoria Clarion.
- Clarion.Framewok.Core – contendo as construções necessárias para a operação do núcleo do sistema.
- Clarion.Framewok.Extensions – contendo as extensões para a biblioteca Clarion, como os módulos meta-cognitivos.
- Clarion.Framewok.Templates – contendo classes abstratas, interfaces, "delegates", etc. que atuam como modelos para a construçãode objetos personalizados definidos pelo usuário.
- Clarion.Plugins – contendo deiversos plugins e ferramentas que podem ser usados para ampliar as capacidades e configurações de agentes baseados no Clarion.
- Clarion.Samples – contendo diversos exemplos de ambientes que podem servir de guias para ajudar no aprendizado de como usar a biblioteca do Clarion.
Um guia básico para a configuração de simulações com o Clarion pode ser descrito pelos seguinte passos:
- Descrever as características e objetos no mundo
- Definir as ações e motivações (metas) que determinarão como os agentes irão interagir com o mundo
- Iniciar as funções internas dos agentes de forma que eles possam tomar decisões com base em suas percepções do mundo
- Prover mecanismos para habilitar os agentes a interagir com o mundo