WEBVTT

00:00.330 --> 00:02.320
Bonjour et bienvenue dans l'histoire.

00:02.460 --> 00:09.240
Après avoir fait ces quatre convolutions et le LCN, nous avons maintenant un état codé qui va être l’entrée de

00:09.240 --> 00:14.500
ces deux réseaux de neurones que nous allons créer pour l’acteur et le critique.

00:14.790 --> 00:20.730
Et en parlant d'eux, la seule chose que nous devons faire maintenant est simplement de créer des outils dans nos relations complètes.

00:20.730 --> 00:22.880
Un pour l'acteur et un pour le critique.

00:23.190 --> 00:27.260
Mais avant cela, nous devons connaître le nombre d'actions possibles.

00:27.290 --> 00:32.520
Et donc je vais vous appeler variable ici qui ne sera pas une variable de l'objet.

00:32.520 --> 00:38.970
Donc, je ne vais pas utiliser moi-même ici, mais je vais créer des sorties non viables qui représenteront un certain

00:38.970 --> 00:41.610
nombre d’actions possibles et pour les obtenir.

00:41.760 --> 00:44.520
Eh bien, nous pouvons l'obtenir à partir de l'espace d'action.

00:44.520 --> 00:51.330
Nous prenons donc notre espace d’action qui sera l’entrée de la fonction lorsque nous créerons l’objet.

00:51.510 --> 00:56.300
Et puis nous ajoutons cela et pour obtenir ce nombre d'actions possibles.

00:56.580 --> 01:03.180
Et maintenant, l'acteur et le critique prendront séparément la même contribution qui est la sortie de tout

01:03.180 --> 01:06.290
ce processus avec les convolutions et GLSEN.

01:06.500 --> 01:12.900
Donc, cela prendra la même entrée qui est un état encodé, mais ensuite, ils auront deux connexions linéaires différentes de sorte

01:13.110 --> 01:19.000
que nous aurons finalement finalement deux réseaux de neurones, un pour les deux et un pour un critique.

01:19.020 --> 01:21.030
Faisons donc ces deux réseaux de neurones distincts.

01:21.060 --> 01:27.360
Mais puisque nous avons déjà fait le gros travail avec l’encodage ici, nous devons simplement créer

01:27.360 --> 01:33.640
deux objets, l’un dans la connexion complète pour l’acteur et l’autre pour le critique.

01:33.660 --> 01:35.430
Et c'est exactement ce que je vais faire.

01:35.490 --> 01:42.560
Je vais maintenant créer deux objets, un premier objet pour la connexion linéaire du critique que je

01:42.570 --> 01:49.210
vais appeler critique et la partition que sont Linnie et pour créer cette connexion linéaire.

01:49.380 --> 01:55.020
Vous savez comment faire, nous devons simplement prendre le module moteur, puis la classe linéaire dans laquelle nous avons

01:55.020 --> 01:55.800
deux entrées.

01:55.880 --> 02:01.800
Eh bien, les neurones d'entrée qui sont les sorties de tout cela, y compris ici avec les

02:01.910 --> 02:05.190
convolutions et le GM qui est à 256 neurones.

02:05.190 --> 02:12.120
Donc, quand je mets ici deux cent cinquante six et ensuite nous allons avoir une sortie parce que souvenez-vous que la sortie

02:12.210 --> 02:17.940
du réseau de neurones pour le critique est la valeur de la fonction appliquée à l'état d'entrée aux

02:18.080 --> 02:20.960
états d'entrée encodés que nous avons créés ici.

02:21.180 --> 02:28.680
Donc si nous appelons l’état d’entrée s qui est la sortie de tout cela, la sortie du réseau de neurones

02:28.680 --> 02:32.530
de la critique sera VS et aura donc une dimension.

02:32.550 --> 02:33.710
C'est juste une valeur.

02:33.870 --> 02:36.320
Et donc ici nous en mettons un.

02:36.510 --> 02:43.020
Et rappelez-vous que c’est ce qui est partagé entre les acteurs afin qu’ils puissent obtenir des informations communes qu’ils

