Rapport de projet FEKBOSS18012018 lea boss (1) .pdf



Nom original: Rapport-de-projet-FEKBOSS18012018 lea boss (1).pdfTitre: Projet: Apprentissage par renforcementAuteur: Fekkar Thomas B2

Ce document au format PDF 1.7 a été généré par Microsoft® Word 2016, et a été envoyé sur fichier-pdf.fr le 12/12/2018 à 15:06, depuis l'adresse IP 193.51.x.x. La présente page de téléchargement du fichier a été vue 346 fois.
Taille du document: 1.4 Mo (34 pages).
Confidentialité: fichier public


Aperçu du document


PROJET:
APPRENTISSAGE PAR
RENFORCEMENT
Chohra A.

Fekkar Thomas
groupe B2
Etudiant en 2ème année
de Génie Electrique et
Informatique
Industrielle à l’IUT de
Sénart.
fekkar.thomas@gmail.com

Sommaire

I.

Introduction
Problématique……………………………………………………………………….02
I.1. Environnement…………………………………………………………………...03
I.1.1. Environnement test n°1………...……………………………………………...03
I.1.2. Environnement test n°2...……...……………………………………………...04
I.2. Etats……….......…………………………………………………………………05
I.3. Agents.……….…………………………………………………………………05
I.3.1. Actions……….……………………………………………………………....06
I.3.2. Perceptions...……...…………………………………………………………06
I.4. Degrés d’intelligences..….....………………………….………………………07
I.4.1. Apprentissage supervisé….....……………………………………………..08
I.4.2. Apprentissage non-supervisé.………...…………………………………...10
I.4.3. Apprentissage par Renforcement..……….……………………………….10
Objectifs……………………………………………………………………………...11

II.

Plan de travail
Apprentissage par renforcement (‘‘ Q-Learning ’’)……………………………...12
II.1. Présentation……………………………………………………………………..14
II.2. Programme……………………...……………………………………………...15
II.3. Paramètres sensibles..………………………………………………………….20
II.4. Environnement du test n°1…..………………………………………………...22
II.4.1. Etats par rapport à l’environnement du test n°1…….………………………23
II.4.2. Agent par rapport à l’environnement du test n°1…………………………..24
II.4.3. Actions par rapport à l’environnement du test n°1…...…………………...27
II.4.4. Perception par rapport à l’environnement du test n°1..….………………..28
II.5. Résultats et analyses…...…………………………………………………….28
II.6. Remarques (environnement test n°2)……...………………………………...29

III.

Conclusion

Références……………………………………………………………………………………...…32

1

I.

Introduction

Dans ce rapport, nous allons aborder le thème de l’apprentissage par renforcement à travers une étude
à ce sujet, ainsi qu’à travers une simulation réalisée grâce au logiciel Code::Blocks (logo figure 1). Il
s’agira de simuler le déplacement d’un robot virtuel, d’un point de départ à un point d’arrivée.

Figure 1. Code::Blocks

Ce rapport est réalisé dans le cadre de la soutenance du semestre 3 du cursus Génie Electrique et
Informatique à l’IUT de Sénart.

L’intelligence artificielle commence à se rapprocher de notre intelligence. A titre d’exemple, comme
les humains, des robots peuvent maintenant s’adapter à leurs environnement grâce à l’apprentissage
par renforcement.
Dans notre quotidien, nous faisons l’objet de l’apprentissage par renforcement, et plus
particulièrement durant notre enfance. Nous allons faire l’analogie de l’apprentissage par renforcement
grâce à l’exemple suivant : un enfant joue dans un salon où se trouve de nombreuses bougies
décoratives qui sont allumées. Soudain, ces bougies l’intrigue, et celui-ci décide de toucher la flamme
au sommet d’une des bougies, il se brule un petit peu et ressent une douleur. Inconsciemment, l’enfant
(supposé tout à fait normal), enregistre le fait d’avoir touché la flamme de cette bougie comme étant
une mauvaise expérience qui ne réeffectuera plus. On peut analyser différents processus de la part de
l’enfant durant cet exemple qui sont aussi des procédés utilisés dans l’apprentissage par renforcement.
On remarque dans un premier temps que, pour une certaine raison, il en vient à toucher la flamme de
la bougie (expérience). Il en ressent de mauvaises sensations (il interprète que cela est mauvais pour
lui-même). En conséquence, il enregistre et apprend de son erreur (ce qui suppose qu’il est doté d’un
certain degré d’intelligence).
Mots clés : Apprentissage par renforcement
environnement – Environnement dynamique



Intelligence artificielle



Interaction agent-

Problématique

Doter un agent (Robot) d’un certain degré d’intelligence afin qu’il se déplace d’un point de départ à un
point d’arrivée dans un environnement.
Sous forme de question, la problématique serait : Comment faire s’adapter un robot à différentes
situations afin qu’il puisse réaliser des tâches en utilisant l’apprentissage par renforcement ?
2

I.1. Environnement

Définition d’un environnement : Un environnement est l’ensemble des éléments physiques, chimiques
ou biologiques, naturels et artificiels, qui entourent le cadre de vie d’un individu.
Afin de présenter cette partie, deux autres définitions de l’environnement pourraient s’ajouter à celle
citée ci-dessus, ce sont les suivantes :
-

