WEBVTT

00:00.450 --> 00:02.670
Bonjour et bienvenue sur ce modèle, c'est horreur.

00:02.850 --> 00:06.890
Très bien, nous venons de mettre à jour la mémoire après avoir atteint le nouvel état.

00:06.900 --> 00:09.010
Et maintenant, occupons-nous du lendemain.

00:09.330 --> 00:12.810
Selon vous, quelle sera la prochaine mise à jour?

00:12.810 --> 00:20.040
En gros, nous en avons fini avec une transition, nous avons daté le dernier élément de la transition, à savoir le

00:20.040 --> 00:20.960
nouvel état.

00:21.150 --> 00:23.340
Alors maintenant, c'est comme si on recommençait.

00:23.520 --> 00:25.530
Et quand on recommençait tout.

00:25.650 --> 00:31.320
C'est comme si vous saviez que nous sommes dans ce nouvel état de l'environnement et que devons-nous faire maintenant naturellement?

00:31.500 --> 00:37.170
Bien sûr, c'est pour jouer une action parce que nous avons déjà eu l'observation des nouveaux États.

00:37.410 --> 00:43.290
Maintenant, ce que nous devons faire, c'est jouer une action. Nous devons donc bien sûr utiliser

00:43.290 --> 00:46.960
la fonction de sélection de l'action pour jouer l'action.

00:47.010 --> 00:54.320
Faisons-le, créons une nouvelle action Voivode et jouons-la avec l'action select pour que je le

00:54.320 --> 00:55.240
fasse.

00:55.380 --> 01:03.150
Bien d'abord, auto pour spécifier que la fonction d'action de sélection est une méthode de l'objet de la classe qui

01:03.150 --> 01:04.300
sera créée.

01:04.470 --> 01:08.610
Donc, un moi qui choisit l'action.

01:08.640 --> 01:09.520
Et c'est parti.

01:09.560 --> 01:11.090
C'est donc l'action suivante.

01:11.310 --> 01:17.560
Et bien sûr, puisque la fonction d’action select prend l’état en entrée car bien entendu, la fonction

01:17.560 --> 01:24.270
d’action select renvoie la sortie du réseau de neurones lorsque l’état d’entrée actuel est entré dans le réseau

01:24.270 --> 01:25.220
de neurones.

01:25.500 --> 01:31.650
Nous devons donc entrer ici l’étape d’entrée et, puisque c’est l’état que nous venons d’atteindre dans l’environnement

01:31.650 --> 01:37.350
actuel. Vous indiquez bien l’état d’entrée, car cet état que nous venons d’atteindre au moment

01:37.350 --> 01:40.070
où nous en sommes est Newstead.

01:40.290 --> 01:45.140
Donc, dans cette fonction d'action choisie, je veux dire mettre de nouveaux bâtons.

01:45.150 --> 01:51.710
Très bien, avec cette ligne de code, nous jouons simplement la nouvelle action après avoir atteint le nouvel état.

01:52.140 --> 01:58.780
OK et maintenant que nous avons joué une action Eh bien, nous obtenons la récompense et nous recevons donc un retour d’information avec la récompense.

01:59.010 --> 02:04.550
Et donc si nous avons plus de 100 éléments en mémoire, il serait temps d'apprendre.

02:04.860 --> 02:10.830
Et par conséquent, ce que nous devons faire maintenant, c’est ce qui vient logiquement après le choix d’une action visant à

02:10.830 --> 02:13.830
réduire le besoin en intelligence artificielle de commencer à apprendre.

02:13.950 --> 02:15.620
S'il fait les choses comme il faut.

02:15.870 --> 02:22.530
Et maintenant qu’il joue bien, nous allons faire en sorte que l’IA tire les leçons de ses actions lors

02:22.530 --> 02:23.940
des 100 derniers événements.

02:24.130 --> 02:31.320
Mais avant d'appliquer cette fonction apprise, nous devons créer cette condition pour nous assurer que nous avons déjà atteint plus

02:31.320 --> 02:37.380
de 100 événements, car vous savez que nous apprenons à partir d'échantillons aléatoires de la mémoire.

02:37.530 --> 02:41.110
Vous savez que nous avons cette énorme mémoire de 10000 éléments.

02:41.190 --> 02:48.930
Nous prenons des échantillons aléatoires de la mémoire de 100 éléments et l'IA apprend à partir des informations

02:48.990 --> 02:52.850
contenues dans cet échantillon de 100 transitions aléatoires.

02:52.860 --> 03:00.690
Faisons donc cette condition si pour nous assurer que le nombre d’éléments de la mémoire de cette mémoire, puis faites attention,

