WEBVTT

00:00.330 --> 00:05.940
Bonjour et bienvenue dans ce tutoriel, ce jouet spécial va être super excitant car nous nous rapprochons de

00:05.940 --> 00:08.540
l’A. S. C. algorithme.

00:08.700 --> 00:14.190
Vous allez voir que ce que nous sommes sur le point de mettre en œuvre et que nous appelons trace

00:14.520 --> 00:20.380
d'éligibilité ou Sarsour est en réalité un algorithme des algorithmes d'agents de critiques actifs synchrones que nous ne pouvons pas prendre en compte.

00:20.380 --> 00:25.290
Et nous voyons parce que nous allons toujours avoir un agent mais que vous allez voir

00:25.290 --> 00:32.010
que ce que nous sommes sur le point de mettre en œuvre est en fait extrait du document suivant, qui est ce document

00:32.130 --> 00:38.280
en tant que méthode Synchronoss pour l'apprentissage en renforcement profond. Dans cet article, vous trouverez les algorithmes A-3 que nous

00:38.280 --> 00:40.840
allons implémenter comme bonus ultime de ce cours.

00:41.010 --> 00:47.580
Mais comme je l’ai dit, nous nous en approchons car le modèle qui sera mis en œuvre actuellement est

00:48.420 --> 00:55.620
en fait celui qui est synchrone et sécularisé, c’est celui qui est presque le A3 C qui est en train

00:55.620 --> 01:03.490
de le faire après, mais avec un agent puissant Ceci et l'étape Cunanan nous allons apprendre à accumuler des récompenses et à

01:03.490 --> 01:09.520
apprendre la cible cumulative sur les étapes finales au lieu d'une étape comme celle de Priestley.

01:09.690 --> 01:15.250
Et c’est ce qui rendra l’entraînement beaucoup plus performant et donc beaucoup plus puissant.

01:15.300 --> 01:21.080
Nous avons donc le pseudo-code pour cet algorithme, c'est cet algorithme comme ici.

01:21.180 --> 01:23.230
Alors cliquons dessus et c'est parti.

01:23.250 --> 01:25.740
C'est l'algorithme que nous allons implémenter.

01:25.890 --> 01:30.960
Mais rappelez-vous qu’avec un seul agent, la différence est qu’ils agissent ici.

01:30.990 --> 01:37.380
80 selon le président Greely, une politique basée sur les valeurs q pour l'état actuel et l'action

01:37.380 --> 01:38.020
jouée.

01:38.190 --> 01:42.050
Mais dans notre cas, nous n’avons pas mis en place une excellente politique verte.

01:42.090 --> 01:43.770
Nous avons mis en place un soft Max.

01:43.890 --> 01:46.110
Mais le reste est le même que vous pouvez voir.

01:46.110 --> 01:50.210
Nous allons calculer le cumulatif sur lequel nous avons travaillé et en fait 10 étapes.

01:50.220 --> 01:52.340
Rappelez-vous que les étapes sont égales à 10.

01:52.440 --> 01:58.170
Nous allons donc implémenter cette ligne de code dans notre algorithme que nous sommes sur le point d'implémenter maintenant.

01:58.170 --> 01:59.010
Nous allons l'obtenir.

01:59.010 --> 02:02.150
Et surtout, nous allons implémenter cela aussi.

02:02.160 --> 02:07.590
Vous verrez que nous obtiendrons le maximum des valeurs q pour l'état actuel et l'action en cours

02:07.590 --> 02:08.820
dans cette thêta.

02:08.820 --> 02:11.150
Voici juste un paramètre cible.

02:11.430 --> 02:15.350
Alors faisons ceci attaquons cet algorithme.

02:15.360 --> 02:18.730
Celui-ci s'appelle l'apprentissage synchrone et stick.

02:18.900 --> 02:24.490
Mais nous n'avons pas le droit de dire synchrone en ce qui nous concerne car nous n'avons qu'un seul moteur.