Définition d’un environnement en informatique : Ensemble des ressources matérielles et
logicielles nécessaires à l’exécution d’une application à l’aide d’un ordinateur donné.
Définition d’un environnement en art moderne : installation faite d’éléments répartis dans un
espace que l’on peut parcourir.

Il s’agit dans cette partie de décrire l’environnement du robot d’une manière générale. En effet, la
simulation du robot virtuel se déroulera dans deux types d’environnements différents, qui nous feront
constater l’efficacité de l’apprentissage par renforcement.

I.1.1. Environnement test n°1

L’environnement du test n°1 correspond à un environnement dit ‘‘partiellement structuré’’. En effet,
on connait déjà à l’avance cet environnement. Il peut être par exemple doté d’un sol plan et d’un
modèle en grille (figure 2).

B

A

Case de départ

Case d’arrivée

Figure 2 : environnement avec un sol plan et un modèle en grille

3

A titre d’exemple, le trajet du robot pourrait être celui décrit par la flèche jaune dans ce type
d’environnement.

I.1.2. Environnement test n°2

L’environnement du test n°2, contrairement à celui du test n°1, est un environnement dit
‘‘dynamique’’. Celui-ci est voué à changer. En effet, cet environnement, peut, par exemple, présenter
des obstacles (figue 3).

B

A

Case de départ

Case d’arrivée

Obstacles

Figure 3 : un environnement dynamique

A titre d’exemple, le trajet du robot pourrait être celui décrit par la flèche jaune dans ce type
d’environnement.

On remarque donc qu’en fonction de l’environnement, les trajets sont souvent différents pour se
rendre d’un point A à un point B.

4

I.3. Etats

Définition d’un état : Manière d’être d’une chose à un moment donné.

Au fur et à mesure du temps, l’état devient différent. On ne peut pas être dans le même état que dans la
milliseconde (où même la plus petite unité de temps) précèdent cet état. En effet, nous ne sommes pas
dans les mêmes conditions (même si on ne se rend pas compte que les conditions ont changé).
Plus précisément, les paramètres qui influent sur l’état sont représentés sur la figure 4.

Temps
Espace (Environnement)

état

Obstacle ou pas (spécifiquement au projet)

Figure 4 : paramètres qui influent sur l’état

I.2. Agents

Définition d’un agent : Entité qui fait subir des actions.

Dans la suite du projet, l’agent est le robot qui simule des actions (grâce à un programme). Ces actions
sont le fait de se déplacer. Par conséquent, un programme qui simule un robot, peut lui permettre de le
faire se déplacer dans n’importe quelle direction, si c’est ce qui est souhaité (figure 5).

AGENT

Figure 5 : Exemple de déplacement d’un agent quelconque doté de capacité qui lui permettent de se déplacer

5

I.3.1. Actions

Définition d’une action : Fait, faculté d’agir, de manifester sa volonté en accomplissant quelque chose.

Une action peut alors être un déplacement dans une direction, ou le simple fait de prendre un objet.
Nous faisons des actions car c’est notre cerveau qui nous donne l’ordre de les réaliser.
Dans le projet, les actions seront réalisées grâce au programme qui servira de ‘‘cerveau’’ au robot.
Il faut retenir que l’on réalise des actions à partir d’un état (c’est d’ailleurs sur ces deux paramètres
qu’est basé la politique ε-greedy qui est une notion importante du programme. Nous verrons cette
politique par la suite).
Un exemple du quotidien, si on se trouve à l’instant t devant une pompe à essence (état et
environnement), et que notre objectif est de faire le plein d’essence, alors notre action sera de prendre
le pistolet distributeur, et d’appuyer sur la gâchette de celui-ci en l’avant au préalable, mis dans le
réservoir de notre voiture.

I.3.2 Perceptions

Définition de la perception : Événement cognitif dans lequel un stimuli ou un objet, présent dans
l'environnement immédiat d'un individu, lui est représenté dans son activité psychologique interne, en
principe de façon consciente.
Un être humain perçoit grâce à ses sens. Il peut par exemple voir une pomme si celle-ci est située
clairement devant lui.
La perception peut, dans le cas d’un robot, être assimilée aux capteurs qu’il possède. En effet, c’est
grâce à certains types de capteurs, que le robot peut savoir de quoi est constitué ce qui l’entoure.
1

2

3

4

5
Agent doté de
capteurs inductifs

6

7

8

Objet métallique
Figure 6 : Environnement d’un agent doté de capteurs inductifs

6

Si on prend la figure 6, c’est grâce à ses capteurs inductifs qu’un robot pourra détecter qu’il y a des
objets métalliques au niveau des cases 5, 6 et 8.
Définition d’un capteur inductif : objet constitué de surfaces qui génèrent des courants de foucault
(courant crée grâce à la variation d’un champ magnétique) lorsque des objets métalliques
s’approchent. Par un certain système, ces courants de foucault sont détectés, ce qui permet d’identifier
qu’il y a un objet métallique à proximité.
La perception établit un lien logique dans son utilité par rapport aux environnements dynamiques. En
effet, c’est une bonne perception qui permet d’interagir correctement avec l’environnement.
Enfin, un agent se doit d’être doté de moyens de perceptions.

