28
Laborat ´ orio VISGRAF Instituto de Matem ´ atica Pura e Aplicada Introducao ao Aprendizado por Reforco Caio Souza and Luiz Velho (supervisor) Technical Report TR-19-04 Relat ´ orio T ´ ecnico April - 2019 - Abril The contents of this report are the sole responsibility of the authors. O conte ´ udo do presente relat ´ orio ´ e de ´ unica responsabilidade dos autores.

Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

Laboratorio VISGRAFInstituto de Matematica Pura e Aplicada

Introducao ao Aprendizado por Reforco

Caio Souza and Luiz Velho (supervisor)

Technical Report TR-19-04 Relatorio Tecnico

April - 2019 - Abril

The contents of this report are the sole responsibility of the authors.O conteudo do presente relatorio e de unica responsabilidade dos autores.

Page 2: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

I N T R O D U C A O A OA P R E N D I Z A D O P O R R E F O R C O

caio souza

conteudo

1 Introducao 1

1.1 Objetivos 2

1.2 Motivacao - Agentes inteligentes 2

2 Aprendizado de reforco 3

2.1 Processos de Decisao de Markov 3

2.2 Aprendizado de reforco 7

2.2.1 Diferenca-Temporal e Q-Learning 7

2.2.2 Generalizacao 8

2.2.3 Metodos de busca por polıticas 9

2.2.4 Visao geral: Aprendizado profundo 10

2.2.5 Direcoes 10

3 Unity 11

3.1 Aprendizado de reforco no Unity 12

3.2 Arquitetura 12

3.3 Exemplo concreto: Puppo 13

4 Experimentos 16

4.1 Cubo magico 16

4.2 Abordagens recentes 19

4.3 Resultados e Analise 19

5 Conclusao 25

Referencias 25

1 introducao

Desde os primeiros filmes de ficcao cientıfica ate a atualidade o ser-humanoimagina como seriam robos, assistentes e outras entidades artificialmenteinteligentes. Muitos destes alucinam tanto quanto guerras entre homem emaquina e se estas seriam capazes de ter emocoes. Um fato e indiscutıvel, abusca e pesquisa para criar tais entidades, que aqui chamaremos de agentes,vem em uma crescente e muitos dos resultados, (mesmo que muitas vezesseguindo uma especie de roteiro para conduzir as interacoes entre taisagentes e humanos), sao impressionantes.

Atualmente no campo de aprendizado de maquina e inteligencia artificial,arquiteturas envolvendo redes neurais (Deep Learning), tem se mostradoextremamente promissoras em varios problemas de decisao, que em sumarefletem bem a acao de um agente inteligente: observar o ambiente, escolheruma acao e entao interagir com o ambiente.

Na area de aprendizado por reforco um dos primeiros resultados expres-sivos foi o DeepMind resolvendo jogos de Atari[17] utilizando aprendizadoprofundo e aprendizado de reforco conjuntamente. Seguindo esta nova abor-dagem foram tambem desenvolvidos AlphaGo [26] e AlphaStar [1], capazesde vencer jogadores profissionais nos jogos Go e StarCraftII respectivamente.Embora estes exemplos sejam de jogos, este arcabouco pode ser aplicadoem qualquer tipo de problema de decisao, formalmente chamados de Pro-cessos de Decisao de Markov. Neste contexto, jogos sao nada mais do que

1

Page 3: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

ambientes de simulacao, aonde cada decisao pode ou nao mudar o ambientetrazendo recompensas ou penalizacoes, normalmente associadas a ganharou perder o jogo. Este tipo de abordagem e a chave para a criacao de agentes”inteligentes” capazes de aprender e se adaptar.

1.1 Objetivos

Este trabalho e um primeiro contato com aprendizado por reforco e temcomo objetivo:

• Entender concetualmente as ideias por traz deste tipo de aprendizado.

• Criar uma intuicao sobre as limitacoes e abordagens em diferentesproblemas.

• Explorar as ferramentas de aprendizado disponıveis no Unity.

Embora esta area de aprendizado abranja uma enorme quantidade deteoria de varias outras areas e inumeros algorıtmos e arquiteturas diferentes,este se restringira ao classico e ao subconjunto presente no Unity, sendosuficiente para cumprir com os objetivos propostos. Iniciamos com umaintroducao teorica, seguido pelos exemplos praticos presentes no Unity efinalmente e apresentado um exemplo proprio junto com resultados afim decomparacao e testes.

1.2 Motivacao - Agentes inteligentes

Em areas como robotica e jogos a necessidade de agentes minimamente in-teligentes, capazes de interagir com o ambiente e explıcita e de facil entendi-mento. Nos primordios a solucao para tal inteligencia eram os automatosfinitos e agentes reativos simples. Esse tipo de abordagem baseia-se emdefinir possıveis estados em que o agente/ambiente se encontra e as acoesque sao tomadas por este agente para cada estado. Por exemplo, no jogoPAC-MAN, podemos definir um agente para perseguir o jogador com doisestados-acoes: Se o jogador esta proximo entao toma a acao perseguir, casocontrario, se o jogador esta distante toma a acao patrulhar. Aqui a inteligenciado agente fica toda a cargo de quem desenvolve a tabela de estados e acoes.Outro ponto importante e que as caracterısticas que o agente observa e asacoes possıveis sao de um nıvel cognitivo mais alto do que realmente oambiente oferece.

Para entender melhor este exemplo, definimos o objetivo do agente comocapturar o jogador e o objetivo do jogador capturar todas as recompensas semser capturado. Suponha que a modelagem do ambiente e feita da seguinteforma:

• O ambiente e uma matriz Amxn onde cada entrada pode ser, vazio,parede ou recompensa.

• O jogador e os agentes podem se mover nas direcoes, cima, baixo,esquerda ou direita, desde que a posicao i, j, elemento ai,j exista e naoseja do tipo parede.

• O jogo acaba quando nao existirem recompensas ou o jogador seencontrar na mesma posicao de um dos agentes, ou seja, for capturadopelo agente.

2

Page 4: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

Figure 1: A esquerda ilutracao do jogo PAC-MAN e a direita a divisao doespaco em tiles, podendo ser representados por uma matriz.

Esta modelagem e facil de ser programada, porem para definirmos ascaracterısticas observadas no ambiente e acoes do agente tais que estas levemao objetivo, e preciso definir outros conceitos de mais alto nıvel, o que eproximidade, patrulhar e perseguir? Felizmente neste caso podem-se definirtais conceitos facilmente como:

• proximidade - a distancia entre a posicao do agente e do jogadorreferente aos ındices da matriz A menor que um limiar k.

• patrulhar - escolher uma direcao aleatoria de movimento dentre aspossıveis a cada instante de tempo t.

• perseguir - calcular o vetor direcao entre o jogador e o agente, escolhera direcao possıvel que faca o menor angulo com este vetor a cadainstante de tempo t

2 .

Para se desenvolver agentes desse tipo e necessario um conhecimentoprofundo de como sintetizar as informacoes do ambiente em algo util para oagente e tambem como desenvolver as acoes. Mesmo neste exemplo simpleso ”perseguir” dentro de um labirinto pode fazer com que o agente fiquepreso em uma quina, necessitando de um comportamento mais ”inteligente”.

Imagine um ambiente complexo, por exemplo um robo de resgate emcatastrofes. Definir uma meta para o robo e simples, resgatar pessoas porexemplo, por outro lado, definir os possıveis estados, (leituras dos variossensores), e acoes, (forcas exercidas nos atuadores/juncoes), que levemao objetivo sao extremamente difıcies algoritmicamente e mesmo que estasfossem bem definidas, armazenar tal tabela de estado-acao seria tecnicamenteimpossıvel dado o tamanho do espaco de estados. Assim temos a motivacaopara as componentes de aprendizado por reforco e aprendizado profundo:criar este entendimento do ambiente e das consequencias de cada acao nabusca do objetivo, e comprimir ou aproximar este conhecimento de formatecnicamente aplicavel.

2 aprendizado de reforco