02:24.670 --> 02:29.830
Mais par conséquent, nous pouvons l'appeler et apprendre trace d'éligibilité ou même Sarsour.

02:30.270 --> 02:31.780
Très bien alors faisons ceci.

02:31.800 --> 02:33.080
Ça va être assez amusant.

02:33.090 --> 02:37.460
Nous pouvons essentiellement suivre le code ici et c'est ce que nous allons faire.

02:37.460 --> 02:43.980
Et comme vous pouvez le voir, un paramètre dont nous aurons besoin est de nouveau le paramètre qui

02:44.280 --> 02:50.820
est le paramètre decay et nous allons donc commencer par introduire une variable pour ce paramètre Gahanna et les choisir.

02:50.820 --> 02:51.840
Alors faisons ceci.

02:51.900 --> 02:57.040
Nous n’avons en fait pas besoin d’une salle de classe formidable. Nous pouvons simplement implémenter cela avec une fonction

02:57.040 --> 03:01.830
car vous savez que nous n’avons pas vraiment besoin de créer des objets pour que cela soit de

03:02.190 --> 03:08.500
tracer un modèle de fonction suffira parce que, fondamentalement, nous voulons: renvoyer les entrées et la cible de manière à ce que plus tard,

03:08.500 --> 03:14.460
lors de la formation de l'IA, nous soyons prêts à minimiser la distance entre les prédictions et la cible et d'obtenir les prédictions

03:14.470 --> 03:19.950
dont nous avons besoin des entrées car nous allons appliquer notre cerveau à l'entrée pour obtenir la sortie des signaux

03:19.950 --> 03:21.300
qui seront nos prédictions.

03:21.300 --> 03:26.730
Et ensuite, une fois que nous aurons nos prévisions et nos objectifs, nous serons prêts à former l'IA

03:26.730 --> 03:30.680
en essayant de minimiser cette grande distance entre les prévisions et les toilettes.

03:30.690 --> 03:32.780
C'est donc tout l'intérêt de le faire maintenant.

03:32.880 --> 03:38.130
Nous mettons en œuvre cette fonction pour pouvoir restituer ces entrées aux Soviétiques afin d’être prêts pour

03:38.130 --> 03:43.010
l’entraînement afin de minimiser les prédictions de distance au carré à gérer des toilettes.

03:43.020 --> 03:46.400
Très bien, faisons ceci car nous avons dit que nous voulions implémenter des fonctions.

03:46.410 --> 03:47.910
Nous commençons par ceci.

03:47.940 --> 03:52.680
Nous allons appeler cela la trace soulignée d'admissibilité.

03:52.860 --> 03:54.210
Vous pouvez aussi l'appeler Sarsour.

03:54.240 --> 04:00.660
Vous pouvez également appeler cela étape pour appeler ce que vous voulez, mais appelons-le trace d'éligibilité

04:00.660 --> 04:07.530
et cette fonction prendra un argument qui va être un lot et pourquoi c'est parce que nous

04:07.530 --> 04:13.460
allons obtenir des entrées et des cibles nous allons former l'IA sur des lots.

04:13.530 --> 04:19.170
Ainsi, les entrées et les cibles iront à l'intérieur de certains lots. Par

04:19.410 --> 04:25.090
conséquent, l'argument d'entrée est ce lot qui contiendra plusieurs entrées, puis plusieurs cibles à calculer.

04:25.500 --> 04:26.730
Alors on y va.

04:26.730 --> 04:28.310
C'est le seul argument dont nous avons besoin.

04:28.500 --> 04:32.280
Entrons maintenant dans une fonction et définissons ce que nous devons faire.

04:32.370 --> 04:40.140
Ainsi, comme nous l'avons vu dans la basilique du document, nous avons à nouveau besoin des paramètres. Nous avons donc commencé par

04:40.440 --> 04:45.390
introduire ce paramètre gamma à demi-fermeture et nous pouvons déjà déchiffrer la valeur.

04:45.450 --> 04:51.780
Et nous allons choisir quatre virgule quatre-vingt-dix-neuf qui est un bon rapport qualité prix classique pour le Ghana et Norreys.