I.4. Degré d’intelligence

Définition de l’intelligence : Ensemble des fonctions mentales ayant pour objet la connaissance
conceptuelle et rationnelle.
Définition de l’intelligence artificielle : Ensemble de théories et de techniques mises en œuvre en vue
de réaliser des machines capables de simuler l’intelligence humaine.
La première forme d’intelligence se manifeste par une capacité de mémorisation. La mémoire, en
informatique est souvent mise en œuvre grâce à la mémoire vive (RAM : Random Access Memory,
figure 7) et la mémoire de masse (ROM : Read Only Memory, figure 8).

Figure 7 : Barrette de RAM (RAM0, un exemple
de mémoire vive)

Figure 8 : Intérieur d’une SSD (Solid-tate drive, exemple
d’une mémoire de masse )

Cependant, ces mémoires ont des avantages et des inconvénients qui en limitent leurs usages, ainsi que
l’avancée de l’intelligence artificielle. En effet, enregistrer des données par rapport à des états
nécessite
une grande capacité de stockage à chaque instant (voir rubrique I.2 états).
Les tableaux qui suivent énumèrent certains inconvénients de la RAM (figure9) et de la ROM
(figure10).

7

RAM
Avantages
Rapide
Capacité de stockage en méga ou giga octets :
bonne capacité de stockage
En général présenté sous forme de barrettes, elle
donc donc de petite taille

Inconvénients
Volatile : elle perd ses données si l’alimentation
en électricité est coupée
Coût élevé

Figure 9 : tableau des principaux avantages et inconvénients d’une RAM

ROM
Avantages
Non volatile : elle ne perd pas ses données si
l’alimentation en électricité est coupée
(nécessaire à l’allumage d’un ordinateur, par
exemple)
Programmable par l’utilisateur

Inconvénients
Beaucoup plus lente que la RAM

Mauvaise capacité de stockage

Figure 10 : tableau des principaux avantages et inconvénients d’une ROM

L’intelligence est aussi basée sur la généralisation, l’adaptation (nécessaire dans un environnement
dynamique) ainsi que l’autonomie, qui seront notamment acquises grâce à l’apprentissage par
renforcement.

Définition de l’apprentissage : Situation dans laquelle on acquière des connaissances (permet de
communiquer un savoir ou une information).

Il existe différents degrés d’intelligence qui dépendent de trois types d’apprentissages :
- l’apprentissage supervisé
- l’apprentissage non supervisé
- l’apprentissage par renforcement (dans le cadre de l’intelligence artificielle, il s’agit alors d’un
certain degré d’intelligence)

I.4.1. Apprentissage supervisé

L’apprentissage supervisé correspond au fait d’acquérir des connaissances grâce à quelqu’un, ou
quelque chose.
La figure 11 ci-dessous représente un parfait exemple d’apprentissage supervisé. Dans celui-ci, le
personnage 1 est une personne qui veut transmettre une notion mathématique au personnage 2.

8

L’hypoténuse est le
coté de le plus grand
d’un triangle
rectangle

L’hypoténuse est le
coté de le plus grand
d’un triangle rectangle

2

1

Figure 11 : exemple de l’apprentissage supervisé

Le personnage 2 se trouve dans un environnement composé d’un autre individu qui est le personnage
1. Avant que le personnage 1 ne dise sa phrase, ils se trouvent à l’état à l’instant t. A cet instant, le
personnage 2 ignore la notion mathématique en question. Une fois que le personnage 1 transmet la
notion au personnage 2, ils se trouvent à l’instant t+2. A l’instant t+3, il y a une phase d’apprentissage
de la part du personnage 2. A l’instant t+4, on suppose que le personnage 2 a appris la notion que lui a
transmit le personnage 1. Dans ce cas, cela correspond à un exemple d’apprentissage supervisé.
On constate que l’apprentissage nécessite ‘‘un maître’’ (figure 12).

Maître

Entité

OFF-LINE

ON-LINE

Phase d’apprentissage

Phase de réutilisation de l’apprentissage

Figure 12 : Résumé de l’apprentissage supervisé

L’entité qui fait l’objet de l’apprentissage n’a besoin de son ‘‘ maître’’ seulement durant la phase
d’apprentissage. Celui-ci devient donc inutile après cette phase. Evidemment, l’entité, si elle veut
apprendre une nouvelle notion, aura besoin à nouveau du maître.

9

I.4.2 Apprentissage non supervisé

L’apprentissage non supervisé correspond au fait d’acquérir des données et de les interpréter sans
l’aide d’un ‘‘maître’’.

A titre d’exemple, lors de l’apprentissage supervisé, on peut montrer le visage de quelqu’un pour
qu’un programme puisse le détecter grâce à un algorithme (détection faciale).
L’apprentissage non-supervisé n’a pas besoin d’un ‘‘maître’’, l’algorithme va par lui-même
différencier différents types de visage. Il va même pouvoir faire la différence entre un visage et une
voiture grâce à un algorithme bien plus développé que celui utilisé par l’apprentissage supervisé. Il va,
en cherchant des corrélations, comprendre qu’un visage comporte des yeux et des sourcils alors qu’une
voiture est composée de pare-brise et de vitres.

I.4.3 Apprentissage par renforcement

