A aproximação de funções é basicamente um problema de regressão (no sentido geral, ou seja, oposto à classificação onde a classe é discreta), ou seja, tenta-se aprender um mapeamento de funções da entrada (no seu caso f( S , um ) ) a um valor real saída Q ( s , a ) . Como não temos uma tabela completa de todos os valores de entrada / saída, mas aprendemos e estimamos Q ( s , a ) ao mesmo tempo, os parâmetros (aqui: os pesos W ) não podem ser calculados diretamente a partir dos dados. Uma abordagem comum aqui é usar a descida em gradiente .
Aqui está o algoritmo geral para aprender Q ( s , a ) com Valor Função Aproximação
Onde ...
- α ∈ [ 0 , 1 ] é a taxa de aprendizado
- γ∈ [ 0 , 1 ] é a taxa de desconto
- m a xuma′Q ( s′, um′) é a açãouma′ no estados′ maximizandoQ ( s′, Um )
- ∇⃗ WQ ( s , a )é o gradiente deQ ( s , a )emW. No seu caso linear, o gradiente é simplesmente um vector( f1 1( S , um ) , . . . , fn( s , a ) )
Os parâmetros / pesos-atualização (4º passo) podem ser lidos da seguinte maneira:
- ( r + γ∗ m a x′umaQ ( s′, um′) ) - ( Q ( s , a ) ) é o erro entre a previsãoQ ( s , a ) e o valor "real" paraQ ( s , a ) , que é a recompensar obtidaagora MAISa recompensa esperada e com desconto, seguindo a política gulosaposteriormente γ∗ m a x′umaQ ( s′, um′)
- Portanto, o parâmetro / vetor de peso é deslocado para a direção mais íngreme (dada pelo gradiente ∇⃗ WQ ( s , a ) ) pela quantidade do erro medido, ajustado por α .
Principal fonte:
Capítulo 8 Valor Aproximação do livro (geral recomendado) Aprendizagem por reforço: uma introdução por Sutton e Barto (primeira edição). O algoritmo geral foi modificado, como geralmente é feito para calcular Q ( s , a ) vez de V( S ) . Também abandonei os traços de elegibilidade e para focar na descida do gradiente, portanto, usando apenas backups de uma etapa
Mais referências