WEBVTT

00:00.390 --> 00:02.550
Bonjour et bienvenue dans ce tutoriel.

00:02.550 --> 00:02.870
D'accord.

00:02.880 --> 00:08.370
Ainsi, dans les tutoriels précédents, nous avons créé le cerveau ou, si vous voulez que le cerveau du A-3 soit visible,

00:08.370 --> 00:09.560
nous devons le former.

00:09.660 --> 00:15.240
Mais pour former son cerveau, nous avons besoin d'un optimiseur utilisant cet outil et collant une cigarette

00:15.240 --> 00:20.820
au centre pour prendre le poids en fonction de leur contribution à l'erreur entre les prédictions et

00:20.940 --> 00:21.900
les cibles.

00:22.200 --> 00:29.790
Et ce que nous avons fait jusqu'à présent dans les premier et deuxième modules, nous avons utilisé l'optimiseur d'atomes à la torche lors de

00:29.910 --> 00:30.660
la formation.

00:30.840 --> 00:38.260
Mais comme je vous l'ai dit, nous avons affaire à un problème très complexe qui se pose et l'algorithme A-380 en

00:38.260 --> 00:41.560
lui-même n'est pas suffisant pour résoudre ce problème.

00:41.580 --> 00:48.480
Nous avons besoin d’optimiseurs personnalisés et de nombreuses astuces pour résoudre ce problème sans

00:48.480 --> 00:49.340
attendre.

00:49.530 --> 00:56.790
C’est l’objectif de cette tâche et c’est la raison pour laquelle nous avons un optimiseur distinct basé sur

00:56.790 --> 00:57.990
l’optimiseur d’atomes.

00:58.200 --> 01:02.680
Et cela est contenu dans cette classe d'ennemis partagés et pourquoi atome partagé.

01:02.880 --> 01:08.190
C'est parce que c'est en fait l'optimiseur d'atomes mais que cela fonctionnera sur des états partagés.

01:08.190 --> 01:12.840
Donc, nous allons expliquer comment cela fonctionne et c'est à la toile. Donc, nous allons passer

01:12.840 --> 01:18.170
en revue les différentes fonctions ici sans les tuer, car vous savez que nous voulons garder de l'énergie pour le

01:18.180 --> 01:23.190
prochain et en plus, c'est le train que je est tombé qui prendra plus de cent lignes de code.

01:23.190 --> 01:24.550
Alors soyez prêt pour ça.

01:24.600 --> 01:30.440
Nous allons donc essayer d’expliquer ce qui se passe ici dans un Statoil Statoil.

01:30.480 --> 01:31.970
Et commençons maintenant.

01:32.810 --> 01:38.480
Très bien, commençons par introduire cet atome de partage de classe qui contiendra trois fonctions: la fonction init, la

01:38.480 --> 01:40.900
fonction de mémoire partagée et la fonction step.

01:41.180 --> 01:48.410
Donc, ce que nous faisons en premier lieu, c’est que nous héritons de optin cet atome qui est bien sûr l’optimiseur d’atomes et que

01:48.410 --> 01:52.100
nous obtenons du module Upton à partir de la bibliothèque de torches.

01:52.280 --> 01:57.980
Nous avons donc tout à fait hérité d’obtenir les outils liés à l’optimiseur d’atomes et nous commençons par

01:57.980 --> 01:59.320
la fonction init.

01:59.330 --> 02:00.990
Alors qu'est-ce qui se passe ici.

02:01.150 --> 02:08.050
Tout d'abord, nous utilisons la superfonction pour hériter de tous les outils et de tous les paramètres de base de l'atome. La

02:08.050 --> 02:11.310
classe Atom et ces paramètres de base se trouvent ici.

02:11.380 --> 02:16.090
Les harams apprennent les baiters de course Epsilon et la perte de poids.

02:16.240 --> 02:17.920
Et puis on commence un suivi.

02:17.980 --> 02:21.840
Ce premier Foluke pour le groupe lui-même que les groupes Paramo.

02:21.850 --> 02:28.310
Donc, pour nous, ce qui est défini par groupes de groupes autour de groupes contient tous les attributs de l'optimiseur.

