WEBVTT

00:00.420 --> 00:03.950
Bonjour et bienvenue à nouveau dans notre voiture autonome Maggio.

00:03.960 --> 00:10.200
Donc, dans une toile, je vais expliquer le contexte dans lequel nous allons mettre en œuvre

00:10.410 --> 00:16.500
notre intelligence artificielle et qui contiendra bien sûr la voiture qui s’entraînera pour se conduire elle-même

00:16.500 --> 00:20.950
et éviter les obstacles nos voitures pour naviguer autour d'eux.

00:21.210 --> 00:28.170
Nous construirons donc plus tard cette intelligence artificielle pour entraîner cette voiture à rouler sur la route que vous

00:28.170 --> 00:33.830
connaissez sans franchir les limites ni éviter certains obstacles qui se placeraient dans la route.

00:34.140 --> 00:35.870
C'est donc un défi passionnant.

00:35.910 --> 00:42.000
Et en réalité, il y a deux fichiers distincts, comme vous pouvez le voir, il y a le sommet et la volaille qui

00:42.000 --> 00:47.090
sont une intelligence artificielle et qui feront toute la formation nécessaire pour former la voiture à la vente.

00:47.280 --> 00:52.080
Et nous avons une carte que nous avons trouvée qui est le code qui crée tout cet environnement.

00:52.110 --> 00:57.090
Donc, voici ce code qui est en réalité 200 lignes de code un peu plus.

00:57.090 --> 01:00.460
Donc, ce code n'est généralement pas lié à l'IA.

01:00.510 --> 01:03.380
C'est juste un code pour que l'environnement fasse la carte.

01:03.420 --> 01:08.430
Je vais donc parcourir chacune des sections une à une pour l'expliquer, mais nous n'allons pas mettre

01:08.430 --> 01:13.610
en œuvre ce code ligne par ligne à partir de zéro, car nous souhaitons nous concentrer sur l'intelligence artificielle.

01:13.740 --> 01:17.160
Mais parcourons toujours les sections une à une pour comprendre ce qui se passe.

01:17.370 --> 01:22.020
Donc, nous importons d’abord les bibliothèques centrales pour n’importe quel code.

01:22.110 --> 01:28.770
Nous avons besoin de certaines bibliothèques pour effectuer certaines tâches plus efficacement que nous importons tous les paquets de Cavy.

01:28.890 --> 01:35.140
Ce n'est donc pas très important car tout cela est spécifique à Cavey, nous utilisons du cobaye pour créer la carte.

01:35.190 --> 01:41.010
Nous importons donc beaucoup de classes et d'objets pour pouvoir créer cette carte et ajouter des outils

01:41.010 --> 01:42.210
à cette dernière.

01:42.210 --> 01:44.420
Très bien alors cette ligne est importante.

01:44.430 --> 01:53.130
Cette ligne est liée parce que, fondamentalement, c’est là que nous importons notre cerveau le cerveau de la voiture qui sera un autre jet

01:53.220 --> 01:57.760
de ce que vous avez fait en classe et l’enseignant en classe.

01:57.820 --> 02:00.570
Est notre intelligence artificielle elle-même.

02:00.570 --> 02:04.680
Vous verrez que nous allons implémenter la suppression de la file d'attente en classe dans les tutoriels suivants.

02:04.680 --> 02:09.650
Et comme vous l'avez peut-être deviné, instance de file d'attente pour les réseaux Q profonds.

02:09.650 --> 02:15.450
Nous allons donc implémenter un réseau d’apprentissage en file d'attente, puis, une fois prêt,

02:15.540 --> 02:21.910
nous l'importerons ici avec cette ligne de l'IA. Les yeux sont bien sûr un fichier python.

02:21.990 --> 02:22.310
D'accord.

02:22.320 --> 02:24.450
Donc, je ne peux pas attendre pour mettre cela en œuvre.

02:24.450 --> 02:29.520
Ce sera un sacré voyage, mais vous verrez que ce sera très excitant car,

02:29.520 --> 02:33.200
grâce au I, la voiture pourra se conduire toute seule.

02:33.270 --> 02:33.880
D'accord.

02:33.880 --> 02:39.060
Et maintenant, avant de passer aux sections suivantes, nous devons expliquer comment nous allons former cette voiture.

02:39.060 --> 02:43.880
Je ne vais pas expliquer le réseau de neurones pour le moment, mais je vais expliquer comment nous

02:43.920 --> 02:48.080
pouvons entraîner la voiture à conduire de manière autonome et à éviter les obstacles.

02:48.360 --> 02:54.130
Vous savez donc dans la vie réelle si vous voulez former une vraie voiture pour éviter certains murs ou certains obstacles.

02:54.390 --> 02:55.580
Bien que feriez-vous.

02:55.830 --> 03:01.130
Vous ne voudriez certainement pas prendre de vrais murs ou de gros obstacles et écraser votre voiture dessus.

03:01.200 --> 03:02.710
Cela vous coûterait beaucoup d'argent.

