Académique Documents
Professionnel Documents
Culture Documents
Rapport Projet 10 OEDR
Rapport Projet 10 OEDR
Au terme de ce travail, on
tient à exprimer notre
profonde gratitude à notre
cher professeur et
encadrant M. TARIF HAJJI pour son suivi et pour son soutien, qu’il n’a
cessé de nous prodiguer tout au long de la période du projet.
ii
1 Introduction..........................................................................................................................1
2 Problématique.......................................................................................................................1
3 Vision globale sur les systèmes ADAS.................................................................................2
3.1 Les véhicules autonomes............................................................................................................2
3.2 Les systèmes avancés d’aide à la conduite (ADAS).....................................................................3
3.3 Les capteurs................................................................................................................................4
3.3.1 Caméra.........................................................................................................................................4
3.3.2 Lidar..............................................................................................................................................5
3.3.3 Radar............................................................................................................................................7
3.3.4 Capteur Ultrason...........................................................................................................................8
3.3.5 Avantages et inconvénients de chaque technologie.....................................................................9
4 La perception de l’environnement.......................................................................................9
5 Architecture logicielle modulaire représentative pour les voitures autonomes............12
5.1 Module perception de l’environnement...................................................................................12
5.2 Module de mappage d’environnement....................................................................................14
5.3 Module de planification de mouvement..................................................................................15
5.4 Le module de contrôleur..........................................................................................................16
5.5 Le module du superviseur.........................................................................................................16
6 La hiérarchie du planificateur de mouvement................................................................18
1 Introduction........................................................................................................................23
2 Idée générale de l’apprentissage par renforcement........................................................23
3 L’apprentissage par renforcement appliqué à la conduite autonome...........................24
3.1 Principes généraux du RL dans le cas de la conduite autonome...............................................24
3.2 Le Q-Learning............................................................................................................................25
3.3 Le Deep Q-Learning (DQL)........................................................................................................27
3.4 Expérience replay.....................................................................................................................31
3.5 Le double Deep Q-learning ou DDQL........................................................................................33
3.6 Conclusion................................................................................................................................34
4 Partie Algorithme...............................................................................................................35
iii
CHAPITRE 1 - PRESENTATION DE L’OEDR ET
REVUE DE LITTERATURE
iv
1 Introduction
Ce chapitre abordera une introduction générale sur les systèmes ADAS, où on va définir la
taxonomie pour classer le niveau d’automatisation dans une voiture autonome , ensuite nous
couvrirons les différents capteurs qui peuvent être utilisés pour la perception à savoir les
technologies de chaque type de capteurs et leurs apports par rapport à l'autonomisation du
véhicule, par suite nous allons passer en avant les nombreux processus de perception où on va
définir la tâche de perception énumérant les exigences pour la perception telles que quel objet
statique ou dynamique nous devons identifier, et quel besoin nous avons pour suivre le
mouvement des véhicules ego à travers l’environnement. Enfin, nous allons conclure par
l’architecture logicielle modulaire représentative pour les voitures autonomes où on va
détailler les différents modules que comporte cette architecture.
2 Problématique
Pour un conducteur la tâche de conduite comporte essentiellement 4 tâches :
Premièrement, nous avons un contrôle latéral qui fait référence à la tâche de diriger et de
naviguer latéralement sur la route, tourner à gauche, à droite, aller droit ou suivre une courbe.
Ensuite nous avons un contrôle longitudinal c'est la tâche où nous contrôlons la position ou la
vitesse de la voiture le long de la chaussée par des actions comme la rupture ou l'accélération
Ensuite, nous avons l'OEDR qui est essentiellement la capacité de détecter les objets et les
événements qui affecte immédiatement la tâche de conduite et de réagir à eux de manière
appropriée.
Enfin il y a quelques tâches diverses que les gens font en conduisant aussi ceux-ci
comprennent des actions comme la signalisation avec des indicateurs, agitons la main
interagissant avec d'autres conducteurs et ainsi de suite.
Tout cela est une description claire des tâches que nous attendons d'une voiture autonome
d'effectuer et l'OEDR englobe vraiment une grande partie de cette conduite autonome, d'où
notre objectif principal dans ce sujet c'est de se pencher sur la compréhension de l’OEDR et
de concevoir un modèle nous permettant de bien le réaliser.
1
Figure 1 - Taxonomie pour classer le niveau d’automatisation dans une voiture autonome
2
Niveau 2 : niveau d’automatisation partielle, le système effectue à la fois des taches de
contrôle latéral et longitudinal dans des scénarios de conduite spécifiques, mais tout s’effectue
sous supervision constante du conducteur, qui peut décider de reprendre la main à tout
moment, par exemple l’assistance au stationnement (le Parking Assist), qui n’est activée que
lorsqu’une place de stationnement est détectée ou choisie par le conducteur.
Niveau 4 : c’est un niveau hautement automatisé dans lequel le conducteur n’intervient déjà
plus et peut en effet complètement détourner son attention pour faire autre chose. En
revanche, ce niveau ne concerne que certains modes de conduite, et sous certaines conditions.
C’est le conducteur qui active et désactive le mode automatisé
Niveau 5 : c’est l’automatisation ultime : l’être humain n’intervient plus, ni dans le contrôle,
ni dans la supervision de la tâche de conduite ou de navigation. Tout est sous la responsabilité
et le contrôle du système. La présence même d’un être humain aux commandes n’est plus
forcément nécessaire.
Ils sont classés selon leurs fonctions en deux catégories, les fonctions passives alertant des
problèmes potentiels et les fonctions actives prenant le contrôle du véhicule pour éviter les
collisions.
3
Figure 2 - Fonctions passives et actives des différents systèmes ADAS
3.3.1 Caméra
Une caméra est constituée d'un imageur, d'une optique et d'un ECU pour le traitement des
images permettant de détecter, reconnaitre et estimer les marquages au sol (position et
courbure des lignes), mais aussi de suivre et classifier des objets (voiture, camion, deux-roues,
piéton) sur des bases d'apprentissages de caractéristiques typiques [1].
4
Les techniques d'apprentissage profond, ou Deep-Learning, sont de plus en plus intégrées
pour la classification et la segmentation des objets.
La portée de détection des objets et marquages peut aller jusqu'à 120 m pour des conditions
météorologiques favorables (les caméras sont très impactées en performances de nuit, en
situation de brouillard ou fortes pluies).
C’est une des technologies les plus utilisées à ce jour dans les ADAS, on va retrouver des
caméras pour permettre de réaliser :
• Assistance de parking
Figure3 - Exemples de caméras : mono caméra (a), stéréovision (b) et caméra de parking (c) [1]
3.3.2 Lidar
Un lidar utilise la lumière (généralement infrarouge autour de 905 nm) pour la télémétrie des
objets (temps entre l'émission et la réflexion d'une impulsion connaissant la vitesse de la
lumière). Il est capable de déterminer le contour des obstacles statiques et dynamiques et d'en
5
extraire les mêmes paramètres que ceux obtenus avec des radars ou caméras, mais avec des
précisions plus importantes.
Son fonctionnement est basé sur la mesure du temps de réflexion d'une impulsion lumineuse.
Pour cela, une diode laser émet une impulsion de lumière polarisé et cohérente dans le
domaine ultraviolet, visible ou infrarouge. Cette impulsion va alors être réfléchie sur
l'obstacle le plus proche dans la direction de l'émission. Le signal réfléchi est perçu grâce à un
photodétecteur.
On peut alors connaître le temps qu'a mis la lumière pour faire l'aller-retour, et en connaissant
la vitesse de la lumière on peut connaître la distance de l'obstacle. Le balayage du faisceau de
mesure est réalisé par un prisme rotatif et couvre un angle de vision jusqu'à 360 degrés. Les
données originales d'un lidar ressemblent beaucoup aux données d'image de vision. Par
conséquent, une procédure similaire au traitement d’image est appliquée. Tout d’abord, les
points de données en bloc sont regroupés en différents objets par segmentation. Ensuite, les
objets sont classés en différentes catégories en fonction de leurs caractéristiques. Par exemple,
les piétons peuvent être classés selon les caractéristiques de leurs jambes mobiles
Figure 4 - Illustration du capteur Scala de Valeo utilisé par Audi pour l'autonomie de niveau 3
(a), d'un capteur Velodyne utilisé pour les robots taxi (b) et d'un lidar Solid State (c) d'Innoviz
pour les futurs véhicules série [1]
6
Figure 5 - Exemple de ce que peut percevoir un lidar 360◦ sur le toit d'un robot taxi [1]
3.3.3 Radar
Un radar exploite des ondes électromagnétiques pour mesurer la distance et la position d’un
objet. Il est constitué d’une antenne émettrice et de deux antennes réceptrices, un courant
alternatif est appliqué à l’antenne émettrice celle-ci génère et envoie une onde
électromagnétique. Sur la base de l'analyse des signaux arrière rebondis, les objets peuvent
être détectés avec leur distance et leur vitesse. En plus de l’émission d’une onde, un radar
utilise le principe de l’effet Doppler, ce qui lui permet de connaitre les différentes vitesses des
obstacles.
• Le radar ne doit pas être derrière une pièce métallique (plus fréquemment derrière un
parechoc)
Figure 6 - Exemples de radars Bosch dits Middle Range (a) et Long Range (b) [1]
7
Figure 7 - Exemple de ce que peut percevoir les différents types de radar (courte, moyenne et
longue portée)
Les détecteurs ou capteurs à ultrasons transmettent des ondes ultrasonores (haute fréquence
généralement entre 43 et 60 kHz). Lorsqu’un obstacle ou un objet passe, une partie de l'onde
sonore transmise est réfléchie vers le récepteur. Sur la base de l'analyse du signal réfléchi, les
objets peuvent être détectés avec leur distance et leur vitesse. Ces capteurs sont capables de
mesurer des distances pour un coût très faible. Du fait de leur portée assez réduite (jusqu'à 2,5
m), ils sont essentiellement et très largement déployés sur les véhicules pour les applications
d'aide au stationnement. Une extension à la surveillance d'angle mort est aussi disponible pour
certains véhicules pour limiter les coûts de cette fonction en remplacement de radars, mais
avec des performances moindres.
Figure 8 - Exemple d'un capteur ultrasons utilisé pour les fonctions de parking et de surveillance
d'angle mort [1]
8
3.3.5 Avantages et inconvénients de chaque technologie
Figure 9 -Tableau récapitulatif des avantages et inconvénients de chaque capteur, notés de 1 à 5 [1]
Les capteurs qu’on vient de présenter ci-dessus sont des capteurs extéroceptifs, ils permettent
de percevoir l’environnement autour du véhicule égo, il existe aussi d’autres capteurs
proprioceptifs qui permettent au véhicule égo de se localiser dans le milieu où il évolue et
déterminent aussi sa vitesse et son cap, les plus courants sont les systèmes mondiaux de
navigation par satellite GNSS tel que GPS, IMU ainsi que des capteurs d’odométrie de roue.
4 La perception de l’environnement
Très grossièrement, toutes les tâches de conduite peuvent être divisées en deux composantes.
Tout d’abord nous devons comprendre ce qui se passe autour de nous et où nous sommes,
donc nous devons percevoir notre environnement. Deuxièmement, nous devons prendre une
décision de conduite, par exemple devrions nous accélérer ou s’arrêter avant qu’un piéton ne
pénètre dans la chaussée.
9
La notion de perception de l’environnement est fondamentale pour les véhicules autonomes.
Le véhicule autonome ne doit pas seulement être capable de se localiser dans le milieu où il
évolue, mais il doit pouvoir percevoir les obstacles qui l’entourent et les éviter tout en gardant
en mémoire que ces objets peuvent être statiques ou dynamiques et donc non cartographiés à
l’avance. Il faut donc savoir ce qui se passe dans l’environnement direct du véhicule et savoir
ce qui peut être ou devenir dangereux pour lui lors de ses déplacements.
Les différents éléments dont nous avons besoin pour être en mesure d’identifier pour la tâche
de perception
- feux de signalisation
10
Identification des objets dynamiques
- véhicules
- piétons
Localisation de l’égo
- Position
- vitesse, accélération
- le feu de signalisation
11
5 Architecture logicielle modulaire représentative pour les voitures
autonomes
L’architecture utilise les informations fournies par les composants matériels et nous permettra
d’atteindre notre objectif de conduite autonome.
La voiture observe l’environnement qui l’entoure en utilisant une variété de capteurs, les
mesures des capteurs bruts sont passées à deux ensemble de modules dédiées à la
compréhension de l’environnement autour de la voiture .
12
Il y’a deux parties importantes de la pile de perception, premièrement la localisation du
véhicule dans l’espace, ainsi que la classification et la localisation des objets importants dans
l’environnement.
-le module de localisation prend en charge plusieurs flux d’informations, tels que
l’emplacement GPS actuel, les mesures IMU et l’odométrie des roues, il les combine pour
obtenir un emplacement précis du véhicule. Pour plus de précision, certains modules de
localisation intègrent également des données LIDAR et caméra [4].
-le module de détection d’objet dynamique utilise un ensemble d’entrées de caméra ainsi
que des nuages de points LIDAR pour créer des boites de délimitation 3D (3D bounding
boxes) autour d’objets dynamiques dans la scène [4].
« The 3D bounding boxes encodent également la classe ou le type d’objet, la position exacte,
ainsi que l’orientation et la taille de l’objet »
Une fois détectés, les objets dynamiques sont suivis au fil du temps par un module de suivi
(tracking module) celui-ci fourni la position actuelle des objets dynamiques ainsi que
l’historique de son chemin à travers l’environnement.
« L’historique du chemin est utilisé avec road map dans l’ordre pour prédire le chemin futur
de tous les objets dynamiques, ceci est généralement géré par un module de prédiction, qui
combine toutes les informations concernent l’objet dynamique et l’environnement actuel pour
prédire le chemin de tous les objets dynamiques »
-le module de détection d’objets statiques s’appuie également sur une combinaison d’entrée
de la caméra et de LIDAR pour identifier les objets statiques significatifs dans la scène,
comprennent la voie actuelle dans laquelle le véhicule autonome se trouve et l’emplacement
des éléments réglementaires tels que les panneaux de signalisation et les feux de circulation
[4].
13
5.2 Module de mappage d’environnement
Il y’a trois types de cartes ; la carte de la grille d’occupation (occupancy grid map), la carte de
localisation (localisation map), et la carte routière détaillée [4].
- la carte de la grille d’occupation est une carte de tous les objets statiques dans
l’environnement entourant le véhicule , le LIDAR est principalement utilisé pour construire
cette carte , un ensemble de filtres sont d’abord appliqués au données LIDAR pour les rendre
utilisables par la grille d’occupation : par exemple , les points de surface de navigation et les
points d’objet dynamique sont supprimés , cette carte représente l’environnement sous forme
d’un ensemble de cellules de grilles et associe une probabilité que chaque cellule soit occupée
.Cela permet de gérer l’incertitude dans les données de mesure et d’améliorer la carte au fil
de temps [4].
-la carte de localisation, qui est construite à partir de LIDAR, ou de donnée caméra est utilisé
par le module de localisation afin d’améliorer l’estimation de l’état actuel du véhicule.
Les données des capteurs sont comparées à cette carte en conduisant pour déterminer le
mouvement de la voiture par rapport à la carte de localisation, ce mouvement est ensuite
combiné avec d’autres informations des capteurs propriocepteurs pour localiser avec précision
le véhicule égo [4].
-la feuille de route détaillée fournit une carte des segments routiers qui représentent
l’environnement de conduite que traverse actuellement le véhicule autonome, il capture les
panneaux et les marques de voie d’une manière qui peuvent être utilisé pour la planification
de mouvement, cette carte est traditionnellement une combinaison de données préenregistrées
ainsi que l’informations entrantes provenant de l’environnement statique actuel rassemblées
par la pile de perception [4].
14
5.3 Module de planification de mouvement
La sortie des cartes d’environnement et les modules de perception sont combinés et utilisés
par le module de planification de mouvement pour créer un chemin à travers l’environnement.
La planification de mouvement pour les voitures autonomes est une tâche difficile et c’est
difficile à résoudre en un seul processus intégré au lieu de cela, la plupart des voitures
autonome utilisent aujourd’hui une décomposition qui divise le problème en plusieurs
couches d’abstraction comme suit :
-Au niveau supérieur, le planificateur de mission gère la planification à long terme et défini
la mission sur tout l’horizon de la tâche de conduite, à partir de l’emplacement actuel, en
passant par le réseau routier jusqu’à sa destination finale [4].
Un exemple, c’est de savoir si le véhicule doit fusionner dans une voie adjacente compte tenu
de la vitesse souhaitée et les comportements prévus des véhicules à proximité.
15
Enfin, le planificateur local effectue une planification immédiate ou réactive, et responsable
de la définition d’un chemin et d’un profil de vitesse spécifiques à piloter.
Le plan local doit être smoot, sure et efficace compte tenu de toutes les contraintes actuelles
imposées par l’environnement et la manœuvre.
Afin de créer un tel plan, le planificateur local combine les informations fournies par le
planificateur de comportement, la grille d’occupation, les limites de fonctionnement du
véhicule et d’autres objets dynamiques dans l’environnement.
« La sortie du planificateur local est une trajectoire planifiée et un profil de vitesse pour une
courte période dans le futur. »
-le contrôleur latéral émet l’angle de braquage requis pour maintenir la trajectoire prévue,
tandis que le contrôleur longitudinal règle la manette des gaz, les vitesses et le système de
freinage pour atteindre la vitesse correcte.
Les contrôleurs calculent les erreurs actuelles et les performances de suivi du plan local, et
ajustent les commandes d’actionnement en cours pour minimiser les erreurs à l’avenir [4].
16
Le superviseur système est le module qui surveille en permanence tous les aspects de la
voiture autonome et donne l’avertissement approprié en cas de défaillance du sous-système.
-Le superviseur du matériel surveille en permanence tous les composants matériels pour
vérifier tout défaut, comme un capteur cassé, une mesure manquante ou des informations
dégradées. Une autre responsabilité du superviseur matériel est d’analyser continuellement les
sorties matérielles pour toutes les sorties qui ne correspondent pas au domaine dans lequel la
voiture autonome a été programmée pour travailler dedans, par exemple si un sac en papier ou
si la neige tombe et corrompt les données du nuage de points LIDAR [4].
-Le superviseur du logiciel a la responsabilité de valider cette pile logicielle pour s’assurer
que tous les éléments fonctionnent comme prévu aux bonnes fréquences et fournissent des
sorties complètes, il est également responsable de l’analyse des incohérences entre les sorties
de tous les modules [4].
17
6 La hiérarchie du planificateur de mouvement
Le planificateur de mission est le problème d’optimisation le plus élevé ou nous concentrons
sur la navigation au niveau de la carte depuis la position actuelle du véhicule jusqu’à une
destination donnée.
-Nous planifions entre deux points prenant en considération les différentes intersections et
liaison routières sur la carte, ainsi que la direction de chaque route, nous calculons ensuite le
chemin le plus court de notre réseau routier jusqu’à notre destination, pour cela on peut
construire un graph et ensuite utiliser l’algorithme de Dijkstra ou la recherche A* pour trouver
le plus court chemin
18
Il existe trois grandes catégories de planificateurs de parcours : les planificateurs basés sur
l’échantillonnage (RRT algorithme,), les planificateurs vibrationnels et les planificateurs en
réseau.
Détaillons encore le planificateur comportemental car c’est le sous-module qui nous assure la
réalisation de la réponse immédiate :
Par exemple :
Le véhicule est entré dans une intersection pour effectuer un virage à gauche et que le feu
tourne au vert, le planificateur de comportement doit indiquer clairement au planificateur de
trajectoire et au générateur de vitesse, qu’il n’est sûr de procéder que lorsqu’il y a
suffisamment de temps entre la position du véhicule et les circulations et les piétons venant en
sens inverse dans l’intersection, le planificateur de comportement est censé prendre toutes les
informations sur les véhicules autonomes environnants et calculer quelle manœuvre il devrait
exécuter de manière efficace. Il s’agit d’un domaine de recherche active et il n’existe pas de
meilleure méthode établie pour y parvenir.
-les méthodes qui utilise des machines à état fini (finite state Machines) :
Le concept clé derrière les machines à état fini est qu'elles sont composées de : états qui
représentent les manœuvres requises par les ego-véhicules, et transitions qui dictent comment
l'état doit évoluer en fonction des entrées. Il peut s'agir de choses comme : l'emplacement des
véhicules, les transitions des feux de circulation, ou tout autre élément intéressant notre
scénario de conduite actuel. À titre d'exemple, on pourrait imaginer une machine d'état qui
gère les panneaux d'arrêt pour avoir un état tel que décélération pour arrêter, arrêter et suivre
la vitesse. Lorsqu' une voiture rencontre un panneau d'arrêt, elle entre d'abord dans l'état de
19
décélération pour arrêter, où le planificateur comportemental signale alors qu'il est temps de
décélérer. Une fois qu'il s'est arrêté à l'emplacement d'arrêt, le planificateur de comportement
reste à l'état d'arrêt pendant une période définie.
Une fois que le temps a été dépassé et que l'intersection est dégagée, le planificateur de
comportement entrera alors dans l'état des vitesses de la piste, ce qui signifie qu'il est sûr de
continuer à conduire
- Il est important de noter que lors de la décision de la transition à prendre à chaque étape de
la machine à état fini, nous nous concentrons entièrement sur l'état actuel et les entrées de la
machine à état fini. !
Essentiellement, cela signifie que la machine à état fini est sans mémoire. Ses états passés
n'ont pas d’incidence sur la transition ou la production actuelle. Il s'agit d'une propriété utile
qui rend les machines à état fini simples à implémenter, mais peut conduire à de nombreux
états similaires pour les systèmes où les séquences d'actions ont de l'importance.
21
CHAPITRE 2 – APPRENTISSAGE PAR
RENFORCEMENT
1 Introduction
Dans ce chapitre , nous mettons en évidence les solutions pratiques qui permettent au véhicule
autonome de prendre des décisions de conduite adéquates en utilisant l’apprentissage par
22
renforcement , l’idée est d’entrainer un agent à prédire les modifications à apporter sur
l’accélération et la direction à partir d’une image issue de la caméra frontale de la voiture ,
pour cela on va utiliser trois méthodes le Q-Learning , le Deep Q-Learning et le double Deep
QLearning avec expérience replay où on va expliciter leurs concepts généraux et expliquer en
détail le fonctionnement de l’algorithme de renforcement learning que nous avons choisi.
Dans notre projet, nous allons étudier l’utilisation d’une solution d’apprentissage par
renforcement (RL – Renforcement Learning – pour les intimes) pour la conduite autonome
selon le contexte schématisé sur la figure ci-dessous.
Figure 10 - L’objectif est d’entraîner un agent à prédire les modifications à apporter sur
l’accélération et la direction à partir d’une image issue de la caméra frontale de la voiture.
23
3 L’apprentissage par renforcement appliqué à la conduite
autonome
3.1 Principes généraux du RL dans le cas de la conduite autonome
• L’agent est le pilote de la voiture autonome, ou plus exactement l’algorithme de
RL utilisé par la voiture pour gérer son pilotage. C’est lui que l’on cherche à
entraîner.
• Les actions que peut entreprendre l’agent dans l’environnement sont la
modification de la direction de la voiture et son accélération.
• Les états dans lesquels peut se retrouver notre agent à tout instant t (notés st) sont
décrits par une image issue de la caméra frontale de la voiture.
• L’environnement est la route sur laquelle évolue notre voiture.
• L’épisode est la suite d’étapes se finissant par une sortie de route de la voiture.
Figure 11 - Principe général de l’apprentissage par renforcement appliqué à notre cas d’usage.
24
3.2 Le Q-Learning
Définition :
Le Q-learning est un algorithme d'apprentissage par renforcement utilisé pour résoudre les
problèmes de décision. Il permet à un agent de découvrir la meilleure action à prendre dans
chaque état en utilisant une fonction de valeur appelée "fonction Q". La fonction Q est mise à
jour en fonction de la récompense obtenue pour chaque action et de la valeur attendue de la
prochaine action. Le Q-learning est souvent utilisé pour résoudre les problèmes de contrôle et de
navigation dans les environnements discrets.
Description
Cette méthode d'apprentissage permet d'apprendre une politique, qui indique quelle action
effectuer dans chaque état du système. Cela fonctionne par l'apprentissage d'une fonction de
valeur état-action notée Q qui permet de déterminer le gain potentiel, c'est-à-dire la
récompense sur le long terme, Q (s, a), apporté par le fait d'effectuer une certaine action a
dans un certain état s en suivant une politique optimale. Lorsque cette fonction de valeur
d'action-état est connue/apprise par l'agent, la politique optimale peut être construite en
sélectionnant l'action à valeur maximale pour chaque état, c'est-à-dire en sélectionnant l'action
a qui maximise la valeur Q (s, a) quand l'agent se trouve dans l'état s.
Un des points forts du Q-learning est qu'il permet de comparer les récompenses probables de
prendre les actions accessibles sans avoir de connaissance initiale de l’environnement. En
d'autres termes, bien que le système soit modélisé par un processus de décision markovien
(fini), l'agent qui apprend ne le connait pas et l'algorithme du Q-learning ne l'utilise pas [3].
Algorithme
action l'agent passe d'un état s à un nouvel état s’ et reçoit une récompense r (c'est une
valeur numérique). Le but de l'agent est de maximiser sa récompense totale. Cela est réalisé
par apprentissage de l'action optimale pour chaque état. L'action optimale pour chaque état
correspond à celle avec la plus grande récompense sur le long terme. Cette récompense est la
somme pondérée de l'espérance mathématique des récompenses de chaque étape future à
partir de l'état actuel. La pondération de chaque étape peut être est le délai entre
l’étape actuelle et future et 𝛾 un nombre compris entre 0 et 1 (autrement dit 0 ≤ 𝛾 ≤1)
25
L'algorithme calcule une fonction de valeur action-état :
Avant que l'apprentissage ne débute, la fonction est initialisée arbitrairement. Ensuite, à
chaque choix d'action, l'agent observe la récompense et le nouvel état (qui dépend de l'état
précédent et de l'action actuelle). Le cœur de l'algorithme est une mise à jour de la fonction de
valeur. La définition de la fonction de valeur est mise à jour à chaque étape de la façon
suivante :
Où s’ est le nouvel état, s est l'état précédent, a est l'action choisie, r est la récompense reçue
par l’agent, 𝜶 est un nombre entre 0 et 1, appelé facteur d'apprentissage, et 𝜸 est le facteur
d'actualisation.
Un épisode de l'algorithme finit lorsque 𝒔𝒕+1 est un état final. Toutefois, le Q-learning peut
aussi être appliqué à des tâches non épisodiques. Si le facteur d'actualisation est plus petit que
1, la valeur action-état est finie même pour ∆𝒕 infini.
N.B. : Pour chaque état final 𝑠𝑡 , la valeur de 𝑸(𝒔𝒇,𝒂) n'est jamais mise à jour et maintient sa
valeur initiale. Généralement, 𝑸(𝒔𝒇,𝒂) est initialisé à zéro.
Figure 12 - La fonction de valeur action-état dans une table est initialisée à 0 pour chaque
26
couple
action-état. Chaque cellule est mise à jour pendant l'exécution de l'algorithme Q-learning.
Figure 13 - La fonction de valeur est ce que l’on espère gagner sur le long terme si l’on
entreprend une certaine action dans un certain état en suivant une certaine politique.
Dans notre cas, on choisit de décrire chaque état par une image de la route et après un
prétraitement, cette image est en noir et blanc de taille 84 par 84. La taille de l’espace des
états
(noté S) dans ce cas est donc |S| = 256^ (84×84) ≈ 1O^ (16 992), ce qui est bien trop grand
pour autoriser une représentation de la fonction de valeur Q sous forme de tableau (qui aurait
donc 1O^ (16 992 lignes)).
27
Figure 14 - Exemple où on a 5 actions possibles correspondant à 5 angles de braquage
différents, l’accélération étant fixée constante.
On veut utiliser ici un réseau de neurones comme un “oracle” que l’on consulte. On lui
présente une image de la route et il nous indique pour chaque action possible la récompense
totale que l’on est censé obtenir avant de sortir de la route (i.e. avant la fin de l’épisode)
comme le montre la figure ci-dessus. Bien entendu cet oracle n’est pas pertinent au début de
l’entraînement car on choisit en général des poids aléatoires quand on initialise un réseau de
neurones mais on va l’entraîner et ce quasiment de la même façon que l’on mettait à jour
notre Q-table.
28
Figure 15 - L’équation de Bellman qui décrit la méthode de mise-à-jour de notre Q-table.
Or si l’on choisit de représenter notre fonction non plus par un tableau mais par un réseau de
neurones, cette mise-à-jour doit concerner les paramètres du réseau de neurones. La mise-
àjour de notre approximation va fonctionner selon le même principe : minimiser l’écart entre
une valeur actuelle Q-predict et une valeur cible Q-target. À chaque mise-à-jour des
paramètres de notre réseau de neurones, on effectue une descente de gradient ayant la fonction
de coût décrite sur la figure ci-dessous.
Un réseau de neurones possède des valeurs numériques qui lui sont propres (appelées poids)
et qui lui servent à prédire ses valeurs de sorties à partir de ses entrées. Ce sont ces valeurs qui
sont modifiées lors de l’apprentissage. Pour les modifier, on utilise une métrique : la fonction
de coût. Cette fonction de coût est un indicateur basé sur la différence entre les valeurs
actuellement prédites par notre réseau de neurones et celles que l’on voudrait qu’il prédise. En
Deep Q-Learning on utilise la fonction de récompense pour calculer les valeurs que l’on
souhaite que notre réseau de neurones prédise. Le gradient est un vecteur qui contient la
modification des poids à effectuer pour tendre vers cet objectif et affiner notre prédiction.
29
Effectuer une “descente de gradient” c’est donc répéter ce mode de fonctionnement autant de
fois que nécessaire afin que les paramètres du réseau de neurones s’affinent progressivement
pour prédire pertinemment les valeurs cibles.
Le principe reste donc le même que précédemment, à chaque mise-à-jour des paramètres de
notre réseau de neurones, le réseau “tend un peu plus vers” une estimation correcte de la
fonction de valeur Q. On peut donc supposer que si on s’entraîne suffisamment longtemps le
réseau de neurones va converger et l’estimateur va devenir bon.
En prenant en compte tout ce qui vient d’être dit l’algorithme du DQL est :
Limites du DQL
Cependant, le DQL ainsi implémenté est considéré comme instable lorsqu’il utilise des
approximateurs non-linéaires tels que les réseaux de neurones profonds. Cela est
principalement dû à deux choses :
30
1. La forte corrélation qui lie les séquences d’observation : les états sont observés
les uns à la suite des autres et présentés dans cet ordre au réseau de neurones pour
l’entraînement. En effet, un état st+1 ressemble fortement à un état St, puisqu’ils
correspondent à deux images successives de la route.
2. La forte influence de la fonction Q sur la politique menée et donc sur la
distribution des états rencontrés dans l’environnement. L’état St+1 est issu de
l’état St après avoir entrepris l’action at (qui peut être aléatoire ou issue de la
prédiction de notre réseau de neurones si on suit une politique epsilon-greedy) qui
elle-même dépend de notre politique.
Afin de traiter le premier problème, une méthode appelée expérience replay peut être
utilisée.
31
Figure 17 - Principe de l’expérience replay
Un deuxième avantage de cette technique est qu’elle donne la possibilité de s’entraîner par
“lots” (mini-batches) et de pouvoir faire une descente de gradient stochastique. Sans rentrer
dans le détail, plutôt que de mettre à jour les paramètres de notre réseau de neurones en
n’utilisant qu’une seule étape de transition à chaque fois, on calcule un gradient “agrégé” qui
moyenne plusieurs gradients issus de plusieurs étapes de transition différentes. Cette
technique permet d’augmenter les chances de trouver “une bonne direction” pour la descente
de gradient et d’augmenter la vitesse de convergence de l’algorithme.
Le pseudo code de notre algorithme de DDQL avec expérience-replay s’écrit comme suit :
33
3.6 Conclusion
• On cherche à entraîner un oracle (le réseau de neurones) qui pour un état donné
nous dit : si j’entreprends telle action, je suis censé accumuler telle récompense
avant de sortir de la route.
• Pour entraîner cet oracle, on se promène dans l’environnement et on stocke toutes
nos observations dans une mémoire de reprise. L’oracle va ensuite piocher
aléatoirement dans cette mémoire pour s’entraîner.
• On utilise la récompense pour calculer une valeur cible. La différence entre la
valeur cible et la valeur prédite par l’oracle est la mesure que celui-ci utilise pour
affiner sa prédiction. La valeur cible étant calculée à partir de la récompense
l’oracle va affiner sa prédiction au fur et à mesure de l’entraînement.
• Comme le calcul de la valeur cible utilise la prédiction de l’oracle, on choisit de le
dédoubler en utilisant un oracle pour le calcul de cette valeur, et un autre oracle
qui s’entraîne. Régulièrement, on met-à-jour l’oracle du calcul qui sert à calculer
la valeur cible avec les informations de l’oracle qui s’entraîne.
34
4 Partie Algorithme
Carla est un environnement de conduite autonome open source, avec le python API qui
permet d’interagir avec, ici carla est notre environnement (serveur) et nous avons un agent
(c’est le client)
Cet environnement nous permet aussi d’utiliser plusieurs capteurs qu’on peut placer sur la
voiture et nous aide à simuler les capteurs réels Les types des objets en carla
➢ Le monde (environnement)
➢ Les acteurs avec ce monde ; voitures, capteurs, piétons.
➢ Les attributs de notre acteur (ici blueprints)
35
[1] MONOT, Nolwenn. Des systèmes d'aide à la conduite au véhicule autonome connecté.
2019. Thèse de doctorat. Bordeaux.
[3] Wikipédia
https://fr.wikipedia.org/wiki/Q-learning
[4] UPCROFT, Ben, MOSER, Michael, MAKARENKO, Alexei et al. Article technique du défi urbain
Darpa : équipe de conduite Sydney-Berkeley. Université de Sydney, 2007.
[5] https://pythonprogramming.net/reinforcement-learning-self-driving-autonomous-cars-carla-python/
[6] ZIMMER, Matthieu. Apprentissage par renforcement développemental. 2018. Thèse de doctorat.
Université de Lorraine.
1