Je me suis penché sur l'apprentissage par renforcement, et plus particulièrement sur la création de mes propres environnements à utiliser avec l'OpenAI Gym AI. J'utilise des agents du projet stable_baselines pour tester avec lui.
Une chose que j'ai remarquée dans pratiquement tous les exemples RL est qu'il ne semble jamais y avoir de couches de décrochage dans aucun des réseaux. Pourquoi est-ce?
J'ai créé un environnement qui simule les prix des devises et un simple agent, utilisant DQN, qui tente d'apprendre quand acheter et vendre. La formation sur près d'un million de pas de temps tirés d'un ensemble spécifique de données consistant en un mois de données de prix de 5 minutes, il semble beaucoup trop. Si j'évalue ensuite les agents et le modèle par rapport à un mois de données différent, les performances sont catastrophiques. Cela ressemble donc à un sur-ajustement classique.
Mais y a-t-il une raison pour laquelle vous ne voyez pas de couches de décrochage dans les réseaux RL? Existe-t-il d'autres mécanismes pour essayer de faire face au sur-ajustement? Ou dans de nombreux exemples RL, cela n'a-t-il pas d'importance? Par exemple, il ne peut y avoir qu'un seul véritable moyen d'atteindre le meilleur score ultime dans le jeu «en petits groupes», vous pourriez donc aussi bien l'apprendre exactement, et pas besoin de généraliser?
Ou est-il considéré que la nature chaotique de l'environnement lui-même devrait fournir suffisamment de combinaisons différentes de résultats que vous n'avez pas besoin d'avoir des couches de décrochage?
la source
Réponses:
Le décrochage introduit essentiellement un peu plus de variance. Dans les environnements d'apprentissage supervisé, cela aide en effet souvent à réduire le sur-ajustement (bien que je pense que le décrochage est également déjà devenu moins .. à la mode ces dernières années que dans les quelques années précédentes; je ne suis pas sûr à 100% cependant, ce n'est pas ma principale Domaine d'expertise).
Dans l'apprentissage par renforcement, la variance supplémentaire n'est pas vraiment ce que nous recherchons. Il y a déjà généralement une grande variance dans les signaux d'apprentissage que nous recevons, et cette variance a déjà tendance à être un problème majeur pour la stabilité et / ou la vitesse d'apprentissage. Par exemple:
De nombreuses parties importantes des algorithmes Deep RL (sans lesquelles nos processus de formation se révèlent empiriquement déstabiliser et se décomposer) sont très bien conçues pour réduire cette variance. Par exemple, les réseaux cibles dans DQN ont été introduits spécifiquement pour réduire le problème des cibles mobiles. De ce point de vue, il n'est pas surprenant que si nous ajoutions encore plus de variance artificielle par d'autres moyens (tels que le décrochage), cela nuirait aux performances / déstabiliserait l'apprentissage.
Dans la majorité des recherches actuelles (approfondies) sur l'apprentissage par renforcement, le sur-ajustement n'est en effet pas considéré comme un problème. La grande majorité de la recherche RL consiste à s'entraîner dans un environnement (par exemple Cartpole, ou Breakout, ou un niveau particulier dans Pacman, ou à naviguer dans un labyrinthe spécifique, etc.), et à évaluer constamment les performances au cours de ce processus d'apprentissage, ou à évaluer performances après un tel processus d'apprentissage dans le même environnement .
Si nous devions comparer cette méthodologie d'évaluation à ce qui se passe dans l'apprentissage supervisé ... nous évaluons essentiellement les performances sur l'ensemble de formation * . Dans un apprentissage supervisé, cela serait absolument inacceptable, mais en RL, il est très bien traité comme acceptable et plus de règle que d'exception. Certains disent que c'est simplement un problème dans la recherche actuelle sur le RL, quelque chose qui doit changer. On pourrait également affirmer que ce n'est pas nécessairement un problème; si nous sommes vraiment en mesure de former l'agent dans précisément le même environnement dans lequel nous souhaitons le déployer plus tard ... eh bien, quel est le problème avec son sur-ajustement à cet environnement?
Ainsi, lorsque nous utilisons la méthodologie d'évaluation décrite ci-dessus, nous sur-adaptons en effet à un environnement spécifique, mais le sur- ajustement est bon plutôt que mauvais selon nos critères d'évaluation . Il est clair que cette méthodologie ne conduit pas à des agents capables de bien généraliser; si vous entraînez régulièrement un agent à naviguer dans un labyrinthe particulier, il sera probablement incapable de naviguer dans un labyrinthe différent après la formation.
* Remarque: la vérité, à mon avis, est légèrement plus nuancée que celle que nous "évaluons réellement sur l'ensemble d'entraînement" dans RL. Voir, par exemple, ce joli fil de tweets: https://twitter.com/nanjiang_cs/status/1049682399980908544
Notez que votre méthodologie d'évaluation décrite ici ne correspond en effet plus à la méthodologie d'évaluation la plus "courante". Vous avez un problème de dérive de concept , de non stationnarité dans l'environnement. Cela signifie que le sur-ajustement peut être un problème pour vous.
Pourtant, je ne sais pas si l'abandon aiderait (c'est encore une variance supplémentaire qui peut faire mal). Tout d'abord, vous voudrez vous assurer qu'il existe un moyen de suivre l'heure / mois dans vos entrées, de sorte que vous aurez au moins une chance d'apprendre une politique qui s'adapte au fil du temps. Si vous avez une frontière claire et solide entre la "phase de formation" et la "phase d'évaluation", et que vous savez que la dérive du concept se produit à travers cette frontière (vous savez que votre environnement se comporte différemment dans la phase de formation de la phase d'évaluation) ... vous n’ont vraiment pas beaucoup d’espoir d’apprendre une politique uniquement à partir de l’expérience de la phase de formation qui fonctionne toujours bien lors de la phase d’évaluation. Je suppose que vous devrez vous débarrasser de cette frontière claire et solide. Vous' Je veux également continuer à apprendre tout au long de la phase d'évaluation. Cela permet à votre algorithme d'apprentissage de collecter réellement de l'expérience dans l'environnement modifié et de s'y adapter.
la source