Esta secao resume o basico sobre aprendizado de reforco e mostra onde oaprendizado profundo se encaixa. Detalhes sobre o aprendizado profundoem si estao fora do escopo deste trabalho, um aprofundamento nesta areapode ser encontrado em [15].

Iniciamos com a base matematica para a modelagem de agetens e avancamosseguindo as motivacoes e desafios e solucoes que se apresentam no processo.

2.1 Processos de Decisao de Markov

A modelagem matematica de agentes interagindo com um ambiente e feitautilizando processos de decisao de Markov. Esta modelagem e caracterizadapor uma tupla (S, A, T, R) onde:

3

Page 5: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

• (S) - State - sao os possıveis estados do processo.

• (A) - Action - sao as possıveis acoes do processo.

• (T) - Transition - e uma funcao T : S× A× S→ [0, 1], que e a probabil-idade de estando no estado s e tomando a acao a o processo transitepara o estado s′.

• (R) - Reward - e uma funcao R : S× A→ R, que e a recompensa, (tantopositiva quanto negativa), ao tomar a acao a no estado s.

Com esta formulacao podemos definir o que e uma polıtica de acao nesteprocesso. Uma polıtica e uma distribuicao π : S× A → [0, 1] indicando aprobabilidade P(a|St = s), ou que estando no estado s seja tomada a acao a.Em outras palavras, uma polıtica deste tipo define um comportamento deacoes dentro do processo, aqui sempre que for referenciada uma polıtica estasera estacionaria, ou seja, independente do tempo t do processo, π e semprea mesma distribuicao.

Em geral polıticas com esta, tentam maximizar a recompensa obtidano processo. Este tipo de modelagem explicita que a inteligencia de umagente e a polıtica que melhor desempenha a tarefa desejada. Em outraspalavras, atraves de sucessivas acoes a polıtica (agente) maximiza a somadas recompensas R(s, a). Uma sequencia de estados e acoes e chamado detrajetoria τ e pode se referir a soma das recompensas de uma trajetoria comoR(τ).

E interessante notar que na maioria dos casos e muito mais facil avaliara qualidade de algo do que descrever como faze-lo. Por exemplo, e maisfacil provar uma comida e dizer se esta esta boa ou nao do que descreverpasso a passo como cozinhar um prato. Com isto tem-se a motivacao para oaprendizado de reforco: aprender a polıtica que cumpre determinada tarefaatraves de recompensas as quais sao avaliacoes dos resultados.

Antes de apresentar como e feio o aprendizado de uma polıtica e necessariodefinir conceitos que serao utilizados.

Horizonte - e o tamanho da sequencia de acoes visıvel dentro do processo,ou seja, ate qual tempo futuro e considerado que a acao atual tem influencia.O horizonte pode ser finito ou infinito, quando este e finito, pode ser os kpares estado/acao decorrentes apos o atual, por exemplo.

Recompensa esperada total - e a esperanca das recompensas E[∑k−1

i=0 Ri

]onde Ri e a variavel aleatoria da recompensa em cada estado de uma tra-jetoria τ e horizonte k.

Recompensa esperada descontada - e E[∑k−1

i=0 γiRi

]com γ ∈ (0, 1) o fa-

tor de desconto. Este fator alem de ajudar na convergencia do somatorio paratrajetorias com horizonte infinito, implica conceitualmente que recompensasmais proximas sao melhores que recompensas em um futuro distante.

4

Page 6: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

Funcao valor - Indica o valor de recompensa esperado para um dadapolıtica π a partir de um estado st, para o caso da recompensa esperadadescontada e Vπ(s) = E

[∑k

i=0 γiRt+i|St = s]

ou recursivamente:

Vπ(s) = E

[k

∑i=0

γiRt+i∣∣St = s

]

= E

[Rt +

k

∑i=1

γiRt+i∣∣St = s

]

= E

[Rt + γ

k

∑i=0

γiRt+1+i∣∣St = s

]

= E

[Rt + E

k

∑i=0

γiRt+1+i∣∣St+1

] ∣∣St = s

]= E

[Rt + γVπ(St+1)

∣∣St = s]

com St a variavel aleatoria do estado do processo no tempo t. Aplicandooperador de esperanca tem-se:

Vπ(s) = Rs + γ ∑s′∈S

Ts,s′Vπ(s′)

comRs = E [R(s, a)] = ∑

a∈Aπ(s, a)R(s, a)

a esperanca de recompensa no estado s e

Ts,s′ = E[T(s, a, s′)

]= ∑

a∈Aπ(s, a)T(s, a, s′)

a esperanca da transicao do estado s para o estado s′, ambas seguindo apolıtica π.

Funcao acao-valor - Indica o valor de recompensa esperado no estado stomando a decisao a e seguindo a polıtica π desta acao em diante. Seguindoo mesmo desenvolvimento da funcao valor, a funcao acao-valor e dada por:

Qπ(s, a) = R(s, a) + γ ∑s′∈S

T(s, a, s′)Vπ(s′)

Vale notar que a relacao entre Vπ(s) e Qπ(s, a) e:

Vπ(s) = ∑a′∈A

π(s, a′)Qπ(s, a′)

Dessa forma pode-se escrever Qπ(s, a) tambem de forma recursiva

Qπ(s, a) = R(s, a) + γ ∑s′∈S

T(s, a, s′) ∑a′∈A

π(s′, a′)Qπ(s′, a′)

5

Page 7: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

Figure 2: Exemplo Q-Learning de um ambiente quadrado 5 × 5 ondeum agente pode se mover nas direcoes cima, baixo, esquerda e direita.Parte do ambiente nao e acessıvel (wall) e existem pontos onde perde-seo jogo(vermelho) e ganha-se o jogo(verde). A divisao das celulas indica aprobabilidade de se mover na direcao adjacente e as cores dessas celulasindicam a probabilidade, verde P(a|s) = 1 e vermelho P(a|s) = 0. Conformeas iteracoes do metodo, as probabilidades de cada movimento mudam, deforma a chegar no ponto onde se ganha e evitar os pontos onde se perde.

Polıtica otima

Resolver o processo de decisao e encontrar uma polıtca que maximiza Vπ(s)ou Qπ(s, a), ou seja, maximiza a recompensa.

Formalmente escrevemos o espaco das distribuicoes π

Ω = π|π : S× A→ [0, 1],∫

a∈Aπ(s, a)da = 1 ∀s ∈ S

e um otimo

Vπ∗(s) ≥ Vπ(s), ∀π ∈ Ω, ∀s ∈ S

Qπ∗(s, a) = R(s, a) + γ ∑s′∈S

T(s, a, s′)Vπ∗(s′)

Partindo da relacao

Vπ(s) = ∑a′∈A

π(s, a′)Qπ(s, a′)

Vπ∗(s) = maxπ∈Ω

(∑

a′∈Aπ(s, a′)Qπ∗(s, a′)

)= max

a∈AQπ∗(s, a)

6

Page 8: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

e portanto

π∗(s, a) =

1, a = arg maxa∈A Qπ∗(s, a)0, caso contrario

finalmente tem-se

Qπ∗(s, a) = R(s, a) + γ ∑s′∈S

T(s, a, s′)maxa′∈A

Qπ∗(s′, a′)

Vπ∗(s) = maxa∈A

R(s, a) + γ ∑

s′∈ST(s, a, s′)Vπ∗(s′)

esta ultima conhecida como Equacao de Bellman, que pode ser resolvidaatraves da iteracao de valores:

Vπ∗(s)← maxa∈A

R(s, a) + γ ∑

s′∈ST(s, a, s′)Vπ∗(s′)

Para utilizar este metodo e necessario ter o modelo de recompensa R e omodelo do ambiente T, o que restringe seu uso.

2.2 Aprendizado de reforco

O aprendizado por reforco e descrito por Russell [23] como:”Imagine playing a new game whose rules you dont know; after a hundred or

so moves, your opponent announces, You lose. This is reinforcement learning in anutshell.”

