Bonjour et bienvenue sur ce tuyau et sur Torro, nous devons maintenant définir les cinq variables de cette
fonction, à savoir les trois circonvolutions et les connexions temporelles.
Commençons donc par le premier.
Convolutionnel applique la convolution aux images d'entrée de manière à ce que ce soit les images d'origine. Vous allez maintenant
voir comment tout deviendra si simple pour créer cette convolution.
Ce que nous devons faire, c'est créer un sujet d'une classe spécifique. Cette classe
est prise à partir de là, puis les classes arrivent à l'adresse car nous travaillons avec des images 2D et, comme vous
pouvez le constater, arguments.
Le premier est dans les canaux.
Mettons-le dans les canaux.
Le second est hors des canaux.
Le troisième est la taille de Kerno et les autres sont en train de rembourrer les groupes de dilatation et les biais.
Et nous avons des valeurs différentes pour tous ceux-ci.
Donc, nous n'allons pas mais nous allons conserver les valeurs par défaut.
Mais ce qui est important, ce sont ces trois arguments dans les canaux et les canaux et la taille du noyau. Je suppose donc
à quoi ils correspondent.
Bien très simplement en général correspondent à l'entrée de la convolution et tous les canaux correspondent à
la sortie de la conclusion.
Alors qu'est-ce que ça va être.
Eh bien très simplement, cela va être le nombre de canaux dans nos images.
Et en fait, nous allons travailler avec des images en noir et blanc, car au fond, nous ne colorons pas
les monstres.
L'intelligence artificielle est totalement capable de reconnaître les monstres en noir et blanc.
Nous ne voyons donc pas les couleurs du tout, nous les reconnaissons simplement par leur forme.
Par conséquent, nous allons utiliser un canal, donc un canal correspond aux images en noir
et blanc et trois canaux, aux images.
Et par conséquent, puisque nous travaillons avec des images en noir et blanc
dans des canaux, cela équivaut à un, puis à nos canaux, de sorte que nos canaux soient égaux aux images que vous souhaitez obtenir dans la
convolution qui est le résultat de cette constitution. un.
En gros, cela correspond au nombre de caractéristiques que vous souhaitez ajouter au texte de vos images d'origine,
car qui créera une image par caractéristique que nous souhaitons détecter, car vous savez comment cela fonctionne.
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,
le nombre d'images en sortie ici correspond au nombre de caractéristiques que nous souhaitons détecter.
Alors maintenant, la question est de savoir combien de fonctionnalités voulons-nous détecter.
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
convolutive, de sorte que l'entrée est une image en noir et blanc, une image réelle et que la sortie
dans la première convolution contient 32 images traitées. et par traitement, je veux dire bien sûr que la
conclusion a été appliquée à l'image d'entrée pour obtenir 32 nouvelles images avec des caractéristiques détectées.
Ensuite, nous devons spécifier une taille de noyau qui n’est autre que les dimensions du
carré qui traversera l’image originale.
Et dans la pratique courante, nous achetons deux ou trois larges trois ou cinq par cinq.
Et pour le premier, nous allons utiliser un détecteur de caractéristiques cinq par cinq, qui est un détecteur de
fonctions qui aura cinq moteurs sur dix.
Et ensuite, nous allons réduire la taille de ce noyau pour les prochaines couches convolutives.
Et en parlant de cela, c'est exactement ce que nous allons faire maintenant.
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
très facile, c’est comme un domino.
Le canal d'entrée de la deuxième couche de convolution est le canal de sortie de la première
convolution.
Donc, ce nombre de sortie 32 Voici le même nombre d’entrées 32 ici.
Et c'est parce que nous avons 32 images dans la couche convolutionnelle de la seconde convolution.
Ainsi, la deuxième convolution est appliquée à cette deuxième couche de convolution pour renvoyer une troisième couche de
convolution.
Et maintenant, la question est de savoir combien de nouvelles images voulons-nous.
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
si vous regardez les architectures que vous trouverez 32 dans beaucoup d'entre elles
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
de caractéristiques.
Et donc maintenant nous allons passer de cinq à quatre voire même trois et ensuite nous irons encore plus petit.
Très bien, notre deuxième convolution est prête.
Il prend en entrée 32 images de processus.
Chacun dans une première fonctionnalité de l'image d'entrée d'origine et crée 32 nouvelles images.
Grâce à ces dimensions réduites du détecteur de caractéristiques.
Et alors maintenant, poussons cela encore plus.
Donc, je copie ceci et le colle ici pour créer une troisième convolution afin de détecter certaines caractéristiques.
Et maintenant, c'est la même chose pour les canaux d'entrée.
Voici le nombre d'images d'entrée à gauche de la connexion par déconvolution et le nombre d'images précédentes
qui sont passées à droite des connexions par convolution précédentes.
C'est 32.
Par conséquent, nous restons désolés d'entendre.
C'est parfait.
Et maintenant, la question est de savoir combien de nouvelles images voulons-nous détecter.
Nous allons prendre maintenant 64 et donc 64 images de précession de sorties.
Et bien sûr, nous prenons une taille de noyau plus petite et nous allons en prendre deux.
Il s’agit là d’une architecture très classique de convolution et il est très efficace d’avoir un niveau
élevé de détection des caractéristiques dans les images.
Très bien et maintenant que nous avons nos trois convolution, il y en a trois de nos connexions de convolution
ici.
Eh bien, le moment est venu d’obtenir nos bonnes relations. Je rappelle que nous prendrons cet énorme
vecteur que nous obtenons après avoir aplati les 64 fois 32 fois encore 32 les images que nous avons obtenues
de toutes ces circonvolutions. nous pouvons un seul vecteur énorme qui deviendra l’entrée d’un nouveau
réseau de neurones entièrement connecté.
Et c’est donc à ce moment-là que nous devons établir ces connexions entre cet énorme vecteur et une
couche cachée, puis une deuxième connexion complète entre la couche cachée et la sortie composée des neurones de
sortie.
Chacun correspondant à une valeur de cube des actions possibles.
Faisons donc ces deux connexions.
Tu sais comment faire ça.
C'est exactement ce que nous avons fait pour la voiture autonome.
Faisons-le à nouveau.
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
objet de la classe dirigeante.
Et puis entre parenthèses.
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.
Et donc les fonctionnalités d'entrée pour la première connexion complète qu'est-ce que ça va être.
Cela va être égal au nombre de pixels de cet énorme changement de vecteur après l’aplatissement de toutes
les images de processus après les trois circonvolutions.
Et alors qu'est-ce que ce nombre.
En fait, il y a un truc ici.
Ce nombre est en réalité difficile à obtenir.
Nous devons créer une fonction pour calculer ce nombre.
Nous n'avons pas de variable qui nous donnera ce nombre.
Nous devons le calculer et donc ce que nous allons faire maintenant.
Et maintenant, il est très important de comprendre l'état d'esprit de la programmation que nous devons
avoir et d'essayer de vous apporter l'état d'esprit que vous devez être en train de penser maintenant
pour surmonter cet obstacle avoir ce nombre de neurones dans le vecteur Flaten.
Que devrais-je faire.
Je suis coincé ici.
Eh bien non, en fait, car ce que vous pouvez faire maintenant est simplement de saisir ici un nom qui représente le nombre
de neurones si peu commun que nombre de neurones nombre de neurones et nous allons simplement créer une
fonction qui reviendra et ce nombre de neurones variable.
Ce nombre de pixels que nous recherchons.
Donc, nous pouvons totalement faire cela, nous pouvons totalement mettre cela très au clair bien sûr, nous aurons un
avertissement car cela n'existe pas encore mais nous le créerons après avec une fonction.
Et nous sommes totalement autorisés à le faire même si la fonction vient après.
C’est une programmation typique à penser lorsque vous rencontrez ce type d’obstacle.
Eh bien, vous pouvez créer une fonction pour obtenir ce qui vous manque.
Très bien, puis nos caractéristiques et notre avenir.
C'est le nombre de neurones dans une couche cachée et ce temps vous appartient.
Cela dépend de l'architecture du nouveau réseau que vous souhaitez créer.
Et si un bon nombre ne serait pas un petit nombre.
Ainsi, par exemple, 40 neurones pourraient convenir.
Nous pouvons essayer d'augmenter cela.
Si l'entraînement n'est pas trop lent, vous pouvez essayer de l'augmenter.
Cela améliorera peut-être les prévisions, mais commençons par 40. Peut-être que nous augmenterons cela par la suite.
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
est la connexion entre la couche masquée et la couche de sortie.
Ainsi, les caractéristiques deviennent les caractéristiques de sortie de la couche précédente, à savoir 40.
Nous pouvons donc mettre 40 ici.
C'est bien sûr le nombre de neurones dans une couche.
Et notre avenir va être égal au nombre de neurones de sortie, il ne devrait pas y avoir de réseau de neurones.
Et comme chaque neurone de sortie correspond à une nouvelle valeur et à une cuvée et à une
réponse à une action, le nombre de neurones de sortie est ici bien sûr
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.
Nous avons trouvé l'architecture de notre réseau de neurones. Notre réseau de neurones est composé de trois couches
convolutives et d'une couche cachée.
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
doit aller, où elle doit aller et où elle doit tirer.
Alors on passe à cette étape.
C'est une première étape très importante faite.
Nous allons maintenant passer à l'étape suivante, qui consiste bien entendu à obtenir le nombre de
neurones manquant.
C'est en fait pourquoi nous avons l'avertissement ici et les neurones de numéro de téléphone mais pas de soucis.
Nous allons maintenant créer une fonction qui renverra le nombre de neurones dans cet énorme vecteur et nous mettrons
ce nombre dans une variable qui appellera un nombre de neurones.
Faisons cela dans le prochain tutoriel.
C'est notre prochaine étape.
Et jusque-là, profitez de l'IA.