Você está na página 1de 68

UNIVERSIDADE FEDERAL DE SANTA CATARINA

CENTRO TECNOLÓGICO

DEPARTAMENTO DE
INFORMÁTICA E ESTATÍSTICA
CURSO DE SISTEMAS DE INFORMAÇÃO

Rodolfo Dartora da Silva

APRENDIZADO BASEADO EM CURRÍCULO


APLICADO À ROBÓTICA ADAPTATIVA
RODOLFO DARTORA DA SILVA

APRENDIZADO BASEADO EM CURRÍCULO


APLICADO À ROBÓTICA ADAPTATIVA

Trabalho de conclusão de curso apresentado


como parte dos requisitos para obtenção do grau
de Bacharel em Sistemas de informação pela
Universidade Federal de Santa Catarina ­ UFSC.

Orientador:
Prof. Dr. Jônata Tyska Carvalho

Coorientadora:
Profa. Dra. Jerusa Marchi

Florianópolis
2022
RODOLFO DARTORA DA SILVA

APRENDIZADO BASEADO EM CURRÍCULO


APLICADO À ROBÓTICA ADAPTATIVA

Trabalho de conclusão de curso submetido ao Departamento de Informática e Estatística da


Universidade Federal de Santa Catarina para a obtenção do grau de Bacharel em Sistemas de
informação.

Orientador:

___________________________________________________
Prof. Dr. Jônata Tyska Carvalho
UFSC

Coorientadora:

___________________________________________________
Profa. Dra. Jerusa Marchi
UFSC

Banca Examinadora:

___________________________________________________
Prof. Dr. Rafael de Santiago
UFSC
RESUMO

Este trabalho explora métodos neuroevolutivos de treinamento associados ao


aprendizado baseado em currículo, com o intuito de treinar agentes robóticos de forma mais
eficiente. Utiliza­se aqui uma RNA classificadora auxiliar para estimar a dificuldade e ordenar
de as tarefas utilizadas no treinamento da rede neuroevolutiva. Assim, currículo é o resultado
de um processo que seleciona e ordena as variáveis da camada de entrada de uma rede neural.
O método automatizado de geração de currículo proposto amplia a escalabilidade para tarefas
mais complexas e com resultados que superam os métodos convencionais de aprendizado.

Palavras­chave: Inteligência Artificial, Aprendizado de Máquina, Robótica Adaptativa,


Aprendizado Baseado em Currículo.
ABSTRACT

This article explores neuroevolutionary training methods associated with curriculum­


based learning, in order to train robotic agents more efficiently, since, according to recent
research, the curriculum, in this case, the learning trajectory or ordering of the set of tasks, is
directly related to the speed and efficiency of learning. An auxiliary artificial neural network is
used here to estimate the difficulty and order the tasks used in the training of the
neuroevolutionary network. The proposed automated curriculum generation method extends
scalability to more complex tasks and with results that surpass conventional learning methods.

Keywords: Artificial Intelligence, Machine Learning, Adaptive Robotics, Curriculum Learning


AGRADECIMENTOS

Agradeço imensamente a minha família, meus amigos e amigas. Foi fundamental contar
com este apoio em todo o processo de formação acadêmica, desde o vestibular até o presente
trabalho. Sobretudo, quero agradecer ao meu Orientador e minha Coorientadora por todo
acolhimento pedagógico ao longo do processo de elaboração deste trabalho, bem como meu
caro colega de pesquisa Arthur Plautz Ventura, que colaborou de forma relevante para esta
pesquisa.
LISTA DE ILUSTRAÇÕES

Figura 1 ­ O Problema de balanceamento de postes.………………………………..………..15


Figura 2 ­ Exemplo de sistema clássico de Robótica Evolutiva…………………………….. 16
Figura 3 ­ Intervalos de dificuldade de função de dificuldade de potência linear e
quadrática……………………………………………………...……………………………...18
Figura 4 ­ Benchmark entre algoritmo padrão e o de curriculum learning com diferentes
funções de dificuldade………………………………………...……………………………...19
Figura 5 ­ Pseudo Algoritmo do Openai­ES.…………………………………………..……..21
Figura 6 ­ Diferentes subjogos no jogo de Xadrez Rápido, que são usados para formar um
currículo para aprender o jogo completo de Xadrez………………………………………….24
Figura 7 ­ Mão robótica treinada com aprendizado por reforço e randomização automática de
domínio resolvendo um cubo mágico...……………………………………………………....27
Figura 8 ­ Esquema de Classificação e Ordenação de tarefas………………………………..32
Figura 9 ­ Acurácia da melhor rede classificadora de cada
cenário….……………………………………………………………………………………..37
Figura 10 ­ Média da aptidão de cinco agentes treinados com cada configuração
currículo.……………………………………………………………………………………...39
Figura 11 ­ Comparativo entre o algoritmo padrão e as configurações de currículo utilizadas no
método de aprendizado curricular proposto…………....…………………………………….40
Figura 12 ­ Comparativo entre o algoritmo padrão e o currículo…………………………….41
LISTA DE TABELAS

Tabela 1 ­ Comparativo entre artigos correlatos…………………………………………...…29


Tabela 2 ­ Configurações utilizadas nos hiper parâmetros............................…………………33
Tabela 3 ­ Currículos propostos e as proporções de condições utilizadas……………………37

Tabela 2 ­ Configurações utilizadas nos hiper parâmetros.


LISTA DE ABREVIATURAS E SIGLAS

AM ­ Aprendizado de Máquina
AR ­ Aprendizado por Reforço
RNA ­ Redes Neurais Artificiais
AE ­ Algoritmos Evolutivos
RE ­ Robótica Evolutiva
AC ­ Aprendizado Curricular
VSLAM ­ Visual Simultaneous localization and mapping
ARP ­ Aprendizado por Reforço Profundo
ADR ­ Automatic Domain Randomization
SUMÁRIO
1. INTRODUÇÃO 11

1.1. PROBLEMÁTICA E MOTIVAÇÃO 12

1.2. OBJETIVOS 13

1.2.2. Objetivos Específicos 13

1.3. VISÃO GERAL DO DOCUMENTO 13

2. CONTEXTUALIZAÇÃO 14

2.1. PROBLEMA SELECIONADO 14

2.2. VISÃO GERAL DA PESQUISA DE REFERÊNCIA 15

2.1.2. Estratégias Evolutivas 19

2.1.2.1. OpenAI­ES 20

2.1.3. Genótipo e Fenótipo 21

2.1.4. Fitness e Avaliação 22

2.3. O SIMULADOR 22

3. TRABALHOS CORRELATOS 24

3.1. CURRÍCULO LEARNING PARA DOMÍNIOS DE APRENDIZAGEM POR


REFORÇO 24

3.2. NAVEGAÇÃO VISUAL INCORPORADA COM APRENDIZAGEM CURRICULAR


AUTOMÁTICA EM AMBIENTES REAIS 25

3.3. RESOLVENDO O CUBO DE RUBIK COM UMA MÃO ROBÓTICA 26

3.4 SELEÇÃO DOS ARTIGOS 28

3.5 COMPARATIVO ENTRE OS PRINCIPAIS PONTOS DOS ARTIGOS 28

4. PROPOSTA 31

4.1. A REDE PREDITORA DE DESEMPENHO (CLASSIFICADORA) 31

4.2. O EXPERIMENTO 33

4.2.1. Cenários 33

4.2.2. A estratégia evolutiva estendida/adaptada 35

5. RESULTADOS E DISCUSSÃO 37
5.1 RESULTADOS TREINAMENTO REDE CLASSIFICADORA 37

5.2. RESULTADOS COM O CURRÍCULO INTEGRADO 38

6. CONSIDERAÇÕES FINAIS 43

6.1 TRABALHOS FUTUROS 43

7. REFERÊNCIAS 45
11

1. INTRODUÇÃO

Inteligência Artificial (IA) é uma área abrangente com uma grande diversidade de
técnicas aplicadas a inúmeros problemas, no entanto problemas que exigem agentes autônomos
com capacidade adaptativa são desafiadores para a IA (DONCIEUX et al., 2015). Considerando
que o desenvolvimento de agentes autônomos é fundamental para o avanço das pesquisas, para
o desenvolvimento e para a inovação em áreas promissoras como a Robótica Adaptativa, torna­
se necessário o estudo e desenvolvimento de métodos de IA capazes de gerar tais soluções.
Um conjunto de técnicas utilizadas com frequência na geração de comportamento
autônomo adaptativo ancora­se em uma subárea da IA chamada Aprendizado de Máquina
(AM). Tal área tem por objetivo desenvolver métodos, técnicas e ferramentas para construir
máquinas inteligentes capazes de realizar as mais diversas tarefas (ANDRADE, 2011). De
acordo com Mitchell (1997), essas máquinas devem treinar sobre determinado conjunto de
amostras e adquirir conhecimento de forma automática.
Dentre as diferentes técnicas de AM, o Aprendizado por Reforço (AR) trata do problema
de como um agente deve agir em seu ambiente ao longo do tempo de modo a potencializar
algum sinal de recompensa (NARKEVAR et al., 2020). Outra técnica amplamente utilizada em
AM são as Redes Neurais Artificiais (RNA). As RNA’s são modelos matemáticos inspirados
no funcionamento de um cérebro biológico, e são aplicadas na solução de problemas de
regressão e classificação, isto é, predição de valores contínuos e discretos, respectivamente,
com base em dados de entrada (RUMELHART et al., 1988). Tais modelos são capazes de tomar
decisões baseadas em um processo de treinamento prévio, chamado de aprendizado, adquirindo
conhecimento através da experiência. O processo de construção de tais redes depende da técnica
utilizada, mas em certa medida ele se dá por meio da exploração, teste e ajustes do modelo de
acordo com as experiências (dados) disponíveis (ANDRADE, 2011).
Um conhecido conjunto de métodos usados para construir redes neurais são os
Algoritmos Evolutivos (AEs). Tais métodos baseiam­se na teoria da evolução, que combina
ideias inspiradas na genética (DARWIN, 1871) e seleção natural (WALLACE, 1878). Uma
espécie de seleção natural computacional que seleciona o mais adequado agente ou solução
para então reproduzi­los nas próximas gerações. A combinação de AEs com RNAs é chamada
de Neuroevolução (LEHMAN; MIIKKULAINEN, 2013), trata­se da construção de uma rede
neural através de AEs, especificamente por meio do ajuste iterativo dos pesos da rede usando
uma função objetivo, ou função de fitness.
12

A Neuroevolução vem sendo muito utilizada para criar robôs mais robustos e
adaptáveis, é considerada uma abordagem inovadora e de aplicabilidade mais ampla que
métodos de aprendizado supervisionado, pois exige apenas uma medida de desempenho e
dispensa rótulos, além de ser menos propensa a ficar presa em mínimos locais e com grande
capacidade de generalização (LEHMAN; MIIKKULAINEN, 2013). Uma vez que o
aprendizado desenvolvido em simulações, pode ser aplicado em robôs físicos a fim de verificar
a capacidade dos mesmos de manter um comportamento inteligente no ambiente real, esta é
denominada como a capacidade de atravessar a lacuna da realidade (NOLFI, 2021). No
processo de treinamento dos agentes robóticos usando redes neurais, para ajustar os pesos da
rede é necessário avaliar o comportamento do agente em diferentes condições ambientais. Para
isso se faz necessária a geração de diversas condições iniciais, do robô e objetos envolvidos na
tarefa em questão, que serão utilizadas para avaliar o robô a cada geração. Tais condições são
normalmente geradas de forma aleatória, porém existem pesquisas explorando formas
específicas de gerar esse conjunto de condições de forma a tornar o processo evolutivo mais
efetivo.

1.1. PROBLEMÁTICA E MOTIVAÇÃO

Em termos de aprendizado de máquina, diversas pesquisas estão explorando formas de


otimizar o aprendizado a fim torná­lo mais rápido, generalista e reutilizável. Neste sentido
percebeu­se que ao guiar o processo de aprendizado, escolhendo os dados de treinamento de
forma a aumentar gradualmente a complexidade, produz um resultado melhor do que a
utilização dos dados de treinamento de forma aleatória. Tais costumam ser chamadas de
aprendizagem baseada em currículo (do inglês, curriculum learning) (BENGIO et al., 2009).
Inspirado nessa ordenação significativa e gradual de exemplos, ao aplicar técnicas de
treinamento com essas características os resultados iniciais têm demonstrado, claramente, que
as condições ambientais encontradas pelos agentes evolutivos afetam o curso do processo
evolutivo (MILANO; NOLFI, 2021). Os conjuntos ordenados de tarefas cuja função é guiar o
processo do aprendizado são chamados currículos. Este trabalho busca investigar métodos
evolutivos de treinamento robótico associados ao aprendizado baseado em currículo, com o
intuito de encontrar formas de treinar agentes robóticos de forma mais eficiente. Segundo
pesquisas(WEINSHALL; COHEN; AMIR, 2018; BENGIO et al., 2009), o currículo, isto é, a
trajetória do aprendizado ou ordenação do conjunto de tarefas, influencia a velocidade e a
eficiência do aprendizado robótico.
13

1.2. OBJETIVOS

O objetivo geral deste trabalho é estudar formas de explorar o aprendizado baseado em


currículo na síntese de comportamentos robóticos adaptativos usando algoritmos evolutivos.

1.2.2. Objetivos Específicos

Os objetivos específicos do presente trabalho são:


I: Analisar o estado da arte em relação ao curriculum learning e robótica evolutiva.
II: Investigar diferentes formas de composição de currículos de aprendizagem usando
redes neurais capazes de predizer o desempenho dos agentes em condições iniciais específicas
durante o processo evolutivo;
III: Adaptar simulador robótico para coleta de dados que possibilitem treinar uma rede neural
preditora de desempenho;
IV: Projetar e executar experimentos com a geração de currículo automatizado usando
rede neural;
V: Analisar e comparar resultados obtidos do aprendizado curricular com o de métodos
convencionais de geração de currículo.