02:43.020 --> 02:46.590
peuvent utiliser pour jouer leur action de manière plus pertinente.

02:46.980 --> 02:50.430
OK, donc c'est pour le réseau de neurones de la critique.

02:50.580 --> 02:59.820
Et maintenant faisons le nouveau réseau de l'acteur et donc je suis ici acteur autodidacte linéaire et même nous

02:59.850 --> 03:02.830
avons déjà les entrées états encodés.

03:02.850 --> 03:08.430
Donc maintenant nous devons simplement ajouter une connexion linéaire et donc dire que nous

03:08.430 --> 03:15.870
prenons le module puis la classe linéaire et que maintenant ce nouveau réseau de l’acteur prendra l’état codé

03:15.870 --> 03:19.840
qui a la taille de 256 donc 256 ici.

03:20.070 --> 03:26.010
Mais alors, la sortie va être différente car bien sûr, vous savez que la sortie du réseau

03:26.010 --> 03:30.790
de neurones pour l'acteur, autre clé, implique les valeurs clés des états d'entrée.

03:30.860 --> 03:33.620
Celui que l'on pouvait entendre et la plaque d'action.

03:33.810 --> 03:40.980
Donc encore une fois si nous appelons cet état codé que nous entendons ici comme une action jouée à la sortie de ce

03:40.980 --> 03:44.480
réseau de neurones, il y aura effectivement q comme a.

03:44.880 --> 03:50.010
Et puisque vous savez que nous avons une valeur énorme pour chaque action, nous n’avons donc aucun résultat.

03:50.010 --> 03:57.680
Les valeurs Q et donc la sortie ici seront non sorties car aucune sortie n'est en réalité

03:57.680 --> 03:59.380
le nombre d'humains.

03:59.840 --> 04:01.100
Ok parfait.

04:01.130 --> 04:05.360
Donc, si vous voulez, je peux écrire pour vous la sortie ici.

04:05.390 --> 04:18.410
La critique est la même chose que l’état encodé et pour l’acteur, la sortie est mignonne.

04:18.410 --> 04:23.750
Il est donc très important de comprendre cette distinction ici et de comprendre que nous avons donc deux

04:23.900 --> 04:25.370
réseaux de nouvelles distincts.

04:25.370 --> 04:29.370
Un pour le critique et un pour l'acteur Okay perfect.

04:29.380 --> 04:32.080
Nous en avons presque fini avec cette fonction.

04:32.170 --> 04:33.920
Maintenant, la chose la plus importante est faite.

04:34.030 --> 04:39.370
La seule chose qui nous reste à faire est d’initialiser tous les poids de ces deux réseaux de neurones et

04:39.790 --> 04:40.830
tous les biais.

04:40.860 --> 04:45.800
Et bien sûr, pour ce faire, nous allons utiliser les deux fonctions que nous avons créées précédemment, à savoir

04:45.900 --> 04:48.480
l’initialisation des colonnes normalisées et les poids qu’il contient.

04:48.490 --> 04:49.720
Alors faisons ça rapidement.

04:49.870 --> 04:52.180
Ça va être assez facile et assez rapide.

04:52.180 --> 04:56.590
Nous allons donc d'abord initialiser des poids aléatoires et pour ce faire, nous allons appliquer les

04:56.590 --> 04:58.420
poids qu'il contient à notre objet.

04:58.420 --> 05:03.150
Donc ici nous devons nous prendre pour obtenir notre objet et pour objecter.

05:03.160 --> 05:06.440
Nous appliquons le poids dans sa fonction.

05:06.620 --> 05:14.200
Par conséquent, à l'intérieur, nous devons simplement mettre les poids dans cette fonction et nous obtenons ensuite que cette fonction sera

05:14.200 --> 05:20.080
appliquée à notre objet. Ce faisant, nous initialisons simplement des poids aléatoires pour obtenir un apprentissage optimal

05:20.140 --> 05:21.930
futur de ces poids.