02:28.510 --> 02:34.030
Et parmi ces attributs, nous avons les paramètres dont nous avons besoin pour optimiser

02:34.030 --> 02:40.790
ces paramètres que nous voulons atomiser d’autres manières du réseau qui sont peut-être contenues dans des groupes auto parum.

02:40.930 --> 02:44.860
Le groupe appartient donc aux groupes d’entraide.

02:44.980 --> 02:50.920
Et nous avons ici le deuxième Faltu qui obtiendra ces paramètres que nous voulons optimiser et

02:50.920 --> 02:54.910
qui sont peut-être exactement contenus dans des groupes parum douteux.

02:54.910 --> 03:01.870
Donc, fondamentalement, nous parcourons des groupes d’entraide qui contiennent tous les paramètres. Pour chaque groupe de paramètres et

03:01.930 --> 03:07.480
d’auto-conversation de groupes, nous allons passer en revue les paramètres que nous voulons optimiser.

03:07.540 --> 03:14.300
Par conséquent, pour le groupe, Paramo signifie ici pour chaque Tancer des poids que nous voulons optimiser.

03:14.410 --> 03:20.200
Donc, pour chaque capteur, nous voulons optimiser les poids, puis ce qui se passe dans ce groupe avec ces

03:20.200 --> 03:21.550
quatre lignes de code.

03:21.820 --> 03:29.650
En gros, la mise à jour effectuée par l'optimiseur est basée sur une moyenne mobile exponentielle

03:29.890 --> 03:31.170
du gradient.

03:31.250 --> 03:32.880
C'est cette ligne de code ici.

03:33.010 --> 03:38.270
C'est la moyenne mobile exponentielle du gradient du premier instant d'ordre 1.

03:38.500 --> 03:44.860
Mais les objets créés par atome ne sont pas uniquement basés sur le fait qu’ils reposent également sur une moyenne

03:45.190 --> 03:47.140
mobile exponentielle du carré du gradient.

03:47.260 --> 03:51.770
C'est une moyenne mobile exponentielle du gradient d'inertie à ou deux.

03:52.030 --> 03:55.320
Voici donc la moyenne mobile exponentielle de l’ensemble.

03:55.480 --> 04:00.560
Et voici la moyenne mobile exponentielle de deux pour chacun d’eux que les EMJ ont dégradé.

04:00.790 --> 04:01.890
Alors que ce qui se passe ici.

04:02.080 --> 04:07.930
Et maintenant, si vous voulez avoir plus de détails sur le fonctionnement de la moyenne

04:07.930 --> 04:14.560
mobile exponentielle, je vous encourage vivement à jeter un coup d'œil à cette méthode de recherche d'Adam pour

04:14.860 --> 04:20.610
l'optimisation stochastique, car l'optimiseur atomique que nous implémentons est basé sur l'algorithme un ici.

04:20.890 --> 04:27.700
Donc, si vous voulez avoir plus de détails sur le fonctionnement de l'algorithme, cet article vous sera certainement utile.

04:27.700 --> 04:32.720
Et puis vous avez d'autres explications sur l'algorithme avec les atomes et les règles.

04:32.860 --> 04:37.840
Et donc, vous savez que ce n’est que si vous voulez attaquer cela avant d’attaquer la fonction de gros

04:37.840 --> 04:39.120
train qui fera ensuite.

04:39.400 --> 04:41.990
OK, revenons à bison.

04:42.220 --> 04:46.140
Et maintenant passons à la deuxième fonction de mémoire partagée.

04:46.190 --> 04:47.890
Alors maintenant, je vais juste dire quelques mots.

04:48.010 --> 04:54.580
L'idée de cette fonction de mémoire partagée est un peu comme un tenseur que kuda, vous savez, est un accélérateur basé

04:54.580 --> 04:55.830
sur une vue.

04:55.870 --> 05:03.160
Et donc, fondamentalement, ce qui se passe ici est que nous avons ces tenseurs des états qui partagent la mémoire

05:03.160 --> 05:10.210
ici et ici et qui se comportent un peu comme des dizaines qui pourraient accélérer le calcul accéléré.