1.3. VISÃO GERAL DO DOCUMENTO

O Próximo capítulo fornece informações sobre a robótica evolutiva e suas definições


básicas. No capítulo 3, foram resumidos trabalhos relacionados a aprendizado curricular e
robótica adaptativa. O capítulo 4 apresenta a proposta de contribuição deste trabalho e descreve
as principais etapas de implementação. O Capítulo 5 detalha o desenvolvimento e os desafios
encontrados. Finalmente o capítulo 6 discute os resultados e traz insights e conclusões.
14

2. CONTEXTUALIZAÇÃO

Neste capítulo serão apresentados os principais tópicos envolvidos no


desenvolvimento deste trabalho. A subseção 2.1 apresenta o problema selecionado para a
exploração de currículos no aprendizado adaptativo. A subseção 2.2. apresenta uma visão geral
da pesquisa de referência e também o detalhamento das principais técnicas e principais
conceitos relacionados.

2.1. PROBLEMA SELECIONADO

O problema selecionado para a investigação proposta neste trabalho chama­se


balanceamento de postes duplo. Este problema foi apresentado na década de 90 (WIELAND,
1991), e consiste em controlar um carrinho móvel, com dois postes de comprimento e massas
diferentes fixados através de dobradiças passivas na parte superior do carrinho. O objetivo do
agente é controlar o carrinho de forma a equilibrar os postes por um tempo determinado. As
posições e velocidades iniciais de cada tentativa, ou episódio, variam e são definidas como as
condições iniciais do problema. Quando as posições do carrinho e dos postes extrapolam um
determinado limite aceitável, considera­se que o agente falhou em equilibrá­los e para­se o
episódio.
Este problema tornou­se um referencial amplamente reconhecido e utilizado por unir
aspectos fundamentais de controle do agente. Por exemplo, localização, não linearidade e
atribuição de crédito temporal (PAGLIUCA; MILANO; NOLFI, 2018). Além de ser intuitivo
e de fácil entendimento, exige um baixo custo computacional. Este trabalho escolheu utilizar a
variação (PAGLIUCA; MILANO; NOLFI, 2018) do problema clássico de balanceamento de
postes duplo não­markoviano (Figura 1). Nesta versão não­markoviana o agente possui acesso
apenas aos dados dos sensores de posição, e não de velocidade. A escolha desta tarefa se deu
em função da pesquisa de referência (MILANO; NOLFI, 2021) utilizada neste trabalho baseia­
se no mesmo problema.
15

Figura 1 ­ O Problema de balanceamento de postes.

Fonte: PAGLIUCA; MILANO; NOLFI (2018).

O carrinho tem uma massa de 1 kg. O Poste longo (l1) e o Poste curto (l2) têm massa de
0,5 e 0,25 kg e comprimento de 1,0 e 0,5 m, respectivamente. O agente possui três sensores,
que codificam a posição (𝑥) atual do carrinho na pista e o ângulo atual dos dois postes (θ1 e θ2)
e um motor. O estado de ativação do motor é normalizado na faixa [−
10,0, 10,0] Newton e é usado para definir a força aplicada ao carrinho. As
condições ambientais que estão sujeitas a variação, no caso deste problema, são a
posição[− 1.944 < 𝑥 < 1.944] e velocidade [− 1.215 < 𝑥˙ < 1.215] inicial do carrinho.
A posição angular inicial do poste 1 [− 0.0472 < 𝜃1 < 0.0472] e do poste 2 [− 0.10472 <
𝜃2 < 0.10472] e suas velocidades angulares estão compreendidas na faixa
[− 0.135088, 0.135088].

2.2. VISÃO GERAL DA PESQUISA DE REFERÊNCIA

A técnica de AM empregada na pesquisa de referência é a neuroevolução e conforme


apresentado no Capítulo 1, consiste na utilização de AEs para construção de RNAs e é
comumente utilizada na Robótica Evolutiva (RE), ancora­se no paradigma evolucionário e é
um subcampo que visa criar robôs mais robustos e adaptáveis (DONCIEUX et al., 2015). A
Figura 2 apresenta um sistema clássico de RE, que conta com um algoritmo evolutivo
(esquerda), e um agente evolutivo, que aqui é o robô, e pode ser real ou simulado (direita). O
processo segue o modelo genérico de algoritmo evolutivo e para avaliações de aptidão (fitness)
o robô é invocado, ou seja, o robô é instanciado e exposto à interação com o ambiente por um
16

período determinado (episódio) em que o controlador/política nesse contexto é o cérebro e


manipula o robô/carrinho que é o corpo. A cada geração cria­se alguns indivíduos com pequenas
variações do melhor indivíduo e aplicam­se esses valores no controle do robô pelo número de
episódios pré­determinados. Esses episódios são repetidos sucessivamente até o robô atingir a
aptidão necessária para a tarefa ou atingir o número máximo de episódios, podem ainda encerrar
de forma prematura caso os postes caiam ou ultrapassem o limite no trilho. O robô neste caso é
o carrinho à direita na Figura 2, e de acordo com as condições iniciais do carrinho e dos postes,
movimenta­se para a direita ou esquerda com o intuito de manter equilibrados os postes.
O processo evolutivo avalia as soluções candidatas, ou seja, avalia qual das
características dos agentes evolutivos serão perpetuadas na próxima geração, a RNA que faz o
controle do agente de acordo com os dados dos sensores, posições do carrinho e dos postes,
considerando a interação do agente com o ambiente, e calculando o valor de aptidão (fitness)
do robô correspondente como saída. A cada geração é feita uma média dos valores de aptidão
dos agentes em cada geração e o valor médio de fitness é utilizado na seleção e variação dos
agentes candidatos.

Figura 2 ­ Exemplo de sistema clássico de Robótica Evolutiva.

Fonte: Adaptado de Doncieux et al. (2020).


17

O trabalho referência (MILANO; NOLFI, 2021) estende a neuroevolução com a técnica


de aprendizado curricular ao problema apresentado na subseção 2.1, o currículo é uma forma
de ordenação de tarefas como visto na subseção 1.1 da introdução, logo aprendizado curricular
é uma técnica baseada na utilização de currículos para otimizar o treinamento de RNAs. Neste
caso o currículo foi elaborado de forma manual, isto é, durante o processo evolutivo, as
condições ambientais são determinadas usando 5 valores distribuídos de maneira uniforme
dentro dos intervalos apresentados acima na subseção 2.1.
Nesta versão de aprendizado curricular, as condições ambientais experimentadas
durante os episódios de avaliação são geradas aleatoriamente entre todas as condições
ambientais possíveis durante os primeiros 10% do processo evolutivo, ou seja, do máximo de
passos definido no algoritmo evolutivo. Em seguida, elas são escolhidas entre os subconjuntos
criados a partir de diferentes níveis de dificuldade.
O total de condições iniciais possíveis necessitou ser reduzido, as faixas contínuas de
valores foram discretizadas em 5 valores para viabilizar o processo manual de currículo durante
o treinamento e assim o total de condições iniciais possíveis é uma amostra de 15.625(5⁶). Para
a análise dos agentes foram consideradas todas as condições ambientais possíveis que podem
ser geradas pela combinação de 3 valores, distribuídos de maneira uniforme nos intervalos
descritos na subseção 2.1, para as 6 variáveis ambientais sujeitas a variação: a posição inicial
(e.g. [− 1.944, 0 , 1.944]); a velocidade do carrinho; as posições angulares iniciais dos postes;
e a velocidade angular dos postes. Consequentemente, o número de diferentes condições
ambientais em que os agentes são pós­avaliados é 729 (3⁶) e com o aprendizado de currículo
estendendo o algoritmo evolutivo mostra que o novo processo de geração de tarefas iguala ou
supera o algoritmo convencional.
A função utilizada para categorizar as condições em diferentes níveis de dificuldade é
chamada de Função de dificuldade. A Figura 3 ilustra os intervalos obtidos usando uma função
de dificuldade de potência linear e quadrática. Os eixos horizontais representam o desempenho
normalizado no intervalo [0,0, 1,0], ou seja, a aptidão obtida pelos últimos 5 agentes
normalizados no intervalo [0,0, 1,0].
A utilização da função de dificuldade linear (Figura 3, linha azul) não altera o nível geral
de dificuldade das condições ambientais experimentadas pelos agentes, porém ela expõe os
agentes a condições ambientais com níveis de dificuldade semelhantes. Esse fato evidencia que
o aprendizado curricular supera o algoritmo evolutivo convencional em que as condições
ambientais são selecionadas aleatoriamente dentro de todas as condições possíveis. No entanto,
ao substituir a função de dificuldade linear (linha azul) por uma função de potência (linha
18

vermelha) conforme mostra a Figura 3, aumenta assim a intensidade da seleção preferencial de


condições difíceis.

Figura 3 ­ Intervalos de dificuldade de função de dificuldade de potência linear e quadrática.

Fonte: MILANO; NOLFI (2021).

Os eixos verticais representam os intervalos dos subconjuntos, com η = 10. Os intervalos


dos subconjuntos no caso da função linear são [0,0, 0,1, 0,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 1,0].
Os intervalos no caso da função de potência quadrática (Figura 3, linha vermelha) são [0,0,
0,01, 0,04, 0,09, 0,16, 0,25, 0,36, 0,49, 0,64, 0,81, 1,0]. Assim são geradas as categorias de
dificuldade, e consequentemente com a função de potência os intervalos calculados para as
condições difíceis (baixa aptidão) são menores e progressivamente maiores para condições
fáceis (alta aptidão). Como existem menos categorias com condições fáceis elas são escolhidas
com menor frequência. A título de exemplo, suponha que uma condição fácil é uma condição
em que o agente atingiu uma performance acima de 500 pontos, normalizando essa aptidão
seria equivalente a 0,5. Logo, com a função linear e η = 10, o currículo teria 5 condições fáceis
e 5 difíceis. Já com uma função quadrática, conforme os intervalos definidos acima, o currículo
contaria com 3 condições fáceis e 7 difíceis em sua composição. Então, quanto maior for a
exponencial da função maior será a dificuldade geral das condições ambientais selecionadas.
Um nível de dificuldade geral maior é relevante para desafiar o agente, tendo em vista que com
o decorrer da evolução faz­se necessário um currículo com mais condições difíceis. Conforme
19

apresentado pelos autores (Figura 4) a função de dificuldade com potência cúbica apresenta a
melhor proporção de condições fáceis e difíceis para o problema de balanceamento de dois
postes.

Figura 4 ­ Benchmark entre algoritmo padrão e o de curriculum learning com diferentes funções de dificuldade.

Fonte: MILANO; NOLFI (2021).

Nas seções seguintes será explicado cada componente do diagrama (Figura 2) acima, os
principais pontos relevantes da pesquisa de referência para o trabalho e como se relacionam.

2.1.2. Estratégias Evolutivas


Esta família de algoritmos evolutivos é uma técnica de otimização que aplica conceitos
da Teoria da Evolução (DARWIN, 1871), combinada com a Teoria da Seleção Natural
(WALLACE, 1878) para procurar soluções de problemas complexos ou com espaços de busca
muito grandes. Rechenberg (1978) propõe o método inspirado no processo de seleção natural,
em que a reprodução dos indivíduos se dá através de operadores de mutação que geram versões
descendentes levemente variadas. Os operadores de cruzamento selecionam de geração em
geração os melhores agentes e os reproduzem em populações de novos agentes, apenas os
melhores e mais aptos a desempenharem as tarefas objetivo (GABRIEL; DELBEM, 2008). Em
implementações típicas, esses métodos usam um único pai, que geram uma população de
indivíduos distribuídos no espaço de busca multidimensional ao redor do pai e variam os seus
20

genes ligeiramente na direção do gradiente de aptidão. Uma instância particularmente eficaz


desses métodos é o algoritmo OpenAI­ES (SALIMANS et al., 2017).

2.1.2.1. OpenAI­ES
Para evoluir os pesos de conexão do controlador de rede neural usamos a estratégia
evolutiva Open­AI proposta por Salimans et al. (2017) o algoritmo opera em uma população
centrada em um único pai e utiliza uma forma do método de diferenças finitas para estimar o
gradiente da aptidão esperada, e atualiza o centro da distribuição populacional com o otimizador
estocástico de Adam proposto por Kingma et al. (2014) e amplamente utilizado no treinamento
agentes evolutivos.
A estratégia evolutiva descrita na Figura 5 gera a cada geração os vetores gaussianos ε
que são usados para fazer os agentes descendentes, ou seja, as versões perturbadas do pai (linha
4), que são avaliadas (linhas 5­6) em η episódios com condições ambientais
diferentes (linhas 5-6) e então os valores médios de aptidão obtidos
durante os episódios de avaliação são classificados e normalizados
no intervalo [−0,5, 0,5] (linha 7). Essa normalização torna o
algoritmo invariante à distribuição dos valores de aptidão e reduz
o efeito de outliers. O gradiente estimado g corresponde à média do produto escalar das
amostras ε e dos valores de fitness normalizados (linha 8). Finalmente, o gradiente é usado para
atualizar os parâmetros do pai através do otimizador estocástico Adam (linha 9).
21

Figura 5 ­ Pseudo Algoritmo do OpenAI­ES.

Fonte: MILANO; NOLFI (2021).

2.1.3. Genótipo e Fenótipo