03:00.810 --> 03:06.390
juste un petit truc ici, la mémoire autodidacte est l’objet de votre classe de

03:06.390 --> 03:12.380
mémoire de répétition mais la classe de mémoire de répétition a un attribut qui est la mémoire.

03:12.510 --> 03:21.780
Donc, en fait, nous devons utiliser une partie de la mémoire. La première mémoire est l’objet de la classe de mémoire

03:21.780 --> 03:28.170
de réexécution et la deuxième mémoire est l’attribut qui est ici la mémoire.

03:28.200 --> 03:37.350
Donc, si le nombre d’éléments dans la mémoire est correct, nous voulons qu’il soit supérieur à 100, puis

03:37.860 --> 03:38.800
Cullin.

03:38.970 --> 03:46.320
Nous pouvons bien apprendre, mais pour apprendre, nous devons obtenir cet échantillon aléatoire de 100 transitions, ce que nous

03:46.320 --> 03:48.840
pouvons obtenir avec la simple fonction.

03:48.840 --> 03:55.140
Et puisque la fonction simple renvoie les différents lots à des états au temps t, ces données 20 plus un des actions

03:55.290 --> 03:57.950
du temps t et nous étions à 20.

03:58.200 --> 04:03.360
Ce que nous devons faire maintenant, c’est créer de nouvelles relances qui vont constituer le

04:03.360 --> 04:08.580
lot des états au moment du lot des dates suivantes le lot des mots et le

04:08.580 --> 04:16.030
lot des actions et nous pouvons simplement donner les mêmes noms comme nous avons donné pour les arguments ici et ils sont ici.

04:16.200 --> 04:24.720
Et ces variables seront égales à ce que la fonction simple retourne, car elle renvoie exactement ces lots et le

04:24.720 --> 04:28.320
prochain état prend des mots et des actions.

04:28.320 --> 04:35.570
Donc, ce que nous devons simplement faire maintenant, c’est d’obtenir d’abord notre objet de mémoire, puis à partir de cet objet

04:35.620 --> 04:40.300
de mémoire, nous allons utiliser la méthode simple qui prendra comme entrées.

04:40.500 --> 04:46.370
Le nombre de transitions que nous voulons que notre intelligence artificielle apprenne est de 100.

04:46.620 --> 04:50.540
C'est pourquoi nous nous sommes assurés d'avoir plus de cent transitions.

04:50.610 --> 04:54.780
Donc, il va apprendre de 100 transitions de la mémoire.

04:54.840 --> 04:56.500
Donc, l'apprentissage sera bien meilleur.

04:56.610 --> 04:59.560
Et maintenant, faisons en sorte que cela se produise vraiment.

04:59.700 --> 05:04.560
Bien puisque la méthode d'apprentissage est une méthode de notre en classe.

05:04.830 --> 05:11.180
Nous avons besoin d'accéder à cette méthode d'apprentissage à partir des futurs objets qui seront créés à partir d'une

05:11.190 --> 05:14.300
classe différente. Par conséquent, nous devons prendre soi-même.

05:14.430 --> 05:21.960
Self se réfère à cet objectif à faire en classe puis à apprendre en tant que méthode apprise,

05:22.470 --> 05:29.340
méthode à laquelle, bien entendu, ces gars-là représentent le mauvais état, l’état belge, le monde naturel et

05:29.340 --> 05:30.530
l’action Bachche.

05:30.630 --> 05:38.730
Ce sont nos lots échantillonnés de notre mémoire et nous en avons cent car nous avons 100 transitions

05:39.330 --> 05:47.750
de ces 100 transitions nous prenons 100 États 100 États prochains 100 récompenses et 100 actions soyons confrontés

05:47.780 --> 05:51.530
ici et là nous allons maintenant apprendre.

05:51.850 --> 05:54.490
Cela se produira à partir de tous ces lots aléatoires.

05:54.520 --> 05:55.850
Parfait.

05:55.960 --> 06:03.310
Et maintenant, ce que nous devons faire, ce sont les toutes dernières mises à jour après que vous sachiez atteindre un nouvel état et jouer

06:03.310 --> 06:04.140
en action.

06:04.330 --> 06:08.890
En fait, nous vous avons amené à jouer mais nous n’avons toujours pas eu cette réaction.

06:08.920 --> 06:11.590
C’est notre moi que la dernière action est le voïvode.

06:11.770 --> 06:13.730
Alors, assurons-nous de ne pas l'oublier.

06:13.780 --> 06:15.160
Faisons-le maintenant.

06:15.190 --> 06:24.610
Nous mettrons à jour la dernière action qui correspond à la dernière action et, bien sûr, l'action que nous restons ici

06:24.610 --> 06:27.020
avec cette fonction d'action sélectionnée.

