J'ai implémenté Q-Learning comme décrit dans,
http://web.cs.swarthmore.edu/~meeden/cs81/s12/papers/MarkStevePaper.pdf
Afin d'env. Q (S, A) J'utilise une structure de réseau neuronal comme la suivante,
- Sigmoïde d'activation
- Entrées, nombre d'entrées + 1 pour les neurones d'action (toutes les entrées mises à l'échelle 0-1)
- Sorties, sortie unique. Q-Value
- N nombre de M couches cachées.
- Méthode d'exploration aléatoire 0 <rand () <propExplore
À chaque itération d'apprentissage en utilisant la formule suivante,
Je calcule une valeur Q-Target puis calcule une erreur en utilisant,
error = QTarget - LastQValueReturnedFromNN
et propager l'erreur à travers le réseau de neurones.
Q1, suis-je sur la bonne voie? J'ai vu quelques articles qui implémentent un NN avec un neurone de sortie pour chaque action.
Q2, Ma fonction de récompense renvoie un nombre compris entre -1 et 1. Est-il correct de renvoyer un nombre compris entre -1 et 1 lorsque la fonction d'activation est sigmoïde (0 1)
Q3, D'après ma compréhension de cette méthode, avec suffisamment d'instances de formation, elle devrait être mise en quarantaine pour trouver une stratégie optimale? Lors de l'entraînement pour XOR, il l'apprend parfois après 2k itérations parfois, il n'apprendra même pas après 40k 50k itérations.