Na robótica evolutiva, a estratégia cria, geralmente de forma aleatória, os genótipos
descendentes que são usados para produzir um robô correspondente, são versões do agente
evolutivo com alguma variação ou perturbação, com a finalidade de encontrar evolução no robô
candidato a reprodução. Ou seja, traduz o genótipo em um fenótipo, pois assim como na
biologia, de acordo com o ambiente que o indivíduo é exposto, algumas características
específicas resultam da combinação do genótipo com o ambiente. Na medida em que o genótipo
codifica os pesos da rede neural, a mudança de pesos traz uma mudança na política (cérebro) e
consequentemente no comportamento do agente evolutivo.
22

2.1.4. Fitness e Avaliação

A maioria das pesquisas de robótica evolutiva, influenciadas pela visão da evolução


como um algoritmo de otimização, baseia­se em funções de aptidão (fitness), ou seja, em
medidas quantificáveis para conduzir o processo de busca de uma solução. Nesta abordagem, a
medida de aptidão escolhida deve aumentar gradativamente desde as primeiras soluções
consideradas em direção à solução esperada. As funções de aptidão típicas dependem de
critérios de desempenho e assumem implicitamente que o aumento deste conduzirá a busca na
direção dos comportamentos desejados.
As interações com o ambiente são feitas sucessivamente até alcançar um determinado
valor de aptidão ou até que um número total máximo de avaliações seja realizado. Cada episódio
tem uma duração máxima, 1000 passos (steps), e o episódio acaba prematuramente caso algum
poste caia, isto é, exceda o intervalo de [− π/5, π/5] rad, ou o carrinho passe de um limite do
trilho [­2.4m, 2.4m]. A cada passo de simulação o agente ganha um ponto, sendo assim a
pontuação (fitness) máxima é 1000.

2.3. O SIMULADOR

