• Nenhum resultado encontrado

Aplicação do algorítmo de inteligência artificial sarsa à robótica na tarefa de coleta de lixo

N/A
N/A
Protected

Academic year: 2021

Share "Aplicação do algorítmo de inteligência artificial sarsa à robótica na tarefa de coleta de lixo"

Copied!
60
0
0

Texto

(1)

DARLINTON CARLOS KRUPP PRAUCHNER

APLICAÇÃO DO ALGORÍTMO DE INTELIGÊNCIA ARTIFICIAL

SARSA(λ) À ROBÓTICA NA TAREFA DE COLETA DE LIXO

Ijuí 2014

(2)

DARLINTON CARLOS KRUPP PRAUCHNER

APLICAÇÃO DO ALGORÍTMO DE INTELIGÊNCIA ARTIFICIAL

SARSA(λ) À ROBÓTICA NA TAREFA DE COLETA DE LIXO

Trabalho realizado no Componente Curricular de Trabalho de Conclusão de Curso do Curso de Ciência da Computação da Universidade Regional do Noroeste do Estado do Rio Grande do Sul – UNIJUI, como requisito parcial à obtenção do título de Bacharel em Ciência da Computação.

Orientador: Prof. Rogerio Samuel de Moura Martins

Ijuí

(3)

DARLINTON CARLOS KRUPP PRAUCHNER

APLICAÇÃO DO ALGORÍTMO DE INTELIGÊNCIA ARTIFICIAL

SARSA(λ) À ROBÓTICA NA TAREFA DE COLETA DE LIXO

Trabalho apresentado ao Componente Curricular de Trabalho de Conclusão de Curso do Curso de Ciência da Computação da Universidade Regional do Noroeste do Estado do Rio Grande do Sul – UNIJUÍ, como requisito parcial à obtenção do título de Bacharel em Ciência da Computação.

Aprovação em: ___/___/_____

______________________________________

Prof. Rogerio Samuel de Moura Martins (Orientador) - UNIJUÍ

______________________________________ Prof. Edson Luiz Padoin - UNIJUÍ

Ijuí 2014

(4)

“A sorte não existe. Aquilo a que chamais

sorte é o cuidado com os pormenores”.

(5)

RESUMO

Este relatório aborda a aplicação do algoritmo de aprendizado por reforço SARSA(λ) à robótica, no problema da coleta de lixo em ambiente 2D. A crescente disponibilidade de periféricos eletrônicos abriu a possibilidade de desenvolver robôs capazes de desempenhar tarefas complexas antes só desempenhadas por homens. Utilizando inteligência artificial e aproveitando a capacidade computacional destes dispositivos podemos desenvolver agentes inteligentes autônomos capazes de executar estas mesmas tarefas. Considerando estes fatores, esta pesquisa visa comprovar a aplicação prática do algoritmo de aprendizado por reforço SARSA(λ) em uma tarefa complexa (coleta de lixo), provando a convergência do mesmo ao comportamento ótimo.

Palavras-chave: Sarsa(λ); Agente robótico; Curva de aprendizagem; Coleta de lixo; Função de recompensa.

(6)

ABSTRACT

This report addresses the application of the algorithm of reinforcement learning called SARSA(λ) in a robotic task, in the problem of garbage disposal in a 2D environment. The growing availability of electronic peripherals opened the possibility to develop robots capable of doing complex tasks that were only developed by man. Using artificial intelligence and taking advantage of the computational capacity of this dispositives we can develop smart and autonomous agents capable of executing this same tasks. Considering this factors, this research aims to verify the practical application of the algorithm of reinforcement learning SARSA(λ) in a complex task (garbage disposal), proving its convergence to the optimal behavior.

Keywords: Sarsa(λ); Robotic Agent; Learning Curve; Garbage disposal; Reward function.

(7)

LISTA DE FIGURAS

Figura 1 – Framework padrão para aprendizado por reforço ... 18

Figura 2 – Algoritmo SARSA(0) ... 29

Figura 3 – Algoritmo SARSA(λ) ... 30

Figura 4 – Diagrama de estados “Coleta de lixo em ambiente 2D” ... 34

Figura 5 – Projeto do mundo da coleta de lixo ... 35

Figura 6 – Funcionamento de um sensor de infravermelho ... 36

Figura 7 – Mundo da coleta de lixo (com robô para escala) ... 37

Figura 8 – iRobot Create 4400 ... 38

Figura 9 – Sensores de infravermelho na representação estadual do robô ... 41

Figura 10 – Recompensa acumulada média por passo (rep. estadual) ... 43

Figura 11 – Quantidade de recompensa recebida a cada 500 passos (rep. estadual)... 44

Figura 12 – Robô com posição dos sensores e atuadores ... 45

Figura 13 – Recompensa acumulada média por passo (ações) ... 46

Figura 14 – Quantidade de recompensa recebida a cada 500 passos (ações).... 46

Figura 15 – Conjunto de ações selecionadas... 47

Figura 16 – Influência do lambda na recompensa acumulada média por passo .. 50

Figura 17 – Influência do lambda na quantidade de recompensa recebida ... 50

Figura 18 – Influência do alpha na recompensa acumulada média por passo ... 51

Figura 19 – Influência do alpha na quantidade de recompensa recebida ... 52

Figura 20 – Influência do gamma na recompensa acumulada média por passo . 53 Figura 21 – Influência do gamma na quantidade de recompensa recebida ... 54

Figura 22 – Recompensa acumulada média por passo (experimento longo) ... 55

Figura 23 – Quantidade de recompensa recebida a cada 4000 passos (experimento longo) ... 56

(8)

LISTA DE TABELAS

Tabela 1 – Valores obtidos nos sensores de infravermelho do robô em diferentes cores ... 36 Tabela 2 – Valor inteiro e binário atribuído por cor detectada ... 40 Tabela 3 – Tarefa sendo executada de acordo com indicador de bateria e lixo .. 42 Tabela 4 – Função de recompensa ... 48 Tabela 5 – Amostra de comportamento por estado (experimento longo) ... 56

(9)

SUMÁRIO

1. INTRODUÇÃO ... 11 1.1. Justificativa ... 12 1.2. Objetivos ... 13 1.2.1. Objetivo Geral ... 13 1.2.2. Objetivos Específicos ... 13 2. Referencial Teórico ... 14

2.1. Aprendizado por Reforço ... 14

2.1.1. Características ... 15

2.1.1.1. A política ... 15

2.1.1.2. A função de recompensa ... 15

2.1.1.3. A função de valor ... 16

2.1.1.4. Modelo do ambiente ... 16

2.1.2. Modelo padrão de aprendizado por reforço ... 17

2.2. Estados parcialmente observáveis ... 18

2.2.1. Agente sem estados... 19

2.2.2. Agentes que utilizam memória ... 21

2.3. O dilema do duplo controle ... 22

2.3.1. Inicialização otimista ... 23

2.3.2. Fator ε de exploração ... 24

2.4. Rastros de elegibilidade ... 24

2.5. Diferença Temporal ... 25

2.5.1. Definição de um algoritmo de Diferença Temporal ... 25

2.5.2. Algoritmos “on-policy” e “off-policy” ... 27

2.5.3. O SARSA(λ) ... 28

2.5.3.1. Regra de atualização ... 28

2.5.3.2. O algoritmo ... 28

2.5.4. Convergência a política ótima ... 30

3. Desenvolvimento ... 32

3.1. O problema da coleta de lixo em ambiente 2D ... 32

3.1.1. O mundo da coleta de lixo ... 34

(10)

3.1.2.1. O Robô... 37

3.1.2.2. RLPark ... 39

4. Características do desenvolvimento ... 39

4.1. Conjunto de estados ... 39

4.1.1. Sinal do sensor de infravermelho ... 40

4.1.2. Indicador de nível de bateria e presença de lixo ... 41

4.1.3. Sensores de impacto frontal direito e esquerdo ... 42

4.1.4. Tamanho da representação estadual ... 42

4.2. Conjunto de ações do robô ... 44

4.2.1. Ausência de ação por estado ... 47

4.3. Função de recompensa ... 48

5. Resultados e discussão ... 49