04:51.780 --> 04:55.640
J'ai vérifié qu'il s'agissait d'un bon rapport qualité-prix pour notre intelligence artificielle.

04:55.650 --> 05:04.120
La prochaine étape consiste à préparer notre contribution et nos objectifs, car c’est exactement ce que nous

05:04.120 --> 05:05.260
souhaitons obtenir.

05:05.260 --> 05:08.980
Nous voulons retourner les entrées dans les cibles pour préparer la formation.

05:08.980 --> 05:15.520
Et donc nous pouvons déjà les initialiser avec une liste vide parce que bien sûr ces entrées Dans le meilleur

05:15.790 --> 05:21.130
des cas, nous aurons plusieurs entrées dans une liste. C’est lors de l’initialisation des entrées en

05:21.430 --> 05:25.000
tant que liste ainsi que des cibles que nous allons.

05:25.000 --> 05:31.420
Nous avons donc initialisé notre et mis dans nos cibles et à la fin cette fonction de trace d'éligibilité

05:31.540 --> 05:33.320
retournera exactement ces entrées.

05:33.330 --> 05:36.180
Et ces oui étaient bien sûr Filton.

05:36.290 --> 05:42.300
Nous avons plusieurs entrées et les cibles associées dans ce qui sera retourné par la fonction.

05:42.300 --> 05:48.820
La prochaine étape consiste à démarrer une boucle et c’est précisément parce que nous suivons le code

05:48.880 --> 05:50.290
lent du document.

05:50.290 --> 05:51.400
Ce genre de code.

05:51.490 --> 05:58.420
Et comme vous pouvez le voir, il y a cette section de code de répétition et répété exactement une boucle complète dans le code.

05:58.470 --> 06:03.870
Nous allons calculer la récompense cumulée accumulée ici au cours des 10 étapes.

06:03.940 --> 06:05.130
Et comment est-il calculé?

06:05.290 --> 06:10.480
Dans chaque étape qui ne correspond pas à la dernière étape, nous allons obtenir le maximum des valeurs fondamentales de la devise

06:10.480 --> 06:13.070
dans laquelle nous nous trouvons au cours de cette étape.

06:13.240 --> 06:17.790
Et si nous atteignons bien le dernier état des 10 étapes, cela sera égal à zéro.

06:17.890 --> 06:19.810
C'est que nous ne voulons plus le faire.

06:20.080 --> 06:23.320
Et puis nous avons cette boucle qui va être une autre place.

06:23.470 --> 06:28.390
Ils ne disent pas répéter ici, mais c'est pareil, ce sera la deuxième boucle complète de notre algorithme.

06:28.600 --> 06:34.570
Eh bien, nous aurons ce que nous avons été ainsi en le multipliant par le paramètre de désintégration gamma et en ajoutant

06:34.840 --> 06:35.660
le mot.

06:36.010 --> 06:41.510
Faisons cela, revenons à Python et commençons notre plein.

06:41.980 --> 06:44.920
Et quelle va être la variable itérative.

06:45.070 --> 06:47.820
Cela va être notre série de 10 étapes.

06:47.890 --> 06:55.510
Vous connaissez notre série de 10 transitions, nous allons donc appeler cette série de variables qui représente une série de

06:55.600 --> 06:58.820
10 transitions comme une séquence de 10 transitions.

06:58.860 --> 07:00.910
Donc pour les séries en.

07:01.210 --> 07:02.400
Et puis qu'en pensez-vous.

07:02.620 --> 07:05.570
Eh bien notre série sera à notre lot.

07:05.680 --> 07:12.040
Il y a les lots sur lesquels formeront les séries AI et ainsi de suite en lot, c'est-à-dire pour toutes les

07:12.040 --> 07:14.540
séries de 10 transitions de notre lot d'entrée.

07:14.800 --> 07:20.710
Eh bien, où allons-nous bien faire pour obtenir une récompense cumulative, vous verrez dans la silice qu'il nous faut