Fica assim evidenciado que nao se tem acesso ao modelo do processo. Eatraves de tentativa e erro que as informacoes de estados, acao e recompensasao coletadas. Assim faz-se necessario metodos de aprendizado que lidemcom este tipo de contexto, estes sao chamados metodos livres de modelo.

2.2.1 Diferenca-Temporal e Q-Learning

Diferenca temporal e um metodo livre de modelo, (nao necessita das funcoesT e R), para aproximar a funcao valor. A ideia principal deste e aproximarpouco a pouco V utilizando apenas informacao das transicoes entre estados.Seja uma transicao de estados s para s′ com recompensa rs observada, aatualizacao de V da-se com a seguinte iteracao:

Vπ(s)← Vπ(s) + α(rs + γVπ(s′)−Vπ(s))

com α o fator de aprendizado. Apos obter varias experiencias (s, s′, rs) eatualizar Vπ tem-se uma aproximacao de Vπ∗ , pois se estas transicoes seguema polıtica π∗ tem-se no limite uma media ponderada pelas probabilidadesde cada transicao/recompensa.

Dois fatores importantes neste metodo sao:

• convergencia - O fator de aprendizado α precisa ser suficientementepequeno para que o metodo convirja, e alem disto cada iteracao leva emconta apenas um estado possıvel de transicao. Por isso a convergenciadeste metodo e mais lenta.

• tendencia - Neste metodo assume-se que as experiencias (s, s′, rs) obser-vadas seguem a polıtica π∗, que e justamente o que se deseja aprender.Durante a execucao do metodo o agente utiliza a propria Vπ para tomardecisoes, o que pode levar a tendencias indesejadas e fazer com quenao se aproxime Vπ∗ .

Metodos em que o agente toma decisoes usando a polıtica que estasendo aprendida sao chamados de on-policy. Para diminuir o vies nesse tipode metodo e necessario que o agente explore suficientemente o ambiente

7

Page 9: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

para nao convergir para uma polıtica sub-otima. O problema entre seguiruma estrategia conhecida e tentar novas estrategias (explorar o ambiente) econhecido como exploitation-exploration e existem varias tecnicas com variosgraus de sofisticacao que tentam encontrar o equilıbrio dessas componentes.

Uma das formas mais simples de se obter esta exploracao do ambiente efazer com que o agente siga um polıtica definida π com probabilidade 1− εe com probabilidade ε o agente escolha uma acao aleatoria.

Outro metodo que utiliza a mesma ideia da diferenca temporal so quepara a funcao acao-valor e o Q-Learning que tem a iteracao na forma:

Qπ(s, a)← Qπ(s, a) + α(rs,a + γ maxa′

Qπ(s′, a′)−Qπ(s, a))

O maximo que aparece na formula parte da suposicao que o agente escolhesempre a acao com maior valor. A motivacao para utilizar Qπ ao em vez deVπ e que a primeira e mais simples de ser utilizada na tomada de decisaopelo agente. Duas formas comumente utilizadas para escolher uma acaoseguindo a polıtica π atraves de Qπ sao: tomar a de forma gulosa

a = arg maxa′

Qπ(s, a′)

e a outra estocastica tomando as probabilidades utilizando softmax

P(a|St = s) =eQπ(s,a)

∑a′∈A eQπ(s,a′)

.

2.2.2 Generalizacao

Ate o aqui foi apresentada uma forma de adquirir e representar conhecimentoatraves de tabelas do tipo (s, a)→ v ∈ R, porem surgem as questoes:

• Como armazenar tais tabelas para um espaco S × A muito grande?Tomando o exemplo do PAC-MAN, se assumirmos uma matriz pequena10× 10 e considerarmos que cada posicao da matriz pode ser vazio,recompensa e muro, ja temos 310×10 possıveis estados, sem contar aposicao do(s) agente(s) e do jogador.

• Como expandir o conhecimento adquirido para outros estados proximosmas que ainda nao tenham sido explorados?

A resposta para estas questoes e: Utilizar modelos parametricos pararepresentar e expandir o conhecimento. Ao em vez de uma tabela temos umfuncao de parametros θi, para aproximar Q por exemplo

Qθ(s, a) = f (θ, s, a)

com f um modelo previamente escolhido. Com isto transfere-se o apren-dizado da tabela para o aprendizado dos parametros θi.

A otimizacao dos parametros pode ser feita atraves de mınimos quadrados.Definimos o erro como:

err =(qs,a −Qθ(s, a))2

2

com qs,a o valor observado e Qθ(s, a) o valor previsto pelo modelo. E entaoutiliza-se gradiente descendente para minimizar o erro, logo aproximaro observado do previsto. As iteracoes do gradiente descendente sao daseguinte forma:

θ ← θ − α∇θerr

onde α e a taxa de aprendizado. Para o caso de Q-Learning a iteracao fica naforma:

θi ← θi − α(rs,a + γ maxa′

Qθ(s′, a′)−Qθ(s, a))∂Qθ(s, a)

∂θi

8

Page 10: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

2.2.3 Metodos de busca por polıticas

Outra classe de metodos no aprendizado por reforco sao os que aproximamdiretamente a polıtica π∗, e de fato, a inteligencia do agente esta em escolheras acoes certas e nao em saber quao bom e um estado ou acao. Uma dasvantagens desse tipo de metodo e maior estabilidade, mas por outro ladopodem as vezes estacionar em otimos locais.

Propomos o problema como: encontrar a polıtica πθ que gera trajetoriasτ = (s0, a0, ..., sn−1, an−1, sn) que maximiza a recompensa total descontadade horizonte k no tempo t

R(τ) =k−1

∑i=0

γiRt+i

Como τ e uma variavel aleatoria faz sentido maximizar

J(θ) = Eτ∼πθ[R(τ)]

. Maximizando com gradiente ascendente tem-se as iteracoes

θ = θ + α∇θ J(θ)

Computar este gradiente e

∇θ J(θ) = ∇θEτ∼πθ[R(τ)]

= ∇θ

∫τ∼πθ

P(τ|θ)R(τ)dτ

= ∇θ

∫τ∼πθ

(p(s0) +

k−1

∏i=0

π(si, ai)T(si, ai, si+1)

)R(τ)dτ

=∫

τ∼πθ

∇θ

(p(s0) +

k−1

∏i=0

π(si, ai)T(si, ai, si+1)

)R(τ)dτ

Este produtorio na integral e ruim tanto para solucionar analıticamentecomo computacionalmente, por isso utiliza-se a equivalencia diferencial dologarıtimo para transformar o produtorio em somatorio

f (x)∇x log f (x) = f (x)1

f (x)∇x f (x) = ∇x f (x)

temos entao

∇θ J(θ) =∫

τ∼πθ

∇θ

(p(s0) +

k−1

∏i=0

π(si, ai)T(si, ai, si+1)

)R(τ)dτ

=∫

τ∼πθ

∇θ P(τ|θ)R(τ)dτ

=∫

τ∼πθ

P(τ|θ)∇θ log P(τ|θ)R(τ)dτ

= Eτ∼πθ[∇θ log P(τ|θ)R(τ)]

= Eτ∼πθ

[∇θ log

(p(s0) +

k−1

∏i=0

π(si, ai)T(si, ai, si+1)

)R(τ)

]

= Eτ∼πθ

:0

∇θ log p(s0) +k−1

∑i=0∇θ log π(si, ai) +

:0

∇θ log T(si, ai, si+1)

R(τ)

= Eτ∼πθ

[k−1

∑i=0∇θ log π(si, ai)R(τ)

]Esta esperanca pode ser aproximada por meio de amostragem na forma

ˆ∇θ J(θ) ≈ 1N ∑

τ

k−1

∑i=0∇θ log π(si, ai)R(τ)

9

Page 11: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

com N o numero de trajetorias amostradas. Nessa aproximacao R(τ) sinalizaa qualidade da trajetoria / transicoes nao dependendo de θ. Outros metodostambem baseados no gradiente da polıtica utilizam outras funcoes parasinalizar a qualidade da trajetoria / acao no lugar de R(τ) e tem desenvolvi-mento similar. Alguns exemplos de funcoes substitutas sao:

