WEBVTT

00:00.270 --> 00:06.230
Bonjour et bienvenue sur ce tuyau et sur Torro, nous devons maintenant définir les cinq variables de cette

00:06.240 --> 00:09.560
fonction, à savoir les trois circonvolutions et les connexions temporelles.

00:09.810 --> 00:11.100
Commençons donc par le premier.

00:11.250 --> 00:18.690
Convolutionnel applique la convolution aux images d'entrée de manière à ce que ce soit les images d'origine. Vous allez maintenant

00:18.690 --> 00:22.710
voir comment tout deviendra si simple pour créer cette convolution.

00:22.770 --> 00:29.070
Ce que nous devons faire, c'est créer un sujet d'une classe spécifique. Cette classe

00:29.070 --> 00:38.800
est prise à partir de là, puis les classes arrivent à l'adresse car nous travaillons avec des images 2D et, comme vous

00:38.800 --> 00:40.930
pouvez le constater, arguments.

00:40.930 --> 00:43.140
Le premier est dans les canaux.

00:43.190 --> 00:45.910
Mettons-le dans les canaux.

00:45.970 --> 00:49.210
Le second est hors des canaux.

00:49.330 --> 00:57.070
Le troisième est la taille de Kerno et les autres sont en train de rembourrer les groupes de dilatation et les biais.

00:57.130 --> 00:59.120
Et nous avons des valeurs différentes pour tous ceux-ci.

00:59.260 --> 01:02.290
Donc, nous n'allons pas mais nous allons conserver les valeurs par défaut.

01:02.470 --> 01:08.500
Mais ce qui est important, ce sont ces trois arguments dans les canaux et les canaux et la taille du noyau. Je suppose donc

01:08.500 --> 01:09.740
à quoi ils correspondent.

01:09.880 --> 01:15.730
Bien très simplement en général correspondent à l'entrée de la convolution et tous les canaux correspondent à

01:15.730 --> 01:17.900
la sortie de la conclusion.

01:17.920 --> 01:19.940
Alors qu'est-ce que ça va être.

01:20.110 --> 01:24.460
Eh bien très simplement, cela va être le nombre de canaux dans nos images.

01:24.610 --> 01:30.460
Et en fait, nous allons travailler avec des images en noir et blanc, car au fond, nous ne colorons pas

01:30.460 --> 01:31.360
les monstres.

01:31.450 --> 01:35.310
L'intelligence artificielle est totalement capable de reconnaître les monstres en noir et blanc.

01:35.440 --> 01:39.200
Nous ne voyons donc pas les couleurs du tout, nous les reconnaissons simplement par leur forme.

01:39.250 --> 01:44.380
Par conséquent, nous allons utiliser un canal, donc un canal correspond aux images en noir

01:44.380 --> 01:46.820
et blanc et trois canaux, aux images.

01:46.930 --> 01:51.320
Et par conséquent, puisque nous travaillons avec des images en noir et blanc

01:51.340 --> 01:59.730
dans des canaux, cela équivaut à un, puis à nos canaux, de sorte que nos canaux soient égaux aux images que vous souhaitez obtenir dans la

01:59.730 --> 02:02.970
convolution qui est le résultat de cette constitution. un.

02:02.970 --> 02:08.820
En gros, cela correspond au nombre de caractéristiques que vous souhaitez ajouter au texte de vos images d'origine,

02:09.240 --> 02:15.040
car qui créera une image par caractéristique que nous souhaitons détecter, car vous savez comment cela fonctionne.

02:15.120 --> 02:21.390
Nous avons appliqué un détecteur de caractéristiques à l'image d'entrée pour détecter une caractéristique spécifique dans l'image d'entrée. Par conséquent,

02:21.390 --> 02:26.450
le nombre d'images en sortie ici correspond au nombre de caractéristiques que nous souhaitons détecter.

02:26.460 --> 02:30.110
Alors maintenant, la question est de savoir combien de fonctionnalités voulons-nous détecter.

02:30.240 --> 02:38.730
La pratique courante est de commencer avec 32 détecteurs de caractéristiques, ce qui nous amène à 32% d'images dans cette première couche

02:38.820 --> 02:46.170
convolutive, de sorte que l'entrée est une image en noir et blanc, une image réelle et que la sortie