07:20.950 --> 07:26.560
l'état de la première transition de la série ainsi que l'état de la dernière transition de la série

07:26.740 --> 07:33.040
Donc, ce que nous devons faire maintenant, c’est d’obtenir ces états d’entrée et nous allons donc placer ces

07:33.130 --> 07:39.380
deux États dans une situation viable qui appelera l’entrée et nous obtiendrons ces deux états d’entrée.

07:39.400 --> 07:46.590
Le premier de la série et le dernier que nous allons mettre dans une configuration non pilote, mais ne vous en

07:46.800 --> 07:51.880
faites pas et Ampyra le convertiront bien sûr en horrible, mais la première étape consiste

07:51.880 --> 07:56.930
à placer ces deux déclare le premier dans le dernier dans un empire.

07:57.240 --> 08:03.850
Et donc ici, dans ce tableau, nous ajoutons la première entrée qui est l’étage d’entrée de la première

08:03.850 --> 08:10.820
transition de la série et c’est Series, puis pour le prendre pour une transition, prenons l’indice zéro de la

08:10.820 --> 08:17.780
série et la nous pouvons y accéder en prenant ses attributs qui sont state et thats car, dans notre

08:18.290 --> 08:24.200
fichier de relecture d’expérience, nous avons trouvé une structure spéciale pour chaque transition et vous en

08:24.440 --> 08:25.660
connaissez la structure.

08:25.730 --> 08:29.380
Chaque transition est composée d'un état d'un mot d'action.

08:29.570 --> 08:34.970
Mais ensuite, le dernier élément réalisé pour cette structure spéciale que nous sommes autorisés à utiliser maintenant provient

08:35.240 --> 08:39.250
de la façon dont nous avons défini la transition et la reprise d'expérience.

08:39.290 --> 08:45.380
Très bien, avec cela, nous obtenons l’état d’entrée de la première transition et passons également à l’étape

08:45.380 --> 08:48.640
d’entrée de la dernière transition de la série.

08:48.800 --> 08:57.200
Et faire cela, c'est dire que nous pouvons simplement copier ceci et le coller et le remplacer comme vous êtes ici par le dernier

08:57.200 --> 09:04.040
index de la série auquel nous pouvons accéder avec cette astuce moins une série moins une qui cet état

09:04.100 --> 09:07.420
obtiendra l'état d'entrée du dernier transition de la série.

09:08.210 --> 09:16.310
Très bien alors nous devons mettre ces deux éléments entre crochets car c’est ce que l’arbitre attend

09:16.310 --> 09:23.120
d’une fonction puis d’une chose importante à faire puisque nous allons convertir cela en

09:23.210 --> 09:26.140
réponse torche dans une variable torche.

09:26.330 --> 09:31.810
Souvenez-vous bien qu'un tenseur de torche est par définition un tableau spécial contenant un seul type.

09:31.940 --> 09:34.640
Et nous devons donc forcer un seul type.

09:34.760 --> 09:42.020
Et comme d'habitude, nous allons choisir le type float, et ainsi de suite, en ajoutant ce paramètre ici D type est

09:42.750 --> 09:45.030
égal à et P qui flotte.

09:45.320 --> 09:52.380
Pour que vous puissiez prendre celui-ci et que nous puissions maintenant le convertir en un tenseur de torche dans un voïvode de torche.

09:52.550 --> 09:54.640
Alors faisons ceci.

09:54.770 --> 09:57.470
Eh bien, convertissons d'abord cela en capteur de torche.

09:57.590 --> 10:06.880
Et rappelez-vous que nous pouvons utiliser la torche que nous n'allons pas et que nous plaçons tout le tableau des deux états

10:06.900 --> 10:15.180
d'entrée à l'intérieur de cette danseuse de torche avec sa torche par fonction parfaite qui convertira ces matrices de

10:15.250 --> 10:18.230
l'état d'entrée en une torche capteur.