• recompensa futura - R(i, τ) = ∑∞j=0 Ri+j Esta leva em conta as recom-

pensas apenas apos a acao ai ao em vez de toda a trajetoria τ. E fazrealmente mais sentido, pois a acao ai influencia apenas nos estadossub-sequentes. Esta recompensa pode tambem ser descontada (γ) edentro de um horizonte finito (k).

• Qπ(s, a) - Como na recompensa futura, esta escolha leva em conta aesperanca das recompensas futuras. Neste caso, Qπ tambem tem queser aprendida, mas nao tem relacao direta na tomada de decisao doagente.

• Aπ(s, a) = Qπ(s, a)−Vπ(s) - Conhecida como funcao vantagem, rep-resenta o quao melhor e a acao a em relacao a recompensa esperada noestado s. Com essa abordagem reduz-se a variancia no aprendizado,como A esta centrada em zero acoes abaixo da media empurram o gra-diente na direcao negativa, acoes na media nao interferem e finalmenteacoes acima da media empurram o gradiente na direcao positiva. Damesma forma como Qπ , Aπ tem que ser aprendida juntamente com π.

2.2.4 Visao geral: Aprendizado profundo

No atual cenario, redes neurais artificiais de varios tipos tem sido utilizadasna solucao de problemas de diversas naturezas. Em tarefas classicas de visaocomputacional, como por exemplo classificacao de imagens, tais redes temobtido resultados muito superiores aos metodos tradicionais. Alem destastarefas, outras que a algum tempo atras seriam difıcies de se imaginar, comotransferencia de estilo e geracao de imagens, tem se destacado nas areas decomputacao e aprendizado de maquina.

Em termos simplistas redes neurais e seus metodos de aprendizadosao formas de se aproximar funcoes muito complicadas e desconhecidasatraves de dados ou observacoes utilizando estruturas hierarquicas de variascamadas. Sua atual popularidade e eficiencia se deve muito ao fato de quehoje em dia o volume de dados e poder computacional para processa-lose muito grande e de facil acesso, trazendo nao apenas poder bruto, mastambem possibilidade de novas abordagens criativas.

Com os excelentes resultados obtidos em outras areas, por que nao utilizareste ferramental no aprendizado de reforco? Assim nascem metodos comoDeep Q-Learning, onde a funcao parametria aprendida e uma rede neural.Atualmente grande parte das funcoes parametricas aprendidas por reforcosao redes neurais.

Figure 3: Diagrama com mostrando onde as redes neurais se encaixamdentro do aprendizado por reforco.

2.2.5 Direcoes

Foram vistas as bases do aprendizado por reforco. Desses conceitos basicossurgem varias outras vertentes, algorıtmos e melhorias. Atualmente o estado-da-arte envolve variacoes de ambas formas de aprendizado apresentadas.

10

Page 12: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

Em geral um rede neural com parametros compartilhados e utilizada paraaproximar tanto a polıtica quando uma funcao que de valor aos estados-acoes(V, Q ou A) onde o atuador (polıtica) e seu proprio crıtico (funcao valor).Alem disto outras melhorias ou procedimentos de aprendizado tambem saoutilizados. Alguns destes sao:

• Busca em arvore de Monte-Carlo [5] - este metodo combina uma polıticade decisao com arvore de estados para fazer uma busca informada. Ostrabalhos recentes como AlphaGo se utilizam desta para obter resultadossobre-humanos. Embora a busca em arvore com metodos normaiscomo busca em largura e busca em profundidade sejam consideradosforca bruta, estes sao inviaveis de serem usados em espacos de estadosmuito grandes. Logo, mesmo utilizando uma arvore com possıveismilhoes de nos, resolver problemas de busca para os quais os metodostradicionais nao sao viaveis e um feito grandioso.

• Currıculo[3] e Hierarquia[2] - Estas sao ideias que tem se mostradopromissoras e que utilizamos no experimento com o Unity. Sua base edividir problemas complexos em sub-problemas mais simples. Destaforma inicia-se o aprendizado do mais simples e vai-se aumentando acomplexidade pouco a pouco. Esta e tambem uma forma de contornar oproblema de recompensas esparsas. Se o problema apresentado e muitodifıcil o agente quase nunca recebe uma recompensa positiva, logo oaprendizado e lento. Por outro lado, dividindo em sub-problemas oagente e capaz de construir uma ponte entre o simples e o difıcil.

• Curiosidade [20] - Um problema no aprendizado e nao explorar oambiente suficiente e estacionar em uma polıtica sub-otima. Esteparadigma tenta estimular o agente a entender o ambiente, ou seja,cria uma recompensa intrınseca ao visitar estados onde a incerteza dasprevisoes e alta e assim melhorar o modelo de previsao. Embora estaideia tenha sucesso em varios casos, tem uma grande desvantagemem ambientes onde existam fontes de ruıdo, basicamente qualquerfonte de entropia que o agente nao possa prever torna-se um atrator,distraindo-o de outros objetivos.

3 unity

O Unity e um motor de jogos multi-plataforma com codigo fechado maslicenca gratuita para uso nao comercial. Embora o nome seja motor dejogos, esta ferramenta e utilizada para criar nao so jogos, mais em pesquisacom simulacoes, na area de design e arquitetura, CAD e CAM, entre outros.Alguns dos pontos mais relevantes desta ferramenta sao:

• Editor completo, incluindo todos os tipos de ferramentas para desen-volvimento e analise alem de integracao com outras ferramentas demodelagem.

• Suporte a novas tecnologias desde API’s graficas como o Vulkan e oDirectX 12 ate Realidade Virtual e Aumentada.

• Ambiente de simulacao completo, com fısica, iluminacao, audio, ferra-mentas de cinema, rede, inteligencia artificial, etc.

• Assets Store - Uma loja virtual com milhares de assets, variando entremodelos, texturas, scripts, plugins entre outros. Muitos deles comversoes gratuitas.

• Facilidade em distribuir conteudo para diversas plataformas diferentes.

• Facil utilizacao das ferramentas, ate mesmo as API’s tem um nıvel deabstracao alto, escondendo detalhes ou implementacoes complicadas e

11

Page 13: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

assim, requerem conhecimento tecnico menos profundo na utilizacaodos recursos disponıveis.

Tudo isso, faz do Unity uma ferramente muito difundida tanto na areade jogos como de pesquisa.

3.1 Aprendizado de reforco no Unity

Com o avivamento recente do aprendizado de reforco profundo, em 2017 oUnity comecou a desenvolver o seu kit de ferramentas para aprendizado porreforco chamado de ML-agents[10] atualmente com desenvolvimento ativo ena versao beta 0.7.

A implementacao desta ferramenta conta com algorıtmos estado-da-artecomo o Proximal Policy Optmization (PPO)[25] e mecanismos de curiosidadepara agentes. Os codigos sao em python utilizando tensorflow para a partede aprendizado, e C# conectando com a parte de scripting no Unity. Emespecial, esse toolkit e de codigo aberto, permitindo que outros algorıtmos,redes neurais ou qualquer tipo de procedimento seja integrado garantindouma grande liberdade na area de pesquisa.

Figure 4: Diagrama com a relacao do Unity e ML-Agents

Alem de tudo e possıvel encontrar uma documentacao detalhada de comoinstalar e utilizar o kit, contendo varios exemplos ja treinados, uma paginadedicada a melhores praticas na escolha de parametros e referencias pararecursos adicionais.

Dito isto, nao iremos repetir aqui de forma incompleta os tutorias deinstalacao e explicacoes presentes na documentacao, focamos em detalhesque nao estam presente na documentacao ou observacoes proprias.

Uma dica interessante quanto a instalacao e que embora o requisıto seja otensorflow na versao 1.7, e possıvel instalar outras versoes mais recentes comoa 1.12, permitindo o uso de compilacoes altamente otimizadas como por exemploas disponibilizadas pela Intel utilizando a biblioteca MKL, o que pode melhorar odesempenho consideravelmente.

3.2 Arquitetura

A modelagem de agentes no Unity e feita de forma simples, escondendogrande parte dos detalhes mais profundos. Os elementos principais sao:

• Agente - Objeto que observa as caracterısticas do ambiente, um vetor~ocom n elementos numericos, e recebe um vetor~a numerico de tamanhom com a acao a ser tomada, e durante este processo atribui recompensasescalares. Embora o agente pode ate ter um modelo de recompensaseste modelo nao e visıvel as outras partes, elas tem acesso apenas aovalor das recompensas atribuıdas.

• Academia - Objeto que controla o ambiente independente do agente.

12

Page 14: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

• Cerebro - Objeto que e a abstracao da inteligencia de um agente. Eletoma as observacoes do ambiente e transforma em decisoes. Nelepodem ser conectados diferentes modelos treinados desde que tenhamo mesmo tamanho de vetor de observacoes e o mesmo conjunto deacoes.

O funcionamento nessa arquitetura da-se na forma: O agente toma acoessegundo o cerebro conectado a este ate um limite de k acoes onde considera-se com fim do episodio e tem-se o problema solucionado ou perdido. Aofim de cada episodio um novo inicia com o agente em seu estado inicial. Aacademia ao fim de l episosios re-inicializa o ambiente. A cada m episodiosas trajetorias experimentadas sao utilizadas no treinamento e a polıtica eatualizada.

Figure 5: Diagrama com a hierarquia do ML-Agents.

Em geral uma cena pode conter varios agentes com ambientes individuais,e necessariamente tem que ter uma academia. Cada agente se conecta a umcerebro que e o responsavel por suas acoes. As experiencias dos agentes saocoletadas e enviadas para o ambiente externo de treinamento.

Os modelos que se conectam ao objeto cerebro sao redes neurais artificiaisem formatos proprios para o Unity. O treinamento dessas redes e feitoexternamente com o ML-agents. Nesse processo de treinamento online alterna-se entre simulacoes no Unity e treinamento em python. Varios parametrosrelacionados ao treino e configuracao da rede estao disponıveis, todos elesestao explicados e com indicacoes de melhores praticas na documentacao doML-agents[10].

A configuracao de redes utilizadas neste kit de ferramentas sao a MLP -Multi Layer Perceptron e a LSTM - Long Short-Term Memory de m camadas e nperceptrons por camada com a funcao de ativacao Swish[22]. Os valores de me n sao configuraveis e e possıvel implementar outras redes com diferentesarquiteturas em python diretamente no ML-agents.

3.3 Exemplo concreto: Puppo

Puppo[4] e um jogo simples, porem completo, utilizando um cerebro pre-treinado para controlar as acoes de um cachorrinho Puppo o corgi. Esteexemplo traz uma nova perspectiva de um jogo construıdo entorno do agenteinteligente.

O objetivo do jogo e que o jogador atire um graveto e Puppo ira traze-lode volta, o que chama a atencao e como ele o faz, descrito pelos autorescomo ”excesso de fofura”. O controle das acoes e toda em baixo nıvel feitodiretamente nas juntas do personagem. A fofura fica a cargo dos movi-mentos serem ”desajeitados” e ”euforicos” caracterıstico de um treinamentosuficiente para cumprir o objetivo, mas nao tao perfeito a ponto de se tornaro mais eficiente.

13

Page 15: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

Figure 6: Puppo buscando o graveto utilizando o modelo aprendido atravesde reforco.

Esta abordagem exemplifica com perfeicao ambientes onde pode se uti-lizar agentes comumente referidos como NPC - Non-Playable-Character, parainteragir com o jogador de formas que seriam difıceis de serem progra-madas e animadas sem aprendizado. Saindo do ambiente especıfico dejogos, tais agentes poderiam ser utilizados em outras aplicacoes como guiasou assistentes pessoais por exemplo. Isto aliado com as tecnologias atuaisde realidade virtual e aumentada podem contribuir para novas formas demıdias e apresentacao de conteudo muito mais interativas e imersivas.

Treinando Puppo

A modelagem das observacoes e recompensas de Puppo e muito bem plane-jadas para se obter um bom resultado e o treinamento toma em torno deduas horas em um notebook comum utilizando apenas CPU. Isso mostraque e possıvel criar agentes interessantes com pouco poder computacional.

As acoes de Puppo sao modeladas no Unity da seguinte forma:Observacoes colhidas pelo agente

• Direcao para o objetivo: ~dtoTgt

• Posicao e orientacao de Puppo no ambiente: ~pbody e ~d f orward ~dup

• Velocidade linear e angular: ~vlin, ~vang

• rotacao das partes do corpo, fracao da forca total sendo exercida emcada parte e se esta toca ou nao o chao: (θ, f , 0|1)i.

Acoes tomada pelo agente

• Rotacao do corpo: θbRot

• Rotacao das partes de cada perna e forcas aplicadas nestas: (θ, f )i

Figure 7: Juncoes de Puppo, onde sao aplicadas as rotacoes e forcas.

14

Page 16: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

A funcao de recompensa e

R(s, a) =

−βrot|θbRot|+ βdir

(~vlin ·

~dtoTgt

||~dtoTgt ||

)− βtPen, se ||~dtoTgt|| > 1

1, caso contrario

com β pesos para as componentes das acoes de rotacao do corpo, velocidadena direcao do alvo e penalidade de tempo.

Figure 8: Ambiente de treino para Puppo no Unity. Nota-se que na mesmacena tem-se 16 ambientes cada um com um agente. Como o treino e feitoapenas nas experiencias coletadas, pode-se ter varios ambientes e inclusivediferentes cerebros para um mesmo tipo de agente.

Embora as acoes tomadas pelo agente sejam de baixo nıvel, rotacoese forcas aplicadas nas juntas, as observacoes do ambiente incluem carac-terısticas de mais alto nıvel como a direcao pro alvo, as velocidades lineare angular e tambem quais partes do corpo tocam o chao. Essas carac-terısticas ajudam o agente na tomada de decisao, e sao obtidas a partir depre-processamento de outras informacoes brutas.

A modelagem das recompensas tambem e feita cuidadosamente. Aoinves de utilizar 0, 1 para indentificar se esta no objetivo ou nao, a funcaoutilizada quando nao se esta no objetivo tem tres fatores importantes:

• −βrot|θbRot| - penaliza rotacoes abruptas fazendo com que Puppo tenhamovimentos mais naturais.

• βdir

(~vlin ·

~dtoTgt

||~dtoTgt ||

)- recompensa/penaliza conforme a velocidade e

proximidade do objetivo. Este termo evita o problema de recompensasesparcas avaliando o agente a cada passo alem de incitar velocidadesmaiores na direcao do alvo.

• −βtPen - penalizacao de tempo, a cada avaliacao se perde um valorpequeno, incentivando o agente a terminar a tarefa em menos passos.

Nota-se que a modelagem tanto das caracterısticas observadas quanto arecompensa obtida em cada passo foi bem desenvolvida, abrangendo variospontos importantes de forma concisa. No caso de Puppo esta modelageme intuitiva, mas em outros problemas, modelagens desse tipo sao difıceis,seja por nao se ter uma forma de pre-processar dados brutos ou por naose saber avaliar estados intermediarios ate o objetivo. Nesses casos asdirecoes apresentadas como currıculo, hierarquia e curiosidade se tornamextremamente importantes.

15

Page 17: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

4 experimentos

Para os experimentos, propomos um problema com outros desafios diferentesde Puppo e que a primeira vista pode parecer simples, mas tem uma grandecomplexidade: o cubo magico ou Rubik’s Cube, 2× 2 e 3× 3.

4.1 Cubo magico

O cubo magico e um jogo quebra-cabeca em 3D. Podemos descreve-lo comoum cubo composto por outros mini-cubos onde as faces do cubo podem serrotacionadas criando uma permutacao dos mini-cubos. No estado resolvido,o cubo tem cada face de uma unica cor, ou seja, a solucao do quebra-cabecae a permutacao onde os mini-cubos formam o cubo principal com cada facena mesma cor.

Figure 9: Cubo Magico 2× 2 e 3× 3

