WEBVTT

00:00.480 --> 00:03.160
Bonjour et bienvenue dans ce tutoriel sur Python.

00:03.180 --> 00:03.520
D'accord.

00:03.520 --> 00:08.810
Dans cette huile, nous allons créer la fonction qui sélectionnera la bonne action et à chaque fois.

00:08.810 --> 00:13.650
Donc, fondamentalement, nous allons implémenter la partie qui fera de la voiture le bon choix.

00:13.740 --> 00:18.780
Et chaque fois que cela va à gauche, aller droit ou aller à droite pour atteindre le but

00:18.780 --> 00:20.640
et éviter les obstacles qui descendent.

00:21.000 --> 00:22.350
Alors faisons ceci maintenant.

00:22.370 --> 00:28.320
Nous allons commencer comme d'habitude avec les sourds pour définir une fonction, puis nous

00:28.320 --> 00:36.370
allons donner un nom à notre fonction. Nous allons appeler l'action select plutôt qu'une parenthèse et cette fonction select prendra

00:36.550 --> 00:37.410
deux arguments.

00:37.450 --> 00:43.960
Le premier est soi-même au fur et à mesure que vous grandissez pour faire référence à l'objet et le second

00:43.960 --> 00:46.150
argument qui, selon vous, sera lequel.

00:46.390 --> 00:47.860
Eh bien qu'est-ce que ça pourrait être?

00:47.860 --> 00:54.220
Si vous y réfléchissez, l'action que nous avons sélectionnée provient de la sortie du réseau de neurones, car la sortie

00:54.220 --> 00:59.890
du réseau de neurones ou les valeurs q pour chacune des trois actions possibles et, par conséquent, l'action

00:59.890 --> 01:05.980
que nous jouons l'action qui sera la sortie de le réseau de neurones dépend de l'état d'entrée et les

01:05.980 --> 01:11.610
états d'entrée sont exactement le deuxième argument dont nous avons besoin avec la fonction d'action select.

01:11.680 --> 01:16.310
C'est parce que nous allons littéralement prendre la sortie du réseau de neurones.

01:16.510 --> 01:22.180
Et bien sûr, la sortie du réseau de neurones dépend directement de l’entrée du réseau de neurones.

01:22.360 --> 01:24.010
Donc, ça va être notre argument.

01:24.280 --> 01:31.720
Et maintenant, nous pouvons lui attribuer n'importe quel nom. Nous l'appellerons état car les réseaux de neurones sont

01:31.960 --> 01:38.280
les états d'entrée codés par un vecteur de cinq dimensions à trois signaux d'orientation

01:38.480 --> 01:39.920
et moins d'orientation.

01:40.120 --> 01:42.120
Et maintenant, les choses vont être faciles.

01:42.160 --> 01:47.860
Nous allons introduire l’état d’entrée dans le réseau de neurones, celui que nous construisons juste au-dessus

01:47.860 --> 01:54.520
ici avec la classe suivante, puis nous obtiendrons les sorties qui sont les valeurs clés de chacune des trois

01:54.520 --> 01:59.530
actions possibles, puis en utilisant la méthode douce Max que je vais expliquer dans

01:59.530 --> 02:00.360
ce tutoriel.

02:00.400 --> 02:03.140
Nous allons avoir l'action finale à jouer.

02:03.280 --> 02:08.460
Faisons cela, allons dans la fonction et implémentons tout cela.

02:08.470 --> 02:14.980
Donc, la première chose à faire est de parler de ce que je viens de dire. Max a eu l'idée

02:14.980 --> 02:20.590
du soft Max, c'est que nous allons essayer d'obtenir la meilleure action à jouer à chaque fois.

02:20.740 --> 02:25.000
Mais en même temps, nous explorerons les différentes actions.

02:25.000 --> 02:25.950
Et comment faisons-nous cela.

02:25.960 --> 02:31.080
Comment pouvons-nous obtenir la meilleure action à jouer tout en explorant les autres actions.

02:31.270 --> 02:39.250
Nous avons bien utilisé cette idée de matériel qui consiste à générer une distribution de probabilités pour chacune des

02:39.250 --> 02:40.370
valeurs q.

02:40.420 --> 02:42.100
Q États action.

02:42.160 --> 02:46.600
Maintenant, nous avons une valeur Q pour chaque action aller à gauche aller tout droit ou aller à droite.

02:46.850 --> 02:49.680
Mais cette valeur q dépend également de l'état de l'entrée.

02:49.690 --> 02:52.720
C'est exactement l'utilisation de la fonction Q dans les conférences sur l'intuition.

02:52.870 --> 02:56.280
Cette fonction Q est une fonction de l'état et de l'action.

02:56.320 --> 03:02.540
Donc, puisque nous avons ici un état d'entrée qui est l'état ici et trois actions

03:02.540 --> 03:09.070
possibles, nous avons trois nouvelles valeurs Q. Etat action 1 Q action à l'action 2 et action à

03:09.070 --> 03:13.760
deux états 3 et nous allons générer une distribution de probabilités concernant ces trois valeurs clés.

03:13.930 --> 03:19.420
C'est-à-dire que nous allons avoir une probabilité pour la première valeur Q une des probabilités pour la

03:19.420 --> 03:25.490
deuxième valeur Q et une troisième probabilité pour le troisième Q et les trois probabilités se résument à 1.

03:25.670 --> 03:31.840
Et donc nous allons faire tout cela avec Max soughed et Max soughed attribuera une probabilité élevée au Q

03:32.170 --> 03:33.530
le plus élevé.

03:33.820 --> 03:41.050
C'est pourquoi une alternative à soft Max est un simple RMX non prenant directement le maximum des valeurs q, mais

03:41.530 --> 03:44.860
dans ce cas, nous n'explorons pas les autres actions.

03:44.920 --> 03:50.500
Grâce à ces probabilités, nous pouvons explorer ailleurs en utilisant un paramètre de température que nous

03:50.500 --> 03:51.900
allons voir très rapidement.

03:52.210 --> 03:55.990
Nous pouvons toujours les explorer en configurant ce paramètre de température.

03:56.020 --> 04:03.380
C'est pourquoi, en général, pour la sécurité, je recommande fortement d'utiliser un soft x plutôt qu'un simple RMX.

04:03.460 --> 04:06.990
Très bien, implémentons X et donc comme vous l'avez compris.

04:07.060 --> 04:12.990
Depuis soughed, Max renvoie les probabilités de chacune des trois valeurs Q pour les trois actions possibles.

04:13.180 --> 04:20.120
La première variable que nous allons créer se réfère probablement bien sûr à ces probabilités.

04:20.450 --> 04:26.680
Donc, les accessoires sont égaux et maintenant nous allons prendre notre prochaine fonction et selon vous d'où

04:26.680 --> 04:28.070
nous allons partir.

04:28.330 --> 04:31.600
Bien sûr, rappelez-vous que nous avons importé le.

04:31.700 --> 04:38.130
Et puis le sous-module fonctionnel que je rappelle est le module qui contient la plupart des actions pour mettre en

04:38.140 --> 04:39.790
œuvre un réseau de neurones.

04:39.820 --> 04:44.980
Nous lui avons donné le raccourci F et c'est donc à partir de ce sous-module fonctionnel que nous

04:44.980 --> 04:46.990
allons passer à notre prochaine fonction.

04:47.290 --> 04:53.830
Mais depuis que nous lui avons donné un raccourci, nous commençons ici avec un Neph représentant fonctionnel à partir duquel

04:54.040 --> 04:56.080
nous prenons notre prochaine fonction.

04:56.080 --> 04:56.920
C'est ici.

04:56.980 --> 04:59.540
C'est le premier et la parenthèse.

04:59.770 --> 05:00.160
D'accord.

05:00.200 --> 05:03.920
Maintenant, que faut-il entrer dans la fonction suivante.

05:04.150 --> 05:10.020
Eh bien, ce sont bien sûr les entités pour lesquelles nous voulons générer une distribution de probabilité.

05:10.190 --> 05:11.430
Et quelles sont ces entités.

05:11.550 --> 05:13.870
Bien, ce sont bien sûr les valeurs clés.

05:13.870 --> 05:16.790
Alors maintenant, la question est de savoir comment pouvons-nous obtenir les valeurs q.

05:16.960 --> 05:22.720
Bien sûr, les valeurs q sont la sortie du réseau de neurones et permettent d’obtenir ces sorties du réseau

05:22.720 --> 05:23.410
de neurones.

05:23.590 --> 05:24.560
Bien on y va.

05:24.610 --> 05:26.830
Nous devons prendre notre nouveau réseau.

05:27.100 --> 05:33.520
Mais en fait, nous l’avons déjà car c’est ce qui initialise sa fonction.

05:33.530 --> 05:39.980
Sachez que nous avons créé un modèle autodidacte qui n’est rien d’autre qui ne fonctionnera pas car c’est un nouvel objet

05:40.290 --> 05:41.540
de la classe réseau.

05:41.600 --> 05:42.820
Et c'est parfait.

05:42.830 --> 05:49.040
Nous pouvons simplement prendre notre modèle ici et appliquer ensuite ce modèle à l'état d'entrée qui est l'argument

05:49.040 --> 05:52.950
présenté ici et qui retournera les résultats que nous recherchons.

05:53.090 --> 05:54.440
Ce sont les valeurs clés.

05:54.560 --> 06:00.260
Et maintenant, votre intuition pour laquelle nous devions prendre le modèle ici pour l’introduire dans la fonction pourrait

06:00.260 --> 06:00.840
s’améliorer.

06:00.920 --> 06:06.410
Ceux d’entre vous qui débutent avec la programmation orientée objet, vous verrez que tout cela deviendra alors

06:07.100 --> 06:08.780
naturel, ensuite, si doux.

06:08.870 --> 06:16.840
Nous prenons donc notre modèle comme modèle parce que ce doit être le modèle de l'objet que nous avons créé ici.

06:17.180 --> 06:24.350
Mais nous devons ensuite obtenir la sortie de notre modèle de réseau neuronal et par conséquent, nous

06:24.350 --> 06:30.400
allons entendre une parenthèse dans laquelle nous allons entrer bien l’état d’entrée nommé state.

06:30.620 --> 06:39.350
Donc, ce que nous voulons faire en premier lieu, c’est entrer dans l’état, mais maintenant, nous devons faire attention à ce que cet état ressemble à un simple ensemble

06:39.350 --> 06:40.560
pour le moment.

06:40.790 --> 06:46.850
Mais rappelez-vous que cet état sera en réalité un capteur de torche car plus tard, nous utiliserons cette

06:46.920 --> 06:52.190
cellule dans un état moins pour le définir comme argument de la fonction d'action Select.

06:52.190 --> 06:57.430
L'argument de l'État qui est ici va réellement devenir plus tard cet état moins autodidacte.

06:57.680 --> 07:01.680
Et puisqu'il s'agit d'un monde de réponses torturé, le modèle l'acceptera.

07:01.760 --> 07:02.690
Alors c'est bon.

07:02.810 --> 07:05.000
Mais maintenant, nous pouvons améliorer l’algorithme.

07:05.180 --> 07:12.490
Donc, dès que l'état est un capteur de torche et comme nous l'avons dit précédemment, la plupart des capteurs sont enveloppés dans

07:12.500 --> 07:13.260
le voïvode.

07:13.320 --> 07:15.640
Cela contiendra également un dégradé.

07:15.650 --> 07:22.110
Donc, pour le moment, ce que nous allons faire en premier lieu est de condenser très bien cet état

07:22.110 --> 07:27.990
d'entrée qui est un tenseur, mais puisqu'il s'agit des états d'entrée, il n'y aura pas de différence.

07:28.160 --> 07:34.700
Nous n'utiliserons pas le gradient de ce voïvode de torche d'état et il

07:34.880 --> 07:45.530
peut s'agir de stations. Nous allons donc maintenant convertir cet état de capteur de torche en une variable de torche comme celle-ci.

07:45.780 --> 07:51.400
Mais ensuite, spécifier que nous ne voulons pas du tout que les gradients dans le graphique puissent prédater à la

07:51.400 --> 07:52.380
fin de Mudgal.

07:52.570 --> 07:57.800
Eh bien, nous allons à ce moment-là, être volatiles et égaux.

07:58.150 --> 08:06.160
Nous avons donc maintenant très bien notre capteur d'état enflammé dans une lampe de poche, mais grâce à ce Votel équivaut à un

08:06.160 --> 08:07.200
vrai baromètre.

08:07.390 --> 08:14.950
Nous allons inclure les gradients associés à ces états d’entrée dans le graphique de toutes les conditions de la fin

08:15.100 --> 08:16.530
de ce modèle.

08:16.840 --> 08:18.530
C'est donc un autre truc technique.

08:18.550 --> 08:23.130
Cela nous permettra d'économiser de la mémoire et donc d'améliorer les performances.

08:23.170 --> 08:27.850
Je recommande donc fortement de faire cela et nous allons maintenant ajouter quelque chose de plus amusant.

08:27.910 --> 08:30.640
C'est à propos de ce paramètre de température que je viens de mentionner.

08:30.850 --> 08:36.190
Ce paramètre de température est donc le paramètre qui nous permettrait de moduler la manière dont

08:36.190 --> 08:40.040
le réseau de neurones sera sûr de l’action à décider.

08:40.210 --> 08:47.290
Donc, ce paramètre de température sera un nombre positif et plus il sera proche de zéro moins le réseau de neurones sera

08:47.290 --> 08:53.200
sûr lorsqu'il jouera en action et plus le paramètre de température sera élevé, plus le réseau de neurones

08:53.410 --> 08:56.540
sera sûr de l'action qu'il décide de jouer .

08:56.890 --> 09:04.480
Et pour ajouter ce paramètre, je vais multiplier les sorties qui sont le Kugan utilisé par ce paramètre de

09:04.480 --> 09:05.250
température.

09:05.500 --> 09:13.440
Commençons par exemple avec 7 et je vais préciser ici que le petit commentaire T est égal à 7.

09:13.460 --> 09:15.610
C'est donc le paramètre de température.

09:15.690 --> 09:17.210
Je suis désolé aller à 7.

09:17.260 --> 09:21.010
Nous allons en essayer d'autres, mais je veux juste commencer par un petit, parce que vous

09:21.010 --> 09:22.470
allez le voir avec un petit.

09:22.510 --> 09:28.150
Notre voiture se comportera toujours comme une sorte d'insecte, mais en augmentant le paramètre de

09:28.510 --> 09:34.340
température, notre code ressemblera davantage à une voiture et décidera de vendre la conduite sera beaucoup mieux.

09:34.480 --> 09:40.450
Et cela a donc du sens car plus ce paramètre de température est élevé, plus

09:40.450 --> 09:48.010
la probabilité de gagner le Juval me sera élevée, par exemple si nous avons un maximum doux des q valeurs.

09:48.190 --> 09:54.850
Prenons quelques nombres simples un deux trois si bourrés de un à trois égaux.

09:54.850 --> 10:01.150
Par exemple 0. 04 0. 11 et ouvrir quatre vingt cinq.

10:01.270 --> 10:05.650
Puis en augmentant la température en prenant une température plus élevée.

10:05.680 --> 10:13.360
À l’heure actuelle, la température est égale à un en prenant une température élevée, comme par exemple Tussaud

10:13.360 --> 10:22.210
soustrait la copie et la multiplions par exemple par deux ou trois, afin d’avoir les mêmes valeurs mais multipliées par le

10:22.210 --> 10:24.110
paramètre de température trois.

10:24.370 --> 10:31.390
Eh bien, nous obtiendrons quelque chose comme zéro pour la première valeur Q car il y avait une très faible

10:31.530 --> 10:38.020
probabilité que quelque chose autour de zéro puis très peu pour la deuxième probabilité parce que c'était encore

10:38.020 --> 10:39.260
une faible probabilité.

10:39.410 --> 10:42.910
Alors disons par exemple ou le point 0 2.

10:43.320 --> 10:49.910
Mais alors cette troisième probabilité puisque c’était la plus grande et une assez haute.

10:50.140 --> 10:55.180
En augmentant bien la température, cette probabilité sera encore plus grande car nous serons encore

10:55.180 --> 11:02.230
plus sûrs que c’est la bonne valeur Q correspondant à l’action que nous devons jouer et qu’elle va donc être

11:02.230 --> 11:05.630
quelque chose comme 0. 2 98.

11:05.980 --> 11:11.800
Maintenant, en augmentant le paramètre de température Eh bien, nous sommes maintenant encore plus sûrs que la troisième action ici

11:11.800 --> 11:17.530
devrait être l'action à jouer car la probabilité pour la valeur q de cette action est non seulement la

11:17.530 --> 11:19.590
plus grande, mais également très élevée.

11:19.840 --> 11:22.600
C'est donc ce que ce paramètre de température est tout au sujet.

