• 12 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 20/01/2020

Concevez un algorithme d'apprentissage par renforcement profond

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Approchez la fonction de valeur ou la politique

Dans ce chapitre, nous allons étudier deux des trois principales familles de méthodes d’apprentissage par renforcement, à savoir : les approches basées valeurs, politiques ou modèles.

Approches basées sur les valeurs (ou méthodes indirectes)

Ces approches tentent d’estimer la mesure de performance associée à la politique désirée. Il s’agit d’un moyen indirect de chercher la meilleure politique. Plus précisément, les méthodes de cette famille visent à calculer la fonction de valeur Q . Une fois cette fonction calculée, nous savons comment déterminer une politique (voir les chapitres précédents).

Approches basées sur les politiques (ou méthodes directes)

Les approches de cette famille ne cherchent pas à calculer la fonction de valeur Q . Elles cherchent directement la meilleur politique π . Ces méthodes cherchent dans un espace de politiques appartenant à une famille prédéterminée de fonctions paramétriques, en essayant de maximiser les récompenses futures.

Méthodes basées sur le modèle

Les méthodes de cette famille visent d’abord à reconstruire le modèle de l’environnement P . Puis elles construisent un plan ou une politique en s’appuyant sur le modèle pré-construit. Nous n’aborderons pas cette dernière famille par la suite.

Algorithmes d’Apprentissage Renforcement (AR) profond

Jusqu’ici, nous avons défini trois familles d’approches pour résoudre notre problème d’apprentissage par renforcement. Nous avons par ailleurs vu un outil efficace d’apprentissage des représentations, à savoir l’apprentissage profond. Il est naturel d’utiliser l’apprentissage profond afin de représenter la fonction de valeur, la politique ou même le modèle.

Puis nous pouvons utiliser l'algorithme de descente de gradient stochastique — méthode qui a été si efficace en vision, audio et  traitement automatique de langues — afin d’optimiser la fonction de perte pour notre problème d’apprentissage par renforcement.

Une approche « AR profond »  basée valeur

Réseaux de neurones profonds de valeurs ou « Q-Networks »

Une étape fondamentale dans la conception d’un algorithme d'apprentissage par renforcement profond basé valeur est la construction d’une représentation profonde de la fonction de valeur Q appelée Q-networks. Il s’agit d’un réseau de neurones profonds capable d’estimer les valeurs de la fonction Q associée à la politique courante.

Version 1

En général, nous aurons une boîte noire, qui prend en entrées une paire  état-action (s,a) et retourne une estimation de la valeur Q en (s,a) — à savoir la performance d’être en l’état s et d’y prendre l’action a avec un vecteur de poids ww . Cette boîte noire permettra ainsi d’approcher notre fonction de valeur optimale Q :  Q(s,a;ww)Q(s,a). 

Entrées et sorties d'une fonction de valeur représentée sous forme de réseaux neuronal.
Entrées et sorties d'une fonction de valeur représentée sous forme de réseaux neuronaux
Version 2

Lorsque nous disposons d’actions discrètes, il est possible d’utiliser un autre réseau de neurones profonds, qui prend en entrée uniquement l’état s et retourne d’un bloc les estimations de la fonction de valeur pour toutes les paires état-action (s,a) . Cela signifie qu’en une seule passe dans le réseau nous pouvons obtenir des estimations {Q(s,a;ww)}aA(s) pour toutes les actions possibles en un état donné et ainsi choisir la meilleure des actions pour cet état.

Autre représentation d'une fonction de valeur sous forme de réseaux neuronaux.
Autre représentation d'une fonction de valeur sous forme de réseaux neuronaux

Algorithme Q-learning

L’approche d’apprentissage que nous allons d’écrire s’appuie sur l’algorithme dit du Q-learning ou apprentissage de la fonction Q . Cet algorithme permettra de définir la fonction de perte que nous utiliserons par la suite. Nous commençons par caractériser la fonction de valeur Q comme la solution des équations d'optimalité de Bellman vues précédemment.

Équations d'optimalité de Bellman

Pour rappel, les équations d'optimalité de Bellman s'écrivent :

Q(s,a;ww)E{r+γmaxaA Q(s,a) | s,a}.

Nous allons traiter l’expression de droite r+γmaxaA Q(s,a) comme notre cible dans notre schéma d’approximation. En d’autres termes, nous allons tenter, au fil des actualisations de la fonction de valeur Q , de rapprocher l’expression de gauche de l’expression de droite, c'est-à-dire de minimiser l'erreur quadratique moyenne entre ces deux quantités,

J(ww)[Q(s,a;ww)(r+γmaxaA Q(s,a))]2

La minimisation de cette fonction conduit progressivement vers la fonction de valeur Q . Pour cela, nous choisissons de façon adéquate le vecteur de paramètres ww .

Q-learning : fonction de perte

