You are here

Parte 05 - Intermediate MS & MCS Setup

Este tutorial descreve o uso dos DRIVEs - impulsos - e sua associação com a definição de METAS; nesse sentido, ele complementa a informação apresentada no terceiro tutorial.
 
 

Configurando e estimulando DRIVES

 
Os DRIVEs determinam o seu grau de ativação - drive-strength - utilizando dados ou fatores de informações INTERNAS quanto EXTERNAS - recebidas via "SensoryInformation".
 
A partir desses graus de ativação, módulos META-COGNITIVOS podem tomar decisões, direcionando todo o processamento cognitivo.
 
 
O framework Clarion já disponibiliza classes correspondentes a todos os drives primários, o que pode ser verificado na documentação com as subclasses da classe "Drive":
 
 

Inicialização de um Drive

 
Um exemplo de inicialização de um drive é apresentado a seguir:
 
 
FoodDrive food = AgentInitializer.InitializeDrive(John, FoodDrive.Factory, .5);
 
 
O tutorial não deixa claro, mas pelo contrutor da classe "Drive", o valor ".5" é o valor do déficit inicial do drive:
 
 
 
Este tutorial menciona a respeito da customização em criar um "DeficitChangeProcessor", indicando que esse assunto não é detalhado agora.
 
O tutorial informa também que os drives estão organizados nos seguintes grupos, dentro do nível inferior do MS:
 
  • Drives de aproximação ("approach");
  • Drives de recuo ("avoidance");
  • Drives tanto de aproximação quanto recuo ("both");
  • Todos os demais ("unspecified")
 

Definição do cálculo do drive-strength

 
Uma vez criado o drive, é preciso definir como será feito o cálculo do drive strength correspondente.
 
O tutorial indica que idealmente esse cálculo deve ser feito por uma rede neural (cita o tipo "BPNetwork") pré-treinada. Entretanto, como o pré-treinamento pode ser complicado, existe a extensão à teoria do Clarion representada pela classe "DriveEquation", que é utilizada para calcular o drive-strength.
 
A "DriveEquation" utiliza a seguinte equação para calcular seu resultado:
 
 
 
Parte das variáveis incluídas nessa equação são obtidas dos parâmetros do drive em questão - UNIVERSAL_GAIN, DRIVE_GAIN e BASE_LINE - e outra parte dos parâmetros do MS - SYSTEM_GAIN.
 
Um elemento "DriveEquation" deve ser ATIVADO para o drive em questão e esse, por sua vez, deve ser ATIVADO para o agente:
 
<drive>.Commit (<driveEquation>);
<agent>.Commit (<drive>);
 
 

Estimulando um drive

 
Uma maneira de definir o estímulo de um drive é a partir da "SensoryInformation" fornecida para cada ciclo cognitivo; como o método "World.NewSensoryInformation()" já pré-popula a "SensoryInformation" criada com as meta-informações do agente, basta acessar o objeto correspondente a cada drive desejado e alterar o valor do parâmetro STIMULUS:
 
si = World.NewSensoryInformation(John);
si[typeof(FoodDrive), FoodDrive.MetaInfoReservations.STIMULUS] = 1;
... //Elided initialization of other aspects of the sensory information
John.Perceive(si);
... //Elided code for running the rest of the task
 
 

Utilização de módulos Meta-Cognitivos a partir dos drives

 
O tutorial indica que a operação de um módulo meta-cognitivo é equivalente a de um "mini-ACS", onde no nível inferior ele pode operar a partir de qualquer combinação de "ImplicitComponent" - classe que os drives especializam - e no nível superior opera com instâncias de "RefineableActionRule"(s). Em outras palavras, um módulo meta-cognitivo é capaz de analizar o status de diversos drives e disparar ações a partir desse resultado.
 
O tutorial indica que a configuração de um módulo meta-cognitivo deve ser feita, em geral, a partir do nível inferior, uma vez que os processos meta-cognitivos tendem a ser sub-conscientes - difusos. No tutorial - e no código exemplo "HelloWorld - Full.cs" - é utilizado um "GoalSelectionModule"; o seguinte trecho de código ilustra a sua configuração completa, dentro do exemplo citado:
 
 
Através desse trecho é possível perceber como é o uso do "GoalSelectionModule":
 
  • É criada a rede neural de decisão a partir do método "AgentInitializer.InitializeMetaCognitiveDecisionNetwork()";
  • Nessa rede neural são definidas como ENTRADAS o nível (drive-strength) de cada um dos drives considerados;
  • São definidas como como SAÍDAS "GoalStructureUpdateActionChunk"(s) que definem METAS específicas;
  • São definidos GRAUS de RELEVÂNCIA, associando a ativação das METAS com os DRIVES;
  • Por fim a rede neural de decisão é ATIVADA no "GoalSelectionModule" e esse é ATIVADO no agente.
 
É salientado no tutorial que qualquer combinação de elementos pode ser incluída nessa rede neural, complexificando a decisão de qual META ativar o quanto for necessário.
 
 
 

Comentários finais

 
O tutorial indica que, uma vez configurados os drives e ao módulo meta-cognitivo, todo o processamento ocorre de maneira independente, a partir dos estímulos definidos para cada drive. O processamento pode ser acompanhado através do elemento "SensoryInformation" de cada ciclo cognitivo, uma vez que todos os níveis de estímulo das meta-informações do agente estão lá.
 
Este tutorial apresentou de maneira rápida o potencial do mecanismo de definição de METAS a partir de IMPULSOS, representando uma sofisticação adicional do framework Clarion.
 
 

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer