Qual é a diferença entre o aprendizado de reforço sem modelo e com base em modelo?
Parece-me que qualquer aluno sem modelo, aprendendo por tentativa e erro, poderia ser reformulado como baseado em modelo. Nesse caso, quando os alunos sem modelo seriam apropriados?
Veja também esta resposta: qr.ae/TUtHbv .
Como você pode reformular um aluno sem modelo como um modelo?
Aqui está uma versão não abreviada do link da nbro: Qual é a diferença entre o aprendizado por reforço baseado em modelo e sem modelo? (Quora)
— jrh 28/03
O aprendizado por reforço baseado em modelo faz com que um agente tente entender o mundo e criar um modelo para representá-lo. Aqui o modelo está tentando capturar 2 funções, a função de transição de estados e a função de recompensa . Nesse modelo, o agente tem uma referência e pode planejar adequadamente.TTRR
No entanto, não é necessário aprender um modelo, e o agente pode aprender uma política diretamente usando algoritmos como Q-learning ou gradiente de política.
Uma verificação simples para ver se um algoritmo RL é baseado em modelo ou sem modelo é:
Se, após o aprendizado, o agente puder fazer previsões sobre qual será o próximo estado e a recompensa antes de executar cada ação, é um algoritmo de RL baseado em modelo.
Se não puder, é um algoritmo sem modelo.
em suas palavras, "não é necessário aprender um modelo", e minha pergunta é: por que alguém adotaria uma abordagem baseada em modelo?
Um grande exemplo em que consigo pensar é quando você deseja que um agente aprenda sobre o ambiente ao redor sem realmente otimizar nada. Isso faz parte do problema do aprendizado contínuo; você precisa criar um modelo interno como "Eu bato nas paredes quando meu sensor de distância lê uma parede perto", para que esse agente possa generalizar essas informações para várias tarefas, se surgirem.
obrigado @Jaden Travnik. entendo por que seria útil aprender uma representação do ambiente ("bato nas paredes quando a distância está perto da parede") sem resolver alguma tarefa (por exemplo, navegar até a cozinha). mas por que isso seria considerado RL sem modelo e não uma tarefa de aprendizado supervisionado por baunilha?
Isso não seria um aprendizado supervisionado porque não há dados rotulados. O agente não tinha idéia do que os sinais significam, então não conseguiu distinguir um sensor de distância de um termômetro. O que o agente está aprendendo são previsões de sinais com base em outros sinais, o que é um modelo de seu mundo.
com uma abordagem baseada em modelo, o agente aprende a prever o próximo estado, de acordo com sua explicação original. faz isso aprendendo <x, y>, onde x é (s1, ação) e y é (s2, recompensa). desculpe se estou interpretando mal, mas não é esse aprendizado supervisionado?
No Aprendizado por Reforço, os termos "baseado em modelo" e "sem modelo" não se referem ao uso de uma rede neural ou outro modelo estatístico de aprendizado para prever valores ou mesmo para prever o próximo estado (embora o último possa ser usado como parte de um algoritmo baseado em modelo e ser chamado de "modelo", independentemente de o algoritmo ser baseado em modelo ou sem modelo).
Em vez disso, o termo refere-se estritamente se, enquanto durante a aprendizagem ou a ação, o agente usa previsões da resposta do ambiente. O agente pode usar uma única previsão do modelo da próxima recompensa e do próximo estado (uma amostra), ou pode solicitar ao modelo a próxima recompensa esperada ou a distribuição completa dos próximos estados e próximas recompensas. Essas previsões podem ser fornecidas inteiramente fora do agente de aprendizagem - por exemplo, por código de computador que entende as regras de um dado ou jogo de tabuleiro. Ou eles podem ser aprendidos pelo agente, caso em que serão aproximados.
Só porque existe um modelo do ambiente implementado, não significa que um agente RL seja "baseado em modelo". Para se qualificar como "baseado em modelo", os algoritmos de aprendizado precisam referenciar explicitamente o modelo:
Algoritmos que se baseiam apenas em experiências como Monte Carlo Control, SARSA, Q-learning e Actor-Critic são algoritmos RL "sem modelo". Eles dependem de amostras reais do ambiente e nunca usam previsões geradas do próximo estado e da próxima recompensa para alterar o comportamento (embora possam amostrar a partir da memória da experiência, que está perto de ser um modelo).
Os algoritmos arquetípicos baseados em modelo são Programação Dinâmica (Iteração de Política e Iteração de Valor) - todos eles usam as previsões ou distribuições do próximo estado e recompensa do modelo para calcular as ações ideais. Especificamente na Programação Dinâmica, o modelo deve fornecer probabilidades de transição de estado e recompensa esperada de qualquer estado, par de ações. Observe que isso raramente é um modelo aprendido.
O aprendizado básico de TD, usando apenas valores de estado, também deve ser baseado em modelo para funcionar como um sistema de controle e selecionar ações. Para escolher a melhor ação, ele precisa consultar um modelo que preveja o que acontecerá em cada ação e implementar uma política como onde é a probabilidade de receber recompensa e o próximo estado ao executar ação no estado . Essa função é essencialmente o modelo.π(s)=argmaxa∑s′,rp(s′,r|s,a)(r+v(s′))π(s)=argmaxa∑s′,rp(s′,r|s,a)(r+v(s′))rrs′s′
A literatura sobre RL diferencia entre "modelo" como um modelo de ambiente para aprendizado "baseado em modelo" e "sem modelo" e o uso de alunos de estatística, como redes neurais.
Parece-me que qualquer aluno sem modelo, aprendendo por tentativa e erro, poderia ser reformulado como baseado em modelo.
Acho que aqui você está usando o entendimento geral da palavra "modelo" para incluir qualquer estrutura que faça previsões úteis. Isso se aplicaria a, por exemplo, tabela de valores Q em SARSA.
No entanto, como explicado acima, não é assim que o termo é usado na RL. Portanto, embora seu entendimento de que a RL construa representações internas úteis esteja correto, não é tecnicamente correto que isso possa ser usado para re-enquadrar entre "livre de modelo" como "baseado em modelo", porque esses termos têm um significado muito específico em RL .
Nesse caso, quando os alunos sem modelo seriam apropriados?
Geralmente com o estado da arte atual em RL, se você não possui um modelo preciso fornecido como parte da definição do problema, as abordagens sem modelo geralmente são superiores.
Há muito interesse em agentes que constroem modelos preditivos do ambiente, e fazê-lo como um "efeito colateral" (embora ainda seja um algoritmo sem modelo) ainda pode ser útil - ele pode regularizar uma rede neural ou ajudar a descobrir os principais preditores preditivos. recursos que também podem ser usados ​​em políticas ou redes de valor. No entanto, os agentes baseados em modelo que aprendem seus próprios modelos para o planejamento têm um problema que a imprecisão nesses modelos pode causar instabilidade (as imprecisões se multiplicam quanto mais o futuro olhar para o agente). Algumas incursões promissoras estão sendo feitas usando agentes e / ou mecanismos baseados na imaginação para decidir quando e quanto confiar no modelo aprendido durante o planejamento.
No momento (em 2018), se você tiver um problema do mundo real em um ambiente sem um modelo conhecido explícito no início, a aposta mais segura é usar uma abordagem sem modelo, como DQN ou A3C. Isso pode mudar à medida que o campo avança rapidamente e novas arquiteturas mais complexas podem muito bem ser a norma em alguns anos.
Uma pequena correção, normalmente os termos "modelo baseado" ou "modelo livre" não são usados ​​para o planejamento de algoritmos como o MCTS. É usado apenas para classificar algoritmos de aprendizado.
@ MiguelSaraiva: Não estou 100% certo disso, mas removi a referência ao MCTS. Fora de interesse, onde você colocaria a DynaQ em relação a essa limitação do uso dos termos? Eu acho que fica complicado, quando todos os algoritmos compartilham uma visão tão comum do modelo MDP e aprimoram as políticas, para saber onde estão os limites entre planejamento e aprendizado.
Eu posso estar errado, sou um novato na área. Acabei de me lembrar de um professor de campo fazendo esse comentário depois de fazer a mesma observação.