L’apprentissage par renforcement signifie apprendre des notions tout seul grâce à ses expériences. On
peut donc dire que c’est une sorte d’apprentissage non-supervisé (il n’a pas besoin d’un ‘‘maître’’).
Pour faire une analogie de l’apprentissage par renforcement, nous allons réutiliser l’exemple donné un
peu plus tôt dans l’introduction : un enfant joue dans un salon où se trouve de nombreuses bougies
décoratives qui sont allumées. Soudain, ces bougies l’intrigue et celui-ci décide de toucher la flamme
au sommet d’une des bougies, il se brule un petit peu et ressent une douleur. Inconsciemment, l’enfant
(supposé tout à fait normal), enregistre le fait d’avoir touché la flamme de cette bougie comme étant
une mauvaise expérience qui ne réeffectuera plus.
Du point de vue de la programmation, cela se caractérise par une notion de récompense et de pénalité.
Si on reprend l’exemple ci-dessus, si l’enfant touche la flamme, il se fait mal. Maintenant, si l’enfant
était un robot capable d’avoir les mêmes ressentis que l’enfant, celui-ci écoperait d’une pénalité.
Chaque pénalité correspondrait alors à quelque chose qu’il ne devra plus jamais réeffectuer (il
obtiendra alors une récompense, et son but n’est que d’en obtenir). Un exemple d’un système de
récompenses et de pénalités est décrit à la figure 13.

Récompense

+1

Neutre

0

Pénalité

-1

Figure 13 : exemple d’un système de récompenses et de pénalités

10

Contrairement à l’apprentissage supervisé, cet apprentissage s’effectue à chaque instant et à chaque
état (figure 13).

Entité (agent)
ON-LINE
Phase d’apprentissage
Phase de réutilisation de l’apprentissage
Figure 14 : caractéristiques de l’apprentissage par renforcement

On remarque qu’il n’y a pas de phase OFF-LINE. L’entité ne ‘‘s’arrête’’ pas pour devoir apprendre
une notion. En effet, elle apprend de ses erreurs. Ainsi peu importe l’environnement où elle se situe,
elle évoluera sur ce même principe.

L’apprentissage par renforcement est principalement basé sur trois notions importantes, elles sont
résumées figure 15.

Tâches
Environnement

Apprentissage par renforcement

Agent

Figure 15 : notions importantes de l’apprentissage par renforcement.

C’est pour cela que nous allons utiliser ce type d’apprentissage (que l’on va inclure sous la forme de
programme) dans notre projet. En effet, il est adéquat à celui-ci car il permet :
-

D’évoluer dans un environnement dynamique ou non (voir rubrique I.1.1 et I.1.2) de manière
ON-LINE
De s’adapter
D’être autonome
D’interagir

Objectifs
L’objectif du projet est de simuler, à l’aide d’un programme un robot qui va se déplacer d’un point de
départ à un point d’arrivée(le trajet se devra d’être le plus efficace) en fonction de l’environnement
décrit à la figure 14. L’agent devra alors utiliser l’apprentissage par renforcement.

11

25

26

27

28

29

30

31

32

33

34

35

36

13

14

15

16

17

18

19

20

21

22

23

24

1

2

3

4

5

6

7

8

9

10

11

12

0

37

38

FALAISE
MUR
Case de départ

Case d’arrivé

Obstacle1

Obstacle2

Cases

Trajet idéal

Figure 16 : Schéma de l’environnement du Robot

II.

Plan de travail

Apprentissage par renforcement (‘‘ Q-Learning ’’)
Nous allons utiliser dans notre programme un algorithme de type Q-Learning, car il possède la
capacité de converger vers une probabilité d’erreur de 0 très rapidement. De plus, il correspond
parfaitement au type de programme idéal pour notre situation. En effet, il peut s’adapter à son
environnement.

Le Q-Learning est un type de d’apprentissage par renforcement, sous la forme d’un algorithme.

Il possède de nombreux avantages telles que sa probabilité de convergence qui tend vers 1. C’est-àdire que la probabilité qu’il réussisse son objectif, si celui-ci est définis correctement (par un
programme adéquat) est de 1 (figure 15).
12

Probabilité de
convergence
1

0
Temps
Algorithme Q-Learning

La plupart des algorithmes

Figure 17 : Représentation graphique de la probabilité de convergence d’un algorithme de type Q-Learning
comparé aux algorithmes généraux en fonction du temps

Il a aussi la caractéristique d’obtenir un taux d’erreur qui se rapproche de 0 (figure 17).

Probabilité
d’erreur
1

0
Temps
Algorithme Q-Learning
Figure 18 : Représentation graphique de la probabilité d’erreur d’un algorithme de type Q-Learning en fonction
du temps

13

Choix d’un algorithme Q-Learning :
-

Bonne capacité de généralisation
Probabilité de convergence garantie
Modification du poids
ON-LINE (pas besoin d’un maître, ni de phase OFF-LINE, en d’autre thermes, il s’adapte en
direct)
Il apprend de ses erreurs

II.1. Présentation