Uma ferramenta útil que pode ser usada para simular o robô, o ambiente e sua interação
é o AI­Gym (https://gym.openai.com BROCKMAN et al., 2016). A ferramenta inclui uma
biblioteca de problemas adaptativos prontos para uso (chamados de ambientes); facilita a
implementação de novos ambientes e introduz um padrão de programação que permite criar
algoritmos que podem ser aplicados diretamente em qualquer ambiente AI­Gym sem
modificações. Baseando­se nessa extensão facilitada da ferramenta acima citada, o simulador
Evorobotpy2 (NOLFI, 2021) inclui ambientes adicionais complementares e fornece ambiente
de execução e visualização para aprendizado de máquina voltado a robôs, a partir de paradigmas
de Aprendizado Evolutivo e de Reforço. O simulador é caracterizado pela simplicidade e
eficiência computacional, e roda em Linux, MacOS e Windows.

2.3.1. Rede Neural Controladora


Aplicou­se uma rede neural de aprendizado supervisionado multi camadas, ou seja,
Multi­layer Perceptron oferecida pelo simulador citado. Essa RNA controladora do agente é
constituída por uma rede LSTM (GERS; SCHMIDHUBER, 2001) com 3 camadas, 3 neurônios
23

sensoriais, 10 unidades internas e 1 neurônio motor. Utiliza uma rede LSTM, pois o problema
exige determinar as ações também com base na observação/estado interno/ação anterior.
24

3. TRABALHOS CORRELATOS

Durante o processo de pesquisa, foi realizado o cruzamento de temas relacionados à


aprendizado de máquina, por reforço, curricular e retornando alguns artigos e projetos com
informações relevantes para a fundamentação e desenvolvimento deste trabalho.

3.1. CURRÍCULO LEARNING PARA DOMÍNIOS DE APRENDIZAGEM


POR REFORÇO

Aprendizado por Reforço (AR) trata do problema de como um agente deve agir em seu
ambiente ao longo do tempo, de modo a maximizar algum sinal de recompensa escalar. Na
configuração padrão de aprendizado por reforço, um agente geralmente começa com uma
política aleatória e tenta diretamente aprender uma política otimizada para a tarefa alvo. Quando
a tarefa é difícil, por exemplo, devido a agentes adversários, má representação do estado ou
recompensa escassa, o aprendizado pode ser muito lento (NARKEVAR et al., 2020).
Para mitigar esse problema, a aprendizagem por transferência, que é uma classe de
métodos e uma área de pesquisa que busca acelerar a formação de agentes de AR, propõe que
ao invés de aprender na tarefa de destino, o agente pode primeiro treinar em uma ou mais
subtarefas da tarefa de destino. À medida que o conhecimento é transferido de uma tarefa para
a próxima, a sequência de tarefas induz um currículo. A Figura 6 ilustra um exemplo motivador:

Figura 6 ­ Diferentes subjogos no jogo de Xadrez Rápido, que são usados para formar um currículo para
aprender o jogo completo de Xadrez.

Fonte: Narkevar et al.(2020).

Aprendizado curricular (AC) depende da transferência de conhecimento entre tarefas,


porém é o sequenciamento de tarefas o conceito central do AC. O AC em métodos de AR é
definido neste artigo como uma abordagem composta de três etapas: a geração das tarefas, o
sequenciamento das tarefas e a transferência do aprendizado. Uma pesquisa sistemática sobre
o assunto foi desenvolvida com ênfase nos métodos de sequenciamento, e com base nas
25

diferentes suposições acerca das tarefas intermediárias do currículo, foram subdivididos em


cinco categorias. O mais simples dos métodos é o sequenciamento de amostras, que reordena
amostrar da própria tarefa final, mas não altera diretamente o domínio. Este foi seguido por
métodos de co­aprendizagem, onde o currículo surge da interação de vários de vários agentes
no mesmo ambiente. Na sequência, o artigo considera métodos que alteram diretamente o MDP
para produzir tarefas intermediárias. Parte deles assume que a dinâmica do ambiente permanece
a mesma, porém a distribuição do estado inicial, final e a função de recompensa pode mudar.
Outros não fizeram restrições às diferenças permitidas no MDP da tarefa destino. Discute­se
também como os humanos abordam o sequenciamento visando extrair insights para currículos
incorporando no processo de geração, manual ou automática, de tarefas para o currículo.

3.2. NAVEGAÇÃO VISUAL INCORPORADA COM APRENDIZAGEM


CURRICULAR AUTOMÁTICA EM AMBIENTES REAIS

Tarefas de navegação são um desafio central para o IA incorporada, os métodos


utilizados até o momento, como visão ativa, localização e mapeamento visual simultâneo ativo
(VSLAM ativo), funcionam bem em circunstâncias ideais, mas são ineficientes e exigem maior
capacidade adaptativa em situações do mundo real. Apesar de a navegação visual ter se provado
em simulações de aprendizado por reforço, raramente pode ser aplicada em robôs físicos a fim
de verificar a capacidade do mesmo de manter o aprendizado no ambiente real.
O artigo apresenta o NavACL (MORAD et al., 2021), uma metodologia que incorpora
aprendizado por currículo voltado às tarefas de deslocamento e orientação espacial. Essa
metodologia traz uma abordagem de treinamento simples e seleciona com eficiência as tarefas
relevantes utilizando­se de recursos geométricos. Desse modo, ao aliar essa metodologia ao
aprendizado por reforço profundo (ARP) é possível construir um currículo em tempo de
execução. O ARP é capaz de lidar com tarefas de navegação visual: de ponto, objeto ou área
com base na descrição do alvo. Os objetivos da navegação de objetos podem ser representados
com imagens ou semântica, no primeiro caso, cada representação corresponde ao ponto de
observação atual do agente em relação ao objeto alvo, sendo necessária uma nova imagem para
cada instância ou um rótulo semântico de destino.
Rótulos semânticos mostram­se como uma grande promessa para a robótica móvel, pois
podem descrever alvos sem vincular a uma cena específica ou instância de objeto, mas
vinculados a conceitos, nesse contexto, podem se comparar como os humanos quando
descrevem alvos uns para os outros.
26

Os agentes ARP de navegação visual tradicionais utilizam um autoencoder que gera


imagens RGB de entrada em uma representação latente e são treinados de ponta a ponta com a
política de treinamento rede. No entanto, o custo computacional desse treinamento ponta a
ponta pode ser proibitivo, impossibilitando a utilização das simulações no mundo real. A
proposta do artigo é utilizar autoencoders espaciais previamente treinados com imagens reais e
congelar seus pesos, a fim de evitar o sobreajuste (overfitting) de renderizações de simulação
durante o treinamento. Esse congelamento acarreta na convergência de uma política melhor,
garantindo a retropropagação com menos camadas reduzindo assim o esforço computacional.
O artigo apresenta três experimentos: um estudo de ablação do NavACL, um
comparativo da simulação do modelo em ambientes invisíveis e objetos alvo, e um comparativo
do nosso agente operando no mundo real. Esses experimentos demonstraram que os agentes
podem navegar por ambientes internos desordenados e desconhecidos para destinos
semanticamente especificados, usando apenas imagens RGB. As políticas para evitar
obstáculos e redes de recursos congelados oferecem suporte à transferência para ambientes
desconhecidos no mundo real, sem nenhuma modificação ou requisitos de retreinamento.
Foram avaliadas as políticas em simulações no mundo real em um robô terrestre e um
drone quadrotor. Combinando NavACL com redes de recursos congelados e políticas para
evitar colisões ajudam a preencher a lacuna do Sim2Real e é possível produzir agentes capazes
de navegar em destinos desconhecidos em simulações e no mundo real.

3.3. RESOLVENDO O CUBO DE RUBIK COM UMA MÃO ROBÓTICA

Nos últimos 60 anos de robótica, tarefas difíceis que os humanos realizam com suas
mãos exigiram o projeto de um robô personalizado para cada tarefa (OPENAI et al., 2019).
Resolver o cubo mágico de rubik com uma mão é uma tarefa desafiadora até mesmo para
humanos, logo treinar com sucesso uma mão robótica para realizar tarefas de manipulação
complexas estabelece a base para robôs generalistas.
27

Figura 7 ­ Mão robótica treinada com aprendizado por reforço e randomização automática de domínio
resolvendo um cubo mágico

Fonte: Openai et al. (2019)

O Artigo propõe treinar um par de redes neurais para resolver a tarefa com uma mão
robótica, conforme mostra a Figura 7, semelhante à humana. Utilizando redes neurais utilizadas
são treinadas inteiramente em simulação, usando o mesmo código de aprendizado por reforço
que o OpenAI Five juntamente com uma nova técnica chamada Automatic Domain
Randomization (ADR) que consiste em aumentar a quantidade de randomização das tarefas
geradas, conforme o agente atinge um determinado desempenho. O Método proposto resolve o
problema da randomização manual expandindo automaticamente seus intervalos ao longo do
treinamento, isto elimina a necessidade de conhecimento de domínio e simplifica a aplicação
em novas tarefas. Essa forma de gerar um currículo com tarefas mais desafiadoras leva a rede
neural a aprimorar a capacidade de generalizar o conhecimento adquirido em ambientes mais
aleatórios, esse processo se repete toda vez que o desempenho alvo é alcançado.
Um dos parâmetros randomizados é o tamanho do Cubo, o método começa com um
tamanho fixo e aumenta gradualmente o intervalo de randomização à medida que o treinamento
avança. Aplica­se a mesma técnica a todos os outros parâmetros, como a massa do cubo, a
fricção dos dedos do robô e os materiais da superfície visual da mão. A rede neural, portanto,
precisa aprender a resolver a tarefa sob a variação dessas condições que tornam­se cada vez
mais difíceis.
Para testar os limites do método, aplicou­se uma variedade de perturbações enquanto a
mão resolvia a tarefa, isso testou não apenas a robustez da rede de controle como também a
rede de visão usada para estimar a orientação do cubo. Descobriu­se que o sistema treinado com
28

ADR é surpreendentemente robusto a perturbações, o robô foi capaz de realizar a maioria das
viradas e rotações de face do cubo sob todas perturbações testadas, mesmo que sem o melhor
desempenho.
O sistema pode lidar com situações que nunca viu durante o treinamento, como o ruído
de ser esbarrado por algum objeto, isso mostra que o aprendizado por reforço não é apenas uma
ferramenta para tarefas virtuais, mas pode resolver problemas do mundo real que exigem
destreza sem precedentes.

3.4 SELEÇÃO DOS ARTIGOS

A primeira palavra­chave utilizada nas pesquisas foi Curriculum Learning, a apostila


Robótica do simulador Evorobotpy2 traz a segunda palavra­chave, o nome da estratégia
OpenAI­ES (algoritmo). Aprofundando a pesquisa com os termos Aprendizado de Máquina e
Robótica Adaptativa/Evolutiva, sempre procurando em inglês nos repositórios e fazendo
variações nas combinações. Na Tabela 1 fez­se um comparativo com o método de treinamento
utilizado na simulação, e.g. aprendizado por reforço ou neuro evolução, nota­se que o estado
da arte traz apenas artigos internacionais e principalmente sob o paradigma de AR. Também
analisou­se a forma com que o currículo era construído e se era capaz de escalar, ou seja, se a
estimativa dos valores de aptidão do agente pré­avaliavam ou não as condições iniciais. Além
de considerar o quão robustos eram os comportamentos desenvolvidos pelos robôs, em outras
palavras, se eram capazes de ultrapassar a lacuna da simulação para a realidade.

3.5 COMPARATIVO ENTRE OS PRINCIPAIS PONTOS DOS ARTIGOS


Dentre os artigos correlatos que exploram diferentes métodos de geração de currículo,
no artigo da seção 3.3 (OPENAI et al., 2019) a criação é automática, o treinamento é baseado
em Aprendizado por reforço e os resultados foram promissores. Aplicou­se a política de
treinamento da simulação no mundo real em uma mão humanoide robótica, possibilitando
assim a aplicação de diversos ruídos que em ambiente de simulação são de difícil modelagem,
e o resultado apontou uma surpreendente capacidade adaptativa. Vale ressaltar que não foi
necessário retreinar a rede ao atravessar a lacuna da realidade, ou seja, ao transferir o
conhecimento desenvolvido do ambiente simulado para o mundo real.
No artigo de referência que aplica aprendizado curricular à algoritmos evolutivos, a
criação ainda não é automatizada, o método de criação do currículo proposta por Milano &
29

Nolfi 2021 consiste em pré­avaliar em um grid sistemático com 729 possíveis conjuntos de
condições iniciais. O método trouxe resultados interessantes, e inspirou nossa investigação no
sentido de substituir a criação manual e sistemática por uma forma automatizada. Assim,
possibilitando a escalabilidade do método curricular que será capaz de lidar com problemas em
que o currículo tenha uma quantidade maior de variáveis. Então pretende­se utilizar o mesmo
paradigma, evolutivo, na rede principal e treinar uma nova rede neural para classificar as
condições antes do agente ser exposto à tarefa, e de acordo com essa classificação definir se a
tarefa é adequada para o momento do treinamento.

Tabela 1 ­ Comparativo entre artigos correlatos.

Artigo Simulador Robô Classe de Geração do Condições


Algoritmo currículo pré­avaliadas

Aprimorando a sim simulação algoritmo ordenação sim de forma


Neuroevolução apenas evolutivo crescente de sistemática
com Aprendizado dificuldade
Curricular manual
(MILANO;
NOLFI, 2021)

Currículo learning não não aprendizado aprendizado Não


para Domínios de por reforço por
Aprendizagem por transferência
Reforço
(NARKEVAR et
al., 2020)

Navegação Visual sim robô aprendizado metodologia Não


Incorporada com terrestre e por reforço NavACL
Aprendizagem um drone profundo
Curricular quadrotor
Automática em
Ambientes Reais
(MORAD et al.,
2021)

Resolvendo o cubo sim mão aprendizado randomização Não


de rubik com uma robótica por reforço automática de
mão robótica similar à domínio
(OPENAI et al., humana
2019)
30

Aprendizado sim simulação algoritmo ordenação sim com


baseado em apenas evolutivo crescente de predição
currículo aplicado dificuldade
à robótica automática
adaptativa (esta
proposta)
Fonte: Elaborado pelo autor.
31

4. PROPOSTA

Este trabalho consiste na investigação da criação de currículos para o treinamento de


agentes robóticos evolutivos de forma automatizada, especificamente usando uma rede neural
preditora de desempenho para auxiliar na montagem do currículo. Esta criação automatizada se
configura como uma extensão do trabalho de Milano e Nolfi (2021), em que a dificuldade de
cada condição é avaliada de forma sistemática. Assim, buscou­se formas de substituir a
construção manual por um processo automatizado usando uma rede neural, pois automatizar a
predição de performance de cada condição inicial facilitaria a utilização de aprendizado baseado
em currículo em processos neuroevolutivos. Isso porque o processo manual exige uma
sistematização computacionalmente custosa que avalia o agente em um grande número de
condições iniciais discretizadas a partir dos intervalos possíveis para cada variável testada,
conforme visto na subseção 2.1.
A seguir estão descritos os detalhes de implementação da RNA classificadora, que
incluem: a configuração da RNA utilizada para classificação dos ambientes de treinamento; o
experimento e os cenários utilizados; o acoplamento da RNA ao simulador; e por fim, a
construção do currículo, assim como as razões para as escolhas feitas durante o projeto.

4.1. A REDE PREDITORA DE DESEMPENHO (CLASSIFICADORA)

Para a construção da rede preditora de desempenho utilizou­se a scikit­learn (sklearn)


(PEDREGOSA et al., 2011), uma biblioteca de aprendizado de máquina de código aberto para
a linguagem de programação Python. Ela inclui vários algoritmos de classificação, regressão e
agrupamento e é projetada para interagir com as bibliotecas Python numéricas e científicas
como NumPy e SciPy.
O problema utilizado no experimento conta com seis condições iniciais variáveis, logo
a camada de entrada da RNA possui seis neurônios. Além de três camadas ocultas, duas com
256 e outra com 128 neurônios, a função de ativação das camadas ocultas é uma função
ReLU(do inglês, rectified linear unit) e o solucionador para otimização de pesos é o otimizador
estocástico de Adam (KINGMA et al., 2014). Porém, inicialmente utilizou­se outras
configurações para a rede classificadora, no entanto os resultados foram insatisfatórios e em
busca da otimização da rede aumentou­se o número de neurônios e retirou­se uma camada
oculta. Também foi alterada a função de ativação e o otimizador de pesos. Assim de forma
empírica foi sendo testada e refinada de acordo com os melhores resultados de classificação
32

obtidos que resultaram na configuração definitiva da arquitetura proposta. Na Tabela 2, estão


resportados os últimas configurações utilizadas, sendo a ultima a implementada.

Tabela 2 ­ Configurações utilizadas nos hiper parâmetros.


Função de ativação Alpha Camadas ocultas Solver
tanh 0.0001 64, 32, 64, 32 Sgd
ReLU 0.001 128, 256, 128 Sgd
ReLU 0.0001 256, 128, 256 Adam
Fonte: Elaborado pelo autor.

O primeiro componente à esquerda da Figura 8, são as condições iniciais e a cada


iteração um conjunto é criado de forma aleatória e usado como input na camada de entrada da
rede classificadora, que classifica as condições em boas ou ruins. As condições em que o agente
consegue balancear os bastões por mais da metade da duração do episódio, obtendo 500 pontos
ou mais, são rotuladas como fáceis e as demais como difíceis. Em outras palavras, nas condições
fáceis o agente passa da metade do episódio e nas difíceis acabam os episódios prematuramente
com a falha do agente. No passo 3 da Figura 8, são então ordenadas por nível de dificuldade e
selecionadas nas devidas proporções para a formação do currículo, formando assim o currículo
à direita da Figura.

Figura 8 ­ Esquema de Classificação e Ordenação de Tarefas.

Fonte: Elaborado pelo autor.


33

4.2. O EXPERIMENTO

Conforme visto na seção 1.1 da introdução, currículo é uma forma de ordenação de


tarefas (ambientes) e este trabalho propõe aplicar o Aprendizado baseado em currículo ao
problema de balanceamento de postes.
Os experimentos aqui apresentados possibilitam a investigação sobre formas de elaborar
automaticamente currículos em tempo de execução, usando uma RNA classificadora (Figura
8). Esta rede quando acoplada ao simulador Evorobotpy2 pode classificar as condições
ambientais iniciais e compor o currículo com as condições mais adequadas para o treinamento
do agente. Entre a criação e a utilização das condições como input, a rede classificadora pode
predizer a performance do agente, e baseada nessa classificação ordenar um conjunto de tarefas
para o treinamento do agente. As tarefas ordenadas caracterizam o currículo e com isso é
possível igualar ou superar o método de criação manual.
Se os resultado obtidos forem equiparados ao método de geração de currículo manual,
então a contribuição deste presente trabalho consiste em liberar o projetista da criação do
currículo e eliminar a necessidade de reduzir (discretizar) as condições ambientais. Baseado
nos indícios dos estudos que inspiraram este trabalho, há possibilidade também de acelerar o
treinamento do agente, ou seja, convergir a uma solução ótima com menos episódios de
treinamento ou ainda elevar a performance final do agente. A soma dessas duas contribuições
pode ir além de diminuir o tempo de alguns aprendizados, como também viabilizar o
aprendizado de tarefas complexas sobre as quais o agente evolutivo não possui conhecimentos
prévios, seja pela complexidade do aprendizado ou pelo custo computacional empregado.
Outro ponto é a escalabilidade do método manual, pois o tempo necessário para estimar
o nível de dificuldade das experiências aumenta exponencialmente com o aumento das
condições ambientais sujeitas a variações, o que limita a escalabilidade do método manual. Ao
treinar com dados históricos e estimar a aptidão do agente, pode­se generalizar mesmo sem o
agente ter experimentado as condições em iterações anteriores.

4.2.1. Cenários

Existem diversos possíveis modos de treinar a rede preditora de desempenho. De forma


a encontrar uma maneira efetiva de construir tal rede foram exploradas três alternativas de
cenários:
• Condições Passadas;
34

• Condições Geradas no momento;


• Condições Sistemáticas.
Os cenários com condições passadas e geradas no momento contam com quatro
experimentos de treinamento cada, mais o cenário de condições sistemáticas com um
experimento, assim totalizando nove experimentos.
A primeira simplesmente usa dados passados encontrados pelo agente. A segunda gera
novos dados no momento do treinamento da rede, isto é, reavaliando o agente em inúmeras
condições iniciais aleatórias exclusivamente para a obtenção de dados. E a terceira, gerando
novos dados, porém com uma avaliação sistemática semelhante ao que foi realizado no trabalho
de Nolfi e Milano (2021). O terceiro cenário é usado como uma forma de condição controle
para verificar a capacidade de aprendizado da rede, uma vez que neste cenário realiza­se a
mesma avaliação sistemática que busca­se substituir com a rede neural.
Primeiramente, o número η de tentativas por geração aqui utilizado é de 50 episódios
para todos os casos. Cada tentativa é de até 1000 passos, conforme elucidado anteriormente na
subseção 2.1.4. E a rede classificadora é treinada pela primeira vez após a geração 700, valor
determinado empiricamente com diversos experimentos, tendo em vista que é necessário um
conjunto mínimo de experiências para que o agente desenvolva minimamente determinadas
características, pois no início do treinamento, em função da população gerada aleatoriamente,
todas as condições iniciais são difíceis. Dado esse momento, treinou­se a rede classificadora
com os dados das últimas 10, 50, 100 e 200, gerações respectivamente. Como cada geração tem
50 episódios (tentativas) o tamanho de cada conjunto de treinamento é calculado com a
multiplicação da quantidade de gerações passadas utilizadas pelo número de episódios (e.g.
10*50). Assim sendo, cada episódio gera um conjunto de seis condições iniciais e uma
performance (rótulo), no caso da primeira configuração de treinamento tem­se um conjunto de
500 ambientes rotulados utilizados no treinamento da rede classificadora. Além de usar dados
históricos, utilizou­se lotes com mesmo número de gerações (10, 50, 100 e 200) porém com
dados criados randomicamente para avaliar os resultados em comparação aos treinamentos
similares feitos com dados históricos, espera­se uma sutil melhora em relação aos treinamentos
executados com dados históricos.
O terceiro e último cenário de treinamento da rede foi utilizar as 729 condições geradas
a partir da combinação de três valores, tal qual Milano e Nolfi (2021) o fizeram na pesquisa de
referência. Totalizando assim 3 cenários com 9 maneiras distintas de treinamento da rede
classificadora.
35

No momento do primeiro treinamento da rede classificadora, os dados criados de forma


aleatória, tem uma concentração duas vezes maior para a classe classificada como positiva
(True), ou seja, que tem uma fitness predita acima de 500 pontos. O problema com este aspecto
dos dados é que, se nenhuma providência for tomada, o modelo classifica os novos dados como
sendo da classe que possui mais exemplos (classe predominante). Em outras palavras, os
parâmetros do algoritmo não farão distinção entre as classes, levando­o a acreditar que, ao
classificar todas as novas amostras como sendo da classe majoritária, está fazendo um bom
trabalho. Ao analisar os dados temos um forte indício de que o modelo está classificando todas
as condições como fáceis. Logo, é necessário tomar medidas no sentido de balancear as classes
para que esta situação não ocorra. Há dois principais métodos para o balanceamento de classes:
undersampling e oversampling, e neste caso utilizou­se a biblioteca Imbalanced Learn
(LEMAÎTRE; NOGUEIRA; ARIDAS, 2017) para fazer o undersampling. Ou seja, eliminou­
se os dados da classe majoritária até que o total remanescente fosse igual a quantidade de dados
da classe minoritária.
Outro ponto fundamental é testar a eficiência do treinamento com um conjunto de dados
distinto do utilizado no treinamento para evitar assim o overfitting, ou seja, que a rede seja
muito boa em predizer as condições que já conhece, mas com baixa capacidade de
generalização. Assim sendo, definiu­se um conjunto de teste de 1000 condições iniciais de
forma aleatória para teste de todos os cenários supracitados.

4.2.2. A estratégia evolutiva estendida/adaptada

A forma de treinamento que apresentou melhor resultado dentre as descritas na subseção


4.2.1, foi a utilizada na rede classificadora auxiliar. Esta rede classificadora é responsável por
classificar as tarefas para a posterior definição do currículo. Tendo em vista que o
comportamento do agente está em evolução, é esperado que o desempenho da rede
classificadora caia ao longo do tempo, em virtude da evolução do agente mais tarefas passam a
ser fáceis. Por este motivo, um limiar de desempenho será utilizado como critério de avaliação
da rede classificadora, e quando seu desempenho estiver abaixo do esperado, o treinamento da
mesma será repetido com dados recentes a fim de manter uma boa classificação das tarefas ao
longo da evolução. A cada iteração do AE um ambiente é gerado de forma randômica e serve
de entrada para a rede classificar o ambiente. Com base na predição da rede, monta­se o
currículo com a mesma proporção de condições fáceis e difíceis apresentadas em Milano e Nolfi
36

(2021). É interessante observar que o desempenho das condições ambientais é calculado com
base na aptidão obtida por agentes em evolução. Assim, os valores de desempenho não indicam
um nível absoluto de dificuldade, mas sim o nível de dificuldade relativo às habilidades dos
atuais agentes em evolução. Por isso é importante, eventualmente, retreinar a RNA
classificadora com o intuito de mantê­la eficiente frente ao atual nível de aptidão do agente em
relação aos ambientes.

4.3 ELABORAÇÃO DO CURRÍCULO


É importante garantir que cada agente experimente condições com diferentes níveis de
dificuldade, para reduzir assim, o nível de imprecisão da medida de aptidão, causada pelo fato
de que a aptidão de indivíduos sortudos é superestimada e dos azarados subestimada. Selecionar
as condições ambientais de forma aleatória dentro de categorias de dificuldade definidas reduz
o risco de overfitting e garante que a dificuldade estimada das condições ambientais continue
sendo atualizada ao longo do processo evolutivo.
Este trabalho aplica inicialmente currículos com proporções semelhantes da pesquisa de
referência, isto é, um currículo com 0% difíceis e 100% fáceis, depois varia­se essa proporção
até obter 100% difíceis e nenhuma fácil. Espera­se que os resultados com currículos com
algumas fáceis e a maioria difíceis tragam melhores desempenhos, no entanto é possível que os
resultados inspirem novas investigações para trabalhos futuros.
37

5. RESULTADOS E DISCUSSÃO

Neste capítulo é reportado os melhores resultados de cada cenário de treinamento da RNA


classificadora, procurando, dentre os treinamentos propostos, qual é o mais eficiente, e a busca
dos ajustes para melhorar o desempenho na tarefa de predição. Apresenta­se também os três
melhores resultados de cada cenário em um gráfico. Será abordada a aplicabilidade do currículo
gerado e como isto afeta o treinamento do agente evolutivo. Ao final, será apresentado um
comparativo entre os resultados obtidos e os resultados da pesquisa de referência. A métrica
para avaliação e retreino da melhor rede classificadora será a acurácia.

5.1 RESULTADOS TREINAMENTO REDE CLASSIFICADORA

Na Figura abaixo, apresentamos o resultado de melhor desempenho da rede


classificadora em cada um dos três cenários propostos dentre as nove formas de treinamento,
com condições passadas, condições geradas no momento de retreino e condições sistemáticas,
respectivamente. Os resultados gráficos são baseados em uma média obtida nas sementes, ou
seja, ponto de partida para a geração pseudo­aleatória de números, que permite tornar os
experimentos replicáveis. Utilizou­se cinco sementes (repetições) diferentes a fim de ter
resultados confiáveis, pois a estocasticidade do processo pode trazer um bom resultado por
acaso.

Figura 9 ­ Acurácia da melhor rede classificadora de cada cenário.

Fonte: Elaborado pelo autor.


38

Em azul temos as condições sistemáticas, discretizadas como em Milano e Nolfi (2021)


e conforme descrito na subseção 4.2.1, em verde as condições geradas aleatoriamente e em
vermelho as condições históricas. E baseado nesse comparativo foi escolhida a rede
classificadora que utilizou a configuração de treinamento com condições passadas (linha
vermelha) das últimas 50 gerações. Seguindo o princípio da Navalha de Occam, se for preciso
escolher entre diversas formas de treinamento que atingem desempenho similar, deve­se utilizar
aqueles menos custosos. Assim o fizemos, e optamos pela rede treinada com a configuração
baseada nas 50 gerações passadas para fazer a integração.

5.2. RESULTADOS COM O CURRÍCULO INTEGRADO

Nessa seção foram reportados os resultados obtidos com o treinamento ocorrendo com
o método de aprendizado curricular proposto em comparação ao treinamento sem currículo.
Como o número de episódios foi definido em 50, cada episódio possui um conjunto de seis
condições iniciais classificado como difícil ou fácil. Assim sendo, no currículo a proporção
utilizada variou, por exemplo, 10 difíceis (20%) e 40 fáceis (80%). Foram testadas as diferentes
proporções descritas na Tabela 3.

Tabela 3 ­ Currículos propostos e as proporções de condições utilizadas.

Identificador Proporção de tarefas difíceis Proporção de tarefas fáceis

d00:f10 0% 100%

d02:f08 20% 80%

d04:f06 40% 60%

d06:f04 60% 40%

d08:f02 80% 20%

d10:f00 100% 0%
Fonte: Elaborado pelo autor.
39

A Figura 10, traz o desempenho do agente evolutivo sendo treinado com o método
curricular (linha vermelha) aqui proposto em relação ao algoritmo padrão (linha azul). Sendo
exposto aos seis currículos descritos na Tabela 3, o primeiro gráfico da coluna da esquerda é o
d00:f10, o primeiro da coluna da direita é o currículo d02:f08 e assim sucessivamente até o
último gráfico da coluna da direita ser o referente ao currículo d10:00.

Figura 10 ­ Média da aptidão de cinco agentes treinados com cada configuração currículo em relação ao
algoritmo padrão (OpenAI­ES).

Fonte: Elaborado pelo autor.

Percebe­se o impacto do treinamento com o currículo, e como a dificuldade das


condições alteram a performance do agente em treinamento. O fato de a simulação ter o número
de gerações diferentes faz com que em alguns casos o método proposto (linha vermelha) tenha
menos gerações em relação ao algoritmo padrão (linha azul), como nota­se no caso do currículo
40

d00f10, na Figura 10 é o primeiro gráfico à esquerda . Em outros casos o inverso sucede, e isso
deve­se ao fato de que a cada episódio tem até 1000 passos. Assim a pontuação máxima é de
1000 pontos por episódio, e em condições fáceis essa pontuação é atingida com maior
frequência. O critério de parada do algoritmo evolutivo é um número máximo de passos, e
dependendo do currículo esse critério é atingido antes ou depois. Isso não implica em um tempo
maior de simulação, apenas no número total de gerações.
Faz­se necessário após o treinamento do agente evolutivo avaliá­lo novamente em um
conjunto de teste, ou seja, testar a performance real do agente em um conjunto tarefas aleatórias
a fim de analisar a média da aptidão obtida após o treinamento baseado nos currículos. Assim
como na pesquisa de referência, utilizou­se um conjunto de testes de 1000 condições aleatórias.
E assim foram testados os melhores agentes de cada currículo, conforme mostra abaixo a Figura
11. Nota­se pontos discrepantes em dois currículos, o d02:f08 e o d06:f04, da esquerda para a
direita, a terceira caixa e a quinta caixa respectivamente. O currículo d02:f08 tem a maior
concentração de resultados com a performance próxima de 760 pontos, no entanto um ponto
discrepante em 770 e outro inferior abaixo de 740 pontos.

Figura 11 ­ Comparativo entre o algoritmo padrão e as configurações de currículo utilizadas no método


de aprendizado curricular proposto.

Fonte: Elaborado pelo autor.


41

No currículo d06:f08, o ponto discrepante da parte superior indica que em distribuição


não uniforme, um ou alguns resultados chegaram a 800 pontos de fitness no currículo d06:f08,
o traço inferior indica o começo do primeiro quartil e o início da caixa o fim do primeiro quartil.
Entre o começo da caixa e a mediana (linha amarela) o segundo quartil. Na estatística descritiva,
um quartil é qualquer um dos três valores que divide o conjunto ordenado de dados em quatro
partes iguais, e assim cada parte representa 25% da amostra.
Em relação à Figura 4, nota­se uma melhora na performance do algoritmo padrão e isso
provavelmente seja por causa da mudança no número de episódios em relação aos dois casos.
O aumento do número de episódios, elevou também a performance e por isso faz­se aqui um
comparativo relativo. Como suposto inicialmente, currículos difíceis com algumas condições
fáceis tendem a trazer melhores resultados, são necessárias algumas condições fáceis a fim de
não permitir o esquecimento de alguns comportamentos por parte do agente. Claramente, o
melhor currículo é o com a proporção de 80% difíceis e 20% fáceis ou como descrito na legenda
(d08:f02) na Figura 12.

Figura 12 ­ Média da aptidão de dez agentes treinados com algoritmo padrão versus currículo(d08:f02).

Fonte: Elaborado pelo autor

No caso reportado pelos autores Milano & Nolfi 2021, há um aumento relativo com
melhor currículo, ou seja, o currículo com função de seleção utilizando a base cúbica foi de
13% em relação ao algoritmo padrão. No caso deste trabalho, como mostra a Figura 12, o
aumento do desempenho foi de 4% com o melhor currículo(d08:f02) em relação ao algoritmo
42

padrão. Consideramos aqui a mediana para calcular a diferença relativa. Desta maneira
comprovou­se que a classificação e ordenação automática dos episódios de forma a gerar
currículos auxilia no aprendizado do agente evolutivo.
43

6. CONSIDERAÇÕES FINAIS

Este trabalho apresentou uma abordagem para tentar prever quais ambientes são mais
adequados para a composição de um currículo utilizando uma rede neural classificadora. Foram
detalhadas as diversas etapas desta metodologia, e apresentados os resultados do melhor cenário
de treinamento da rede classificadora dentre os cenários propostos: com dados históricos,
aleatórios e sistematizados. Por fim, foi integrada a rede classificadora ao processo de
treinamento no simulador Evorobotpy2 e reportados os resultados.
Conforme suposto inicialmente, nem todas as configurações de currículos propostos
melhoraram a performance do treinamento dos agentes evolutivos no problema de
balanceamento de postes duplos. No entanto, o modelo utilizado classifica de forma binária e
isso impossibilita a replicação de algumas etapas feitas na pesquisa de referência, como a função
de dificuldade para seleção das tarefas. Fez­se então uma comparação relativa dos resultados,
o método automático aqui proposto é capaz de escalar para problemas com maior
complexidade, ou seja, com mais variáveis ambientais ou do agente evolutivo sujeitas a
variação. Isso, sem aumentar exponencialmente o tempo de geração dos currículos como é no
caso da geração manual proposta na pesquisa de referência. Os resultados da aptidão com o
melhor currículo em relação ao algoritmo padrão (OpenAI­ES) mostram que há um ligeiro
aumento na performance do agente evolutivo. Assim, traz mais uma evidência de que o método
automático de geração de currículo em tempo de execução é promissor e requer mais pesquisas.
Da mesma forma que na pesquisa de referência, a configuração de currículo que trouxe
melhor desempenho foi um currículo predominantemente difícil e com algumas condições
fáceis. Pode­se dizer que houve uma melhora no processo de treinamento da rede
neuroevolutiva e a confirmação dos indícios e evidências existentes nos artigos mais recentes.

6.1 TRABALHOS FUTUROS

Existem diversos modelos e técnicas diferentes que talvez utilizassem melhor as


condições iniciais na elaboração do currículo, mas não seria viável explorá­los exaustivamente
neste trabalho. Uma possível melhoria seria a utilização de uma réplica do simulador que
emulasse o mesmo processo evolutivo com dados históricos salvos, permitindo assim o
refinamento dos modelos possíveis de forma mais rápida, para após o refinamento utilizar o
Evorobotpy2 com o melhor modelo já integrado e gerando o currículo no treinamento. Assim
facilitaria muito a validação do modelo utilizado para qualificação das tarefas. Além disso, ao
encontrar um currículo promissor faz­se necessário a aplicação da mesma técnica de geração
44

de currículo e treinamento em outro problema que também exija lidar com condições ambientais
significativamente variantes.
De qualquer forma, o trabalho suscitou uma experiência muito significativa em machine
learning, mais especificamente em curriculum learning e robótica evolutiva. Evidentemente,
sempre há pontos passíveis de melhoria em qualquer trabalho. Deixamos aqui algumas
sugestões de melhorias e de trabalhos futuros.
Sugestões de Melhorias:
● Explorar outros modelos para a tarefa de predição de desempenho;
● Utilizar processamento em nuvem, o que possibilitaria utilizar máquinas poderosas e
tornar muito mais rápidas as pesquisas por combinações ótimas de hiperparâmetros;
● Executar o tuning exaustivo dos modelos em busca de uma melhor configuração de
hiperparâmetros;
● Testar diferentes proporções de currículo, de forma dinâmica, durante o treinamento do
agente evolutivo. Começar com todas condições fáceis, fazer alterações ao longo do
processo, até que ao final, o currículo seja inteiramente de condições classificadas como
difíceis;
● Utilizar um modelo regressor e então aplicar funções de dificuldade quadrática e cúbica;
● Ao invés de decidir quais condições são fáceis e difíceis através de um valor arbitrário,
coletar ao longo do treinamento as condições atuais e ordená­las da mais fácil para a
mais difícil. E utilizar da mediana como limiar para separação entre fáceis e difíceis;
45

7. REFERÊNCIAS

ANDRADE. Lívia. Redes neurais artificiais aplicadas na identificação automática de


áreas cafeeiras em imagens de satélite. Dissertação (Mestre em Ciência da Computação) ­
Departamento de Ciência da Computação do Instituto de Ciências Exatas da Universidade
Federal de Minas Gerais. 2011.

BENGIO, Yoshua et al. Curriculum learning. In: Proceedings of the 26th annual international
conference on machine learning. 2009. p. 41­48.

CARVALHO, Jônata Tyska. Adaptive Behaviour in Evolving Robots. 2017. Tese de


Doutorado. University of Plymouth.

DARWIN, Charles. The descent of man. New York: D. Appleton, 1871.

DONCIEUX, Stephane et al. Evolutionary robotics: what, why, and where to. Frontiers in
Robotics and AI, v. 2, p. 4, 2015.

FLOREANO, Dario; HUSBANDS, Phil; NOLFI, Stefano. Evolutionary robotics. Springer


Verlag, 2008.

GABRIEL, Paulo Henrique Ribeiro; DELBEM, Alexandre Cláudio Botazzo. Fundamentos de


algoritmos evolutivos. 2008.

GERS, Felix A.; SCHMIDHUBER, E. LSTM recurrent networks learn simple context­free
and context­sensitive languages. IEEE transactions on neural networks, v. 12, n. 6, p. 1333­
1340, 2001.

HEYER, Clint. Human­robot interaction and future industrial robotics applications. In:
2010 IEEE/RSJ International Conference on Intelligent Robots and Systems. IEEE, 2010. p.
4749­4754.
46

LEMAÎTRE, Guillaume; NOGUEIRA, Fernando; ARIDAS, Christos K. Imbalanced­learn:


A python toolbox to tackle the curse of imbalanced datasets in machine learning. The
Journal of Machine Learning Research, v. 18, n. 1, p. 559­563, 2017.

KINGMA, Diederik P.; BA, Jimmy. Adam: A method for stochastic optimization. arXiv
preprint arXiv:1412.6980, 2014.

LEHMAN, Joel; MIIKKULAINEN, Risto. Neuroevolution. Scholarpedia, v. 8, n. 6, p. 30977,


2013.

LIMA, G. C. Pesquisa e Desenvolvimento de um Método de Aprendizagem de Máquina


com Aprendizado Incremental. Monografia (Bacharel em Engenharia de Software).
Universidade de Brasília. 2014.

MILANO, Nicola; NOLFI, Stefano. Automated curriculum learning for embodied agents a
neuroevolutionary approach. Scientific reports, v. 11, n. 1, p. 1­14, 2021.

MITCHELL, Tom. Machine learning. 1997.

MORAD, Steven D. et al. Embodied visual navigation with automatic curriculum learning
in real environments. IEEE Robotics and Automation Letters, v. 6, n. 2, p. 683­690, 2021.

NARVEKAR, Sanmit et al. Curriculum learning for reinforcement learning domains: A


framework and survey. arXiv preprint arXiv:2003.04960, 2020.

NOLFI, Stefano. Behavioral and cognitive robotics: an adaptive perspective. Stefano Nolfi,
2021.

OPENAI, I. Akkaya et al. Solving rubik’s cube with a robot hand. arXiv preprint
arXiv:1910.07113, v. 10, 2019.

PAGLIUCA, Paolo; MILANO, Nicola; NOLFI, Stefano. Maximizing adaptive power in


neuroevolution. PloS one, v. 13, n. 7, p. e0198788, 2018.
47

PEDREGOSA, Fabian et al. Scikit­learn: Machine learning in Python. the Journal of


machine Learning research, v. 12, p. 2825­2830, 2011.

PETERSON, Gail B. A day of great illumination: BF Skinner's discovery of shaping.


Journal of the experimental analysis of behavior, v. 82, n. 3, p. 317­328, 2004.

RECHENBERG, Ingo. Evolutionsstrategien. In: Simulationsmethoden in der Medizin und


Biologie. Springer, Berlin, Heidelberg, 1978. p. 83­114

ROMANO, Vitor Ferreira (Ed.). Robótica industrial: aplicação na indústria de manufatura


e de processos. Edgard Blucher, 2002.

RUMELHART, David E. et al. Parallel distributed processing. New York: IEEE, 1988.
SKINNER, Burrhus F. Reinforcement today. American Psychologist, v. 13, n. 3, p. 94, 1958.

SUNG, JaYoung; GRINTER, Rebecca E.; CHRISTENSEN, Henrik I. Domestic robot


ecology. International Journal of Social Robotics, v. 2, n. 4, p. 417­429, 2010.
WALLACE, Alfred Russel. Tropical nature, and other essays. Macmillan and Company,
1878.

WEINSHALL, Daphna; COHEN, Gad; AMIR, Dan. Curriculum learning by transfer


learning: Theory and experiments with deep networks. In: International Conference on
Machine Learning. PMLR, 2018. p. 5238­5246.

WIELAND, Alexis P. Evolving controls for unstable systems. In: Connectionist Models.
Morgan Kaufmann, 1991. p. 91­102.

WOLF, Denis Fernando et al. Robótica móvel inteligente: Da simulação às aplicações no


mundo real. In: Mini­Curso: Jornada de Atualização em Informática (JAI), Congresso da SBC.
sn, 2009. p. 13.

WU, Ji et al. Master clinical medical knowledge at certificated­doctor­level with deep


learning model. Nature communications, v. 9, n. 1, p. 1­7, 2018.
48

APÊNDICES
49

APÊNDICE A ­ Métricas de Avaliação em


Aprendizado de Máquina
VP = verdadeiro positivo
VN = verdadeiro negativo
FP = falso positivo
FN = falso negativo

● Acurácia: Taxa de acertos entre todos os dados. (𝑣𝑝 + 𝑣𝑛)/𝑛;


● Precisão: Taxa de positivos entre todos os considerados positivos, 𝑣𝑝/(𝑣𝑝 + 𝑓𝑝);
● Revocação: Taxa de positivos entre os realmente positivos, 𝑣𝑝/(𝑣𝑝 + 𝑓𝑛);
● F1­score: (2 ∗ 𝑝𝑟𝑒𝑐𝑖𝑠ã𝑜 ∗ 𝑟𝑒𝑣𝑜𝑐𝑎çã𝑜)/(𝑝𝑟𝑒𝑐𝑖𝑠ã𝑜 + 𝑟𝑒𝑣𝑜𝑐𝑎çã𝑜);
● F­beta:((1 + 𝜷²) ∗ 𝑝𝑟𝑒𝑐𝑖𝑠ã𝑜 ∗ 𝑟𝑒𝑣𝑜𝑐𝑎çã𝑜)/(𝜷² ∗ 𝑝𝑟𝑒𝑐𝑖𝑠ã𝑜) + 𝑟𝑒𝑣𝑜𝑐𝑎çã𝑜)