02:46.170 --> 02:53.010
dans la première convolution contient 32 images traitées. et par traitement, je veux dire bien sûr que la

02:53.380 --> 02:59.750
conclusion a été appliquée à l'image d'entrée pour obtenir 32 nouvelles images avec des caractéristiques détectées.

03:00.240 --> 03:06.990
Ensuite, nous devons spécifier une taille de noyau qui n’est autre que les dimensions du

03:07.080 --> 03:09.450
carré qui traversera l’image originale.

03:09.600 --> 03:15.350
Et dans la pratique courante, nous achetons deux ou trois larges trois ou cinq par cinq.

03:15.660 --> 03:22.170
Et pour le premier, nous allons utiliser un détecteur de caractéristiques cinq par cinq, qui est un détecteur de

03:22.170 --> 03:24.580
fonctions qui aura cinq moteurs sur dix.

03:24.810 --> 03:29.290
Et ensuite, nous allons réduire la taille de ce noyau pour les prochaines couches convolutives.

03:29.340 --> 03:32.320
Et en parlant de cela, c'est exactement ce que nous allons faire maintenant.

03:32.390 --> 03:40.860
Nous allons copier ceci pour définir la deuxième convolution et par conséquent, je pars du principe que c’est très drôle et

03:40.890 --> 03:43.370
très facile, c’est comme un domino.

03:43.500 --> 03:49.260
Le canal d'entrée de la deuxième couche de convolution est le canal de sortie de la première

03:49.260 --> 03:49.810
convolution.

03:49.950 --> 03:55.300
Donc, ce nombre de sortie 32 Voici le même nombre d’entrées 32 ici.

03:55.420 --> 04:01.290
Et c'est parce que nous avons 32 images dans la couche convolutionnelle de la seconde convolution.

04:01.440 --> 04:09.830
Ainsi, la deuxième convolution est appliquée à cette deuxième couche de convolution pour renvoyer une troisième couche de

04:09.830 --> 04:10.340
convolution.

04:10.530 --> 04:13.280
Et maintenant, la question est de savoir combien de nouvelles images voulons-nous.

04:13.410 --> 04:19.820
Bien que le même qui crée 32 nouvelles images 32 est en réalité un nombre très commun dans les réseaux de neurones convolutionnels

04:19.830 --> 04:23.710
si vous regardez les architectures que vous trouverez 32 dans beaucoup d'entre elles

04:24.030 --> 04:29.910
Et puis pour la taille du noyau Eh bien, nous devons réduire la taille du noyau qui correspond aux dimensions de notre détecteur

04:29.910 --> 04:30.610
de caractéristiques.

04:30.780 --> 04:37.680
Et donc maintenant nous allons passer de cinq à quatre voire même trois et ensuite nous irons encore plus petit.

04:37.920 --> 04:40.790
Très bien, notre deuxième convolution est prête.

04:40.830 --> 04:43.830
Il prend en entrée 32 images de processus.

04:43.890 --> 04:51.130
Chacun dans une première fonctionnalité de l'image d'entrée d'origine et crée 32 nouvelles images.

04:51.270 --> 04:54.990
Grâce à ces dimensions réduites du détecteur de caractéristiques.

04:55.120 --> 04:57.250
Et alors maintenant, poussons cela encore plus.

04:57.300 --> 05:05.450
Donc, je copie ceci et le colle ici pour créer une troisième convolution afin de détecter certaines caractéristiques.

05:05.470 --> 05:08.010
Et maintenant, c'est la même chose pour les canaux d'entrée.

05:08.010 --> 05:13.800
Voici le nombre d'images d'entrée à gauche de la connexion par déconvolution et le nombre d'images précédentes

05:13.800 --> 05:17.740
qui sont passées à droite des connexions par convolution précédentes.

05:17.740 --> 05:18.710
C'est 32.

05:18.750 --> 05:20.030
Par conséquent, nous restons désolés d'entendre.

05:20.030 --> 05:20.990
C'est parfait.

05:21.220 --> 05:25.220
Et maintenant, la question est de savoir combien de nouvelles images voulons-nous détecter.

05:25.310 --> 05:31.130
Nous allons prendre maintenant 64 et donc 64 images de précession de sorties.

