• Nenhum resultado encontrado

COMPONENTES DA FERRAMENTA

No documento TCC Nathália Nascimento 2012.2 (páginas 48-52)

3.1 EVOROBOT*: UMA PLATAFORMA PARA EXPERIMENTOS ENVOLVENDO

3.1.3 COMPONENTES DA FERRAMENTA

Conforme descrição de Nolfi e Gigliotta (2010), a ferramenta Evorobot* é formada por seis componentes, classificados de acordo com as funcionalidades que exercem:

A ferramenta de algoritmo evolutivo: essa ferramenta permite treinar a rede neural

do robô simulado da plataforma através de um algoritmo evolutivo. A partir de uma população inicial de robôs controlados por redes neurais (nos experimentos de demonstração apresentados por Nolfi (2011), utiliza-se como padrão uma população de 100 indivíduos), é possível avaliar o desempenho de cada indivíduo baseado na função de fitness estabelecida para o experimento e selecionar n indivíduos (sendo n, um valor determinado pelo usuário) a partir da seleção truncada baseada por classificação para gerar a próxima geração. Nesse tipo de seleção, todos os indivíduos da população são classificados do melhor, que é aquele com maior fitness, ao pior. Serão selecionados n indivíduos do topo da lista de classificação, onde cada um poderá gerar uma mesma quantidade de filhos, dando a mesma chance de reprodução para indivíduos com fitness menores. Se o valor de n for muito pequeno, poderá ocasionar uma convergência prematura (FLOREANO; MATTIUSSI, 2008). Para garantir que os bons indivíduos não sejam perdidos nas gerações futuras, prevenindo a perda da melhor solução já encontrada, o usuário tem a opção de utilizar o elitismo.

Sucessivas gerações serão formadas até que o critério de parada seja alcançado. O critério de parada utilizado por esta ferramenta é o número de gerações definido pelo usuário. A produção de novos indivíduos para cada indivíduo pai acontece a partir de um processo de mutação (não há cruzamento) de seu material genético, que representa os pesos da rede neural, substituindo o valor de genes selecionados de forma aleatória por valores aleatórios, de acordo com o exemplo apresentado na Figura 17.

Figura 17 - Processo de mutação adotado pela ferramenta de simulação: mutação por substituição aleatória.

Assim, o usuário pode definir os parâmetros do algoritmo, como a taxa de mutação dos bits, que define o número de genes a ser substituído, o número de pais selecionados e a quantidade de indivíduos que cada pai deverá produzir, a presença do método de elitismo ou não (um dos filhos gerados terá uma cópia do material genético do pai), o número de robôs situados no ambiente, se os agentes de uma população são homogêneos ou não (se possuem o mesmo genótipo), o número de gerações como critério de parada, a quantidade de testes realizados para avaliar cada indivíduo e a duração em ciclos de cada um desses testes.

Cada ciclo de teste corresponde a 100 ms, que é o tempo em que o controlador neural do robô leva para processar as entradas referentes à leitura dos sensores e produzir as saídas que irão determinar a direção e velocidade das duas rodas do robô.

O usuário também tem a opção de escolher se o fitness de um time será calculado após o fim de um teste ou para cada ciclo, sendo que para essa última opção, pode escolher se essa avaliação será feita após a movimentação de cada robô ou após todos os robôs do time se movimentar. Mesmo com diferentes opções para avaliar o desempenho dos robôs, o fitness de um time de robôs é calculado com base no fitness de todos os robôs, ou seja, é realizada uma seleção por grupo, e não individual. Isso faz com que os experimentos desenvolvidos com a ferramenta Evorobot* sejam tendenciados para um esquema de cooperação, e não de competição (conforme descrito no experimento de Floreano et al.(2007)).

O simulador de rede neural: essa ferramenta permite ao usuário definir as

características da rede neural que controla o robô, como a sua arquitetura, o número e tipo dos neurônios envolvidos, o intervalo de valores que podem ser assumidos pelos pesos, além de poder computar o estado de ativação dos neurônios. A ferramenta inclui uma interface gráfica que permite ao usuário visualizar a arquitetura e os parâmetros de um controlador de um indivíduo em específico.