06:27.020 --> 06:30.520
Bien maintenant la dernière section est mise à jour alors.

06:30.520 --> 06:31.890
Même chose pour le nouvel état.

06:31.930 --> 06:39.190
Nous avons atteint le nouvel état mais nous n'avons pas encore mis à jour la dernière date car bien sûr, la dernière date était antérieure à

06:39.280 --> 06:40.590
l'état au moment t.

06:40.750 --> 06:44.870
Mais depuis lors, nous avons atteint le nouvel excédent d'État lorsqu'il est temps d'en passer un.

06:45.070 --> 06:48.180
Eh bien la dernière chose devient ce que vous avez dit ici.

06:48.190 --> 06:50.290
Par conséquent, nous avons également besoin de mises à jour.

06:50.290 --> 06:57.070
Soi ce dernier état est égal à notre nouvel état.

06:57.280 --> 06:58.020
Nous y voilà.

06:58.210 --> 06:59.620
Et maintenant, de quoi avons-nous besoin pour sortir avec nous?

06:59.830 --> 07:01.640
Eh bien, il ne reste plus qu’une chose.

07:01.660 --> 07:08.070
C'est bien sûr le mot et le mot est exactement le mot que nous obtenons dans la réalité.

07:08.290 --> 07:15.910
Donc, ce sera l’argument de cette fonction qui, si nous établissons la connexion avec notre carte, sera le

07:15.910 --> 07:17.160
dernier mot.

07:17.200 --> 07:23.250
C'est le mot que nous entendons bien après avoir joué l'action dans ce nouvel état atteint.

07:23.470 --> 07:30.260
Donc, si nous passons à quelque chose de son, ce dernier mot sera celui de moins un. Si nous avançons plus loin, nous

07:30.290 --> 07:35.580
aurons un mot un peu mauvais, moins 0. 2 si on se rapproche du but.

07:35.660 --> 07:38.680
Nous aurons une récompense légèrement bonne 0. 1.

07:38.830 --> 07:43.370
Et si nous nous approchons trop du bord de la carte, ce sera une punition.

07:43.510 --> 07:45.330
Nous aurons moins un pour chacun.

07:45.440 --> 07:47.110
C'est donc le dernier mot que nous recevons.

07:47.110 --> 07:50.700
En réalité, c'est quand cela se produit réellement sur la carte.

07:50.830 --> 07:53.550
Et ce sera l'argument de la fonction.

07:53.600 --> 07:54.690
Le dernier mot ici.

07:54.700 --> 07:56.200
C'est exactement celui-ci.

07:56.250 --> 08:01.840
Et puisque c’est bien l’argument de la fonction de mise à

08:02.170 --> 08:11.590
jour qui correspond à cela, nous n’étions pas ici et, par conséquent, notre variable de mot initialisée au début de cette

08:12.070 --> 08:20.570
fonction devient le nouveau mot que nous obtenons en réalité, c’est le mot ou c’est le même dernier mot.

08:20.730 --> 08:21.360
D'accord.

08:21.410 --> 08:23.680
Maintenant nous avons mis à jour notre dernier mot.

08:23.990 --> 08:27.240
Et maintenant, puisque nous venons d'avoir notre dernier mot.

08:27.500 --> 08:29.470
Eh bien, nous pouvons maintenant sortir avec le monde.

08:29.850 --> 08:37.140
Vous vous souvenez de la guerre quand ils ont été initialisés ici comme l’une des variables de l’objet de notre classe.

08:37.190 --> 08:42.500
C'est la fenêtre qui permettra de suivre l'évolution de ce train en prenant la moyenne

08:42.500 --> 08:44.270
des 100 dernières récompenses.

08:44.300 --> 08:50.180
Vous savez donc que ce sera comme une fenêtre coulissante nous montrant comment la moyenne du monde évolue.

08:50.180 --> 08:52.730
Et donc depuis que nous venons d'avoir notre dernier mot.

08:52.910 --> 08:56.910
Eh bien, nous pouvons mettre à jour la fenêtre où nous nous trouvons pour savoir comment le mettre à jour.

08:57.080 --> 09:03.680
Bien, nous devons simplement ajouter ce dernier mot à la fenêtre et par conséquent, ce que je

09:03.980 --> 09:12.350
vais faire, c'est prendre ma fenêtre de guerre comme nous le disons quand ils entendent cela et je vais utiliser la fonction append.

09:12.530 --> 09:18.830
Et à l’intérieur de la fonction open, nous devons saisir l’élément que nous voulons ajouter à

09:18.830 --> 09:21.480
ce que nous voulions bien faire.

09:21.500 --> 09:22.610
Très bien parfait.