05:31.260 --> 05:36.800
Et bien sûr, nous prenons une taille de noyau plus petite et nous allons en prendre deux.

05:36.800 --> 05:42.660
Il s’agit là d’une architecture très classique de convolution et il est très efficace d’avoir un niveau

05:42.660 --> 05:45.840
élevé de détection des caractéristiques dans les images.

05:46.200 --> 05:53.010
Très bien et maintenant que nous avons nos trois convolution, il y en a trois de nos connexions de convolution

05:53.010 --> 05:53.510
ici.

05:53.640 --> 05:59.970
Eh bien, le moment est venu d’obtenir nos bonnes relations. Je rappelle que nous prendrons cet énorme

05:59.970 --> 06:07.710
vecteur que nous obtenons après avoir aplati les 64 fois 32 fois encore 32 les images que nous avons obtenues

06:08.160 --> 06:13.920
de toutes ces circonvolutions. nous pouvons un seul vecteur énorme qui deviendra l’entrée d’un nouveau

06:14.190 --> 06:16.590
réseau de neurones entièrement connecté.

06:16.860 --> 06:22.230
Et c’est donc à ce moment-là que nous devons établir ces connexions entre cet énorme vecteur et une

06:22.470 --> 06:27.710
couche cachée, puis une deuxième connexion complète entre la couche cachée et la sortie composée des neurones de

06:27.730 --> 06:28.270
sortie.

06:28.320 --> 06:31.940
Chacun correspondant à une valeur de cube des actions possibles.

06:31.980 --> 06:33.960
Faisons donc ces deux connexions.

06:33.960 --> 06:35.220
Tu sais comment faire ça.

06:35.220 --> 06:37.550
C'est exactement ce que nous avons fait pour la voiture autonome.

06:37.560 --> 06:38.800
Faisons-le à nouveau.

06:39.000 --> 06:46.890
D'abord, nous prenons notre Maggio, puis nous prenons le Lynnie, notre classe, car encore une fois, la connexion que nous créons est un

06:46.920 --> 06:49.060
objet de la classe dirigeante.

06:49.260 --> 06:50.550
Et puis entre parenthèses.

06:50.670 --> 06:58.620
Eh bien, c’est la même chose pour mettre les entités en entrée, c’est leur nombre, puis les entités en sortie.

06:58.850 --> 07:03.110
Et donc les fonctionnalités d'entrée pour la première connexion complète qu'est-ce que ça va être.

07:03.340 --> 07:10.300
Cela va être égal au nombre de pixels de cet énorme changement de vecteur après l’aplatissement de toutes

07:10.480 --> 07:13.830
les images de processus après les trois circonvolutions.

07:13.830 --> 07:15.110
Et alors qu'est-ce que ce nombre.

07:15.220 --> 07:17.350
En fait, il y a un truc ici.

07:17.380 --> 07:19.620
Ce nombre est en réalité difficile à obtenir.

07:19.660 --> 07:22.770
Nous devons créer une fonction pour calculer ce nombre.

07:22.960 --> 07:25.570
Nous n'avons pas de variable qui nous donnera ce nombre.

07:25.570 --> 07:29.040
Nous devons le calculer et donc ce que nous allons faire maintenant.

07:29.150 --> 07:34.780
Et maintenant, il est très important de comprendre l'état d'esprit de la programmation que nous devons

07:35.200 --> 07:40.930
avoir et d'essayer de vous apporter l'état d'esprit que vous devez être en train de penser maintenant

07:41.110 --> 07:45.690
pour surmonter cet obstacle avoir ce nombre de neurones dans le vecteur Flaten.

07:45.730 --> 07:46.650
Que devrais-je faire.

07:46.660 --> 07:47.600
Je suis coincé ici.

07:47.800 --> 07:55.720
Eh bien non, en fait, car ce que vous pouvez faire maintenant est simplement de saisir ici un nom qui représente le nombre

07:55.720 --> 08:01.690
de neurones si peu commun que nombre de neurones nombre de neurones et nous allons simplement créer une

08:01.690 --> 08:05.130
fonction qui reviendra et ce nombre de neurones variable.

08:05.180 --> 08:07.100
Ce nombre de pixels que nous recherchons.

