O que é Aprendizado por Reforço (Reinforcement Learning)

O aprendizado por reforço é uma técnica especial no mundo da Inteligência Artificial. Nessa técnica não existe uma referência – um gabarito – que diga: “esta é a melhor ação a ser tomada”. As redes neurais não aprenderão com base em variáveis target.

Talvez você esteja pensando que se trata de aprendizado não supervisionado, mas o aprendizado por reforço se diferencia dos algoritmos de aprendizado não supervisionado.

Ao algoritmo de clustering, por exemplo, poderia ser dito: “separe esse conjunto de dados em cinco grupos, de forma em que eles fiquem o mais distante entre si”. Ou seja, há uma métrica de avaliação: a distância dos grupos. Dessa forma, era definido quantos grupos queríamos e, a partir disso, o modelo tentava separar os dados.

A Recompensa no aprendizado por reforço

Cachorro recebendo uma recompensa

O aprendizado por reforço será diferente: a única coisa que o modelo terá, em termos de supervisão, será um sinal, que é a recompensa que ele obteve do sistema. Seu objetivo, então, é maximizar a recompensa.

Para atingir tal objetivo, ele pode ter a liberdade de fazer o que quiser.

O modelo está livre para agir: a única supervisão que ele tem é a necessidade de maximizar a recompensa. Poderíamos até dizer que isso não é um tipo de supervisão.

Na realidade, o modelo terá um feedback das recompensas que ele está recebendo e a única coisa que ele sabe é que tem que maximizá-las. Ele não está recebendo instruções do tipo: “Agora ficou bom!” ou “Essa ação é a melhor”.

O Planejamento no aprendizado por reforço

No aprendizado por reforço, o feedback não é instantâneo, ele apresenta um delay. Isso que significa que uma ação realizada em determinado momento não necessariamente terá uma recompensa imediata que determine o quão boa ela foi.

Por exemplo, um robô, ao se movimentar para um lado, recebe uma recompensa por ter ido para esse lado, mas essa recompensa talvez pudesse ser maior se fosse para outro lado, ou ainda se ele tivesse tomado algumas outras ações em sequência.

De modo geral, a ação que teve a melhor recompensa em um estado não necessariamente será a melhor ação; isso se dá porque é possível que, a longo prazo aquilo não se mostre como sendo o melhor a se fazer.

Muitas vezes, inclusive, as recompensas serão zero. Existem sistemas em que a maior parte das ações receberá recompensa zero e, só depois de uma combinação ou consequência específicas de ações, em determinadas circunstâncias, é que teremos uma recompensa positiva.

Então, o que nos interessa é o acumulado das recompensas. Ou seja, queremos maximizar cada ação pensando no futuro. Nesse caso, há uma ideia de planning (planejamento). O ideal é não apenas maximizar a maior recompensa possível, mas sim maximizar o resultado, a longo prazo.

É necessário planejar, mesmo que primeiramente sejam realizadas ações que deem recompensas menores, pois o que o que visamos é chegar a um cenário que vá maximizar nossa recompensa futura, de longo prazo.

O algoritmo tentará perseguir o máximo de recompensa possível pensando no cenário e avaliando todas as ações realizadas, não somente numa ação específica. Isso dificulta bastante o processo, porque o feedback será atrasado: como a recompensa recebida, na ação tomada naquele momento, não está me informando muito sobre ela mesma, será necessário analisar todo o histórico para que seja possível inferir se tal ação foi boa ou não.

Dependência temporal no aprendizado por reforço

Outra característica é a relação temporal – a correlação que uma ação tem com outra. Quando o agente realiza uma ação após outra, o que gera um estado após outro, tais ações têm uma ligação temporal.

Logicamente, para que se possa estar em um estado no presente, é necessário que se tenha estado em um estado anterior; se uma ação foi tomada neste momento, é porque essa ação foi influenciada por uma ação tomada anteriormente; da mesma forma, uma ação tomada agora influenciará uma próxima ação; e isso ocorre sucessivamente, como um tipo de reação em cadeia.

Existe, então, a ligação de um evento com outro, o que nos leva a pensar em uma conexão temporal em que cada ação foi tomada em um instante de tempo. Em outras palavras, os dados não são independentes uns dos outros.

Recebimento de dados

Os métodos de aprendizado por reforço também se diferenciam bastante de outras técnicas de machine learning no que tange os dados. Nesse tipo de aprendizado, os dados que o modelo recebe para treinar dependem diretamente das decisões que o próprio agente tem.

Escolha de um caminho a partir do estado anterior

Por exemplo: um robô está em uma encruzilhada de caminhos e toma uma ação de virar para a esquerda; nesse caso, ele viu um cenário e recebeu um input de dados a partir daquilo que ele acabou de enxergar.

Se o robô andar para outro lado, é porque ele recebeu outro input de dados – outras informações.

Outro exemplo é um jogo de tabuleiro: cada ação tomada leva a um cenário diferente; cada ação tomada se refere a novos dados recebidos. Nesse caso, cada dado recebido – cada estado no qual ele se encontra – serve para treinamento.

Assim, o modelo estará treinando, aprendendo, tentando generalizar cada vez mais; os dados recebidos nesse treinamento, mas os dados que ele está treinando são totalmente dependentes das decisões que o próprio modelo tomou.

Se o modelo tomou decisões enviesadas, ou se ele se a limitou a tomar sempre as mesmas decisões, ele restringiu o seu escopo de dados recebidos para o treinamento. Esse caso é bem diferente do que costumamos ver em algoritmos de machine learning.

Anteriormente, sempre havíamos inserido para o modelo uma quantidade de dados pré-definidos por nós mesmos; a partir desses dados inseridos era, então, definida a técnica que seria utilizada.

Agora, porém, temos uma quantidade de dados que, em muitas situações, será praticamente infinita; o próprio modelo é que decidirá com quais dados ele treinará. Isso dependerá das decisões e das ações que o modelo tomar. Essa é uma característica que diferencia muito o aprendizado por reforço de outros modelos de aprendizado.

Uma solução para vários problemas

Como pode ser percebido, o aprendizado por reforço envolve uma gama bem complexa de problemas. Além disso, é evidente que as técnicas para conseguir endereçar esses problemas serão complexas em alguns momentos; em alguns casos, por exemplo, a compreensão e a matemática podem ficar um pouco rebuscadas.

Entretanto, apesar de estarmos lidando com uma área muito prática – diretamente focada em problemas reais, aplicações e desafios –, isso tudo não é motivo para desânimo; no fim das contas vale a pena.

Talvez o aprendizado por reforço possa ajudar a resolver os maiores desafios que a humanidade enfrenta hoje. Isso posto, vale a pena começar a compreender como essa técnica de aprendizado funciona.

Para aprofundar o conhecimento nessa área, você pode conferir aqui sobre o que significam ações, estados e recompensas – alguns termos técnicos que são utilizados no aprendizado por reforço.

Aprendizado por Reforço na Prática

Uma excelente forma para consolidar estes conceitos é praticando! Por mais complexo que possa parecer, com a didática correta e focando no aprendizado do aluno, todos podem aprender. No curso Aprendizado por Reforço, Algoritmos Genéticos, NLP e GANs abordamos este e outros assuntos, de maneira teórica e prática, em um curso completo! Você não vai encontrar nada parecido.

Confira também todos os nossos cursos!

Leia também:

cursos