Compreendendo o aprendizado por reforço com rede neural (Q-learning)

9

Estou tentando entender a aprendizagem por reforço e os processos de decisão de markov (MDP) no caso em que uma rede neural está sendo usada como aproximador de funções.

Estou tendo dificuldades com o relacionamento entre o MDP, onde o ambiente é explorado de maneira probabilística, como isso é direcionado aos parâmetros de aprendizado e como são encontradas as soluções / políticas finais.

Estou correto ao supor que, no caso do Q-learning, a rede neural atua essencialmente como um aproximador de funções para o valor q em si, tantos passos no futuro? Como isso mapeia a atualização de parâmetros via retropropagação ou outros métodos?

Além disso, depois que a rede aprender a prever a recompensa futura, como isso se encaixa no sistema em termos de tomada de decisões? Estou assumindo que o sistema final não faria probabilisticamente transições de estado.

obrigado

CatsLoveJazz
fonte
Learning.I acho que vai esclarecer suas dúvidas kumarbasaveswara.in/q-learning.py linkedin.com/feed/update/urn:li:activity:6484453542299037696
Kumar arduino

Respostas:

4

No Q-Learning, em cada etapa, você usará observações e recompensas para atualizar sua função de valor Q:

Qt+1(st,umat)=Qt(st,umat)+α[Rt+1+γmaxumaQt(st+1,uma)-Qt(st,umat)]

Você está correto ao dizer que a rede neural é apenas uma aproximação de função para a função de valor q.

Em geral, a parte da aproximação é apenas um problema de aprendizado supervisionado padrão. Sua rede usa (s, a) como entrada e a saída é o valor q. Como os valores q são ajustados, você precisa treinar essas novas amostras na rede. Ainda assim, você encontrará alguns problemas ao usar amostras correlatas e o SGD sofrerá.

Se você está vendo o artigo da DQN, as coisas são um pouco diferentes. Nesse caso, o que eles estão fazendo é colocar amostras em um vetor (repetição da experiência). Para ensinar a rede, eles amostram tuplas do vetor, iniciam usando essas informações para obter um novo valor q ensinado à rede. Quando digo ensino, refiro-me a ajustar os parâmetros da rede usando a descida estocástica do gradiente ou sua abordagem de otimização favorita. Ao não ensinar as amostras na ordem em que estão sendo coletadas pela política, as correlacionam e ajudam no treinamento.

Por fim, para tomar uma decisão sobre os estados , você escolhe a ação que fornece o valor q mais alto:s

uma(s)=umargmumaxuma Q(s,uma)

Se sua função de valor Q foi aprendida completamente e o ambiente está parado, é bom ser ganancioso neste momento. No entanto, enquanto estiver aprendendo, é esperado que você explore. Existem várias abordagens sendo -greedy, uma das maneiras mais fáceis e comuns.ε

Juan Leni
fonte
Obrigado, isso é muito útil, isso faz muito sentido! Apenas para esclarecer, uma vez que o sistema tenha sido treinado, você simplesmente alimentaria cada rede possível com os estados de entrada atuais para a rede neural e selecionaria a ação que estima a maior recompensa (valor q)?
CatsLoveJazz
1
Corrigir. No entanto, lembre-se de que, se o ambiente não estiver parado, convém manter alguma exploração em andamento. Em geral, o Q-learning é executado on-line e você treina continuamente.
Juan Leni
Ótimo, você conhece alguma literatura em torno de sua resposta? Eu acho que uma alternativa ao treinamento on-line seria treinar os dados recém-observados a cada n períodos de tempo, para não permitir que a exploração falha afeta o desempenho em um ambiente de produção.
CatsLoveJazz
1
Refiro-me basicamente ao dilema exploração-exploração. Há muitas abordagens .. Um fácil de aplicar um é aqui: tokic.com/www/tokicm/publikationen/papers/... onde adaptativa ajustar epsilon com base no erro de sua função de valor
Juan Leni
1
Um clássico é este artigo / livro (1996): web.mit.edu/people/dimitrib/NDP_Encycl.pdf . athenasc.com/ndpbook.html Atualmente, há muito trabalho combinando Deep Neural Networks e RL. Os documentos do Deepmind são um bom exemplo: storage.googleapis.com/deepmind-data/assets/papers/…
Juan Leni