A acurácia é uma métrica que geralmente descreve o desempenho do modelo em todas


as classes e se faz útil quando todas as classes são de igual importância. É calculado pela razão
entre o número de previsões corretas e o número total de previsões. Observe que a precisão
pode ser enganosa caso os dados estejam desbalanceados.
Já a precisão é calculada através da razão entre o número de amostras positivas
classificadas corretamente e o número total de amostras classificadas como positivas (correta
ou incorretamente), e mede a exatidão do modelo em classificar uma amostra como positiva.
Logo, quanto maior a precisão menor o número de falsos positivos.
A Revocação é calculada pela divisão entre o número de amostras Positivas
corretamente classificadas como positivas e o número total de amostras Positivas. O recall mede
a capacidade do modelo de detectar amostras positivas. Quanto maior o recall, mais amostras
positivas foram detectadas.
F1­score, média harmônica Precisão e Revocação, quanto maior forem melhor
balanceados estão. A medida F­beta­score é uma generalização da medida F1­score que
adiciona um parâmetro de configuração chamado beta. Um valor beta padrão é 1,0, que é o
mesmo que a medida F1­score. Um valor beta menor, como 0,5, dá mais peso à precisão e
menos ao recall, enquanto um valor beta maior, como 2,0, dá menos peso à precisão e mais
peso ao recall no cálculo da pontuação. É uma métrica útil para usar quando a precisão e o recall
50