09:22.610 --> 09:29.480
Et puis, puisque cette fenêtre de guerre aura une taille fixe, vous savez que ce ne sera pas une fenêtre en

09:29.480 --> 09:35.300
croissance, mais une fenêtre de taille fixe glissant avec le temps pour montrer l'évolution du monde.

09:35.500 --> 09:38.590
Et maintenant, nous devons décider de la taille de cet hiver.

09:38.750 --> 09:43.600
Et c'est simplement le nombre de moyens de la récompense que nous aurons dans cette fenêtre.

09:43.900 --> 09:49.330
Ainsi, par exemple, connaissons les 1000 derniers moyens des 100 derniers mots.

09:49.340 --> 09:58.730
Et donc pour en être sûr, nous allons ajouter si ensuite planifier, nous prenons notre fenêtre de travail et nous

09:58.740 --> 10:05.810
ajoutons simplement ici si le nombre d'éléments dans la fenêtre est supérieur à 1000.

10:05.990 --> 10:14.780
Eh bien, ce que nous voulons faire est de supprimer le premier élément de notre fenêtre et le

10:14.780 --> 10:19.070
premier élément de cette fenêtre doivent indexer zéro.

10:19.150 --> 10:19.550
D'accord.

10:19.550 --> 10:24.620
Nous nous assurons maintenant que cette fenêtre de guerre ne contiendra jamais plus de 1000 éléments.

10:24.620 --> 10:31.130
Il y a mille moyens des 100 derniers mots qui sont parfaits, ce sera une fenêtre de taille fixe pour que

10:31.310 --> 10:34.360
nous puissions voir si la moyenne du mot augmente.

10:34.460 --> 10:39.560
Et donc, si la formation se déroule bien, le tribunal fait ce que nous voulons.

10:39.800 --> 10:40.760
Parfait.

10:41.000 --> 10:46.010
Et maintenant, il reste une toute petite chose à faire selon vous.

10:46.190 --> 10:52.130
N'oubliez pas que cette fonction de mise à jour non seulement met à jour les différents éléments de la transition dans

10:52.140 --> 10:57.960
la fenêtre de guerre, mais renvoie également l'action qui a été exécutée lorsque ce nouvel état a été atteint.

10:58.190 --> 11:05.270
C'est pourquoi nous avons et alors que l'action équivaut à indiquer à cette date que nous sommes moins signalés et qu'il est

11:05.360 --> 11:10.760
donc censé retourner quelque chose et que ce qui est censé revenir est bien sûr l'action.

11:10.820 --> 11:18.950
La dernière chose que nous devons faire ici est donc simplement de revenir à l’action qui vient d’être jouée pour atteindre

11:18.950 --> 11:20.180
la nouvelle étape.

11:20.600 --> 11:23.670
Et c'est notre fonction de mise à jour est prête.

11:23.840 --> 11:29.110
Il va faire toutes les mises à jour requises et va transformer l'action lorsque vous atteignez la nouvelle étape.

11:29.480 --> 11:30.650
C'est parfait.

11:30.650 --> 11:35.230
Ce fut la dernière action difficile pour faire de tout cela un processus.

11:35.240 --> 11:37.120
Maintenant, le reste sera bon.

11:37.220 --> 11:42.170
Nous allons simplement créer une fonction de base pour renvoyer les moyens que nous voulons dans la fenêtre.

11:42.200 --> 11:47.450
Ensuite, nous créerons une fonction sécurisée pour sauver le cerveau de la voiture chaque fois que vous voudrez quitter

11:47.600 --> 11:48.840
l’application et y revenir.

11:48.890 --> 11:53.720
Et bien sûr, puisque vous voulez pouvoir charger le cerveau de votre voiture lorsque vous y retournerez,

11:53.720 --> 11:54.730
revenez à l'application.

11:55.040 --> 12:01.370
Nous allons finir par créer une fonction de chargement qui chargera votre modèle après l’avoir sauvegardé avec

12:01.370 --> 12:02.800
la même fonction.

12:02.840 --> 12:06.470
Donc, trois fonctions pour le faire, mais ça va être simple.

12:06.500 --> 12:12.760
Et puis nous aurons la section la plus excitante de ce premier module qui est la démo nous verrons

12:12.770 --> 12:13.840
si l’air fonctionne.

12:13.850 --> 12:19.430
Nous verrons si la voiture atteindra les objectifs et comment nous pouvons l’améliorer, puis vous

12:19.430 --> 12:21.980
devrez éventuellement construire votre première IA.

12:22.160 --> 12:24.010
J'ai donc hâte de commencer la démo.

12:24.140 --> 12:27.580
Faisons en premier ces trois fonctions et jusque-là moi.