10:18.420 --> 10:26.560
Et maintenant, nous plaçons très bien cette réponse dans une torche en utilisant la classe variable. L'entrée sera donc un objet

10:26.560 --> 10:28.400
de la classe précieuse.

10:28.480 --> 10:35.380
Et en fait, comme vous l'avez compris, cette classe de variables prend tout cela comme argument

10:35.380 --> 10:36.680
et crée l'objet.

10:36.680 --> 10:38.420
D'accord, maintenant nous devrions être bons.

10:38.450 --> 10:41.000
Nous avons nos deux entrées dont nous avons besoin.

10:41.000 --> 10:45.440
C'est l'état d'entrée de la première transition, puis l'entrée dit que la dernière transition.

10:45.770 --> 10:51.890
Et maintenant que nous avons les entrées Eh bien, que pouvons-nous obtenir, nous pouvons obtenir le signal de sortie du cerveau

10:51.890 --> 10:52.560
de l'IA.

10:52.640 --> 10:56.160
C'est la prédiction que nous allons appeler cela des sorties.

10:56.630 --> 10:57.950
C'est le signal de sortie.

10:58.130 --> 10:59.280
Et pour obtenir les sorties.

10:59.330 --> 11:04.670
Eh bien, c’est très facile, car nous avons déjà créé un cerveau, notre réseau de neurones

11:04.670 --> 11:05.330
convolutionnels.

11:05.570 --> 11:14.120
Et ainsi nous pouvons simplement prendre notre cerveau CNN appliqué aux entrées qui retournera la prédiction qui est la

11:14.120 --> 11:16.650
sortie aussi simple que cela.

11:16.820 --> 11:19.510
Et maintenant, nous sommes déjà prêts à passer à l'étape suivante.

11:20.730 --> 11:24.890
Et la prochaine étape consiste à commencer à calculer cette communauté si vous le souhaitez.

11:25.090 --> 11:30.690
Alors maintenant, nous allons faire exactement la même chose que notre algorithme de Sarsour ou devrions-nous l'appeler et

11:30.760 --> 11:32.300
les étapes pour apprendre.

11:32.290 --> 11:39.990
Nous allons introduire la variable de récompense cumulative qui sera la récompense cumulative. Revenons au document, car vous pouvez voir

11:39.990 --> 11:45.120
maintenant ce que nous devons faire pour obtenir cette récompense communautaire qui est

11:45.210 --> 11:46.000
notre ici.

11:46.170 --> 11:53.160
Eh bien et chaque étape des 10 étapes exécutées, nous devons la mettre à jour en ajoutant un zéro à cette communauté

11:53.160 --> 11:59.910
si nous l’avions été si nous avions atteint la dernière étape de la série ou le maximum des valeurs fondamentales la

12:00.000 --> 12:03.410
série qui est pour toute la statique qui a duré.

12:03.750 --> 12:05.890
Donc, c'est simplement un bonanzas.

12:06.000 --> 12:07.580
Revenons à Piscean.

12:07.650 --> 12:16.490
Donc, cette récompense de communauté, comme nous venons de le voir, sera égale à zéro si nous avons atteint le dernier état

12:16.490 --> 12:23.070
et nous pouvons écrire cette condition de cette façon si la série d’index moins 1

12:23.070 --> 12:25.940
C'est la dernière transition de la série.

12:26.250 --> 12:32.280
Ensuite, nous ajoutons que done car done est un attribut de vous savez cette structure transitoire que nous

12:32.280 --> 12:38.400
avons définie dans l'expérience, nous jouons notre expérience rejouer faute et cela fait en réalité les structures d'ouverture

12:38.400 --> 12:44.550
parce que si nous allons sur le site Web ouvert Allergan qui est en fait juste ici je l'ai

12:44.550 --> 12:45.240
préparé.

12:45.280 --> 12:47.160
C'est le bien ou le vizir.

12:47.340 --> 12:52.300
Et si nous allons à la documentation et ensuite si nous.

12:52.380 --> 12:55.240
C'est le tutoriel que je vous encourage vraiment à regarder.

