UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
BACHARELADO EM ENGENHARIA DE COMPUTAÇÃO
NATHALIA MORAES DO NASCIMENTO
ANÁLISE DE REPRESENTAÇÕES EM SISTEMAS DE
COMUNICAÇÃO EMERGENTES EM UMA COLÔNIA
DE AGENTES ROBÓTICOS
FEIRA DE SANTANA 2013
NATHALIA MORAES DO NASCIMENTO
ANÁLISE DE REPRESENTAÇÕES EM SISTEMAS DE
COMUNICAÇÃO EMERGENTES EM UMA COLÔNIA DE
AGENTES ROBÓTICOS
Trabalho de Conclusão de Curso apresentado ao Curso de Engenharia de Computação da Universidade Estadual de Feira de Santana, como requisito parcial à obtenção do grau de Bacharel em Engenharia de Computação.
Orientador (a): Angelo Conrado Loula
Feira de Santana 2013
AGRADECIMENTOS
Nossas conquistas não teriam o mesmo valor se não tivéssemos quem torcer por nós. Não sentiríamos o verdadeiro sabor da vitória, se não tivéssemos com quem comemorá-las.
Por isso, que acima de tudo, sou grata a Deus por ter colocado essas pessoas em meu caminho, que vibram com o meu sucesso e me dão apoio para continuar batalhando em busca de concretizar meus sonhos. Aqui, estou me referindo aos meus pais, Nilza e Geraldo; minhas irmãs, Júllia e Gabriela; meu namorado, Gabriel; meu orientador e amigo, Ângelo Loula; e aos amigos de verdade que conquistei antes e durante essa carreira universitária.
Também sou grata a Ele por ter me provido de características físicas e mentais que me tornassem capaz de concretizar este trabalho árduo.
RESUMO
Muitos trabalhos já desenvolvidos estudam a emergência de um sistema de comunicação confiável em uma colônia de agentes robóticos. Porém, grande parte desses trabalhos não deixam claros os caminhos pelos quais esse sistema de comunicação foi estabelecido durante o processo evolutivo, nem as representações envolvidas durante o ato de comunicar. Este trabalho, portanto, tem como objetivo mostrar que é possível analisar representações em sistemas de comunicação emergentes em colônias de agentes robóticos fazendo uso da metodologia proposta por Loula (2011) para análise de representações. Para isso, serão desenvolvidos experimentos baseados em uma plataforma de simulação, onde seja possível gerar robôs artificiais que possuam corpo e sensores e, através destes, possam interagir com um cenário e com outros robôs, sendo livres para estabelecer seu próprio sistema de comunicação. Dessa forma, esse trabalho traz uma continuidade ao trabalho de Loula (2011), que investiga representações em comunidades de agentes não-robóticos.
Palavras-chave: Robótica Evolutiva. Comunicação. Análise de Representações. Inteligência Artificial.
ABSTRACT
Many existing works already study the emergence of a reliable communication system in a colony of robotic agents. However, most of these works do not make clear the ways in which this communication system was established during the evolutionary process, neither the representations involved in the act of communicating. Thus, this paper aims to show that it is possible to analyze representations in emergent communication systems in a colony of robotic agents using the methodology proposed by Loula (2011) for analysis of representations. Some experiments will be developed making use of a simulation platform, where it is possible to generate artificial bodied robots with sensors and actuators. The robots can make use of these features to interact with a scenario and with other robots and can freely establish their own system of communication. Thus, this work provides continuity to the work of Loula (2011), which investigates representations of communication in communities of agents that are not based on robots.
Keywords: Evolutionary Robotic. Communication. Analysis of Representations. Artificial Intelligence.
LISTA DE FIGURAS
Figura 1 - Fluxograma de um Algoritmo Evolutivo. ... 18
Figura 2 - Modelo não linear de um neurônio. ... 20
Figura 3 - Modelo de uma Rede Neural Artificial em camadas totalmente conectada. ... 22
Figura 4 - Rede neural feedfoward multicamada com 11 conexões... 24
Figura 5 - Representação de uma solução para a rede neural da Figura 4. ... 24
Figura 6 - Procedimento de síntese de um robô a partir da computação evolutiva. ... 26
Figura 7 - Síntese de robôs através da computação evolutiva. ... 27
Figura 8 - Modelo de Comunicação de Peirce.. ... 29
Figura 9 - Representação gráfica do modelo de signo de Peirce.. ... 30
Figura 10 - Arquiteturas cognitivas para interpretação de signos comunicativos. ... 32
Figura 11 - Robôs S-bot (semelhante ao E-puck) emitindo luz azul ao redor da comida, que emite luz vermelha... 33
Figura 12 - Robô E-puck em um experimento de navegação... 35
Figura 13 - Arquitetura cognitiva geral para as criaturas de Loula(2011). ... 38
Figura 14 - Rede neural dos experimentos de Loula (2011). ... 39
Figura 15 - Simulação de ambiente e robô no Evorobot*. ... 45
Figura 16 - Robô E-puck. ... 46
Figura 17 - Processo de mutação adotado pela ferramenta de simulação: mutação por substituição aleatória. ... 48
Figura 18 - Cálculo do campo local induzido para o neurônio S0 ( de uma rede neural representada no Evorobot*. ... 50
Figura 19 - Interface gráfica do Evorobot*. ... 51
Figura 20 - Ambiente dos experimentos propostos. ... 54
Figura 21 – Cenário de 400 mm X 400 mm do experimento 1 ... 55
Figura 22 - Arquitetura cognitiva do agente do experimento 1. ... 58
Figura 23 - Cenário 600 mm X 600 mm do experimento 2 ... 61
Figura 24 - Visão Geral da arquitetura cognitiva para os agentes do experimento 2. ... 62
Figura 25 - Arquitetura cognitiva do agente do experimento 2. ... 65
Figura 27 - Atividade de fototaxia. ... 70
Figura 28 - Resposta vocal adotada pelo melhor indivíduo de cada geração. ... 71
Figura 29 – Sinal de saída dos neurônios da camada intermediária de categorização dos dados de leitura dos sensores de chão (H2 e H3) durante o processo evolutivo. ... 72
Figura 30 – Resposta motora e velocidade média do robô enquanto dentro da target azul. .... 73
Figura 31 - Saída dos motores e velocidade média para quando o robô está dentro da target verde. ... 75
Figura 32 - O melhor indivíduo em ação. ... 76
Figura 33 - Ativação dos neurônios da camada WTA de acordo com a leitura dos sensores de chão. ... 77
Figura 34 - Ativação dos neurônios da camada de saída, S0 e S1, de acordo com os sinais de saída dos neurônios da camada WTA... 79
Figura 35 – Sinal de saída dos neurônios da camada de saída, M0 e M1, que têm como sinal de entrada o sinal de saída dos neurônios intermediários (H0-H3).. ... 80
Figura 36 - Ativação de H0 e H1 para o cenário 1. ... 81
Figura 37 - Gráfico de desempenho dos melhores indivíduos ao longo das gerações. ... 83
Figura 38 - Resposta motora enquanto o robô estiver fora da target e detectar diferentes sinais auditivos. ... 86
Figura 39 - Comportamento do indivíduo de melhor desempenho em um teste de 150 ciclos no cenário 1 - target verde.. ... 87
Figura 40 - Ativação da camada de decisão do robô vermelho e do robô azul no cenário 1 da Figura 39. ... 88
Figura 41 - Resposta vocal dos robôs ao longo dos ciclos do teste de cenário 1. ... 89
Figura 42: Ativação dos motores de acordo com o posicionamento do robô vermelho ao longo dos ciclos.. ... 90
Figura 43 - Comportamento do indivíduo de melhor desempenho no cenário 2 - target azul..91
Figura 44 - Ativação da camada de decisão dos robôs no cenário 2 (Figura 43). ... 92
Figura 45 - Resposta vocal dos robôs no cenário 2. ... 94
Figura 46 - Ativação dos motores para o robô vermelho. ... 95
LISTA DE TABELAS
Tabela 1- Tabela de Transição do gráfico de ativação WTA - Cenário 2 - Robô Vermelho, apresentado na Figura 44.a. ... 93 Tabela 2 - Tabela de Transição do gráfico de ativação WTA - Cenário 2 - Robô Azul, apresentado na Figura 44.b. ... 93
SUMÁRIO 1 INTRODUÇÃO ... 12 1.1 OBJETIVOS ... 13 1.1 ORGANIZAÇÃO DA MONOGRAFIA ... 14 2 FUNDAMENTAÇÃO TEÓRICA ... 16 2.1 ALGORITMO EVOLUTIVO ... 16
2.2 REDES NEURAIS ARTIFICIAIS ... 19
2.2.1 O NEURÔNIO ARTIFICIAL ... 19
2.2.2 A ARQUITETURA DE REDES NEURAIS ... 21
2.2.3 PROCESSO DE ADAPTAÇÃO ... 22 2.3 ROBÓTICA EVOLUTIVA ... 25 2.4 COLÔNIA DE ROBÔS ... 27 2.5 COMUNICAÇÃO ... 29 2.6 TRABALHOS RELACIONADOS ... 32 3 MATERIAIS E MÉTODOS ... 42
3.1 EVOROBOT*: UMA PLATAFORMA PARA EXPERIMENTOS ENVOLVENDO ROBÓTICA EVOLUTIVA ... 43
3.1.1 DESCRIÇÃO DO AMBIENTE SIMULADO ... 44
3.1.2 ROBÔ E-PUCK ... 45
3.1.3 COMPONENTES DA FERRAMENTA ... 48
3.1.4 ETAPAS DE DESENVOLVIMENTO DE UM EXPERIMENTO COM EVOROBOT*52 3.2 OS EXPERIMENTOS ... 53
3.2.1 CONFIGURAÇÃO DO EXPERIMENTO BASE – PRODUÇÃO DE SIGNOS SIMBÓLICOS ... 55
3.2.2 CONFIGURAÇÃO DO EXPERIMENTO FINAL – PRODUÇÃO E
INTERPRETAÇÃO DE SÍMBOLOS ... 60
4 RESULTADOS E DISCUSSÕES ... 68
4.1 O EXPERIMENTO BASE – PRODUÇÃO DE SIGNOS SIMBÓLICOS ... 68
4.2 EXPERIMENTO FINAL – PRODUÇÃO E INTERPRETAÇÃO DE SÍMBOLOS ... 82
5 CONCLUSÃO ... 98 APÊNDICE A – SENSORES E ATUADORES DO ROBÔ SIMULADO NA PLATAFORMA EVOROBOT*
1 INTRODUÇÃO
Com a exigência de atividades mais complexas, a Inteligência Artificial passou a fomentar o estudo de populações envolvendo agentes, mudando o foco de atividades individuais para aquelas executadas de forma coletiva (MIROLLI; NOLFI, 2010). Dessa forma, tornou-se necessário compreender fenômenos coletivos, que provêm uma função adaptativa possível apenas para indivíduos que não estejam atuando isoladamente, a exemplo da coordenação de movimentos para a construção de ninhos e todas as possíveis formas de cooperação (FLOREANO; MATTIUSSI, 2008). Destaca-se também nesta nova perspectiva o estudo de como um sistema de comunicação pode emergir em uma comunidade de agentes autônomos (MITRI; FLOREANO; KELLER, 2010).
De acordo com Marocco e Nolfi (2007), o objetivo desta linha de pesquisa é identificar métodos de como uma população de agentes, que interagem entre si, equipados com um sistema de motor sensorial, podem desenvolver um sistema de comunicação e utilizar essa habilidade de comunicação para solucionar um determinado problema. Segundo o mesmo autor, encontrar a resposta para esses questionamentos, de acordo com um ponto de vista tecnológico, permitirá o desenvolvimento de robôs autônomos e métodos de comunicação inovadores a serem utilizados em sistemas envolvendo populações de agentes.
A evolução da comunicação em agentes artificiais tem se tornado um grande desafio na Inteligência Artificial, o qual ainda está muito longe de ser resolvido (ECAGENTS, 2004). Na Europa, por exemplo, o programa Future and Emerging Technologies do Information Society Technologies (IST) financiou 4,3 milhões de euros para o projeto Embodied and Communicating Agents (ECAgents), o qual envolveu pesquisadores de nove países (ECAGENTS, 2004). O seu propósito fundamental foi o de compreender a comunicação em colônias de agentes artificiais, por meio de teorias e sistemas científicos complexos, permitindo assim, por exemplo, o estudo de como a comunicação pode surgir e das condições que devem ser atendidas para a sua evolução. Por fim, objetiva-se utilizar essas informações para a elaboração de agentes que sejam capazes de interagir com o mundo físico sem a intervenção humana, podendo se comunicar entre eles e com outros agentes, inclusive humanos.
A questão sobre um sistema de comunicação poder emergir em colônias de robôs autônomos já foi amplamente estudada em trabalhos de pesquisadores renomados (MITRI; et.al, 2007; MIROLLI; NOLFI, 2010; GREEF; NOLFI, 2010; LOULA, 2011). Porém, a
análise dos processos de representação que ocorrem durante a comunicação entre os agentes artificiais ainda não recebeu a devida atenção da comunidade acadêmica:
Particularmente nos trabalhos que envolvem metodologias de evolução de redes neurais, as análises dos experimentos se concentram em observar o comportamento externalizado pelos agentes durante a evolução, descrevendo de forma limitada o funcionamento da arquitetura cognitiva neural quando a comunicação está em ação, nos poucos trabalhos que o fazem. (LOULA, 2011, p. 61).
Segundo Loula (2011), o seu trabalho traz uma abordagem inédita para esta linha de pesquisa, avaliando condições para emergência de comunicação baseada em diferentes modalidades de representação. A metodologia proposta por ele para análise de representações propõe que o sistema de comunicação emergente seja investigado com base no funcionamento interno do robô, tornando possível uma análise mais detalhada. Como as comunidades utilizadas por Loula (2011) em seus experimentos são formadas por agentes não-robóticos, novos experimentos devem ser elaborados como forma de também avaliar a aplicação da metodologia proposta em experimentos que envolvam comunidades de agentes robóticos:
A metodologia empregada envolveu a criação de um ambiente virtual simplificado dentro do simulador. Uma importante continuação envolve incorporar as nossas criaturas em robôs e situá-los em um ambiente mais complexo, em que sejam obrigados a lidar com questões sensoriais e motoras básicas que foram abstraídas nas simulações. Esta nova demanda cognitiva pode gerar mudanças na dinâmica de emergência de comunicação e demais processos envolvidos. (LOULA, 2011, p. 155).
Diante deste contexto, o presente trabalho visa contribuir para este tema de pesquisa, que busca compreender o processo de como a habilidade de comunicação pode emergir em uma população de agentes robóticos. Desta forma, será dada continuidade ao trabalho desenvolvido por Loula (2011), que firma uma questão relevante para solucionar este problema.
1.1 OBJETIVOS
O foco deste trabalho é analisar representações em redes neurais em experimentos de emergência de cooperação e comunicação em uma colônia de agentes robóticos autônomos.
Para um melhor entendimento dos termos envolvidos neste objetivo geral, estes serão brevemente descritos nesta seção de acordo com as metodologias adotadas para o desenvolvimento deste trabalho. De acordo com Loula (2011, p. 9), agentes autônomos “são entidades capazes de sensoriar e atuar em um ambiente, além de governar suas próprias ações”. Já a colônia de agentes significa o “plural de agentes que interagindo juntos exibem um desempenho coletivo da qual um único agente não pode ser capaz de realizar agindo só.” (ECAGENTS, 2004, p. 5). Seguindo as definições de Loula (2011):
Comunicação pode ser definida como um processo básico que envolve três elementos: um agente no papel de falante, uma representação ou signo, externalizado pelo falante, e um agente no papel de intérprete (ou ouvinte), que interpreta a representação. (LOULA, 2011, p.9, grifo nosso).
Outros objetivos podem ser destacados neste projeto, considerados importantes para alcançar o principal objetivo, sendo eles:
Selecionar uma ferramenta de simulação, que permita representar agentes em diferentes cenários;
Definir uma metodologia de evolução, que permita tornar os agentes aptos a definirem uma solução própria para resolver uma determinada tarefa;
Avaliar a metodologia de Loula (2011) para elaborar arquiteturas neuro-cognitivas para emergência de diferentes modalidades de representação;
Elaborar e desenvolver experimentos que permitam aos agentes pôr em prática atividades de cooperação e comunicação;
Avaliar a influência dos sensores sobre os motores do robô, levantando a interferência da rede neural para inibir ou excitar a ligação entre esses componentes;
Identificar e avaliar estratégias de emergência do processo de comunicação em uma comunidade de agentes;
Apresentar conclusões sobre as contribuições relevantes deste trabalho.
1.1 ORGANIZAÇÃO DA MONOGRAFIA
No capítulo seguinte serão apresentados os termos teóricos que deram embasamento ao desenvolvimento do trabalho proposto, tendo como foco as técnicas de Inteligência
Artificial que serão utilizadas para a metodologia de evolução utilizada. Também será feita uma revisão de trabalhos relevantes para o desenvolvimento de novos experimentos para a emergência de sistemas de comunicação em comunidades de agentes autônomos.
O capítulo 3 traz a descrição da metodologia aplicada, realizando uma apresentação da ferramenta de simulação utilizada e dos experimentos propostos, levantando as características do robô, do ambiente simulado e das metodologias de evolução e de avaliação aplicadas. O capítulo 4 traz uma análise dos resultados obtidos a partir dos experimentos desenvolvidos. Por fim, o último capítulo, trata das conclusões que podem ser feitas a partir do estudo desenvolvido, além de realizar um direcionamento para trabalhos futuros.
2 FUNDAMENTAÇÃO TEÓRICA
A Nova Inteligência Artificial, como muitas vezes é chamada (BROOKS, 1991; FLOREANO; MATTIUSSI, 2008; LOULA, 2011), vem mudando seu foco do cérebro humano e razões cognitivas para o estudo de diferentes organismos, processos e fenômenos. É nesse contexto que a Robótica Evolutiva aparece, permitindo investigar as ações comportamentais exibidas por um ou mais robôs a partir de uma relação existente entre as características do corpo do robô (sensores e atuadores), do ambiente em que se encontra e da sua capacidade cognitiva.
A dinâmica da Robótica Evolutiva deu origem a uma série de questões que vêm sendo trabalhadas na Inteligência Artificial, e assim serão abordadas neste trabalho, tendo como foco aquelas relacionadas à emergência da cooperação e comunicação em sistemas coletivos de robôs autônomos. Para auxiliar na compreensão da Robótica Evolutiva, que é uma metodologia que faz uso da Computação Evolutiva para desenvolver robôs autônomos, e suas questões, primeiramente serão descritas, neste capítulo, os temas da Inteligência Artificial que são utilizados em sua concepção. As fundamentações de Algoritmos Evolutivos e Redes Neurais Artificiais abordadas nas seções seguintes se baseiam fortemente nas descrições do tema apresentadas no livro de Floreano e Mattiussi (2008), pesquisadores de referência na área do desenvolvimento e análise de experimentos envolvendo tarefas coletivas para agentes artificiais.
Finalizando o capítulo de fundamentação teórica, será feita uma revisão de literatura de trabalhos relacionados à elaboração e análise de experimentos que envolvam agentes autônomos e a emergência de comunicação.
2.1 ALGORITMO EVOLUTIVO
Diante da sofisticação e adaptabilidade proporcionada aos sistemas biológicos, que são resultantes de um processo de evolução natural, cientistas da computação e engenheiros sentiram-se motivados a tentar replicar mecanismos do sistema evolutivo para serem utilizados na elaboração de sistemas artificiais, buscando resolver problemas dificilmente solucionados através de métodos analíticos (FLOREANO; MATTIUSSI, 2008).
O algoritmo evolutivo artificial pode ser definido, de forma resumida, como uma coleção de indivíduos em um espaço de busca, onde cada indivíduo representa uma diferente solução para o problema determinado. O indivíduo é representado por um cromossomo, e o objetivo da busca é identificar aquele com melhor material genético. A qualidade (fitness) de cada indivíduo é medida por uma dada função de aptidão, a qual mede quão bom aquele determinado indivíduo é quando comparado com a aptidão de toda a população. Os indivíduos mais aptos terão maior possibilidade de procriar, podendo assim, ocasionar na redução dos indivíduos menos aptos.
A sequência de genes, diferentemente representada por cada um dos indivíduos, pode ser definida no desenvolvimento do algoritmo em diferentes formatos, a exemplo de binário, cadeias de caracteres, valores numéricos, etc. Supondo que o material genético de um indivíduo desse espaço de busca seja representado por um vetor p com m posições:
p ={x1, x2, x3, ..., xm}, onde cada x representa um gene, também conhecido como variável da solução.
O fluxograma genérico ilustrado na Figura 1 mostra as etapas que compõem um algoritmo evolutivo. Primeiramente, é necessário formar um espaço de busca inicial, representado pela primeira geração. Para determinar o tamanho dessa população inicial, toma-se como batoma-se a experiência prática e o custo computacional de rodar o experimento. De acordo com Floreano e Mattiussi (2008), no caso de experimentos que envolvam a evolução de robôs, que requerem uma interação com um ambiente real, o tamanho de sua população é muitas vezes menor do que cem. Normalmente, os indivíduos que farão parte dela têm seu genótipo formado aleatoriamente, sorteando cada um dos genes que irão compô-lo, buscando também garantir uma heterogeneidade para a geração inicial. No caso de representação binária, por exemplo, cada genótipo é criado por uma sequência aleatória de 0s e 1s. A qualidade dessa geração será medida pela função de aptidão de cada indivíduo, que o avalia em relação ao objetivo desejado.
Enquanto a geração criada não atender o critério de parada, novas gerações vão sendo formadas. O critério de parada pode ser a identificação de um indivíduo que satisfaça os critérios de desempenho (função de fitness), pela média de aptidão de todos os indivíduos de uma geração ou pelo alcance do número máximo de gerações que poderão ser formadas ao longo do processo evolutivo.
A seleção natural permite preservar os indivíduos melhor adaptados de uma geração, dando a estes uma maior chance de procriar. Seguindo este conceito, o algoritmo deverá selecionar os melhores pais da geração atual, com o intuito de que eles possam transferir o seu
material genético para a próxima geração. Assim, a primeira etapa do processo de reprodução é a de seleção. Existem diversas formas de executar este processo de seleção. Dentre os mais conhecidos, está a seleção por roleta, a seleção por torneio e a seleção por ranking (FLOREANO; MATTIUSSI, 2008).
Figura 1 - Fluxograma de um Algoritmo Evolutivo.
Para garantir que os bons indivíduos não sejam perdidos nas gerações futuras, prevenindo a perda da melhor solução já encontrada, pode-se utilizar uma estratégia popular de composição da nova população, conhecida como elitismo. O elitismo consiste em manter na nova geração os n melhores indivíduos selecionados, ou seja, um de seus filhos terá uma cópia de seu material genético.
Quando uma geração não atende ao critério de parada, dentre todas as soluções possíveis para o problema que ela aborda, provavelmente a melhor de suas soluções não seja boa para resolvê-lo. Assim, é necessário aplicar os operadores genéticos, de forma que seja possível introduzir diversidade na população, podendo assim, inserir novas soluções nesse espaço de busca. Um dos operadores é o cruzamento, que a partir da combinação de material genético de dois ou mais indivíduos pais, gera um novo indivíduo. O outro operador, a mutação, irá a partir de um indivíduo selecionado para reprodução, gerar novos indivíduos
com um código genético um pouco alterado, a partir de pequenas mudanças aleatórias ocasionadas em seu genótipo. Para mais detalhes sobre os diferentes tipos de seleção e operadores genéticos, consultar Floreano e Mattiussi (2008).
2.2 REDES NEURAIS ARTIFICIAIS
Nem todos os seres vivos são dotados de um sistema neural. Alguns organismos, a exemplo do paramécio, mesmo sem possuir neurônios, conseguem fazer coisas como comer, se movimentar em direção a luz e escapar de situações adversas (FLOREANO; MATTIUSSI, 2008). Porém, o sistema neural traz pelo menos duas vantagens em relação aos organismos sem cérebro, a exemplo de transmissão seletiva de sinais entre partes do corpo e adaptação através de plasticidade sináptica. Essas características permitem a formação de corpos mais complexos e convergência mais rápida no processo de evolução para adaptação às mudanças do ambiente (FLOREANO; MATTIUSSI, 2008), justificando o grande interesse em modelar a operação do sistema neural para a construção de máquinas inteligentes.
Da busca de pesquisadores por criar modelos computacionais que representem as funcionalidades do cérebro de uma maneira simples, surgiu a Rede Neural Artificial (RNA). A Rede Neural Artificial é um sistema baseado nos comportamentos do cérebro, de aprender, errar e fazer descobertas. Essa busca é estimulada pela capacidade do cérebro de realizar certos processamentos, como reconhecer e classificar padrões, percepção, controle motor, etc. (HAYKIN, 2001).
Como a RNA é composta por neurônios e por suas conexões (assim como a própria rede neural biológica), para entender o seu funcionamento é necessário compreender a modelagem desses elementos. Assim, os tópicos a seguir descrevem, respectivamente, uma breve abordagem sobre o neurônio artificial e sobre algumas possíveis formas de conexão entre esses neurônios.
2.2.1 O Neurônio Artificial
Na década de 1940, McCulloch e Pitts (1943) propuseram uma modelagem matemática para o neurônio biológico, tomando como base os seguintes fatores: neurônios comportam-se como somadores algébricos, pois possuem os dentritos, que são as entradas, e
podem adicionar entradas excitatórias ou subtrair entradas inibitórias, a partir da ligação com outros neurônios, além de possuírem propriedades de limiar. A Figura 2 mostra um modelo não linear de um neurônio artificial, podendo ser identificados três elementos básicos do modelo neuronal (HAYKIN, 2001):
a. Um conjunto de sinapses ou elos de conexão (W), cada uma caracterizada por um peso ou força própria. Especificamente, um sinal Xj na entrada da sinapse j conectada ao neurônio k é multiplicado pelo peso sináptico Wkj;
b. Um somador ( ) para somar os sinais de entrada, ponderados pelas respectivas sinapses do neurônio;
c. Uma função de ativação para restringir a amplitude de saída do neurônio a um valor finito. Tipicamente, o intervalo normalizado da amplitude do sinal de saída de um neurônio é escrito como um intervalo unitário fechado [0,1] ou alternativamente [-1,1].
Figura 2 - Modelo não linear de um neurônio.
Fonte: Haykin (2001, p. 38).
O modelo neuronal da Figura 2 inclui também um bias aplicado externamente, representado por . “O bias tem o efeito de aumentar ou diminuir a entrada líquida da função de ativação, dependendo se ele é positivo ou negativo, respectivamente” (HAYKIN, 2001, p.37). Nesta figura, o efeito do bias é produzido adicionando uma nova sinapse, em que a sua entrada é fixa em +1 e o seu peso sináptico é igual ao bias .
Em termos matemáticos, esse neurônio k pode ser descrito a partir das seguintes equações (HAYKIN, 2001):
(1)
(2) (3)
“onde , ,..., são os sinais de entrada; , ,..., são os pesos sinápticos do neurônio k; é a saída do combinador linear devido aos sinais de entrada; é o bias; é o campo local induzido; é a função de ativação; e é o sinal de saída do neurônio.” (HAYKIN, 2001, p.37). Esses são os termos adotados para a descrição deste trabalho.
O sinal de saída (y) de um neurônio depende da função de ativação que está sendo utilizada, a que varia de acordo com a finalidade para a qual se pretende aplicar a rede neural. A depender da função de ativação, a saída do neurônio pode ser somente positiva ou não. Para mais informações sobre tipos de funções de ativação, ver Haykin (2001, p.38).
2.2.2 A Arquitetura de Redes Neurais
“A arquitetura de uma rede neural determina as funcionalidades e os tipos de algoritmos que podem ser utilizados” (FLOREANO; MATTIUSSI, 2008, p. 189). Ela define a forma como os neurônios serão conectados. A rede neural pode ser constituída de uma camada de entrada, formada por neurônios sensoriais que recebem estímulos do ambiente, e de uma camada de saída, formada por neurônios motores, responsáveis por produzirem uma resposta final da rede (FLOREANO; MATTIUSSI, 2008).
Algumas redes podem ter uma ou mais camadas ocultas, formadas por neurônios intermediários (ver Figura 3). Os neurônios intermediários estabelecem conexões entre neurônios, sem ter uma ligação direta com o ambiente. Estes neurônios podem modificar a intensidade do sinal transmitido pelos neurônios da camada de entrada para os neurônios da camada de saída, transformar um sinal excitatório em um sinal inibitório, podendo bloquear a atividade de um neurônio da camada de saída quando este sinal de entrada estiver presente, ou, por exemplo, permitir que um sinal de entrada seja excitado apenas na presença dos sinais de outros neurônios da camada de entrada (FLOREANO; MATTIUSSI, 2008). Estes
neurônios ocultos capacitam a rede a aprender tarefas complexas, extraindo progressivamente as características mais significativas dos padrões de entrada (HAYKIN, 2001).
Figura 3 - Modelo de uma Rede Neural Artificial em camadas totalmente conectada.
.
Fonte: Haykin (2001, p. 48).
Para elaborar a arquitetura de uma rede neural, alguns fatores precisam ser estabelecidos, como o número de camadas da rede, o número de neurônios por camada, os tipo de conexões, se é forward, backward ou lateral, e o grau de conectividade entre os neurônios. A rede neural será classificada a depender dessas características estabelecidas. A rede mais simples é a feedforward, em que a saída de cada neurônio depende unicamente da saída dos neurônios das camadas inferiores. Essas redes não podem detectar ou produzir sequências temporais, ao menos que sejam compostas por neurônios dinâmicos, que são aqueles providos de conexões recorrentes de neurônios da mesma camada ou neurônios das camadas superiores (FLOREANO; MATTIUSSI, 2008).
2.2.3 Processo de Adaptação
“Adaptação é a principal característica do sistema nervoso. Este permite ao organismo modificar e desenvolver comportamentos no intuito de manter ou melhorar a sua
probabilidade de sobreviver em ambientes dinâmicos e parcialmente desconhecidos.”
(FLOREANO; MATTIUSSI, 2008, p. 196).
Existem diversos algoritmos que permitem o processo de adaptação de uma rede neural artificial. Estes são basicamente classificados em dois grupos: o de aprendizado supervisionado e o de aprendizado não-supervisionado. No primeiro deles, o processo de treinamento é guiado de acordo com feedbacks positivos ou negativos, modificando os pesos com o intuito de reduzir a diferença entre a resposta esperada e a resposta dada pela rede. “No aprendizado não supervisionado, a rede neural aprende algumas propriedades da distribuição dos padrões de entrada sem que o ambiente ou o usuário forneça qualquer feedback.”
(FLOREANO; MATTIUSSI, 2008, p. 198). Todos os algoritmos de aprendizado compartilham algumas características em comum, sendo uma delas a inicialização com valores aleatórios dos pesos sinápticos utilizados no primeiro teste (FLOREANO; MATTIUSSI, 2008).
Uma técnica alternativa ou complementar aos algoritmos de aprendizado para adaptação de uma rede neural é o uso de um algoritmo evolutivo. “Existem pelo menos dois motivos para utilizar o algoritmo evolutivo ao invés do algoritmo de aprendizado: (a) não existem restrições ao tipo de arquitetura; (b) não é necessário ter uma descrição detalhada da resposta da rede para cada padrão [...]” (FLOREANO; MATTIUSSI, 2008, p. 238).
Para a evolução de uma rede neural, suas características podem ser codificadas em genomas artificiais, normalmente representados como uma string de valores reais ou binários, e evoluídas de acordo com um critério de desempenho. A forma mais comum de evoluir uma rede neural consiste em codificar e evoluir o valor dos pesos sinápticos (incluindo o bias).
Tomando como exemplo a rede neural feedfoward multicamada ilustrada na Figura 4, na qual o valor de cada peso e bias assume uma sequência binária de três bits, e, supondo um processo de adaptação por evolução, o espaço de busca do algoritmo evolutivo será uma coleção de indivíduos representados por genomas similares ao da Figura 5. O genoma ilustrado é composto de onze genes, onde cada gene corresponde ao peso de uma conexão entre neurônios ou ao peso sináptico que representa o bias de um neurônio, respeitando a sequência em que são apresentados na Figura 4.
O processo de evolução dessa rede neural é similar ao apresentado na seção 2.1 deste capítulo. A princípio, uma população é gerada com indivíduos representando diferentes sequências de pesos sinápticos que possam ser utilizadas nessa rede. Cada uma dessas combinações de pesos é atribuída à rede neural, de forma que a saída da rede possa ser avaliada diante de um determinado contexto. Caso o critério de parada desse processo
evolutivo não seja atingido, alguns indivíduos desse espaço de busca serão selecionados para formar uma nova população, em que novas combinações de pesos para essa rede neural são formadas. Os indivíduos selecionados podem dar origem a novos indivíduos a partir dos operadores genéticos de mutação e cruzamento. Com a nova geração formada, esse procedimento pode ser repetido até que encontre uma combinação de pesos que seja suficientemente boa para gerar o resultado esperado para a rede. A evolução de redes neurais será novamente abordada na seção a seguir, constituindo o tema de Robótica Evolutiva.
Figura 4 - Rede neural feedfoward multicamada com 11 conexões. E1, E2 e E2 representam os neurônios da camada de entrada; I1 e I2 da camada intermediária; e S1 da camada de saída.
Figura 5 - Representação de uma solução para a rede neural da Figura 4. (a) O genoma. (b) Cada um dos 11 genes do genoma de (a) contém a sequência binária de três bits para um dos pesos sinápticos.
2.3 ROBÓTICA EVOLUTIVA
Em 1984, Braintenberg publicou um livro que teve um forte impacto na Inteligência Artificial. Isso por que, na época investia-se apenas em sistemas inteligentes que faziam uso de habilidades cognitivas, a exemplo de jogos de xadrez, sem que fosse necessário aplicar características corporais e comportamentais nos mesmos, já que esses atributos não recebiam a devida atenção. Em seu livro, foi feito uma descrição de uma série de veículos imaginários, que se fazendo de artefatos tecnológicos simples, conseguiam executar comportamentos complexos, quando dispostos em um ambiente. Esses comportamentos relatam respostas motoras diante de estímulos sensoriais do ambiente. A partir das descrições dos veículos de Braintenberg pôde-se observar que o maior responsável pelo comportamento complexo exibido pelo robô era a interação do mesmo com o ambiente, e não a complexidade de seu cérebro. Ele concluiu que a neurociência e a ciência cognitiva poderiam alcançar aumentos consideráveis se passassem a considerar a combinação entre o cérebro e sistemas comportamentais e incorporados (FLOREANO; MATTIUSSI, 2008).
Assim, uma nova linha de robôs surgiu, que são aqueles baseados em comportamentos. São robôs construídos com um design que os permitem operar no mundo real. O robô baseado em comportamentos precisa estar situado, que é possuir os sensores e motores necessários para atuar no ambiente; e incorporados, de forma que possam interagir com o mundo real, e não somente o simulado.
A partir de 1990, pesquisadores iniciaram a aplicação dos conceitos da evolução artificial para gerar os controladores dos robôs baseados em comportamentos, dando origem assim, a Robótica Evolutiva (FLOREANO; MATTIUSSI, 2008). A partir da robótica evolutiva tornou-se possível a elaboração de robôs autônomos, diferente do sistema de controle tradicional, em que há um design definido por trás do comportamento pré-estabelecido do robô e que o robô é condicionado a decisões, não sendo capaz de agir diante de situações imprevistas. A robótica evolutiva tem por objetivo tornar os robôs capazes de solucionar um determinado problema, apenas avaliando quão bom é a sua solução.
A ideia base para a robótica evolutiva é a síntese de robôs através da computação evolutiva, de forma que seja possível gerar agentes incorporados, que ao interagir com um determinado ambiente, possam desenvolver suas próprias habilidades ou até mesmo a sua morfologia (NOLFI; FLOREANO, 2002). Esse procedimento de síntese, representado na Figura 6, pode ser descrito da seguinte forma:
Primeiramente, uma população inicial de diferentes cromossomos artificiais, onde cada um codifica o sistema de controle de um robô, são aleatoriamente criados e colocados no ambiente. Cada robô é então livre para agir (mover, olhar ao redor, manipular) de acordo com a genética específica para o seu controlador, o qual enquanto executa várias atividades, vai evoluindo automaticamente. Os robôs de melhores fitness poderão reproduzir, gerando cópias do seu genótipo, podendo haver adição de mudanças introduzidas pelos operadores genéticos (mutação, cruzamento). Este processo é repetido por um número de gerações até que um indivíduo satisfaça a função de fitness estabelecida pelo experimento. (NOLFI; FLOREANO, 2002, p.1).
Figura 6 - Procedimento de síntese de um robô a partir da computação evolutiva.
De acordo com Floreano e Mattiussi (2008), a maioria dos casos utiliza-se uma rede neural artificial no controlador evolutivo do robô, já que as redes neurais podem facilmente ser mapeadas para sensores, exibem comportamento intrínseco a novas situações sensoriais, são compatíveis tanto com os algoritmos de aprendizado, como com os algoritmos evolutivos, entre outras vantagens.
Na robótica evolutiva, o comportamento de um robô é resultante do seu sistema de controle, das suas características (o seu “corpo”) e das características do ambiente no qual está inserido. Na rede neural que controla o robô, a camada de entrada codifica as ativações dos sensores do robô e a camada de saída codifica os valores atribuídos aos motores do robô, a exemplo de um direcionamento ou velocidade (ver Figura 7).
A Figura 7 representa o treinamento de um robô a partir de um processo evolutivo. Cada indivíduo de uma geração representa a combinação de pesos sinápticos para a rede neural que
controla o robô. Neste exemplo, as entradas da rede são os dados de leitura dos sensores do robô e as saídas são valores que determinam a velocidade e manobra das rodas desse robô. Para avaliar quão bom é o indivíduo, o robô controlado por essa rede neural é colocado em ação no cenário, o pontuando por desempenho de acordo com o cumprimento da tarefa determinada. Os indivíduos de melhor fitness serão selecionados para povoar a próxima geração. Esse procedimento é repetido até que o critério de parada seja atendido, que pode ser, por exemplo, um limite máximo de gerações ou encontrar uma codificação para o controlador neural que permita ao robô executar a tarefa determinada de forma satisfatória.
Figura 7 - Síntese de robôs através da computação evolutiva. Na parte esquerda da figura estão os indivíduos que codificam o controlador neural do robô, apresentado na parte superior direita. O lado
inferior direito apresenta o robô que está sendo avaliado em um determinado cenário.
Fonte: Adaptado de Nolfi (2010, p.7).
2.4 COLÔNIA DE ROBÔS
Com o aumento da complexidade das atividades a serem executadas, a Inteligência Artificial passou a fomentar o estudo de populações envolvendo agentes, mudando o foco de atividades individuais para aquelas executadas de forma coletiva (MIROLLI; NOLFI, 2010). Dessa forma, tornou-se necessário compreender fenômenos coletivos, que provêm uma
função adaptativa possível apenas para indivíduos que não estejam atuando isoladamente, a exemplo da coordenação de movimentos para a construção de ninhos e todas as possíveis formas de comunicação (FLOREANO; MATTIUSSI, 2008).
Para o desenvolvimento de experimentos voltados a investigação desses fenômenos, normalmente faz-se uso de colônias de robôs simples e autônomos. São robôs que não possuem sensores sofisticados e não fazem uso de algoritmos robustos baseados em um controlador central, mas que quando em grupo, conseguem exercer atividades complexas. “A ideia principal da colônia de robôs é tirar proveito das simples interações entre os robôs, no intuito de solucionar problemas complexos por meio de comportamentos emergentes, similar ao que os insetos sociais fazem.” (FLOREANO; MATTIUSSI, 2008, p. 531).
Alguns experimentos envolvendo colônias de robôs serão brevemente descritos na seção 2.6, de Trabalhos Relacionados. Estes experimentos são baseados na investigação das condições evolucionárias necessárias para a emergência desses fenômenos coletivos, e de que forma esses fenômenos afetam na dinâmica de organização da colônia, seja assumindo um comportamento de competição ou cooperação.
“A evolução ocorre em populações onde a luta por recursos limitados implica em uma competição com outros indivíduos no ambiente.” (FLOREANO; MATTIUSSI, 2008, p. 547). Porém, existem condições evolucionárias que permitem a grupos de indivíduos, de mesma espécie ou não, emergir comportamentos de cooperação (alguns desses fatores serão abordados nos experimentos analisados na seção 2.6). A depender das condições em que um grupo é submetido, diferentes formas de cooperação podem emergir. A forma mais comum é aquela em que a cooperação provê um benefício aos indivíduos envolvidos sem ocasionar um custo ao cooperador, podendo esse benefício ser obtido de forma imediata ou a longo prazo (FLOREANO; MATTIUSSI, 2008).
Outra forma de cooperação é o altruísmo, em que a cooperação implica em um custo de fitness para o indivíduo cooperador. Um exemplo de altruísmo é quando um dos indivíduos do grupo alarma a presença de um predador. Apesar de beneficiar todos do grupo, que poderão fugir a partir do sinal de alerta, ele passa a ter maiores chances de atrair o predador, tornando-se uma presa mais vulnerável (FLOREANO; MATTIUSSI, 2008). De acordo com Hamilton (1964), quanto maior a semelhança genética entre os indivíduos, maiores são as chances da relação de altruísmo emergir. Para grupos formados por indivíduos geneticamente diferentes, o altruísmo poderá emergir se no processo de evolução for utilizada uma seleção por grupo (teoria melhor descrita na seção 2.6).
Para compreender a cooperação entre agentes, o estudo da comunicação tornou-se fundamental (MITRI; FLOREANO; KELLER, 2010), pois é através da comunicação que é possível a transferência de informações entre os membros de uma colônia. Porém, “as condições que conduzem a evolução da comunicação e os caminhos pelos quais sistemas confiáveis de comunicação tornam-se estabelecidos, permanecem largamente desconhecidos, pois a comunicação não deixa um registro fóssil” (FLOREANO; MATTIUSSI, 2008, p.577). Assim, conforme descrito por Marocco e Nolfi (2007), um dos objetivos desta linha de pesquisa é poder identificar a partir de experimentos artificiais, métodos de como uma população de agentes, que interagem entre si, equipados com um sistema de motor sensorial, possam desenvolver um sistema de comunicação e utilizar essa habilidade de comunicação para solucionar um determinado problema. Os resultados dessa pesquisa podem tanto auxiliar na elaboração de robôs capazes de se comunicar, como no estudo biológico sobre sistemas de comunicação.
Vale ressaltar que os sistemas de comunicação utilizados nos experimentos desta linha de pesquisa não são pré-estabelecidos desde o início, conforme metodologia descrita em ECAGENTS (2004), mas deve emergir espontaneamente através das interações entre os agentes, o ambiente e as atividades que lhes são atribuídas.
2.5 COMUNICAÇÃO
Conforme ilustrado na Figura 8, a “comunicação pode ser definida como um processo básico que envolve três elementos: um agente no papel de falante, uma representação ou signo, externalizado pelo falante, e um agente no papel de intérprete (ou ouvinte), que interpreta a representação.” (LOULA, 2011, p.9).
Figura 8 - Modelo de Comunicação de Peirce. “S” indica um signo.
Tomando como fundamento as teorias de Charles Sanders Peirce, uma das figuras mais importantes para a concepção da teoria dos signos, pode-se definir signo como “algo que representa para alguém alguma coisa em algum aspecto ou capacidade” (Peirce, 1935, §2.228). Durante a comunicação ocorrem diferentes processos de representação, nos quais um signo S, sob determinado aspectos, poderá representar algo para alguém (um agente que irá interpretá-lo), sendo esta coisa representada, nomeada de objeto. O signo S ao ser interpretado pode gerar um efeito I ao intérprete (ver Figura 9). Um possível efeito gerado é uma mudança de comportamento do intérprete.
Figura 9 - Representação gráfica do modelo de signo de Peirce. Um signo S representa um objeto O gerando um efeito I (interpretante).
Fonte: Loula (2011, p.27).
De acordo com a teoria de Peirce, “a natureza da relação entre o signo e o objeto estabelece a ‘divisão mais fundamental dos signos’: signos podem ser ícones, índices ou símbolos.” (LOULA, 2011, p.28). Para saber se um signo é um ícone, índice ou símbolo, é necessário observar o contexto em que está sendo utilizado. A interpretação da definição desses termos por Peirce foi retirada de Loula (2011, p.28):
Pelo fato de compartilhar características com seu objeto, ícones representam o objeto através de semelhança ou similaridade. O desenho de um objeto, um diagrama e ‘projeções sensoriais’ são exemplos de ícones. Apesar de ter propriedades em comum com seu objeto, os ícones não dependem da presença deles para representá-los [...] Já índices precisam que seu objeto exista de fato para que possam representá-lo. Mas índices não têm características em comum com seu objeto, não se assemelham a ele. Para que o índice possa representar seu objeto, eles devem estar ligados fisicamente, espaço-temporalmente, existencialmente [...] Exemplos de índices são fumaça, que se relaciona com fogo, em uma relação causal, um grito que nos chama a atenção e nos direciona ao emissor [...] Uma vez que não possuem relação de similaridade ou espaço-temporal com seu objeto, um símbolo só se torna um signo devido ao intepretante que atua mediando a relação entre signo e objeto, e atribui ao signo a capacidade de se conectar ao objeto [...] Esta associação que o intérprete faz pode então ser originada de
uma convenção estabelecida por uma comunidade de usuários, ou de hábito ou disposição [...]
Loula (2011, p.29) também apresentou em seu trabalho um exemplo bastante interessante para a compreensão dos termos citados:
Um brasileiro gritando “Comida!” para um grupo de crianças de várias nacionalidades, terá sua vocalização interpretada de maneira diferente a depender do intérprete: se for uma criança brasileira, saberá que a expressão referencia um alimento, mesmo sem vê-lo, interpretando como um símbolo, mas uma criança japonesa precisará se voltar para o emissor, buscando elementos espaço-temporalmente conectados com este grito, agindo de forma indicial. Um desenho de um livro no letreiro em frente a uma livraria será índice da loja, mas também um ícone do que pode ser encontrado na loja. A interpretação de um signo, o efeito que ele causa no intérprete, é fundamental para determinar que classe sígnica estamos tratando.
Antes de um signo se tornar um símbolo, ele pode ser um ícone ou um índice. Na situação descrita por Loula (2011), por exemplo, caso essa criança japonesa passasse a ouvir a expressão “Comida!” mais vezes e identificasse o objeto no cenário, ela poderia passar a associá-los, de tal forma que, posteriormente conseguisse relacionar o signo ao objeto, sem que o objeto precisasse estar presente, caracterizando assim, um símbolo.
De acordo com Loula (2011, p. 19) um desafio científico, filosófico e tecnológico é “entender os processos de aquisição e interpretação de representações simbólicas, de forma que seja reconhecida a conexão que existe entre o símbolo e aquilo que ele representa, seja por uma conexão direta ou por meio de outras representações fundamentadas”.
Em seu trabalho, Loula (2011) infere sobre a relação de arquiteturas cognitivas utilizadas no controlador de agentes artificiais e a interpretação de signos comunicativos. Ele elaborou arquiteturas cognitivas (ver Figura 10), baseando-se nas características necessárias para descobrir como a relação entre o objeto O e o signo S são estabelecidas pelo intérprete, as quais ele chama de requisitos cognitivos. Se o intérprete tiver uma associação já internalizada entre O e S, de tal forma que S já determine O, uma interpretação simbólica é considerada. Caso o intérprete tenha sua atenção direcionada por S para uma ocorrência espaço-temporal de O, de forma que não exista uma associação S-O internalizada, trata-se de uma interpretação indexical (LOULA, 2011):
Na arquitetura do tipo 1, um signo produzido por um falante e recebido por um intérprete é interpretado por este com uma resposta motora direta, sem relacionar internamente o signo com o que ele se refere, sendo capaz de
produzir uma interpretação do signo como índice. Já na arquitetura do tipo 2, o signo pode ser relacionado na memória associativa com um referente e o fato de ser relacionado a este referente geraria uma resposta motora, sendo portanto uma interpretação simbólica (LOULA, 2011, p.58)
Figura 10 - Arquiteturas cognitivas para interpretação de signos comunicativos.
Fonte: Loula (2011, p. 58).
Por mais que o tipo de arquitetura cognitiva utilizada já dê pistas sobre a interpretação dos signos comunicativos, “é preciso analisar o seu ato de interpretação em ação para saber como qualificá-lo” (LOULA, 2011, p. 57). Um agente com arquitetura cognitiva do tipo 1 pode interpretar um signo em índices ou ícones. Já aquele com do tipo 2, apesar de ter os recursos necessários para interpretar um signo como símbolo, também pode interpretá-lo em índices ou ícones. Em caso extremo, em ambas as arquiteturas, é possível nem mesmo interpretar o signo como algo que representa alguma coisa (LOULA, 2011).
2.6 TRABALHOS RELACIONADOS
Muitos trabalhos vêm sendo desenvolvidos com a finalidade de investigar as condições que conduzem a evolução da comunicação e os caminhos pelos quais os sistemas confiáveis
de comunicação tornam-se estabelecidos. Projeto como o ECAgents vem fomentando experimentos que demonstram que os princípios evolutivos que governam a evolução da vida social, também funcionam em grupos de agentes artificiais, submetidos a seleção artificial, “comprovando que a transferência de conhecimentos sobre a biologia evolutiva podem ser aplicáveis à elaboração de grupos eficientes de robôs” (MITRI; FLOREANO; KELLER, 2007, p.11).
Existe uma discussão sobre os tipos de representação envolvidos na comunicação entre agentes, que segundo Loula (2011), não é abordada na maioria dos trabalhos que investigam a emergência da comunicação, apesar de existir os aparatos necessários para fazê-la. Conforme pesquisa realizada por Loula (2011), grande parte desses trabalhos focam a análise dos experimentos nos resultados comportamentais do agente, não abordando o que os sinais comunicados representam para o robô.
Como parte do projeto ECAgents, Floreano et al. (2007) conduziu um estudo em torno das condições evolutivas para a emergência da comunicação, conseguindo demonstrar através de um experimento que formas sofisticadas de comunicação, incluindo a comunicação altruísta e sinalizações enganosas, auxiliando no processo de cooperação e/ou competição, podem evoluir em grupos de robôs dotados de uma rede neural simples. Para essa investigação, grupos de robôs dotados de uma câmera de visão panorâmica, um anel de led em torno de seu corpo, de forma que possam emitir uma luz azul (Figura 11), e um sensor de chão, foram colocados aleatoriamente em um ambiente com porções espalhadas de comida e veneno, as quais emitem uma luz vermelha que pode ser visualizada pela câmera do robô. O tipo da porção só pode ser identificado com uma grande aproximação do robô, a partir da leitura do seu sensor de chão.
Figura 11 - Robôs S-bot (semelhante ao E-puck) emitindo luz azul ao redor da comida, que emite luz vermelha.
Os robôs descritos são controlados por uma rede neural feed-foward com 10 neurônios na camada de entrada e 3 na camada de saída. Cada neurônio da camada de entrada é conectado com todos os neurônios da camada de saída, sendo que os da entrada codificam a leitura de seus sensores, e os da saída controlam a rotação e velocidade de dois motores laterais, além da ativação ou não do anel de luz azul.
Todos os robôs recebem a tarefa de se aproximar da porção de comida e não se aproximar da porção de veneno, sendo que, inicialmente, não recebem informações alguma de como se mover e identificar porções de comida e veneno. Assim, diferentes experimentos foram realizados e submetidos a análises comparativas. Em uma parte dos experimentos, os robôs eram dotados do anel de led, podendo utilizá-lo para comunicar aos demais robôs sobre a posição da porção de comida ou de veneno, e em outra parte, não.
Com base nos experimentos conduzidos, Floreano et al. (2007) além de mostrar através de seus experimentos que a habilidade de emitir luz azul normalmente provoca um melhor desempenho para execução da tarefa, verificou que para surgir um sistema de comunicação estável entre os robôs é necessário que eles sejam homogêneos (na execução da tarefa, os robôs participantes são clones, com a mesma rede neural) ou que sejam selecionados por grupo e não individualmente (um indivíduo é selecionado de acordo com o desempenho do seu grupo).
Apesar de Floreano et al. (2007) ter demonstrado que houve a emergência de um sistema de comunicação em sua comunidade, não deixa claro o que essa luz azul exatamente representa para os robôs falantes e intérpretes.
Greef e Nolfi (2010) também investigaram as condições nas quais uma colônia de robôs pode desenvolver a habilidade de se comunicar em um experimento de navegação. Dois robôs E-puck (Figura 12), dotados de sensor de chão e câmera foram posicionados em diferentes áreas do chão (um na branca e o outro na preta), e realizaram uma permutação frequente entre elas.
A arquitetura da rede neural do robô é composta por três camadas, sendo que a camada de entrada possui neurônios para codificar a posição atual do robô e a posição do ciclo passado, além de codificar a leitura dos sensores de infravermelho, microfone e câmera. A camada de saída inclui dois neurônios que codificam a velocidade das duas rodas do robô e um neurônio que codifica um valor do sinal a ser vocalizado pelo robô. O modelo da rede neural com recorrência permite aos robôs extrair e comunicar informações que não estão atualmente disponíveis através de seus sensores.
Figura 12 - Robô E-puck em um experimento de navegação.
Fonte: Greef e Nolfi (2010, p.3)
Antes de demonstrar os resultados obtidos, Greef e Nolfi (2010) esclarecem quais as características são pré-determinadas pela configuração do experimento e quais não foram especificadas e são livres para variar durante o processo evolutivo. Ele define a cooperação entre os agentes como um aspecto já pré-determinado, já que os dois robôs do time possuem as mesmas características genéticas e a operação de seleção é baseada no desempenho do time, e não no desempenho individual, assim como comprovado por Floreano et al.(2007). As habilidades motoras e de comunicação exibidas pelos robôs não são pré-determinadas, já que o modo em que o robô reage a um dado sensorial depende dos parâmetros que são codificados em seu genoma, ou seja, o processo evolutivo determina as características de comportamento do robô diante de um número grande de diferentes soluções de comportamento.
Os resultados dos experimentos indicaram que os robôs desenvolveram habilidades de comunicação bastante ricas, conseguindo gerar informação com valor comunicativo e reagindo apropriadamente a sinais explícitos, que são aqueles produzidos pelo robô, e implícitos, que é a detecção do posicionamento assumido por um outro robô, de acordo com o contexto em que os sinais foram detectados.
Para realizar este experimento, foi utilizada a ferramenta Evorobot, simulando o robô E-puck e evoluindo o seu controlador neural. Posteriormente, selecionou-se a configuração para a rede neural que apresentou um melhor desempenho na simulação e a utilizou para testar no robô real. A partir de uma análise qualitativa entre os resultados dos experimentos, também foi possível observar que o comportamento exibido em hardware é bastante similar ao comportamento exibido durante o processo de simulação (Greeff; Nolfi, 2010).
Apesar de Greef e Nolfi (2010) mapearem em seu trabalho os comportamentos motores e comunicativos desenvolvidos pelos robôs evoluídos com as situações que os ocasionaram, eles também não deixam claro o que estes sinais de fato representam e nem de que forma são interpretados pelos robôs (LOULA, 2011). O relacionamento entre o sinal de
comunicação e o seu significado é interpretado a partir do comportamento exibido pelo robô, não apresentando assim esse relacionamento de forma clara e detalhada. Neste contexto, Nolfi (2010, p.20) descreve significado como “uma categoria que permite que os indivíduos se comportem adequadamente em um determinado contexto”:
[...] O significado transmitido por sinais é extraído ou gerado através da execução de um comportamento (ou uma combinação de comportamentos)[...] Em outras palavras, a informação categórica transmitida por um sinal se baseia no comportamento. [...] O efeito da percepção do sinal é a execução do comportamento que seja apropriado às circunstâncias atuais. (NOLFI, 2010, p.20)
Loula (2011) realizou uma análise dos trabalhos descritos aqui e de outros autores, e verificou que apesar de constatar nos experimentos algo que é comunicado por um falante para um intérprete, demonstrando ter alguma capacidade de representação para os agentes, a maioria dos autores não dão ênfase a essa temática, e os que dão, possuem uma interpretação diferente para os conceitos de signos adotados por Peirce:
Particularmente nos trabalhos que envolvem metodologias de evolução de redes neurais, as análises dos experimentos se concentram em observar o comportamento externalizado pelos agentes durante a evolução, descrevendo de forma limitada o funcionamento da arquitetura cognitiva neural quando a comunicação está em ação, nos poucos trabalhos que o fazem. (LOULA, 2011, p.61)
Em seu trabalho, Loula (2011) também relaciona as arquiteturas neurais utilizadas nos experimentos de Floreano et al.(2007) e o de Greef e Nolfi (2010), descritos anteriormente, com as arquiteturas cognitivas propostas (Figura 10 da seção 2.5), com o intuito de adequar os signos comunicativos emergentes desses experimentos ao quadro teórico da semiótica de Peirce. Como na arquitetura da rede neural de Floreano et al.(2007) havia uma conexão direta entre as camadas de entradas e as de saídas, esta pode ser classificada como uma arquitetura cognitiva do tipo 1, já que não há capacidade dos robôs estabelecerem uma associação S-O:
Os signos (sinais luminosos), produzidos por robôs falantes quando próximos a uma fonte de comida, são interpretados pelos robôs intérpretes pela produção de uma resposta motora de deslocamento na direção do falante, mas os robôs não são capazes de relacionar aquilo que o signo representa até chegar à fonte de comida, que está espaço temporalmente associada ao signo indexical. (LOULA, 2011, p.58)
Já o experimento de Greeff e Nolfi (2010), Loula (2011, p. 59) classifica a arquitetura neural proposta como uma arquitetura cognitiva do tipo 2: “A presença de uma camada intermediária com associações recorrentes possibilita a princípio que estes possam estabelecer associações entre estímulos sensoriais”. De acordo com Loula (2011, p. 59), os tipos das interpretações dos signos não podem ser confirmados porque os autotes Greef e Nolfi (2010) “somente analisam os sinais de entrada e de saída da rede neural, mas não descrevem detalhes suficientes da dinâmica da rede neural que permitam afirmar como são interpretados e o que representam de fato os signos produzidos pelos robôs”.
Diante desse cenário em que diversos trabalhos sobre a emergência de comunicação entre agentes artificiais já foram realizados, mas poucos sobre os processos representacionais, Loula (2011) desenvolve experimentos com o intuito de demonstrar que comunicação baseada em diferentes modalidades de representação pode emergir a depender da arquitetura cognitiva utilizada. A maioria dos trabalhos tenta desvendar os mistérios de como um sistema de comunicação emerge em uma comunidade de agentes autônomos a partir dos comportamentos observados ao longo da evolução. Loula (2011, p.70) justifica a importância de uma investigação neuro-cognitiva a partir do seguinte argumento: “é mais difícil começar de fora e tentar descobrir o funcionamento interno de um sistema natural a partir de dados de observação do que analisar o comportamento de um sistema artificial que nós mesmos concebemos.”
O cenário dos experimentos concebidos por Loula (2011) envolvia um grupo de criaturas artificiais, que podiam interagir entre si, posicionados em um ambiente repleto de recursos positivos e negativos. Estes agentes tem como tarefa a coleta de recursos presentes no ambiente. Os mesmos são constituídos de sensor visual, sensor auditivo, para receber vocalizações de outros agentes, e um canal de som, para produzir vocalizações. Como o sensor auditivo possui um alcance maior que o sensor visual, essa característica traz uma vantagem adaptativa para o uso dele (LOULA, 2011).
A arquitetura cognitiva geral estabelecida para as criaturas do experimento de Loula (2011) é apresentada na Figura 13. De acordo com Loula (2011, p.76), essa arquitetura permite que “dados sensoriais auditivos possam ser interpretados por dois caminhos mutuamente exclusivos: pelo caminho 1 são interpretados de forma reativa, possivelmente indexical; pelo caminho 2, são interpretados por associações com dados visuais estabelecendo relações simbólicas”. A partir dessa arquitetura geral, três tipos de arquiteturas cognitivas são estabelecidos, sendo as duas primeiras já abordadas neste capítulo: a arquitetura cognitiva do tipo 1, em que dados sensoriais visuais e auditivos são tratados separadamente, a arquitetura
cognitiva do tipo 2, em que um dado sensorial da audição é mapeado em um dado visual, e a arquitetura base, em que um dado auditivo não é interpretado, desconsiderando o dado sensoreado.
A simplicidade e facilidade de análise foram requisitos importantes para escolha da arquitetura cognitiva das criaturas simuladas, uma vez que para compreender o processo de representação que ocorre é necessário ‘abrir a cabeça’ das criaturas e ‘olhar o que ocorre lá dentro’, não bastando uma análise comportamental delas. (LOULA, 2011, p.92)
Figura 13 - Arquitetura cognitiva geral para as criaturas de Loula(2011).
Fonte: Loula (2011. p.76).
Assim, dois conjuntos de experimentos, com níveis de complexidade diferentes, foram desenvolvidos. No primeiro conjunto de experimentos, um agente falante é colocado de forma fixa na posição de um recurso de alto valor, vocalizando um mesmo signo pré-determinado. O objetivo deste experimento é analisar a emergência de interpretação de vocalizações emitidas, investigando a “forma de interpretação que as criaturas-intérpretes realizam para os signos produzidos, se é indexical, simbólica ou sem interpretação” (LOULA, 2011, p.96).
O segundo conjunto de experimentos permite avaliar as condições para emergência de interpretação-produção sígnica em uma comunidade de criaturas artificiais, nos quais todos os elementos envolvidos estarão sujeitos ao processo evolutivo. De acordo com Loula (2011, 83), “todas as criaturas são potenciais intérpretes e falantes, podendo produzir dois tipos de signos [...] os signos produzidos pelas criaturas têm 3 bits, e podem ser signos 1, iniciados com bits 01, ou signos 2, iniciados com bits 10”, sendo um dos três bits gerado de forma aleatória. Os elementos do cenário a serem sensoreados também são representados em sequências binárias.
Para controlar os agentes desse segundo conjunto de experimentos, foi utilizado uma rede neural do tipo feed-forward com três camadas (Figura 14). As arquiteturas cognitivas do tipo 1 e 2 se diferenciam pela camada intermediária da rede. Na arquitetura do tipo 1, existem duas camadas intermediárias, na qual uma categoriza os dados sensoriais visuais, e outra para categorizar os dados sensoriais auditivos. Na arquitetura do tipo 2, a camada intermediária a qual o dado sensorial auditivo se conecta, é conectada à camada intermediária de categorização visual, “formando uma rede associativa de categorias auditivas com categorias visuais” (LOULA, 2011, p.86), ou seja, essa conexão permite que o neurônio a que um determinado dado visual se conecte seja apenas excitado se houver presença de um determinado dado auditivo.
Fonte: Loula (2011, p.86)
Figura 14 - Rede neural dos experimentos de Loula (2011). (a) Arquitetura cognitiva do tipo 1. (b) Arquitetura cognitiva do tipo 2.