PRÉSENTATION:
Le réseau de neurones convolutionnels (CNN ou ConvNet) est une classe de réseaux de neurones profonds principalement utilisés pour la reconnaissance d’images, la classification d’images, la détection d’objets, etc.
Les progrès de la Vision par ordinateur avec l’apprentissage en profondeur ont été construits et perfectionnés avec le temps, principalement sur un algorithme particulier — un réseau de neurones convolutifs.
Google l’utilise pour la recherche de photos, Facebook pour ses algorithmes de marquage automatique, Amazon pour ses recommandations de produits, et la liste s’allonge encore et encore
Avec l’aide de CNN, vous pouvez faire beaucoup de trucs sympas comme, j’ai créé un modèle de reconnaissance de chiffres manuscrite qui prédit le chiffre de l’image avec 98.précision de 82%.
Bonus:
code -> https://github.com/UPPERCASEGUY/CNN-implementation
Vous pouvez également créer vos modèles sympas avec peu d’aide dans les concepts concernant CNN. Ce blog va commencer à construire vos concepts sur les CNN et vous êtes prêt à partir!
RÉSEAUX DE NEURONES CONVOLUTIFS:
La classification d’image consiste à prendre une image d’entrée et à produire une classe ou une probabilité de classes qui décrit le mieux l’image. Dans CNN, nous prenons une image comme entrée, attribuons de l’importance à ses divers aspects / caractéristiques dans l’image et pouvons nous différencier les uns des autres. Le prétraitement requis dans CNN est beaucoup moins important que d’autres algorithmes de classification.
ARCHITECTURE:
Les ordinateurs ne peuvent pas voir les choses comme nous, pour les ordinateurs, l’image n’est rien d’autre qu’une matrice.
Un CNN comporte généralement trois couches : une couche convolutive, une couche de regroupement et une couche entièrement connectée.
Couche convolutionnelle:
Je suis à peu près sûr que vous avez déjà rencontré le mot « convolution » dans votre vie et ici, sa signification ne change pas. Oui ! vous avez raison, cette couche consiste à convoler des objets les uns sur les autres. La couche de convolution est le bloc de construction principal de CNN. Il supporte la partie principale de la charge de calcul du réseau.
L’objectif principal de la convolution est d’extraire des caractéristiques telles que les bords, les couleurs, les coins de l’entrée. Au fur et à mesure que nous approfondissons le réseau, le réseau commence à identifier des caractéristiques plus complexes telles que des formes, des chiffres, des parties faciales.
Cette couche effectue un produit scalaire entre deux matrices, où une matrice (appelée filtre/noyau) est l’ensemble des paramètres apprenables, et l’autre matrice est la partie restreinte de l’image.
Si l’image est RVB, le filtre aura une hauteur et une largeur plus petites par rapport à l’image mais il aura la même profondeur (hauteur x largeur x 3) que celle de l’image.
Pour les images RVB, la partie convolante peut être visualisée comme suit:
À la fin du processus de convolution, nous avons une matrice en vedette qui a des paramètres (dimensions) inférieurs à l’image réelle ainsi que des caractéristiques plus claires que l’image réelle. Donc, maintenant, nous allons travailler avec notre matrice en vedette à partir de maintenant.
Couche de mise en commun:
Cette couche est uniquement destinée à diminuer la puissance de calcul requise pour traiter les données. Cela se fait en diminuant encore plus les dimensions de la matrice sélectionnée. Dans cette couche, nous essayons d’extraire les caractéristiques dominantes d’une quantité restreinte de voisinage. Disons-le clairement en prenant un exemple.
La matrice orange est notre matrice sélectionnée, la matrice brune est un noyau de mise en commun et nous obtenons notre matrice bleue en sortie après la mise en commun. Donc, ici, ce que nous faisons est de prendre le maximum parmi tous les nombres qui se trouvent dans la région de mise en commun et de déplacer la région de mise en commun à chaque fois pour traiter un autre voisinage de la matrice.
Il existe deux types de techniques de mise en commun: la mise en commun MOYENNE et la mise en commun MAXIMALE.
La différence entre ces deux est que, dans la mise en commun MOYENNE, nous prenons la moyenne de toutes les valeurs de la région de mise en commun et dans la mise en commun MAXIMALE, nous prenons simplement le maximum parmi toutes les valeurs se trouvant à l’intérieur de la région de mise en commun.
Donc, après la mise en commun du calque, nous avons une matrice contenant les principales caractéristiques de l’image et cette matrice a des dimensions encore moindres, ce qui aidera beaucoup à l’étape suivante.
Couche entièrement connectée:
Jusqu’à présent, nous n’avons rien fait pour classer les différentes images, ce que nous avons fait est de mettre en évidence certaines caractéristiques d’une image et de réduire considérablement les dimensions de l’image.
À partir de là, nous allons réellement faire le processus de classification.
Maintenant que nous avons converti notre image d’entrée dans une forme appropriée pour notre architecture entièrement connectée à plusieurs niveaux, nous allons aplatir l’image en un vecteur de colonne. La sortie aplatie est envoyée à un réseau de neurones en avant et la rétropropagation est appliquée à chaque itération de l’entraînement. Au cours d’une série d’époques, le modèle peut faire la distinction entre les caractéristiques dominantes et certaines caractéristiques de bas niveau dans les images et les classer.
RÉSUMÉ:
- Fournir l’image d’entrée dans la couche de convolution.
- Prenez la convolution avec le noyau / les filtres en vedette.
- Appliquez une couche de mise en commun pour réduire les dimensions.
- Ajoutez ces calques plusieurs fois.
- Aplatissez la sortie et alimentez une couche entièrement connectée.
- Entraînez maintenant le modèle avec une rétropropagation en utilisant la régression logistique.
Et vous avez créé votre réseau neuronal convolutif.