Intelligence artificielle

Guide du débutant sur les réseaux de neurones convolutifs

Guide du débutant sur les réseaux de neurones convolutifs


Architecture globale

Les réseaux de neurones convolutifs sont constitués de quelques composants principaux.

Réseau de neurones convolutionnels

Le modèle commence par une image d'entrée, passe par le processus de convolution, de non-linéarité et de mise en commun, puis entre dans un réseau de neurones entièrement connecté pour produire notre sortie. La sortie est un vecteur représentant la probabilité que l'image appartienne à chacune des classes. Dans ce cas, «oiseau», «coucher de soleil», «chien» et «chat». Ne vous inquiétez pas, tout cela sera expliqué en détail!

L'ensemble de ce modèle peut être divisé en 2 secteurs principaux: fonction d'apprentissage et classification.

Dans le premier cas, nous extrayons les caractéristiques des images par convolution et par mise en commun. Cela pourrait être aussi simple que de reconnaître les contours de quelque chose comme la détection de nez.

Nous transmettons ensuite les données des entités détectées dans la partie classification, nos couches entièrement connectées. Ici, notre réseau de neurones utilise les entrées pour produire notre sortie, nous "disant" comment il classe l’image.

Pré-traitement

Premièrement, pour que notre image soit prête à entrer dans notre CNN, nous devons: prétraiter il. Cela signifie souvent redimensionnement les dimensions de l'image au pixel optimales pour le modèle.

Toutes les images sont simplement des matrices de valeurs de pixels, de sorte que notre image sera souvent composée de 3 matrices de pixels. Cela est dû au fait que chaque matrice est désignée pour les valeurs R, G ou B. Pour simplifier cela, nous pouvons convertir notre image en niveaux de gris. Notre image est maintenant composée de une canal.

Noyaux et Convolution

Une fois que notre image est prête, nous effectuons maintenant convolution. Graines, aussi appelé filtres, sont des ‘détecteurs de fonctions’. Ils balayage sur notre image d'entrée et effectuer multiplication par élément avec les valeurs de pixel.

Notre noyau / filtre détecte les courbes
Notre noyau / filtre balaye notre image petit à petit. Dans ce cas, il se concentre sur la partie supérieure droite.
Une multiplication par élément entre les valeurs de pixels de l’image et les valeurs de pixels du noyau est effectuée.

Comme nous avons obtenu un nombre élevé, nous savons que nos valeurs de filtre élevées ont été multipliées / ont été dépassées par rapport aux valeurs d’image élevées. En d'autres termes, nous connaissons le filtre détecté la courbe.

Notre noyau continue à se déplacer sur chaque partie de l'image jusqu'à ce qu'elle soit entièrement numérisée. Le nombre résultant de multiplications élément par élément effectuées à chaque mouvement est ajouté à notre carte des fonctionnalités. Le nombre de pixels par lequel le noyau se déplace chaque fois qu'il est analysé est appelé foulée. Ci-dessous, nous voyons un noyau avec une foulée de 1.

Noyau et Stride

Rappelez-vous que le nombre produit par le noyau représente le risque de détection d'une fonctionnalité (nombre élevé = chances élevées)! Si la carte contient de grands nombres, il y a de grandes chances que l’image d’entrée contienne les fonctionnalités que nous recherchons.

Activation

Pour supprimer les valeurs négatives, un Activation ‘ReLU’ est appliqué à nos valeurs de carte de caractéristiques. Voici un graphique démontrant cette non-linéarité une fonction.

Aucune valeur y négative.

mise en commun

À ce stade, la convolution a été pleinement appliquée à notre image d'entrée. Cependant, nous aurons généralement façon des images plus grandes, avec beaucoup plus grandes cartes de caractéristiques. Plus de données signifient plus de paramètres pour notre modèle, ce qui signifie BEAUCOUP plus de calcul (ce qui n’est pas bon pour l’environnement). Pour réduire le tout, nous utilisons mise en commun.

Nous avons plusieurs types de mise en commun (moyenne, somme, etc.), mais dans la pratique, max pooling fonctionne le mieux. Pour ce faire, nous parcourons nos cartes de caractéristiques, peu à peu (comme avec nos noyaux) et prenez la plus grande valeur et mettez-la sur notre nouvelle carte plus petite.

Un exemple de max pooling

Couches entièrement connectées

Nous sommes maintenant arrivés à la fin de notre modèle!

La première chose que nous faisons est aplatir nos cartes de fonctionnalités regroupées. nous convertir notre la grille des valeurs à vecteur, agissant maintenant en tant que nœuds d’entrée pour notre réseau de couches entièrement connectées.

À ce stade, nous avons notre réseau de neurones régulier - poids et biais appris grâce à la rétropropagation. Cependant, nous utilisons un activation softmax avec notre couche de sortie. Cela signifie que nous obtenons un vecteur de nombres, chacun représentant la probabilité que l’image corresponde à une certaine classe.

Le vert a la valeur la plus élevée, c’est ce que l’ordinateur a classé comme étant.

En résumé, nous classifions les images en détectant leurs caractéristiques, puis en transmettant ces données à un réseau neuronal entièrement connecté. En reconnaissant les caractéristiques avec convolution, nous donnons aux ordinateurs la capacité d'interpréter des photos.

Et voila! Classification des images avec CNN!

Afficher plus

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Articles similaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page
Fermer