arquiteturas cognitivas em robótica - fc.unesp.br · como robôs ou "players" em jogos...
TRANSCRIPT
Copyright@2012 DCA-FEEC-UNICAMP
Arquiteturas Cognitivas em Robótica
Ricardo R. GudwinDCA-FEEC-UNICAMP
[email protected]://www.dca.fee.unicamp.br/~gudwin
Introdução
Objetivo Visão introdutória sobre o uso de arquiteturas cognitivas
aplicadas ao controle de robôs. Conceito de Arquitetura Cognitiva
Arquiteturas computacionais de uso geral que provêm a infra-estrutura básica para a construção de agentes artificiais, tais como robôs ou "players" em jogos de computador.
Modelos cognitivos da mente humana• implementar versões computacionais de habilidades cognitivas, tais
como percepção, emoções, memória, tomada de decisão, comportamento reativo e deliberativo, motivações, e em alguns casos até mesmo consciência e emergência de linguagem.
Neste mini-curso: 4 das mais populares arquiteturas cognitivas: ACT-R, SOAR,
Clarion e LIDA
Propostas de Solução
Arquiteturas Embarcadas Controle do Robô embarcado junto com o hardware do robô Sistemas de Controle mais simples
• Restrições do hardware embarcado
Arquiteturas Cliente-Servidor Hardware do Robô possui somente algum tipo de conexão de
rede, exportando os dados dos sensores e recebendo os comandos dos atuadores
Sistemas de Controle mais Sofisticados• Algoritmos de controle são implementados em máquinas remotas,
mais poderosas
Arquiteturas Híbridas Layers embarcados + controlador remoto
Arquitetura Cliente-Servidor
Cliente:AlgoritmoInteligente
Servidor deSensores eAtuadores
Hardware do Robôou
Robô Simulado
Rede
Cliente: Algoritmo Inteligente
Aplicações Customizadas Sistemas Especialistas Redes Neurais Lógica Fuzzy Computação Evolutiva
Frameworks Gerais para Sistemas Inteligentes JESS (Sistema Especialista) CLIPS (Sistema Especialista) Joone, Encog and Neuroph (Redes Neurais) FANN e FANNJ (Redes Neurais) JFuzzyLogic, Fuzzy Framework (Lógica Fuzzy) ECF, JEAF, JCLEC (Computação Evolutiva)
Arquiteturas Cognitivas
Definição Estruturas e processos essenciais de um modelo cognitivo
computacional de domínio genérico, utilizado em uma análise ampla, em múltiplos níveis e múltiplos domínios, dos fenômenos da cognição e do comportamento.
Vantagens framework concreto para uma modelagem mais detalhada do
fenômeno cognitivo Características
estruturas essenciais, divisão em módulos, relações entre módulos, além de outros aspectos
Arquiteturas Cognitivas
Diferentes Frameworks Pressuposições cognitivas básicas
• o que há de comum nas diferentes propostas ? Dicotomias Essenciais
• implícito x explícito, procedural x declarativa, automática x controlada ?
Módulos de Memória• quais os subsistemas de memória essenciais ?
Abordagens Metodológicas• fitting de dados quantitativos, demonstrações qualitativas,
argumentos teóricos, experimentos mentais filosóficos, etc.
Arquiteturas Cognitivas
Processos Componenciais da Cognição facilitar a modelagem detalhada dos vários componentes e
processos que envolvem a mente conjunto inicial de pressuposições para o desenvolvimento de
modelos futuros Estruturas Essenciais
Estruturas Iniciais: Mínimas• Aprendizagem
Modelos Completos x Modelos Desenvolvimentais Objetivos
Interação com o ambiente Interação com outros agentes
Tipos de Arquiteturas Cognitivas
Tipos de Arquiteturas Simbólicas, Conexionistas ou Híbridas Centralizadas ou Distribuídas Representação uniforme do conhecimento, representações
heterogêneas, sem representação explícita Exemplos de Arquiteturas
ACT-R, SOAR, CLARION, LIDA, EPIC, PRODIGY, DEM, COGNET, Copycat, DUAL, Apex, Psi, Subsumption, ATLANTIS, Theo, ICARUS, AIS, MAX, Homer, Teton, RALPH-MEA, ERE
Principais Frameworks para Arquiteturas Cognitivas
ACT-R http://act-r.psy.cmu.edu/
SOAR http://sitemaker.umich.edu/soar/home
Clarion http://www.clarioncognitivearchitecture.com/
LIDA http://ccrg.cs.memphis.edu/framework.html
ACT-R
ACT-R Atomic Components of Thought – Rational Adaptive Control of Thought - Rational Carnegie Mellon University - John R. Anderson
Arquitetura Híbrida Estruturas Simbólicas
• sistema de produção Estruturas Sub-simbólicas
• conjunto massivo de processos paralelos, sumarizados por meio de equações matemáticas
• podem controlar processos simbólicos• funções de utilidade• processos de aprendizagem
Histórico do Desenvolvimento
Predecessor HAM (Anderson & Bower 1973)
Versões Teóricas ACT-E (Anderson, 1976)ACT* (Anderson, 1978)ACT-R (Anderson, 1993)ACT-R 4.0 (Anderson & Lebiere, 1998)ACT-R 5.0 (Anderson & Lebiere, 2001)
Implementações GRAPES (Sauers & Farrell, 1982)PUPS (Anderson & Thompson, 1989)ACT-R 2.0 (Lebiere & Kushmerick, 1993)ACT-R 3.0 (Lebiere, 1995)ACT-R 4.0 (Lebiere, 1998)ACT-R/PM (Byrne, 1998)ACT-R 5.0 (Lebiere, 2001)Windows Environment (Bothell, 2001)Macintosh Environment (Fincham, 2001)ACT-R 6.0 (Bothell 2004)
ACT-R
Conhecimento Declarativo coisas que somos consciente de que sabemos e que podemos
usualmente descrever para outras pessoas representado em termos de chunks
• configurações de elementos que codificam as diversas coisas que sabemos
Conhecimento Procedural conhecimento que exibimos por meio de nosso
comportamento, mas do qual não somos conscientes regras de produção especificam como buscar e utilizar o
conhecimento declarativo para resolver problemas
ACT-R
Memória Declarativa Memória Procedural
SimbólicoChunks: fatos declarativos
Produções: SE (cond) ENTÃO (ação)
Sub-simbólicoAtivação de chunks (probabilidade de
seleção)
Utilidade: Resolução de Conflitos
(probabilidade de uso)
ACT-R
Exemplos de Chunks Definindo tipos de chunks (categorias)(chunk-type name slot-name-1 slot-name-2 … slot-name-n)(chunk-type bird species color size)(chunk-type column row1 row2 row3)(chunk-type count-order first second)(chunk-type count-from start end)
Definindo chunks(add-dm (b ISA count-order first 1 second 2) (c ISA count-order first 2 second 3) (d ISA count-order first 3 second 4) (e ISA count-order first 4 second 5) (f ISA count-order first 5 second 6) (first-goal ISA count-from start 2 end 4))
ACT-R
Buffers Interface entre a memória procedural e os outros módulos do
sistema• Buffer 'goal': interface para o módulo 'goal'• Buffer 'retrieval': interface para o módulo 'retrieval'
Cada buffer só pode ter um único chunk a cada instante de tempo
Valores dos buffers podem ser alterados por produções Resolução de Conflitos
Somente uma produção pode disparar a cada instante Escolher a produção é uma resolução de conflitos
ACT-R
Exemplos de Produções(P counting-example English Description =goal> If the goal chunk is isa count of the type count state incrementing the state slot is incrementing number =num1 there is a number we will call =num1 =retrieval> and the chunk in the retrieval buffer isa count-order is of type count-order first =num1 the first slot has the value =num1 second =num2 and the second slot has a value we will call =num2==> Then =goal> change the goal number =num2 to continue counting from =num2 +retrieval> and request a retrieval isa count-order of a count-order chunk to first =num2 find the number that follows =num2)
ACT-R
Ações sobre os buffers =retrieval>
• Modifica valores dos slots do buffer +retrieval>
• Faz uma requisição ao módulo em questão -retrieval>
• Limpa o buffer em questão ?retrieval>
• Efetua 'queries' ao módulo
Modelo ACT-R Programa em LISP contendo os comandos ACT-R
ACT-R 5.0
Environment
Pro
du
ctio
ns
(Ba
sal G
an
glia
)
Retrieval Buffer(VLPFC)
Matching (Striatum)
Selection (Pallidum)
Execution (Thalamus)
Goal Buffer(DLPFC)
Visual Buffer (Parietal)
Manual Buffer (Motor)
Manual Module(Motor/Cerebellum)
Visual Module(Occipital/etc)
Intentional Module (not identified)
Declarative Module(Temporal/Hippocampus)
ACT-R
Integração com Software Versão Original
• Lisp• Dificuldade de integração com outras linguagens
jactr.org (versão em Java)• Não tão atualizada
Para saber mais ... Download do software no site
• http://act-r.psy.cmu.edu/ Tutoriais
• Explicando o uso dos diferentes modules Manual de Referência
SOAR
SOAR (State, Operator And Result) John Laird, Allen Newell, Paul Rosenbloom (1987) Carnegie-Mellon University
• University of Michigan
Arquitetura cognitiva Sistema de Símbolos Físicos Sistemas de Produção Busca em espaços de problemas
• estrutura de controle automática/deliberativa em dois níveis Aprendizagem contínua, determinada por impasses
SOAR
Estados e Operadores estruturas básicas suportadas pela arquitetura Estados: toda informação sobre a situação corrente, incluindo
a percepção e a descrição de metas correntes e espaços de problemas
Operadores: ocasionam passos no espaço de problemas Memória de Trabalho
percepções e hierarquia de estados e seus operadores associados
conteúdo pode acionar a memória de longo prazo ou ações motoras
SOAR
Memória de Longo Prazo Repositório do conteúdo processado pela arquitetura capaz de
produzir comportamento Memória Procedural: Regras
• acessada automaticamente durante os ciclos de decisão Memória Semântica: Estruturas Declarativas Memória Episódica: Episódios Memórias de longo prazo são impenetráveis
• não podem ser examinadas diretamente• certos procedimentos recuperam informações nas memórias de
longo prazo e armazenam na memória de trabalho
SOAR
Interface Perceptiva/Motora Mapeamentos do mundo externo para representações internas
na memória de trabalho e de representações internas para o mundo externo
Percepção e Ação podem acontecer em paralelo com o processo de cognição
Ciclo de Decisão Processo arquitetural básico suportando a cognição Seleção e Aplicação de Operadores Três fases
• Elaboração, Decisão, Aplicação
SOAR
Fase de Elaboração Acesso paralelo à Memória de Longo Prazo para elaborar o
estado Sugestão de novos operadores Avaliação dos operadores
Fase de Decisão Procedimento de Decisão
• Linguagem de Preferência por operadores Resultado
• Operador selecionado• Impasse
• Preferências incompletas ou conflito
SOAR
Fase de Aplicação regras são disparadas de forma a modificar os estados Seleção de um único operador por ciclo de decisão impõe um
gargalo cognitivo à arquitetura• limite no trabalho cognitivo por ciclo
Impasses sinalizam uma falta de conhecimento
• oportunidade para aprendizagem Acontecem automaticamente quando o conhecimento elicitado
pelo estado corrente não é suficiente para o procedimento de decisão selecionar um operador
SOAR
Linguagem de Impasses Independente de domínio
Quando ocorre um Impasse arquitetura automaticamente inicia a criação de um novo sub-
estado cuja meta é resolver o impasse impõe uma hierarquia de metas/sub-estados no contexto da
memória de trabalho Quatro Mecanismos de Aprendizagem
Chunking, Aprendizagem por Reforço, Aprendizagem Episódica, Aprendizagem Semântica
SOAR
Chunking cria automaticamente novas regras na memória de longo
prazo utilizando-se dos resutados gerados de um impasse previnem que um impasse ocorra em situações similares no
futuro Aprendizagem por Reforço
ajusta os valores das preferências por operadores Aprendizagem Episódica
armazena a história das experiências Aprendizagem Semântica
captura asserções declarativas mais abstratas
SOAR
Working Memory Elements (WME)(identifier ^attribute value)(identifier ^attribute-1 value-1
^attribute-2 value-2 ^attribute-3 value-3... ^attribute-n value-n)
(O43 ^isa apple ^color red ^inside O53 ^size small ^X44 200)(O87 ^isa ball ^color red ^inside O53 ^size big)(O53 ^isa box ^size large ^color orange ^contains O43 O87)(X44 ^unit grams ^property mass)
SOAR
Preferências(S1 ^operator O3 +)(S1 ^operator O3 > O4)
Produçõessp {blocks-world*propose*move-block (state <s> ^problem-space blocks ^thing <thing1> {<> <thing1> <thing2>} ^ontop <ontop>) (<thing1> ^type block ^clear yes) (<thing2> ^clear yes) (<ontop> ^top-block <thing1> ^bottom-block <> <thing2>) --> (<s> ^operator <o> +) (<o> ^name move-block ^moving-block <thing1> ^destination <thing2>)}
SOAR
Integração com Software Bindings para C++, Java, Tcl Conexão via Sockets (outras linguagens)
SML (SOAR Markup Language) É uma interface com a qual é possível integrar o SOAR com uma
vasta variedade de ambientes permitindo a realização de diversos tipos de simulações e a depuração dos seus resultados.
Baseado no envio e recebimento de pacotes XML• Exemplo:
<sml smlversion=”1.0” doctype=”call” soarVersion=”8.4.2” id=”1234” > <command name=”cmdline” output=”raw”> <arg param=”agent”>test-agent</arg> <arg param=”line”>source towers.soar</arg> </command> </sml>
SML
Um cliente pode comunicar-se diretamente com a arquitetura enviando e recebendo pacotes XML através de um socket mantido pelo SOAR na porta 12121 (porta padrão).
Entretanto, existe um conjunto de classes que fornecem uma interface de comunicação mais simples, ocultando todos os detalhes do envio e recebimento de pacotes XML's. É conhecido como o módulo ClientSML
ClientSML Disponível para as linguagens: C++, Java e Tcl
Passo-a-passo
Iniciar Kernel do Soar
Iniciar Agente
Carregar Produções
Atualizar o SOAR com os dados do ambiente
Rodar iterações no SOAR
Obter e decodificar comandos
Atualizar agente no ambiente
Exemplo em Java
// Create Soar kernel And AgentKernel kernel = Kernel.CreateKernelInNewThread();Agent agent = kernel.CreateAgent(agentName);
// Load some productions agent.LoadProductions(productionPath.getAbsolutePath());
// Get Soar input link in order to provide environment dataIdentifier inputLink = agent.GetInputLink();
// Setting Creature PositionIdentifier creaturePosition = agent.CreateIdWME(inputLink, "Position");agent.CreateFloatWME(creaturePosition, "X", 32);agent.CreateFloatWME(creaturePosition, "Y", 50);
Exemplo em Java
// Commit the data. Ready to run.
agent.Commit();
// Run Soar until it generates output or 15 decision cycles have passed
agent.RunSelfTilOutput();
// Go through all the commands we've received
int numberCommands = agent.GetNumberCommands() ;
for (int i = 0 ; i < numberCommands ; i++)
{// Update environment to reflect agent's commandstring speed = agent.GetCommand(i).GetParameterValue("action");
}
Maiores Informações
Para saber mais ... Download do software no site
• http://sitemaker.umich.edu/soar/home Tutoriais
• Explicando o uso do SOAR em diferentes situações SOAR Manual
• http://code.google.com/p/soar/wiki/SoarManual SOAR-RL Manual SML
• http://code.google.com/p/soar/wiki/SMLQuickStartGuide Outros documentos
A Arquitetura Cognitiva Clarion
Ron Sun University of Missouri-Columbia – EUA
Clarion Cognição Implícita e Explícita Interação Cognição-Motivação-Ambiente Monitoramento Metacognitivo e controle do processamento
cognitivo Módulos
• Action Centered Sybsystem: comportamento• Non-Action Centered Subsystem: conhecimento• Supervisão
• Motivational Subsystem• Metacognitive Subsystem
Representação: Top-Level x Bottom-Level
Top-level
Bottom-level
Action-centered
Explicit Representation
Action-centered
Explicit Representation
Action-centered
Implicit Representation
Action-centered
Implicit Representation
Non-action-centered
Explicit Representation
Non-action-centered
Explicit Representation
Non-action-centered
Implicit Representation
Non-action-centered
Implicit Representation
ACS NACS
ACS
Representação Explícita (“Top Level”) Chunks e Rules
Representação Implícita (“Bottom Level”) Redes Neurais (Hopfield, BackPropagation)
Ciclo Operacional do Módulo ACS Observa o estado corrente Computa o “bottom level” e determina uma ação Computa o “top level” e determina uma ação Seleciona uma ação apropriada combinando as ações do “bottom
level” e do “top level” Executa a ação selecionada e observa o próximo estado Executa aprendizado no “bottom level” e no “top level”
ACS
No “bottom level” IDNs: Implicit Decision Networks Estado corrente é representado por pares Dimensão-Valor
• (dim1, val1) (dim2, val2) … (dimn, valn)• Cada par corresponde a um nó de entrada da rede
Três tipos de entradasSensory Input (visual, auditory, …., etc.)Working Memory ItemsGoal Structure Item
Ações são representadas como nós no layer de saída• Três tipos de ações:
• WorkingMemoryActions, GoalActions, ExternalActions Cada ação consiste de um ou mais ActionDimensions
• (dim1, val1) (dim2, val2) … (dimn, valn)
ACS
O nível de ativação de um nó (em uma Implicit Decision Network) é calculado segundo a seguinte função de ativação
• Onde xi é o valor da entrada l (do nó), wi é o peso da entrada I e n é o número de entradas do nó
o=1
1+e−∑i=0
n
wi xi
ACS
Uma ação é escolhida baseada na distribuição de Boltzman de ativações dos nós do layer de saída
A probabilidade de se selecionar uma ação particular I no “bottom level” é (de acordo com a distribuição de Boltzman):
• Onde Ai é a ativação da ação i e t é o parâmetro de ruído (temperatura)
p (i∣x )=eAi/ t
∑j
eAj/t
Escolha da Ação de Saída no “Bottom Level”
WM Action
Network
WM Action
Network
External Action
Network
External Action
Network GS Action
Network
GS Action
Network
Goal
Structure
GoalStructure
Working
Memory
WorkingMemory
WM action
External action
WM content
GS action
Current goalSensory input
ACS
No “Top Level” Regras explícitas
• Pares Condição Ação→• Chunks
Podem vir de diversas fontes• Regras Extraídas e Refinadas (RER Rules)• Regras Aprendidas de Maneira Independente (IRL Rules)• Regras Fixas (FR Rules)
Chunks são coleções de pares Dimensão-Valor que representam ou condições ou ações no “top level”
• Chunk-idi: (dimi1, vali1) (dimi2, vali2)…(dimini, valini
)
e.g., table-1: (size, large) (color, white) (number-of-legs, 4) Cada chunk é representado por um nó no “top level” Cada par Dimensão-Valor é representado por um nó no “bottom level”
ACS
Uma regra “top level” contém uma condição e uma ação (possivelmente com múltiplas dimensões)
A ação está associada com os seguintes fatores: Base-Level Activation (BLA)
• Mede o quão recente uma regra foi utilizada (necessidade de uso)• Utilizada para determinar RTs (Response Times) e destacar regras
pertinentes• Ativação de decaimento gradual
Utilidade (U)• Mede a utilidade de uma regra, baseada no custo/benefício da
mesma (suporte de uma regra)• Utilizada para selecionar as regras
Seleção da Regra no “top level” Baseada em uma distribuição de Boltzman da utilidade da regra
ACS
Aprendizagem No “bottom level”
• Utiliza Backpropagation para realizar a correção do erro na IDN• Três métodos de aprendizagem:
• Standard Backpropagation• Q-Learning (reinforcement learning)• Simplified Q-Learning
No “top level”• Três métodos:
• Bottom-up rule extraction and refinement (RER)– Pares condição ação são extraídos do “bottom level” e refinados→
• Independent Rule Learning (IRL)– Regras de várias formas são geradas de maneira independente e
então refinadas ou deletadas• Fixed Rule (FR)
– Regras são obtidas de experiências passadas, ou fornecidas por fontes externas
ACS
Integração entre níveis Diversos métodos de integração:
• Seleção Estocástica• Combinação
• Retificação Bottom-Up• Orientação Top-Down (TD-Guidance)
Assumem uma rede no “bottom level” e um grupo de regras no “top level”
Conclusões positivas atingidas no “top level” podem inserir recomendações de ação no “bottom level”
Conclusões negativas atingidas no “top level” podem vetar ações no “bottom level”
ACS
Retificação Bottom-Up Saída do “bottom level” é enviada para o “top-level” “Top level” retifica e utiliza a saída do “bottom level” em conjunto
com o conhecimento do “top level”• e.g. combinação por soma ponderada
Guidance “Top-Down” Saída do “top level” é enviada para “bottom level” O “bottom level utiliza a saída do “top level”, junto com seu
próprio conhecimento, de forma a decidir a ação final
ACS
Working Memory Armazenamento de informações para uso temporário Prover suporte aos mecanismos de inferência e tomada de
decisão Uso da memória envolve
Codificação deliberada da informação Esvanecimento gradual da informação no tempo Atualização temporal da informação Capacidade limitada de armazenamento Múltiplos locais de armazenagem
• Seções específicas dependendo dos sensores Acesso à memória pode ser feito por ambos os níveis
Working Memory
Working Memory e o NACS WM pode ser utilizada para transmitir informações
entre os subsistemas ACS e o NACS Uso mínimo pelo NACS
• Informações declarativas adicionais sobre o estado corrente e ação corrente (incluindo-se episódios passados relacionados, que são armazenados no NACS
NACS
Non-Action Centered Subsystem Representação equivalente e semelhante à ACS Consequentes das regras não são Actions, mas sim Chunks Processamento iterativo e potencialmente bi-direcional
Representação Conhecimentos gerais: Memória Semântica Conhecimentos sobre experiências específicas do mundo:
Memória Episódica Vários tipos de buscas e inferências com esse conhecimento Controlado pelo ACS, por meio de suas ações
NACS
General Knowledge Store (GKS, i.e. semantic memory)
General Knowledge Store (GKS, i.e. semantic memory)
Episodic Memory (EM)Episodic Memory (EM)
Associative Memory Networks (AMN) – Auto-associative
Associative Memory Networks (AMN) – Auto-associative
Associative Memory Networks (AMN) – Hetero-associative
Associative Memory Networks (AMN) – Hetero-associative
Abstract Episodic Memory (AEM)
Abstract Episodic Memory (AEM)
GKS: General Knowledge Store
Nível “Top” Codifica conhecimento explícito Chunks: armazenam conceitos – co-ocorrência de micro-
características (do nível “bottom”)• Chunk-idi (dimi1, vali1) (dimi2, vali2) … (dimin, valin) • table-1 (type, table) (size, large) (color, white) (number-of-legs, 4)
Cada chunk é representado simultaneamente por um nó no nível “top” e uma micro-característica no nível “bottom”
Links entre chunks armazenam associações explícitas entre chunks (unidirecionais ou bi-direcionais)
• Condições: um ou mais chunks• Conclusão: um único chunk
Ativação de Chunks• Oriunda de uma entrada, regra associativa do nível “top” ou por
raciocínio baseado em similaridade da interação top-bottom
AMN: Associative Memory Networks
Nível “bottom” Conhecimento implícito (redes neurais) Cada chunk no nível “top” é representado por uma micro-
característica no nível “bottom” Ativação Bottom-up
• Por mapeamentos associativos ou processos baseados em similaridade
Várias possibilidades em capturar associações implícitas• Auto-associativas (Redes de Hopfield)• Hetero-associativas (Redes MLP com BP)
Ativação• Top-down ou• Bottom-up
NACS - Raciocínio
Começa com uma ação do ACS Ativações bottom-up ou top-down podem então acontecer
No nível “bottom” Começa com os nós de micro-características ativados, ativando
outras micro-características No nível “top”
Inferências começam a partir de todos os chunks ativados, aplicando-se as regras simultaneamente
Novos chunks são inferidos Integração entre níveis
Ativação bottom-up
NACS - Raciocínio
Tipos de Raciocínio Forward Chaining Forward Chaining baseado em Similaridade
• Threshold determina se uma conclusão é aceitável ou não
Coordenação entre NACS e ACS Usualmente o NACS é controlado pelo ACS
• Uma ação ACS comanda um passo de raciocínio no NACS
A saída do NACS é enviada novamente para o ACS
EM e AEM: Memória Episódica
EM: Memória Episódica Parte especial da GKS Experiências orientadas a ações
• Estímulos, respostas e consequências + TimeStamps Experiências não-orientada a ações
• Chunks e regras associativas + TimeStamps
AEM: Abstract Episodic Memory Informação sumarizada dos episódios da EM AFN: Action Frequency Network
• Mapeia os estados na distribuição de frequência das ações SFN: State Frequency Network
• Mapeia os estados/ações na distribuição de frequência dos estados sucessivos, bem como de reforços
MS: O Subsistema Motivacional
Goal Structure Goal Structure
Low-level Primary Drives Low-level Primary Drives
High-level Primary Drives High-level Primary Drives
Secondary Drives Secondary Drives
Sensory input
from MCS, ACS
Goal action
to MCS, ACS
Goal
Drive strengths
to MCS, etc.
MS: O Subsistema Motivacional
Motivação em Sistemas Inteligentes Sustentabil idade: Um agente precisa atender a suas
necessidades básicas, tais como fome e sede, evitar perigos, etc. Propósito: A ação de um agente deve ser orientada a um
propósito, e não aleatória. O propósito do agente está relacionado com sua sustentabilidade
Foco: Um agente deve ser capaz de focar em diferentes propósitos em diferentes instantes de tempo, e eventualmente mudar seu foco, momentaneamente ou de maneira permanente
Adaptabil idade: Um agente deve ser capaz de adaptar seu comportamento (ou seja, aprender), para melhorar seu desempenho
MS: O Subsistema Motivacional
Como representar Drives, necessidades, desejos, propósitos ? Representações explícitas ou implícitas ?
Subsistema Motivacional Permite a modelagem de drives e sua interação Provê o contexto e as metas para o ACS Representação Dual: Explícita x Implícita
Representação Explícita Metas específicas do agente Baseadas em estados de drives internos (oriundos do MCS)
MS: O Subsistema Motivacional
Especificações Ativação Proporcional: a ativação de um drive deve ser
proporcional a existência (ou ausência) de recursos Oportunismo: o agente deve considerar a oportunidade de se
mudar o comportamento diante do surgimento de um recurso Contiguidade das ações: o agente não deve ficar mudando
de objetivo o tempo todo. Persistência: após satisfazer um drive, o agente deve persistir
durante um tempo, até um certo nível de satisfação Interrupção em urgências: drives mais urgentes podem
interromper outros de menor prioridade Combinação de Preferências: Satisfazer diversos drives
simultaneamente, com menos efetividade deve ser preferível a satisfazer um único drive com maior efetividade
MS: O Subsistema Motivacional
Drives Primários Baixo nível: Buscar comida, buscar bebida, evitar perigo,
dormir, reproduzir, evitar saturação, curiosidade, evitar aborrecimento
Alto nível: Buscar proximidade com outros iguais, auto-estima, desejo de evolução
Drives Secundários Derivados dos drives primários Condicionamento, a partir de drives primários Drives assumidos de outros agentes, por meio de instruções ou o
desejo de agradar outros agentes
MS: O Subsistema Motivacional
Goal Structure Múltiplos drives podem estar ativados ao mesmo tempo, mas
apenas uma meta pode ser perseguida a cada instante Ações escolhidas no ACS dependem do estado corrente e da
meta corrente Goal Chunk
• Dimensão e parâmetros da dimensão Organizados em Estruturas
• Lista de Metas (Goal List)• Posição do Goal não é importante
• Pilha de Metas (Goal Stack)• Somente o Goal no topo do stack é acessado• Novos Goals podem ser inseridos ou removidos do topo da pilha
MCS: O Subsistema Metacognitivo
Evaluation/Reinforcement
Evaluation/Reinforcement
Level Selection Level Selection
Reasoning Selection Reasoning Selection
Learning Selection Learning Selection
Goal
Reinforcement
Goal Setting Goal SettingGoal Action
Input Selection Input Selection
Output Selection Output Selection
etc. etc.
Parameter Setting Parameter Setting
and Regulation
Monitoring Buffer
Monitoring Buffer
Filtering, Selection
State
Drives
MCS: O Subsistema Metacognitivo
Meta-Cognição Conhecimento do próprio processamento cognitivo Monitoramento e regulação de parâmetros dos processos
cognitivos Usualmente em serviço de algum objetivo concreto Equivalente a um ACS, mas operando sobre variáveis internas
Módulos Set-up de Goals, reforço, filtragem, aprendizagem e raciocínio,
seleção de nível, set-up de parâmetros, monitoramento de desempenho, e outros
O Framework de Software
A partir do final 2011 ocorreu uma reformulação na arquitetura e atualmente encontra-se na versão 6.1.0.7 (Beta)
Totalmente reescrita em C# utilizando .NET Framework Segundo os próprios autores: “we found it much easier to build
all of the new features and capabilities for version 6.1 of the CLARION Library in C#. This is owing to several language constructs in which Java is either lacking or (in our opinion) less proficient.”
Para o desenvolvimento em Linux, existe o projeto Mono:http://monodevelop.com
O Framework de Software
A arquitetura nada mais é que uma biblioteca (arquivo .dll) que provê um conjunto de classes e métodos para a sintetização de comportamentos cognitivos em agentes artificiais.
Para a sua utilização, basta criar um típico projeto em C# (Visual Studio ou Mono) e adicionar essa biblioteca como referência ao projeto.
Finalmente, basta prover à arquitetura um conjunto de entradas sensorias de modo que ao final de um ciclo de cognição, esta consiga especificar uma ação para o agente.
Exemplo em C#
// Input Sensorial Types DimensionValuePair hi = World.NewDimensionValuePair("Salutation", "Hello"); DimensionValuePair bye = World.NewDimensionValuePair("Salutation", "Goodbye");
// Output Types ExternalActionChunk sayHi = World.NewExternalActionChunk("Hello"); ExternalActionChunk sayBye = World.NewExternalActionChunk("Goodbye");
// Initialize AgentAgent John = World.NewAgent("John");
Exemplo em C#
// Create Decision Action Net SimplifiedQBPNetwork net = AgentInitializer.InitializeImplicitDecisionNetwork(John, SimplifiedQBPNetwork.Factory);
net.Input.Add(hi); net.Input.Add(bye); net.Output.Add(sayHi); net.Output.Add(sayBye);
// Associate net to the agent John.Commit(net);
Exemplo em C#
// Input Sensorial Signal si.Add(hi, John.Parameters.MAX_ACTIVATION);
// Perceive the sensory information John.Perceive(si);
// Choose an action chosen = John.GetChosenExternalAction(si);
// Give positive feedback. John.ReceiveFeedback(si, 1.0);
Maiores Informações
R. Sun, A Detailed Specification of CLARION 5.0 - Technical Report (2003) http://www.sts.rpi.edu/~rsun/sun.tutorial.pdf
Addendum 1: The enhanced description of the motivational subsystem http://www.sts.rpi.edu/~rsun/folder-files/sun-new-MS.pdf
Addendum 2: The enhanced description of similarity-based reasoning. http://www.sts.rpi.edu/~rsun/folder-files/SH-SBR.pdf
Addendum 3: The properties of the CLARION-H implementation. http://www.sts.rpi.edu/~rsun/folder-files/SH-CLARION-H.pdf
A Arquitetura Cognitiva LIDA
Stan Franklin (Artificial Minds) CCRG: Cognitive Computing Research Group
• Universidade de Memphis - EUA Conscious Mattie (CMattie – CM - 1999)
• Baseada na Teoria de um Workspace Global de Baars IDA – Intelligent Distribution Agent (2002)
• Suporta o modelo de consciência (framework) de Crick & Koch (2003)
LIDA – Learning IDA (2006)• Novos modelos de aprendizagem• Situação em 2012:
• Versão 1.2 disponível para download: Framework Java• http://ccrg.cs.memphis.edu/framework.html
LIDA Framework
É uma library Java que constitui um “esqueleto” para o desenvolvimento de sistemas cognitivos baseado no Modelo LIDA.
Para a criação de agentes com comportamentos inteligentes, é necessário a implementação de interfaces e classes específicas do framework e algumas configurações devem ser feitas através de arquivos XML.
Possui uma GUI (Graphical User Interface) que permite uma visualização em tempo real do conteúdo de cada módulo, valores associados a parâmetros, tasks e valores associados a variáveis.
LIDA Framework
Conceitos Gerais O Framework é composto por diversos Modules, de diversos
tipos diferentes Para muitos Modules, existem diferentes implementações já
providas pelo Framework. Deve-se apenas escolher se o Module irá ou não ser utilizado
Alguns Modules são específicos da aplicação, e devem ser gerados pelo usuário do Framework
Modules são implementados a partir da execução cíclica de FrameworkTasks, que são gerenciados a partir de um TaskManager
Cada Module pode ter seu TaskSpawner, que executará seus FrameworkTasks em diferentes frequências de execução
LIDA Framework
Conceitos Gerais Os diferentes Modules, utilizam-se em seu funcionamento, de
diferentes redes, que possuem um formato normatizado Para implementar essas redes, existem as classes Node, Link e
NodeStructure Os diferentes nós da rede possuem um nível de ativação Para modificar esse nível de ativação, esses nós implementam a
interface Activatible, que apresenta basicamente os métodos excite e decay
O framework permite a criação de estratégias de ativação, que são definidas em classes especializadas, chamadas strategies
Os nós que são passíveis de aprendizagem, devem implementar a interface Learnable, e incluem a definição de um base-level activation
LIDA Framework
Conceitos Gerais A configuração dos módulos a serem utilizados em uma aplicação
do framework é realizada por uma série de arquivos de configuração:
• Arquivo de configuração do framework: lidaConfig.properties• Arquivo de configuração do agente: arquivo XML contendo os
modules a serem utilizados e as classes que os implementam• Arquivo de configuração das redes: arquivo XML contendo as
definições de nós, links, estratégias e tarefas• Arquivos de configuração do uso da GUI: arquivos do tipo property,
com diversos parâmetros de configuração do uso da GUI A inicialização do agente é realizada por meio da classe
AgentStarter, que se encarrega de carregar todos os arquivos de configuração e inicializar o agente
LIDA Framework: Configuração das Redes
Factory Data Strategies
• Estratégias de ativação gerais utilizadas nos diferentes Modules, envolvendo decaimento, excitação, etc
Nodes• Diferentes tipos de nós, utilizados nos diferentes Modules
Links• Diferentes tipos de links, utilizados nos diferentes Modules
Tasks• Diferentes tarefas (codelets) utilizados nos diferentes Modules
LIDA Framework
A detecção de certos tipos de comportamentos, o ambiente de simulação e a percepção dos dados é feita “via código”. Exemplo:
public class ColorFeatureDetector extends BasicDetectionAlgorithm{
public void init() { super.init();}
public double detect() { int color = (Integer) sensoryMemory.getSensoryContent("visual",smParams); //cosine is a better comparison if(soughtColor == color){ return 1.0; } return 0.0; }
LIDA Framework
Modules Environment SensoryMemory PerceptualAssociativeMemory TransientEpisodicMemory DeclarativeMemory Workspace PerceptualBuffer EpisodicBuffer BroadcastQueue CurrentSituationalModel AttentionModule StructureBuildingCodeletModule GlobalWorkspace ProceduralMemory ActionSelection SensoryMotorMemory Agent UnnamedModule
P/ cada Module class associatedmodule Parâmetros TaskSpawner initialTasks InitializerClass
Listeners Descrevem a comunicação
entre Módulos
LIDA Framework
O Module Environment Representa o ambiente onde o framework sensoreia e atua Pode ser simulado, ou funcionar como um “front-end” para o
ambiente real, como por exemplo o hardware de um robô Dois métodos principais:
• getState: obtém o estado do ambiente, aceitando possivelmente parãmetros para a leitura de variáveis específicas
• processAction: atua sobre o ambiente
O Module SensoryMemory Usualmente também é implementado pelo usuário do framework
Outros Modules Possuem implementação default, mas podem ser modificados
pelo usuário do framework
Maiores Informações
Referência LIDA:http://ccrg.cs.memphis.edu/tutorial/introduction.html
The LIDA Framework as a General Tool for AGI – Parte 1http://www.youtube.com/watch?v=Rgjw8O3vLBs