05:10.420 --> 05:17.140
Mais la différence est qu’ici les capteurs qui partagent la mémoire envoient le calcul à une

05:17.140 --> 05:22.150
partie du GP qui est accessible à toute la menace paralysée.

05:22.160 --> 05:23.580
Donc, c'est essentiellement ce qui est fait ici.

05:23.590 --> 05:30.220
C'est un peu comme 10 à ce kuda mais il est seulement envoyé à une partie du GP pour

05:30.220 --> 05:32.090
être accessible aux menaces parallélisées.

05:32.090 --> 05:32.460
D'accord.

05:32.470 --> 05:35.100
Et puis nous avons la dernière étape de la fonction.

05:35.110 --> 05:41.830
Donc, vous savez que cette fonction ressemble à la méthode par étapes de l'optimiseur d'atomes que nous utilisons dans ce cours.

05:41.830 --> 05:47.170
Et encore une fois, cela est basé sur l'algorithme un du même papier que nous avons vu auparavant.

05:47.170 --> 05:48.610
Donc, cet algorithme.

05:48.850 --> 05:52.250
Encore une fois, vous voulez comprendre en détail les lignes de code suivantes.

05:52.420 --> 05:57.240
Encore une fois, je vous invite à regarder cet algorithme.

05:57.580 --> 06:04.330
Et en plus, ce qui est fait ici n’est pas totalement obligatoire car il s’agit en fait d’un copier-coller de la

06:04.330 --> 06:07.180
méthode des étapes agissant dans cette classe d’atomes.

06:07.180 --> 06:14.050
Donc, fondamentalement, ce qui est fait ici, nous aurions pu le faire en

06:14.050 --> 06:20.620
utilisant notre héritage, car ici, nous héritons d’Acton, Adam, et ainsi d’utiliser

06:20.620 --> 06:29.260
notre héritage. La superfonctionnement que nous appliquons à notre classe Adam commune correspond à notre objet

06:29.710 --> 06:38.020
et nous ajoutons ici étape par parenthèse. La méthode de l'acte de cette classe est

06:38.320 --> 06:40.550
exactement la même.

06:40.750 --> 06:45.820
C'est pourquoi je disais simplement qu'il ne s'agit que d'un copier-coller de la méthode des étapes de la loi

06:45.850 --> 06:46.860
en classe Atom.

06:46.930 --> 06:53.440
Donc, je pense que si vous remplacez tout cela par cette super fonction appliquée au partage d'Adam et de la méthode d'étape,

06:53.830 --> 06:55.960
vous obtiendrez exactement la même chose.

06:57.220 --> 06:59.900
D'accord, donc c'était intéressant d'y jeter un coup d'œil.

06:59.920 --> 07:02.750
Fondamentalement, vous pouvez voir cela comme l'optimiseur Adam.

07:02.850 --> 07:04.530
C'est comme si nous l'avions examiné plus en profondeur.

07:04.640 --> 07:10.000
Mais encore une fois, si vous voulez entrer plus dans les détails de tout cela et si vous voulez comprendre

07:10.000 --> 07:14.120
ce qui se passe en coulisse, je vous encourage à consulter ce document de recherche.

07:14.170 --> 07:16.120
Je vais mettre le lien dans les commentaires ici.

07:16.120 --> 07:19.940
Vous savez, rappelez-vous que tout le code sera connecté dans les moindres détails.

07:19.990 --> 07:22.120
C'est donc vraiment bien si vous pouvez y jeter un coup d'œil.

07:22.580 --> 07:30.310
Et maintenant, j'espère que vous avez une bonne énergie car nous allons passer au fichier train qui contiendra cette fonction de

07:30.310 --> 07:35.860
train énorme et qui entraînera essentiellement notre cerveau, ce que nous pouvons maintenant faire

07:35.860 --> 07:37.510
grâce à notre optimiseur.

07:37.690 --> 07:39.230
Alors, bonne pause maintenant.

07:39.250 --> 07:41.840
Dormez bien et chaque fois que vous vous sentez en pleine forme.

07:41.980 --> 07:44.440
Passons à l'étape suivante.

07:44.440 --> 07:45.910
Jusque-là, profitez de l'IA.
