Por que (e quando) é preciso aprender a função de recompensa com amostras no aprendizado por reforço?

9

No aprendizado por reforço, temos uma função de recompensa que informa ao agente o desempenho de suas ações e estados atuais. Em algumas configurações gerais, a função de recompensa é uma função de três variáveis:

  1. Estado atualS
  2. Ação atual no estado atualπ(s)=a
  3. Próximo estadoS

Portanto, parece algo como:

R(S,a,S)

Qual é a minha pergunta (que provavelmente é meu mal-entendido), normalmente a pessoa que usa o aprendizado por reforço decide qual é a recompensa. Por exemplo, atribui 1000 pontos para atingir a meta ou atribui -1000 pontos para travar o robô autônomo. Nesses cenários, não está claro para mim por que precisaríamos de amostras para aprender R. R é a priori especificado e, em seguida, usamos nosso agente. Direita? No entanto, sei que estou errado, porque nas anotações de Andrew Ng ele diz:

insira a descrição da imagem aqui

Onde ele diz que não conhecemos a função de recompensa explicitamente. Isso me parece bizarro. Sei que estou errado e adoraria que alguém me esclarecesse em quais cenários realmente precisamos aprender R com amostras.

(obviamente, as probabilidades de transição precisam ser aprendidas porque não se sabe como o ambiente fará com que nosso agente se mova a priori).

Pinóquio
fonte

Respostas:

4

Nas notas dele, quando você deve "estimar os dados", ele não significa a função de recompensa . Você raramente estima a função de recompensa. Você geralmente aprende a função de valor , que estima a recompensa imediata mais a recompensa futura com desconto temporal (se o desconto temporal for zero, você estará estimando as recompensas). Ou, você pode aprender valores Q , que são valores associados a pares de ação de estado.

Em resumo, a função de recompensa e a verdadeira função de transição são definidas pelo ambiente. O agente aprende coisas como a função de transição, valores Q e a função valor.

Neil G
fonte
1
Note também que, por vezes, nós queremos aprender a função de recompensa (Inverse Reinforcement Learning)
hipoglucido
1

Concordo com as outras respostas que, geralmente, a função de recompensa não é aprendida diretamente.

As probabilidades de transição também não precisam ser aprendidas. O agente pode aprender diretamente os valores da ação, ou mesmo diretamente a política, com o método gradien da política, por exemplo.

No entanto, existem técnicas para as quais a recompensa e as probabilidades de transição devem ser aprendidas. Por exemplo, o algoritmo dyna-Q (descrito em Sutton & Barto) mantém um modelo do ambiente. A cada etapa, o agente usa as informações de recompensa e estado recebidas do ambiente para atualizar os valores da ação, como no Q-learning, por exemplo.

Mas ele também atualiza seu próprio modelo de ambiente e executa N outras atualizações de valores de ação com base nesse modelo. A suposição é que o loop de atuação-> detecção leve algum tempo não nulo, tempo que podemos usar bem, melhorando os valores de ação com amostras simuladas.

Jacques
fonte
1

Essa é uma boa pergunta, mais profunda do que qualquer formulação imprecisa nas anotações de Andrew. É verdade que em RL você geralmente não precisa aprender uma função de recompensa R (S, A, S '); você precisa especificá-lo como parte da configuração do problema. MAS, existem algoritmos (na minha experiência associados à função de valor do estado pós-decisão ou pós-decisão) que exigem a recompensa esperadar (S, A) = E [R (S, A, S ') | S, A]. Geralmente, os textos que vi fazem pouco comentário sobre isso e assumem que r (s, a) é conhecido como R (S, A, S '). Mas, em alguns casos, a recompensa depende do estado futuro; portanto, sem um modelo, você precisa aprender essa expectativa. Atualmente, estou trabalhando em um problema em que a função de recompensa esperada e a função de valor precisam ser aprendidas. Observe que a maioria dos algoritmos de RL NÃO exige a função de recompensa esperada, mas alguns exigem. Veja, por exemplo, a discussão na página 58 em Algoritmos para Aprendizagem por Reforço de Szepesvari.

Em resumo, você não precisa aprender a função de recompensa, mas ao trabalhar com variáveis ​​de estado pós-decisão, pode ser necessário aprender a função de recompensa esperada . Este é o único caso em que sei onde você precisa aprender uma função de recompensa esperada, mas gostaria de saber de outros casos.

Mark Britten-Jones
fonte
0

No aprendizado por reforço, o agente aprende a função de valor, não a função de recompensa. O valor de uma ação é sua utilidade geral; por exemplo, uma ação pode trazer uma alta recompensa, mas levar a estados de baixo valor, tornando-a de baixo valor.

O que a citação diz é que, às vezes, o mundo é complicado: alguns problemas têm espaços de ação estatal grandes demais para enumerar; portanto, não temos funções explícitas de probabilidade e recompensa de transição. Nesse caso, o agente precisaria aprender alguma generalização da função de valor verdadeiro.

Don Reba
fonte
0

Eu acho que essas notas são um pouco confusas. As recompensas devem ser projetadas por você para incentivar seu agente de RL a otimizar o comportamento que você deseja ver. As transições entre estados são dadas pelo ambiente e geralmente serão estimadas a partir de dados. Penso que Andrew se refere a uma situação em que, do estado A, você pode fazer a transição para o estado B, que você recompensa x, ou o estado C, que você recompensa y. Se os estados B e C forem idênticos, exceto pelas diferenças de recompensa, você frequentemente eliminaria os estados B e C e atribuiria ao estado A uma recompensa estimada a partir de dados que mostram com que frequência você faz a transição para B ou C de A.

nsweeney
fonte