Pergunta

Eu tenho que fazer algum trabalho com o aprendizado de Q, sobre um cara que precisa mover móveis em uma casa (é basicamente isso). Se a casa for pequena o suficiente, posso ter uma matriz que represente ações/recompensas, mas à medida que o tamanho da casa cresce, isso não será suficiente. Então, eu tenho que usar algum tipo de função de generalização para isso. Meu professor sugere que eu uso não apenas um, mas vários, para que eu possa compará -los e assim. O que vocês recomendam?

Ouvi dizer que, para essa situação, as pessoas estão usando máquinas vetoriais de suporte, também redes neurais. Não estou realmente dentro do campo, então não posso dizer. No passado, eu tinha alguma experiência com redes neurais, mas o SVM parece muito mais difícil de entender. Existem outros métodos que devo procurar? Eu sei que deve haver um zilhão deles, mas preciso de algo apenas para começar.

Obrigado

Foi útil?

Solução

Assim como uma atualização da terminologia, no q-learning, você está tentando aprender as funções Q, que dependem do estado e da ação:

Q(S,A) = ????

A versão padrão do q-learning, conforme ensinada na maioria das classes, informa que você para cada S e A, você precisa aprender um valor separado em uma tabela e informa como executar atualizações do Bellman para convergir para os valores ideais.

Agora, digamos que, em vez da tabela, você usa um aproximador de função diferente. Por exemplo, vamos tentar funções lineares. Pegue o seu par (S, A) e pense em vários recursos que você pode extrair deles. Um exemplo de um recurso é "estou ao lado de uma parede", outro é ", a ação colocará o objeto ao lado de uma parede" etc. Número esses recursos F1 (s, a), f2 (s, a) ,. ..

Agora, tente aprender a função Q como uma função linear desses recursos

Q(S,A) = w1 * f1(S,A) + w2*f2(S,A) ... + wN*fN(S,A)

Como você deve aprender os pesos w? Bem, como este é um dever de casa, vou deixar você pensar por conta própria.

No entanto, como uma dica, digamos que você tenha k possíveis estados e m ações possíveis em cada estado. Digamos que você defina recursos K*M, cada um dos quais é um indicador de se você está em um estado específico e vai tomar uma ação específica. Então

Q(S,A) = w11 * (S==1 && A == 1) + w12 * (S == 1 && A == 2) + w21 * (S==2 && A==3) ...

Agora, observe que, para qualquer par de estado/ação, apenas um recurso será 1 e o restante será 0, portanto, Q (S, A) será igual ao W correspondente e você está aprendendo essencialmente uma tabela. Portanto, você pode pensar no padrão, tabela Q-Learning como um caso especial de aprendizado com essas funções lineares. Portanto, pense no que o algoritmo normal de Q-Learning faz e o que você deve fazer.

Espero que você possa encontrar uma pequena base de recursos, muito menos que K*M, que permitirá que você represente bem seu espaço.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top