Os pesos sinápticos podem ser representados por uma sequência de 8 bits, o que representa 256 valores possíveis. O valor que irá assumir depende do intervalo que é definido pelo usuário, fazendo assim, uma quantização uniforme entre esses 256 valores e o intervalo assumido, por exemplo, de -5 à +5.

É possível definir uma arquitetura a ser utilizada apenas modificando parâmetros definidos pela plataforma. Os neurônios da camada intermediária, nomeados por Hn, sendo n um número inteiro maior ou igual a zero, e os da camada de saída, terão como campo local induzido (v) o sinal de saída (y) de todos os neurônios conectados à ele, multiplicando cada um deles pelo peso da conexão, além de terem entradas do tipo bias (b). A Figura 18, na qual estão ilustrados os neurônios da camada intermediária e de saída de uma rede neural

desenhada na plataforma Evorobot*, mostra o cálculo do campo local induzido para o neurônio S0, de acordo com as equações apresentação na seção 2.2.1.

Figura 18 - Cálculo do campo local induzido para o neurônio S0 ( de uma rede neural representada

no Evorobot*. Os sinais de saída dos neurônios da camada intermediária ( são os sinais de entrada de S0.

Fonte: Adaptado de Evorobot* (2011).

O sinal de saída (y) de um neurônio da camada de entrada equivale ao valor de seu próprio sinal de entrada, que corresponde a leitura do respectivo sensor conectado a ele. Já o sinal de saída dos neurônios das camadas intermediárias e de saída é calculado com base na função de ativação sigmoide. A função sigmoide é uma das funções não-lineares mais utilizadas (HAYKIN, 2001). Pode assumir valores no intervalo [0; 1], quando o parâmetro de inclinação da função é igual a um (a = 1), conforme equação 4, que calcula a função sigmoide para o campo local induzido (v) de um neurônio k:

(4)

Na função sigmóide, com

a = 1,

o sinal de saída será sempre positivo. Quando o campo local induzido for zero, o sinal de saída do neurônio será 0,5. Será maior do que 0,5 para quando o campo local induzido for positivo, e menor do que 0,5 para quando for negativo. Após calcular o sinal de saída dos neurônios da camada de saída, a nova posição do robô será definida a partir dos motores M0 e M1, e um sinal poderá ser vocalizado através de S0. A ferramenta permite ao usuário acompanhar de forma gráfica a ativação de cada neurônio do controlador neural do robô, assim como pode ser visto na Figura 19.

Figura 19 - Interface gráfica do Evorobot*. (a) o controlador neural dos agentes exibidos em (b). (b) Robôs em simulação e as informações exibidas durante a fase de teste. A parte superior esquerda da imagem mostra o ambiente e os robôs situados nela. Na parte direita, pode-se visualizar a ativação dos neurônios do controlador neural do robô vermelho em forma de gráfico enquanto ele se move no ambiente. Na parte inferior esquerda é fornecido o valor de ativação de cada neurônio para cada ciclo. No canto inferior da imagem estão as informações referentes ao ciclo atual, o número de testes executados para o material genético que está sendo testado, o fitness calculado para o teste atual e o total de fitness para todos os testes já realizados para esse material genético.

Fonte: Adaptado de Evorobot* (2011).

(a)

Simulador de robô e ambiente: essa ferramenta permite definir características dos

robôs e do ambiente, como já foi descrito. Com base no cálculo de posição e orientação do robô dentro do ambiente, é possível computar o estado de seus sensores e como essas características, adicionada as informações relativas ao ambiente, podem interferir nas ações de cada robô.

A interface gráfica: permite ao usuário observar todo o cenário elaborado, assim

como o comportamento do robô, a arquitetura da rede neural que está sendo utilizada, o estado do neurônio, o valor de fitness escolhido, entre outros.

Firmware do Evorobot: esse último componente descrito aqui não será utilizado no

projeto, porém é importante ressaltar a possibilidade que a ferramenta dá de poder testar o experimento gerado em um robô físico, o E-puck. A partir desse software, o usuário pode carregar o firmware em cada robô físico através de uma conexão Bluetooth, podendo acompanhar a execução do experimento a partir da mesma interface gráfica utilizada para a simulação.

No documento TCC Nathália Nascimento 2012.2 (páginas 48-52)

Documentos relacionados