REDES NEURAIS HIERARQUICAS PARA IMPLEMENTAÇÃO DE COMPORTAMENTOS EM AGENTES AUTONÔMOS FLÁVIO DE ALMEIDA E SILVA, MAURO ROISENBERG, JORGE MUNIZ BARRETO Depto. de Informática e de Estatística, Universidade Federal de Santa Catarina Florianópolis, SC, BRAZIL E-mails: [email protected], [email protected], [email protected] Resumo Ao utilizar-se os mecanismos naturais como fonte de inspiração para a implementação de comportamentos em Agentes Autônomos (AA's), podemos constatar que existem classes de comportamentos cada vez mais complexas. Estes comportamentos parecem estar relacionados com o grau de complexidade de organização do sistema nervoso, isto é, considerando-se uma estrutura hierárquica, comportamentos simples são gerados por sistemas nervosos elementares, por outro lado, comportamentos complexos emergem pela ação de níveis superiores do sistema nervoso, que controlam, ordenam e selecionam os comportamentos mais simples. Este artigo visa mostrar que se pode utilizar esta inspiração na natureza, utilizando uma estrutura hierárquica de diferentes topologias de redes neurais artificiais como o equivalente computacional do sistema nervoso central (SNC). Conseguindo-se desta forma elevar o grau de autonomia e utilidade dos AA's. Abstract When using the natural mechanisms as inspiration source for the implementation of behaviors in Autonomous' Agents (AA's), we can verify more and more classes of complexes behaviors. These behaviors seem to be related to the degree of complexity of the nervous system organization. Being considered a hierarchical structure, simple behaviors are generated by elementary nervous systems, on the other hand, complex behaviors emerge for the action of superior levels of the nervous system, which they control, they order and they select the simplest behaviors. This article seeks to show that this inspiration from the nature, using a hierarchical structure of different topologies of nets artificial neural as the equivalent computational of the central nervous system (CNS). Makeing able this way elevate the autonomy degree and usefulness of AA's. Keywords Autonomous Agents, Neural Networks, Backpropagation Algorithms, Genetics Algorithms, Artificial Intelligence, Robot Sensors.. 1 Introdução Nas últimas duas décadas, tem-se intensificado o trabalho de pesquisadores que procuram aumentar o grau de inteligência e autonomia de Agentes Autônomos (AA's) como podemos ver em (Anderson e Donath, 1991)(Beer at all, 1991)(Brooks, 1991)(Maes, 1991)(Roisenberg, 1996). Além de sistemas especialistas, técnicas relativamente recentes de inteligência artificial, tais como algoritmos genéticos e redes neurais artificiais, e até mesmo abordagens híbridas destas técnicas, estão sendo utilizadas (Anderson e Donath, 1991)(Beer at all, 1991)(Brooks, 1991)(Maes, 1991)(Roisenberg, 1996). Apesar de grandes progressos alcançados, ainda não existe uma solução ótima bem estabelecida, e mesmo soluções satisfatórias raramente têm sido apresentadas. Nos últimos anos, têm-se visto implementações que apresentam um grande apelo popular, destinadas a demonstrar, ao grande público, as possíveis potencialidades da robótica, tais como AA's que sobem cordas, que sobem escada, que repetem os gestos físicos dos humanos ou ainda AA's capazes de penetrar em escombros em ruínas de edificações, à procura de sobreviventes. Apesar da sua importância, a característica destas implementações é a de apresentar um repertório de comportamentos limitados e com um grau de autonomia limitado. Na busca por AA's com repertório de comportamentos e grau de autonomia cada vez 1473 maiores, tem-se buscado na inspiração biológica, e em especial, na advinda do comportamento animal (Roisenberg, 1996), ferramentas para a implementação de comportamentos em AA's, ou seja, o desenvolvimento de AA's que apresentem comportamentos que se assemelham aos de animais. Se um animal estiver diante de um abismo ou diante de um predador, este animal sabe que não pode dar mais um passo em direção ao abismo, pois, cairá e muito provavelmente morrerá, e se ficar e enfrentar o predador também será muito provável sua morte. Entretanto existe no animal um mecanismo inteligente de avaliação de situações e seleção de comportamentos que nesta situação escolherá um dos comportamentos que permitirá sua sobrevivência. Também existe um mecanismo de aprendizado de modo que, se um rato comer algo que lhe faça mal, este evitará comer novamente o mesmo alimento. Com isto, podemos perceber que muitos dos atos dos seres vivos são previamente calculados, pois, já haviam passado por situação parecida ou foi-lhes ensinado a maneira de agir diante daquela situação. Então podemos dizer que a sua rede neural aprendeu e guardou num local do cérebro para posteriormente tirar proveito, pois, era algo considerado de suma importância para a “sobrevivência”. Na área de implementação de AA's, um grande progresso pode ser alcançado se for possível tornar um AA um ser capaz de perceber que atitude deve ser tomada diante de uma situação que ele se encontra ou que ainda não encontrou, mas, que em sua “memória” já foi armazenado algo parecido, portanto, ele deverá ser capaz de escolher que “caminho tomar” ou qual atitude deve ser tomada. Um exemplo seria dar um comando para o AA pegar um objeto em uma sala, mas, no meio do caminho ele “percebe” que as suas baterias estão quase acabando. Qual atitude ele deve tomar? Continuar andando até o objeto ou primeiro recarregar suas baterias? Isto é o que será tratado, qual comportamento tem prioridade sobre outros. E pode-se perceber que no cérebro dos animais acontece a mesma coisa. Eles tentam se manter vivos e também procriar, ao mesmo tempo em que tentam desempenhar seu papel em vários ambientes, desviando de obstáculos que possam atrapalhá-los nestas tarefas. Um ponto que parece comum a todos os comportamentos aqui apresentados, é que deve existir uma “coordenação” e “hierarquia” de comportamentos. Ou seja, existem diversas ocasiões em que o comportamento correto deve ser selecionado de um “repertório” de comportamentos disponíveis e, além disso, eventualmente vários destes comportamentos são antagônicos (fugir do perigo e buscar comida, por exemplo). Deve haver então uma “entidade” capaz de organizar, selecionar e coordenar comportamentos mais elementares, fazendo emergir um comportamento mais complexo e adequado a operação do ser vivo. O objetivo deste trabalho é procurar dar uma contribuição na busca por AA's com alto grau de inteligência e autonomia. Para isto, as fontes de inspiração são os sistemas biológicos, em especial o sistema nervoso e como ele se organiza nos seres vivos para a geração, seleção e coordenação de comportamentos capazes de garantir a operação no ambiente. Na seção seguinte aborda-se o comportamento animal, como ele pode ser classificado e como o sistema nervoso se organiza para a geração destes comportamentos. Na terceira seção faz-se uma descrição do equivalente computacional do sistema nervoso biológico, as redes neurais artificias (RNA's). Apresentam-se as principais topologias de redes neurais e que tipos de comportamentos cada topologia é capaz de gerar. Na quarta seção propõe-se então uma arquitetura de redes neurais hierárquicas onde as redes neurais dos níveis inferiores são responsáveis pela implementação do repertório de comportamentos básicos do AA, enquanto as redes dos níveis superiores da hierarquia fazem a tarefa de seleção e coordenação dos comportamentos básicos, fazendo emergir um comportamento mais complexo e inteligente. 2 Comportamento Animal 1474 2.1 Definições O que vem a ser o comportamento animal? As definições são difíceis, pois, o comportamento é apenas uma das atividades pelas quais um animal se mantém. (Messenger, 1980)Cerca todas as atividades como procurar comida, evitar perigo, acasalar-se e até criar sua prole. Isto requer a ativação dos órgãos de sentido que coletam informações, principalmente do mundo externo. Devemos nos ater ao sistema muscular, pois, é através da sua atividade ou inatividade diante de uma situação que determinamos ou caracterizamos o comportamento. 2.2 Classes de Comportamentos 2.2.1 Comportamentos Reflexivos Uma característica que parece ser marcante tanto aos comportamentos reflexivos quanto às taxias se refere ao fato de que a intensidade e a duração das respostas dos organismos são uma função direta da intensidade e duração do estímulo que disparou o comportamento. Também é importante notar que o tempo decorrido entre a ocorrência do estímulo e o aparecimento da resposta é mínimo. 2.2.2 Comportamentos Reativos É uma classe intermediária entre os comportamentos puramente reflexivos e os comportamentos instintivos. É formada por uma série de comportamentos estereotipados como resposta a um dado estímulo. O estímulo que dispara o comportamento é geralmente mais complexo e específico que o necessário para disparar um comportamento reflexivo. A resposta envolve uma seqüência temporal de ações que se desenrolam até o seu final, mesmo que o estímulo disparador não esteja mais presente.(Roisenberg, 1996). 2.3 Comportamentos e o Sistema Nervoso Central O certo de tudo que falamos é que o comportamento é determinado pelo Sistema Nervoso Central (SNC). Ele é quem impulsiona os músculos. A importância da saída motora final (comportamento), reside no fato de ser adaptativa, como descrito em (Messenger, 1980). O sistema nervoso determina quais são os músculos que serão ativados. Um tipo de controle considerado importante é o de retroação (circuito fechado), onde a saída do sistema é usada para influenciar a entrada. Que na biologia é chamado de homeostase. O que basicamente acontece é o controlador (SNC) que tem como prioridade, em termos gerais, as instruções: “sobreviva e procrie” recebe as informações dos órgãos dos sentidos, processa esta informação, ajustando a saída do “sistema controlado”, fazendo com que sejam neutralizadas as situações que poderiam prejudicar o animal. Mas, quando se fala de animais superiores isto fica mais complexo, como por exemplo, nosso SNC é complexo, pois, nos oferece canais múltiplos, isto é, as informações são processadas em paralelo em diferentes áreas do nosso cérebro, onde, devemos esperar encontrar sistemas distintos de controle para diferentes atividades. Um exemplo é que não temos como mesmo controlador o dos músculos da perna e o dos olhos, eles são diferentes, mas, também sabemos que não estão totalmente independentes. Isto nos leva à conclusão que o circuito fechado para operações complexas não pode ser muito simples e que nestes casos o controlador deve ser controlado, isto é, controlar o controlador. (Messenger, 1980). Para finalizar, o comportamento de um animal também depende da situação em que ele se encontra. Podemos citar muitos exemplos de comportamento usando nossa própria experiência de vida. Então, por exemplo, se estamos caminhando e em nossa direção vem uma outra pessoa, nossa reação (comportamento) é desviar para não nos chocarmos. Se estivermos diante a um fogão onde estamos esquentando algo, em uma jarra de metal, sabemos que após algum tempo não podemos pegar diretamente na parte de metal que iremos nos queimar. E também, se estivermos diante de um fogo e algo muito importante cair nele, podendo estragar, nós sabemos que se tentarmos pegar rapidamente não nos queimaremos. Este tipo de comportamento já estava previamente guardado em nossa memória, pois, de alguma forma nós aprendemos aquilo ou por vivência própria ou por alguém que nos falou. Este exemplo nos mostra bem que deve existir uma hierarquia de controladores dentro do sistema nervoso, pois o primeiro comportamento ou reação ao segurarmos um objeto muito quente é o de largálo para que não nos queimemos, entretanto, se este objeto for muito valioso ou raro, um controle de nível superior é acionado e inibe o comportamento de largar imediatamente o objeto, acionando então um comportamento de colocação do objeto em segurança sobre uma superfície. Um fator de complicação adicional vem do fato que os comportamentos não são somente aprendidos por experiência ou ensinados. Grande parte dos comportamentos já está “pré-fiados” no sistema nervoso central, e foram determinados por processos evolutivos. Se pegarmos como exemplo a espécie de gaivota que para proteger sua prole, de predadores, retiravam as cascas dos ovos, já chocados, do ninho e levavam para longe, poderíamos dizer que no passado pode ter existido, dentro desta mesma espécie, algumas que não retiravam as cascas e, por isto, suas proles não chegavam a idade de reprodução resultando no seu desaparecimento, 1475 como mostrado em (Dawkins, 1989) Então, podemos assumir que aquelas que sumiram eram diferentes, geneticamente, dos tipos bem sucedidos, portanto, a crença de que o comportamento evoluiu leva-nos a supor que houve uma variação genética. Somente neste sentido podemos dizer que o “comportamento foi determinado por genes”. Mesmo que se possa dizer que o comportamento foi determinado geneticamente, há a complicação adicional na qual pode-se mostrar que o ambiente contribui para a variação. Tem-se que avaliar a maneira como o indivíduo foi tratado desde a sua infância até a fase de reprodução (adulto). Pois, isto afeta o comportamento tanto quanto a linhagem genética a que pertence. O que podemos perceber é que o comportamento pode ser determinado por genes e também pelo ambiente em que vivemos. 3 Redes Neurais 3.1 Redes Neurais Diretas As redes neurais diretas (Feedforward) têm a particularidade de não haver ciclos no seu grafo. Pode-se dizer que são redes em camadas. As camadas estão divididas em camada de entrada ou primeira camada, onde, os neurônios recebem os sinais de ativação. Camada de saída ou última camada, onde, os neurônios têm sua saída como saída de rede e por fim a camada interna ou camada escondida, podendo ser mais de uma e estes neurônios não pertencem nem a primeira nem a última camada(Boers e Kuiper, 1992). Estas redes são as mais populares e que tem como o algoritmo de aprendizado, mais usado, o “backpropagation”, que não é um algoritmo eficiente(Barreto, 1997)(Boers e Kuiper, 1992). A função de ativação (Φ) geralmente é a soma das entradas, em alguns casos o produto e raramente outra função, mesmo que seja possível. Quanto a não linearidade do neurônio geralmente é calculada por uma função logística, tangente hiperbólica. Figura 1. Exemplo de uma rede Neural Direta. Onde U é o conjunto dos valores de entrada. Φ e λ a função de transição dos estados. V os pesos calculados. Y conjunto das saídas obtidas. 3.2 Redes Neurais Recorrentes Ao contrário das redes diretas, este tipo de rede contém pelo menos um ciclo (realimentação, retroação ou “feedback”) no seu grafo. Estas redes podem ser compostas por uma ou mais camadas sendo que cada neurônio fornece o seu sinal de saída como entrada para cada um dos outros neurônios(Barreto, 1997)(Boers e Kuiper, 1992). Também pode não conter uma camada intermediária (escondida). Exemplos de destas redes são as redes propostas por Hopfield, as Redes Bidirecionais, as Redes de Jordan e as Redes Recorrentes de Tempo Real (Roisenberg, 1996).. Figura 2. Exemplo de uma Rede Neural Recorrente. Onde L é o conjunto de entradas. X(k) vetor de dimensões M-por-1 de sinais externos aplicados aos neurônios de entrada da rede no instante k. x(k+1) um vetor de dimensões N-por-1 correspondente à saída obtida nos neurônios de saída no instante k+1. Z-1 atraso unitário, o que resulta em um comportamento não linear em virtude da natureza não linear dos próprios neurônios (Barreto, 1997) Existem vários trabalhos que demonstram que Redes Neurais Diretas são capazes de modelar unicamente sistemas estáticos. Como característica básica pode-se dizer que nos sistemas estáticos a saída do sistema é função apenas de suas entradas, o que nos remete a capacidade desta topologia de redes neurais em implementar apenas comportamentos reflexivos, onde o comportamento é uma resposta imediata do ser vivo a um estímulo ambiental e, uma vez cessado o estímulo, cessa também a sua saída correspondente. Já as redes neurais recorrentes são por sua própria característica são capazes de modelar sistema dinâmicos. Neste sistemas, a saída não depende apenas das entradas mas, também de variáveis de estado. As variáveis de estado, por sua vez, se alteram em função das entradas do sistema e do seu estado anterior. Deste modo, estas topologias de redes neurais podem ser utilizadas para modelar sistemas 1476 e comportamentos mais complexos, como por exemplo os comportamentos reativos e instintivos, onde a reação do ser vivo não é função apenas de estímulos ambientais mas, também de um estado interno ou “memória” deste ser (Roisenberg, 1996)(Barreto, 1997). 4 Redes Neurais Hierárquicas Para que se possa então implementar AA's com um grande repertório de comportamentos, e ainda para que se possa selecionar e coordenar qual comportamento deve estar ativo a cada instante, a solução natural, assim como aparece nos animais é criar uma rede neural hierárquica onde ambas as topologias de redes neurais estejam presentes de modo que as redes diretas sejam responsáveis pela implementação de comportamentos reflexivos básicos e as redes recorrentes implementem as tarefas de coordenação e seleção destes comportamentos, obtendo-se como resultado final o controle eficaz do comportamento dos AA's. Como citado em (Messenger, 1980) iremos controlar o controlador. Entendemos que os comportamentos de um AA em relação aos seus atuadores são reflexivos e de certa forma ineficazes em alguns momentos, como por exemplo, num simulador do robô Khepera onde foi implementada uma rede neural para controlar os sensores de distâncias. A rede foi treinada e executou perfeitamente sua tarefa, mas, encontrava situações onde o comportamento resultante apresentava o robô rodando em círculos, pois, não estava capacitada a reconhecer trajetórias. Da mesma forma, ao implementarmos a rede para reconhecer e ir de encontro à luz, isto é, ao ativarmos os sensores de luminosidade e desabilitarmos os sensores de proximidade, quando o robô encontrava um ponto de luz, mesmo que atrás de um obstáculo, ele se chocava com o obstáculo para poder cumprir a sua tarefa. A implementação destes comportamentos é relativamente fácil, pois, os comportamentos reflexivos podem ser implementados através de redes neurais diretas e os comportamentos reativos através de redes recorrentes. Entretanto, um problema emerge quando vários comportamentos, muitos inclusive antagônicos são implementados e postos para operar simultaneamente, uma vez que, não se sabe qual comportamento emergirá quando por exemplo este AA estiver diante de um obstáculo e ao mesmo tempo procurar seguir uma fonte de luz. Uma possível solução para este problema é a utilização de uma rede hierárquica onde se conecta as redes neurais diretas responsáveis pela implementação deste comportamentos reflexivos a uma rede recorrente, para que esta faça o controle de qual comportamento será mais adequado a cada momento. (McFarland e Bösser, 1993). Na nossa proposta, esta rede terá a função de emitir um "sinal" para cada rede direta (comp. reflexivo) ou recorrente (comp. reativo) "avisando" qual comportamento será ativado, isto é, o flag tem a capacidade de excitar ou inibir o comportamento, isto fará com que apenas um comportamento venha ser excitado, consequentemente os outros serão inibidos. O esquema da fig. 3 mostra apenas uma rede de controle fazendo o controle das demais, mas, podese ter mais redes controlando e tornando cada vez mais complexa a rede de controle do comportamento em AA's. sendo, 8 para os sensores do robô e 1 para o flag de excitação ou inibição, 8 neurônios na camada escondida e dois na camada de saída, sendo estes dois os motores, que são os atuadores. Figura 4. Esquema da Rede Neural a ser implementada no simulador do robô de khepera 4.1.1 Resultados Obtidos Figura 3. Rede Neural Hierárquica proposta para o controle dos comportamentos. 4.1 Exemplo Prático Para testar esta proposta faremos uma implementação dos controles do robô Khepera, que tem na sua configuração 8 sensores de distância e 8 sensores de luminosidade. Para isto será necessário construir três redes, a princípio, sendo, duas redes diretas e uma recorrente. Inicialmente, o treinamento desta rede será “off-line” , isto é, primeiro serão treinadas as redes responsáveis pelos comportamentos reflexivos, após elas estarem treinadas, será dado início à segunda fase que é treinar a rede de controle (recorrente), com isto, finalizar-se-á o treinamento e então poder-se-á colocar a rede neural hierárquica no simulador do khepera para iniciar os testes. No simulador, os comportamentos ativos serão os sensores de distância (obstáculos) e os sensores de luminosidade (buscar foco de luz), sendo estes, implementados em redes diretas e será usado como algoritmo de treinamento o "algoritmo backpropagation". A configuração da rede de cada comportamento será de 9 neurônios na camada de entrada, 1477 Para o teste com o simulador do robô de khepera criou-se um conjunto de treinamento para cada rede neural. O conjunto das redes do subsistema sensório continha cerca de 31 situações, que são as situações observadas após termos construídos vários mundos e feito o robô andar por eles. As redes de controle continham 12 situações que foram extraídas após ter sido analisada a máquina de estados. E por fim, as redes de subsistema motor continham 94 situações que foram tiradas das redes sensórias + a rede de controle. Então, são as situações possíveis encontradas através dos sensores do robô + os estados possíveis da rede de controle( total de 3 estados). Os resultados obtidos foram satisfatórios, pois, o comportamento do robô atendeu as expectativas. Ele "andava" pelo mundo sem esbarrar em obstáculos e quando detectava um foco de luz, independente da sua intensidade, ele ia direto para este ponto. Se este ponto de luz estivesse atrás de algum obstáculo, primeiro ele desviava e depois ia ao encontro do foco, mas, se não houvesse caminho para chegar, ele vagava pelo mundo até encontrar outro foco. 5 Conclusão Neste trabalho apresentou-se a idéia de que a inspiração biológica é uma ferramenta extremamente poderosa para a implementação de AAs. Ao observar e classificar os comportamentos dos seres vivos, entendendo como eles emergem da ação do sistema nervoso e como eles estão relacionados com a organização deste sistema, ao transferirmos estas fenômenos para o ambiente computacional, poderemos desenvolver AAs com grande grau de autonomia e inteligência. (McFarland e Bösser, 1993). A utilização de redes neurais hierárquicas parece ser uma alternativa extremamente interessante para a implementação de AAs pois é capaz de apresentar todas as vantagens inerentes às redes neurais, tais como, alta imunidade a falhas e ruídos, podem ser treinadas ao invés de programadas, rápido tempo de resposta, etc., ao mesmo tempo em que pode ser capaz de modelar comportamentos altamente complexos. Como sugestões para trabalhos futuros, podemos citar a necessidade de mais experiências práticas, uma vez que este trabalho ainda está na sua fase inicial. Sugerimos também a utilização da computação evolucionária na geração desta hierarquia de redes neurais, como também, a possibilidade de resolver os problemas de planejamento com as técnicas simbólicas de IA, nos níveis superiores da hierarquia. Com isto, pode-se prever que a capacidade do sistema cresce rapidamente e de maneira modular, aumentando em muito o repertório e a complexidade dos comportamentos implementáveis. Referência Bibliográfica Anderson, T. L. and Donath, M.(1991). Animal Behavior as a Paradigm for Developing Robot Autonomy. In. Maes, P. (ed.) Desingning Autonomous Agents. Theory and Practice from Biologiy to Engineering and back. MIT Press. p. 145-168. Barreto, Jorge M. (1997). Inteligência Artificial, no limiar do século XXI. ρρρ Edições. Florianópolis. Beer, Randall D., Chiel Hillel J., and Sterling, Leon S.(1991). A Biological Perspective on Autonomous Agent Design. In. Maes, P. (ed.) Desingning Autonomous Agents. Theory and Practice from Biologiy to Engineering and back. MIT Press. p. 169-186. Boers, Egbert e Kuiper, Herman.(1992). Biological metaphors and the design of modular artificial neural networks. M.Sc. Dissertation, Leiden University. Brooks, R. A.(1991) Elephants Don´t Play Chess. In. Maes, P. (ed.) Desingning Autonomous Agents. 1478 Theory and Practice from Biologiy to Engineering and back. MIT Press. p. 3-15. Dawkins, Marian Stamp.(1989). Explicando o comportamento Animal. Manole Ltda. São Paulo. Maes, P.(1991) Guest Editorial. In. Maes, P. (ed.) Theory and Practice from Biologiy to Engineering and back. MIT Press. p. 1-2. McFarland, David, and Bösser, Thomas.(1993). Intelligent Behavior in Animals and Robots. Massachusetts Institute of Technology –MIT. Cambridge, Massachusetts. Messenger, J.B. (1980). Nervos, cérebro e comportamento. Coleção Temas de Biologia Vol. 22, Epu: ed. da Univers. de São Paulo. São Paulo. Roisenberg, Mauro, Barreto, J. M., e de Azevedo, F. M.(1996). Biological Inspirations in Neural Networks Implementations of Autonomous Agents. SBIA. Curitiba.