Este quebra-cabeca na forma 3× 3 foi inventado por Erno Rubik em 1974,enquanto o 2× 2 foi inventado por Larry D. Nichols em 1970. Atualmenteeste cubo e considerado como um dos brinquedos mais vendidos e existemvarias competicoes com objetivo de resolver o cubo o mais rapido possıvel.

O cubo 2× 2 apresenta em torno de 3.6× 106 estados e o 3× 3 por voltade 4.3 × 1019, o cubo mais simples embora tenha um espaco de estadosgrande ainda sim nao e algo absurdo dentro dos padroes computacionaisatuais, porem para o cubo 3× 3 e inviavel de se explorar todo o espaco deestados.

Para ambos os cubos sao conhecidos o menor numero de movimentosnecessarios para se resolve-los a partir de qualquer estado, sendo 14 para o2× 2 e 26 para o 3× 3, contando que cada rotacao de 90 e um movimento.Embora estes numeros sejam conhecidos, ainda nao se conhece algorıtmodireto para resolver o cubo de forma otima1, os algorıtmos conhecidos pararesolver o cubo necessitam substancialmente mais passos do que o necessarioe tem como base algumas sequencias de movimentos pre-estabelecidas paradiferentes tipos de configuracoes de estado.

Modelgem do Problema

Representar o cubo magico pode ser feito de varias formas, aqui escolheu-seutilizar um vetor de codificacao one-hot empilhado. Por exemplo, o cubo3× 3 tem 6 faces, cada face e composta por 9 mini-faces e cada mini-facepode ter uma das 6 cores. A cor e codificada na forma one-hot, por exemplo[1, 0, 0, 0, 0, 0] indica a cor 1, [0, 1, 0, 0, 0, 0] a cor 2, etc. As mini-faces sao

1 Existem algorıtimos utilizando busca, tabelas de estado e outros conhecimentos especıficos docubo para encontrar solucoes otimas, porem nao sao diretos, no sentido que qualquer buscavisita varios estados e testa varias acoes ate encontrar a melhor.

16

Page 18: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

numeradas em uma ordem fixa e a codificacao da cor das faces e empilhadaem um vetor nessa ordem. Assim temos um vetor de #cores× # f aces× #mini-f aces ou 6× 6× 9 = 324 entradas binarias 0, 1. Essa codificacao nao ea menor representacao possıvel para os estados do cubo, dado que temos2324 ≈ 3.4× 1097 possibilidades para o vetor mas apenas 4.3× 1019 estadospossıveis para o cubo, mas e uma representacao simples, facil de construir enao necessita de nenhum conhecimento teorico especıfico sobre o cubo.

Figure 10: Exemplo de codificacao do cubo magico na forma one-hot

Para as possıveis acoes temos 12 possibilidades, 6 faces e cada face poderotacionar 90 no sentido horario ou anti-horario. Usualmente essas acoes saonomeadas L, L’, R, R’, U, U’, D, D’, F, F’, B, B’, onde a letra inicial diz respeitoa face left, right, up, down, front, back e a aspas simples ’ indica o sentidode rotacao anti-horario. Vale notar os movimentos tem algumas relacoesentre si, por exemplo, quando e executada uma rotacao X seguida de uma X’volta ao estado anterior, a sequencia XXX equivale a X’, etc. Modelar essecomportamento de permutacao no vetor de estado e equivalente a extrair dovetor as mini-faces da face rotacionada, inseri-las em ordem em uma listacircular, deslocar as mini-faces nessa lista e reinseri-las no vetor original. Damesma forma e necessario fazer este processo para as mini faces adjacentesa face rotacionada.

Figure 11: Exemplo de permutacao apenas para a face do cubo. Da mesmaforma e feito para as mini-faces adjacentes.

17

Page 19: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

Nessa modelagem, o ambiente para o aprendizado de reforco e o cubo ea observacao do agente e o estado atual do cubo. As possıveis acoes sao asrotacoes das faces e o objetivo e o estado resolvido onde todas as mini-facesde uma face tem a mesma cor. Nota-se que embora a palavra agente remetaa uma entidade fısica interagindo no ambiente, no caso do cubo magico naoexiste este agente fısico. As decisoes tomadas sao a abstracao do agente,ainda sim, este exemplo e completamente modelavel atraves de um processode decisao de Markov.

Para resolver um cubo qualquer e necessario uma sequencia de acoes detamanho variado. Definindo a distancia do estado solucao como o numeromınimo de movimentos necessarios para se chegar a solucao, resolver o cubode forma otima e equivalente a encontrar uma polıtica que a cada decisaodiminui essa distancia.

Diferente do exemplo do Puppo, o cubo apresenta os seguintes desafios:

• Nao se conhece uma forma direta para calcular a distancia da solucao eo processo de solucao nao e facil de ser avaliado, por exemplo durantea solucao movimentos que visualmente baguncam partes ja resolvidasdo cubo sao necessarios.

• Tanto o espaco de estados como o espaco de acoes e discreto. Poresses conjuntos serem discretos e nao diferenciaveis a generalizacaose torna mais difıcil. Podemos imaginar que quando estamos numespaco contınuo uma bola entorno de um ponto conhecido e de facilgeneralizacao, ja no caso do cubo discreto nao temos isso, alem deque a representacao de duas permutacoes com um unico movimentodiferente, na norma euclidiana pode ser mais distante do que outrapermutacao com mais movimentos.

• Representar o espaco de estados do cubo de forma concisa e extrema-mente difıcil.

Esses pontos tem implicacoes importantes na modelagem e nos resultados.Avaliar a qualidade de um movimento individualmente nao e possıvel, logoatribuir recompensas resume-se a dizer se o cubo foi resolvido ou nao, caımosno problema de recompensas esparsas que dificulta o aprendizado. Outrofator e a dificuldade de representar um estado de forma eficiente e por issosimplesmente se passa para o agente todas as informacoes observaveis.

Assim a funcao de recompensa utilizada e:

R(s, a) =

−βtPen, se o estado atual nao e a solucao1, caso contrario

a penalidade a cada passo βtPen reforca que sequencias de acoes menoressao melhores, evitando por exemplo que acoes inversas como X e X’ sejamtomas em sequencia, e 1 quando o cubo e resolvido.

Embora o cubo magico apresente varios desafios ele e um caso idealpara a aplicacao do aprendizado com currıculo. Da forma proposta, desejase sempre reduzir a distancia da solucao, mesmo que nao se saiba essadistancia essencialmente um estado com distancia n > m tem que passar porum estado de distancia m para ser resolvido. Com isso temos uma hierarquiapara o aprendizado, dar exemplos de cubos com distancia sequencialmentecrescente.

Mesmo nao se conhecendo a distancia da solucao para uma dada configuracaoe facil gerar uma configuracao que necessite de k ou menos movimentos,parte-se de um cubo resolvido e aplica-se k movimentos quaisquer. Nestecaso pode se perder um pouco da eficiencia no treinamento ja que cubosgerados dessa forma podem necessitar de menos que k movimentos, mas secria a possibilidade de aplicar tal metodo de treinamento.

18

Page 20: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

4.2 Abordagens recentes

Atualmente um dos melhores resultados2 utilizando aprendizado de reforcona resolucao do cubo magico 3 × 3 e chamado de DeepCube[16]. Nessemetodo os autores utilizam uma rede neural para guiar a busca em arvorede Monte Carlo MCTS e apos isto ainda aplicam o metodo tradicional debusca em largura BFS. O treino desta rede foi feito com um processadorXeon E5-2620 de 32 nucleos e 3 GPU’s Titan XP durante 44 horas, utilizandouma tecnica nomeada pelos autores como Autodidactic-Iteration. No textoos sao apresentados resultados que se aproximam de outros algoritmos debusca estado-da-arte que nao utilizam aprendizado como o Korf [13][12] eKociemba[16].