5.1. Estudos dos parâmetros ... 49

5.1.1. Lambda ... 49 5.1.2. Alpha ... 51 5.1.3. Gamma ... 52 5.2. Política ótima ... 54 6. Considerações finais... 57 6.1. Trabalhos futuros ... 58 REFERÊNCIAS BIBLIOGRÁFICAS ... 58

(11)

1.

INTRODUÇÃO

Nos últimos anos, de acordo com dados da Organização Panamericana de Saúde (OPAS), o problema da coleta adequada de resíduos sólidos tem aumentado em vários países, principalmente onde existe crescimento populacional e concentração desta população nas áreas urbanas.

O gerenciamento adequado destes resíduos sólidos representa um fator importante no desenvolvimento econômico e social de uma região, sendo que um sistema inteligente pode otimizar as rotas de coleta e assim diminuir os custos energéticos das ferramentas coletoras. Além disso, este sistema pode automatizar e facilitar à reciclagem dos resíduos coletados reduzindo seu impacto ambiental.

Uma das novas abordagens para este problema envolve a utilização de robôs coletores autônomos, em um serviço de coleta “porta à porta”. Neste sistema, o robô̂ coletor possui um certo nível de inteligência artificial que possibilita: navegação entre pessoas, automóveis e obstáculos dos mais variados tipos; coleta do resíduo sólido na residência do cidadão e; descarregamento do mesmo em uma estação centralizada. Em 2011 na Itália, a cidade de Pecíolo foi recipiente de um prolongado teste deste sistema, onde o robô DustCart interagiu com um ambiente urbano real e realizou as tarefas acima descritas com êxito.

No caso da coleta de lixo, o ambiente em que o robô está inserido está em constante mudança, sendo impossível prever todas as situações que ele pode encontrar. Isto motiva cada vez mais a necessidade do desenvolvimento de algoritmos inteligentes que permitam ao robô tomar decisões de maneira não supervisionada.

Atualmente, dentro da área da inteligência artificial, existe uma categoria de algoritmos de aprendizado não supervisionado, composta por métodos que aprendem unicamente através de iteração com o ambiente no qual estão inseridos, mudando o comportamento do agente de acordo com sinais de reforço positivo ou negativo que ele obtém a cada ação executada neste ambiente.

O SARSA(λ) é um destes algoritmos de aprendizado por reforço. Sendo muito aplicado em problemas robóticos (principalmente no âmbito da

(12)

pesquisa), ele é capaz de obter uma solução ótima contanto que exista uma representação adequada do ambiente e que o mesmo seja suficientemente explorado pelo robô.

Neste trabalho, pretendemos estudar os algoritmos de aprendizado por reforço, com foco no SARSA(λ), conferir suas propriedades/parâmetros e efetividade na solução de problemas reais, através de sua aplicação à atividade de coleta de lixo em duas dimensões.

Ainda neste escopo, pretendemos desenvolver um ambiente controlado sobre o qual os testes de aplicação dos algoritmos de aprendizado de reforço serão executados, possibilitando testar os parâmetros destes algoritmos de maneira isolada, e assim descobrir a melhor configuração possível na utilização desta categoria de algoritmos na solução do problema da coleta de lixo.

1.1. Justificativa

A inteligência artificial está abrindo possibilidades de automatização de soluções em locais que antes se pensava ser impossível. Por ser uma área nova, existem muitas diferentes abordagens para os problemas que ela se propõe a resolver, partindo de soluções que se baseiam em genética e mutação (como o algoritmo genético) até algoritmos que se baseiam em conceitos da psicologia, como os algoritmos de aprendizado por reforço.

Para cada uma destas subdivisões, podem ou não existir garantias teóricas de conversão do algoritmo a uma solução ótima, e em muitos destes casos ainda é necessário testar e publicar os resultados obtidos por estes algoritmos na prática. É o caso do SARSA(λ) que conforme especificado por BARTO e SUTTON (2012), possui uma garantia de conversão a uma solução ótima contanto que alguns requisitos sejam atendidos, mas porém tais resultados nunca foram publicados.

SARSA(λ) converge com probabilidade 1 para uma política e função de valor ótima contanto que todos os pares estado-ação sejam visitados um número infinito de vezes e que a política convirja no limite do infinito com uma política gananciosa (que pode ser arranjado, por exemplo, com uma política “épsilon-greedy”, definindo épsilon = 1/t) mas estes resultados ainda não foram publicados na literatura.

(13)

Sendo assim, com este trabalho pretendemos provar a convergência do algoritmo de aprendizado por reforço SARSA(λ), onde o lambda representa a utilização de traços de elegibilidade, à uma política ótima segundo as especificações definidas por BARTO e SUTTON (2012) enquanto o aplicamos à robótica no problema da coleta de lixo em ambiente 2D.

1.2. Objetivos

1.2.1. Objetivo Geral

 Aplicar o algoritmo de aprendizagem por reforço SARSA(λ) a tarefa de coleta de lixo, buscando solução ótima e modularizada de problemas.

1.2.2. Objetivos Específicos

 Desenvolver tecnologia base de descoberta, aprendizado e movimentação entre estados;

 Desenvolver um ambiente controlado para o desenvolvimento de testes de algoritmos de inteligência artificial aplicados à robótica;

 Descobrir e explorar a capacidade sensorial mínima necessária para representar o mundo da coleta de lixo em ambiente 2D;

 Provar convergência prática do algoritmo SARSA(λ) a uma política ótima, no problema da coleta de lixo em ambiente 2D;

(14)

2.

Referencial Teórico

2.1. Aprendizado por Reforço

O aprendizado por reforço implica no estudo de como desenvolver agentes capazes de aprender a escolher as melhores ações a executar apenas interagindo com o ambiente no qual estão inseridos.

É uma promessa sedutora – uma maneira de programar agentes através de recompensa e punição sem a necessidade de especificar

como a tarefa deve ser cumprida.

(KAELBLING, LITTMAN e MOORE, 1996, p. 237)

Aprendizado por reforço é aprender o que fazer – como mapear situações a ações – com o objetivo de maximizar um sinal de recompensa numérica.

(BARTO e SUTTON, 2012, p. 4)

Diferentemente de técnicas de aprendizado supervisionado, em aprendizado por reforço não existem exemplos providos por um supervisor conhecido, e em contrapartida, o agente deve aprender baseado em exemplos obtidos com sua própria experiência.

Aprendizado por reforço é aprender através de experimentação direta. Não se assume a existência de um professor que provê “exemplos de treino”. Como alternativa, em aprendizado por reforço a experiência é o professor. O agente age no processo para receber sinais (reforços) dele, indicando sobre o quão bem ele está desempenhando a tarefa exigida.

(RIBEIRO, 1999, p. 3)

O agente de aprendizado por reforço utiliza-se de objetivos explícitos e da habilidade de obter e sentir aspectos do meio ambiente, podendo também escolher ações que influenciarão o mesmo. Ele deve ser capaz de operar mesmo em um ambiente no qual ele tem pouca ou nenhuma informação sobre.

(15)

2.1.1. Características

Neste subcapítulo vamos descrever os elementos principais em um sistema de aprendizado por reforço, seguindo a simbologia de BARTO e SUTTON (2012).

Além do agente e do ambiente, podemos identificar 4 elementos principais em um sistema de aprendizado por reforço: uma política, uma função de recompensa, uma função de valor e opcionalmente um modelo do ambiente.

(BARTO e SUTTON, 2012, p. 3)

2.1.1.1. A política

A política (π(s)) pode ser descrita como o comportamento do agente. Segundo NORVIG e RUSSELL (2009), a política é “um mapeamento completo de estados para ações. ”.

Um mapeamento completo de estados para ações é chamado de política. Dada uma política, é possível prever a sequência dos possíveis episódios que serão gerados por esta política.

(NORVIG e RUSSELL, 2009, p. 500)

Segundo BARTO e SUTTON (2012), “A política é o coração de um agente de aprendizado por reforço no sentido de que sozinha ela é o suficiente para determinar comportamento. ”.

2.1.1.2. A função de recompensa