Ainsi, nous pouvons définir notre fonction de perte comme la distance qui sépare l’expression de gauche (la fonction recherchée) et l’expression de droite (notre cible). L’idée, ensuite, sera d’optimiser cette fonction de perte en utilisant l'algorithme de descente de gradient stochastique.

Q-learning : représentations tabulaires

[[Algorithme du Q-learning -- représentation tabulaire]].

Q-learning : représentations basées réseaux de neurones profonds

Malheureusement, lorsqu’on utilise des réseaux de neurones profonds,  l'algorithme du Q-learning diverge. Cette divergence est due à deux éléments : échantillons non i.i.d. et cibles de la règle d'actualisation non stationnaires.

Algorithme Deep Q-Network (DQN)

Deep Q-Networks ou DQN est le premier algorithme capable de surmonter les problèmes identifiés précédemment. Cet algorithme introduit dans l’algorithme Q-learning le principe de rejouer des expériences. L’idée est assez simple, comme nous allons le voir.

[[Pseudo-code de l'algorithme DQN]]

DQN : répétition d’expériences
DQN : geler le vecteur de paramètres « cibles »

Puis, nous optimisons pour l’essentiel la même fonction de perte que dans l'algorithme du Q-learning. À ceci prêt que nous gelons le vecteur de paramètres « cibles » pendant un certain temps durant l’apprentissage. De sorte à optimiser notre fonction de valeur par rapport à une cible « fixe ».

Une approche « AR profond » basée politique

Nous allons maintenant présenter une approche de la famille des méthodes d’apprentissage par renforcement basée politique.

Une politique comme un réseau de neurones profonds

La principale idée ici est qu’au lieu de paramétrer la fonction de valeur par un réseau de neurones profonds, nous allons paramétrer directement la politique par un réseau de neurones profonds :

P(a|s)=π(a|s;θθ)ou a=π(s;θθ).
Fonction de perte pour les approches basée politique

Comment est-ce qu’on défini la fonction de perte dans ce contexte?

Nous allons simplement revenir à l’objectif de notre problème d’apprentissage par renforcement, à savoir le cumul des récompenses décomptées en suivant la politique courante :

J(θ)=E{r1+γr2+γ2r3+ | π(;θθ)}.

Dès lors, on peut utiliser à nouveau l’algorithme de descente de gradient stochastique afin d’optimiser notre fonction de perte. Il s’agit essentiellement d’ajuster le vecteur de poids du réseau de neurones profonds représentant la politique, de sorte à maximiser le cumul décompté des récompenses.

Gradient de la politique (schéma acteur-critique)

Comment calculer le gradient de notre fonction de perte ?

La réponse à cette question est donnée par le théorème dit du « gradient de la politique ». Ce dernier stipule que le gradient est l’espérance du produit entre, d’une part, la fonction de valeur Q en suivant la politique courant et, d’autre part, le gradient du « log » de la politique :

J(θθ)θθE{logπ(a|s;θθ)θθQπ(s,a)}.

Intuitivement, le premier traduit l’intérêt que nous avons pour une action particulière et le second à quel point cette action est désirable. En bref, cette équation traduit le fait qu’une action avec une meilleure valeur doit être jouée plus souvent qu’une action avec une valeur moindre.

Algorithme A3C

Nous sommes désormais prêts à présenter un algorithme d’apprentissage par renforcement profond basée politique. Cet algorithme vise à maintenir plusieurs estimateurs associés respectivement à la fonction de valeur V et à la fonction de valeur Q .

[[Pseudo-code de l'algorithme A3C]]

A3C : fonction de valeur V

La fonction de valeur V estime le cumul décompté des récompenses en partant de n’importe quel état : 

V(s;νν)E{rt+1+γrt+2+ | s}.

A3C : fonction de valeur Q

La fonction de valeur Q estime à quel point une action est désirable dans un état donné. Elle est estimée à partir d’échantillons sur T -étapes et complétée par l’estimation de la valeur de l’état auquel on abouti jusqu’à la fin du processus :

Q(st,at)=rt+1+γrt+2++γn1rt+n+γnV(st+n;νν).

A3C: Actualiser le vecteur de paramètres de la politique

Nous allons ensuite greffer ces deux estimateurs dans notre règle d’actualisation du vecteur de paramètres de la politique :

J(θθ)θθ=logπ(at|st;θθ)θθ(Q(st,at)V(st;νν).

Notez que la différence entre la fonction Q et la fonction V traduit l’avantage de prendre une certaine action dans l’état courant.

A3C: Actualiser le vecteur de poids de la fonction V

Nous effectuons essentiellement la même opération, afin d’actualiser le vecteur de poids de la fonction de valeur V :

(νν)(Q(st,at)V(st;νν))2.

Nous sommes arrivés au terme de cette partie. Vous êtes désormais munis d’outils suffisants pour concevoir votre propre IA pour le contrôle de drone.  Dans la prochaine et dernière partie, nous montrerons un cas pratique de cette mise en application.

Exemple de certificat de réussite
Exemple de certificat de réussite