Nous allons, grâce au logiciel de programmation Code::Blocks (logo figure1), réaliser un programme
qui va simuler les déplacements d’un robot suivant différents types d’environnements.
L’environnement du test n°1 sera non-dynamique. Tandis que l’environnement du test n°2 sera
dynamique. Les simulations sur ces deux environnements nous permettrons de démontrer l’efficacité
de l’apprentissage par renforcement ainsi que l’efficacité du Q-Learning. Nous verrons donc, à travers
des tests techniques que le programme nous permettra de vérifier que la probabilité de convergence est
bel est bien de 1 (ce qui signifie qu’il va bel et bien atteindre ses objectifs).
Nous allons réutiliser toutes les notions présentes dans la partie I. Introduction.
L’environnement du test n°1 présente des obstacles (voir figure 14). De plus, chaque obstacle, et
même chaque type de case possèdent des caractéristiques différentes (notion d’état).
Si le robot va dans une case :
-

Grise ou verte, il prend une pénalité de -1
Jaune (Falaise), il prend une pénalité de -100
Violette(Mur), il prend une pénalité de -100
Rouge, il prend une récompense de 1

On remarque qu’il y a qu’une seule récompense dans l’environnement du robot, et il l’obtient quand il
remplit sa fonction, c’est-à-dire d’aller à la case 38 (case rouge, l’arrivée).
On ne définit pas ces récompenses et ces pénalités au hasard. On les définit de cette manière afin
d’informer quels sont les comportements bons pour l’agent et lesquelles ne le sont pas.
Il y a aussi plusieurs règles par rapport à cet environnement :
-

Règle n°1 : si le robot se retrouve dans la falaise, alors il doit retourner à la case 0.
Règle n°2 : si le robot touche le mur, il doit revenir sur la case où il a effectué le mouvement
avant de toucher celui-ci.

Ces règles sont des contraintes afin que le trajet ne soit pas trop ‘‘facile’’ dans le projet ( une ligne
droite n’aurait pas été intéressante).

Ces caractéristiques sont résumées sur la figure 18.

14

25

26

27

28

29

30

31

32

33

34

35

36

13

14

15

16

17

18

19

20

21

22

23

24

7

8

9

10

11

12

-1
1

2

0

37

3

4

5

6

38

FALAISE

-1

MUR
Case de départ

Case d’arrivée

Obstacle1

+1

-100
-100
Obstacle2

Cases

Retour case

Figure 18 : Schéma de l’environnement du Robot avec ses règles et son système de pénalités et de récompenses

II.2. Programme
Définition d’un algorithme : ensemble de règles dont l’application permet d’effectuer une opération
plus ou moins complexe.

Le programme ci-dessous a été inséré par des captures d’écrans du logiciel Code::Blocks (logo figure
1) sur la machine virtuelle Seven Développement. Code::Blocs est un logicielle séquentielle : il doit
terminer sa ligne de code avant de pouvoir passer à la suivante. Chaque étape du logiciel sera
expliquée par la suite dans ce rapport.
Dans ce programme :
-

Un ‘‘episode’’ = un passage dans l’algorithme
Un ‘‘pas’’ = combien de fois nous passons dans l’algorithme

15

Explication dans
II.3. Paramètres sensibles

Explication dans II.4.2.
Agent par rapport à l’environnement
du test n°1

Figure 19 : Initialisation des variables nécessaires au programme

Figure 20 : Début de l’initialisation des matrices

16

Figure 21 : Suite de l’initialisation des matrices

Explication dans II.4.2.
Agent par rapport à
l’environnement du test n°1

Figure 22 : Fin de l’initialisation des matrices

17

Figure 23 : Début du main et initialisation de la valeur de la matrice Q à 15

Figure 24 : Début de la boucle k épisode

Explication dans
II.4.2. Agent par rapport à
l’environnement du test n°1

Figure 25 : début boucle kpas

18

Figure 26 : calcul qui permet d’obtenir la valeur de EtatSuivant (s’)

Explication dans
II.4.2. Agent par rapport à
l’environnement du test n°1

Figure 27 : calcul n°1

Figure 28 : Calcul n°2

Explication dans
II.4.2. Agent par rapport à
l’environnement du test n°1

Figure 29 : Fin du main

Ce programme a été réalisé le 17/01/2018 et a été validé par le professeur A. Chohra.

19

On remarque bien que le robot emprunte le chemin le plus court pour arriver à son objectif. Le
parcourt du robot peut être assimilé à la figure 16 :

25

26

27

28

29

30

31

32

33

34

35

36

13

14

15

16

17

18

19

20

21

22

23

24

1

2

3

4

5

6

7

8

9

10

11

12

0

37

38

FALAISE
MUR
Case de départ

Case d’arrivée

Obstacle1

Obstacle2

Cases

Trajet idéal

Figure 16 : Schéma de l’environnement du Robot

II.3. Paramètres sensibles

Les paramètres sensibles du programme sont les variables qui vont permettre que le programme soit
efficace. En modifiant les valeurs associées à ces paramètres, on aurait par exemple un autre trajet de
la part du robot (exemple figure 30).

20

25

26

27

28

29

30

31

32

33

34

35

36

13

14

15

16

17

18

19

20

21

22

23

24

1

2

3

4

5

6

7

8

9

10

11

12

0

37

38

FALAISE
MUR
Case de départ

Case d’arrivée

Trajet que l’on aurait pu avoir

Trajet idéal