05:22.000 --> 05:27.460
Et maintenant, nous devons faire une normalisation spéciale pour l'acteur et le critique.

05:27.670 --> 05:33.700
Mais rappelez-vous que je pense avoir dit ceci dans les tutoriels précédents, nous n'allons pas définir le même écart

05:33.780 --> 05:38.890
pour le X en acrylique yakked. Vous obtiendrez un écart faible de petite déviation standard.

05:38.890 --> 05:40.840
Et les critiques en auront un gros.

05:40.840 --> 05:41.800
Et pourquoi faisons-nous cela.

05:41.800 --> 05:47.560
Quel est le but de donner un petit écart-type des poids pour l'acteur et le grand écart-type de

05:47.560 --> 05:49.320
la voie pour le critique.

05:49.510 --> 05:53.830
Eh bien, cela permet de gérer l’exploration vs l’exploitation.

05:53.830 --> 05:58.620
C’est précisément le but recherché en donnant une petite variance à l’acteur dans un public plus large

05:58.630 --> 05:59.460
à critiquer.

05:59.490 --> 06:04.510
Nous aurons une bonne gestion de l'exploration vs l'exploitation.

06:04.600 --> 06:07.510
Alors faisons ceci, prenons d'abord soin de l'acteur.

06:07.510 --> 06:14.170
Alors on se prend soi-même ou objet puis on va prendre le réseau de neurones de notre acteur qui est l'acteur

06:14.270 --> 06:20.350
Linnea on va ensuite accéder aux poids de ce nouveau réseau de l'acteur et se rappeler d'accéder aux données

06:20.350 --> 06:23.360
des poids dont on a besoin ces données.

06:23.410 --> 06:24.280
D'accord.

06:24.280 --> 06:31.000
Donc, avec cela, nous obtenons les poids et nous allons maintenant utiliser notre initialiseur à peigne normalisé.

06:31.390 --> 06:36.520
Donc, je copie ce collage ici et nous allons entrer dans une dispute.

06:36.520 --> 06:38.810
La déviation standard que nous voulons que ces poids aient.

06:39.160 --> 06:42.130
Mais rappelez-vous d'abord que cette fonction prend deux arguments.

06:42.200 --> 06:45.280
Tout d'abord, la façon dont nous voulons initialiser.

06:45.280 --> 06:49.750
Nous devons donc simplement reprendre cela et le baser ici.

06:49.870 --> 06:53.010
Et le deuxième argument est l’écart type.

06:53.170 --> 06:54.420
Nous voulons que ces poids aient.

06:54.580 --> 07:02.880
Donc, comme nous l'avons dit, nous voulons un petit écart-type par rapport à l'acteur dans un petit, il sera égal à 0. 01 parfait.

07:02.890 --> 07:05.880
C'est donc là que pèse le poids du réseau de neurones de l'acteur.

07:05.900 --> 07:09.610
Maintenant, prenons soin de la partialité du nouveau travail de l'acteur.

07:09.850 --> 07:15.460
Et donc ici nous allons faire presque la même chose que nous allons copier cette pâte ci-dessous.

07:15.520 --> 07:26.470
Remplacer le poids par les acheteurs pour accéder aux acheteurs et après les données, nous allons simplement ajouter un remplissage et nous rappeler à l’intérieur de zéro,

07:26.560 --> 07:31.170
car nous voulons que tous les dispositifs soient initialisés avec zéro.

07:31.510 --> 07:37.840
Donc, en réalité, je ne pense pas que cette ligne soit nécessaire car, comme vous vous en souvenez, les acheteurs sont déjà

07:37.840 --> 07:41.400
initialisés à zéro avec cette fonction de remplissage dans la fonction d'attente.

07:41.620 --> 07:47.560
Vous savez donc que nous faisons cela simplement pour nous assurer que les acheteurs sont réellement initialisés à zéro.

07:47.560 --> 07:49.490
Mais je pense que c'est déjà fait ici.

07:49.690 --> 07:52.720
Mais de toute façon, nous en sommes sûrs à 100%.

