105
Copyright@2012 DCA-FEEC-UNICAMP Arquiteturas Cognitivas em Robótica Ricardo R. Gudwin DCA-FEEC-UNICAMP [email protected] http://www.dca.fee.unicamp.br/~gudwin

Arquiteturas Cognitivas em Robótica - fc.unesp.br · como robôs ou "players" em jogos de computador. Modelos cognitivos da mente humana ... comportamento reativo e deliberativo,

Embed Size (px)

Citation preview

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

O Problema: Controle de Robôs Autônomos Inteligentes

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

Evolução das Arquiteturas Cognitivas

Evolução das Arquiteturas Cognitivas

Evolução das Arquiteturas Cognitivas

Evolução das Arquiteturas Cognitivas

Evolução das Arquiteturas Cognitivas

Evolução das Arquiteturas Cognitivas

Evolução das Arquiteturas Cognitivas

Evolução das Arquiteturas Cognitivas

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

ACT-R

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

ACT-R 6.0 Ambiente ACT-R

• Ferramentas de depuração e teste de modelos

ACT-R

Versão 6.0 Novos módulos Novos buffers

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

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

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 Debugger

Visual SOAR

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

SOAR: Principais Classes do Framework

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

A Arquitetura Cognitiva Clarion

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

Classes Principais do Framework

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

A Arquitetura Cognitiva LIDA

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 GUI

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 - Overview

LIDA Framework

Arquivo de configuração: lidaConfig.properties

LIDA Framework:Configuração do 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