Uma função de recompensa(r(s,a,s')) é a maneira pela qual o agente é direcionado ao seu objetivo, ela mapeia cada estado/ação a um valor numérico que representa a vantagem imediata deste estado/ação.

A função de recompensa define o objetivo em um problema de aprendizado por reforço. Grosseiramente falando, ela mapeia cada estado percebido (ou par estado-ação) do ambiente para um único número, a recompensa, indicando a vantagem intrínseca de

(16)

determinado estado.

(BARTO e SUTTON, 2012, p. 4)

Ela é a resposta imediata do ambiente para o agente e representa as características do problema que o mesmo está tentando resolver, podendo desta forma ser utilizado como base para alterar a sua política 𝝅 .

2.1.1.3. A função de valor

A função de valor(vπ(s)) representa o que é bom para o agente em

longo prazo. Ela é a soma do total de recompensas que um agente pode esperar receber tomando um estado “s” como ponto de partida e seguindo a política atual.

Enquanto a função de recompensa determina a vantagem imediata de estados do ambiente, a função de valor indica a vantagem em longo prazo após levar em consideração os estados que possivelmente serão seguidos e as recompensas disponíveis nestes estados.

(BARTO e SUTTON, 2012, p. 8)

2.1.1.4. Modelo do ambiente

Utilizado na etapa de planejamento, o modelo pode simular o comportamento do ambiente, ainda que este modelo seja opcional. A cada iteração o agente cria uma nova versão do modelo que se assemelha mais com ambiente real, e com base nele, pode prever o resultado da execução de uma ação em um estado.

O modelo do ambiente se aprende por observação das transações. Em um ambiente acessível, cada entrada de dados identifica um estado, e consequentemente cada transição provê um exemplo direto de entrada/saída para a função de transação representada pelo modelo.

(17)

2.1.2. Modelo padrão de aprendizado por reforço

Segundo BARTO e SUTTON (2012) “O problema do aprendizado por reforço foi concebido para ser uma abordagem direta da tarefa de aprender através de iteração para atingir um objetivo. ”, essa iteração se repete em etapas discretas que podem ser visualizadas na figura 1, conforme descrito por KAELBLING, LITTMAN e MOORE (1996):

No modelo padrão de aprendizado por reforço, um agente é conectado a sem ambiente através de percepção e ação, como descrito na figura 1. Em cada passo de interação o agente recebe uma entrada,

s, alguma indicação do estado atual, O, do ambiente; o agente então

escolhe uma ação, a, para gerar como saída. A ação muda o estado do ambiente, e o valor desta transição entre estados é comunicado ao agente através de um escalar sinal de reforço, r.

(KAELBLING, LITTMAN e MOORE, 1996, p. 238)

O comportamento do agente, π, deve escolher ações que tendam a aumentar a soma dos sinais de recompensa em longo termo. Ele pode aprender a fazer isso através de tentativas e erros sistemáticas (...)

(KAELBLING, LITTMAN e MOORE, 1996, p. 238)

Nós esperamos, em geral, que o ambiente seja não determinístico; ou seja, que tomando as mesmas ações no mesmo estado em duas diferentes ocasiões pode resultar em próximos estados diferentes e diferentes recompensas. (...) De qualquer forma, nós assumimos que o ambiente é estacionário; ou seja, que as probabilidades de fazer transições ou receber recompensas específicas não mude com o tempo.

(18)

Figura 1 – Framework padrão para aprendizado por reforço

Fonte: KAELBLING, LITTMAN E MOORE (1996)

Na figura 1, fica claro o funcionamento do framework padrão para aprendizado por reforço. Em um uma tarefa contínua a robô está o tempo todo tomando ações e recebendo recompensas por estas ações, junto com uma nova observação do mundo. Isso acontece em um ciclo contínuo e determinado: partindo da observação atual “O” o agente desenvolve um estado “s”, com este estado ele utiliza uma política “π” para escolher uma ação “a”; ao interagir com o ambiente “T” e tomar a ação escolhida o robô recebe uma nova observação “O”, contendo as informações para criar o novo estado “s” e também a recompensa “r” pela ação desenvolvida.

2.2. Estados parcialmente observáveis

Também conhecido como ambientes parcialmente observáveis, ou estado escondido (do inglês hidden state), estados parcialmente observáveis são situações recorrentes em muitos ambientes do mundo real nos quais não é possível para o agente ter uma visão completa e precisa sobre o estado do ambiente no qual o agente se encontra atualmente.

Um agente de aprendizado por reforço sofre de hidden state se em qualquer momento está faltando informação necessária na representação do estado do agente para determinar a próxima ação correta. Mais formalmente, nós dizemos que um agente de aprendizado

(19)

por reforço sofre do problema do hidden state se a representação do estado do mesmo é não-markoviana em respeito a suas ações e utilidade.

(MCCALLUM, 1995, p. 5)

É um problema que determina o sucesso ou a falha em atingir a tarefa em agentes de aprendizado por reforço, conforme MCCALLUM (1995) explica em seu artigo: “Se o sistema de observações do agente produzir as mesmas saídas para dois estados do mundo no qual ações diferentes são necessárias, e a representação do estado do agente consistir apenas nestas observações, então o agente vai falhar na tarefa de escolher as ações corretas”.

MCCALLUM (1995) ainda explica que o problema pode existir mesmo quando o agente use memória interna para desambiguar entre estados, e este problema deve persistir até que a quantidade de memória interna seja o suficiente para diferenciar entre os estados em questão, conforme citação a seguir:

Note que mesmo que a representação do agente consista em mais do que suas observações – ou seja, o agente mantém algum estado internamente – ainda é possível que ele sofra do problema do

hidden state. Essa possibilidade ocorre sempre que o agente mantiver

alguma quantidade de estados internamente, mas não o suficiente para desambiguar os estados do mundo para na tarefa determinada.

(MCCALLUM, 1995, p. 6)

2.2.1. Agente sem estados

Neste capítulo vamos descrever as diversas soluções disponíveis para o problema dos estados parcialmente observáveis (hidden state).

Uma maneira bastante simples de lidar com o problema do hidden

state é simplesmente ignorá-lo, em outras palavras, utilizamos as observações

para gerar os estados do ambiente (mesmo que exista ambiguidade) e tentamos aprender uma política baseado nisso.

(20)

A solução mais ingênua para lidar com o hidden state é ignorar o mesmo. Ou seja, tratar as observações como se elas fossem os estados do ambiente e tentar aprender como se comportar.

(MCCALLUM, 1995, p. 6)

Isso gera um problema não-markoviano, ou seja, a observação que gera o estado não retém todas as informações relevantes sobre o estado atual do agente, e desta forma, não garante que o agente chegue a um resultado aceitável, ainda que isso possa ser possível.

Um processo estocástico possui a propriedade de Markov se a distribuição de probabilidade condicional dos estados futuros do processo (condicional em ambos os valores passado e presente) depende apenas do estado presente, e não na sequência de eventos que o precedem. Um processo com esta propriedade é chamado processo Markoviano.

(FELLER, 1971)

Infelizmente, quando o ambiente não é Markoviano, a probabilidade das transições depende unicamente da política sendo executada, que por sua vez vai induzir em um novo conjunto de probabilidade de transição. Esta abordagem (referindo-se à Agentes sem estados) pode gerar resultados plausíveis em alguns casos, mas mesmo assim, não existem garantias.

(KAELBLING, LITTMAN e MOORE, 1996, p. 268)

Ao adicionar um certo grau de aleatoriedade nas ações do agente, criando um agente com política estocástica, é possível garantir que o mesmo não ficará preso a uma ação ruim para sempre, e aprenda uma política local próximo à ótima, conforme KAELBLING, LITTMAN e MOORE descrevem em seu livro:

Alguma melhoria pode ser obtida ao considerar políticas estocásticas; estas são mapeamentos de observações para distribuições de probabilidades sobre ações. Se existe alguma aleatoriedade nas ações do agente, ele não vai ficar preso em um local para sempre.

(21)

2.2.2. Agentes que utilizam memória

Uma solução mais confiável é adicionar história ao estado do agente em ordem a distinguir os estados ambíguos, utilizando memória de curto prazo, observações anteriores ou ainda as ações que o agente tomou e suas respectivas recompensas, tornando o conjunto de estados do agente Markoviano internamente.

A solução mais robusta para o problema do hidden state é expandir a representação dos estados do agente em tempo de execução em ordem à desambiguar estados ambíguos.

(MCCALLUM, 1995, p. 7)

Expandindo as observações do agente com informação histórica – memória de curto prazo de observações anteriores, ações e recompensas – o agente pode distinguir estados notavelmente ambíguos, e pode então escolher com segurança a ação correta para eles

(MCCALLUM, 1995, p. 7)

O problema, conforme descreve MCCALLUM (1995), é “como representar esta memória e como o agente deve aprender o que lembrar e o que esquecer”, já que “o agente começa sem saber como executar a tarefa desejada, e da mesma forma também inicia sem saber quanta memória será necessária”.

Normalmente não é recomendável utilizar tamanhos de memória fixos e pré-definidos, já que em muitos casos não possuímos a informação de quanta memória é necessária para desambiguar todos os estados. Além disso, uma memória muito grande aumentará exponencialmente o número de estados do agente, em contrapartida, uma memória muito pequena pode não ser o suficiente para diferenciar os estados ambíguos, conforme MCCALLUM explica:

Quando o tamanho da janela (referindo-se ao tamanho de história a ser armazenado) é maior do que o necessário, eles aumentam exponencialmente o número de estados internos no agente para os quais uma política deve ser guardada e aprendida; quando o tamanho da memória é menor do que o necessário, o agente reverte para as desvantagens de ter estados escondidos não distinguíveis. Mesmo que o agente entenda sua tarefa bem o suficiente para saber seus requisitos máximos de memória, o agente está em desvantagem com uma

(22)

memória de tamanho constante pois, para a maioria das tarefas, diferentes quantidades de memória são necessárias em diferentes etapas da tarefa.

(MCCALLUM, 1995, p. 7)

O agente deve, em um mundo ideal, aprender não apenas como mapear estados a ações (objeto do aprendizado por reforço) mas também qual é o espaço de estado necessário para o problema em questão.

Quando confrontado com o hidden state o agente não pode mais depender em suas observações para definir completamente o espaço de estado interno do agente. Os estados internos do agente devem depender em ambos a observação atual e uma variável: quantidade de memória aprendida sobre observações anteriores e ações.

(MCCALLUM, 1995, p. 8)

2.3. O dilema do duplo controle

Neste capítulo vamos abordar algumas técnicas de balanceamento entre exploração e aproveitamento, e sua incorporação na política.

Para que um agente de aprendizado por reforço possa encontrar uma política ótima, um dos requisitos é a completa exploração do conjunto de estados e ações. É preciso que o agente explore o ambiente em busca de melhores recompensas para não ficar preso em uma política boa mas não ótima. Da mesma forma, é necessário que o agente se aproveite do conhecimento obtido, caso contrário, suas ações seriam aleatórias e isso não representa aprendizado.

Um problema comum em aprendizado por reforço é achar o equilibro entre exploração (tentando descobrir novas características sobre o mundo através da seleção de ações não-ótimas) e aproveitamento (usando o que nós já sabemos sobre o mundo para obter o melhor resultado que nós conhecemos).

(COGGAN, 2004, p. 2)

Uma das condições necessárias sobre as quais algoritmos de aprendizado por reforço podem achar uma política de ações ótimas é a completa exploração do conjunto de estados, normalmente não factível em situações práticas. Quando ambos o controle e aprendizado estão em jogo, o agente de aprendizado precisa tentar localizar o balanço

(23)

entre a exploração de alternativas para uma determinada política e o aproveitamento desta política como mecanismo para avaliar seus custos associados.

(RIBEIRO, 1999, p. 52)

Sem exploração, o agente retornará sempre ao primeiro objetivo, e um objetivo melhor não seria encontrado. Ou, o objetivo pode estar atrás de uma área com recompensas muito baixas, que o agente evitaria sem exploração. Em contrapartida, se o agente explorar demais, ele não vai se fixar em um caminho; de fato, isso não é realmente aprendizado: ele não pode aproveitar seu conhecimento, e sendo assim age como se não conhecesse nada. Desta forma, é importante encontrar o balanço entre os dois, para assegurar que o agente realmente aprendendo a tomar as ações ótimas.

(COGGAN, 2004, p. 2)

2.3.1. Inicialização otimista

Métodos de diferença temporal (que serão abordados no capítulo 2.5) dependem das estivas inicias de seu conjunto de estados e ações para gerar novas estimativas, de forma que estes valores são também um conjunto de parâmetros que o usuário deve definir.

Na prática, este tipo de viés geralmente não é um problema, e algumas vezes pode ser muito útil. O ponto negativo é que as estimativas iniciais se tornam, na realidade, em um conjunto de parâmetros que devem ser escolhidos pelo usuário, ou no pior dos casos, definidos como zero. O ponto positivo é que elas proporcionam uma maneira fácil de suprir o agente com algum conhecimento prévio sobre que tipo de recompensas podem ser esperadas.

(BARTO e SUTTON, 2012, p. 35)

Conhecendo qual é o valor máximo da recompensa que o agente pode receber do ambiente, esta inicialização pode ser feita de maneira que a estimativa para cada par do conjunto de estados e ações seja maior do que o valor da recompensa. Desta forma, cada recompensa que o agente receber do ambiente será menor do que o valor estimado, incentivando o agente a explorar melhores ações.

(24)

Valores de ação iniciais podem ser usados como uma maneira simples de encorajar exploração. (...) Não importa qual ação é internamente selecionada, a recompensa é menor do que a estimativa inicial; o agente muda para outras ações, estando “desapontado” com as recompensas que está recebendo.

(BARTO e SUTTON, 2012, p. 35)

Conforme explicado por BARTO e SUTTON (2012), esta técnica “está longe de ser uma abordagem geralmente útil para encorajar exploração”, já que ela incentiva apenas uma exploração temporária no começo da execução do algoritmo, não sendo indicada para ambientes não estacionários.

Nós vemos esta técnica como um simples truque que pode ser muito eficaz em problemas estacionários, mas está longe de ser uma abordagem geralmente útil para encorajar exploração. Por exemplo, ela não é indicada para problemas não estacionários pois seu movimento é inerentemente temporário. Se a tarefa mudar, criando uma nova necessidade de exploração, este método não pode ajudar.

(BARTO e SUTTON, 2012, p. 36)

2.3.2. Fator ε de exploração

Quando desejamos manter uma taxa de exploração constante durante toda a execução do algoritmo, podemos definir a constante ε que determinará o percentual do tempo que o agente passará executando uma ação aleatória no lugar de executar a melhor ação definida pela política atual.

(políticas) ε-Greedy são uma variação das políticas normais. Em

ambos os casos, o agente identifica a melhor ação de acordo com os valores do estado/ação. No entanto, existe uma pequena probabilidade

ε de que, no lugar de escolher a melhor ação, o agente deve selecionar

uniformemente uma ação dentre as ações remanescentes.

(COGGAN, 2004, p. 4)

2.4. Rastros de elegibilidade

Na maneira mais rudimentar da aplicação de aprendizado por reforço, a cada etapa do algoritmo apenas um estado/ação é atualizado com a

(25)

recompensa, normalmente o último par de estados e ações que foi visitado. Quando adicionamos rastros de elegibilidade (do inglês eligibility traces) ao algoritmo, a recompensa é propagada para os estados/ações que trouxeram o agente até ela.

Com rastros de elegibilidade, os valores da sequência de estados/ações que guiaram o agente até o estado atual são atualizados. Para cada par de estados e ações, um novo valor, o rastro de elegibilidade, é guardado. Este valor aumenta quando o par estado/ação é visitado, e diminui lentamente em qualquer outra etapa. O rastro de elegibilidade determina até que ponto valor do estado/ação é atualizado: estados com rastros de elegibilidade altos tendem mais em direção a nova informação, enquanto estados com menores rastros de elegibilidade são raramente atualizados.

(COGGAN, 2004, p. 8)

Um rastro de elegibilidade é um registro temporário da ocorrência de um evento, tal como a visita a um estado ou a tomada de uma ação. O rastro marca os parâmetros da memória associados ao evento como elegível para submeter-se a mudanças no aprendizado. Quando um erro TD acontece, apenas os estados ou ações elegíveis recebem crédito ou culpa pelo erro.

(BARTO e SUTTON, 2012, p. 153)

Segundo SUTTON (2012), “Quase qualquer método de diferença temporal, tal como Q-learning ou SARSA(λ), podem ser combinados com rastros de elegibilidade para obter um método mais geral que pode aprender mais eficientemente. ”.

No capítulo 2.5.3, o parâmetro λ do algoritmo SARSA(λ) refere-se ao uso de um traço de elegibilidade, onde quanto maior o valor de λ, mais longa será a sequência estados/ações atualizados.

2.5. Diferença Temporal

Neste subcapítulo, vamos descrever a ideia geral de um algoritmo de diferença temporal (TD) bem como introduzir ao leitor ao SARSA(λ).

(26)

Sendo uma das ideias centrais do aprendizado por reforço, o aprendizado por diferença temporal (também conhecido como Temporal

Difference learning ou TD learning) é uma combinação das ideias de Monte Carlo

e programação dinâmica (DP).

TD learning é uma combinação das ideias de Monte Carlo e

programação dinâmica (DP). Como métodos de Monte Carlo, métodos TD podem aprender diretamente de experiência crua, sem um modelo das dinâmicas do ambiente. Como DP, métodos TD atualizam estimativas baseados em parte em outras estimativas aprendidas, sem esperar por um resultado final.

(BARTO e SUTTON, 2012, p. 129)

Métodos de Monte Carlo necessitam apenas de experiência – sequências exemplo de estados, ações e recompensas de interação estimulada com o ambiente em tempo de execução. Aprender através de experiência online é notável pois não requer conhecimento prévio sobre a dinâmica do ambiente, e ainda assim pode obter comportamento ótimo.

(BARTO e SUTTON, 2012, p. 107)

O termo programação dinâmica (DP) refere-se a uma coleção de algoritmos que podem ser usados para calcular políticas ótimas dado um modelo perfeito do ambiente no formato de um processo de decisão de Markov (MDP).

(BARTO e SUTTON, 2012, p. 83)

Conforme descrito por NORVIG e RUSSELL (2009), “A regra geral em um algoritmo TD é que ele utiliza as recompensas recebidas nas transições observadas para ajustar o valor dos estados com o objetivo de encontrar um equilíbrio na equação”, este objetivo pode ser atingido utilizando a seguinte regra de atualização:

NewEstimate ⃪ OldEstimate + StepSize [Target − OldEstimate]

Onde Target indica a direção desejada para o qual o valor da estimativa deve ser movido, e StepSize indica a velocidade da atualização da estimativa em relação ao objetivo.

(27)

2.5.2. Algoritmos “on-policy” e “off-policy”

O que diferencia um algoritmo on-policy de um algoritmo off-policy é como a regra de atualização se relaciona com a política sendo aprendida pelo agente. SINGH, JAAKKOLA et al, definem brevemente a diferença entre política de aprendizado e regra de atualização:

Um algoritmo de aprendizado por reforço pode ser decomposto em dois componentes. A política de aprendizado é uma política não-estacionária que mapeia experiências (estados visitados, ações selecionadas, recompensas recebidas) em uma escolha atual de ação. A regra de atualização é como o algoritmo usa a experiência para mudar suas estimativas da função de valor ótima.

(SINGH, JAAKKOLA, et al., p. 3)

Sendo assim, a regra de atualização de um algoritmo off-policy pode atualizar sua política baseado em suposições, supostas ações que são diferentes daquelas seguidas pela política atual. Em outras palavras, eles geram uma política X (política estimada) enquanto agem de acordo uma política Y (política de comportamento).

Algoritmos off-policy podem atualizar estimativas de funções de valor com base em ações hipotéticas, em outras palavras, ações diferentes daquelas atualmente executadas.

(SINGH, JAAKKOLA, et al., p. 2)

(em métodos off-policy) A política usada para gerar comportamento, chamada de política de comportamento, pode ser de fato não relacionada a política que é avaliada e aperfeiçoada. Chamada de política estimada.

(BARTO e SUTTON, 2012, p. 122)

Em contrapartida, segundo BARTO e SUTTON (2012), “métodos

on-policy tentam avaliar ou aprimorar a política baseados naquela que está sendo

usada atualmente para a tomada de decisões”, e sendo assim, atualiza as funções de valor apenas com base na experiência adquirida.

(28)

2.5.3. O SARSA(λ)

Os conceitos introduzidos até aqui visam introduzir o leitor aos recursos que são utilizados no algoritmo SARSA(λ), que será descrito de maneira prática neste capítulo.

2.5.3.1. Regra de atualização

O agente SARSA(λ) interage com o ambiente e atualiza sua política baseado em ações tomadas, sendo assim conhecido como um algoritmo

“on-policy”. BARTO e SUTTON (2012) descrevem a seguinte regra de atualização

para o SARSA(λ):

𝑄(𝑆𝑡, 𝐴𝑡) ⃪ 𝑄(𝑆𝑡, 𝐴𝑡) + 𝛼 [ 𝑅𝑡+1+ 𝛾𝑄(𝑆𝑡+1, 𝐴𝑡+1) − 𝑄(𝑆𝑡, 𝐴𝑡) ]

Esta atualização é feita após cada transição para um estado não terminal 𝑆𝑡. Se 𝑆𝑡+1 é terminal, então (𝑆𝑡+1, 𝐴𝑡+1) é definido como zero. Esta regra usa cada elemento da quíntupla dos eventos, (𝑆𝑡, 𝐴𝑡, 𝑅𝑡+1, 𝑆𝑡+1, 𝐴𝑡+1), que faz a transição de um estado/ação para o próximo. Esta quíntupla origina o nome SARSA(λ) para o algoritmo.

(BARTO e SUTTON, 2012, p. 141)

Onde conforme SPRAGUE e BALLARD:

 𝛼 representa a taxa de aprendizagem, ela determina em que nível a erro recém calculado deve atualizar a informação existente;

 𝑅𝑡+1 é a recompensa obtida na transição do estado/ação 𝑆𝑡, 𝐴𝑡 para o estado/ação 𝑆𝑡+1, 𝐴𝑡+1;

 𝛾 representa o fator de desconto, ele determina a importância de recompensas futuras, onde 0 fará com que o agente considere apenas a recompensa atual, e 1 fará com que o agente considere todas as recompensas em longo prazo.

(29)

A versão básica do SARSA(λ), também conhecida como SARSA(0) ou

one-step SARSA, é um algoritmo tabular on-policy sem rastros de elegibilidade,

onde devemos calcular o valor da ação Qπ(s,a) para a política atual π em todos

os estados e ações.

O primeiro passo é aprender uma função de valor de ação ao invés de uma função de valor de estado. Em particular, para um método

on-policy nós precisamos estimar Qπ(s,a) para o comportamento atual π

para todos os estados s e ações a.

(BARTO e SUTTON, 2012, p. 141)

Sendo assim, BARTO e SUTTON (2012) apresentam o algoritmo da figura 2:

Figura 2 – Algoritmo SARSA(0)

Fonte: BARTO e SUTTON (2012)

No entanto, é possível combinar algoritmos de diferença temporal com rastros de elegibilidade, sendo que segundo SINGH e SUTTON (1996), “traços de elegibilidade permitem um uso mais eficiente da experiência em aprendizado por reforço e previsão em longo termo. ”.

Combinando SARSA(0) com rastros de elegibilidade obtemos o algoritmo SARSA(λ):

(30)

Figura 3 – Algoritmo SARSA(λ)

Fonte: BARTO e SUTTON (2012)

Repare na adição de 𝑍(S, A) ao algoritmo padrão, ele é incrementado quando um estado/ação é visitado pelo agente, e o erro que o agente encontra ao realizar uma visita será atualizado em todos os estados e ações, de acordo com o valor do rastro de elegibilidade do estado/ação em questão.

2.5.4. Convergência a política ótima

É necessário existir uma exploração completa dos estados e ações, no entanto BARTO e SUTTON descrevem que a exploração deve ser nula no limite do aprendizado para atingir uma política ótima.

SARSA(λ) converge com probabilidade 1 para uma política e função de ação ótimas contanto que todos os estados/ações sejam visitados um número infinito de vezes e que a política convirja no limite para uma política gananciosa.

(31)

(BARTO e SUTTON, 2012, p. 142)

Desta forma, considerando uma política ε-Greedy, é necessário que o fator de exploração ε seja decaído no tempo para garantir convergência. Segundo BARTO e SUTTON (2012), “isso pode ser atingido em políticas

(32)

3.

Desenvolvimento

Este capítulo descreve o problema que estamos propondo a resolução, denominado “Coleta de lixo”, através da aplicação do algoritmo de aprendizado por reforço SARSA(λ), bem como especificações do robô utilizado e características do mundo desenvolvido.

3.1. O problema da coleta de lixo em ambiente 2D

Em um mundo hipotético controlado, disponibilizamos um robô que deve coletar lixo, ele deve percorrer este mundo procurando pelo lixo, e caso encontra-lo, deve leva-lo até a lixeira. O robô não sabe onde está o lixo ou onde está a lixeira, mas consegue saber sua localização atual baseado em sua memória, ainda que esta posição seja apenas uma provável posição.

Neste mundo também disponibilizamos uma base carregadora, onde o robô deve acoplar-se caso sua bateria esteja abaixo de determinado nível. O desgaste na bateria do robô se dará em função do tempo, sendo que de tempos em tempos, o mesmo necessitará ir até a base carregadora para recarregar.

As capacidades sensoriais deste robô são limitadas, e sendo assim ele não pode distinguir todos os diferentes estados possíveis deste mundo. O robô utiliza a pouca informação que possui para criar uma representação estadual onde estados muito parecidos são generalizados e interpretados como um único estado, e dentro deste estado existem probabilidades de chegar a outros estados dadas as ações que ele executar.

Utilizando sua representação estadual, o robô em questão deve aprender a encontrar a posição do lixo, da lixeira e da base carregadora, além de entender as dinâmicas do mundo no qual está inserido. Ele deve levar o lixo até a lixeira no menor tempo e distância possíveis; ele também deve encontrar a base carregadora de energia quando considerar que sua bateria está fraca.

Para cumprir estas tarefas, utilizaremos um mundo controlado, onde podemos executar testes repetidamente e obter dados para análise com um maior grau de precisão. Neste mundo, a tarefa que o robô deverá aprender a desempenhar será a navegação entre estados onde ele encontra o lixo ou a

(33)

lixeira, bem como o estado onde está a base carregadora de energia.

Este mundo será uma versão linearizada do problema da coleta de lixo, onde utilizaremos cores para representar os elementos envolvidos nesta tarefa. O lixo será representado pela cor prata e a cor vermelha representará a lixeira e a base carregadora, sendo assim, o robô em questão não vai obter o lixo fisicamente, esta será apenas uma variável dentro de sua memória. Quando o mesmo encontrar a cor prata entenderá que encontrou o lixo e agora está carregando o mesmo. Quando encontrar a cor vermelha entenderá que pode descarregar o lixo neste local.

Neste mesmo sentido, existe um gasto energético sempre que o robô se movimenta pelo mundo, seja procurando pelo lixo ou pela lixeira, sua bateria está constantemente sendo descarregada. Existe um ponto nesta descarga de energia em que o robô deve parar de procurar o lixo ou a lixeira, e deve se direcionar até a base carregadora.

Considerando que a base carregadora também é representada por uma cor, assim que o robô encontrar a cor que representa a base carregadora, o seu nível de energia é elevado ao máximo, e ele retorna a sua atividade de coleta de lixo.

Sendo assim, o robô estará sempre executando uma dentre três tarefas possíveis: procurando por lixo; procurando por lixeira ou procurando por energia, conforme pode ser visualizado na figura 4.

(34)

Figura 4 – Diagrama de estados “Coleta de lixo em ambiente 2D”

3.1.1. O mundo da coleta de lixo

Conforme descrito anteriormente, desenvolveremos um mundo controlado sobre o qual executaremos a tarefa objeto deste trabalho. Este mundo é uma linearização do problema de coleta de lixo, atribuindo diferentes cores aos principais elementos desta tarefa.

(35)

Figura 5 – Projeto do mundo da coleta de lixo

O mundo conta com uma área de 3136cm2, dentro do qual

disponibilizamos 4 quadrados de diferentes cores, medindo 18.6cm de base por 18.6cm de altura. Estes quadrados representam (dependendo de sua cor) o lixo, a lixeira e a base carregadora, mas também podem ser utilizados como informação extra para ajudar o robô a formar a sua representação estadual.

As leituras obtidas nos sensores de infravermelho do robô foram utilizadas para diferenciar dentre as diferentes cores dispostas dentro do mundo. Normalmente estes sensores são utilizados apenas para diferenciar preto do branco (conforme figura 6), onde uma cor escura reflete um sinal menor e uma cor clara reflete um sinal maior para o receptor.

(36)

Figura 6 – Funcionamento de um sensor de infravermelho

Fonte: (BASIC ELECTRONICS PROJECT 6- MAKING AN IR SENSOR , 2013)

Para estender este comportamento básico de distinção entre preto e branco, notamos que as leituras obtidas neste sensor variam de acordo com o material e cor que o mesmo está analisando. Desta forma conseguimos utilizar os diferentes níveis de leitura para distinguir dentre diferentes cores, sendo necessário apenas uma calibração e uma definição das cores que são mais adequadas.

Para determinar estas cores, foram feitos testes de leitura sobre diversas amostras de cores, sendo elas: preto, azul, marrom, rosa, amarelo, vermelho, prata, ouro e cinza.

Quando maior a diferença do valor da leitura entre as cores, mais fácil a identificação da mesma no mundo, sendo assim, optamos por selecionar as cores com o maior intervalo de valores entre elas. A tabela 1 mostra o valor obtido nestes testes, sendo que cada valor é a média obtida dentre 30 leituras sobre cada cor:

Tabela 1 – Valores obtidos nos sensores de infravermelho do robô em diferentes cores

Cor Sensor IR 1 Sensor IR 2 Sensor IR 3 Sensor IR 4

Preto 344.60 195.65 293.03 132.70 Azul 2117.54 838.09 1584.85 879.14 Marrom 1247.12 614.53 1036.49 516.20 Rosa 2296.56 1015.33 1602.86 1001.92 Amarelo 2179.43 968.18 1652.32 975.51 Vermelho 2288.09 972.79 1655.77 966.58 Prata 3445.32 3447.12 3439.87 2775.38 Ouro 3443.86 3348.16 3441.39 3099.40 Cinza 392.28 164.01 283.41 152.00

(37)

Na figura 7 ainda podemos verificar que este mundo é cercado por uma borda, representada na figura 5 nela pela cor azul, que consiste no limite físico do mundo.

Figura 7 – Mundo da coleta de lixo (com robô para escala)

3.1.2. Ambiente de desenvolvimento

Abordaremos neste subcapítulo as ferramentas utilizadas para a solução do problema da coleta de lixo em ambiente 2D.

3.1.2.1. O Robô

Para a tarefa descrita, utilizaremos o robô iRobot Create série 4400, exibido na figura 8, tirando proveito de sua confiabilidade, flexibilidade e robustez. É um robô desenvolvido para ser aplicado a programação, atendendo usuários básicos e avançados.

(38)

Create é pré-montado e pronto para ser utilizado logo ao sair da caixa, Iniciantes podem observar o comportamento do robô em qualquer um dos 10 modos de demonstração ou programar o robô através de download de scripts com qualquer terminal básico. Usuários avançados podem escrever programas personalizados utilizando uma variedade de métodos que tomam vantagem da “transmissão dos dados dos sensores” para maior controle do robô, e usuários mais avançados podem escrever programas para um comportamento completamente autônomo.

(iRobot)

O robô conta com uma API de desenvolvimento desenvolvida pela fabricante, chamada Open Interface descrita da seguinte forma:

O Open Interface consiste em uma interface eletrônica e um software para controlar o comportamento do Create e a leitura de seus sensores. A interface eletrônica inclui um conector de 7 pinos Mini-DIN e um conector DB-25 no compartimento de carga para conectar hardware e outros eletrônicos aos sensores e atuadores do Create A interface de software permite a você manipular o comportamento do Create e ler seus sensores através de uma série de comandos incluindo comandos de modo, atuadores, sons, demonstrações e comandos de sensores que você pode enviar para a porta serial do Create através de um PC ou um micro controlador que é conectado ao conector Mini-DIN ou ao conector do compartimento de carga.

(iRobot Open Interface)

Figura 8 – iRobot Create 4400

Fonte: iRobot

(39)

para a formação do conjunto de estados do agente de aprendizado por reforço, sendo eles:

 Sensor de colisão frontal direito e esquerdo;

 Sensores de precipício / força do sinal de infravermelho;

 Sensor de distância percorrida;

 Sensor de ângulo.

Ainda dentro da Open Interface podemos enviar comandos para os atuadores do robô, sendo eles:

 Velocidade roda direita e esquerda;

 Acender/apagar LEDs;

 Alertas sonoros.

3.1.2.2. RLPark

O RLPark, de acordo com descrição do grupo desenvolvedor, é “uma biblioteca em Java de aprendizado por reforço para experimentar com algoritmos de aprendizado online em robôs e benchmarks”. Na prática, ao aplicar esta biblioteca ao iRobot Create 4400 encapsulamos métodos nativos da Open

Interface para simplificar sua utilização.

4.

Características do desenvolvimento

4.1. Conjunto de estados

Utilizando como base as informações obtidas pelos sensores do robô, é necessário desenvolver um conjunto de estados que torne possível ao agente a resolução do problema proposto. O conjunto de estados deve ser grande o suficiente para permitir ao robô um comportamento adequado em cada nova posição descoberta no mundo, mas não deve ser tão grande que torne o aprendizado demorado.

Sendo assim, criamos algumas propostas de funções de estado contendo o sinal do sensor de infravermelho, indicador do nível de bateria /

(40)

presença de lixo e os indicadores de impacto frontal direito e esquerdo.

4.1.1. Sinal do sensor de infravermelho

Com a possibilidade de quatro cores diferentes dentro do mundo para cada um dos quatro sensores de infravermelho posicionados na parte inferior frontal do robô, precisamos de 2 bits para armazenar em qual cor determinado sensor está posicionado em determinado momento. Para cada cor, teremos a seguinte representação:

Tabela 2 – Valor inteiro e binário atribuído por cor detectada

Cor Valor inteiro Valor binário

Preto 0 00

Prata 1 01

Marrom 2 10

Vermelho 3 11

Não necessariamente utilizaremos todos os sensores de infravermelho, visto que eles aumentam consideravelmente o número de estados que o robô pode encontrar e deve explorar, sendo que a quantidade de sensores de infravermelho será decidida de acordo com o resultado de alguns testes de desempenho.

Conforme figura 9, diferentes sensores podem estar localizados sob diferentes cores dentro do mundo, e a concatenação do valor deles formará parte do que vai compor o estado utilizado pelo agente.

(41)

Figura 9 – Sensores de infravermelho na representação estadual do robô

4.1.2. Indicador de nível de bateria e presença de lixo

Esta parte da representação estadual é extremamente importante para definir que comportamento o robô deve assumir, ou seja, se ele está procurando pelo lixo, lixeira ou bateria.

O indicador do nível da bateria será definido como “cheio” enquanto o nível da bateria do robô estiver acima de determinada constante. Esta variável que representa o nível da bateria é decrementada por outra constante, fazendo com que de tempos em tempos o robô necessite procurar pela cor que representa a base carregadora para definir o indicador do nível da bateria como “cheio”.

(42)

O indicador de presença de lixo no compartimento de carga do robô será definido como “sim” quando o robô encontrar a cor que representa o lixo dentro do mundo, e da mesma forma, será definida como “não” quando ele encontrar a cor que representa a lixeira.

A definição da tarefa que o robô está tentando executar funciona de acordo com a tabela 3, respeitando a condição destes dois bits de informação:

Tabela 3 – Tarefa sendo executada de acordo com indicador de bateria e lixo

Tarefa Nível de bateria Presença de lixo

Procurando lixo “cheio” “não” Procurando lixeira “cheio” “sim” Procurando energia “vazio” “sim” Procurando energia “vazio” “não”

4.1.3. Sensores de impacto frontal direito e esquerdo

Na parte frontal do robô temos dois sensores de impacto, um localizado à direita e um à esquerda, que podem ser utilizados para indicar a presença de algum objeto imediatamente a frente do robô.

Na representação estadual que escolhemos, eles são importantes para dar ao agente uma noção de “limite” do ambiente, indicando que o robô não pode mais seguir em frente e deve dobrar a direita ou esquerda, de acordo com o comportamento que o mesmo está aprendendo.

Tal como os indicadores de presença de lixo ou nível de bateria, cada um dos sensores de impacto será representado por um bit de informação, ou seja, “existe obstáculo” ou “não existe obstáculo”, somando dois bits para formar esta parte da representação estadual.

4.1.4. Tamanho da representação estadual

No desenvolvimento da representação estadual do agente, temos que escolher quantos dos sensores de infravermelho serão usados para compor o estado do agente. Com o objetivo de descobrir qual representação estadual tem uma melhor curva de aprendizado, e qual delas coleta mais lixo no mesmo

(43)

intervalo de tempo, executamos o mesmo algoritmo com as mesmas configurações, porém com duas representações estaduais diferentes.

A primeira é composta dos sensores de impacto frontal, indicador de presença de lixo e nível de bateria, e ainda dois sensores de infravermelho (frontais) do robô – vamos chamar esta representação de configuração 1.

A segunda é composta dos sensores de impacto frontal, indicador de presença de lixo e nível de bateria, porém todos os quatro sensores de infravermelho do robô – vamos chamar esta representação de configuração 2.

(44)

Figura 11 – Quantidade de recompensa recebida a cada 500 passos (rep. estadual)

Conforme exibido na figura 11, quanto utilizamos todos os sensores de infravermelho para identificar as cores, o crescimento no número de estados afeta a velocidade de aprendizado, mas a longo prazo produz um melhor comportamento e cumpre a tarefa de maneira mais satisfatória.

Podemos perceber também, que existe uma queda no número de recompensas recebidas na configuração 1 entre os passos 1501 e 2000, que coincide com o período em que o agente está aprendendo a localizar a base carregadora de energia pela primeira vez. Na configuração 2, por existirem menos estados, a procura pela base de energia ocorre entre os passos 1001 e 1500, onde também visualizamos uma queda no número de recompensas recebidas, validando esta conclusão.

4.2. Conjunto de ações do robô

A definição das ações que o robô pode executar são diretamente relacionadas ao comportamento do robô e a capacidade do algoritmo de produzir um comportamento adequado. Passos 1-500 Passos 501-1000 Passos 1001-1500 Passos 1501-2000 Configuracão 1 9,00 12,33 11,33 13,33 Configuração 2 10,33 13,67 19,17 16,33 Configuracão 1 13,33 Configuração 2 16,33 0,00 5,00 10,00 15,00 20,00 25,00 Qu an ti d ad e em 5 0 0 p as so s

Comparação de quantidade de

coleta/descarga lixo/recarga bateria em 500

passos

(45)

Bem como quais ações o robô pode executar, a quantidade de ações também influencia a velocidade do aprendizado, sendo que, quanto mais ações o robô pode executar, mais tempo ele vai levar explorando todas elas até que possa dizer quais são as ações ótimas em cada estado. A imagem a seguir exibe as três ações possíveis disponíveis em cada estado.

Figura 12 – Robô com posição dos sensores e atuadores

Após definir quais são as ações possíveis, é necessário definir o tempo e a velocidade para que as mesmas gerem a melhor curva de aprendizado, e para que o agente receba o maior número de recompensas em um menor intervalo de tempo. Testamos o seguinte conjunto de configurações:

 Andar para frente com a velocidade de 150 mm/s durante 100 milissegundos ou girar a esquerda/direita com a velocidade de 200 mm/s durante 500 milissegundos, que chamaremos de configuração 1;

 Andar para frente com a velocidade de 150 mm/s durante 100 milissegundos ou girar a esquerda/direita com a velocidade de 200 mm/s durante 1000 milissegundos, que chamaremos de configuração 2;

(46)

milissegundos ou girar a esquerda/direita com a velocidade de 200 mm/s durante 200 milissegundos, que chamaremos de configuração 3;

Figura 13 – Recompensa acumulada média por passo (ações)

(47)

Analisando estes resultados, percebemos que a combinação de velocidade e tempo que gera a melhor curva de aprendizado, aliada com o maior número de recompensas recebidas (encontrou lixo, lixeira, etc.) é a configuração 2.

Figura 15 – Conjunto de ações selecionadas

Percebemos que ações muito curtas, como na configuração 3, fazem com que o robô necessite escolher diversas vezes a ação correta para mudar de estado, gerando uma probabilidade muito baixa de encontrar um estado novo a cada ação executada, e impedindo assim a geração de uma política ótima.

Da mesma forma, a duração da ação “girar para a esquerda/direta” é diretamente proporcional a qualidade da curva de aprendizado quando comparamos a configuração 2 e 1, sendo que a configuração 1 (composta pela ação girar com a metade da duração da configuração 2) exige que o agente escolha duas vezes a ação correta para atingir ao mesmo ponto que a configuração 2 atinge com apenas uma ação.

4.2.1. Ausência de ação por estado

Em estados nos quais o sensor de impacto do robô percebe os limites físicos do ambiente desenvolvido, removemos a ação “andar para frente” do conjunto de possíveis ações que o robô pode escolher. Com isso, impedimos que o robô saia dos limites físicos do ambiente desenvolvido, eliminamos a

(48)

necessidade de explorar uma ação que não pode trazer nenhum benefício para a aprendizagem e preservamos a integridade física do robô e do ambiente.

Quando o robô detecta uma barreira durante a execução de uma ação, ele imediatamente para a ação sendo executada e espera até o fim do tempo do passo atual para então escolher uma nova ação. Neste caso o robô recebe uma recompensa negativa, mas vamos descrever com mais detalhes a função de recompensa no próximo capítulo.

4.3. Função de recompensa

Desenvolvemos uma função de recompensa bastante simples, com foco em recompensar o robô ao realizar ações corretas e também recompensar a exploração no mundo. A tabela 4 mostra a recompensa recebida pelo robô de acordo com a tarefa sendo realizada e o estado atual.

Tabela 4 – Função de recompensa

Tarefa Estado atual Recompensa

Procurando lixo Achou lixo 1.00 Procurando lixo Não achou lixo 0.00 Procurando lixeira Achou lixeira 1.00 Procurando lixeira Não achou lixeira 0.00 Procurando energia Achou energia 1.00 Procurando energia Não achou energia 0.00

Para incentivar o robô a explorar o mundo, e assim acelerar a velocidade com a qual ele descobre estados e aprende, estamos dando um bônus para quando o robô escolhe a ação “andar para frente” e não encontra o limite do mundo.

(49)

5.

Resultados e discussão

Neste capítulo apresentaremos os resultados obtidos através do algoritmo Sarsa(λ) com a melhor representação estadual e conjunto de ações obtidos durante o desenvolvimento deste trabalho, estudando a influência de alguns dos parâmetros do algoritmo sobre a curva de aprendizado.

5.1. Estudos dos parâmetros

Para cada configuração diferente dos parâmetros abaixo, foram executados 3 experimentos em situação igual, ou seja, todos os outros parâmetros do algoritmo e também características do problema e do mundo foram mantidos.

5.1.1. Lambda

O lambda influência a quantidade de estados anteriores ao estado que recebeu a recompensa que vão receber partes desta recompensa, ou seja, quanto em direção ao passado a recompensa atual deve ser propagada. Sendo assim, é importante descobrir o melhor valor de Lambda para o problema da coleta de lixo, e também a sua influência sobre o mesmo.

Conforme pode ser verificado na figura 16, os parâmetros escolhidos para lambda foram 0.0, 0.7 e 0.9, ou seja, o primeiro sem traços de elegibilidade, o segundo propagando a recompensa para aproximadamente 20 estados e ações antes de se tornar irrelevante, e o terceiro propagando a recompensa para aproximadamente 60 estados e ações.

(50)

Figura 16 – Influência do lambda na recompensa acumulada média por passo

Figura 17 – Influência do lambda na quantidade de recompensa recebida

(51)

o melhor lambda é o 0.7. Apesar do lambda 0.9 aprender mais rápido no começo da execução do algoritmo, ele aprende uma política um pouco menos satisfatória que o 0.7 em um experimento mais longo.

Ao não utilizar os traços de elegibilidade (lambda = 0.0) a política obtida não evolui na segunda metade da execução do experimento, sendo que no final de sua execução a política é menos efetiva que a política aleatória inicial.

5.1.2. Alpha

Conforme pode ser visualizado na figura 18, o alpha está afetando a velocidade do aprendizado, onde conforme maior o alpha, mais rápido será o aprendizado. Porém, ao chegar ao alpha 0.3, percebemos que o mesmo aprende mais rápido no começo da execução mas tem dificuldade em atingir uma política ótima em longo prazo.

Figura 18 – Influência do alpha na recompensa acumulada média por passo

O gráfico da figura 19 também demostra a capacidade do alpha em afetar a velocidade do aprendizado. Para o alpha 0.2, percebemos que o mesmo

(52)

recebe mais recompensa na primeira metade da execução, e também, que é a configuração de alpha que mais aumenta a quantidade de recompensa recebida na segunda metade da execução em relação a primeira.

O alpha 0.1 tende a atingir um desempenho igual ou maior que o alpha 0.2 (contanto que seja executado por um tempo maior), tanto na curva de aprendizado quanto na quantidade de recompensa recebidas, pois ambos crescem paralelamente ao alpha 0.2.

Figura 19 – Influência do alpha na quantidade de recompensa recebida

5.1.3. Gamma

No gráfico a seguir, gamma 0.4 maximiza as recompensas mais imediatas e leva mais tempo para aprender um bom comportamento (a figura 21 também demonstra esta dificuldade).

(53)

Figura 20 – Influência do gamma na recompensa acumulada média por passo

O gamma 0.9 considera uma quantidade muito maior de sequencias de recompensa para gerar a política, e por consequência, está convergindo rápido logo no começo da execução. Por considerar uma grande parte da sequência de recompensas, ele acaba recebendo muito ruído do valor dos estados posteriores, e o desempenho em longo prazo é pior que os outros valores de gamma.

Referências

Outline

Documentos relacionados

No método Paulo Freire, o educador não é mais visto como aquele que apenas educa, que transfere seu conhecimento para os demais, mas aquele que, enquanto educa, também aprende com

diversidade genética. O manguezal do rio São Paulo é o mais homogêneo vertical e horizontalmente e contem maiores concentrações nos sedimentos podem estar ligadas as

À parte essa justificativa, falar sobre O mistério do samba e O samba que mora em mim é, na verdade, falar sobre Portela e Mangueira, não apenas as duas mais

Bento Pereira apresenta uma lista de autores e obras em língua portuguesa, de vários pendores: religioso, enciclopédico, dicionarístico, e literário.A escolha destas obras

de professores, contudo, os resultados encontrados dão conta de que este aspecto constitui-se em preocupação para gestores de escola e da sede da SEduc/AM, em

crianças do pré́-escolar e dos seus determinantes, assim como a avaliação do efeito de um programa de escovagem diária na escola no estado de saúde oral (índice

461.. necessário efetuar um enquadramento através de alguns exemplos mais mediáticos, tais como o jogo Pokémon Go. Apenas alguns alunos, apesar de não identificarem a

Figura 4 – Correlação entre adição de diferentes porcentagens de soro de queijo ao leite e os resultados obtidos para a pesquisa dessa fraude pelo método da cromatografia líquida