08:07.330 --> 08:12.760
Donc, nous pouvons totalement faire cela, nous pouvons totalement mettre cela très au clair bien sûr, nous aurons un

08:12.760 --> 08:17.090
avertissement car cela n'existe pas encore mais nous le créerons après avec une fonction.

08:17.350 --> 08:21.140
Et nous sommes totalement autorisés à le faire même si la fonction vient après.

08:21.170 --> 08:25.970
C’est une programmation typique à penser lorsque vous rencontrez ce type d’obstacle.

08:26.020 --> 08:29.710
Eh bien, vous pouvez créer une fonction pour obtenir ce qui vous manque.

08:29.740 --> 08:32.640
Très bien, puis nos caractéristiques et notre avenir.

08:32.650 --> 08:37.830
C'est le nombre de neurones dans une couche cachée et ce temps vous appartient.

08:37.870 --> 08:41.230
Cela dépend de l'architecture du nouveau réseau que vous souhaitez créer.

08:41.230 --> 08:44.230
Et si un bon nombre ne serait pas un petit nombre.

08:44.230 --> 08:46.960
Ainsi, par exemple, 40 neurones pourraient convenir.

08:46.960 --> 08:48.660
Nous pouvons essayer d'augmenter cela.

08:48.790 --> 08:51.280
Si l'entraînement n'est pas trop lent, vous pouvez essayer de l'augmenter.

08:51.340 --> 08:56.750
Cela améliorera peut-être les prévisions, mais commençons par 40. Peut-être que nous augmenterons cela par la suite.

08:57.130 --> 09:04.690
Très bien, c'est tout pour la première connexion complète, puis nous allons copier cette pâte ici pour la deuxième connexion complète qui

09:04.710 --> 09:09.300
est la connexion entre la couche masquée et la couche de sortie.

09:09.370 --> 09:15.720
Ainsi, les caractéristiques deviennent les caractéristiques de sortie de la couche précédente, à savoir 40.

09:15.790 --> 09:18.020
Nous pouvons donc mettre 40 ici.

09:18.190 --> 09:20.500
C'est bien sûr le nombre de neurones dans une couche.

09:20.860 --> 09:27.280
Et notre avenir va être égal au nombre de neurones de sortie, il ne devrait pas y avoir de réseau de neurones.

09:27.340 --> 09:33.360
Et comme chaque neurone de sortie correspond à une nouvelle valeur et à une cuvée et à une

09:33.370 --> 09:38.440
réponse à une action, le nombre de neurones de sortie est ici bien sûr

09:38.740 --> 09:47.320
le nombre d’actions et nous avons une variable pour cela qui est le nombre d’actions et donc ici le nombre d’actions et voilà les félicitations.

09:47.390 --> 09:53.850
Nous avons trouvé l'architecture de notre réseau de neurones. Notre réseau de neurones est composé de trois couches

09:53.850 --> 09:55.960
convolutives et d'une couche cachée.

09:56.130 --> 10:03.020
Tout cela dans un seul grand CNN et ce CNN détectera les caractéristiques du jeu afin que l’intelligence artificielle sache où elle

10:03.020 --> 10:06.550
doit aller, où elle doit aller et où elle doit tirer.

10:06.900 --> 10:08.240
Alors on passe à cette étape.

10:08.340 --> 10:10.720
C'est une première étape très importante faite.

10:10.720 --> 10:16.020
Nous allons maintenant passer à l'étape suivante, qui consiste bien entendu à obtenir le nombre de

10:16.020 --> 10:17.010
neurones manquant.

10:17.010 --> 10:21.930
C'est en fait pourquoi nous avons l'avertissement ici et les neurones de numéro de téléphone mais pas de soucis.

10:21.960 --> 10:26.970
Nous allons maintenant créer une fonction qui renverra le nombre de neurones dans cet énorme vecteur et nous mettrons

10:26.970 --> 10:30.210
ce nombre dans une variable qui appellera un nombre de neurones.

10:30.270 --> 10:32.070
Faisons cela dans le prochain tutoriel.

10:32.070 --> 10:33.130
C'est notre prochaine étape.

10:33.180 --> 10:34.790
Et jusque-là, profitez de l'IA.
