À l’heure actuelle, l’apprentissage par renforcement se révèle comme la façon la plus efficace de faire appel à la créativité des machines. Contrairement à un humain, une intelligence artificielle peut effectuer des milliers de tentatives en simultané. Il suffit pour ce faire de lancer le même algorithme en parallèle sur une puissante infrastructure informatique.
Cette formation fait suite à ma précédente formation d’initiation à l’apprentissage par renforcement (partie 1).
Dans cette nouvelle formation, vous allez étendre toutes les connaissances et les méthodes acquises dans le cadre d’environnements finis sur des environnements infinis, sur des tâches épisodiques et continues.
Vous apprendrez par exemple à coder des approximations de fonctions linéaires et non linéaires à l’aide de réseaux de neurones artificiels sous Keras / Tensorflow, à coder des algorithmes en ligne (on-policy) deep Sarsa et hors ligne (off-policy) deep Q-learning… Et bien plus encore !
J’ai pris soin dans cette formation de vous fournir des explications claires et de nombreux exemples vous permettront de bien comprendre comment sont construits les algorithmes et comment les mettre en œuvre en Python. Cette formation est organisée de la manière suivante :
Prédiction de type on-policy par approximations
Construction des fonctions d'approximations linéaires
Approximation des fonctions non linéaires avec les réseaux de neurones artificiels
Contrôle de type on-policy par approximations
Contrôle on-policy Deep-Sarsa
Méthodes off-policy avec approximations
Contrôle off-policy de type deep Q-Learning
Les activités en Python sont clairement expliquées. D'une durée totale de plus de 9h, ce cours vous permettra de comprendre et de mettre en application les algorithmes d’apprentissage par renforcement.
=== Prérequis ===
Des connaissances en Python sont un plus. Pour les parties davantage théoriques qui expliquent comment sont construits les algorithmes, des connaissances en Mathématiques (en particulier dans le domaine des probabilités) sont également un plus. Quelques notions sur les espaces vectoriels sont également un plus.
Les expériences menées dans ce cours sont réalisées à l'aide des carnets jupyter. Il vous faut donc également un accès à un environnement de type jupyterlab, comme par exemple avec Google Colab (gratuit avec un compte gmail). Toutes les ressources sont fournies avec le cours.
=== Thèmes étudiés dans la formation ===
#1. Prédiction de type on-policy par approximations
Dans cette première partie, nous introduirons les concepts liés à l’approximation de fonctions linéaires dans un cas très simple. Cela nous permettra d’évaluer les valeurs des états d’un environnement continu.
Pour optimiser les approximations, nous utiliserons les méthodes par descente du gradient stochastique et de semi-gradient.
#2. Construction des fonctions d'approximations linéaires
L’objectif de cette seconde partie est d’étudier la construction de fonctions d’approximations plus élaborées, tout en restant dans le cadre des approximations dites linéaires.
Nous verrons par exemple comment utiliser les bases polynomiales et les bases de Fourier à plusieurs dimensions.
#3. Approximation des fonctions non linéaires avec les réseaux de neurones artificiels
Les réseaux de neurones artificiels offrent d’énormes possibilités dans le cadre de l’approximation des fonctions non linéaires. De plus, des librairies Python telles que Keras et Tensorflow permettent de les mettre en œuvre de manière simple et efficace.
Nous verrons dans cette partie comment utiliser ces librairies pour nous aider à construire des réseaux de neurones artificiels et nous les utiliserons dans les algorithmes vus précédemment.
#4. Contrôle de type on-policy par approximations
Arrivé à cette étape, vous aurez vu comment utiliser des approximations de fonctions linéaires et non linéaires (à l’aide des réseaux de neurones) pour calculer les valeurs des états d’un environnement continu.
L’objectif de cette partie est d’introduire les algorithmes qui permettront d’obtenir des stratégies optimales en se basant sur les approximations linéaires des valeurs des états, c’est-à-dire d’étudier les problèmes liés au « contrôle ».
Nous verrons ici les versions « continues » des méthodes Sarsa et Sarsa n-step que nous avions déjà mises œuvre dans la première partie de la formation à l’apprentissage par renforcement.
#5. Contrôle on-policy Deep-Sarsa
Nous étudierons dans cette partie la méthode Deep-Sarsa, qui permet d’optimiser des stratégies non plus à l’aide de fonctions approximées linaires mais cette fois à partir de fonctions approximées par des réseaux de neurones.
C’est une méthode très puissante que l’on peut utiliser dans le cadre de l’apprentissage en ligne.
#6. Méthodes off-policy avec approximations
Dans le cas où l’apprentissage se fait hors-ligne, c’est-à-dire à partir de données récoltées par un agent suivant une stratégie d’exploitation, nous verrons que la mise en œuvre des approximations de fonctions linéaires pose de gros problèmes de stabilité et de convergence dans la détermination de stratégies optimales.
Nous ne pouvons plus malheureusement utiliser ce que nous avons vu précédemment lorsque l’apprentissage se fait hors-ligne… Nous passerons donc en revue les différentes étapes théoriques qui nous permettront de proposer de nouvelles méthodes adaptées à cette nouvelle problématique.
#7. Contrôle off-policy de type deep Q-Learning
Pour terminer, nous utiliserons les capacités offertes par les réseaux de neurones artificiels afin d’optimiser des stratégies dans le cadre d’un apprentissage hors-ligne.
Pour cela, nous utiliserons l’algorithme deep Q-learning, qui est en quelque sorte le cousin de l’algorithme deep-Sarsa (qui lui est réservé à l’apprentissage en ligne).
108
85
TAKE THIS COURSE