Qu'est-ce qu'un convolutional neural network (CNN ou convnet) ?
Un convolutional neural network (CNN ou convnet) est un sous-ensemble de l'apprentissage automatique. C'est l'un des différents types d’artificial neural networks utilisés pour différentes applications et types de données. Un CNN est une sorte d'architecture de réseau pour les algorithmes d'apprentissage en profondeur et est spécifiquement utilisé pour la reconnaissance d'images et les tâches impliquant le traitement de données de pixels.
Il existe d'autres types de réseaux de neurones dans l'apprentissage en profondeur, mais pour identifier et reconnaître des objets, les CNN sont l'architecture de réseau de choix. Cela les rend parfaitement adaptés aux tâches de vision par ordinateur (CV) et aux applications où la reconnaissance d'objets est vitale, telles que les voitures autonomes et la reconnaissance faciale.
À l'intérieur des convolutional neural networks
Les Artificial neural networks (ANN) sont un élément central des algorithmes d'apprentissage en profondeur. Un type d'ANN est un réseau neuronal récurrent (RNN) qui utilise des données séquentielles ou chronologiques comme entrée. Il convient aux applications impliquant le traitement du langage naturel (NLP), la traduction linguistique, la reconnaissance vocale et le sous-titrage d'images.
Le CNN est un autre type de réseau neuronal qui peut découvrir des informations clés dans les séries chronologiques et les données d'image. Pour cette raison, il est très utile pour les tâches liées à l'image, telles que la reconnaissance d'images, la classification d'objets et la reconnaissance de formes. Pour identifier des modèles dans une image, un CNN s'appuie sur les principes de l'algèbre linéaire, tels que la multiplication matricielle. Les CNN peuvent également classer les données audio et de signal.
L'architecture d'un CNN est analogue au modèle de connectivité du cerveau humain. Tout comme le cerveau se compose de milliards de neurones, les CNN ont par ailleurs des neurones disposés de manière spécifique. En fait, les neurones d'un CNN sont disposés comme le lobe frontal du cerveau, la zone responsable du traitement des stimuli visuels. Cette disposition garantit que tout le champ visuel est couvert, évitant ainsi le problème de traitement d'image fragmentaire des réseaux de neurones traditionnels, qui doivent être alimentés en images par morceaux à résolution réduite. Par rapport aux réseaux plus anciens, un CNN offre de meilleures performances avec des entrées d'image, ainsi qu'avec des entrées de signal vocal ou audio.
Couches CNN
Un CNN d'apprentissage en profondeur se compose de trois couches : une couche convolutive, une couche de mise en commun et une couche entièrement connectée (FC). La couche convolutionnelle est la première couche tandis que la couche FC est la dernière.
De la couche convolutionnelle à la couche FC, la complexité du CNN augmente. C'est cette complexité croissante qui permet au CNN d'identifier successivement des portions plus grandes et des caractéristiques plus complexes d'une image jusqu'à ce qu'il identifie finalement l'objet dans son intégralité.
Couche convolutive: La majorité des calculs se produisent dans la couche convolutive, qui est la pierre angulaire d'un CNN. Une deuxième couche convolutive peut suivre la couche convolutive initiale. Le processus de convolution implique un noyau ou un filtre à l'intérieur de cette couche se déplaçant à travers les champs récepteurs de l'image, vérifiant si une caractéristique est présente dans l'image.
Au cours de plusieurs itérations, le noyau balaie l'intégralité de l'image. Après chaque itération, un produit scalaire est calculé entre les pixels d'entrée et le filtre. La sortie finale de la série de points est connue sous le nom de carte d'entités ou d'entité convoluée. En fin de compte, l'image est convertie en valeurs numériques dans cette couche, ce qui permet au CNN d'interpréter l'image et d'en extraire des motifs pertinents.
Couche de mutualisation. Comme la couche convolutive, la couche de regroupement balaie également un noyau ou un filtre sur l'image d'entrée. Mais contrairement à la couche convolutive, la couche de regroupement réduit le nombre de paramètres dans l'entrée et entraîne aussi une certaine perte d'informations. Du côté positif, cette couche réduit la complexité et améliore l'efficacité du CNN.
Couche entièrement connectée. La couche FC est l'endroit où la classification des images se produit dans le CNN en fonction des caractéristiques extraites dans les couches précédentes. Ici, complètement connecté signifie que toutes les entrées ou nœuds d'une couche sont connectés à chaque unité d'activation ou nœud de la couche suivante.
Toutes les couches du CNN ne sont pas en tout connecté car cela entraînerait un réseau inutilement dense. Cela augmenterait pareillement les pertes et affecterait la qualité de sortie, et cela coûterait cher en calcul.
Comment fonctionnent les convolutional neural networks ?
Un CNN peut avoir plusieurs couches, chacune apprenant à détecter les différentes caractéristiques d'une image d'entrée. Un filtre ou un noyau est appliqué à chaque image pour produire une sortie qui devient progressivement meilleure et plus détaillée après chaque couche. Dans les couches inférieures, les filtres peuvent commencer comme de simples fonctionnalités.
À chaque couche successive, les filtres augmentent en complexité pour vérifier et identifier les caractéristiques qui représentent de manière unique l'objet d'entrée. Ainsi, la sortie de chaque image convoluée - l'image partiellement reconnue après chaque couche - devient l'entrée pour la couche suivante. Dans la dernière couche, qui est une couche FC, le CNN reconnaît l'image ou l'objet qu'il représente.
Avec la convolution, l'image d'entrée passe par un ensemble de ces filtres. Au fur et à mesure que chaque filtre active certaines fonctionnalités de l'image, il fait son travail et transmet sa sortie au filtre du calque suivant. Chaque couche apprend à identifier différentes caractéristiques et les opérations finissent par se répéter pour des dizaines, des centaines voire des milliers de couches. Enfin, toutes les données d'image progressant à travers les multiples couches du CNN permettent au CNN d'identifier l'objet entier.
CNN vs réseaux de neurones
Le plus gros problème avec les réseaux neuronaux réguliers (NN = neural network) est le manque d'évolutivité. Pour les images plus petites avec moins de canaux de couleur, un NN normal peut produire des résultats satisfaisants. Mais à mesure que la taille et la complexité d'une image augmentent, le besoin de puissance de calcul et de ressources augmente également, ce qui nécessite un NN plus grand et plus coûteux.
De plus, le problème du sur-ajustement se pose de plus au fil du temps, dans lequel le NN essaie d'apprendre trop de détails dans les données d'apprentissage. Il peut ainsi finir par apprendre le bruit dans les données, ce qui affecte ses performances sur les ensembles de données de test. En fin de compte, le NN ne parvient pas à identifier les caractéristiques ou les modèles dans l'ensemble de données et donc l'objet lui-même.
En revanche, un CNN utilise le partage de paramètres. Dans chaque couche du CNN, chaque nœud se connecte à un autre. Un CNN a pareillement un poids associé; au fur et à mesure que les filtres des calques se déplacent sur l'image, les poids restent fixes - une condition connue sous le nom de partage de paramètres. Cela rend l'ensemble du système CNN moins gourmand en calcul qu'un système NN.
Avantages de l'utilisation des CNN pour l'apprentissage en profondeur
L'apprentissage en profondeur est un sous-ensemble de l'apprentissage automatique qui utilise des réseaux neuronaux au moins trois couches. Par rapport à un réseau à une seule couche, un réseau à plusieurs couches peut fournir des résultats plus précis. Les RNN et les CNN sont utilisés dans l'apprentissage en profondeur, selon l'application.
Pour les applications de reconnaissance d'images, de classification d'images et de vision par ordinateur (CV= computer vision), les CNN sont particulièrement utiles car ils fournissent des résultats très précis, en particulier lorsque de nombreuses données sont impliquées. Le CNN apprend également les caractéristiques de l'objet par itérations successives au fur et à mesure que les données de l'objet se déplacent à travers les nombreuses couches du CNN. Cet apprentissage direct (et approfondi) élimine le besoin d'extraction manuelle des caractéristiques (ingénierie des caractéristiques).
Les CNN peuvent être recyclés pour de nouvelles tâches de reconnaissance et construits sur des réseaux préexistants. Ces avantages ouvrent de nouvelles opportunités d'utilisation des CNN pour des applications réelles sans augmenter la complexité ou les coûts de calcul.
Comme on l'a vu précédemment, les CNN sont plus efficaces en termes de calcul que les NN ordinaires, car ils utilisent le partage de paramètres. Les modèles sont faciles à déployer et peuvent fonctionner sur n'importe quel appareil, y compris les smartphones.
Applications des convolutional neural networks
Les convolutional neural networks sont déjà utilisés dans diverses applications de reconnaissance de CV et d'images. Contrairement aux applications de reconnaissance d'images simples, CV permet aux systèmes informatiques d'extraire également des informations significatives à partir d'entrées visuelles (par exemple, des images numériques), puis de prendre les mesures appropriées en fonction de ces informations.
Les applications les plus courantes de CV et de CNN sont utilisées dans des domaines tels que les suivants :
-
Soins de santé. Les CNN peuvent examiner des milliers de rapports visuels pour détecter toute condition anormale chez les patients, comme la présence de cellules cancéreuses malignes.
-
Automobile. La technologie CNN alimente la recherche sur les véhicules autonomes et les voitures autonomes.
-
Réseaux sociaux. Les plateformes de médias sociaux utilisent les CNN pour identifier les personnes sur la photo d'un utilisateur et aider l'utilisateur à taguer ses amis.
-
Détail. Les plates-formes de commerce électronique qui intègrent la recherche visuelle permettent aux marques de recommander des articles susceptibles de plaire à un acheteur.
-
Reconnaissance faciale pour les forces de l'ordre. Les réseaux antagonistes génératifs (GAN) sont utilisés pour produire de nouvelles images qui peuvent ensuite être utilisées pour former des modèles d'apprentissage en profondeur pour la reconnaissance faciale
-
Traitement audio pour les assistants virtuels. Les CNN des assistants virtuels apprennent et détectent les mots-clés prononcés par l'utilisateur et traitent les entrées pour guider leurs actions et répondre à l'utilisateur.