11:22.660 --> 11:27.340
Il s'agit de la certitude de la direction dans laquelle nous devrions décider de jouer.

11:27.340 --> 11:27.610
D'accord.

11:27.610 --> 11:29.450
Je vais donc supprimer ce commentaire.

11:29.470 --> 11:31.000
C'était juste pour expliquer.

11:31.200 --> 11:33.490
Et maintenant passons à l'action.

11:33.490 --> 11:35.370
Alors, comment vas-tu faire ça?

11:35.560 --> 11:41.440
Eh bien, le principe de la méthode suivante consiste non seulement à générer une distribution de probabilité pour chacune

11:41.440 --> 11:46.390
des valeurs de clé, mais également à la deuxième étape de la méthode logicielle suivante.

11:46.480 --> 11:51.820
Nous prenons un tirage au sort parmi cette distribution pour obtenir notre action finale.

11:52.010 --> 11:57.310
Et bien sûr, nous aurons une grande chance d'obtenir l'action qui correspond à la valeur Q ayant

11:57.310 --> 12:01.660
la probabilité la plus élevée, car c'est exactement ainsi que fonctionne la distribution.

12:01.660 --> 12:02.550
Alors on y va.

12:02.560 --> 12:04.040
Passons à l'action.

12:04.060 --> 12:11.380
Nous allons donc introduire un nouveau code voivode: nous allons appeler action et cette action va permettre

12:11.380 --> 12:17.460
de tirer au hasard la distribution de probabilité que nous venons de créer auparavant.

12:17.510 --> 12:20.100
Et alors, comment pouvons-nous obtenir un tel tirage au sort.

12:20.200 --> 12:26.410
Eh bien, nous allons prendre les probabilités de nos accessoires pour chacune des valeurs clés

12:26.650 --> 12:34.120
que nous prenons, puis nous allons utiliser la fonction multi Gnomeo, ce qui nous tirera au hasard de

12:34.120 --> 12:36.030
ce processus de distribution.

12:36.160 --> 12:38.420
Donc, c'est tout ce qui va provoquer sa réaction.

12:38.470 --> 12:39.280
Parfait.

12:39.490 --> 12:42.790
Et maintenant, bien sûr, nous allons retourner l'action.

12:42.790 --> 12:44.730
Il y a un petit truc ici.

12:44.810 --> 12:51.460
Quel est le fait que cela Propst que multinomial renvoie le PI vers viable via un faux badge.

12:51.490 --> 12:57.210
Vous connaissez ces faux diamants et correspondant au lot et donc d'obtenir le bon résultat que

12:57.220 --> 13:00.540
nous voulons c'est l'action dans 0 1 ou 2.

13:00.820 --> 13:08.200
Nous devons simplement ajouter ici des données, puis quelques crochets et les actions ici sont une ou deux actions

13:08.230 --> 13:13.100
que nous recherchons soit le contenu et l’indice est 0 et 0.

13:13.570 --> 13:14.000
D'accord.

13:14.000 --> 13:14.730
Et c'est parti.

13:14.740 --> 13:21.420
Nous avons maintenant notre action grâce à cette fonction de sélection, l’intelligence artificielle sait maintenant quelle action exécuter.

13:21.490 --> 13:22.440
Et à chaque fois.

13:22.810 --> 13:23.460
Terrifiant.

13:23.500 --> 13:27.430
Nous pouvons maintenant passer à la fonction suivante qui sera la fonction d’apprentissage.

13:27.520 --> 13:32.410
Et c’est là que nous allons former l’ensemble du réseau de neurones que vous connaissez avec toute la propagation

13:32.410 --> 13:35.790
en aval, puis la propagation en arrière consiste à catégoriser dans le sens.

13:35.950 --> 13:41.500
Eh bien, fondamentalement, nous allons mettre en œuvre toute la formation du modèle d’apprentissage en profondeur qui est au

13:41.560 --> 13:43.340
cœur de notre intelligence artificielle.

13:43.480 --> 13:44.680
Donc j'ai hâte de faire ça.

13:44.680 --> 13:49.290
Ce tutoriel sera passionnant et je vous verrai donc dans le prochain Statoil.

13:49.510 --> 13:50.670
Jusque-là profiter.

13:50.720 --> 13:51.000
JE.