Uma tentativa externa de implementacao e teste do DeepCube 3, nos cubos2× 2 e 3× 3 foi feita por Max Lapan e disponibilizada em [14]. Os resultadosobtidos foram extremamente aquem dos apresentados pelos autores originais.No cubo 2× 2 para sequencias acima de 20 movimentos cerca de ≈ 20% doscubos nao eram resolvidos. O tamanho medio das solucoes encontradas semutilizar a busca em largura eram de ≈ 50 movimentos e utilizando a a buscaem largura ≈ 12. Ja para o cubo 3× 3 os resultados foram ainda piores, naosendo possıvel resolver sequencias de movimentos maiores que ≈ 12.

Outro fato e que o tempo necessario para resolver cada cubo. No artigooriginal a mediana do tempo era de 10 minutos para cada cubo 3× 3. Uti-lizando o codigo disponibilizado por Lapan para o cubo 2× 2 observa-seque para cubos com sequencias de 4 movimentos tem-se em media 250 milis-segundos por cubo, para 5 movimentos 1, 65 segundos, para 6 movimentos15, 5 segundos e para 7 movimentos em diante ja nao se soluciona todos oscubos caindo em outros criterios de parada na busca.

Dessa forma acredita-se que existam problemas na implementacao deLapan por falta de detalhes de implementacao no artigo original, ou queo sucesso obtido pelos autores do DeepCube deve-se mais ao fato do podercomputacional aplicado na busca tanto com MCTS e BFS do que no treina-mento da rede em si, tal fato so podera ser comprovado se e quando fordisponibilizada a implementacao dos autores originais.

Outras tentativas individuais de resolver ambos os cubos tambem sao en-contradas em [28, 24, 9, 18]. Nenhuma obteve sucesso e em geral apresentamresultados semelhantes ao de Lapan.

4.3 Resultados e Analise

Os resutados foram todos obtidos utilizando a implementacao presente em[29] conjunta com o ML-agents. O treinamento foi realizado em um notebookcom 16 GB de RAM, CPU i7 7700HQ de 4 nucleos e GPU GTX 1060.

Foi utilizada a versao 0.7 do ML-Agents para a obtencao dos resultados.Os parametros utilizados no aprendizado que diferem do padrao fornecidoem ”ML-Agents/config/traineer-config.yaml” estao na tabela 1.

Table 1: Valores utilizados no treinamento por reforco

Valor batch size learning rate num epochPadrao 1024 3× 10−4

3

Utilizado 32 5× 10−55

A escolha destes da-se pelos motivos:

• batch size - numeros maiores diminuem a eficiencia do treinamento.Aumentar o batch size faz com que o treinamento se baseie na media

2 Existem outros metodos utilizando busca informada, teoria de grupos e banco de dadosaplicados para resolver o cubo magico, como por exemplo o metodo Kociemba [11]

3 Os autores originais do DeepCube nao disponibilizam os codigos utilizados na obtencao dosresultados

19

Page 21: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

das acoes e recompensas e no caso do cubo magico tanto o espaco deestados como de acoes e discreto, logo essa media pode nao refletira melhor polıtica. Por outro lado, batch size menores se beneficiammenos de arquiteturas paralelas de treinamento, logo nao e possıvelacelerar o treinamento utilizando GPU’s por exemplo.

• learning rate - Diminuir esse valor ajuda a diminuir a variabilidadeintroduzida por um batch size pequeno. Tambem diminui a eficienciade aprendizado por amostra, ja que a contribuicao de cada amostra emenor.

• num epoch - Quantas vezes um conjunto de trajetorias experimentadase utilizado no treinamento. Com o learning rate menor, utilizar maisvezes um mesmo conjunto de experiencias ajuda a aumentar a eficienciapor amostra, porem um numero muito grande pode causar overfitting.

Por causa do batch size pequeno todos os treinamentos foram feitosusando CPU apenas. Para usar a GPU de forma eficiente redes maiores doque as utilizadas ou batch sizes maiores seriam necessarios.

A implementacao do currıculo de aprendizado foi feita de duas formas:

• rate - Taxa de cubos resolvidas.

• length rate - Proporcao entre o tamanho medio das solucoes encontradase o tamanho da sequencia de movimentos aleatoria aplicads para geraro cubo.

Os limiares utilizados para os criterios do currıculo foram:

Table 2: Valores utilizados no currıculo de treinamento

rate length ratecriterio ≥ 97% ≤ 2.0

quando o(s) criterio(s) era(m) atendido(s) incrementava-se o tamanho dasequencia de movimentos aplicadas para gerar os cubos em uma unidadeate o tamanho maximo de 50 movimentos. Os valores utilizados para estescriterios estao na tabela 2. Nos resultados apresentados estes criterios eramavaliados a cada 50 episodios e o tamanho maximo do episodio era 100.

Cubo 2× 2

Na figura 12 estao os resultados do treinamento aplicado ao cubo 2× 2utilizando 1.0× 107 iteracoes com o currıculo de rate. Foram testados 1000cubos para cada comprimento de sequencias aleatoria. O tempo medioaproximado de solucao dos 1000 cubos foi de 2 minutos, ou 120 milissegundopor cubo.

20

Page 22: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

Figure 12: Cubo 2× 2. Taxa de cubos resolvidos e media de movimentosnecessarios para resolver os cubos.

Na figura 13 esta a comparacao entre os treinamentos com e sem currıculo.Claramente nao ha aprendizado sem a aplicacao do currıculo.

Figure 13: Cubo 2× 2. Recompensa media vs iteracao utilizando o currıculorate e sem utilizar nenhum currıculo.

As figuras 14, 15, 16 e 17 mostram o efeito de diferentes numeros decamadas e neuronios, tanto na recompensa media quanto no tamanho mediodo episodio. Nelas utilizamos apenas o criterio rate do currıculo.

Em geral aumentar a capacidade da rede traz benefıcios no resultadodo treinamento. A variacao alta no inıcio do treinamento e explicada pelocurrıculo com dificuldade crescente, quando se atinge o ultimo nıvel nocurrıculo tem-se uma estabilizacao e tambem a indicacao de que o problemaja e resolvido com sucesso. Essa indicacao fica muito clara nos picos das fig-

21

Page 23: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

uras 15 e 17. Atingir esses picos leva em torno de duas horas de treinamento,variando entre 2× 105 e 5× 105 iteracoes para diferentes redes.

Figure 14: Comparacao entre a recompensa media cumulativa vs iteracoespara redes com 2 camadas e 128, 256, 512 e 1024 neuronios por camada. Ateatingir o final do currıculo ha quedas e variacoes na recompensa media, aposisto a recompensa cresce regularmente ate estabilizar.

Figure 15: Comparacao entre o tamanho medio do episodio vs iteracoes pararedes com 2 camadas e 128, 256, 512 e 1024 neuronios por camada. Os picosmaiores indicam quando o ultimo nıvel do currıculo foi atingido.

22

Page 24: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

Figure 16: Comparacao entre a recompensa media cumulativa vs iteracoespara redes com 512 neuronios por camada e numero de camadas 2, 4 e 8.Ate atingir o final do currıculo ha quedas e variacoes na recompensa media,apos isto a recompensa cresce regularmente ate estabilizar.

Figure 17: Comparacao entre o tamanho medio do episodio vs iteracoes pararedes com 512 neuronios por camada e numero de camadas 2, 4 e 8. Os picosmaiores indicam quando o ultimo nıvel do currıculo foi atingido.

As figuras 18 e 19 apresentam a comparacao entre os criterios do currıculo,utilizando apenas a taxa de solucao (rate) e a outra utilizando tambem ocomprimento do episodio (rate-len). Utilizar ambos os criterios tem umligeiro ganho de desempenho no tamanho medio do episodio, porem seatinge o ultimo nıvel do currıculo com 1× 106 iteracoes ao inves de 2× 105.

23

Page 25: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

Figure 18: Comparacao entre a recompensa media cumulativa vs iteracoesusando apenas o criterio rate do currıculo e ambos rate e length-rate. Ateatingir o final do currıculo ha quedas e variacoes na recompensa media, aposisto a recompensa cresce regularmente ate estabilizar.

Figure 19: Comparacao entre o tamanho medio do episodio vs iteracoesusando apenas o criterio rate do currıculo e ambos rate e length-rate. Os picosmaiores indicam quando o ultimo nıvel do currıculo foi atingido.

