Como definir estados na aprendizagem por reforço?


14

Estou estudando o aprendizado por reforço e suas variantes. Estou começando a entender como os algoritmos funcionam e como eles se aplicam a um MDP. O que não entendo é o processo de definição dos estados do MDP. Na maioria dos exemplos e tutoriais, eles representam algo simples como um quadrado em uma grade ou similar.

Para problemas mais complexos, como um robô aprendendo a andar etc., como você define esses estados? Você pode usar algoritmos de aprendizagem ou classificação para "aprender" esses estados?

Respostas:


14

O problema da representação do estado no Aprendizado por Reforço (RL) é semelhante aos problemas de representação de recursos, seleção de recursos e engenharia de recursos no aprendizado supervisionado ou não supervisionado.

A literatura que ensina o básico de RL tende a usar ambientes muito simples, para que todos os estados possam ser enumerados. Isso simplifica as estimativas de valor em médias contínuas básicas em uma tabela, que são mais fáceis de entender e implementar. Os algoritmos de aprendizado tabular também têm garantias teóricas razoáveis ​​de convergência, o que significa que, se você puder simplificar seu problema para que ele tenha, digamos, menos de alguns milhões de estados, vale a pena tentar.

Os problemas de controle mais interessantes não se encaixam nesse número de estados, mesmo que você os discretize. Isto é devido à " maldição da dimensionalidade ". Para esses problemas, você normalmente representa seu estado como um vetor de diferentes recursos - por exemplo, para um robô, várias posições, ângulos, velocidades de peças mecânicas. Assim como no aprendizado supervisionado, você pode tratá-los para uso em um processo de aprendizado específico. Por exemplo, normalmente você deseja que todos sejam numéricos e, se quiser usar uma rede neural, também deverá normalizá-los para um intervalo padrão (por exemplo, -1 a 1).

Além das preocupações acima que se aplicam a outro aprendizado de máquina, para a RL, você também precisa se preocupar com a Propriedade Markov - que o estado forneça informações suficientes, para que você possa prever com precisão as próximas recompensas esperadas e os próximos estados com uma ação, sem a necessidade de informações adicionais. Isso não precisa ser perfeito, pequenas diferenças devido, por exemplo, a variações na densidade do ar ou na temperatura de um robô com rodas normalmente não terão um grande impacto em sua navegação e podem ser ignoradas. Qualquer fator que seja essencialmente aleatório também pode ser ignorado enquanto se apega à teoria da RL - pode tornar o agente menos ideal em geral, mas a teoria ainda funcionará.

Se houver fatores desconhecidos consistentes que influenciam o resultado e puderem ser deduzidos logicamente - talvez da história do estado ou das ações - mas você os excluiu da representação do estado, poderá haver um problema mais sério e o agente poderá não aprender .

Vale a pena notar a diferença aqui entre observação e estado . Uma observação é alguns dados que você pode coletar. Por exemplo, você pode ter sensores em seu robô que realimentam as posições de suas articulações. Como o estado deve possuir a Propriedade Markov, uma única observação bruta pode não ter dados suficientes para criar um estado adequado. Se for esse o caso, você pode aplicar o conhecimento do domínio para construir um estado melhor a partir dos dados disponíveis, ou pode tentar usar técnicas projetadas para MDPs (POMDPs) parcialmente observáveis - eles tentam efetivamente criar partes ausentes dos dados do estado estatisticamente. Você pode usar um modelo RNN ou markov oculto (também chamado de "estado de crença") para isso e, de alguma forma, está usando um "algoritmos de aprendizagem ou classificação para "aprender" esses estados ", conforme solicitado.

Por fim, você precisa considerar o tipo de modelo de aproximação que deseja usar. Uma abordagem semelhante se aplica aqui quanto ao aprendizado supervisionado:

  • Uma regressão linear simples com recursos projetados com base no conhecimento do domínio pode se dar muito bem. Pode ser necessário trabalhar duro tentando diferentes representações de estado, para que a aproximação linear funcione. A vantagem é que essa abordagem mais simples é mais robusta contra problemas de estabilidade do que a aproximação não linear

  • Um aproximador de função não linear mais complexo, como uma rede neural de várias camadas. Você pode alimentar um vetor de estado mais "bruto" e esperar que as camadas ocultas encontrem alguma estrutura ou representação que leve a boas estimativas. De certa forma, isso também é " algoritmos de aprendizado ou classificação para" aprender "esses estados ", mas de uma maneira diferente de um RNN ou HMM. Essa pode ser uma abordagem sensata se o seu estado for expresso naturalmente como uma imagem de tela - é muito difícil descobrir a engenharia de recursos para dados de imagens manualmente.

O trabalho do Atari DQN pela equipe do DeepMind usou uma combinação de engenharia de recursos e contando com uma rede neural profunda para alcançar seus resultados. A engenharia de recursos incluiu uma amostragem reduzida da imagem, reduzindo-a para a escala de cinza e - importante para a Propriedade Markov - usando quatro quadros consecutivos para representar um único estado, para que informações sobre a velocidade dos objetos estivessem presentes na representação do estado. O DNN processou as imagens em recursos de nível superior que poderiam ser usados ​​para fazer previsões sobre valores de estado.


3

Uma abordagem inicial comum para modelar problemas complexos foi discretização . Em um nível básico, isso está dividindo um espaço complexo e contínuo em uma grade. Em seguida, você pode usar qualquer uma das técnicas clássicas de RL projetadas para espaços discretos e lineares. No entanto, como você pode imaginar, se você não for cuidadoso, isso pode causar muitos problemas!

O livro clássico de Sutton & Barto, Reinforcement Learning, tem algumas sugestões para outras maneiras de fazer isso. Uma é a codificação de blocos , coberta na seção 9.5.4 do nova segunda edição . Na codificação de blocos, geramos um grande número de grades, cada uma com espaçamento diferente. Em seguida, sobrepomos as grades umas sobre as outras. Isso cria formas não uniformes de regiões discretas e pode funcionar bem para uma variedade de problemas.

A Seção 9.5 também abrange uma variedade de outras maneiras de codificar um espaço contínuo em um MDP discreto, incluindo funções de base radial e codificações grosseiras. Confira!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.