são importantes, mas é necessário um pouco mais de atenção em um ou outro, como quando os
falsos negativos são mais importantes do que os falsos positivos, ou o inverso, e também quando
há desbalanceamento nas classes.
51

APÊNDICE B – O Artigo
Aprendizado Baseado em Currículo Aplicado à Robótica
Adaptativa
Rodolfo Dartora da Silva1
1
Departamento de Informática e Estatísticas - Universidade Federal de Santa Catarina
(UFSC)
Florianópolis - SC - Brasil
rodolfo.ds@grad.ufsc.br

Abstract. This article explores neuroevolutionary training methods associated


with curriculum-based learning, in order to train robotic agents more
efficiently, since according to recent research, the curriculum, that is, the
learning trajectory or ordering of the set of tasks, is directly related to the
speed and efficiency of learning. An auxiliary artificial neural network is used
here to estimate the difficulty and order the tasks used in the training of the
neuroevolutionary network. The proposed automated curriculum generation
method extends scalability to more complex tasks and with results that surpass
conventional learning methods.

Resumo. Este trabalho explora métodos neuroevolutivos de treinamento


associados ao aprendizado baseado em currículo, com o intuito de treinar
agentes robóticos de forma mais eficiente, já que segundo pesquisas recentes,
o currículo, isto é, a trajetória do aprendizado ou ordenação do conjunto de
tarefas, está diretamente relacionado com a velocidade e eficiência do
aprendizado. Utiliza-se aqui uma RNA classificadora auxiliar para estimar a
dificuldade e ordenar as tarefas utilizadas no treinamento da rede
neuroevolutiva. O método automatizado de geração de currículo proposto
amplia a escalabilidade para tarefas mais complexas e com resultados que
superam os métodos convencionais de aprendizado.

1. Introdução
Inteligência Artificial (IA) é uma área abrangente com uma grande diversidade de
técnicas aplicadas a inúmeros problemas, no entanto problemas que exigem agentes
autônomos com capacidade adaptativa são desafiadores para a IA (DONCIEUX et al.,
2015). Considerando que a geração de agentes autônomos é fundamental para o avanço
das pesquisas, para o desenvolvimento e para a inovação em áreas promissoras como a
Robótica Adaptativa, torna-se necessário o estudo, a criação e o aprimoramento de
métodos de IA capazes de gerar tais soluções. Aplica-se comumente métodos de
Aprendizado de Máquina (AM) na geração de comportamento adaptativo, de acordo
com Mitchell (1997), máquinas dotadas da capacidade de aprendizado devem treinar
sobre determinado conjunto de amostras e adquirir conhecimento de forma automática.
As Redes Neurais Artificiais (RNAs) são amplamente utilizadas em AM e são modelos
matemáticos inspirados no funcionamento de um cérebro biológico. São aplicadas na
solução de problemas de regressão e classificação, isto é, predição de valores contínuos
e discretos, respectivamente, com base em dados de entrada (RUMELHART et al.,
1988). Um conhecido conjunto de métodos usados para construir redes neurais são os
Algoritmos Evolutivos (AEs).
Tais métodos baseiam-se na teoria da evolução, que combina ideias inspiradas na
genética (DARWIN, 1871) e seleção natural (WALLACE, 1878). Uma espécie de
seleção natural computacional que seleciona o mais adequado agente ou solução para
então reproduzi-los nas próximas gerações. A Robótica Evolutiva utiliza-se da
combinação de AEs com RNAs é chamada de Neuroevolução (LEHMAN;
MIIKKULAINEN, 2013), trata-se da construção de uma rede neural através de AEs,
especificamente por meio do ajuste iterativo dos pesos da rede usando uma função
objetivo, ou função de fitness. No processo de treinamento dos agentes robóticos usando
redes neurais, para ajustar os pesos da rede é necessário avaliar o comportamento do
agente em diferentes condições ambientais. Para isso se faz necessária a geração de
diversas condições iniciais, do robô e objetos envolvidos na tarefa em questão, que
serão utilizadas para avaliar o robô a cada geração. Tais condições são normalmente
geradas de forma aleatória, porém existem pesquisas explorando formas específicas de
gerar esse conjunto de condições de forma a tornar o processo evolutivo mais efetivo.

1.1 Motivação
Currículos são os conjuntos ordenados de tarefas cuja função é guiar o processo do
aprendizado. Este trabalho busca investigar métodos evolutivos de treinamento robótico
associados ao aprendizado baseado em currículo, com o intuito de encontrar formas de
treinar agentes robóticos de forma mais eficiente. Há evidências na literatura de que ao
aplicar técnicas de treinamento com essas características os resultados têm demonstrado
que as condições ambientais encontradas pelos agentes evolutivos afetam o curso do
processo evolutivo (MILANO; NOLFI, 2021).

2. Contextualização

2.1 Problema Selecionado


O problema selecionado para a investigação proposta neste trabalho chama-se
balanceamento de postes duplo. Este problema foi apresentado na década de 90
(WIELAND, 1991), e consiste em controlar um carrinho móvel, com dois postes de
comprimento e massas diferentes fixados através de dobradiças passivas na parte
superior do carrinho. O objetivo do agente é controlar o carrinho de forma a equilibrar
os postes por um tempo determinado. As posições e velocidades iniciais de cada
tentativa, ou episódio, variam e são definidas como as condições iniciais do problema.
Quando as posições do carrinho e dos postes extrapolam um determinado limite
aceitável, considera-se que o agente falhou em equilibrá-los e para-se o episódio. Além
ser intuitivo e de fácil entendimento, exige um baixo custo computacional. Este trabalho
escolheu utilizar a variação (PAGLIUCA; MILANO; NOLFI, 2018) do problema
clássico de balanceamento de postes duplo não-markoviano (Figura 1). Nesta versão
não-markoviana o agente possui acesso apenas aos dados dos sensores de posição, e não
de velocidade. A escolha desta tarefa se deu em função da pesquisa de referência
(MILANO; NOLFI, 2021) utilizada neste trabalho que baseia-se no mesmo problema.
Figura 1. O Problema de balanceamento de postes.

Fonte: PAGLIUCA; MILANO; NOLFI (2018)

O carrinho tem uma massa de 1 kg. O Poste longo (l1) e o Poste curto (l2) têm massa de
0,5 e 0,25 kg e comprimento de 1,0 e 0,5 m, respectivamente. O agente possui três
sensores, que codificam a posição ( ) atual do carrinho na pista e o ângulo atual dos
dois postes (θ1 e θ2) e um motor. O estado de ativação do motor é normalizado na faixa
[− 10,0, 10,0] Newton e é usado para definir a força aplicada ao carrinho. As condições
ambientais que estão sujeitas a variação, no caso deste problema, são a posição [­1.944
< x < 1.944] e velocidade [­1.215 < x < 1.215] inicial do carrinho. A posição angular
inicial do poste 1 [­0.0472 < θ1 < 0.0472] e do poste 2 [­0.10472 < θ2 < 0.10472] e suas
velocidades angulares estão compreendidas na faixa[­0.135088, 0135088].