03:02.850 --> 03:10.170
Au lieu de cela, une idée plus intelligente serait de punir votre voiture non pas lorsqu'elle heurte un mur ou un obstacle,

03:10.410 --> 03:12.690
mais lorsqu'elle tombe sur du sable.

03:12.810 --> 03:14.220
Donc, c'est comme si vous aviez un champ.

03:14.220 --> 03:19.680
Ce champ a des routes sur lesquelles la voiture doit rester et les routes sont délimitées par du sable.

03:19.860 --> 03:25.500
Et chaque fois que la voiture pénètre au centre, c'est comme si elle se heurtait à un obstacle, car une fois la

03:25.500 --> 03:31.050
voiture plongée dans le sable, elle sera ralentie et nous veillerons à ce que la voiture soit sanctionnée soit punie

03:31.050 --> 03:31.630
pour cela.

03:31.860 --> 03:35.200
Et c'est un point essentiel de l'intelligence artificielle.

03:35.220 --> 03:40.210
Le mauvais mot vient chaque fois que la voiture va dans un sens et est ralentie.

03:40.230 --> 03:40.770
D'accord.

03:40.770 --> 03:45.160
Et donc ici je présente le dernier texte et c'est pourquoi.

03:45.300 --> 03:50.650
Quelles sont les coordonnées du dernier point en mémoire lorsque nous dessinons un parfum sur la carte.

03:50.760 --> 03:51.110
D'accord.

03:51.120 --> 03:57.720
Et puis nous obtenons notre intelligence artificielle que nous appelons cerveau et qui contient notre réseau de neurones et nous l'appellerons

03:57.900 --> 04:03.020
cerveau parce que c'est en fait le cerveau de la voiture et qui contient notre réseau

04:03.030 --> 04:03.920
de nouilles.

04:04.350 --> 04:04.730
D'accord.

04:04.770 --> 04:10.200
Donc, dans cette ligne de code, comme vous pouvez le voir, je crée des objets chez le professeur en classe.

04:10.230 --> 04:17.000
Je vous rappellerai que les classes et les objets ne sont que l'objet de Brenna, il déshumanise les classes et 5:

04:17.010 --> 04:19.660
3 et 0. 9 sont les entrées de la classe.

04:19.680 --> 04:26.880
Donc, c'est très simple, cinq correspond aux états qui sont des vecteurs codés de cinq dimensions. Nous verrons ce

04:26.880 --> 04:31.710
qu'ils décrivent parfaitement ce qui se passe dans l'environnement sur la carte.

04:31.830 --> 04:38.820
Alors trois est le nombre d'actions il y aura trois actions possibles aller à gauche aller tout droit

04:39.330 --> 04:44.190
ou aller à droite et 0. 9 est à nouveau un paramètre de l'algorithme d'apprentissage de la file d'attente.

04:44.220 --> 04:46.900
Très bien et ensuite nous avons l'action par rotation.

04:46.980 --> 04:50.910
L'action pour la rotation est donc un vecteur de trois éléments.

04:50.910 --> 04:53.290
020 et moins 20.

04:53.300 --> 05:01.820
Et nous devons le faire car les actions sont codées par trois nombres 0 1 et 2 et que cela correspond aux index

05:01.820 --> 05:04.700
de cette action deux vecteurs de rotation.

05:04.710 --> 05:11.160
Ainsi, par exemple, si l'action sélectionnée à l'instant t est égale à zéro.

05:11.270 --> 05:18.990
Le zéro correspond à l’indice de cette action vecteur de rotation et la valeur de l’indice 0 est zéro.

05:19.150 --> 05:24.490
Et donc nous irons tout de suite si l'action sélectionnée est 1.

05:24.770 --> 05:30.380
Bien on correspond à l’indice de cette action deux vecteur additionnel et la valeur de ce vecteur

05:30.380 --> 05:32.810
qui a un autre est 20.

05:32.810 --> 05:38.580
Donc 20 correspond à une rotation de 20 degrés et cela signifie que le code ira

05:39.260 --> 05:46.500
de 20 degrés à droite et ensuite, si l'action sélectionnée doit bien correspondre à l'index de cette action à rotation du vecteur.

05:46.700 --> 05:52.570
Et donc, le code fera une rotation de moins 20 degrés et ira donc à gauche.

05:52.580 --> 06:00.200
Très bien, nous introduisons le voivode de la récompense de gauche car à chaque étape, le dernier mot sera reçu.

06:00.200 --> 06:04.970
Alors souvenez-vous que si la carte n’a pas un sens, la récompense sera positive.

06:05.180 --> 06:11.780
Et si le code continue à bien aller, il obtiendra la mauvaise récompense et chaque fois que

06:11.780 --> 06:15.270
cette variable contiendra cette récompense qu’elle obtiendra H20.

06:15.500 --> 06:20.760
Et puis on initialise les scores qui est un vecteur qui contiendra la récompense.

06:20.780 --> 06:22.780
Pas tous, mais la récompense.

