Pergunta

Atualmente, estou usando o Q-Learning para tentar ensinar a um bot a se mover em uma sala cheia de paredes/obstáculos. Ele deve começar em qualquer lugar na sala e chegar ao estado de gol (pode ser, para o ladrilho que tem uma porta, por exemplo). Atualmente, quando deseja se mudar para outro ladrilho, ele vai para esse ladrilho, mas eu estava pensando que, no futuro, eu poderia adicionar uma chance aleatória de ir a outro ladrilho, em vez disso. Ele só pode subir para cima, para baixo, para a esquerda e para a direita. Atingir o estado do objetivo produz +100 e o restante das ações renderá 0.

Estou usando o algoritmo encontrado aqui, que pode ser visto na imagem abaixo.

alt text alt text

Agora, sobre isso, tenho algumas perguntas:

  1. Ao usar o Q-Learning, um pouco como redes neurais, devo fazer distinção entre uma fase de aprendizado e uma fase de uso? Quero dizer, parece que o que eles mostraram na primeira foto é um aprendizado e, na segunda foto, usando uma.
  2. Eu li em algum lugar que ele aceitaria um número infinito de etapas para alcançar a tabela ideal de valores Q. Isso é verdade? Eu diria que isso não é verdade, mas devo estar perdendo alguma coisa aqui.
  3. Eu também ouvi sobre TD (diferenças temporais), que parecem ser representadas pela seguinte expressão:

    Q(a, s) = Q(a, s) * alpha * [R(a, s) + gamma * Max { Q(a', s' } - Q(a, s)]
    

    que para alfa = 1, apenas parece o mostrado primeiro na figura. Que diferença essa gama faz aqui?

  4. Eu corri algumas complicações se tentar uma sala muito grande (300x200 pixels, por exemplo). Como essencialmente funciona aleatoriamente, se a sala for muito grande, levará muito tempo para passar aleatoriamente do primeiro estado para o estado de gols. Quais métodos posso usar para acelerar? Eu pensei que talvez ter uma mesa cheia de trues e falsas, sobre o que eu já esteve naquele episódio nesse estado ou não. Se sim, eu o descartaria, se não, eu iria para lá. Se eu já estivesse em todos esses estados, iria para um aleatório. Dessa forma, seria como o que estou fazendo agora, sabendo que repetiria menos frequentemente que faço atualmente.
  5. Eu gostaria de tentar outra coisa além da minha tabela de pesquisa para valores Q, então estava pensando em usar redes neurais com propagação de volta para isso. Provavelmente tentarei ter uma rede neural para cada ação (para cima, para baixo, à esquerda, à direita), pois parece que é o que produz os melhores resultados. Existem outros métodos (além do SVM, que parecem muito difíceis de me implementar) que eu poderia usar e implementar que me dariam bons valores Q-valores de aproximação?
  6. Você acha que os algoritmos genéticos produziriam bons resultados nessa situação, usando a matriz de valores Q como base para ela? Como eu poderia testar minha função de condicionamento físico? Isso me dá a impressão de que o GA é geralmente usado para coisas muito mais aleatórias/complexas. Se assistirmos com cuidado, notaremos que os valores Q seguem uma tendência clara - com os valores Q mais altos próximos à meta e mais baixos, mais distantes você será deles. Vai tentar chegar a essa conclusão da GA provavelmente demoraria muito?
Foi útil?

Solução

Não sou especialista no assunto, mas vou dar uma rachadura em responder diretamente Em suas muitas perguntas
BTW, eu deveria obter repetições multi +para cada pergunta! ... apenas brincando, se eu estivesse em "para os representantes SO", ficaria claro ao postar que receberá um total de 20 visualizações com metade delas Visitantes tendo uma idéia aproximada dos conceitos em questão

1) q-learning uma coisa em duas fases?
Sim, o Q-Learning implica duas fases, uma fase de aprendizado e uma fase de ação. Como em muitos algoritmos de aprendizado automatizado, é possível "continuar aprendendo" enquanto está na fase de ação.

2) Número infinito de etapas para uma matriz G ideal?Não tenho certeza de onde a declaração exigindo um número infinito de ciclos de aprendizagem para aprender uma matriz Q ideal. Para ter certeza (e a menos que os fatores alfa e gama estejam incorretos), o algoritmo converge, mesmo que apenas a uma taxa possivelmente muito lenta. Isso me leva a pular e comentar sua idéia de um espaço de jogo 300x200, e bem ... sim! . Agora, pode ser possível que matematicamente o algoritmo nunca atinja o Nivarna ideal, mas para soluções práticas, trabalhar na assíntota é bom o suficiente.

3) Papel da gama no modelo TD
Isso indica a importância de adiar as recompensas, em um caminho (aqui com seu modelo, literalmente), em direção a recompensas mais altas. Isso geralmente impede o algoritmo de ficar preso nas maxintas locais do espaço da solução, ao custo de tornar o aprendizado ainda mais lento ...

4) sugestões para ajudar no aprendizado de um grande labirinto
Correndo o risco de trair a natureza do Q-Learning, você pode iniciar o robô a cada vez mais distâncias da meta. Isso ajudará a melhorar a matriz Q na área dos estados que cercam a meta primeiro e depois aproveitando essa matriz Q parcialmente aprendida como o estado inicial tomado, aleatoriamente, dentro de um raio crescente do objetivo.

Outra abordagem, mais arriscada (e, de fato, que pode crer ainda a verdadeira natureza do q-learning), seria alterar a matriz R para fornecer recompensas cada vez mais altas, localizadas aleatoriamente localizadas a uma distância decrescente do objetivo. A desvantagem dessa abordagem é que ela pode introduzir oportunidades de muitas maxatas locais no espaço da solução, onde o algoritmo pode ficar preso se a taxa de aprendizado e outros fatores não forem aprimorados corretamente.

Ambas as abordagens, em particular, as últimas podem ser interpretadas como uma "fiação" (o designer) em uma solução. Outros dirão que isso é apenas como uma maneira de introduzir uma pitada de DP na mistura ...

5) Algoritmo genético da rede neural (NN) 6) (GA)
Nenhuma opinião sobre a adição de NN ou GA à mistura.
Provavelmente fiz de bobo o suficiente com algumas das declarações menos matematicamente precisas acima. ;-)

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