2.2 Visão Geral da Pesquisa de Referência


Corforme apresentado na Introdução, Neuroevolução consiste na utilização de AEs para
construção de RNAs e é comumente utilizada na Robótica Evolutiva (RE), ancora-se no
paradigma evolucionário e é um subcampo que visa criar robôs mais robustos e
adaptáveis (DONCIEUX et al., 2015). A Figura 2, apresenta um sistema clássico de RE,
que conta com um algoritmo evolutivo (esquerda), e um agente evolutivo, que aqui é o
robô, e pode ser real ou simulado (direita). O processo segue o modelo genérico de
algoritmo evolutivo e para avaliações de aptidão (fitness) o robô é invocado, ou seja, o
robô é instanciado e exposto à interação com o ambiente por um período determinado
(episódio) em que o controlador/política nesse contexto é o cérebro e manipula o
robô/carrinho que é o corpo. A cada geração cria-se alguns indivíduos com pequenas
variações do melhor indivíduo e aplicam-se esses valores no controle do robô pelo
número de episódios pré-determinados. Esses episódios são repetidos sucessivamente
até o robô atingir a aptidão necessária para a tarefa ou atingir o número máximo de
episódios, podem ainda encerrar de forma prematura caso os postes caiam ou
ultrapassem o limite no trilho. O robô neste caso é o carrinho à direita na Figura 2, e de
acordo com as condições iniciais do carrinho e dos postes, movimenta-se para a direita
ou esquerda com o intuito de manter equilibrados os postes.
O processo evolutivo avalia as soluções candidatas, ou seja, avalia qual das
características dos agentes evolutivos serão perpetuadas na próxima geração, a RNA
que faz o controle do agente de acordo com os dados dos sensores, posições do carrinho
e dos postes, considerando a interação do agente com o ambiente, e calculando o valor
de aptidão (fitness) do robô correspondente como saída. A cada geração é feita uma
média dos valores de aptidão dos agentes em cada geração e o valor médio de fitness é
utilizado na seleção e variação dos agentes candidatos.

Figura 2. Exemplo de sistema clássico de Robótica Evolutiva

Fonte: Adaptado de Doncieux et al.(2020).

Em Milano e Nolfi (2021) o currículo foi elaborado de forma manual, isto é, durante o
processo evolutivo, as condições ambientais são determinadas usando 5 valores
distribuídos de maneira uniforme dentro dos intervalos apresentados acima na subseção
2.1. E as condições ambientais experimentadas durante os episódios de avaliação são
geradas aleatoriamente entre todas as condições ambientais possíveis durante os
primeiros 10% do processo evolutivo, ou seja, do máximo de passos definido no
algoritmo evolutivo. Em seguida, elas são escolhidas entre os subconjuntos criados a
partir de diferentes níveis de dificuldade.
O total de condições iniciais foram discretizadas em 5 valores para viabilizar o processo
manual de currículo durante o treinamento e assim o total de condições iniciais
possíveis é uma amostra de 15.625(5⁶) Para a análise dos agentes foram consideradas
todas as condições ambientais possíveis que podem ser geradas pela combinação de 3
valores para as 6 condições sujeitas a variação: a posição inicial (e.g. [-1.944, 0, 1.944]);
a velocidade do carrinho; as posições angulares iniciais dos postes; e a velocidade
angular dos postes. Consequentemente, o número de diferentes condições ambientais
em que os agentes são pós-avaliados é 729(3^6) e com o aprendizado de currículo
estendendo o algoritmo evolutivo mostra que o novo processo de geração de tarefas
iguala ou supera o algoritmo convencional.
A função utilizada para categorizar as condições em diferentes níveis de dificuldade é
chamada de Função de dificuldade. A Figura 3 ilustra os intervalos obtidos usando uma
função de dificuldade de potência linear e quadrática. Os eixos horizontais representam
o desempenho normalizado no intervalo [0,0, 1,0], ou seja, a aptidão obtida pelos
últimos 5 agentes normalizados no intervalo [0,0, 1,0].
A utilização da função de dificuldade linear (Figura 3, linha azul) não altera o nível
geral de dificuldade das condições ambientais experimentadas pelos agentes, porém ela
expõe os agentes a condições ambientais com níveis de dificuldade semelhantes. Esse
fato evidencia que o aprendizado curricular supera o algoritmo evolutivo convencional
em que as condições ambientais são selecionadas aleatoriamente dentro de todas as
condições possíveis. No entanto, ao substituir a função de dificuldade linear (linha azul)
por uma função de potência (linha vermelha) conforme mostra a Figura 3, aumenta
assim a intensidade da seleção preferencial de condições difíceis.

Figura 3. Intervalos de dificuldade de função de dificuldade de potência linear e


quadrática.

Fonte: MILANO; NOLFI(2021).


2.3 Fitness e Avaliação
A maioria das pesquisas de robótica evolutiva, influenciadas pela visão da evolução
como um algoritmo de otimização, baseia-se em funções de aptidão (fitness), ou seja,
em medidas quantificáveis para conduzir o processo de busca de uma solução. Nesta
abordagem, a medida de aptidão escolhida deve aumentar gradativamente desde as
primeiras soluções consideradas em direção à solução esperada. As funções de aptidão
típicas dependem de critérios de desempenho e assumem implicitamente que o aumento
deste conduzirá a busca na direção dos comportamentos desejados.
As interações com o ambiente são feitas sucessivamente até alcançar um determinado
valor de aptidão ou até que um número total máximo de avaliações seja realizado. Cada
episódio tem uma duração máxima, 1000 passos (steps), e o episódio acaba
prematuramente caso algum poste caia, isto é, exceda o intervalo de [− π/5, π/5] rad, ou
o carrinho passe de um limite do trilho [-2.4m, 2.4m]. A cada passo de simulação o
agente ganha um ponto, sendo assim a pontuação (fitness) máxima é 1000.

3. Trabalhos Correlatos
Tabela 1. Comparativo entre artigos correlatos.

Artigo Simulador Robô Classe de Geração do Condições


Algoritmo currículo pré-
avaliadas
Aprimorando a sim simulação algoritmo ordenação sim de
Neuroevolução apenas evolutivo crescente de forma
com dificuldade sistemática
Aprendizado manual
Curricular
(MILANO;
NOLFI, 2021)
Currículo não não aprendizado aprendizado Não
learning para por reforço por
Domínios de transferência
Aprendizagem
por Reforço
(NARKEVAR
et al., 2020)
Navegação sim robô aprendizado metodologia não
Visual terrestre e por reforço NavACL
Incorporada um drone profundo
com quadrotor
Aprendizagem
Curricular
Automática em
Ambientes
Reais (MORAD
et al., 2021)
Resolvendo o sim mão aprendizado randomização não
cubo de rubik robótica por reforço automática de
com uma mão similar à domínio
robótica humana
(OPENAI et al.,
2019)
Aprendizado sim simulação algoritmo ordenação sim com
baseado em apenas evolutivo crescente de predição
currículo dificuldade
aplicado à automática
robótica
adaptativa (esta
proposta)

4. Proposta
4.1. A Rede Preditora de Desempenho
Para a construção da rede preditora de desempenho utilizou-se a scikit-learn (sklearn)
(PEDREGOSA et al., 2011), Sklearn é uma biblioteca de aprendizado de máquina de
código aberto para a linguagem de programação Python. Ela inclui vários algoritmos de
classificação, regressão e agrupamento e é projetada para interagir com as bibliotecas
Python numéricas e científicas como NumPy e SciPy.
O problema utilizado no experimento conta com seis condições iniciais variáveis, logo a
camada de entrada da RNA possui seis neurônios. , a função de ativação das camadas
ocultas é uma função ReLU(do inglês, rectified linear unit) e o solucionador para
otimização de pesos é o otimizador estocástico de Adam (KINGMA et al., 2014).
Porém, inicialmente utilizou-se outras configurações para a rede classificadora, no
entanto os resultados foram insatisfatórios e em busca da otimização da rede aumentou-
se o número de neurônios e retirou-se uma camada oculta. Também foi alterada a
função de ativação e o otimizador de pesos. Assim de forma empírica foi sendo testada
e refinada de acordo com os melhores resultados de classificação obtidos que resultaram
na configuração definitiva da arquitetura proposta.
O primeiro componente à esquerda da Figura 4, são as condições iniciais e a cada
iteração um conjunto é criado de forma aleatória e usado como input na camada de
entrada da rede classificadora, que classifica as condições rotulando-as em boas ou
ruins. Condições em que o agente consegue balancear os bastões por mais da metade da
duração do episódio, obtendo 500 pontos ou mais, são rotuladas como fáceis e as
demais como difíceis. Em outras palavras, nas condições fáceis o agente passa da
metade do episódio e nas difíceis acabam os episódios prematuramente com a falha do
agente. No passo 3 da Figura 4, são então ordenadas por nível de dificuldade e
selecionadas nas devidas proporções para a formação do currículo, formando assim o
currículo à direita da Figura.
Figura 4. Esquema de Classificação e Ordenação de Tarefas

4.1.2 Cenários de Treinamento


Existem diversos possíveis modos de treinar a rede preditora de desempenho. De
forma a encontrar uma maneira efetiva de construir tal rede foram exploradas três
alternativas de cenários:
• Condições Passadas;
• Condições Geradas no momento;
• Condições Sistemáticas.
Os cenários com condições passadas e geradas no momento contam com quatro
experimentos de treinamento cada, mais o cenário de condições sistemáticas com um
experimento, assim totalizando nove experimentos.
A primeira simplesmente usa dados passados encontrados pelo agente. A
segunda gera novos dados no momento do treinamento da rede, isto é, reavaliando o
agente em inúmeras condições iniciais aleatórias exclusivamente para a obtenção de
dados. E a terceira, gerando novos dados, porém com uma avaliação sistemática
semelhante ao que foi realizado no trabalho de Nolfi e Milano (2021). O terceiro
cenário é usado como uma forma de condição controle para verificar a capacidade de
aprendizado da rede, uma vez que neste cenário realiza-se a mesma avaliação
sistemática que busca-se substituir com a rede neural.
Primeiramente, o número η de tentativas por geração aqui utilizado é de 50
episódios para todos os casos. Cada tentativa é de até 1000 passos, conforme elucidado
anteriormente na seção 2.3. E a rede classificadora é treinada pela primeira vez após a
geração 700, valor determinado empiricamente com diversos experimentos, tendo em
vista que é necessário um conjunto mínimo de experiências para que o agente
desenvolva minimamente determinadas características, pois no início do treinamento,
em função da população gerada aleatoriamente, todas as condições iniciais são difíceis.
Dado esse momento, treinou-se a rede classificadora com os dados das últimas 10, 50,
100 e 200, gerações respectivamente. Como cada geração tem 50 episódios (tentativas)
o tamanho de cada conjunto de treinamento é calculado com a multiplicação da
quantidade de gerações passadas utilizadas pelo número de episódios (e.g. 10*50).
Assim sendo, cada episódio gera um conjunto de seis condições iniciais e uma
performance (rótulo), no caso da primeira configuração de treinamento tem-se um
conjunto de 500 ambientes rotulados utilizados no treinamento da rede classificadora.
Além de usar dados históricos, utilizou-se lotes com mesmo número de gerações (10,
50, 100 e 200) porém com dados criados randomicamente para avaliar os resultados em
comparação aos treinamentos similares feitos com dados históricos, espera-se uma sutil
melhora em relação aos treinamentos executados com dados históricos.
O terceiro e último cenário de treinamento da rede foi utilizar as 729 condições geradas
a partir da combinação de três valores, tal qual Milano e Nolfi (2021) o fizeram na
pesquisa de referência. Totalizando assim 3 cenários com 9 maneiras distintas de
treinamento da rede classificadora.
No momento do primeiro treinamento da rede classificadora, os dados criados de forma
aleatória, tem uma concentração duas vezes maior para a classe classificada como
positiva (True), ou seja, que tem uma fitness predita acima de 500 pontos. O problema
com este aspecto dos dados é que, se nenhuma providência for tomada, o modelo
classifica os novos dados como sendo da classe que possui mais exemplos (classe
predominante). Em outras palavras, os parâmetros do algoritmo não farão distinção
entre as classes, levando-o a acreditar que, ao classificar todas as novas amostras como
sendo da classe majoritária, está fazendo um bom trabalho. Ao analisar os dados temos
um forte indício de que o modelo está classificando todas as condições como fáceis.
Logo, é necessário tomar medidas no sentido de balancear as classes para que esta
situação não ocorra. Há dois principais métodos para o balanceamento de classes:
undersampling e oversampling, e neste caso utilizou-se a biblioteca Imbalanced Learn
(LEMAÎTRE; NOGUEIRA; ARIDAS, 2017) para fazer o undersampling. Ou seja,
eliminou-se os dados da classe majoritária até que o total remanescente fosse igual a
quantidade de dados da classe minoritária.
Outro ponto fundamental é testar a eficiência do treinamento com um conjunto de dados
distinto do utilizado no treinamento para evitar assim o overfitting, ou seja, que a rede
seja muito boa em predizer as condições que já conhece, mas com baixa capacidade de
generalização. Assim sendo, definiu-se um conjunto de teste de 1000 condições iniciais
de forma aleatória para teste de todos os cenários supracitados.

5. Resultados e Discussão
Na Figura 5 abaixo, apresentamos o resultado de melhor desempenho da rede
classificadora em cada um dos três cenários propostos dentre as nove formas de
treinamento, com condições passadas, condições geradas no momento de retreino e
condições sistemáticas, respectivamente. Os resultados gráficos são baseados em uma
média obtida nas sementes, ou seja, ponto de partida para a geração pseudo-aleatória de
números, que permite tornar os experimentos replicáveis. Utilizou-se cinco sementes
(repetições) diferentes a fim de ter resultados confiáveis, pois a estocasticidade do
processo pode trazer um bom resultado por acaso.
Figura 5. Acurácia da melhor rede classificadora de cada cenário