06:22.800 --> 06:28.340
Sur une fenêtre glissante pour que vous sachiez que nous pouvons faire une courbe de la moyenne accroupie la récompense par

06:28.340 --> 06:29.440
rapport au temps.

06:29.450 --> 06:34.520
Très bien, dans cette section de code, nous initialisons la carte et nous initialisons.

06:34.520 --> 06:36.170
Par exemple, ladite variable.

06:36.170 --> 06:37.220
Donc c'est important.

06:37.220 --> 06:42.710
La deuxième variable sera en réalité un tableau dans lequel les cellules seront les pixels de la carte

06:43.250 --> 06:45.880
et dans chaque cellule nous aurons un 1.

06:45.980 --> 06:52.120
S'il y a un sens dans un zéro s'il n'y a pas de centre au début, nous ne dessinerons rien.

06:52.160 --> 06:57.840
Il n'y aura donc aucun sens du tout et par conséquent toutes les cellules du tableau central auront un zéro.

06:57.860 --> 07:02.990
Il y aura des zéros partout et dès que nous dessinerons un sens tandis que les cellules

07:02.990 --> 07:10.290
sur lesquelles nous dessinons le sens en obtiendront un et que nous initialiserons la course avec tous les zéros envoyés ici à égaux et à zéros.

07:10.370 --> 07:13.510
Ensuite, nous avons cette chose importante qui est le but.

07:13.520 --> 07:17.630
Le but est donc un point sur la carte qui entraînera la voiture à atteindre.

07:17.630 --> 07:19.850
Donc, c'est comme une destination.

07:19.850 --> 07:21.460
Alors, quel est cet objectif va être.

07:21.560 --> 07:27.380
Eh bien, cela va être le coin supérieur gauche de la carte pour permettre à tous de former la voiture pour aller dans le coin supérieur

07:27.380 --> 07:28.480
gauche de la carte.

07:28.550 --> 07:33.290
Et puis, une fois que cela aura atteint le coin supérieur gauche de la carte, nous aurons tendance à nous diriger

07:33.290 --> 07:36.590
vers le coin inférieur droit de la carte pour imaginer le scénario suivant.

07:36.590 --> 07:42.620
Le coin supérieur gauche de la carte est l'aéroport d'une ville et le coin inférieur droit de la carte est

07:42.620 --> 07:44.320
le centre-ville de la ville.

07:44.570 --> 07:50.180
Et nous formerons un taxi ou Uber pour faire des allers-retours entre l'aéroport et le centre-ville.

07:50.210 --> 07:55.610
Et bien sûr, nous rendrons la tâche difficile à ce taxi en traçant des routes de plus en plus difficiles

07:55.700 --> 08:01.190
et en ajoutant de plus en plus d'obstacles dans la rue pour voir si le taxi peut toujours arriver à se

08:01.190 --> 08:02.760
rendre de l'aéroport au centre-ville.

08:02.990 --> 08:04.170
Donc, ça va être amusant.

08:04.190 --> 08:11.030
Et c’est la raison pour laquelle je mets ici les coordonnées du premier objectif, à savoir l’aéroport situé en haut

08:11.030 --> 08:12.640
à gauche de l’écran.

08:12.830 --> 08:20.000
Donc, la carte sera comme un carré comme celui-ci et les coordonnées de l'origine qui sont les coordonnées

08:20.090 --> 08:22.090
00 est juste ici.

08:22.340 --> 08:25.250
Et puis plus grande est cette distance ici.

08:25.310 --> 08:32.640
Ainsi, les coordonnées 20 et Najah moins 20 seront donc ici au coin supérieur gauche de la carte.

08:32.790 --> 08:35.650
Et pourquoi ai-je choisi 20 ans et non pas zéro?

08:35.850 --> 08:40.300
Eh bien c'est parce que nous voulons former la voiture pour ne pas se précipiter dans les murs.

08:40.320 --> 08:45.450
Vous savez que nous voulons aussi nous entraîner contre les murs et que, par conséquent, nous ne voulons pas être nuls parce que nous ne

08:45.450 --> 08:48.120
voulons pas que la voiture touche la direction où nous voulons toucher.

08:48.180 --> 08:53.910
Nous devons donc l'indiquer ici, puis j'introduis simplement la dernière variable de distance, qui indique simplement la

08:53.910 --> 08:58.200
distance actuelle entre la voiture et la route et l'initialisation à zéro.

08:59.020 --> 08:59.470
D'accord.

08:59.480 --> 09:02.220
Et maintenant il est temps de faire la voiture et le jeu.

09:02.370 --> 09:06.650
Nous allons donc faire deux classes, une classe pour la voiture et une classe pour le match.

09:06.850 --> 09:10.850
Et à l’intérieur de ces classes, vous aurez déjà des liens avec notre intelligence artificielle.

09:11.170 --> 09:13.170
Nous le ferons donc dans le prochain Statoil.

09:13.180 --> 09:15.000
Et jusque-là profitez de moi