07:53.050 --> 07:55.990
Très bien maintenant, nous allons faire la même chose pour le critique.

07:56.050 --> 07:59.660
Alors soyons efficaces et couvrons ces deux lignes.

08:00.220 --> 08:07.180
Faisons-les face ici et ici, nous allons simplement remplacer acteur par critique.

08:07.180 --> 08:08.400
Pareil ici.

08:08.540 --> 08:13.600
Et maintenant, la seule chose que nous devons changer est simplement l'écart-type que nous voulons que le critique ait

08:13.600 --> 08:15.680
sur le poids du réseau de neurones.

08:15.970 --> 08:23.310
Et comme vous vous en souvenez une fois cette fois, un écart type important au lieu d’ouvert ou nous en saisirons un,

08:23.830 --> 08:29.680
nous avons donc un petit écart type pour les poids du nouveau travail de l’acteur et un écart

08:29.680 --> 08:31.610
type important pour les poids.

08:31.630 --> 08:33.290
Et puis quand on arrive à la critique.

08:33.370 --> 08:37.560
Et bien sûr, nous pouvons remplacer actif ici par un crédit.

08:37.980 --> 08:40.460
Tout va bien maintenant nous sommes cool.

08:40.510 --> 08:46.300
Il nous reste donc deux choses à faire: initialiser également le parti pris de l’équipe. Pour ce faire, nous prenons notre objet en tant qu’objet car le LACMA appartient

08:46.300 --> 08:53.500
à notre objet et nous dirions ou en tant que T. N. ensuite, nous obtiendrons les

08:53.870 --> 08:57.980
deux types d’acheteur figurant dans le dernier.

08:58.180 --> 09:04.650
Ce biais et le score par âge et l'autre est basé sur l'âge du score.

09:04.660 --> 09:09.880
Ce sont les deux types de biais dans le CME et le même il va être initialisé à zéro.

09:09.880 --> 09:18.810
Nous accédons donc d'abord aux données, puis nous utilisons la fonction de soulignement de remplissage pour renseigner tous ces acheteurs avec des

09:18.850 --> 09:21.940
zéros et les initialiser avec les vôtres.

09:21.940 --> 09:22.320
Droite.

09:22.360 --> 09:31.500
Et maintenant, pour le deuxième groupe d’acheteurs, nous sommes les mêmes.

09:31.500 --> 09:32.430
D'accord.

09:32.570 --> 09:39.560
Cela initialise le biais des zéros et la dernière chose à faire est d’utiliser une méthode héritée de la fin

09:39.560 --> 09:43.090
et ce module qui est la méthode du train.

09:43.220 --> 09:47.360
Et fondamentalement, il y a juste une méthode qui met le module en traitement.

09:47.540 --> 09:48.760
Alors, à quoi sert-il?

09:48.890 --> 09:55.440
Eh bien, l’utilisation est que cela permet de s’activer s’il ya une chute dans la ligature de la salle de bain

09:55.550 --> 10:03.100
Et donc pour l'utiliser, nous ajoutons simplement un train de réflexion personnel et cela met le module dans un environnement parfait.

10:03.170 --> 10:05.650
Nous en avons donc terminé avec la fonction init.

10:05.720 --> 10:11.210
Nous avons nos convolutions, nous avons le CME, nous avons nos deux réseaux de neurones distincts pour le

10:11.210 --> 10:15.400
critique et l'acteur et tous les poids et biais sont bien initialisés.

10:15.620 --> 10:16.940
Donc c'est tout bon.

10:16.940 --> 10:21.860
Nous sommes prêts à passer à l’étape suivante, qui consiste à faire en sorte que la fonction

10:21.890 --> 10:27.230
avant transmette le signal dès le début avec les images d’entrée originales dans tout le cerveau jusqu’à ce que

10:27.230 --> 10:28.640
nous obtenions la sortie.

10:29.000 --> 10:30.770
Faisons cela dans le prochain tutoriel.

10:30.800 --> 10:32.330
Et jusque-là, profitez de l'IA.