en modifiant les paramètres
sensibles
Figure 30 : Schéma des possibles trajets que pourrait effectuer le robot si l’on modifie les paramètres sensibles

Dans le programme, nous avons obtenu ces valeurs de paramètres sensibles par expérimentation :

-

-

Alpha : paramètre qui définit la taille du pas (kpas). Il doit obligatoirement se situer dans cet
intervalle : 0 < alpha = α ≤ 1, dans le programme, nous l’avons fixé à 0,1.
Gamma (g dans le programme, en gardant gamma, il y avait une erreur de compilation) :
paramètre qui définit le taux d’apprentissage (la vitesse et le nombre de donnée que le
programme peut enregistrer). En anglais, ce therme est définit par ‘‘discount rate’’, il doit être
compris entre 0 ≤ gamma = γ ≤ 1. Nous l’avons fixé à 1.
episode=kepisode=1000, on va ainsi faire 1000 passages dans l’algorithme afin d’être sur de
trouver une possibilité qui correspond à nos attentes.
pas=kpas=5000
Q[e][a]=15, cela correspond à la valeur de départ de la matrice qui permettra la comparaison
des valeurs maximales (que nous verrons dans la suite du rapport)
21

Notons que α = 0,1 ; γ = 1; kepisode = 1000; kpas = 5000; Q[e][a] = 15, sont des solutions
parmi tant d’autres.
Ces paramètres sont donc importants pour la bonne convergence du programme.

II.4. Environnement du test n°1

L’environnement du test n°1 est décrit à la figure 18, il s’agit d’un environnement sol plan et d’un
modèle en grille avec des obstacles.

25

26

27

28

29

30

31

32

33

34

35

36

13

14

15

16

17

18

19

20

21

22

23

24

7

8

9

10

11

12

-1
1

2

0

37

3

4

5

6

38

FALAISE

-1

MUR
Case de départ

Case d’arrivée

Obstacle1

+1

-100
-100
Obstacle2

Cases

Retour case

Figure 18 : Schéma de l’environnement du Robot avec ses règles et son système de pénalités et de récompenses

Ces particularités sont présentées dans la rubrique II.1. Présentation.

22

II.4.1. Etats par rapport à l’environnement du test n°1

Le plus souvent, les états présenteront la possibilité d’effectuer une des quatre actions (sauf dans le cas
où le robot rencontre un mur par exemple).
Exemple :
Lorsque le robot se trouve à l’état 2 (case 2), il peut effectuer 4 actions : Act0  D  3
Act1  H  14
Act2  G  1
Act3  B  37

25

26

27

28

29

30

31

32

33

34

35

36

13

14

15

16

17

18

19

20

21

22

23

24

1

2

3

4

5

6

7

8

9

10

11

12

0

37

38

FALAISE
Figure 30 : Schéma exemple

Sur l’exemple de la figure 30, on remarque bien que, lorsque le robot se trouve à l’état 2 (case 2), il
peut faire quatre mouvements, soit il va à droite et se retrouve sur la case 3, soit il va en haut et il se
retrouve sur la case 14, soit il va à gauche et se retrouve sur la case 1, enfin, s’il va en bas il se
retrouve à la case 37 (dans ce cas, d’après la règle n°1 : si le robot se retrouve dans la falaise, alors il
doit retourner à la case 0. cf flèche blanche).
On constate bien que l’état 3 ne présente pas les mêmes caractéristiques qu’à l’état 12.

On déduit aussi qu’il y a 39 états différents dans cet environnement (38 cases et le mur).

23

II.4.2. Agent par rapport à l’environnement du test n°1

L’agent, en fonction de son état, peut réaliser 4 actions qui vont lui permettre de plus ou moins évoluer
dans l’environnement du test n°1.
En effet, dans tous les cas, on impose à l’agent de devoir faire un des quatre déplacements :
-

Act0  Droite
Act1  Haut
Act2  Gauche
Act3  Bas

C’est grâce au programme dont est doté l’agent qu’il pourra effectuer le trajet le plus efficace, c’est-àdire le trajet le plus cours.
Nous avons utilisé la politique 𝜀-greedy (greedy signifie gourmant en français qui induit bel et bien le
principe de maximum) dans le programme afin d’optimiser le trajet du robot.
Dans le programme, cette politique se manifeste à travers les Q[e][a].
[e]états
[a]actions
Ce sont ces deux paramètres qui influent sur la politique 𝜀-greedy car le programme doit choisir de
réaliser une action à partir d’un état.
Déroulement de la politique 𝜀-greedy (basé sur l’algorithme figure 31, issue de la référence 3.) :
On déclare la matrice de cette manière dans le programme : Q[39][4]. En effet, il y a 39 états différents
et 4 actions possibles à chaque fois.

On réalise dans un premier temps l’initialisation de la matrice Q arbitrairement (ce n’est pas essentiel
si le programme est puissant car il converge forcement vers 1).
Dans notre programme on décide de lui associer la valeur de 15. Concrètement, on se retrouve avec
une matrice telle que celle présentée ci-dessous figure 32.