12:55.470 --> 13:01.530
Vous pouvez exécuter un environnement dans lequel Knowsley, vous pouvez constater que nos observations selon lesquelles il s’agit

13:01.950 --> 13:04.690
de transitions sont définies par une observation.

13:04.790 --> 13:12.150
Nous voulons que cela soit fait ici et cela signifie exactement qu'une transition ou une étape est terminée.

13:12.150 --> 13:15.440
Et donc nous allons utiliser ceci fait ici pour notre condition IF.

13:15.610 --> 13:23.460
Par conséquent, lorsque cela est terminé, la folie iSeries signifie que la fin de la dernière transition de la série est terminée.

13:23.730 --> 13:29.290
Et donc, cette récompense cumulative sera égale à zéro si la dernière transition de la série est effectuée.

13:29.330 --> 13:37.290
Sinon, si nous n'avons pas atteint la dernière transition, la récompense cumulative sera mise à jour avec, comme

13:37.290 --> 13:40.950
nous l'avons dit, le maximum des valeurs clés.

13:41.220 --> 13:47.460
Et puisque cette sortie est la sortie du cerveau qui est la prédiction du réseau de neurones.

13:47.520 --> 13:53.640
Et comme vous le savez, les prévisions du réseau de neurones correspondent aux valeurs prévues. Cette sortie

13:53.920 --> 13:55.040
contient les valeurs.

13:55.110 --> 14:01.130
Et puisque nous devons bien prendre le maximum des q valeurs, nous devons d'abord ajouter cet index car

14:01.130 --> 14:04.620
cette structure contient deux valeurs de clé et la suivante.

14:04.620 --> 14:07.830
Et nous devons ensuite ajouter des données pour accéder aux données.

14:07.830 --> 14:12.150
Vous savez que cette structure de sortie a la structure particulière d’un voïvode de torche.

14:12.270 --> 14:17.910
Donc, avec cela, nous obtenons nos valeurs fondamentales et ensuite nous voulons prendre le maximum de nos valeurs

14:17.910 --> 14:20.470
de repère et nous ajoutons donc que Max.

14:20.490 --> 14:27.820
Et maintenant, nous obtenons exactement ce que nous voulons, comme dans le document, ce maximum des valeurs de cube pour

14:27.820 --> 14:30.240
les états non terminaux est parfait.

14:30.280 --> 14:33.460
Et maintenant, nous allons faire le deuxième pli.

14:33.930 --> 14:40.830
C’est pour les 10 étapes de la série que nous allons mettre à jour le cumulatif ainsi obtenu en multipliant d’abord

14:40.830 --> 14:46.170
par Gamma le paramètre de décroissance que nous avons déjà, puis en ajoutant le mot B.

14:46.410 --> 14:47.540
Alors faisons ceci.

14:47.610 --> 14:52.260
Nous allons faire exactement la même chose que dans le pseudocode, comme vous pouvez le constater, ils partent de

14:52.260 --> 14:52.970
la droite.

14:53.040 --> 14:59.010
Donc, ils ne commencent pas à la première étape et vont au dernier test, ils commencent par la dernière étape.

14:59.040 --> 15:02.280
T-moins 1 à la première étape pour commencer.

15:02.340 --> 15:06.520
C’est exactement ce que nous allons faire et c’est parce que

15:06.610 --> 15:15.840
nous voulons obtenir à la fin une récompense cumulative égale à nos égaux ou zéro plus gamma ou 1 plus gamma carré ou deux plus que l’addition

15:15.840 --> 15:24.420
plus le gamma à la puissance 10 ou 10 où sont 1 ou 2 qui sont 10 sont le mot obtenu dans chacune des étapes

15:24.420 --> 15:25.580
de la série.

15:25.590 --> 15:29.870
Faisons donc une petite pause avant de passer à la deuxième boucle complète et nous vous reverrons dans le prochain tutoriel.

15:30.030 --> 15:31.530
Jusque-là, profitez de l'IA.
