como fazer uma função de recompensa na aprendizagem por reforço

18

Enquanto estudava o aprendizado por reforço, deparei-me com muitas formas da função de recompensa: , e até uma função de recompensa que depende apenas do estado atual. Dito isto, percebi que não é muito fácil 'criar' ou 'definir' uma função de recompensa.R(s,uma)R(s,uma,s)

Aqui estão as minhas perguntas:

  1. Existem regras sobre como criar funções de recompensa?
  2. Existem outras formas da função de recompensa? Por exemplo, talvez uma forma polinomial que dependa do estado?
cgo
fonte

Respostas:

25

As funções de recompensa descrevem como o agente "deve" se comportar. Em outras palavras, eles têm conteúdo "normativo", estipulando o que você deseja que o agente realize. Por exemplo, alguns estados gratificantes podem representar o sabor da comida. Ou talvez, possa representar o ato de provar a comida. Portanto, na medida em que a função de recompensa determina quais são as motivações do agente, sim, você precisa inventar!s(s,uma)

Não há restrições absolutas, mas se a sua função de recompensa for "melhor comportada", o agente aprenderá melhor. Na prática, isso significa velocidade de convergência e não ficar preso nos mínimos locais. Porém, especificações adicionais dependerão fortemente das espécies de aprendizado por reforço que você está usando. Por exemplo, o espaço de estado / ação é contínuo ou discreto? O mundo ou a seleção de ações são estocásticos? A recompensa é colhida continuamente, ou apenas no final?

Uma maneira de visualizar o problema é que a função de recompensa determina a dureza do problema. Por exemplo, tradicionalmente, podemos especificar um único estado a ser recompensado: Nesse caso, o problema a ser resolvido é bastante difícil, comparado a , digamos, , onde há um gradiente de recompensa sobre os estados. Para problemas difíceis, especificar mais detalhes, por exemplo, ou pode ajudar alguns algoritmos, fornecendo pistas extras, mas potencialmente à custa de exigir mais exploração. Pode ser necessário incluir custos como termos negativos em (por exemplo, custos energéticos ), para tornar o problema bem especificado.

R(s1)=1
R(s2 ..n)=0 0
R(sEu)=1/Eu2R(s,uma)R(s,uma,s)R

No caso de um espaço de estado contínuo, se você deseja que um agente aprenda facilmente, a função de recompensa deve ser contínua e diferenciável . Portanto, os polinômios podem funcionar bem para muitos algoritmos. Além disso, tente remover os mínimos localizados. Existem vários exemplos de como NÃO executar uma função de recompensa - como a função Rastrigin . Dito isto, vários algoritmos RL (por exemplo, máquinas Boltzmann ) são um pouco robustos para eles.

Se você estiver usando o RL para resolver um problema do mundo real, provavelmente descobrirá que, embora encontrar a função de recompensa seja a parte mais difícil do problema, ela está intimamente ligada à maneira como você especifica o espaço de estados . Por exemplo, em um problema dependente do tempo, a distância para a meta geralmente produz uma função de recompensa ruim (por exemplo, no problema do carro de montanha ). Tais situações podem ser resolvidas usando espaços de estados dimensionais mais altos (estados ocultos ou traços de memória) ou por RL hierárquica.

Em um nível abstrato, o aprendizado não supervisionado deveria evitar estipular o desempenho "certo e errado". Mas podemos ver agora que RL simplesmente transfere a responsabilidade do professor / crítico para a função de recompensa. Existe uma maneira menos circular de resolver o problema: ou seja, inferir a melhor função de recompensa . Um método é chamado RL inverso ou "aprendizado de aprendizagem" , que gera uma função de recompensa que reproduz os comportamentos observados. Encontrar a melhor função de recompensa para reproduzir um conjunto de observações também pode ser implementado pelos métodos MLE, Bayesiano ou da teoria da informação - se você procurar por "aprendizado por reforço inverso".

Sanjay Manohar
fonte
Olá, por que o problema do carro de montanha é um problema dependente do tempo?
GoingMyWay
Suponho que o problema do carro de montanha seja "dependente do tempo", pois o problema exige que a rede forneça a sequência apropriada de comandos ou uma política que determine a sequência. A idéia é que, se você trata apenas a "posição" como seu estado, então o problema é difícil de resolver - você também precisa considerar sua velocidade (ou energia cinética etc.). Isso é realmente o que eu quis dizer com relação à escolha inteligente do seu espaço de estado em problemas dependentes do tempo.
Sanjay Manohar
@SanjayManohar Eu não acho que o problema dos carros de montanha seja "dependente do tempo", a menos que você esteja falando sobre a introdução de um horizonte de tempo finito. Posição e velocidade são suficientes.
user76284
Penso que esta resposta mistura funções de recompensa e valor. Por exemplo, ele fala sobre "encontrar" uma função de recompensa, que pode ser algo que você faz no aprendizado de reforço inverso , mas não no RL usado para controle. Além disso, fala sobre a necessidade de a função de recompensa ser contínua e diferenciável, e isso não só não é necessário, como geralmente não é o caso. É muito mais provável que você encontre +1 simples para o sucesso, ou -1 fixo por etapa de tempo da literatura, do que encontrar alguma heurística diferenciável cuidadosamente construída.
Neil Slater
Obrigado @NeilSlater, você está certo, eu provavelmente deveria ter dito "construindo" uma função de recompensa em vez de encontrá-la. Em relação à "função de valor", costumo reservar esse termo para mapeamentos de valor de estado ou valor de ação, ou seja, uma função que o agente utiliza para estimar a recompensa futura estimada. Portanto, "valor" está relacionado à "recompensa", mas a recompensa faz parte do problema, não o algoritmo que resolve o problema. Talvez a ênfase na IA tenha sido mostrar seu algoritmo de aprendizado, estipulando recompensas binárias, distais e esparsas - mas se você tiver controle sobre a função de recompensa, a vida será mais fácil se for "agradável".
Sanjay Manohar
4

Projetar funções de recompensa é realmente um problema difícil. Geralmente, as funções de recompensa esparsas são mais fáceis de definir (por exemplo, obtenha +1 se você vencer o jogo, caso contrário, 0). No entanto, recompensas esparsas também atrasam o aprendizado, porque o agente precisa executar muitas ações antes de receber qualquer recompensa. Esse problema também é conhecido como problema de atribuição de crédito .

Em vez de ter uma representação de tabela para recompensas, você também pode usar funções contínuas (como um polinômio). Este é o caso geralmente quando o espaço de estado e o espaço de ação são contínuos, e não discretos.

erensezener
fonte