Quatre frameworks pour passer au reinforcement learning

Quatre frameworks pour passer au reinforcement learning Afin de démocratiser l'apprentissage par renforcement, Facebook, Google, OpenAI et Keras proposent des boîtes à outils pour créer et former des modèles. Tour d'horizon de leurs avantages respectifs.

Après le deep learning, le reinforcement learning est la branche de l'intelligence artificielle la plus tendance du moment. Elle a été popularisée par les géants du numérique et notamment Amazon, Facebook et Microsoft qui concentrent leurs travaux de R&D sur cet apprentissage par renforcement. AlphaGo de DeepMind, la filiale de Google, s'est également appuyée sur cette méthode pour battre le champion du monde de go.

Sur le principe, le reinforcement learning consiste pour un agent autonome (un robot, un chatbot…) à apprendre de ses erreurs. S'inspirant du processus d'acquisition de connaissances propre à l'homme ou à l'animal, l'agent va prendre des décisions en se basant sur la somme des expériences passées. Pour cela, les algorithmes de reinforcement learning valident les "bonnes" décisions prises par la machine via un mécanisme de récompenses.

Si cette description peut paraître théorique, le reinforcement learning a fait ses preuves dans les domaines de la robotique de pointe, entre autres pour la voiture autonome. Pour autant, il est principalement utilisé par des chercheurs en R&D. Afin de démocratiser son usage, des outils et bibliothèques open source sont récemment apparus sous l'impulsion de Facebook et Google, en particulier. En voici une sélection.

Horizon de Facebook pour un passage à l'échelle

Le 1er novembre dernier, Facebook présentait Horizon, son framework d'apprentissage par renforcement, fruit de deux ans et demi de travaux. S'il peut être déployé sur un seul poste de travail, il est avant tout conçu pour un déploiement à grande échelle pouvant nécessiter des milliers de processeurs CPU ou GPU. En interne, Facebook utilise Horizon pour optimiser la qualité d'image des vidéos à 360° postés sur son réseau social ou suggérer des contenus pertinents dans son assistant personnel, M dans Messenger, en fonction des conversations tenues.

Pour concevoir Horizon, Facebook a utilisé différentes briques technologiques existantes. Le framework fait appel à Apache Spark pour le prétraitement des données d'apprentissage puis à des algorithmes basés sur PyTorch pour former les modèles. Pour rappel, PyTorch est une bibliothèque d'apprentissage machine développée par Facebook.

En ce qui concerne la formation du modèle de reinforcement learning, Horizon fait appel au mécanisme dit de CPE (Counterfactual policy evaluation) afin d'estimer ce qu'il a appris des décisions passées. Les résultats de cette évaluation sont restitués dans Tensorboard, la suite d'outils de visualisation des programmes Tensorflow de Google. Une fois la formation terminée, Horizon exporte ces modèles en utilisant le format de modèles d'apprentissage automatique ONNX (Open Neural Network Exchange).

Avec Horizon, Facebook estime avoir réuni tous les outils pour déployer une application de reinforcement learning en production. Pour ses chercheurs, ce framework va changer la façon de travailler des datascientists. Ils seront amenés à collaborer avec la machine en lui fixant des objectifs de haut niveau puis à les affiner avec le temps. Facebook a rédigé un livre blanc détaillant la façon dont les entreprises peuvent déployer Horizon et les cas d'usage possibles.

Dopamine de Google pour la simplicité d'utilisation

Fin août (quelques mois avant Facebook), Google publiait son framework d'apprentissage par renforcement. Baptisé Dopamine, il repose sur Tensorflow, la bibliothèque d'apprentissage automatique développé par la firme de Mountain View. L'équipe de chercheurs de Google Brain qui l'a développé précise que le code fourni a été compacté (il représente une quinzaine de fichiers Python) et documenté.

Dopamine fait appel à l'environnement d'apprentissage Arcade (Arcade Learning Environment, ALE), une référence. ALE fournit notamment une interface pour des centaines d'environnements de jeux pour la console Atari 2600. Le framework repose sur quatre agents fondés sur les valeurs : deep Q-network (DQN), l'agent résultant C51, une variante simplifiée de l'agent Rainbow et l'agent de réseau implicite quantile (Implicite Quantile Network), présenté lors de la dernière Conférence internationale sur l'apprentissage automatique (ICML). Google fournit aussi une couverture de tests complète.

Comme Facebook, Google propose aux développeurs de se benchmarker par rapport aux méthodes reconnues de reinforcement learning. Dopamine comprend les données d'entraînement (aux formats JSON et Python Pickle) des 60 jeux pris en charge par ALE. Un site dédié permet aux développeurs de visualiser les parcours de formation des quatre agents sur les 60 jeux en question. Enfin, Google met à leur disposition des modèles formés, des journaux de statistiques brutes et des fichiers d'événements Tensorflow à exporter dans Tensorboard.

OpenAI Gym, l'apprentissage par le jeu

Il sera peut-être détrôné par Horizon et Dopamine. En attendant, OpenAI Gym est l'environnement de travail le plus utilisé pour développer et comparer les modèles d'apprentissage par renforcement. Il a été lancé en avril 2016 par OpenAI, une association de recherche à but non lucratif basée à San Francisco et coprésidée par Elon Musk.

Compatible avec les bibliothèques d'apprentissage automatique telles que Tensorflow, ce framework propose un grand nombre d'environnements de formation des agents de différents niveaux de complexité. OpenAI Gym a, comme Google, intégré l'environnement d'apprentissage Arcade (ALE). Il prend aussi en charge le moteur MuJoCo qui permet de simuler un robot 2D ou 3D. En mars dernier, OpenAI a publié la version complète de Gym Retro, une plateforme de recherche sur l'apprentissage par renforcement basée sur des jeux vidéo vintage d'Atari et de Sega.

D'autres frameworks suivent cette approche ludique. On peut citer Universe, une extension de Gym du même OpenAI, et ViZDoom, une bibliothèque spécialement conçue comme son nom l'indique pour le célèbre jeu Doom. A noter que certains didacticiels, comme celui-ci, proposent d'utiliser PyTorch pour entraîner un agent d'apprentissage profond (DQN) depuis "la salle de gym" d'OpenAI.

Keras, le framework créé par un ingénieur français

Comme PyTorch, Keras est une bibliothèque open source basée sur Python. Elle a été créée par François Chollet, un ingénieur français travaillant pour Google. Keras se présente comme une interface de haut niveau permettant de créer des réseaux de neurones en se basant sur des frameworks comme Tensorflow, CNTK ou Theano. Selon la société de services Sicara, cette librairie permettrait de diminuer de 30% le temps de développement d'un prototype de réseaux de neurones. Elle est utilisée par Netflix, Uber, Yelp, le Cern et la Nasa.

Keras propose une déclinaison de son framework spécifiquement dédiée au reinforcement learning. Baptisée tout simplement Keras RL, elle permet de former cinq types d'agents : DQN, DDPG, NAF, CEM et Sarsa. Keras RL peut aussi faire tourner des algorithmes d'apprentissage en profondeur avancés tels que Monte Carlo, Markov Decision Process et Q-learning Il existe un grand nombre de tutoriels dédiés sur le web dont celui-ci.