Uma forma reduzida de modelar o cubo 2× 2 e fixar um dos mini-cubose deixar que os outros 7 sejam moveis. Dessa forma os movimentos possıveisficam restritos as tres faces que nao incluem o mini-cubo fixo. A figura 20

apresenta o comparativo entre a representacao mais redundante onde todasas faces e mini-cubos sao moveis e a representacao menos reduntante comum mini-cubo fixo e apenas tres faces moveis. E notavel que a representacaomais redundante completa o currıculo mais rapidamente e tem recompensamedia bem maior.

24

Page 26: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

Figure 20: Comparacao entre a modelagem do cubo 2× 2. Na esquerda arecompensa media vs iteracoes e na direita o tamanho medio do episodio vsiteracoes. A modelagem com maior redundancia (complete space) completa ocurrıculo por volta de 220k iteracoes enquanto a modelagem reduzida(reducedspace) completa o currıculo por volta de 610k iteracoes.

Cubo 3× 3

Obtencao dos resultados com ML-agents 0.7 em progresso.

5 conclusao

Conclui-se que mesmo para problemas complicados onde a modelagem darecompensa e caracterısitcas nao e trivial existe a possibilidade do apren-dizado por reforco utilizando outras estrategias como currıculo. Foi possıvelaplicar com sucesso o aprendizado ao cubo 2× 2 seguindo um currıculosimples e sem utilizar qualquer conhecimento especıfico do cubo ou metodosde busca.

Acredita-se que as tentativas falhas de resolver tal cubo se devam a doisproblemas: Redes com capacidade insuficientes e/ou metodos de treina-mento ineficientes. Dito isto, embora o cubo 3× 3 seja muito mais com-plicado, utilizando redes com maior capacidade e outras configuracoes derede que ja se mostraram eficientes em tarefas como classificacao, junto comum currıculo adequado seja possıvel resolver tambem o cubo 3× 3 sem anecessidade de metodos de busca ou ao menos reduzir substancialmente otamanho dessa busca.

Outro ponto interessante e contra intuitivo e que reduzir o espaco deestados e acoes para um forma menos redundante nao trouxe benefıcio notreinamento, pelo contrario aumentou consideravelmente o treino necessariopara se completar o currıculo alem de ter episodios maiores. Talvez numtreinamento de longo prazo este efeito seja compensado, como acontece coma utilizacao dos dois criterios no currıculo(Figura 19), mas para o numero deiteracoes utilizado nao se observa isto.

referencias

[1] Kai Arulkumaran, Antoine Cully, and Julian Togelius. Alphastar: Anevolutionary computation perspective. arXiv preprint arXiv:1902.01724,2019.

[2] Andrew G Barto and Sridhar Mahadevan. Recent advances in hierarchi-cal reinforcement learning. Discrete event dynamic systems, 13(1-2):41–77,2003.

[3] Yoshua Bengio, Jerome Louradour, Ronan Collobert, and Jason We-ston. Curriculum learning. In Proceedings of the 26th annual internationalconference on machine learning, pages 41–48. ACM, 2009.

[4] Vincent-Pierre Berges and Leon Chen. Puppo, thecorgi: Cuteness overload with the unity ml-agents

25

Page 27: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

toolkit. https://blogs.unity3d.com/pt/2018/10/02/

puppo-the-corgi-cuteness-overload-with-the-unity-ml-agents-toolkit/.

[5] Cameron B Browne, Edward Powley, Daniel Whitehouse, Simon MLucas, Peter I Cowling, Philipp Rohlfshagen, Stephen Tavener, DiegoPerez, Spyridon Samothrakis, and Simon Colton. A survey of montecarlo tree search methods. IEEE Transactions on Computational Intelligenceand AI in games, 4(1):1–43, 2012.

[6] Guillaume Chaslot, Sander Bakkes, Istvan Szita, and Pieter Spronck.Monte-carlo tree search: A new framework for game ai. In AIIDE, 2008.

[7] Peter Henderson, Riashat Islam, Philip Bachman, Joelle Pineau, DoinaPrecup, and David Meger. Deep reinforcement learning that matters. InThirty-Second AAAI Conference on Artificial Intelligence, 2018.

[8] Jonathan Hui. Policy gradients explained. https://medium.com/

@jonathan_hui/rl-policy-gradients-explained-9b13b688b146.

[9] Alexander Irpan. Exploring boosted neural nets for rubiks cube solv-ing. As of this writing, paper may be found at http://www. alexirpan.com/public/research/nips 2016. pdf, 2016.

[10] Arthur Juliani, Vincent-Pierre Berges, Esh Vckay, Yuan Gao, HunterHenry, Marwan Mattar, and Danny Lange. Unity: A general platformfor intelligent agents. arXiv preprint arXiv:1809.02627, 2018. https:

//github.com/Unity-Technologies/ml-agents.

[11] Herbert Kociemba. Kociemba two-phase solver. https://github.com/hkociemba/RubiksCube-TwophaseSolver.

[12] Richard E Korf. Depth-first iterative-deepening: An optimal admissibletree search. Artificial intelligence, 27(1):97–109, 1985.

[13] Richard E Korf. Finding optimal solutions to rubik’s cube using patterndatabases. In AAAI/IAAI, pages 700–705, 1997.

[14] Max Lapan. Reinforcement learning to solve rubiks cube. https://

github.com/Shmuma/rl/tree/master/articles/01_rubic.

[15] Yann LeCun, Yoshua Bengio, and Geoffrey Hinton. Deep learning.nature, 521(7553):436, 2015.

[16] Stephen McAleer, Forest Agostinelli, Alexander Shmakov, and PierreBaldi. Solving the rubik’s cube without human knowledge. arXivpreprint arXiv:1805.07470, 2018.

[17] Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Alex Graves, Ioan-nis Antonoglou, Daan Wierstra, and Martin Riedmiller. Playing atariwith deep reinforcement learning. arXiv preprint arXiv:1312.5602, 2013.

[18] Alex Nichol. Trying to find god’s algorithm on a rubik’s cube. https://github.com/unixpickle/godsalg.

[19] OpenAI. Spinning up in deep rl! https://spinningup.openai.com/

en/latest/index.html.

[20] Deepak Pathak, Pulkit Agrawal, Alexei A. Efros, and Trevor Darrell.Curiosity-driven exploration by self-supervised prediction. In ICML,2017.

[21] Jeronimo Pellegrini and Jacques Wainer. Processos de decisao de markov:um tutorial. Revista de Informatica Teorica e Aplicada, 14(2):133–179, 2007.

[22] Prajit Ramachandran, Barret Zoph, and Quoc V Le. Searching foractivation functions. arXiv preprint arXiv:1710.05941, 2017.

26

Page 28: Laboratorio VISGRAF´ · 2019. 4. 1. · Para entender melhor este exemplo, definimos o objetivo do agente como capturar o jogador e o objetivo do jogador capturar todas as recompensas

[23] Stuart J Russell and Peter Norvig. Artificial intelligence: a modern approach.Malaysia; Pearson Education Limited,, 2016.

[24] Jason Rute. Solving the puzzle cube with deep reinforcement learningand tree search. https://github.com/jasonrute/puzzle_cube.

[25] John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Radford, andOleg Klimov. Proximal policy optimization algorithms. arXiv preprintarXiv:1707.06347, 2017.

[26] David Silver, Julian Schrittwieser, Karen Simonyan, Ioannis Antonoglou,Aja Huang, Arthur Guez, Thomas Hubert, Lucas Baker, Matthew Lai,Adrian Bolton, et al. Mastering the game of go without human knowl-edge. Nature, 550(7676):354, 2017.

[27] Thomas Simonini. An introduction to reinforce-ment learning. https://medium.freecodecamp.org/

an-introduction-to-reinforcement-learning-4339519de419.

[28] Amlesh Sivanantham. Cubenet. https://github.com/zamlz/

cube-net.

[29] Caio Souza Stuart Bowman. Rsolver. https://github.com/caioc2/

RSolver/.

27