Em azul temos as condições sistemáticas, discretizadas como em Milano e Nolfi (2021)


e conforme descrito na subseção 4.1.2, em verde as condições geradas aleatoriamente e
em vermelho as condições históricas. E baseado nesse comparativo foi escolhida a rede
classificadora que utilizou a configuração de treinamento com condições passadas (linha
vermelha) das últimas 50 gerações. Seguindo o princípio da Navalha de Occam, se for
preciso escolher entre diversas formas de treinamento que atingem desempenho similar,
deve-se utilizar aqueles menos custosos. Assim o fizemos, e optamos pela rede treinada
com a configuração baseada nas 50 gerações passadas para fazer a integração.

5.2. RESULTADOS COM O CURRÍCULO INTEGRADO


Nessa seção foram reportados os resultados obtidos com o treinamento ocorrendo com o
método de aprendizado curricular proposto em comparação ao treinamento sem
currículo. Como o número de episódios foi definido em 50, cada episódio possui um
conjunto de seis condições iniciais classificado como difícil ou fácil. Assim sendo, no
currículo a proporção utilizada variou, por exemplo, 10 difíceis (20%) e 40 fáceis
(80%). Foram testadas as diferentes proporções descritas na Tabela 2.

Tabela 2 ­ Currículos propostos e as proporções de condições utilizadas.

Identificador Proporção de tarefas difíceis Proporção de tarefas fáceis


d00:f10 0% 100%
d02:f08 20% 80%
d04:f06 40% 60%
d06:f04 60% 40%
d08:f02 80% 20%
d10:f00 100% 0%
A Figura 6, traz o desempenho do agente evolutivo sendo treinado com o método
curricular (linha vermelha) aqui proposto em relação ao algoritmo padrão (linha azul).
Sendo exposto aos seis currículos descritos na Tabela 2, o primeiro gráfico da coluna da
esquerda é o d00:f10, o primeiro da coluna da direita é o currículo d02:f08 e assim
sucessivamente até o último gráfico da coluna da direita ser o referente ao currículo
d10:00.
Figura 6 ­ Média da aptidão de cinco agentes treinados com cada configuração
currículo em relação ao algoritmo padrão (OpenAI­ES).

Percebe-se o impacto do treinamento com o currículo, e como a dificuldade das


condições alteram a performance do agente em treinamento. O fato de a simulação ter o
número de gerações diferentes faz com que em alguns casos o método proposto (linha
vermelha) tenha menos gerações em relação ao algoritmo padrão (linha azul), como
nota-se no caso do currículo d00f10, na Figura 7 é o primeiro gráfico à esquerda. Em
outros casos o inverso sucede, e isso deve-se ao fato de que a cada episódio tem até
1000 passos. Assim a pontuação máxima é de 1000 pontos por episódio, e em condições
fáceis essa pontuação é atingida com maior frequência. O critério de parada do
algoritmo evolutivo é um número máximo de passos, e dependendo do currículo esse
critério é atingido antes ou depois. Isso não implica em um tempo maior de simulação,
apenas no número total de gerações.
Faz-se necessário após o treinamento do agente evolutivo avaliá-lo novamente em um
conjunto de teste, ou seja, testar a performance real do agente em um conjunto tarefas
aleatórias a fim de analisar a média da aptidão obtida após o treinamento baseado nos
currículos. Assim como na pesquisa de referência, utilizou-se um conjunto de testes de
1000 condições aleatórias. E assim foram testados os melhores agentes de cada
currículo, conforme mostra abaixo a Figura 7. Nota-se pontos discrepantes em dois
currículos, o d02:f08 e o d06:f04, da esquerda para a direita, a terceira caixa e a quinta
caixa respectivamente. O currículo d02:f08 tem a maior concentração de resultados com
a performance próxima de 760 pontos, no entanto um ponto discrepante em 770 e outro
inferior abaixo de 740 pontos.

Figura 7. Comparativo entre o algoritmo padrão e as configurações de currículo


utilizadas no método de aprendizado curricular proposto

No currículo d06:f08, o ponto discrepante da parte superior indica que em distribuição


não uniforme, um ou alguns resultados chegaram a 800 pontos de fitness no currículo
d06:f08, o traço inferior indica o começo do primeiro quartil e o início da caixa o fim do
primeiro quartil. Entre o começo da caixa e a mediana (linha amarela) o segundo quartil.
Na estatística descritiva, um quartil é qualquer um dos três valores que divide o
conjunto ordenado de dados em quatro partes iguais, e assim cada parte representa 25%
da amostra.

6. Considerações Finais
Este trabalho apresentou uma abordagem para tentar prever quais ambientes são mais
adequados para a composição de um currículo utilizando uma rede neural classificadora.
Foram detalhadas as diversas etapas desta metodologia, e apresentados os resultados do
melhor cenário de treinamento da rede classificadora dentre os cenários propostos: com
dados históricos, aleatórios e sistematizados. Por fim, foi integrada a rede classificadora
ao processo de treinamento no simulador Evorobotpy2 e reportados os resultados.
Conforme suposto inicialmente, nem todas as configurações de currículos propostos
melhoraram a performance do treinamento dos agentes evolutivos no problema de
balanceamento de postes duplos. No entanto, o modelo utilizado classifica de forma
binária e isso impossibilita a replicação de algumas etapas feitas na pesquisa de
referência, como a função de dificuldade para seleção das tarefas. Fez-se então uma
comparação relativa dos resultados, o método automático aqui proposto é capaz de
escalar para problemas com maior complexidade, ou seja, com mais variáveis
ambientais ou do agente evolutivo sujeitas a variação. Isso, sem aumentar
exponencialmente o tempo de geração dos currículos como é no caso da geração manual
proposta na pesquisa de referência. Os resultados da aptidão com o melhor currículo em
relação ao algoritmo padrão (OpenAI-ES) mostram que há um ligeiro aumento na
performance do agente evolutivo. Assim, traz mais uma evidência de que o método
automático de geração de currículo em tempo de execução é promissor e requer mais
pesquisas.
Da mesma forma que na pesquisa de referência, a configuração de currículo que trouxe
melhor desempenho foi um currículo predominantemente difícil e com algumas
condições fáceis. Pode-se dizer que houve uma melhora no processo de treinamento da
rede neuroevolutiva e a confirmação dos indícios e evidências existentes nos artigos
mais recentes.

6.1 Trabalhos Futuros


Existem diversos modelos e técnicas diferentes que talvez utilizassem melhor as
condições iniciais na elaboração do currículo, mas não seria viável explorá-los
exaustivamente neste trabalho. Uma possível melhoria seria a utilização de uma réplica
do simulador que emulasse o mesmo processo evolutivo com dados históricos salvos,
permitindo assim o refinamento dos modelos possíveis de forma mais rápida, para após
o refinamento utilizar o Evorobotpy2 com o melhor modelo já integrado e gerando o
currículo no treinamento. Assim facilitaria muito a validação do modelo utilizado para
qualificação das tarefas. Além disso, ao encontrar um currículo promissor faz-se
necessário a aplicação da mesma técnica de geração de currículo e treinamento em outro
problema que também exija lidar com condições ambientais significativamente
variantes.
De qualquer forma, o trabalho suscitou uma experiência muito significativa em machine
learning, mais especificamente em curriculum learning e robótica evolutiva.
Evidentemente, sempre há pontos passíveis de melhoria em qualquer trabalho.
Deixamos aqui algumas sugestões de melhorias e de trabalhos futuros.
Sugestões de Melhorias:
• Explorar outros modelos para a tarefa de predição de desempenho;
• Utilizar processamento em nuvem, o que possibilitaria utilizar máquinas
poderosas e tornar muito mais rápidas as pesquisas por combinações ótimas de
hiperparâmetros;
• Executar o tuning exaustivo dos modelos em busca de uma melhor configuração
de hiperparâmetros;
• Testar diferentes proporções de currículo, de forma dinâmica, durante o
treinamento do agente evolutivo. Começar com todas condições fáceis, fazer
alterações ao longo do processo, até que ao final, o currículo seja inteiramente
de condições classificadas como difíceis;
• Utilizar um modelo regressor e então aplicar funções de dificuldade quadrática e
cúbica;
• Ao invés de decidir quais condições são fáceis e difíceis através de um valor
arbitrário, coletar ao longo do treinamento as condições atuais e ordená-las da
mais fácil para a mais difícil. E utilizar da mediana como limiar para separação
entre fáceis e difíceis.

Referências
ANDRADE. Lívia. Redes neurais artificiais aplicadas na identificação automática de
áreas cafeeiras em imagens de satélite. Dissertação (Mestre em Ciência da
Computação) - Departamento de Ciência da Computação do Instituto de Ciências
Exatas da Universidade Federal de Minas Gerais. 2011.
BENGIO, Yoshua et al. Curriculum learning. In: Proceedings of the 26th annual
international conference on machine learning. 2009. p. 41-48.
CARVALHO, Jônata Tyska. Adaptive Behaviour in Evolving Robots. 2017. Tese de
Doutorado. University of Plymouth.
DARWIN, Charles. The descent of man. New York: D. Appleton, 1871.
DONCIEUX, Stephane et al. Evolutionary robotics: what, why, and where to. Frontiers
in Robotics and AI, v. 2, p. 4, 2015.
FLOREANO, Dario; HUSBANDS, Phil; NOLFI, Stefano. Evolutionary robotics.
Springer Verlag, 2008.
GABRIEL, Paulo Henrique Ribeiro; DELBEM, Alexandre Cláudio Botazzo.
Fundamentos de algoritmos evolutivos. 2008.
GERS, Felix A.; SCHMIDHUBER, E. LSTM recurrent networks learn simple context-
free and context-sensitive languages. IEEE transactions on neural networks, v. 12, n.
6, p. 1333-1340, 2001.
HEYER, Clint. Human-robot interaction and future industrial robotics applications. In:
2010 IEEE/RSJ International Conference on Intelligent Robots and Systems. IEEE,
2010. p. 4749-4754.
KINGMA, Diederik P.; BA, Jimmy. Adam: A method for stochastic optimization.
arXiv preprint arXiv:1412.6980, 2014.
LEHMAN, Joel; MIIKKULAINEN, Risto. Neuroevolution. Scholarpedia, v. 8, n. 6, p.
30977, 2013.
LIMA, G. C. Pesquisa e Desenvolvimento de um Método de Aprendizagem de
Máquina com Aprendizado Incremental. Monografia (Bacharel em Engenharia de
Software). Universidade de Brasília. 2014.
MILANO, Nicola; NOLFI, Stefano. Automated curriculum learning for embodied
agents a neuroevolutionary approach. Scientific reports, v. 11, n. 1, p. 1-14, 2021.
MITCHELL, Tom. Machine learning. 1997.
MORAD, Steven D. et al. Embodied visual navigation with automatic curriculum
learning in real environments. IEEE Robotics and Automation Letters, v. 6, n. 2, p.
683-690, 2021.
NARVEKAR, Sanmit et al. Curriculum learning for reinforcement learning domains: A
framework and survey. arXiv preprint arXiv:2003.04960, 2020.
NOLFI, Stefano. Behavioral and cognitive robotics: an adaptive perspective. Stefano
Nolfi, 2021.
OPENAI, I. Akkaya et al. Solving rubik’s cube with a robot hand. arXiv preprint
arXiv:1910.07113, v. 10, 2019.
PAGLIUCA, Paolo; MILANO, Nicola; NOLFI, Stefano. Maximizing adaptive power in
neuroevolution. PloS one, v. 13, n. 7, p. e0198788, 2018.
PEDREGOSA, Fabian et al. Scikit-learn: Machine learning in Python. the Journal of
machine Learning research, v. 12, p. 2825-2830, 2011.
PETERSON, Gail B. A day of great illumination: BF Skinner's discovery of shaping.
Journal of the experimental analysis of behavior, v. 82, n. 3, p. 317-328, 2004.
RECHENBERG, Ingo. Evolutionsstrategien. In: Simulationsmethoden in der Medizin
und Biologie. Springer, Berlin, Heidelberg, 1978. p. 83-114
ROMANO, Vitor Ferreira (Ed.). Robótica industrial: aplicação na indústria de
manufatura e de processos. Edgard Blucher, 2002.
RUMELHART, David E. et al. Parallel distributed processing. New York: IEEE, 1988.
SKINNER, Burrhus F. Reinforcement today. American Psychologist, v. 13, n. 3, p. 94,
1958.
SUNG, JaYoung; GRINTER, Rebecca E.; CHRISTENSEN, Henrik I. Domestic robot
ecology. International Journal of Social Robotics, v. 2, n. 4, p. 417-429, 2010.
WALLACE, Alfred Russel. Tropical nature, and other essays. Macmillan and
Company, 1878.
WEINSHALL, Daphna; COHEN, Gad; AMIR, Dan. Curriculum learning by transfer
learning: Theory and experiments with deep networks. In: International Conference
on Machine Learning. PMLR, 2018. p. 5238-5246.
WIELAND, Alexis P. Evolving controls for unstable systems. In: Connectionist
Models. Morgan Kaufmann, 1991. p. 91-102.
WOLF, Denis Fernando et al. Robótica móvel inteligente: Da simulação às aplicações
no mundo real. In: Mini-Curso: Jornada de Atualização em Informática (JAI),
Congresso da SBC. sn, 2009. p. 13.
WU, Ji et al. Master clinical medical knowledge at certificated-doctor-level with deep
learning model. Nature communications, v. 9, n. 1, p. 1-7, 2018.

Você também pode gostar