Initialize Q(s,a) arbitrarily
Repeat (for each episode) :
Initialize s
Repeat (for each steop of episode):
Choose a from s usinge policy derived from Q (e,g,𝜀-greedy)
Take action a, observe r, s’
Q(s,a)Q(s,a)+𝛼[𝑟 + 𝛾𝑚𝑎𝑥𝑢′ 𝑄(𝑠, 𝑎à − 𝑄(𝑠, 𝑎)]
Ss’;
Until s is terminal
Figure 31 : ‘‘Q-learning : An off-policy TD control algorithm

24

a=0

a=3

15 ⋯ 15
(⋮

⋮)
e=38
15 ⋯ 15
e=0

Figure 32 : matrice d’initialisation

On peut faire l’analogie avec une initialisation de constante de type : int
cst=15 ; Sauf qu’il
s’agit d’une constante présentée sous forme de matrice. Chacun des 39 états peut réaliser une des
quatre actions (figure 32)

Figure 33 : schéma de toutes les possibilités que peut effectuer l’agent à chaque état

Nous réalisons cette initialisation afin que la valeur de la matrice Q soit écrasée par une valeur dite
‘‘maximale’’. En effet, grâce à un calcul, que l’on nommera calcul n°1 et grâce au programme qui
permet de tester des centaines de combinaisons différentes, on va obtenir des valeurs de qui permettent
à l’agent de se déplacer de manière optimale.
Exemple : on se place dans le cas de la figure 33

25

:

a(1) => Q[100][1]=35

100
a(0) => Q[100][0]=15

a(1) => Q[100][1]=20

a(3) => Q[100][3]=10
Figure 34 : exemple de l’affection de la valeur maximal d’une action grâce à la politique 𝜀-greedy

Le calcul n°1 va venir fixer des valeurs de Q en fonction du trajet le plus optimal. Dans l’exemple de
la figure 34, à priori, l’action la plus optimale serait d’aller en haut (action n°1).
Le but du projet est d’obtenir un robot performant, mais qui doit s’adapter. Pour cela, on ne va pas
chercher à obtenir les valeurs maximales de chaque état tout le temps (cela limiterai d’une certaine
manière les possibilités du robot, qui deviendrait alors parfait). On cherche à obtenir un robot qui
s’adapte. Ainsi, une fois sur dix passages du programme, on va volontairement générer une action
aléatoire de la part du programme (afin que le robot puisse explorer toutes les possibilités possibles,
cela est possible grâce au grand nombre de fois que le programme se répète).
Nous réalisons cela grâce au programme, (voir figure 25 à la ligne 157), la partie du programme
simulant le principe précédent est résumé à la figure 34 (il s’agit d’un type d’algorithme).

Boucle kpas
{
// 𝜀-greedy
{9/10  max
1/10aléatoire}
Observer etatsuivant (actionMax)
Observer la récompense (actionMax)
Mise à jours des Q[e][a]
etatCourant=etatSuivant
Arrêter si étatCourant=etatFinal(38)
}
Figure 34 : résumé du programme utilisant le 𝜀-greedy

On peut donc dire que 𝜀 = 0,1.

26

Calcul n°1 : a.Q[s',a] (voir programme, figure27) avec a : action associée et s’ = valeur de l’état
suivant (figure 35).
actionMax

s
’’

r

Récompense [etatCourant][actionMax]

Figure38 : Résumé du système de récompense à partir de s’

L’agent, comme tout ce qui présente un certain degré d’intelligence, se doit d’avoir une mémoire. La
mémoire est ce qui va permettre au robot de retenir quel est le chemin qu’il à emprunté pour minimiser
ses pénalités, jusqu’à obtenir un nombre de pénalité minimum à la fin de son objectif.
Dans le programme, efin est la mémoire de la séquences (episode). efin doit enregistrer la meilleure
combinaison pour obtenir la valeur 38 (qui correspond à la case 38).
Il va notamment y arriver grâce au calcul n°2 (voir programme, figure 28) :
Q[etatCourant][actionMax]=Q[etatCourant][actionMax]+alpha*(recompense[etatCourant][actionMax
+1]+g*Q[valEtatSuivant][valActionSuivant]-Q[etatCourant][actionMax]);
II.4.3. Actions par rapport à l’environnement du test n°1

L’agent réalise une des quatre actions en fonction de son environnement et de son état (figure 35 et
36).

Haut
1
Droite
0
Gauche
2
Bas
3
Figure 35 : Schéma des agents du robot

Par exemple : le robot se trouve à l’état 2 (case 2), il peut effectuer 4 actions : Act0  D  3
Act1  H  14
Act2  G  1
Act3  B  37
27

25

26

27

28

29

30

31

32

33

34

35

36

13

14

15

16

17

18

19

20

21

22

23

24

1

2

3

4

5

6

7

8

9

10

11

12

0

37

38

FALAISE
Figure 34 : résumé du programme utilisant le 𝜀-greedy

Les actions sont générées grâce au programme et sont choisi grâce à la mémoire du programme (efin)
afin qu’il soit efficace. De plus, ce sont les matrices qui définissent chaque état et influent sur les
actions.

II.4.3. Perceptions par rapport à l’environnement du test n°1

La perception de l’agent est possible grâce au système de pénalité et de récompense (voir figure 13 et
18). C’est ce système qui lui permet de savoir s’il y a un obstacle ou non. Et c’est donc grâce à celui-ci
qu’il va au final parvenir à contourner la falaise. En réalité, on peut combiner ce système grâce à des
capteurs afin de réellement donner des possibilités de perception au robot (exemple figure 6).

28

II.5. Résultats et analyses

Figure 35 : Résultat du programme

On remarque bel et bien que le robot virtuel respecte le trajet idéel (voir figure 16). L’agent s’est donc
bel et bien adapté à son environnement. C’est le fruit d’un programme bien rédigé et d’une bonne
connaissance de toutes les caractéristiques qui constitue un bon agent que l’on a réussi à réaliser cet
adaptation. On peut donc bien affirmer l’efficacité de l’apprentissage par renforcement.
Nous pouvons maintenant se poser la question, le robot va-t-il réitérer son adaptation ainsi que son
efficacité dans un environnement dynamique ?

29

II.6. Remarques (environnement test n°2)
On va maintenant se positionner dans le cas d’un environnement dynamique, on va se placer dans
l’environnement ci-dessous (figure 36) :

25

26

27

28

29

30

31

32

33

34

35

36

13

14

15

16

17

18

19

20

21

22

23

24

1

2

3

4

5

6

7

8

9

10

11

12

0

37

38

FALAISE
MUR
Case de départ

Case d’arrivée

Obstacle1

Obstacle2

Cases

Trajet idéal

Figure 36 : Schéma de l’environnement du Robot

On remarque qu’il y a l’ajout de sept obstacles (de la case 4 à la case 10 comprises)
Pour cela nous allons modifier certains paramètres sensibles. On va donc modifier l’initialisation de la
valeur de kepisode et nous allons forcement modifier les deux matrices (etatSuivant et recompense).
Cela nous amène au résultat suivant (figure 37).

30

Figure 37 : résultat du trajet du robot

On remarque encore une fois l’efficacité de l’apprentissage par renforcement et l’importance de
l’initialisation des paramètres sensibles qui résultent par la modification du trajet adopté par le robot.
En effet, il modifie bien son trajet de manière à éviter les cases 4, 5, 6, 7, 8, 9, 10 tout en prenant le
trajet le plus efficace (figure 36).

31

III.

Conclusion

Le programme a réussi à remplir l’objectif du projet, c’est-à-dire de simuler le trajet le plus efficace
d’un robot virtuel afin d’arriver d’un point de départ à un point d’arrivée. On se rend alors compte des
capacités que nous offre l’apprentissage par renforcement dans la technologie. En résumé, celui-ci se
base sur la mémoire de l’agent, sa capacité de perception, ainsi que les actions qu’il peut réaliser.
Certains robots, déjà sur le commerce font l’objet de ce degré d’intelligence, tel que les aspirateurs
autonomes. En effet, ceux-là sont dotés de capteurs qui leur permettent d’éviter des obstacles afin de
nettoyer une surface (cela pourrait être une des applications pratique que pourrait réaliser l’agent de
notre projet).
En conclusion nous avons doté virtuellement un robot à obtenir un certain degré d’intelligence afin
qu’il réalise ce pour quoi on l’a programmé (résumé figure 38).
Environnement
dynamique

Degré d’intelligence

AGENT
Tâche de déplacement
d’un point A à un point
B
Prise de décisions et
actions
Figure 38 : résumé

Il est évident que l’intelligence artificielle sera fondée sur l’apprentissage par renforcement. Cela se
traduit donc par l’intégration du Q-Learning qui va sans doute laisser sa place, dans l’avenir, à un
algorithme encore plus efficace. On pourrait explorer d’autres facettes de l’intelligence artificielle en
dotant la faculté à un agent technologique de pouvoir apprendre grâce aux trois types d’apprentissages
(supervisé, non supervisé et par renforcement).
Malgré ce qui est énuméré dans ce rapport, on arrive très vite à des contraintes (notamment au niveau
de la mémoire des agents technologiques). Ainsi l’intelligence artificielle est loin de rivaliser avec
l’intelligence dotée par les êtres humains.

32

Références

1. A.Chohra, R. S. Sutton, A. G. Barto, C. J. C. H. Watkins, “Reinforcement Learning’’ (2001)
2. Temporal-Difference Learning
3. A.Chohra, K. Madani, “Adaptative Motivation System Under Modular Reinforcement
Learning for Agent Decision-Making Modeling of Biological Regulation’’ (2017)
4. Le petit Larousse (2006)
5. J.P.Zagar, cours ‘‘Module Physique CM 01 ELECTROMAGNETISME-CAPTEURS)’’
(2016)

33


Aperçu du document Rapport-de-projet-FEKBOSS18012018 lea boss (1).pdf - page 1/34
 
Rapport-de-projet-FEKBOSS18012018 lea boss (1).pdf - page 3/34
Rapport-de-projet-FEKBOSS18012018 lea boss (1).pdf - page 4/34
Rapport-de-projet-FEKBOSS18012018 lea boss (1).pdf - page 5/34
Rapport-de-projet-FEKBOSS18012018 lea boss (1).pdf - page 6/34
 




Télécharger le fichier (PDF)






Documents similaires


rapport de projet fekboss18012018 lea boss 1
masters thesis aic
cours robotique 1
rapport stage aic loukkal
rapport tl gestes sir
3algo

Sur le même sujet..




🚀  Page générée en 0.02s